Issue-4845: Merged in branch 'gsoc11_benj' for the enhanced mobile theme.
authorCindy Qi Li <cli@ocad.ca>
Thu, 15 Sep 2011 16:00:54 +0000 (12:00 -0400)
committerCindy Qi Li <cli@ocad.ca>
Thu, 15 Sep 2011 16:00:54 +0000 (12:00 -0400)
634 files changed:
docs/acl.php
docs/admin/config_edit.php
docs/admin/index.php
docs/bounce.php
docs/confirm.php
docs/content.php
docs/documentation/admin/basiclti_external_tools.php [new file with mode: 0644]
docs/documentation/admin/pages.inc.php
docs/documentation/common/frame_toc.php
docs/documentation/developer/guidelines.html
docs/documentation/general/assignment_dropbox.php [new file with mode: 0644]
docs/documentation/general/fs_new_file.php [new file with mode: 0644]
docs/documentation/general/pages.inc.php
docs/documentation/index_list.php
docs/documentation/instructor/assignment_dropbox.php [new file with mode: 0644]
docs/documentation/instructor/content_edit.php
docs/documentation/instructor/pages.inc.php
docs/get_acheck.php
docs/include/classes/UrlRewrite/UrlRewrite.class.php
docs/include/html/copyright.inc.php
docs/include/html/languages.inc.php
docs/include/lib/constants.inc.php
docs/include/lib/output.inc.php
docs/include/vitals.inc.php
docs/index.php
docs/install/db/atutor_language_text.sql
docs/install/db/atutor_schema.sql
docs/install/db/atutor_upgrade_2.0.1_to_2.0.2.sql
docs/install/db/atutor_upgrade_2.0.2_to_2.0.3.sql
docs/install/include/common.inc.php
docs/install/include/step3.php
docs/install/include/step5.php
docs/install/include/step7.php
docs/install/include/ustep3.php
docs/install/install.php
docs/install/upgrade.php
docs/jscripts/ATutor.js
docs/jscripts/ATutorCourse.js
docs/jscripts/infusion/InfusionAll.js
docs/jscripts/infusion/README.txt
docs/jscripts/infusion/components/inlineEdit/css/InlineEdit.css
docs/jscripts/infusion/components/inlineEdit/images/inline_edit_edit_button_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/inlineEdit/js/InlineEdit.js
docs/jscripts/infusion/components/inlineEdit/js/InlineEditIntegrations.js
docs/jscripts/infusion/components/pager/css/Pager.css
docs/jscripts/infusion/components/pager/js/Pager.js
docs/jscripts/infusion/components/progress/js/Progress.js
docs/jscripts/infusion/components/reorderer/css/Reorderer.css
docs/jscripts/infusion/components/reorderer/js/GeometricManager.js
docs/jscripts/infusion/components/reorderer/js/ImageReorderer.js
docs/jscripts/infusion/components/reorderer/js/LayoutReorderer.js
docs/jscripts/infusion/components/reorderer/js/ModuleLayout.js
docs/jscripts/infusion/components/reorderer/js/Reorderer.js
docs/jscripts/infusion/components/reorderer/js/ReordererDOMUtilities.js [new file with mode: 0644]
docs/jscripts/infusion/components/tableOfContents/css/TableOfContents.css [new file with mode: 0644]
docs/jscripts/infusion/components/tableOfContents/html/TableOfContents.html
docs/jscripts/infusion/components/tableOfContents/js/TableOfContents.js
docs/jscripts/infusion/components/tabs/js/Tabs.js [new file with mode: 0644]
docs/jscripts/infusion/components/tooltip/js/Tooltip.js [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/FatPanelUIOptions.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/FatPanelUIOptionsFrame.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/FullNoPreviewUIOptions.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/FullPreviewUIOptions.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/FullUIOptions.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/UIOptions.css
docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-bw-uio.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-by-uio.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-coal-uio.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-mist-uio.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-rust-uio.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-slate-uio.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-wb-uio.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-yb-uio.css [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/html/FatPanelUIOptions.html [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/html/FatPanelUIOptionsFrame.html [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/html/FullNoPreviewUIOptions-test.html [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/html/FullNoPreviewUIOptions.html [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/html/FullPreviewUIOptions.html [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/html/UIOptionsTemplate-layout.html [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/html/UIOptionsTemplate-links.html [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/html/UIOptionsTemplate-text.html [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_bigA_hc_20x20.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_cancel_hc_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hcInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hc_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hc_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linesNarrow_hc_16x12.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linesWide_hc_16x21.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hcInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hc_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hc_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_reset_hcInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_save_hc_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_smallA_hc_10x10.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hcInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hc_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hc_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_bigA_blackYellow_20x20.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_cancel_blackYellow_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellowInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellow_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellow_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linesNarrow_blackYellow_16x12.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linesWide_blackYellow_16x21.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellowInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellow_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellow_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_reset_blackYellowInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_save_blackYellow_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_smallA_blackYellow_10x10.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellowInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellow_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellow_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_bigA_default_20x20.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_cancel_default_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_defaultInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_default_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_default_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linesNarrow_default_16x12.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linesWide_default_16x21.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_defaultInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_default_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_default_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_reset_defaultInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_save_default_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_sliderhandle.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_smallA_default_10x10.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_defaultInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_default_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_default_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_bigA_hci_20x20.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_cancel_hci_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hciInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hci_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hci_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linesNarrow_hci_16x12.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linesWide_hci_16x21.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hciInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hci_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hci_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_reset_hciInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_reset_hci_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_save_hci_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_smallA_hci_10x10.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hciInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hci_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hci_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_bigA_yellowBlack_20x20.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_cancel_yellowBlack_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlackInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlack_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlack_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linesNarrow_yellowBlack_16x12.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linesWide_yellowBlack_16x21.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlackInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlack_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlack_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_reset_yellowBlackInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_save_yellowBlack_13x13.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_smallA_yellowBlack_10x10.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlackInverted_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlack_16x16.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlack_18x18.png [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/js/FatPanelUIOptions.js [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/js/FullNoPreviewUIOptions.js [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/js/FullPreviewUIOptions.js [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/js/SlidingPanel.js [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/js/Store.js [new file with mode: 0644]
docs/jscripts/infusion/components/uiOptions/js/UIEnhancer.js
docs/jscripts/infusion/components/uiOptions/js/UIOptions.js
docs/jscripts/infusion/components/uiOptions/js/URLUtilities.js [new file with mode: 0644]
docs/jscripts/infusion/components/undo/js/Undo.js
docs/jscripts/infusion/components/uploader/ReadMe.txt
docs/jscripts/infusion/components/uploader/css/Uploader.css
docs/jscripts/infusion/components/uploader/html/Uploader.html
docs/jscripts/infusion/components/uploader/images/add-grey.png [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/images/add.png
docs/jscripts/infusion/components/uploader/images/grey-4d4d4d-x-button.png [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/images/grey-999999-x-button.png [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/images/remove.png
docs/jscripts/infusion/components/uploader/images/tick.png
docs/jscripts/infusion/components/uploader/js/DemoUploadManager.js
docs/jscripts/infusion/components/uploader/js/ErrorPanel.js [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/js/FileQueue.js
docs/jscripts/infusion/components/uploader/js/FileQueueView.js [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/js/Flash9UploaderSupport.js [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/js/FlashUploaderSupport.js [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/js/HTML5UploaderSupport.js [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/js/MimeTypeExtensions.js [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/js/Uploader.js
docs/jscripts/infusion/components/uploader/js/UploaderCompatibility-Infusion1.2.js [new file with mode: 0644]
docs/jscripts/infusion/components/uploader/js/UploaderCompatibility-Infusion1.3.js [new file with mode: 0644]
docs/jscripts/infusion/framework/core/js/DataBinding.js
docs/jscripts/infusion/framework/core/js/Fluid.js
docs/jscripts/infusion/framework/core/js/FluidDOMUtilities.js
docs/jscripts/infusion/framework/core/js/FluidDebugging.js [new file with mode: 0644]
docs/jscripts/infusion/framework/core/js/FluidDocument.js [new file with mode: 0644]
docs/jscripts/infusion/framework/core/js/FluidIoC.js [new file with mode: 0644]
docs/jscripts/infusion/framework/core/js/FluidRequests.js [new file with mode: 0644]
docs/jscripts/infusion/framework/core/js/FluidView.js [new file with mode: 0644]
docs/jscripts/infusion/framework/core/js/JavaProperties.js [new file with mode: 0644]
docs/jscripts/infusion/framework/core/js/ModelTransformations.js [new file with mode: 0644]
docs/jscripts/infusion/framework/core/js/jquery.keyboard-a11y.js
docs/jscripts/infusion/framework/enhancement/js/ProgressiveEnhancement.js [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-base-context.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-base-global.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-layout.css
docs/jscripts/infusion/framework/fss/css/fss-mobile-layout.css
docs/jscripts/infusion/framework/fss/css/fss-mobile-theme-android.css
docs/jscripts/infusion/framework/fss/css/fss-mobile-theme-iphone.css
docs/jscripts/infusion/framework/fss/css/fss-reset-context.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-reset-global.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-reset.css
docs/jscripts/infusion/framework/fss/css/fss-text.css
docs/jscripts/infusion/framework/fss/css/fss-theme-blackYellow.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-theme-bw.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-theme-by.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-theme-coal.css
docs/jscripts/infusion/framework/fss/css/fss-theme-hc.css
docs/jscripts/infusion/framework/fss/css/fss-theme-hci.css
docs/jscripts/infusion/framework/fss/css/fss-theme-mist.css
docs/jscripts/infusion/framework/fss/css/fss-theme-rust.css
docs/jscripts/infusion/framework/fss/css/fss-theme-slate.css
docs/jscripts/infusion/framework/fss/css/fss-theme-wb.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-theme-yb.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-theme-yellowBlack.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/css/fss-transitions.css [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-med-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-med-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-titlebar-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-titlebar-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-Close.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-More.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-gripper.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-med-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-med-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-titlebar-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-titlebar-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-Close.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-More.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-gripper.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/by/buttons-med-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/by/buttons-med-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/by/buttons-titlebar-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/by/buttons-titlebar-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-Close.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-More.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-gripper.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-light-bg.png
docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-light-cap.png
docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-med-bg.png
docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-med-cap.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-active-bg.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-active-cap.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-bg.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-cap.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-container-bg.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-content-bg.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-active-bg.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-active-cap.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-bg.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-cap.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-container-bg.png
docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-content-bg.png
docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-med-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-med-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-titlebar-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-titlebar-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-Close.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-More.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-gripper.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-med-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-med-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-titlebar-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-titlebar-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-Close.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-More.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-gripper.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/mist/buttons-light-bg.png
docs/jscripts/infusion/framework/fss/images/themes/mist/buttons-med-bg.png
docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-med-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-med-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-titlebar-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-titlebar-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-Close.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-More.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-gripper.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-med-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-med-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-titlebar-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-titlebar-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-Close.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-More.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-gripper.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-med-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-med-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-titlebar-bg.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-titlebar-cap.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-Close.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-More.png [new file with mode: 0644]
docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-gripper.png [new file with mode: 0644]
docs/jscripts/infusion/framework/renderer/js/RendererUtilities.js [new file with mode: 0644]
docs/jscripts/infusion/framework/renderer/js/fluidParser.js
docs/jscripts/infusion/framework/renderer/js/fluidRenderer.js
docs/jscripts/infusion/lib/fastXmlPull/js/fastXmlPull.js
docs/jscripts/infusion/lib/jquery/core/js/jquery.js
docs/jscripts/infusion/lib/jquery/plugins/ariaTabs/js/ui.ariaTabs.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/plugins/scrollTo/js/jquery.scrollTo.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/plugins/tooltip/README [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/plugins/tooltip/css/jquery.tooltip.css
docs/jscripts/infusion/lib/jquery/plugins/tooltip/js/jquery.ui.tooltip.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_flat_0_aaaaaa_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_flat_75_ffffff_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_55_fbf9ee_1x400.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_65_ffffff_1x400.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_75_dadada_1x400.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_75_e6e6e6_1x400.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_222222_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_2e83ff_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_454545_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_888888_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_cd0a0a_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/default-theme/jquery.ui.theme.css [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/blackYellow.css [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-bg_flat_0_aaaaaa_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-bg_flat_100_000000_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_454545_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_cd0a0a_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_ffff00_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/bw.css [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-bg_flat_0_000000_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-bg_flat_0_ffffff_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_000000_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_ffffff_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/by.css [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-bg_flat_0_000000_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-bg_flat_0_ffff00_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-icons_000000_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-icons_ffff00_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/coal.css
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_222222_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_333333_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_a3a3a3_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_cccccc_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_cd0a0a_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_ffffff_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hc/hc.css
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hc/images/ui-icons_000000_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hc/images/ui-icons_ffffff_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/hci.css
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/images/ui-icons_000000_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/images/ui-icons_fffff_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/images/ui-icons_ffffff_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-bg_glass_75_9dcaf6_1x400.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-bg_highlight-soft_55_9dcaf6_1x100.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_000000_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_222222_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_2e83ff_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_454545_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_888888_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_cd0a0a_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/mist.css
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-bg_flat_0_ebebeb_40x100.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-bg_inset-hard_100_ebebeb_1x100.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_000000_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_666666_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_ebebeb_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_ffffff_256x240.png
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/slate.css
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-bg_flat_0_000000_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-bg_flat_0_ffffff_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_000000_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_ffffff_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/wb.css [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-bg_flat_0_000000_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-bg_flat_0_ffff00_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_000000_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_ffff00_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/yb.css [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_0_aaaaaa_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_0_ffff00_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_100_ffff00_40x100.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_000000_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_454545_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_888888_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_cd0a0a_256x240.png [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/yellowBlack.css [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/css/jquery.ui.theme.css [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.core.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.dialog.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.draggable.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.mouse.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.position.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.slider.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.tabs.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.widget.js [new file with mode: 0644]
docs/jscripts/infusion/lib/jquery/ui/js/ui-FLUID-readme.txt
docs/jscripts/infusion/lib/swfobject/js/swfobject.js
docs/jscripts/infusion/licenses/Infusion-LICENSE.txt
docs/jscripts/infusion/licenses/LICENSE.txt [new file with mode: 0644]
docs/jscripts/infusion/licenses/fastXmlPull-LICENSE.txt
docs/jscripts/infusion/licenses/jQuery-LICENSE.txt
docs/jscripts/infusion/licenses/swfobject-LICENSE.txt
docs/login.php
docs/logout.php
docs/mods/_core/courses/module.php
docs/mods/_core/editor/delete_content.php
docs/mods/_core/editor/edit_content.php
docs/mods/_core/editor/editor_tab_functions.inc.php
docs/mods/_core/editor/editor_tabs/alternatives.inc.php
docs/mods/_core/editor/editor_tabs/tests.inc.php
docs/mods/_core/enrolment/html/enroll_edit.inc.php
docs/mods/_core/enrolment/html/enrollment.inc.php
docs/mods/_core/file_manager/filemanager.inc.php
docs/mods/_core/file_manager/filemanager_display.inc.php
docs/mods/_core/file_manager/index.php
docs/mods/_core/file_manager/preview.php
docs/mods/_core/file_manager/upload.php
docs/mods/_core/glossary/tools/edit.php
docs/mods/_core/imscc/classes/Weblinks.tmpl.php
docs/mods/_core/imscc/ims_export.php
docs/mods/_core/imscc/include/ims_template.inc.php
docs/mods/_core/imscp/domainProfile_0/imsccauth_v1p0.xsd
docs/mods/_core/imscp/domainProfile_0/imsccauth_v1p0_constraintsDocument.scmt [new file with mode: 0644]
docs/mods/_core/imscp/domainProfile_0/imsccauth_v1p0_localised.xsd
docs/mods/_core/imscp/domainProfile_1/lomLoose_constraintsDocument.scmt [new file with mode: 0644]
docs/mods/_core/imscp/domainProfile_2/lomLoose_constraintsDocument.scmt [new file with mode: 0644]
docs/mods/_core/imscp/domainProfile_3/imscp_extensionv1p2.xsd
docs/mods/_core/imscp/domainProfile_3/imscp_extensionv1p2_constraintsDocument.scmt [new file with mode: 0644]
docs/mods/_core/imscp/domainProfile_3/imscp_extensionv1p2_localised.xsd
docs/mods/_core/imscp/domainProfile_4/ims_qtiasiv1p2.xsd
docs/mods/_core/imscp/domainProfile_4/ims_qtiasiv1p2_def_copy.xsd
docs/mods/_core/imscp/domainProfile_4/ims_qtiasiv1p2_localised.xsd
docs/mods/_core/imscp/domainProfile_4/imscc_q_definition.xsd
docs/mods/_core/imscp/domainProfile_5/imswl_v1p0.xsd
docs/mods/_core/imscp/domainProfile_5/imswl_v1p0_localised.xsd
docs/mods/_core/imscp/domainProfile_6/imsdt_v1p0.xsd
docs/mods/_core/imscp/domainProfile_6/imsdt_v1p0_localised.xsd
docs/mods/_core/imscp/ims_export.php
docs/mods/_core/imscp/ims_import.php
docs/mods/_core/imscp/imscp_v1p2.xsd
docs/mods/_core/imscp/imscp_v1p2_constraintsDocument.scmt
docs/mods/_core/imscp/imscp_v1p2_localised.xsd
docs/mods/_core/imscp/include/footer.html [deleted file]
docs/mods/_core/imscp/include/ims_template.inc.php
docs/mods/_core/imscp/index.php
docs/mods/_core/imscp/main.xsd
docs/mods/_core/imscp/xml.xsd [new file with mode: 0644]
docs/mods/_core/imsqti/classes/QTIParser.class.php
docs/mods/_core/modules/classes/Module.class.php
docs/mods/_core/users/create_user.php
docs/mods/_core/users/default_preferences.php
docs/mods/_core/users/edit_user.php
docs/mods/_core/users/instructor_requests.php
docs/mods/_core/users/lib/pref_tab_functions.inc.php
docs/mods/_standard/assignment_dropbox/README [new file with mode: 0644]
docs/mods/_standard/assignment_dropbox/assignment_dropbox.inc.php [new file with mode: 0644]
docs/mods/_standard/assignment_dropbox/assignment_dropbox.png [new file with mode: 0644]
docs/mods/_standard/assignment_dropbox/assignment_dropbox_sm.png [new file with mode: 0644]
docs/mods/_standard/assignment_dropbox/flag.png [new file with mode: 0644]
docs/mods/_standard/assignment_dropbox/index.php [new file with mode: 0644]
docs/mods/_standard/assignment_dropbox/module.css [new file with mode: 0644]
docs/mods/_standard/assignment_dropbox/module.php [new file with mode: 0644]
docs/mods/_standard/assignment_dropbox/module.xml [new file with mode: 0644]
docs/mods/_standard/assignment_dropbox/sublinks.php [new file with mode: 0644]
docs/mods/_standard/basiclti/ModuleCallbacks.class.php [new file with mode: 0644]
docs/mods/_standard/basiclti/README.txt [new file with mode: 0644]
docs/mods/_standard/basiclti/TODO.txt [new file with mode: 0644]
docs/mods/_standard/basiclti/basiclti.jpg [new file with mode: 0644]
docs/mods/_standard/basiclti/content_tool_action.js [new file with mode: 0644]
docs/mods/_standard/basiclti/images/basiclti-icon.png [new file with mode: 0644]
docs/mods/_standard/basiclti/include/constants.inc.php [new file with mode: 0644]
docs/mods/_standard/basiclti/index.php [new file with mode: 0644]
docs/mods/_standard/basiclti/index_admin.php [new file with mode: 0644]
docs/mods/_standard/basiclti/index_instructor.php [new file with mode: 0644]
docs/mods/_standard/basiclti/launch/TrivialStore.php [new file with mode: 0644]
docs/mods/_standard/basiclti/launch/ims-blti/LICENSE.txt [new file with mode: 0644]
docs/mods/_standard/basiclti/launch/ims-blti/OAuth.php [new file with mode: 0644]
docs/mods/_standard/basiclti/launch/ims-blti/blti.php [new file with mode: 0644]
docs/mods/_standard/basiclti/launch/ims-blti/blti_util.php [new file with mode: 0644]
docs/mods/_standard/basiclti/launch/launch.php [new file with mode: 0644]
docs/mods/_standard/basiclti/launch/loadrows.php [new file with mode: 0644]
docs/mods/_standard/basiclti/launch/service.php [new file with mode: 0644]
docs/mods/_standard/basiclti/lib/at_form_util.php [new file with mode: 0644]
docs/mods/_standard/basiclti/module.css [new file with mode: 0644]
docs/mods/_standard/basiclti/module.php [new file with mode: 0644]
docs/mods/_standard/basiclti/module.xml [new file with mode: 0644]
docs/mods/_standard/basiclti/module_backup.php [new file with mode: 0644]
docs/mods/_standard/basiclti/module_delete.php [new file with mode: 0644]
docs/mods/_standard/basiclti/module_install.php [new file with mode: 0644]
docs/mods/_standard/basiclti/module_uninstall.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/admin_create.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/admin_delete.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/admin_edit.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/admin_view.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/content_edit.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/forms.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/instructor_create.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/instructor_delete.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/instructor_edit.php [new file with mode: 0644]
docs/mods/_standard/basiclti/tool/instructor_view.php [new file with mode: 0644]
docs/mods/_standard/chat/sublinks.php
docs/mods/_standard/file_storage/comments.php
docs/mods/_standard/file_storage/index.php
docs/mods/_standard/file_storage/module.php
docs/mods/_standard/file_storage/module_news.php
docs/mods/_standard/file_storage/sublinks.php
docs/mods/_standard/flowplayer/.htaccess [new file with mode: 0644]
docs/mods/_standard/flowplayer/module_format_content.php
docs/mods/_standard/forums/forum/view.php
docs/mods/_standard/forums/module_news.php
docs/mods/_standard/gradebook/edit_marks.php
docs/mods/_standard/gradebook/gradebook_add_tests.php
docs/mods/_standard/gradebook/gradebook_edit_tests.php
docs/mods/_standard/gradebook/gradebook_tests.php
docs/mods/_standard/patcher/module.php
docs/mods/_standard/photos/admin/edit_album.php
docs/mods/_standard/photos/admin/edit_photos.php
docs/mods/_standard/photos/albums.php
docs/mods/_standard/photos/course_albums.php
docs/mods/_standard/photos/create_album.php
docs/mods/_standard/photos/edit_album.php
docs/mods/_standard/photos/edit_photos.php
docs/mods/_standard/photos/include/imageReorderer.js
docs/mods/_standard/photos/include/profile_album.inc.php
docs/mods/_standard/photos/include/upload.js [deleted file]
docs/mods/_standard/photos/index.php
docs/mods/_standard/photos/index_admin.php
docs/mods/_standard/photos/module.css [deleted file]
docs/mods/_standard/photos/module.php
docs/mods/_standard/photos/photo.php
docs/mods/_standard/photos/search.php
docs/mods/_standard/photos/shared_albums.php
docs/mods/_standard/student_tools/classes/StudentToolsUtil.class.php
docs/mods/_standard/student_tools/index.php
docs/mods/_standard/tests/results_quest_long.php
docs/mods/_standard/tests/take_test.php
docs/mods/_standard/tests/take_test_q.php
docs/mods/_standard/tracker/module.php
docs/mods/_standard/vimeo/module_format_content.php
docs/registration.php
docs/themes/blumin/include/box.tmpl.php
docs/themes/blumin/rtl.css
docs/themes/blumin/styles.css
docs/themes/default/__MACOSX/simplified-desktop/._theme.cfg.php [deleted file]
docs/themes/default/__MACOSX/simplified-desktop/._theme_info.xml [deleted file]
docs/themes/default/content.tmpl.php
docs/themes/default/forms.css
docs/themes/default/ie_styles.css
docs/themes/default/images/atutor_head.jpg
docs/themes/default/include/box.tmpl.php
docs/themes/default/include/header.tmpl.php
docs/themes/default/index.tmpl.php
docs/themes/default/photos/pa_create_album.tmpl.php
docs/themes/default/photos/pa_organize_photos.tmpl.php
docs/themes/default/rtl.css
docs/themes/default/social/index_public.tmpl.php
docs/themes/default/styles.css
docs/themes/default/test_questions/header.tmpl.php
docs/themes/default/test_questions/multianswer.tmpl.php
docs/themes/default/test_questions/multichoice.tmpl.php
docs/themes/default/users/browse.tmpl.php
docs/themes/default/users/index.tmpl.php
docs/themes/default/users/preferences.tmpl.php
docs/themes/default15/content.tmpl.php
docs/themes/default15/include/box.tmpl.php
docs/themes/default15/rtl.css
docs/themes/default15/styles.css
docs/themes/default16/rtl.css
docs/themes/default16/styles.css
docs/themes/default_classic/ie_styles.css
docs/themes/default_classic/rtl.css
docs/themes/default_classic/styles.css
docs/themes/fluid/ie_styles.css
docs/themes/fluid/rtl.css
docs/themes/fluid/styles.css
docs/themes/greenmin/content.tmpl.php
docs/themes/greenmin/include/box.tmpl.php
docs/themes/greenmin/rtl.css
docs/themes/greenmin/styles.css
docs/themes/idi/content.tmpl.php
docs/themes/idi/include/box.tmpl.php
docs/themes/idi/rtl.css
docs/themes/idi/styles.css
docs/themes/mobile/index.tmpl.php
docs/users/contact_instructor.php [deleted file]
docs/users/display_settings.inc.php
docs/users/preferences.php
mods/mediawiki/MySQL_Auth/Auth_viaMySQL/Auth_viaMySQL.php [new file with mode: 0644]
mods/mediawiki/MySQL_Auth/Auth_viaMySQL/CacheTimer_viaMySQL.php [new file with mode: 0644]
mods/mediawiki/MySQL_Auth/MySQLActiveUser.php [new file with mode: 0644]
mods/mediawiki/README [new file with mode: 0644]
mods/mediawiki/index.php [new file with mode: 0644]
mods/mediawiki/index_admin.php [new file with mode: 0644]
mods/mediawiki/index_instructor.php [new file with mode: 0644]
mods/mediawiki/index_mystart.php [new file with mode: 0644]
mods/mediawiki/index_public.php [new file with mode: 0644]
mods/mediawiki/module.css [new file with mode: 0644]
mods/mediawiki/module.php [new file with mode: 0644]
mods/mediawiki/module.sql [new file with mode: 0644]
mods/mediawiki/module.xml [new file with mode: 0644]
mods/mediawiki/module_delete.php [new file with mode: 0644]
mods/mediawiki/module_install.php [new file with mode: 0644]
mods/mediawiki/module_news.php [new file with mode: 0644]
mods/mediawiki/module_uninstall.php [new file with mode: 0644]
mods/mediawiki/mw_config.php [new file with mode: 0644]
mods/mediawiki/mw_connect.php [new file with mode: 0644]
mods/mediawiki/mw_icon_sm.png [new file with mode: 0644]
mods/mediawiki/mw_logo.png [new file with mode: 0644]
mods/mediawiki/side_menu.inc.php [new file with mode: 0644]
mods/mediawiki/sublinks.php [new file with mode: 0644]
mods/wordpress/README [new file with mode: 0644]
mods/wordpress/index.php [new file with mode: 0644]
mods/wordpress/index_admin.php [new file with mode: 0644]
mods/wordpress/index_instructor.php [new file with mode: 0644]
mods/wordpress/index_mystart.php [new file with mode: 0644]
mods/wordpress/index_public.php [new file with mode: 0644]
mods/wordpress/module.css [new file with mode: 0644]
mods/wordpress/module.php [new file with mode: 0644]
mods/wordpress/module.sql [new file with mode: 0644]
mods/wordpress/module.xml [new file with mode: 0644]
mods/wordpress/module_delete.php [new file with mode: 0644]
mods/wordpress/module_install.php [new file with mode: 0644]
mods/wordpress/module_news.php [new file with mode: 0644]
mods/wordpress/module_uninstall.php [new file with mode: 0644]
mods/wordpress/sublinks.php [new file with mode: 0644]
mods/wordpress/wordpress_icon_sm.png [new file with mode: 0644]
mods/wordpress/wordpress_logo.png [new file with mode: 0644]
mods/wordpress/wp_config.php [new file with mode: 0644]
mods/wordpress/wp_connect.php [new file with mode: 0644]
mods/wordpress/wp_plugin/external-database-authentication/ext_db_auth.php [new file with mode: 0644]
mods/wordpress/wp_plugin/external-database-authentication/readme.txt [new file with mode: 0644]

index ed9504d..0a83edd 100644 (file)
@@ -13,4 +13,5 @@
 // $Id: login.php 6575 2006-08-22 18:12:30Z joel $
 
 require('bounce.php');
+
 ?>
\ No newline at end of file
index 0d65eaf..690a33a 100644 (file)
@@ -141,7 +141,6 @@ if (!isset($_POST['submit'])) {
 }
 ?>
 
-
 <script type="text/javascript">
        function apache_mod_rewrite_toggler(enabled){
                var obj_y = document.getElementById('mr_y');
index f227661..d9061b1 100644 (file)
@@ -42,6 +42,7 @@ if (isset($_POST['social_submit'])) {
        }
        $_config['just_social'] = $_POST['just_social'];
 }
+
 require(AT_INCLUDE_PATH.'header.inc.php');
 
 if ($_config['check_version']) {
@@ -60,104 +61,109 @@ if ($_config['allow_instructor_requests'] && admin_authenticate(AT_ADMIN_PRIV_US
 
 
 
-       $update_server = "update.atutor.ca"; 
+$update_server = "update.atutor.ca"; 
+
+$file = fsockopen ($update_server, 80, $errno, $errstr, 15);
+
+if ($file) 
+{
+       // get patch list
+       $patch_folder = "http://" . $update_server . '/patch/' . str_replace('.', '_', VERSION) . '/';
 
-       $file = fsockopen ($update_server, 80, $errno, $errstr, 15);
+       $patch_list_xml = @file_get_contents($patch_folder . 'patch_list.xml');
        
-       if ($file
+       if ($patch_list_xml
        {
-               // get patch list
-               $patch_folder = "http://" . $update_server . '/patch/' . str_replace('.', '_', VERSION) . '/';
-
-               $patch_list_xml = @file_get_contents($patch_folder . 'patch_list.xml');
+               require_once('../mods/_standard/patcher/classes/PatchListParser.class.php');
+               $patchListParser = new PatchListParser();
+               $patchListParser->parse($patch_list_xml);
+               $patch_list_array = $patchListParser->getMyParsedArrayForVersion(VERSION);
                
-               if ($patch_list_xml) 
-               {
-                       require_once('../mods/_standard/patcher/classes/PatchListParser.class.php');
-                       $patchListParser = new PatchListParser();
-                       $patchListParser->parse($patch_list_xml);
-                       $patch_list_array = $patchListParser->getMyParsedArrayForVersion(VERSION);
-                       
-                       if (count($patch_list_array)) {
-                               foreach ($patch_list_array as $row_num => $patch) {
-                                       $patch_ids .= '\'' . $patch['atutor_patch_id'] . '\', ';
-                               }
-                                       
-                               $sql = "select count(distinct atutor_patch_id) cnt_installed_patches from ".TABLE_PREFIX."patches " .
-                                      "where atutor_patch_id in (" . substr($patch_ids, 0, -2) .")".
-                                      " and status like '%Installed'";
-                       
-                               $result = mysql_query($sql, $db) or die(mysql_error());
-                               $row = mysql_fetch_assoc($result);
+               if (count($patch_list_array)) {
+                       foreach ($patch_list_array as $row_num => $patch) {
+                               $patch_ids .= '\'' . $patch['atutor_patch_id'] . '\', ';
+                       }
                                
-                               $cnt = count($patch_list_array) - $row['cnt_installed_patches'];
-                               $savant->assign('cnt', $cnt);
-       
-                               if ($cnt > 0)
-                               {
-       
+                       $sql = "select count(distinct atutor_patch_id) cnt_installed_patches from ".TABLE_PREFIX."patches " .
+                              "where atutor_patch_id in (" . substr($patch_ids, 0, -2) .")".
+                              " and status like '%Installed'";
+               
+                       $result = mysql_query($sql, $db) or die(mysql_error());
+                       $row = mysql_fetch_assoc($result);
+                       
+                       $cnt = count($patch_list_array) - $row['cnt_installed_patches'];
+                       $savant->assign('cnt', $cnt);
+
+                       if ($cnt > 0)
+                       {
+
+
 
-       
-                               }
                        }
                }
-       } 
+       }
+} 
+
 if (!isset($_config['db_size']) || ($_config['db_size_ttl'] < time())) {
-                               $_config['db_size'] = 0;
-                               $sql = 'SHOW TABLE STATUS';
-                               $result = mysql_query($sql, $db);
-                               while($row = mysql_fetch_assoc($result)) {
-                                       $_config['db_size'] += $row['Data_length']+$row['Index_length'];
-                               
-                               }
+       $_config['db_size'] = 0;
+       $sql = 'SHOW TABLE STATUS';
+       $result = mysql_query($sql, $db);
+       while($row = mysql_fetch_assoc($result)) {
+               $_config['db_size'] += $row['Data_length']+$row['Index_length'];
+       
+       }
 
-                               $sql = "REPLACE INTO ".TABLE_PREFIX."config VALUES ('db_size', '{$_config['db_size']}')";
-                               mysql_query($sql, $db);
+       $sql = "REPLACE INTO ".TABLE_PREFIX."config VALUES ('db_size', '{$_config['db_size']}')";
+       mysql_query($sql, $db);
+
+       // get disk usage if we're on *nix
+       if (DIRECTORY_SEPARATOR == '/') {
+               $du = @shell_exec('du -sk '.escapeshellcmd(AT_CONTENT_DIR));
+               if ($du) {
+                       $_config['du_size'] = (int) $du;
+                       $sql = "REPLACE INTO ".TABLE_PREFIX."config VALUES ('du_size', '{$_config['du_size']}')";
+                       mysql_query($sql, $db);
                        
-                               // get disk usage if we're on *nix
-                               if (DIRECTORY_SEPARATOR == '/') {
-                                       $du = @shell_exec('du -sk '.escapeshellcmd(AT_CONTENT_DIR));
-                                       if ($du) {
-                                               $_config['du_size'] = (int) $du;
-                                               $sql = "REPLACE INTO ".TABLE_PREFIX."config VALUES ('du_size', '{$_config['du_size']}')";
-                                               mysql_query($sql, $db);
-                                               
-                                       }
-                               }
-
-                               $ttl = time() + 24 * 60 * 60; // every 1 day.
-                               $sql = "REPLACE INTO ".TABLE_PREFIX."config VALUES ('db_size_ttl', '$ttl')";
-                               mysql_query($sql, $db);
-                               
-                       }
+               }
+       }
 
-                       $sql = "SELECT COUNT(*) AS cnt FROM ".TABLE_PREFIX."courses";
-                       $result = mysql_query($sql, $db);
-                       $row = mysql_fetch_assoc($result);
-                       $num_courses = $row['cnt'];
-                       $savant->assign('num_courses', $num_courses);
+       $ttl = time() + 24 * 60 * 60; // every 1 day.
+       $sql = "REPLACE INTO ".TABLE_PREFIX."config VALUES ('db_size_ttl', '$ttl')";
+       mysql_query($sql, $db);
+       
+}
 
-                       $sql = "SELECT COUNT(*) AS cnt FROM ".TABLE_PREFIX."members";
-                       $result = mysql_query($sql, $db);
-                       $row = mysql_fetch_assoc($result);
-                       $num_users = $row['cnt'];
-                       $savant->assign('num_users', $num_users);
+$sql = "SELECT COUNT(*) AS cnt FROM ".TABLE_PREFIX."courses";
+$result = mysql_query($sql, $db);
+$row = mysql_fetch_assoc($result);
+$num_courses = $row['cnt'];
+$savant->assign('num_courses', $num_courses);
 
-                       $sql = "SELECT COUNT(*) AS cnt FROM ".TABLE_PREFIX."admins";
-                       $result = mysql_query($sql, $db);
-                       $row = mysql_fetch_assoc($result);
-                       $num_users += $row['cnt'];
-                       
+$sql = "SELECT COUNT(*) AS cnt FROM ".TABLE_PREFIX."members";
+$result = mysql_query($sql, $db);
+$row = mysql_fetch_assoc($result);
+$num_users = $row['cnt'];
+$savant->assign('num_users', $num_users);
 
-                       $sql = "SELECT VERSION()";
-                       $result = mysql_query($sql, $db);
-                       $row = mysql_fetch_array($result);
-                       $mysql_version = $row[0];
+$sql = "SELECT COUNT(*) AS cnt FROM ".TABLE_PREFIX."admins";
+$result = mysql_query($sql, $db);
+$row = mysql_fetch_assoc($result);
+$num_users += $row['cnt'];
+
+
+$sql = "SELECT VERSION()";
+$result = mysql_query($sql, $db);
+$row = mysql_fetch_array($result);
+$mysql_version = $row[0];
 
 $savant->assign('path_length', $path_length);
 $savant->assign('pages', $_pages);
 $savant->assign('db_size', $_config['db_size']);
 $savant->assign('du_size', $_config['du_size']);
 $savant->assign('row', $row);
+
 $savant->display('admin/index.tmpl.php');
-require(AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
+
+require(AT_INCLUDE_PATH.'footer.inc.php'); 
+
+?>
\ No newline at end of file
index 390cc37..ea4477a 100644 (file)
@@ -151,6 +151,11 @@ if (!empty($_REQUEST['pu'])) {
        }
 } elseif (!empty($_REQUEST['p'])) {
        //For search
+    //p is a relative path, check that.  #4773
+    if (strpos($_REQUEST['p'], 'http') !== false) {
+        //if not relative, reset it.
+        $_REQUEST['p'] = "";
+    }
        $page = urldecode($_REQUEST['p']);
 } elseif (($_config['pretty_url'] > 0) && preg_match('/bounce.php\?course=([\d]+)$/', $_SERVER['REQUEST_URI'])==1) {
        //for browse, and my start page url rewrite.    
@@ -511,4 +516,4 @@ switch ($row['access']){
 } // end switch
  
 
-?>
\ No newline at end of file
+?>
index a49f51f..2c5bec4 100644 (file)
@@ -162,10 +162,9 @@ if (isset($_REQUEST['auto_login']))
        }
 }
 
-require(AT_INCLUDE_PATH.'header.inc.php'); ?>
+require(AT_INCLUDE_PATH.'header.inc.php'); 
 
-
-
-<?php
 $savant->display('confirm.tmpl.php');
-require(AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
+
+require(AT_INCLUDE_PATH.'footer.inc.php'); 
+?>
\ No newline at end of file
index aa34f53..68b1840 100644 (file)
@@ -147,9 +147,7 @@ global $_custom_head;
 $_custom_head .= '
        <script language="javascript" type="text/javascript">
        //<!--
-       jQuery(function() {
-       jQuery(\'a.tooltip\').tooltip( { showBody: ": ", showURL: false } );
-       } );
+               jQuery(".tooltip").tooltip();
        //-->
        </script>
 ';
diff --git a/docs/documentation/admin/basiclti_external_tools.php b/docs/documentation/admin/basiclti_external_tools.php
new file mode 100644 (file)
index 0000000..4363b06
--- /dev/null
@@ -0,0 +1,112 @@
+<?php require('../common/body_header.inc.php'); $lm = '$LastChangedDate: 2006-06-29 11:25:07 -0400 (Thu, 29 Jun 2006) $'; ?>
+
+<h2>Creating and Adding External Tools</h2>
+       <p>The External Tools utility allows ATutor administrators and instructors to link external tools into ATutor, and to
+associate those tools with content as learning activities. External tools that support the <strong>BasicLTI</strong> tool provider standard may be added to content here.</p>
+
+
+<h3>Setup A New External Tool </h3>
+<ol>
+<li> Title:  Enter a name for the tool being created in the title field</li>
+<li> ToolID: Create an ID for the tool that will be unique across all tools on the system (e.g. demo_tool.ocadu.ca) any unique string will do</li>
+<li> Description: Describe the tool, its function, and how it might be used.</li>
+<li> Tool Launch URL: Copy the URL of the tool's BasicLTI launch location. Ensure there is no space at the end of the URL (see the Sample LTI Tool below for demo purposes)</li>
+<li> Enter the Tool Key and secret</li>
+<li> Set various options and Save</li>
+</ol>
+
+<h3>External Tool Options</h3>
+<p>These values may be set by the administrator or the administrator may allow the instructor to set these values in content items.</p>
+
+<h4>Required Settings</h4>
+<ul>
+<li>ToolId (must be unique across system)<br />
+This is a unique identifier that you much choose.  This identifier must be unique across the system.  This identified is used to connect tool content items across exports and imports of the content area.</li>
+
+<li>Tool Launch URL<br />
+This is the launch URL for the external tool.  It is provided by the eternal tool provider and should be entered here.  Generally an external tool provider will give you a URL, key, and secret so that you can access their tool.</li>
+
+<li>Tool Key (oauth_consumer_key)<br />
+This is the launch key for the external tool.  It is provided by the external tool provider and should be entered here.  Generally an external tool provider will give you a URL, key, and secret so that you can access their tool.</li>
+
+<li>Tool Secret<br />
+This is the launch key for the external tool.  It is provided by the eternal tool provider and should be entered here.  Generally an external tool provider will give you a URL, key, and secret so that you can access their tool.</li>
+</ul>
+
+<h4>Optional External Tool Settings</h4>
+
+<ul>
+<li>Frame Height<br />
+This allows you to control the height of the frame that will contain the external tool.</li>
+
+<li>Allow Frame Height to be Changed<br />
+The frame height may be specified for a tool by the administrator, or the administrator may allow the instructor to change the frame height.</li>
+
+<li>Launch Tool in Pop Up Window<br />
+Normally tools are launched in an iframe at the bottom of an ATutor content page.  This option can be used so that the tool opens in a new browser window by clicking a link at the bottom of a content page, which replaces the default iframe. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Launch Tool in Debug Mode<br />
+This option should normally be off except when you are having problems with tool launching.   When this option is turned on, The launch is 
+paused part-way through to allow you to examine the data to be sent to the external tool.  You are then given an option to continue the launch
+by pressing a button. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Send User Names to External Tool<br />
+This option determines whether you want to send user names to the external tool. You should only send user names to trusted tools and you should make sure that if you share user names with the external tools that you are following all appropriate regulations regarding student privacy. Sending user names is optional data in the Basic LTI specification although some tools may require user names to function properly.  
+This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Send User Mail Addresses to External Tool<br />
+This option determines whether you want to send user mail addresses to the external tool.You should only send user mail addresses to trusted tools and you should make sure that
+if you share user addresses with the external tools that you are following all appropriate regulations regarding student privacy.
+Sending user mail addresses is optional data in the Basic LTI specification although some tools may require user names to function properly.  
+This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Accept Grades From External Tool<br />
+Some tools can send grades back to ATutor through a Basic LTI extension REST web service.   If the external tool has the capability of
+using these services and you would like to allow the tool to send grades back to ATutor, you can enable this option.   When you author
+an external tool content item and enable this option, the tool will only be able to read and write grades in a single grade book item that 
+you associate with the content item. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Allow External Tool To Retrieve Roster<br />
+Some tools can retrieve the entire course roster through a Basic LTI extension REST web service.  If the external tool has the capability of 
+using these services and you would like to provide the entire course roster to the tool then you can enable this option.  If this option is enabled, it respects the privacy option setting as to whether or not to release user names and email addresses.   If these are configured to be provided on launches and the tool can retrieve the entire roster, then user names and mail addresses are included in the roster when it is retrieved.  This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Allow External Tool to use the Setting Service<br />
+This option allows the external tool to store up to 8K of data in the content item.  Typically the external tool uses this area for a resource 
+setting or perhaps a playlist as selected by the user. In particular it does not allow a separate 8K setting for each user for a content item. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Custom Parameters
+Sometimes the external tool requires that you send additional custom parameters along with the launch. The typical use of this would be to specify an ISBN number for a book associated with the launch or to select a particular content item within a content repository.   Different tools will use this capability differently.  Typically these will be specified as a keyword and a value such as<br />
+
+<strong>isbn=929293939</strong>
+</li>
+</ul>
+<h3>BasicLTI Resources</h3>
+<p>Sample LTI Tool for Testing/Demo Purposes. Copy this URL, and its associated key and secret, into the corresponding fields in the Create External Tool screen to setup a simple demonstration tool.<br />
+http://www.imsglobal.org/developers/BLTI/tool.php<br />
+key: lmsng.school.edu<br />
+secret: secret<br />
+</p>
+
+<h4>Tools Currently with BasicLTI Provider Capability</h4>
+<ul>
+<li>QuestionMark<br />
+<a href="http://www.questionmark.com/">http://www.questionmark.com/</a></li>
+<li>Noteflight<br />
+<a href="http://www.noteflight.com/">http://www.noteflight.com/</a></li>
+<li>Wimba<br />
+http://www.wimba.com/</a></li>
+<li>Elluminate<br />
+<a href="http://www.elluminate.com/">http://www.elluminate.com/</a></li>
+</ul>
+
+<p>A current list of BasicLTI conformant systems can be found at:<br />
+<a href="http://www.imsglobal.org/cc/statuschart.html">http://www.imsglobal.org/cc/statuschart.html</a></p>
+<p>
+More about the BasicLTI Standard
+<a href="http://www.imsglobal.org/lti/">http://www.imsglobal.org/lti/</a></p>
+
+<p>Here are a couple videos with more information:<br />
+<a href="http://www.vimeo.com/18074396">http://www.vimeo.com/18074396</a><br />
+<a href="http://vimeo.com/14100773">http://vimeo.com/14100773</a></p>
+
+<?php require('../common/body_footer.inc.php'); ?>
\ No newline at end of file
index 7ee538f..0ae74be 100644 (file)
@@ -38,4 +38,5 @@
        $_pages['patcher.php']                       = 'Patcher';
        $_pages['create_patches.php']                = 'Create Patches';
        $_pages['troubleshooting.php']               = 'Troubleshooting';
+       $_pages['basiclti_external_tools.php']       = 'External Tools';
 ?>
index 7533541..3649d79 100644 (file)
@@ -111,6 +111,7 @@ if ($section == 'admin'){
                                                                                'categories.php'
                                                                                ),
                                'modules.php',
+                               'basiclti_external_tools.php',
                                'patcher.php' => array(
                                                                                'create_patches.php'
                                                                                ),
@@ -204,7 +205,8 @@ if ($section == 'admin'){
                                                                                                'export_content.php',
                                                                                                'packages.php',
                                                                                                'tile.php',
-                                                                                               'file_storage.php'
+                                                                                               'file_storage.php',
+                                                                                               'fs_new_file.php'
                                                                                                ),
                                'my_network.php' => array(                                      
                                                                                        'my_contacts.php',                      
index ca43df3..cf3466c 100644 (file)
@@ -1081,7 +1081,7 @@ $msg->printAll();
        <h3><a name="var-base_href"></a>17.3 $_base_href</h3>\r
                <h4>Description</h4>\r
                <p><kbd>constant string $_base_href</kbd></p>\r
-               <p>The full URL to ATutor's base installation. Supports both regular and SSL protocols. Example: <kbd>http://myserver.org/files/ATutor/</kbd>.</p>\r
+               <p>The full URL to the base href of the current page, an equivalence of the "href" attribute value in the page html &lt;base&gt; tag. Supports both regular and SSL protocols. Example: <kbd>http://myserver.org/files/ATutor/</kbd>.</p>\r
 \r
                <h4>Location</h4>\r
                        <p><kbd>`include/lib/constants.inc.php`</kbd></p>\r
@@ -1089,7 +1089,7 @@ $msg->printAll();
        <h3><a name="var-base_path"></a>17.4 $_base_path</h3>\r
                <h4>Description</h4>\r
                <p><kbd>constant string $_base_path</kbd></p>\r
-               <p>The full absolute path to ATutor's base installation. Example: <kbd>/files/ATutor/</kbd>.</p>\r
+               <p>Extracted from $_base_href, the full absolute base path of the current page. Example: <kbd>/files/ATutor/</kbd>.</p>\r
 \r
                <h4>Location</h4>\r
                        <p><kbd>`include/lib/constants.inc.php`</kbd></p>\r
diff --git a/docs/documentation/general/assignment_dropbox.php b/docs/documentation/general/assignment_dropbox.php
new file mode 100644 (file)
index 0000000..a12c169
--- /dev/null
@@ -0,0 +1,7 @@
+<?php require('../common/body_header.inc.php'); $lm = '$LastChangedDate: 2011-05-30 14:53:12 -0400 (Mon, 29 May 2011) $'; ?>
+
+<h2>Assignment Dropbox</h2>
+       <p>   Once the Assignment Dropbox has been turned on in Course Tools by the instructor, a link "Assignment Dropbox" is displayed either on the course home page or as a main navigation tab. The dropbox lists all the assignments that are assigned to the student viewing, up to the submission "cut off date." Students can upload or delete assignment files up until the "due date", after which assignment submissions are locked and can no longer be modified by the student. The Delete button is greyed out when the due date is passed. The Upload button remains available to students until the cut off date.
+</p>
+
+<?php require('../common/body_footer.inc.php'); ?>
diff --git a/docs/documentation/general/fs_new_file.php b/docs/documentation/general/fs_new_file.php
new file mode 100644 (file)
index 0000000..ed13d7a
--- /dev/null
@@ -0,0 +1,16 @@
+<?php require('../common/body_header.inc.php'); $lm = '$LastChangedDate: 2008-11-04 14:52:54 -0500 (Tue, 04 Nov 2008) $'; ?>
+
+<h2>File Storage - New/Edit File</h2>
+       <p>Using the File Storage utility, it is possible to create standalone HTML files or edit existing files you have uploaded or created.</p>
+<ol>
+       <li>While in areas of File Storage where you have permissions to create or edit files, open the New File area and click on "<strong>Create a New File</strong>".</li>
+       <li>If you are editing a file, select it from the list of available files in File Storage, then press the <strong>Edit</strong> button below.</li>
+       <li>Enter a <strong>File Name</strong>. It should end with the ".html" or ".txt" file extention to make it available for editing later.</li>
+       <li>Optionally include a <strong> Description</strong> for the file. </li>
+       <li>Optionally include a <strong>Revision Comment</strong> that describes the changes in the file (when you are editing, as opposed to creating a new file) when the file revisions feature is turned on in the File Storage area.</li>
+       <li>Enter content marked up with HTML in the <strong>Contents</strong> area. Turn on the Visual Editor if you prefer to create HTML files using a WYSIWYG editor. </li>
+       <li>Press the <strong>Save</strong> button to save the file.</li>
+</ol>
+
+
+<?php require('../common/body_footer.inc.php'); ?>
index bf023ab..4c7dc70 100644 (file)
@@ -16,6 +16,7 @@
        $_pages['packages.php']                                 = 'Packages';
        $_pages['tile.php']                                             = 'TILE Repository Search';
        $_pages['file_storage.php']                             = 'File Storage';
+       $_pages['fs_new_file.php']                              = 'New/Edit File';
     $_pages['my_network.php']                          = 'My Networking';
     $_pages['my_contacts.php']                         = 'My Contacts';
     $_pages['my_groups.php']                           = 'Network Groups';
@@ -26,5 +27,6 @@
        $_pages['pa_albums.php']                                = 'Albums';
        $_pages['pa_photo.php']                                 = 'Photo';
        $_pages['pa_comments.php']                              = 'Comments';
+       $_pages['assignment_dropbox.php']                               = 'Assignment Dropbox';
 
 ?>
\ No newline at end of file
index 37c544d..bf1ebc6 100644 (file)
@@ -1,4 +1,11 @@
 <?php\r
-header('Location: index/index.php?'.$_GET['lang']);\r
+// Sanitize the input language code\r
+$lang_code = trim($_GET['lang']);\r
+\r
+if (!preg_match("/^[a-zA-Z]+(-)?([a-zA-Z0-9])*$/", $lang_code)) {\r
+       unset($lang_code);\r
+}\r
+\r
+header('Location: index/index.php?'.$lang_code);\r
 exit;\r
 ?>
\ No newline at end of file
diff --git a/docs/documentation/instructor/assignment_dropbox.php b/docs/documentation/instructor/assignment_dropbox.php
new file mode 100644 (file)
index 0000000..d9eb33a
--- /dev/null
@@ -0,0 +1,7 @@
+<?php require('../common/body_header.inc.php'); $lm = '$LastChangedDate: 2011-05-30 14:53:12 -0400 (Mon, 29 May 2011) $'; ?>
+
+<h2>Assignment Dropbox</h2>
+       <p>  Assignment Dropbox provides the same functionality as assignment submission in the "File Storage" tool, but with fewer steps and with a more intuitive interface. As an extension of "File Storage", when instructors create an assignment for a group, this group must have "File Storage" enabled, otherwise, the students are not able to submit assignments via Assignment Dropbox. If the Assignment Dropbox module is installed, a drop box is setup automatically when an assignment is created for all students in a course.
+</p>
+
+<?php require('../common/body_footer.inc.php'); ?>
index b26e9d4..c1af134 100644 (file)
 
        </dl>
 
+<h2>Creating and Adding External Tools</h2>
+       <p>The External Tools utility allows ATutor administrators and instructors to link external tools into ATutor, and to
+associate those tools with content as learning activities. External tools that support the <strong>BasicLTI</strong> tool provider standard may be added to content here.</p>
+
+
+<h3>Add a Tool to Course Content</h3>
+<ol>
+<li>Create a new content page and save it or edit an existing page.</li>
+<li>Click on the External Tool icon in the content editor toolbar while editing that page.</li>
+<li>Select from the available tools to add it as a Learning Activity.</li>
+<li>Save the content page, and close the content editor.</li>
+<li>The tool appears at the bottom of the page as a link that opens a popup window.</li>
+</ol>
+<p><strong>Or,</strong></p>
+
+<h3>Setup a New Tool </h3>
+<ol>
+<li> Under the Manage Tab, click on Create External Tool in the External Tools section</li>
+<li> Fill in the required fields, as described above for Administrators.</li>
+<li> Set the optional settings below and Save</li>
+<li> Follow the steps above to Add a Tool to Course Content, to use your new tool.</li>
+</ol>
+
+
+<h3>External Tool Options</h3>
+<p>These values may be set by the administrator or the administrator may allow the instructor to set these values in content items.</p>
+
+<h4>Required Settings</h4>
+<ul>
+<li>ToolId (must be unique across system)<br />
+This is a unique identifier that you much choose.  This identifier must be unique across the system.  This identified is used to connect tool content items across exports and imports of the content area.</li>
+
+<li>Tool Launch URL<br />
+This is the launch URL for the external tool.  It is provided by the eternal tool provider and should be entered here.  Generally an external tool provider will give you a URL, key, and secret so that you can access their tool.</li>
+
+<li>Tool Key (oauth_consumer_key)<br />
+This is the launch key for the external tool.  It is provided by the external tool provider and should be entered here.  Generally an external tool provider will give you a URL, key, and secret so that you can access their tool.</li>
+
+<li>Tool Secret<br />
+This is the launch key for the external tool.  It is provided by the eternal tool provider and should be entered here.  Generally an external tool provider will give you a URL, key, and secret so that you can access their tool.</li>
+</ul>
+
+<h4>Optional External Tool Settings</h4>
+
+<ul>
+<li>Frame Height<br />
+This allows you to control the height of the frame that will contain the external tool.</li>
+
+<li>Allow Frame Height to be Changed<br />
+The frame height may be specified for a tool by the administrator, or the administrator may allow the instructor to change the frame height.</li>
+
+<li>Launch Tool in Pop Up Window<br />
+Normally tools are launched in an iframe at the bottom of an ATutor content page.  This option can be used so that the tool opens in a new browser window by clicking a link at the bottom of a content page, which replaces the default iframe. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Launch Tool in Debug Mode<br />
+This option should normally be off except when you are having problems with tool launching.   When this option is turned on, The launch is 
+paused part-way through to allow you to examine the data to be sent to the external tool.  You are then given an option to continue the launch
+by pressing a button. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Send User Names to External Tool<br />
+This option determines whether you want to send user names to the external tool. You should only send user names to trusted tools and you should make sure that if you share user names with the external tools that you are following all appropriate regulations regarding student privacy. Sending user names is optional data in the Basic LTI specification although some tools may require user names to function properly.  
+This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Send User Mail Addresses to External Tool<br />
+This option determines whether you want to send user mail addresses to the external tool.You should only send user mail addresses to trusted tools and you should make sure that
+if you share user addresses with the external tools that you are following all appropriate regulations regarding student privacy.
+Sending user mail addresses is optional data in the Basic LTI specification although some tools may require user names to function properly.  
+This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Accept Grades From External Tool<br />
+Some tools can send grades back to ATutor through a Basic LTI extension REST web service.   If the external tool has the capability of
+using these services and you would like to allow the tool to send grades back to ATutor, you can enable this option.   When you author
+an external tool content item and enable this option, the tool will only be able to read and write grades in a single grade book item that 
+you associate with the content item. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Allow External Tool To Retrieve Roster<br />
+Some tools can retrieve the entire course roster through a Basic LTI extension REST web service.  If the external tool has the capability of 
+using these services and you would like to provide the entire course roster to the tool then you can enable this option.  If this option is enabled, it respects the privacy option setting as to whether or not to release user names and email addresses.   If these are configured to be provided on launches and the tool can retrieve the entire roster, then user names and mail addresses are included in the roster when it is retrieved.  This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Allow External Tool to use the Setting Service<br />
+This option allows the external tool to store up to 8K of data in the content item.  Typically the external tool uses this area for a resource 
+setting or perhaps a playlist as selected by the user. In particular it does not allow a separate 8K setting for each user for a content item. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.</li>
+
+<li>Custom Parameters
+Sometimes the external tool requires that you send additional custom parameters along with the launch. The typical use of this would be to specify an ISBN number for a book associated with the launch or to select a particular content item within a content repository.   Different tools will use this capability differently.  Typically these will be specified as a keyword and a value such as<br />
+
+<strong>isbn=929293939</strong>
+</li>
+
+</ul>  
+
+<h3>BasicLTI (external tools) Resources</h3>
+<p>Sample LTI Tool for Testing/Demo Purposes. Copy this URL, and its associated key and secret, into the corresponding fields in the Create External Tool screen to setup a simple demonstration tool.<br />
+http://www.imsglobal.org/developers/BLTI/tool.php<br />
+key: lmsng.school.edu<br />
+secret: secret<br />
+</p>
+
+<h4>Tools Currently with BasicLTI Provider Capability</h4>
+<ul>
+<li>QuestionMark<br />
+<a href="http://www.questionmark.com/">http://www.questionmark.com/</a></li>
+<li>Noteflight<br />
+<a href="http://www.noteflight.com/">http://www.noteflight.com/</a></li>
+<li>Wimba<br />
+http://www.wimba.com/</a></li>
+<li>Elluminate<br />
+<a href="http://www.elluminate.com/">http://www.elluminate.com/</a></li>
+</ul>
+
+<p>A current list of BasicLTI conformant systems can be found at:<br />
+<a href="http://www.imsglobal.org/cc/statuschart.html">http://www.imsglobal.org/cc/statuschart.html</a></p>
+<p>
+More about the BasicLTI Standard
+<a href="http://www.imsglobal.org/lti/">http://www.imsglobal.org/lti/</a></p>
+
+<p>Here are a couple videos with more information:<br />
+<a href="http://www.vimeo.com/18074396">http://www.vimeo.com/18074396</a><br />
+<a href="http://vimeo.com/14100773">http://vimeo.com/14100773</a></p>
 <?php require('../common/body_footer.inc.php'); ?>
\ No newline at end of file
index d7cf433..5dbbc20 100644 (file)
@@ -7,6 +7,7 @@
     $_pages['side_menu.php']                     = 'Side Menu';
     $_pages['announcements.php']                 = 'Announcements';
     $_pages['assignments.php']                  = 'Assignments';
+    $_pages['assignment_dropbox.php']                   = 'Assignment Dropbox';
     $_pages['backups.php']                       = 'Backups';
     $_pages['creating_restoring.php']            = 'Creating &amp; Restoring Backups';
     $_pages['downloading_uploading.php']         = 'Downloading &amp; Uploading Backups';
index 74d0071..c225f6a 100644 (file)
@@ -27,17 +27,17 @@ $args = substr($_SERVER['PHP_SELF'], strlen($_SERVER['SCRIPT_NAME']));
 $file = AT_CONTENT_DIR . $args;
 
 //check that this file is within the content directory & exists
+if (preg_match('/^\/[0-9]+\.html$/', $args) === 1) {
+    $real = realpath($file);
+    if (file_exists($real) && substr($real, 0, strlen(AT_CONTENT_DIR)) == AT_CONTENT_DIR) {
+       header('Content-Type: text/html');
+           echo file_get_contents($real);
+           exit;
+       }
+} 
+header('HTTP/1.1 404 Not Found');
+exit;
 
-$real = realpath($file);
 
-if (substr($real, 0, strlen(AT_CONTENT_DIR)) == AT_CONTENT_DIR) {
-       header('Content-Type: text/html');
-       echo file_get_contents($real);
-       exit;
-} else {
-       header('HTTP/1.1 404 Not Found');
-       exit;
-}
 
-
-?>
\ No newline at end of file
+?>
index 9718746..125e1d6 100644 (file)
@@ -356,7 +356,8 @@ class UrlRewrite  {
                     '/tile_search'  => 'mods/_standard',
                     '/tests'           =>      'mods/_standard',
                     '/tracker'         =>      'mods/_standard',
-                    '/reading_list'    =>      'mods/_standard'
+                    '/reading_list'    =>      'mods/_standard',
+                    '/assignment_dropbox'      =>      'mods/_standard'
                                );
 
                if ($this->path != ''){
index f685f86..e051d2c 100644 (file)
@@ -27,7 +27,7 @@ global $_config;
        /****************************************************************************************/
        /* VERY IMPORTANT
           IN KEEPING WITH THE TERMS OF THE ATUTOR LICENCE AGREEMENT (GNU GPL), THE FOLLOWING
-          COPYRIGHT LINES MAY NOT BE ALTERED IN ANY WAY.
+          COPYRIGHT LINES MAY NOT BE ALTERED WITHOUT EXPRESSED CONSENT FROM ATUTOR OR IDI.
        */
 
 ?>
index 460a6ba..71ad76d 100644 (file)
@@ -18,7 +18,7 @@ if($languageManager->getNumLanguages() < 2){
        return;
 }
 ?>
-<div align="center" id="lang" style="clear: left"><br /><?php
+<div align="center" id="langdiv" style="clear: left"><br /><?php
 
        if ($languageManager->getNumLanguages() > 5) {
                echo '<form method="get" action="'.htmlspecialchars($_my_uri, ENT_QUOTES).'">';
index af55676..14ca77e 100644 (file)
@@ -47,7 +47,7 @@ $_config_defaults['theme_categories']          = 0; // disabled
 $_config_defaults['main_defaults']                = 'mods/_standard/forums/forum/list.php|mods/_core/glossary/index.php|mods/_standard/file_storage/index.php|mods/_standard/social/index.php|mods/_standard/sitemap/sitemap.php|mods/_standard/photos/index.php';
 $_config_defaults['home_defaults']             = 'mods/_standard/file_storage/index.php|mods/_standard/tests/my_tests.php|mods/_standard/tracker/my_stats.php|mods/_standard/directory/directory.php';
 $_config_defaults['side_defaults']             = 'social|menu_menu|related_topics|users_online|glossary|search|poll|posts';
-$_config_defaults['pref_defaults']            = 'a:35:{s:10:"PREF_THEME";s:7:"default";s:17:"PREF_MOBILE_THEME";s:6:"mobile";s:15:"PREF_FORM_FOCUS";i:1;s:14:"PREF_NUMBERING";i:0;s:13:"PREF_TIMEZONE";s:1:"0";s:18:"PREF_JUMP_REDIRECT";i:1;s:19:"PREF_CONTENT_EDITOR";i:2;s:15:"PREF_SHOW_GUIDE";i:1;s:14:"PREF_FONT_FACE";s:0:"";s:15:"PREF_FONT_TIMES";s:3:"1.0";s:14:"PREF_FG_COLOUR";s:0:"";s:14:"PREF_BG_COLOUR";s:0:"";s:14:"PREF_HL_COLOUR";s:0:"";s:28:"PREF_USE_ALTERNATIVE_TO_TEXT";i:0;s:16:"PREF_ALT_TO_TEXT";s:5:"audio";s:34:"PREF_ALT_TO_TEXT_APPEND_OR_REPLACE";s:6:"append";s:25:"PREF_ALT_TEXT_PREFER_LANG";s:2:"en";s:29:"PREF_USE_ALTERNATIVE_TO_AUDIO";i:0;s:17:"PREF_ALT_TO_AUDIO";s:4:"text";s:35:"PREF_ALT_TO_AUDIO_APPEND_OR_REPLACE";s:6:"append";s:26:"PREF_ALT_AUDIO_PREFER_LANG";s:2:"en";s:30:"PREF_USE_ALTERNATIVE_TO_VISUAL";i:0;s:18:"PREF_ALT_TO_VISUAL";s:4:"text";s:36:"PREF_ALT_TO_VISUAL_APPEND_OR_REPLACE";s:6:"append";s:27:"PREF_ALT_VISUAL_PREFER_LANG";s:2:"en";s:15:"PREF_DICTIONARY";i:1;s:14:"PREF_THESAURUS";i:1;s:16:"PREF_NOTE_TAKING";i:1;s:15:"PREF_CALCULATOR";i:1;s:11:"PREF_ABACUS";i:1;s:10:"PREF_ATLAS";i:1;s:17:"PREF_ENCYCLOPEDIA";i:1;s:18:"PREF_SHOW_CONTENTS";i:1;s:31:"PREF_SHOW_NEXT_PREVIOUS_BUTTONS";i:1;s:22:"PREF_SHOW_BREAD_CRUMBS";i:1;}';
+$_config_defaults['pref_defaults']            = 'a:35:{s:10:"PREF_THEME";s:7:"default";s:17:"PREF_MOBILE_THEME";s:6:"mobile";s:15:"PREF_FORM_FOCUS";i:1;s:14:"PREF_NUMBERING";i:0;s:13:"PREF_TIMEZONE";s:1:"0";s:18:"PREF_JUMP_REDIRECT";i:1;s:19:"PREF_CONTENT_EDITOR";i:2;s:15:"PREF_SHOW_GUIDE";i:1;s:14:"PREF_FONT_FACE";s:0:"";s:15:"PREF_FONT_TIMES";s:3:"0.8";s:14:"PREF_FG_COLOUR";s:0:"";s:14:"PREF_BG_COLOUR";s:0:"";s:14:"PREF_HL_COLOUR";s:0:"";s:28:"PREF_USE_ALTERNATIVE_TO_TEXT";i:0;s:16:"PREF_ALT_TO_TEXT";s:5:"audio";s:34:"PREF_ALT_TO_TEXT_APPEND_OR_REPLACE";s:6:"append";s:25:"PREF_ALT_TEXT_PREFER_LANG";s:2:"en";s:29:"PREF_USE_ALTERNATIVE_TO_AUDIO";i:0;s:17:"PREF_ALT_TO_AUDIO";s:4:"text";s:35:"PREF_ALT_TO_AUDIO_APPEND_OR_REPLACE";s:6:"append";s:26:"PREF_ALT_AUDIO_PREFER_LANG";s:2:"en";s:30:"PREF_USE_ALTERNATIVE_TO_VISUAL";i:0;s:18:"PREF_ALT_TO_VISUAL";s:4:"text";s:36:"PREF_ALT_TO_VISUAL_APPEND_OR_REPLACE";s:6:"append";s:27:"PREF_ALT_VISUAL_PREFER_LANG";s:2:"en";s:15:"PREF_DICTIONARY";i:1;s:14:"PREF_THESAURUS";i:1;s:16:"PREF_NOTE_TAKING";i:1;s:15:"PREF_CALCULATOR";i:1;s:11:"PREF_ABACUS";i:1;s:10:"PREF_ATLAS";i:1;s:17:"PREF_ENCYCLOPEDIA";i:1;s:18:"PREF_SHOW_CONTENTS";i:1;s:31:"PREF_SHOW_NEXT_PREVIOUS_BUTTONS";i:1;s:22:"PREF_SHOW_BREAD_CRUMBS";i:1;}';
 $_config_defaults['pref_inbox_notify']         = 0; // disabled
 $_config_defaults['pref_is_auto_login']                   = "disable"; // disabled
 $_config_defaults['check_version']                = 0; // disabled
@@ -194,8 +194,8 @@ if (($temp = strpos($_base_href, AT_PRETTY_URL_HANDLER)) > 0){
        $endpos = strlen($_base_href); 
 
 }
-$_base_href     = substr($_base_href, 0, $endpos);
-$_base_path  = substr($_base_href, strlen($server_protocol . $_SERVER['HTTP_HOST']));
+$_base_href    = substr($_base_href, 0, $endpos);
+$_base_path = substr($_base_href, strlen($server_protocol . $_SERVER['HTTP_HOST']));
 
 define('AT_BASE_HREF', $_base_href);
 
@@ -207,7 +207,7 @@ define('AT_GUIDES_PATH', $_base_path . 'documentation/');
 
 define('AT_BACKUP_DIR', AT_CONTENT_DIR . 'backups/'); // where the backups get stored
 
-define('VERSION',              '2.0.2');
+define('VERSION',              '2.0.3');
 define('ONLINE_UPDATE', 3); /* update the user expiry every 3 min */
 
 /* valid date format_types:                                            */
@@ -391,6 +391,10 @@ define('VALIDATE_LENGTH_FOR_DISPLAY',      1);
 /* the length of sublink text display in the course index page, detail view */
 define('SUBLINK_TEXT_LEN', 38);
 
+/* The lock out time for max login attempts */
+define('DEFAULT_VIDEO_PLAYER_WIDTH', 425);   // in pixels
+define('DEFAULT_VIDEO_PLAYER_HEIGHT', 350);  // in pixels
+
 /* The lock out time for max login attempts */
 define('LOGIN_ATTEMPT_LOCKED_TIME', 60);       //in minutes, default an hour, 60 minutes
 
index c8c7270..9a74c05 100644 (file)
@@ -756,7 +756,6 @@ function embed_media($text) {
        for ($i=0;$i<count($media_replace);$i++){
                foreach($media_matches[$i] as $media)
                {
-                       //debug($media);
                        //find width and height for each matched media
                        if (preg_match("/\[media\|([0-9]*)\|([0-9]*)\]*/", $media[0], $matches)) 
                        {
@@ -926,10 +925,9 @@ function format_content($input, $html = 0, $glossary, $simple = false) {
                        $v = str_replace("\r", '', $v);
 
                        $k = str_replace('&lt;', '<', $k);
-                       $k = str_replace('/', '\/', $k);
 
-                       $original_term = $k;
-                       $term = $original_term;
+                       $original_term = str_replace('/', '\/', $k);;
+                       $term = $k;
              if (!$html) {
                 $term = str_replace('<', '&lt;', $term);
             }
@@ -939,16 +937,17 @@ function format_content($input, $html = 0, $glossary, $simple = false) {
             $term = '(\s*'.$term.'\s*)';
                        $term = str_replace(' ','((<br \/>)*\s*)', $term); 
                        
-                       $def = htmlspecialchars($v, ENT_QUOTES, 'UTF-8');               
+                       // Uncomment the line below and comment the following line
+                       // when the jquery UI tooltip supports the html display.
+                       //$def = htmlspecialchars($v, ENT_QUOTES, 'UTF-8');
+                       $def = htmlspecialchars(strip_tags($v), ENT_QUOTES, 'UTF-8');
+                       
                        if ($simple) {
                                $input = preg_replace
                                                ("/(\[\?\])$term(\[\/\?\])/i",
                                                '<a href="'.$simple.'glossary.html#'.urlencode($original_term).'" target="body" class="at-term">\\2</a>',
                                                $input);
-                       } else {/*
-                               $input = preg_replace
-                                               ("/(\[\?\])$term(\[\/\?\])/i",
-                                               '\\2<sup><a class="tooltip" href="'.$_base_path.'mods/_core/glossary/index.php?g_cid='.$_SESSION['s_cid'].htmlentities(SEP).'w='.urlencode($original_term).'#term" title="'.addslashes($original_term).': '.$def.'">?</a></sup>',$input);*/
+                       } else {
                                $input = preg_replace
                                                ("/(\[\?\])".$term."(\[\/\?\])/i",
                                                '<a class="tooltip" href="'.$_base_path.'mods/_core/glossary/index.php?g_cid='.$_SESSION['s_cid'].htmlentities(SEP).'w='.urlencode($original_term).'#term" title="'.htmlentities_utf8($original_term).': '.$def.'">\\2</a>',$input);
index 4d183a8..193216b 100644 (file)
@@ -13,7 +13,7 @@
 
 if (!defined('AT_INCLUDE_PATH')) { exit; }
 
-define('AT_DEVEL', 1);
+define('AT_DEVEL', 0);
 define('AT_ERROR_REPORTING', E_ALL ^ E_NOTICE); // default is E_ALL ^ E_NOTICE, use E_ALL or E_ALL + E_STRICT for developing
 define('AT_DEVEL_TRANSLATE', 0);
 
@@ -49,21 +49,71 @@ if ( get_magic_quotes_gpc() == 1 ) {
     $stripslashes = 'my_null_slashes';
 }
 
+function regenerate_session($reload = false)
+{
+       if(!isset($_SESSION['IPaddress']) || $reload)
+               $_SESSION['IPaddress'] = $_SERVER['REMOTE_ADDR'];
+
+       if(!isset($_SESSION['userAgent']) || $reload)
+               $_SESSION['userAgent'] = $_SERVER['HTTP_USER_AGENT'];
+
+       $session_values = $_SESSION;
+
+       // Set current session to expire in 10 seconds
+       $_SESSION['OBSOLETE'] = true;
+       $_SESSION['EXPIRES'] = time() + 10;
+
+       // Create new session without destroying the old one
+       session_regenerate_id(false);
+
+       // Grab current session ID and close both sessions to allow other scripts to use them
+       $newSession = session_id();
+       session_write_close();
+
+       // Set session ID to the new one, and start it back up again
+       session_id($newSession);
+       session_start();
+
+       $_SESSION = $session_values; 
+}
+
+function check_session()
+{
+       if($_SESSION['OBSOLETE'] && ($_SESSION['EXPIRES'] < time())) {
+               return false;
+       }
+                   
+       if($_SESSION['IPaddress'] != $_SERVER['REMOTE_ADDR']) {
+               return false;
+       }
+                   
+       if($_SESSION['userAgent'] != $_SERVER['HTTP_USER_AGENT']) {
+               return false;
+       }
+                   
+       if(!$_SESSION['OBSOLETE']) {
+               regenerate_session();
+       }
+       return true;
+}
+
 /*
  * structure of this document (in order):
  *
  * 0. load config.inc.php
  * 1. load constants
- * 2. initilize session
- * 3. load language constants
+ * 2. initialize db connection and populate $_config
+ * 3. initialize session
  * 4. enable output compression
- * 5. initilize db connection
- * 6. load cache library
- * 7. initilize session localization
- * 8. load ContentManagement/output/Savant/Message libraries
+ * 5. validate login user
+ * 6. load language
+ * 7. load cache/ContentManagement/output/Savant/Message libraries
  ***/
 
 /**** 0. start system configuration options block ****/
+       //set the timezone, php 5.3+ problem. http://atutor.ca/atutor/mantis/view.php?id=4409
+       date_default_timezone_set('UTC');
+
        error_reporting(0);
        if (!defined('AT_REDIRECT_LOADED')){
                include_once(AT_INCLUDE_PATH.'config.inc.php');
@@ -78,59 +128,15 @@ if ( get_magic_quotes_gpc() == 1 ) {
                header('Location: ' . $relative_path . 'install/not_installed.php');
                exit;
        }
-/*** end system config block ****/
+/*** end system config block ***/
 
 /*** 1. constants ***/
-       if (!defined('AT_REDIRECT_LOADED')){
-               require_once(AT_INCLUDE_PATH.'lib/constants.inc.php');
-       }
-
-/***** 2. start session initilization block ****/
-       if (headers_sent()) {
-               require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
-               $err = new ErrorHandler();
-               trigger_error('VITAL#<br /><br /><code><strong>An error occurred. Output sent before it should have. Please correct the above error(s).' . '</strong></code><br /><hr /><br />', E_USER_ERROR);
-       }
-
-       @set_time_limit(0);
-       @ini_set('session.gc_maxlifetime', '36000'); /* 10 hours */
-       @session_cache_limiter('private, must-revalidate');
-       session_name('ATutorID');
-       error_reporting(AT_ERROR_REPORTING);
-
-       if (headers_sent()) {
-               require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
-               $err = new ErrorHandler();
-               trigger_error('VITAL#<br /><code><strong>Headers already sent. ' .
-                                               'Cannot initialise session.</strong></code><br /><hr /><br />', E_USER_ERROR);
-               exit;
-       }
-
-       ob_start();
-       session_set_cookie_params(0, $_base_path);
-       session_start();
-       $str = ob_get_contents();
-       ob_end_clean();
-       unregister_GLOBALS();
-
-       if ($str) {
-               require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
-               $err = new ErrorHandler();
-               trigger_error('VITAL#<br /><code><strong>Error initializing session. ' .
-                                               'Please varify that session.save_path is correctly set in your php.ini file ' .
-                                               'and the directory exists.</strong></code><br /><hr /><br />', E_USER_ERROR);
-               exit;
-       }
-
-
-/***** end session initilization block ****/
-
-// 4. enable output compression, if it isn't already enabled:
-if ((@ini_get('output_handler') == '') && (@ini_get('zlib.output_handler') == '')) {
-       @ini_set('zlib.output_compression', 1);
+if (!defined('AT_REDIRECT_LOADED')){
+       require_once(AT_INCLUDE_PATH.'lib/constants.inc.php');
 }
 
-/* 5. database connection */
+/*** 2. initialize db connection and populate $_config ***/
+
 if (!defined('AT_REDIRECT_LOADED')){
        require_once(AT_INCLUDE_PATH.'lib/mysql_connect.inc.php');
 }
@@ -142,7 +148,69 @@ while ($row = mysql_fetch_assoc($result)) {
        $_config[$row['name']] = $row['value'];
 }
 
-//Check if users=valid
+/***** 3. start session initilization block *****/
+if (headers_sent()) {
+       require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
+       $err = new ErrorHandler();
+       trigger_error('VITAL#<br /><br /><code><strong>An error occurred. Output sent before it should have. Please correct the above error(s).' . '</strong></code><br /><hr /><br />', E_USER_ERROR);
+}
+
+@set_time_limit(0);
+@ini_set('session.gc_maxlifetime', '36000'); /* 10 hours */
+@session_cache_limiter('private, must-revalidate');
+session_name('ATutorID');
+error_reporting(AT_ERROR_REPORTING);
+
+if (headers_sent()) {
+       require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
+       $err = new ErrorHandler();
+       trigger_error('VITAL#<br /><code><strong>Headers already sent. ' .
+                                       'Cannot initialise session.</strong></code><br /><hr /><br />', E_USER_ERROR);
+       exit;
+}
+
+$isHttps = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on")
+           ? false
+           : true;
+ob_start();
+session_set_cookie_params(0, $_config["session_path"], "", $isHttps);
+session_start();
+
+// Regenerate session id at every page refresh to prevent CSRF
+$valid_session = true;
+if (count($_SESSION) == 0) {
+       regenerate_session();
+} else {
+       $valid_session = check_session();
+}
+
+$str = ob_get_contents();
+ob_end_clean();
+unregister_GLOBALS();
+
+// Re-direct to login page at a potential session hijack
+if (!$valid_session) {
+       $_SESSION = array();
+       header('Location: '.AT_BASE_HREF.'login.php');
+       exit;
+}
+
+if ($str) {
+       require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
+       $err = new ErrorHandler();
+       trigger_error('VITAL#<br /><code><strong>Error initializing session. ' .
+                                       'Please varify that session.save_path is correctly set in your php.ini file ' .
+                                       'and the directory exists.</strong></code><br /><hr /><br />', E_USER_ERROR);
+       exit;
+}
+/***** end session initilization block ****/
+
+/**** 4. enable output compression, if it isn't already enabled: ****/
+if ((@ini_get('output_handler') == '') && (@ini_get('zlib.output_handler') == '')) {
+       @ini_set('zlib.output_compression', 1);
+}
+
+/**** 5. validate login user ****/
 if (!isset($_SESSION['course_id']) && !isset($_SESSION['valid_user']) && (!isset($_user_location) || $_user_location != 'public') && !isset($_pretty_url_course_id)) {
        if (isset($in_get) && $in_get && (($pos = strpos($_SERVER['PHP_SELF'], 'get.php/')) !== FALSE)) {
                $redirect = substr($_SERVER['PHP_SELF'], 0, $pos) . 'login.php';
@@ -175,9 +243,6 @@ define('AT_DEFAULT_PREFS',  isset($_config['prefs_default']) ? $_config['prefs_d
 $_config['home_defaults'] .= (isset($_config['home_defaults_2']) ? $_config['home_defaults_2'] : '');
 $_config['main_defaults'] .= (isset($_config['main_defaults_2']) ? $_config['main_defaults_2'] : '');
 
-//set the timezone, php 5.3+ problem. http://atutor.ca/atutor/mantis/view.php?id=4409
-date_default_timezone_set('UTC');
-
 if ($_config['time_zone']) {
        //$sql = "SET time_zone='{$_config['time_zone']}'";
        //mysql_query($sql, $db);
@@ -195,112 +260,114 @@ if ($_config['time_zone']) {
                @putenv("TZ={$_config['time_zone']}");
        }
 }
-/***** 7. start language block *****/
-       // set current language
-       require(AT_INCLUDE_PATH . '../mods/_core/languages/classes/LanguageManager.class.php');
-       $languageManager = new LanguageManager();
+/***** 6. load language *****/
+// set current language
+require(AT_INCLUDE_PATH . '../mods/_core/languages/classes/LanguageManager.class.php');
+$languageManager = new LanguageManager();
 
-       $myLang =& $languageManager->getMyLanguage();
+$myLang =& $languageManager->getMyLanguage();
 
-       if ($myLang === FALSE) {
-               echo 'There are no languages installed!';
-               exit;
-       }
-       $myLang->saveToSession();
-       if (isset($_GET['lang']) && $_SESSION['valid_user']) {
-               if ($_SESSION['course_id'] == -1) {
-                       $myLang->saveToPreferences($_SESSION['login'], 1);      //1 for admin                   
-               } else {
-                       $myLang->saveToPreferences($_SESSION['member_id'], 0);  //0 for non-admin
-               }
+if ($myLang === FALSE) {
+       echo 'There are no languages installed!';
+       exit;
+}
+$myLang->saveToSession();
+if (isset($_GET['lang']) && $_SESSION['valid_user']) {
+       if ($_SESSION['course_id'] == -1) {
+               $myLang->saveToPreferences($_SESSION['login'], 1);      //1 for admin                   
+       } else {
+               $myLang->saveToPreferences($_SESSION['member_id'], 0);  //0 for non-admin
        }
-       $myLang->sendContentTypeHeader();
+}
+$myLang->sendContentTypeHeader();
 
-       /* set right-to-left language */
-       $rtl = '';
-       if ($myLang->isRTL()) {
-               $rtl = 'rtl_'; /* basically the prefix to a rtl variant directory/filename. eg. rtl_tree */
-       }
+/* set right-to-left language */
+$rtl = '';
+if ($myLang->isRTL()) {
+       $rtl = 'rtl_'; /* basically the prefix to a rtl variant directory/filename. eg. rtl_tree */
+}
 /***** end language block ****/
 
-/* 8. load common libraries */
-       require(AT_INCLUDE_PATH.'classes/ContentManager.class.php');  /* content management class */
-       require_once(AT_INCLUDE_PATH.'lib/output.inc.php');           /* output functions */
-       if (!(defined('AT_REDIRECT_LOADED'))){
-               require_once(AT_INCLUDE_PATH . 'classes/UrlRewrite/UrlParser.class.php');       /* pretty url tool */
-       }
-       require(AT_INCLUDE_PATH.'classes/Savant2/Savant2.php');       /* for the theme and template management */
-
-       // set default template paths:
-       $savant = new Savant2();
-       $savant->addPath('template', AT_INCLUDE_PATH . '../themes/default/');
+/* 7. load common libraries */
+require(AT_INCLUDE_PATH.'classes/ContentManager.class.php');  /* content management class */
+require_once(AT_INCLUDE_PATH.'lib/output.inc.php');           /* output functions */
+if (!(defined('AT_REDIRECT_LOADED'))){
+       require_once(AT_INCLUDE_PATH . 'classes/UrlRewrite/UrlParser.class.php');       /* pretty url tool */
+}
+require(AT_INCLUDE_PATH.'classes/Savant2/Savant2.php');       /* for the theme and template management */
+
+// set default template paths:
+$savant = new Savant2();
+$savant->addPath('template', AT_INCLUDE_PATH . '../themes/default/');
+
+//if user has requested theme change, make the change here
+if (($_POST['theme'] || $_POST['mobile_theme']) && $_POST['submit']) {
+    //http://atutor.ca/atutor/mantis/view.php?id=4781
+    //Themes should be in the same folder, disallow '../'
+    $newTheme = str_replace("../", "", $_POST['theme']);
+    $newMobileTheme = str_replace("../", "", $_POST['mobile_theme']);
+    if ($newTheme != $_POST['theme'] || $newMobileTheme != $_POST['mobile_theme']) {
+        header('Location:'.AT_BASE_HREF.'users/preferences.php');
+           exit;
+    }
+    
+    $_SESSION['prefs']['PREF_THEME'] = $addslashes($_POST['theme']);
+    $_SESSION['prefs']['PREF_MOBILE_THEME'] = $addslashes($_POST['mobile_theme']);
+} else if ($_POST['set_default']) {
+    $_SESSION['prefs']['PREF_THEME'] = 'default';
+    $_SESSION['prefs']['PREF_MOBILE_THEME'] = 'mobile';
+}
 
-       //if user has requested theme change, make the change here
-       if (($_POST['theme'] || $_POST['mobile_theme']) && $_POST['submit']) {
-           $_SESSION['prefs']['PREF_THEME'] = $addslashes($_POST['theme']);
-           $_SESSION['prefs']['PREF_MOBILE_THEME'] = $addslashes($_POST['mobile_theme']);
-           
-       } else if ($_POST['set_default']) {
-           $_SESSION['prefs']['PREF_THEME'] = 'default';
-           $_SESSION['prefs']['PREF_MOBILE_THEME'] = 'mobile';
-           
-       }
-       
-       // Reset PREF_THEME when:
-       // 1. If PREF_THEME is not set 
-       // 2. The request is from the mobile device but PREF_THEME is not a mobile theme 
-       if (!isset($_SESSION['prefs']['PREF_THEME']) ||
-           $_SESSION['prefs']['PREF_THEME'] == "" ||
-           (is_mobile_device() && !is_mobile_theme($_SESSION['prefs']['PREF_THEME']))) {
-               // get default
-               $default_theme = get_default_theme();
-               
-               $_SESSION['prefs']['PREF_THEME'] = $default_theme['dir_name'];
-               
-       }
-       
-       if (!is_dir(AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME']) || $_SESSION['prefs']['PREF_THEME'] == '') {
-               $_SESSION['prefs']['PREF_THEME'] = get_system_default_theme();
-       
-       }
+// Reset PREF_THEME when:
+// 1. If PREF_THEME is not set 
+// 2. The request is from the mobile device but PREF_THEME is not a mobile theme 
+if (!isset($_SESSION['prefs']['PREF_THEME']) ||
+    $_SESSION['prefs']['PREF_THEME'] == "" ||
+    (is_mobile_device() && !is_mobile_theme($_SESSION['prefs']['PREF_THEME']))) {
+       // get default
+       $default_theme = get_default_theme();
        
-       // use "mobile" theme for mobile devices. For now, there's only one mobile theme and it's hardcoded.
-       // When more mobile themes come in, this should be changed.
-       if (isset($_SESSION['prefs']['PREF_THEME']) && file_exists(AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME']) && isset($_SESSION['valid_user']) && $_SESSION['valid_user']) {
-               if ($_SESSION['course_id'] == -1) {
-                       if ($_SESSION['prefs']['PREF_THEME'] == '' || !is_dir(AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME'])) {
-                               $_SESSION['prefs']['PREF_THEME'] = get_system_default_theme();
-                               
-                       }
+       $_SESSION['prefs']['PREF_THEME'] = $default_theme['dir_name'];
+}
+
+if (!is_dir(AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME']) || $_SESSION['prefs']['PREF_THEME'] == '') {
+       $_SESSION['prefs']['PREF_THEME'] = get_system_default_theme();
+}
+
+// use "mobile" theme for mobile devices. For now, there's only one mobile theme and it's hardcoded.
+// When more mobile themes come in, this should be changed.
+if (isset($_SESSION['prefs']['PREF_THEME']) && file_exists(AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME']) && isset($_SESSION['valid_user']) && $_SESSION['valid_user']) {
+       if ($_SESSION['course_id'] == -1) {
+               if ($_SESSION['prefs']['PREF_THEME'] == '' || !is_dir(AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME'])) {
+                       $_SESSION['prefs']['PREF_THEME'] = get_system_default_theme();
+               }
+       } else {
+               //check if enabled
+               $sql    = "SELECT status FROM ".TABLE_PREFIX."themes WHERE dir_name = '".$_SESSION['prefs']['PREF_THEME']."'";
+               $result = mysql_query($sql, $db);
+               $row = mysql_fetch_assoc($result);
+               if ($row['status'] > 0) {
                } else {
-                       //check if enabled
-                       $sql    = "SELECT status FROM ".TABLE_PREFIX."themes WHERE dir_name = '".$_SESSION['prefs']['PREF_THEME']."'";
-                       $result = mysql_query($sql, $db);
-                       $row = mysql_fetch_assoc($result);
-                       if ($row['status'] > 0) {
-                       } else {
-                               // get default
-                               $default_theme = get_default_theme();
-                               if (!is_dir(AT_INCLUDE_PATH . '../themes/' . $default_theme['dir_name'])) {
-                                       $default_theme = array('dir_name' => get_system_default_theme());
-                               }
-                               $_SESSION['prefs']['PREF_THEME'] = $default_theme['dir_name'];
-                               
+                       // get default
+                       $default_theme = get_default_theme();
+                       if (!is_dir(AT_INCLUDE_PATH . '../themes/' . $default_theme['dir_name'])) {
+                               $default_theme = array('dir_name' => get_system_default_theme());
                        }
+                       $_SESSION['prefs']['PREF_THEME'] = $default_theme['dir_name'];
                }
        }
-       
-       $savant->addPath('template', AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME'] . '/');
-       require(AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME'] . '/theme.cfg.php');
-       
-       
-       require(AT_INCLUDE_PATH.'classes/Message/Message.class.php');
-       $msg = new Message($savant);
+}
 
-       $contentManager = new ContentManager($db, isset($_SESSION['course_id']) ? $_SESSION['course_id'] : $_GET['p_course']);
-       $contentManager->initContent();
-/**************************************************/
+$savant->addPath('template', AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME'] . '/');
+require(AT_INCLUDE_PATH . '../themes/' . $_SESSION['prefs']['PREF_THEME'] . '/theme.cfg.php');
+
+require(AT_INCLUDE_PATH.'classes/Message/Message.class.php');
+$msg = new Message($savant);
 
+$contentManager = new ContentManager($db, isset($_SESSION['course_id']) ? $_SESSION['course_id'] : $_GET['p_course']);
+$contentManager->initContent();
+
+/**************************************************/
 require(AT_INCLUDE_PATH.'phpCache/phpCache.inc.php'); // cache library
 require(AT_INCLUDE_PATH.'lib/utf8.php');                       //UTF-8 multibyte library
 
@@ -403,6 +470,11 @@ while ($row = mysql_fetch_assoc($result)) {
 /*                                                                                                                                     */
 /********************************************************************/
 // p_course is set when pretty url is on and guests access a public course. @see bounce.php
+// First, santinize p_course
+if (isset($_REQUEST['p_course'])) {
+       $_REQUEST['p_course'] = intval($_REQUEST['p_course']);
+}
+
 if (isset($_SESSION['course_id']) && $_SESSION['course_id'] > 0 || $_REQUEST['p_course'] > 0) {
        $sql = 'SELECT * FROM '.TABLE_PREFIX.'glossary 
                 WHERE course_id='.($_SESSION['course_id']>0 ? $_SESSION['course_id'] : $_REQUEST['p_course']).' 
@@ -1350,9 +1422,8 @@ function is_mobile_device() {
        return ((stripos($http_user_agent, IPOD_DEVICE) !== false && stripos($http_user_agent, IPOD_DEVICE) >= 0) ||
                        (stripos($http_user_agent, IPHONE_DEVICE) !== false && stripos($http_user_agent, IPHONE_DEVICE) >= 0) ||
                (stripos($http_user_agent, BLACKBERRY_DEVICE) !== false && stripos($http_user_agent, BLACKBERRY_DEVICE) >= 0) ||
-                 (stripos($http_user_agent, IPAD_DEVICE) !== false && stripos($http_user_agent, IPAD_DEVICE) >= 0) ||
+               (stripos($http_user_agent, IPAD_DEVICE) !== false && stripos($http_user_agent, IPAD_DEVICE) >= 0) ||
                (stripos($http_user_agent, ANDROID_DEVICE) !== false && stripos($http_user_agent, ANDROID_DEVICE) >= 0)) 
-             
                ? true : false;
 }
 
@@ -1364,7 +1435,7 @@ function get_mobile_device_type() {
                return IPHONE_DEVICE;
        } else if (stripos($http_user_agent, BLACKBERRY_DEVICE) !== false && stripos($http_user_agent, BLACKBERRY_DEVICE) >= 0) {
                return BLACKBERRY_DEVICE;
-                       } else if (stripos($http_user_agent, IPAD_DEVICE) !== false && stripos($http_user_agent, IPAD_DEVICE) >= 0) {
+       } else if (stripos($http_user_agent, IPAD_DEVICE) !== false && stripos($http_user_agent, IPAD_DEVICE) >= 0) {
                return IPAD_DEVICE;
        } else if (stripos($http_user_agent, ANDROID_DEVICE) !== false && stripos($http_user_agent, ANDROID_DEVICE) >= 0) {
                return ANDROID_DEVICE;
@@ -1482,5 +1553,4 @@ if (isset($_GET['submit_language']) && $_SESSION['valid_user']) {
 if (isset($_SESSION['course_id']) && $_SESSION['course_id'] > 0) {
     $_custom_head .= '<script type="text/javascript" src="'.$_base_path.'jscripts/ATutorCourse.js"></script>';
 }
-
 ?>
index 9a4c044..29562fd 100644 (file)
@@ -84,7 +84,7 @@ jQuery(document).ready(function () {
 function remove_module(module)
 {
        jQuery.post("'.AT_BASE_HREF.'move_module.php", { "remove":module, "from":"course_index" }, function(data) {});
-       jQuery("div[id="+module.replace(/\//g,"-")+"]").remove();
+       jQuery("div[id=\""+module.replace(/\//g,"-")+"\"]").remove();
 }
 //-->
 </script>
index 2b86c0b..6282144 100644 (file)
 # Table structure for table 'language_text'
 #
-DROP TABLE language_text;
 
 CREATE TABLE `language_text` (
-  `language_code` varchar(20) NOT NULL default '',
-  `variable` varchar(120) NOT NULL default '',
-  `term` varchar(180) NOT NULL default '',
-  `text` text NOT NULL,
+  `language_code` varchar(5) NOT NULL default '',
+  `variable` varchar(30) NOT NULL default '',
+  `term` varchar(50) NOT NULL default '',
+  `text` blob NOT NULL,
   `revised_date` datetime NOT NULL default '0000-00-00 00:00:00',
   `context` text NOT NULL,
   PRIMARY KEY  (`language_code`,`variable`,`term`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
-
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_module', 'gradebook', 'Gradebook', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_ADD_FEED', 'Are you sure you want to add this syndicated feed?', '2005-11-15 13:19:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_ADD_MODULE', 'Are you sure you want to install the module in <strong><code>%s</code></strong>?', '2005-08-17 12:59:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_ADD_TEST_QUESTIONS', 'Are you sure you want to <em>add</em> the following questions? \r\n<ul>%s</ul>', '2004-11-23 12:38:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_ALUMNI', 'Are you sure you want to mark the following users as course alumni: <ul> %s </ul>', '2004-11-23 12:17:53', 'enrollment_manager, make students into alumi');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE', 'Are you sure you want to delete these items?<br />\r\n\r\n <ul> %s </ul>', '2008-05-08 12:19:32', 'generic delete confirmation msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_ADMIN', 'Are you sure you want to delete the following administrator?\r\n<br />\r\n<strong>%s</strong>', '2008-01-22 09:38:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_ASSIGNMENT', 'Are you sure you want to delete assignment <em>%s</em>?', '2006-05-23 13:10:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_AUTO_ENROLL', 'Are you sure you want to <strong>delete</strong> auto enrollment for <strong>%s</strong>', '2008-03-10 11:52:57', 'confirm message when deleting an auto enroll definition');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_CATEGORY', 'Are you sure you want to delete category  <strong>%s</strong>?', '2005-02-17 14:57:18', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_COURSE_1', 'Are you sure you want to <strong>Delete</strong> the course <strong><em>%s</em></strong>?', '2005-03-04 11:27:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_COURSE_2', 'Are you <strong>really really</strong> sure you want to <b>Delete</b> the course <strong><em>%s</em></strong>? Deleted courses can not be recovered.', '2005-03-04 11:31:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_FAQ_QUESTION', 'Are you sure you want to delete the question <strong>%s</strong>?', '2005-10-19 12:49:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_FAQ_TOPIC', 'Are you sure you want to delete the topic <strong>%s</strong> and its questions?', '2005-11-08 13:42:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_FEED', 'Are you sure you want to delete feed <strong>%s</strong>.?', '2005-12-07 09:36:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_FORUM', 'Are you sure you want to delete <strong>%s</strong> forum? All messages posted to this forum will be erased.', '2005-12-07 09:36:15', 'deleting a forum');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_GRADE_SCALE', 'Are you sure you want to <strong>delete</strong> grade scale <strong>%s</strong>?', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_GROUP', 'Are you sure you want to delete the group: <strong>%s</strong>?', '2005-02-21 12:07:05', 'deletep enrollment group');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_GROUP_TYPE', 'Are you sure you want to delete group type <em>%s</em> and all its groups?', '2006-03-23 11:27:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_LANG', 'Are you sure you want to delete the language ( <strong>%s </strong>)?', '2004-11-24 13:19:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_LINK', 'Are you sure you want to delete the link %s?', '2005-02-21 16:55:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_MSGS', 'Are you sure you want to delete the selected messages?', '2007-02-22 13:09:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_MYOWN_PATCH', 'Are you sure you want to <strong>delete</strong> patch <strong>%s</strong>', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_NEWS', 'Are you sure you want to delete %s?', '2004-11-24 13:37:55', 'news deletion in editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_POLL', 'Are you sure you want to delete this poll \'%s\'?  It cannot be recovered once deleted.', '2004-11-24 14:03:36', 'editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_TEST', 'Are you sure you want to delete the test/survey <strong><em>%s</em></strong> and any results? The questions, however, will not be deleted.', '2004-12-15 10:42:13', 'Deleting Test');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_TEST_CATEGORY', 'Are you sure you want to delete test category <strong>%s</strong>?', '2005-03-07 11:58:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_TEST_FROM_GRADEBOOK', 'Are you sure you want to <strong>delete</strong> test <strong>%s</strong> from gradebook?', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_THEME', 'Are you sure you want to delete the following theme: <b> % s </b>', '2004-11-23 09:30:03', 'confirm message for delete theme');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_TRACKING', 'Are you sure your want to delete the content usage data for this course?', '2005-08-11 10:08:50', 'reset tracking session');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_TRANSCRIPT', 'Are you sure you want to delete the transcript <strong>%s</strong>?', '2005-03-30 14:21:00', 'delete chat transcript');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DELETE_USER', 'Are you sure you want to delete the following users? Selected instructors who own courses will not be deleted.<strong>%s</strong>', '2007-02-19 11:44:45', 'deleting user from admin');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DIR_DELETE', 'Are you sure you want to delete the following folder(s) and all their contents? <ul><strong>%s</strong></ul>', '2004-12-15 09:59:39', 'filemanager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_DIR_MOVE', 'Are you sure you want to move <strong>%1s</strong> to the folder <strong>%2s</strong>?', '2005-01-10 10:35:17', 'filemanager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_EDIT_STATUS', 'Are you sure you want to change the following users\' status to  <strong>%s</strong>? Status of selected instructors who own courses will not be changed. %s', '2007-02-19 11:43:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_ENROLL_STUDENT', 'Are you sure you want to enroll the following users: <ul> %s </ul>', '2004-11-23 12:21:00', 'enrollment manager, enroll confirm');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_FILE_DELETE', 'Are you sure you want to delete the following file(s)? <ul>%s</ul>', '2006-07-05 11:44:15', 'filemanager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_FILE_EXISTS', 'The file <strong>%s</strong> already exists. Do you want to overwrite the file?', '2005-03-09 16:26:11', 'filemanager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_FILE_MOVE', 'Are you sure you want to move <strong>%1s</strong> to the folder <strong>%2s</strong>?', '2005-01-10 10:33:21', 'file_manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_GLOSSARY_REMAINS', 'Deleting a term will not remove the embedded glossary codes from your content.', '2005-02-24 10:34:33', 'content deletion');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_GRANT_WRITE_PERMISSION', 'Please grant <strong>write</strong> permission to folder: %s<p><strong>Note:</strong> To change permissions on Unix use <kbd>chmod a+rw</kbd> then the file name.</p>', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_LIST_DELETE', 'Are you sure you want to delete <strong>%s</strong> Student ID from the master student list?', '2005-04-04 15:47:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_LOGIN_INSTRUCTOR', '<h3>%2$s</h3>\r\nYou will be logged in as the instructor for this course.  Are you sure you want to continue?', '2006-04-10 13:12:29', 'viewing courses from admin');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_NO_ANSWER', 'You are about to add a question with no correct choice. Continue?', '2004-12-06 14:35:10', 'adding a question without specifying answer');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_PA_DELETE_ALBUM', 'Are you sure you want to delete the album <strong>%s</strong>? Once deleted, photos can not be recovered.', '2010-03-17 16:08:25', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_PA_DELETE_COMMENT', 'Are you sure you want to delete this comment?', '2010-03-17 16:09:08', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_PA_DELETE_PHOTO', 'Are you sure you want to delete this Photo?', '2010-03-17 16:08:50', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_REMOVE_STUDENT', 'Are you sure you want to remove the following students: <ul> %s </ul>', '2004-11-23 12:21:12', 'removing a student');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_REMOVE_TEST_QUESTION', 'Are you sure you want to remove this question from this test? Removing the question will not delete it from the question database.', '2004-11-25 10:31:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_REMOVE_WRITE_PERMISSION', '<span style="color:red">For your security, please <strong>REMOVE</strong> write permission on the folder: %s</span><p><strong>Note:</strong> To remove permissions on Unix use <kbd>chmod 755</kbd> then the file or folder name.</p>', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_RESET_ADMIN_LOG', 'Are you sure you want to delete the Administrator Activity Log?', '2005-03-03 10:42:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_RESET_ERROR_LOG', 'Are you sure you want to delete all the error logs?', '2005-03-10 15:49:02', 'error log reset (delete logs folder0');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_RL_DELETE_READING', 'Are you sure you want to delete this reading: <strong>%s</strong>?', '2006-10-04 10:48:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_RL_DELETE_RESOURCE', 'Are you sure you want to delete this resource: <strong>%s</strong>?<br/>Note: Any readings that use this resource will also be deleted.', '2006-10-04 10:48:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_STUDENT_GROUP', 'Are you sure you want to add the following users to group \'%s\'? <ul> %s </ul>', '2005-06-02 12:07:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_STUDENT_REMOVE_GROUP', 'Are you sure you want to <strong>remove</strong> the following users from group \'%s\'? <ul> %s </ul>', '2005-06-02 12:06:56', 'Enrollment');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_SUB_CONTENT_DELETE', 'This content page has sub content. If you delete this page all its sub pages will be deleted as well.<br />', '2004-11-24 13:31:34', 'content deletion');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_UNENROLL', 'Are you sure you want to un-enroll from <strong>%s</strong>?', '2005-03-24 12:43:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_UNENROLL_PRIV', 'Are you sure you want to un-enroll the following users (the users will have their roles and privileges removed): <ul> %s </ul>', '2004-11-23 12:23:22', 'enrollment manager, unenrolling a TA');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_CONFIRM_UNENROLL_STUDENT', 'Are you sure you want to un-enroll the following students: <ul> %s </ul>', '2004-11-23 12:21:36', 'enrollment manager, confirm unenroll');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ACCESS_DENIED', 'You do not have permission to access this area.', '2005-06-15 15:13:59', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ACCOUNT_DISABLED', 'That account has been disabled.', '2005-04-01 10:30:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ADMIN_EDIT_OWN_ACCOUNT', 'To edit your own account use the <a href="mods/_core/users/admins/my_edit.php">My Account</a> page.', '2010-03-09 14:25:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ALREADY_ENROLED', 'You have already made a request to enroll in this course and you have not yet been approved by the instructor. You will be notified when your request has been approved.', '2009-09-17 14:47:14', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ALREADY_INSTALLED', 'Selected item appears to have been installed.', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ALREADY_OWNED', 'You own this course, and cannot enroll.', '2004-11-26 14:30:22', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ALREADY_UNINSTALLED', 'Selected item appears to have been uninstalled. Module directory does not exist.', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ALTERNATIVE_ALREADY_DECLARED', 'The file you selected has already been declared as an alternative to the selected primary resource.', '2008-09-08 15:25:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ALTERNATIVE_NOT_DEFINED', 'You must select an alternative from files available in the File Manager to the right.', '2009-12-01 11:02:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ASSIGNMENT_CUTOFF', 'The assignment cut-off date has past. Submissions are no longer accepted.', '2006-03-20 14:41:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_BACKUP_RESTORE', 'Restore failed - file is not a valid backup. Backups older than version 1.3 are not supported.', '2005-11-29 14:33:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_BACKUP_UNSUPPORTED_GREATER_VERSION', 'Backups created from versions of ATutor greater than this version are not supported.', '2005-05-11 15:56:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_BAD_DATE', 'That date is not valid.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_BAD_FILE_TYPE', 'Unsupported file type. Plain Text or HTML files only.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_BAD_FOLDER_NAME', 'The folder name contains illegal characters. You may choose from alphanumeric characters and underscores, dashes or periods.', '2005-01-10 13:13:55', 'filemanager, foilder with illegal chars');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CACHE_DIR_BAD', 'Cache dir cannot be created. Cache disabled. See the configuration options to either disable or fix the problem.', '2003-05-27 13:10:53', 'global');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CACHE_DIR_NOT_EXIST', 'Cache directory does not exist or is not writable. Create it and set write permissions to make the directory writable by the system\'s Web server user. (e.g. chmod a+rwx cache)', '2010-03-04 14:41:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_BE_EMPTY', 'Search field cannot be empty.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_CONNECT_SERVER', 'Failed to connect to server: %s', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_CREATE_DIR', 'Cannot create content directory.', '2003-10-15 12:20:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_DELETE_OWN_ACCOUNT', 'You cannot delete your own account.', '2005-03-03 10:59:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_OPEN_DIR', 'Unable to open content directory. You may try to <a href="mods/_core/file_manager/new.php">create it now</a>.', '2010-03-09 14:26:18', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_OPEN_FILE', 'Cannot open the file: <b> %s </b>', '2004-10-18 14:38:00', 'Theme Manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_OVERWRITE_FILE', 'Cannot override file.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_READ_FILE', 'Cannot read from file: <b> %s </b>', '2004-11-19 13:00:03', 'admin/error_logging.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_RENAME', 'File or directory cannot be renamed. Either a file or directory with that name already exists, the original file or directory does not exist, or the file or directory name has not changed.', '2004-08-20 12:05:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_UNINSTALL_MANUAL_MODULE', 'This module needs to be uninstalled manually instead of using the ATutor module installer. Please uninstall it manually.', '2008-10-21 15:41:53', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_UNZIP', 'Can NOT unzip the uploaded file.', '2008-04-21 15:08:55', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANNOT_WRITE_FILE', 'Cannot write to file: <b> %s </b>', '2004-10-18 14:39:10', 'Theme Manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CANT_DELETE_GROUP', 'You cannot delete this group.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CHAT_TRAN_REJECTED', 'Transcript filename rejected. Please ensure that it is  alphanumeric and contains no spaces.', '2003-06-02 13:47:39', 'achat');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CHOICES_EMPTY', 'Enter at least two answer choices.', '2005-03-08 15:41:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CHOOSE_UNINSTALLED_PATCH', 'Please choose an uninstalled patch.', '2008-04-21 15:08:55', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_COMBINE_TESTS', '"<strong>%1$s</strong>" cannot be combined because the following students have taken it more than once:<br />\r\n%2$s.', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CONFIG_NOT_WRITEABLE', 'It is not possible to edit these settings because the configuration file is locked for security reasons. If you want to make changes, you need to unlock the config.inc.php file first by changing its permissions with the command <kbd>chmod a+rw config.inc.php</kbd>.', '2005-03-03 10:14:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CONFIRM_BAD', 'Your email address and account could not be confirmed.', '2005-05-31 12:55:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CONTACT_INFO_NOT_FOUND', 'Contact Support is not available, because an email address has not been specified.', '2005-03-17 11:33:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_COURSE_DIR_NAME_INVALID', 'The course directory name is invalid. It may contain only letters, numbers, and underscores, and may not contain spaces.', '2008-10-06 13:18:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_COURSE_DIR_NAME_IN_USE', 'The course directory name is already in use. Please try another.', '2008-10-06 13:19:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_COURSE_ENDED', 'This course ended on %s.', '2007-07-16 11:53:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_COURSE_NOT_RELEASED', 'This course can only be accessed on %s.', '2006-04-10 14:28:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CREATE_MASTER_USED', 'The Student ID you have entered already belongs to another user. If you wish to over-write this association with the new account, use the over-write checkbox.', '2006-06-12 15:39:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_CURL_NOT_INSTALLED', 'The curl library needs to be installed for gadgets to be added.  Please contact your administrator for more information.', '2009-06-09 14:44:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_DB_NOT_UPDATED', 'Information could not be added to the database.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_DIR_NOT_DELETED', 'Cannot open directory to be deleted.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_DIR_NOT_EXIST', 'Directory <strong>%s</strong> does not exist. Please create it.', '2005-09-22 14:08:05', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_DIR_NOT_WRITEABLE', 'Directory <strong>%s</strong> is not writeable. On Unix issue the command <kbd>chmod a+rw</kbd> on the directory.', '2005-09-22 14:22:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_DIR_NO_PERMISSION', 'Cannot delete folder. You may not have premission, or it may not be empty.', '2003-05-22 12:20:14', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_DISABLE_CORE_MODULE', 'Core modules cannot be disabled.', '2005-08-25 14:00:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_DISABLE_MISSING_MODULE', 'You cannot disable a missing module. To continue managing this module you must first restore its directory.', '2005-10-05 16:22:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_DISABLE_PARTIALLY_UNINSTALLED_MODULE', 'You cannot disable a partially uninstalled module. To continue managing this module you must first restore it.', '2008-10-21 15:41:53', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_DOB_INVALID', 'Date of birth has invalid format.', '2004-06-24 12:53:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_EMAIL_EXISTS', 'An account with that email address already exists.', '2005-03-01 11:36:57', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_EMAIL_INVALID', 'Email address was invalid.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_EMAIL_MISMATCH', 'Email addresses do not match. Please re-type them.', '2009-11-04 14:12:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_EMAIL_NOT_FOUND', 'No account found with that email address.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_EMPTY_FIELDS', 'The following required field(s) are empty:<br />\r\n%s.', '2006-10-05 15:51:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_EMPTY_ZIP_FILE', 'Downloaded zip file is empty.', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_END_DATE_INVALID', 'That end date is not valid.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ENROLLMENT_NONE_FOUND', 'There is no one to export.', '2006-06-27 11:53:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FEED_NO_CONTENT', 'The feed either cannot be found at that URL or is not valid.', '2005-11-23 10:59:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FILE_EMPTY', 'You did not select a file to import or the file was empty.', '2004-12-09 14:44:43', 'enrollment manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FILE_ILLEGAL', '%s files are not allowed.', '2003-05-22 11:52:08', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FILE_MAX_SIZE', 'The file exceeded the maximum allowable size limit of %s.', '2004-05-06 13:18:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FILE_NOT_DELETED', 'Error deleting file. Cannot delete file.', '2004-11-08 16:33:12', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FILE_NOT_EXIST', 'The selected file does not exist.', '2005-01-07 09:51:45', 'filemanager, fiule to be edited does not exist');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FILE_NOT_FOUND', 'File not found.', '2006-03-20 14:45:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FILE_NOT_SAVED', 'The file cannot be saved.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FILE_NOT_SELECTED', 'You did not select a file to upload.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FILE_TOO_BIG', 'The file size exceeds the limit of <strong>%s </strong>. Contact your ATutor Administrator to have this limit increased.', '2005-01-15 18:49:53', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FIRST_LAST_NAME_UNIQUE', 'First, second, and last names combination must be unique.', '2006-03-27 14:55:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FOLDER_NOT_CREATED', 'The folder " %s " could not be created.', '2006-06-02 13:43:53', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FOLDER_NOT_EXIST', 'Folder not found.', '2006-03-20 15:37:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FORUM_DENIED', 'You do not  have permission to post in this forum.', '2005-08-10 13:48:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FORUM_NOT_FOUND', 'Forum can not be found.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FORUM_NO_DEL_SHARE', 'You do not have permission to delete a shared forum.', '2004-12-10 11:10:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FORUM_NO_EDIT_SHARE', 'You do not have permission to edit a Shared forum.', '2004-12-10 11:15:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_FORUM_NO_SUBSCRIBE', 'Cannot subscribe to the requested thread. Only subscription to the top-level post is allowed.', '2004-12-10 13:44:57', 'forum/subscribe.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GADGET_ADDED_FAILURE', 'The following error occured while adding a gadget:\r\n%s', '2009-06-22 11:19:44', 'gadget error');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GADGET_DELETED_CANNOT_BE_EMPTY', 'You need to select at least one application to delete.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GENERAL', 'This is a search and %s ATutor error.', '2003-05-22 11:52:28', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GOOGLE_KEY_INVALID', 'Invalid key.', '2005-11-30 14:35:03', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GOOGLE_KEY_MISSING', 'A Google Key must be entered in order for the enabled Web Search to be available in courses. Enter this key by going to Google Key under the Configuration tab.', '2005-11-30 14:40:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GOOGLE_QUERY_FAILED', 'Query failed.', '2005-10-20 10:52:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GROUP_CREATION_FAILED', 'Group creation failed.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GROUP_EDIT_FAILED', 'Group edit failed.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GROUP_HAS_BEEN_REMOVED', 'Group has been removed.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GROUP_NOT_FOUND', 'Group not found.', '2004-11-25 16:03:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_GROUP_NO_STUDENTS', 'There are no students to create groups for.', '2006-03-22 13:33:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_HAND_IN_FOLDER', 'Folders cannot be handed in.', '2006-03-20 15:43:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ID_ZERO', 'Content ID was zero, or was missing.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_IMPORTDIR_FAILED', 'Unable to create import directory.', '2005-07-20 14:02:57', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_IMPORTDIR_IMS_NOTVALID', 'The file does not appear to be a valid ZIP file.', '2005-06-27 11:37:47', 'IMS file is not a ZIP file.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_IMPORTFILE_EMPTY', 'The import file must not be empty.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_IMPORT_CARTRIDGE_FAILED', 'Import failed. Does not appear to be a valid content package or common cartridge:\r\n\r\n%s', '2009-12-03 09:55:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_IMPORT_ERROR_IN_ZIP', 'Zip file could not be extracted because: <b> %s </b>', '2006-06-28 10:30:50', 'theme manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_IMPORT_FAILED', 'Import Failed', '2005-01-15 09:50:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_IMPORT_NOT_PROPER_FORMAT', 'The selected file does not appear to be a valid theme package.', '2004-12-09 11:34:27', 'admin/themes/import.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_IMS_AUTHORIZATION_NOT_SUPPORT', 'Import failed.  ATutor does not support package authentications.', '2009-12-10 12:19:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_INCOMPLETE', 'Please fill out the forms as directed below', '2004-10-18 11:14:50', 'enrollment Manager, incomplete info in create list');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_INCORRECT_FILE_FORMAT', 'File is in the incorrect format. Review line %s of your course list file and make sure it follows format guidelines.', '2006-06-28 10:43:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_INST_INFO_NOT_FOUND', 'Instructor information cannot be found.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_INVALID_LINK', 'The link is either invalid or expired.', '2006-05-10 09:08:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_INVALID_LOGIN', 'Invalid login/password combination.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_INVALID_URL', 'Localhost is not a valid URL', '2004-11-05 10:22:37', 'AChecker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ITEM_NOT_FOUND', 'Item not found.', '2006-10-04 10:52:48', 'generic something not found msg.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_JOIN_REQUEST_FAILED', 'Request to join group failed. Perhaps you have already requested to join this group.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LANG_EXISTS', 'The language pack you are trying to import already exists. Language already exists. You can edit language properties by following the <em>translate</em> in the sub menu above.', '2007-02-06 15:44:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LANG_IMPORT_FAILED', 'Language import failed.', '2003-06-06 11:23:51', 'admin language manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LANG_NOT_COMPLETE', 'The language pack you are trying to import has not been marked as complete and published. To use incomplete language packs you must enable <em>translating</em> using the instructions at the bottom of this page.', '2005-11-30 14:49:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LANG_WRONG_VERSION', 'The language pack you are trying to import is not compatible with this version of ATutor. If you still want to import this language pack you must enable <em>translating</em> following the instructions at the bottom of this page.', '2005-11-30 14:50:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LAST_LANGUAGE', 'Cannot delete the last language. At least one language must be available.', '2006-06-29 16:50:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LINK_CAT_EMPTY', 'Cannot add a link because there are no categories.', '2005-03-09 13:05:25', 'adding link but no cats');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LINK_CAT_NOT_EMPTY', 'Link category cannot be deleted because it contains sub-categories and/or links.', '2005-02-22 15:22:44', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LOGIN_CHARS', 'Your Login Name must only contain letters, numbers, periods, or underscores (_\'s).', '2006-07-11 10:40:57', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LOGIN_ENROL', 'You must be logged in to enroll in a course.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LOGIN_EXISTS', 'That login already exists, please choose another.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LOGIN_TO_POST', 'You must be logged in to post.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_LOG_NOT_RESET', 'The error log could not be reset.', '2005-03-10 15:54:03', 'error logging');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_MAX_LOGIN_ATTEMPT', 'Maximum login attempts has been reached. Login has been temporarily disabled for 1 hour.  Please try again later.', '2009-06-17 11:59:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_MAX_LOGIN_ATTEMPT_1', 'Invalid username or password. You have one more attempt before the login page is disabled.', '2009-06-26 16:37:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_MAX_LOGIN_ATTEMPT_2', 'You have entered an unrecognized login and password combination. You have two more attempts before the login page is disabled.', '2009-06-26 16:35:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_MAX_STORAGE_EXCEEDED', 'Adding this file exceeds the maximum course storage limit.', '2003-10-03 16:00:08', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_MISSING_THEMEXML', 'Cannot import. The import package is missing a vital component: themes.xml. Check that the theme package is for version 1.4.3 or above.', '2004-12-09 11:59:21', 'admin/themese/import.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_MODULE_INSTALL', 'The following error(s) were encountered when trying to install this module:\r\n<ul>%s</ul>', '2005-10-11 10:48:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_MODULE_UNINSTALL', 'The following error(s) were encountered when trying to install this module:\r\n<ul>%s</ul>', '2008-10-21 15:41:53', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_MYSQL_FAILED', 'Connection to MySQL failed.', '2009-12-01 11:07:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NEED_FILENAME', 'Filename was left empty. Need a filename to create new file.', '2004-11-09 16:19:24', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NODELETE_USER', 'Cannot delete this user because they own courses. Delete the courses first.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NOT_CONFIRMED', 'Your account\'s email address has not yet been confirmed.  Please check your email account for a confirmation message.  Please contact us if you do not receive it.', '2006-06-21 10:59:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NOT_IN_ANY_GROUPS', 'You are not in any groups.', '2006-04-11 13:34:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NOT_OWNER', 'You do not own this course or it does not exist.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NOT_RELEASED', 'This content has not yet been released. %s', '2003-05-22 11:52:38', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_ACTION_SELECTED', 'No action selected.', '2007-02-21 14:12:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_ASSIGNMENTS_FOUND', 'No assignments are due in this workspace. You might try another workspace.', '2007-12-13 16:12:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_CHILD_AS_PARENT', 'Cannot move the content to be the child of its own children.', '2009-09-16 13:14:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_CONTENT_SPACE', 'Not enough space to import content directory. %s KB over the limit.', '2003-10-03 15:58:38', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_COURSE_FLOAT', 'Invalid Maximum Course Float value.', '2005-06-20 10:44:45', 'Admin did not specify a float for course size.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_FAQ_TOPICS', 'You must first add a topic.', '2005-10-19 12:44:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_IMSMANIFEST', 'IMS manifest file is missing. This does not appear to be a valid IMS content package or common cartridge.', '2009-11-17 12:38:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_IMS_BACKUP', 'This file appears to be a <a href="mods/_core/backups/">course backup</a> rather than a content package.', '2010-03-09 14:27:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_ITEM_SELECTED', 'You must select an item before using a button.', '2005-03-07 16:36:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_LANGUAGE', 'Selected language is not supported.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_LOGS_SELECTED', 'You must select at least one profile to create a bundle.', '2004-11-25 11:18:19', 'admin/error_logging_details.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_LOG_SELECTED', 'You did not select a log file.', '2004-11-23 15:59:57', 'admin/error_logging_details.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_MEMBERS', 'No users found.', '2005-05-18 12:43:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_PROFILE_SELECTED', 'You did not select a profile.', '2004-11-23 16:01:27', 'admin/error_logging_details.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_QUESTIONS', 'No questions were found for this test.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_QUESTIONS_SELECTED', 'You did not select any questions to add to this test.', '2004-11-23 11:56:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_SELF_AS_PARENT', 'Cannot move the content to be its own child.', '2009-09-16 13:14:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_SPACE_LEFT', 'There is no more space in this course to extract this archive.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_STUDENT_SELECTED', 'You did not select any students.', '2006-06-27 12:18:13', 'enrollment manager, no students selected');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_NO_SUCH_USER', 'The user you selected does not exist.', '2005-03-17 15:34:30', 'veiwing profile but no such user');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_ONLY_UNINSTALL_EXTRA_MODULE', 'Only modules with type "Extra" can be uninstalled.', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PACKAGE_DIR_FAILED', 'Problem with Package Directory.', '2005-05-17 12:02:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PAGE_NOT_FOUND', 'Page cannot be found.', '2005-09-19 12:18:06', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PASSWORD_CHARS', 'The password must contain letters, numbers, and symbols.', '2006-03-28 15:09:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PASSWORD_LENGTH', 'Password must be at least 8 characters long.', '2006-04-10 11:43:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PASSWORD_MISMATCH', 'Passwords did not match.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PATCH_ALREADY_INSTALLED', 'The selected patch is already installed.', '2008-04-21 15:08:55', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PATCH_DEPENDENCY', 'Due to patch dependency, please install the listed patches before installing this patch: %s', '2008-04-21 15:08:55', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PATCH_XML_NOT_FOUND', 'Patch XML file is not found.', '2008-04-21 15:08:55', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_ADD_COMMENT_FAILED', 'Comment could not be added due to an internal error.  Please try again.', '2010-03-17 16:05:53', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_ADD_PHOTO_FAILED', 'Photo could not be added due to an internal error.  Please try again.', '2010-03-17 16:06:23', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_CREATE_ALBUM_FAILED', 'Album could not be created due to an internal error.  Please try again.', '2010-03-17 16:06:36', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_EDIT_ALBUM_FAILED', 'Album could not be edited due to an internal error.  Please try again.', '2010-03-17 16:06:49', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_EDIT_PHOTO_FAILED', 'Photo could not be edited due to an internal error.  Please try again.', '2010-03-17 16:07:01', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_EMPTY_COMMENT', 'Comment can not be empty.', '2010-03-17 16:06:10', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_EMTPY_ALBUM_NAME', 'Album name can not be empty.', '2010-03-17 16:07:15', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_EXCEEDED_MAX_USAGE', 'You have exceeded the maximum allowable memory usage for the photo album.', '2010-03-17 16:08:06', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_MEMORY_INPUT_ERROR', 'Invalid input.  Please enter a valid Integer.', '2010-03-17 16:07:40', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_MEMORY_SQL_ERROR', 'Preferences were not updated due to an internal error.  Please try again.', '2010-03-17 16:07:52', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_PA_PHOTO_NOT_FOUND', 'Photo can not be found.', '2010-03-17 16:07:27', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_POLL_QUESTION_MINIMUM', 'The poll must have at least two questions.', '2005-07-20 10:12:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_QTI_WRONG_PACKAGE', 'Import failed.  Please note that ATutor only supports QTI 1.2.1 import.', '2008-12-15 10:04:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_RAND_TEST_Q_WEIGHT', 'The non-required questions must all have the same weight.', '2007-07-09 15:03:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_REGISTER_MASTER_USED', 'The student ID and PIN combination you provided is either being used or is incorrect.', '2005-04-04 13:01:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_REMOVE_WRITE_PERMISSION', 'Please remove write permission from the listed files.', '2008-04-21 15:08:55', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_RESOURCE_NOT_DEFINED', 'You did not select a resource to add.', '2008-09-08 14:44:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_RESTORE_TOO_BIG', 'The course is too small to restore this backup into.', '2004-10-15 16:42:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_RESULTS_NOT_RELEASED', 'You are not permitted to view these test results at this time.', '2004-12-15 10:13:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SAME_LOCATION', 'The content is already at the moved location.', '2009-09-16 13:14:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SCORM_SETTINGS_SAVE_FAILED', 'Save SCORM settings failed. This could mean the SCORM directory has not been setup properly. See the SCORM module readme for details.', '2009-11-04 14:13:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SCO_DIR_NOT_EXIST', 'The SCORM RTE directory does not exist. Please create a directory called <em>sco</em> in your installations top directory (example: <code>server.com/ATutor/sco</code>).', '2005-05-10 10:58:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SCO_DIR_NOT_WRITEABLE', 'The SCORM RTE directory is not writeable. Please execute the command <code>chmod a+rwx sco</code> while in ATutor\'s top directory.', '2005-05-10 11:00:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SCO_DISABLED', 'The SCORM 1.2 RTE has not been enabled by the Administrator.', '2005-05-10 11:06:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SEARCH_TERM_REQUIRED', 'You must specify at least one search term.', '2003-08-22 12:03:29', 'search form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SECRET_ERROR', 'Letters or numbers entered from the CAPTCHA image are incorrect. Try again.', '2009-07-16 09:01:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SELECT_ONE_ITEM', 'Only <em>one</em> item must be selected.', '2007-02-21 14:07:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SENDING_ERROR', 'There was an error sending the email message.', '2005-01-18 13:34:23', 'mail failed to be sent');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SEND_ENROL', 'You can only send a message to other members after you enroll in a course.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SEND_MEMBERS', 'You can only send a message to others who are enrolled in the same courses as you or your contacts.', '2009-06-12 11:37:40', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SESSION_COOKIES', 'Session cookies must be enabled in your browser to login.', '2005-07-22 13:04:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_SOCIAL_SETTINGS_NOT_SAVED', 'Social networking settings were not saved.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_START_DATE_INVALID', 'That start date is not valid.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_STUD_INFO_NOT_FOUND', 'Student information cannot be found.', '2003-05-16 13:42:17', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_TERM_EXISTS', 'The term <strong>%s</strong> already exists.', '2004-07-22 16:55:03', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_THEME_NOT_DELETED', 'The theme could not be deleted because it is either the current default theme or the original default theme.', '2005-05-10 09:27:02', 'theme manager deleting theme');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_THEME_NOT_DISABLED', 'Theme cannot be disabled because it is currently the default theme.', '2005-05-09 14:27:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_TILE_AUTHENTICATION_FAIL', 'The Transformable authentication fails at:<br />%s.', '2010-02-23 10:01:47', 'tile search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_TILE_IMPORT_FAIL', 'Transformable course import failed at:<br />%s.', '2010-02-23 10:02:09', 'tile search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_TRANSCRIPT_ACTIVE', 'You may not delete an active transcript.', '2005-05-16 12:46:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_UNKNOWN', 'An undetermined error has occurred.', '2003-05-16 14:24:59', 'error msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_USER_NOT_FOUND', 'User not found.', '2005-03-09 15:56:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_ERROR_WRONG_PASSWORD', 'Incorrect password.', '2006-05-11 11:34:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ACCEPT_GROUP_INVITATION', 'Invitation to join group was accepted.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ACCEPT_GROUP_REQUEST', 'Request to join group was accepted.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ACCOUNT_APPROVED', 'You have successfully upgraded to an instructor account.', '2004-11-05 10:25:41', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ACCOUNT_CONFIRMED', 'Account has been confirmed.', '2005-03-30 11:56:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ACTION_COMPLETED_SUCCESSFULLY', 'Action completed successfully.', '2006-09-28 11:26:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ADD_TEST_INTO_GRADEBOOK', '"<strong>%1$s</strong>" cannot be added into gradebook because the following students have taken it more than once:<br />\r\n%2$s.', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ADMIN_CREATED', 'Administrator account created successfully.', '2005-03-03 16:12:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ADMIN_DELETED', 'Administrator account deleted successfully.', '2005-03-03 10:49:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ADMIN_LOG_RESET', 'Administrator Activity Log has been reset successfully.', '2005-03-03 10:43:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ALREADY_ENROLLED', 'The following students are already enrolled: <ul> %s </ul>', '2005-06-23 12:50:58', 'enrollment manager, students added were alread enrolled');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ALREADY_REQUESTED', 'You have already made a request to enroll in this course and you have not yet been approved by the instructor. You will be notifed when your request has been approved.', '2005-03-17 12:55:24', 'private enroll, already requested approval once');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ALTERNATIVE_ADDED', 'Alternate added. Be sure to define the resource type for the alternative.', '2008-09-08 14:43:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ALTERNATIVE_DELETED', 'Alternative was successfully removed.', '2008-09-08 14:56:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_APPROVAL_PENDING', 'Your request has been made. You will be notified when your request has been approved.', '2009-09-17 14:47:54', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ARCHIVE_EXTRACTED', 'Archive has been extracted successfully.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ASSIGNMENT_ADDED', 'Assignment was successfully added.', '2006-04-20 14:42:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ASSIGNMENT_HANDED_IN', 'Assignment files submitted successfully.', '2006-03-20 14:35:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ATUTOR_SOCIAL_LMS', 'ATutor is now configured as a learning management system (LMS) with social networking as a module.', '2009-07-17 14:20:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ATUTOR_SOCIAL_ONLY', 'ATutor is now configured as a social networking environment. Learning management tools are turned off.', '2009-07-17 14:22:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ATUTOR_UPDATE_AVAILABLE', 'An updated version of ATutor is available! View the <a href="http://atutor.ca/atutor/change_log.php">Change Log</a> for details.', '2005-11-21 12:36:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_AUTO_DISABLED', 'Auto-Login has been disabled', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_AUTO_ENABLED', 'Auto-Login has been enabled. Next time you enter ATutor using this computer, you will bypass the login screen. ', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_BLOG_SUBSCRIBED', 'Subscribed to blog feed.', '2009-06-24 11:57:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_BLOG_UNSUBSCRIBED', 'Unsubscribed to blog feed.', '2009-06-24 11:57:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_CANCELLED', 'Successfully cancelled without any changes.', '2003-12-10 10:40:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_CLOSED', 'Successfully closed', '2004-05-03 11:26:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_CONFIG_SAVED', 'System preferences have been saved successfully. A backup of the old configuration file was created and saved as %s (it\'s in your content directory).', '2005-03-29 15:22:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_CONFIRMATION_SENT', 'An email confirmation message has been sent.', '2005-03-22 12:07:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_CONFIRM_EMAIL', 'An email message has been sent to the new email address you specified. You must follow the instructions in that email for the changes to take effect.', '2006-05-11 15:55:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_CONFIRM_EMAIL2', 'An email with instructions on retrieving your password has been sent.', '2006-05-10 10:23:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_CONFIRM_GOOD', 'Your email address has been confirmed successfully.', '2005-04-11 10:29:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_CONTENT_DELETED', 'Content was successfully deleted', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_CONTENT_DIR_CREATED', 'Content directory created successfully.', '2003-10-15 12:20:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_COURSE_DEFAULT_FSIZE', 'The \'Max File Size\' was set to \'Default\' as the entered file size was either empty or negative.', '2003-10-14 16:13:40', 'course properites: file size was set to default');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_COURSE_PREFS_SAVED', 'Course preferences were saved', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_COURSE_PROPERTIES', 'Course properties were successfully updated.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_COURSE_REMOVED', 'Course was removed successfully.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_DIRS_MOVED', 'Directories successfully moved.', '2004-11-10 14:12:11', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_DIR_DELETED', 'Folder was successfully deleted.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ENROLLED', 'The following unique accounts were successfully added to the course list: <ul> %s </ul>', '2005-06-23 12:51:35', 'enrollment manager, confirm enrollmnet');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_ERROR_LOG_RESET', 'The error log was reset successfully.', '2005-03-10 15:53:27', 'error logging');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_EXPORT_CANCELLED', 'Export cancelled successfully.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILES_MOVED', 'Files moved successfully.', '2006-03-20 16:10:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILEUPLOAD_DONE', 'File(s) uploaded.', '2008-07-22 16:45:58', 'Files uploaded');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILE_EDITED', 'File successfully edited.', '2006-08-29 11:07:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILE_EDITED_SUCCESSFULLY', 'File edited successfully.', '2006-03-20 15:05:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILE_EXISTS', 'The file <strong>%1$s</strong> already exists. The newly uploaded file was saved as <strong>%2$s</strong>. <a href="mods/_core/file_manager/index.php?overwrite=%2$s%5$spathext=%3$s%5$spopup=%4$s">Overwrite</a> the old existing file with the newer one.', '2010-03-09 14:27:41', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILE_OVERWRITE', 'File overwrite successful.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILE_PASTED', 'The file was successfully pasted into the textarea below. <strong><em>Save to apply changes</em></strong>, or Cancel to return to the previously saved content.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILE_SAVED', 'The file was successfully saved as <strong>%s</strong>', '2005-01-10 09:35:48', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILE_UPLOADED', 'File was successfully uploaded.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FILE_UPLOADED_ZIP', 'File was successfully uploaded. You may now <a href="mods/_core/file_manager/zip.php?pathext=%1$s%4$sfile=%2$s%4$spopup=%3$s">extract</a> the file.', '2010-03-09 14:28:13', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FOLDER_EDITED_SUCCESSFULLY', 'Folder edited successfully.', '2006-03-20 15:42:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FORUM_POSTING', 'To post messages to the new forum, log into ATutor as regular users or instructor.', '2004-11-21 10:08:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FORUM_SUBSCRIBED', 'You have successfully subscribed to the <strong>%s</strong> forum. Messages posted to this forum will be delivered to your registered email address. View your profile to modify your email address.', '2004-12-02 15:04:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_FORUM_UNSUBSCRIBED', 'You have successfully unsubscribed from the <strong>%s</strong> forum. Messages posted to this forum will no longer be delivered to your email address.', '2004-12-03 17:25:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GADGET_ADDED_SUCCESSFULLY', 'Gadget was successsfully added.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GADGET_REMOVED_SUCCESSFULLY', 'Gadget was successsfully removed.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GADGET_SETTINGS_SAVED', 'Gadget settings have been saved.', '2009-05-28 17:21:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GOOGLE_KEY_SAVED', 'Google key saved successfully.', '2005-10-20 11:07:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GRADEBOOK_UPDATED', 'The following grades have been successfully updated into gradebook: <ul> %s </ul>', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GROUP_CREATED', 'Group was successfully created.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GROUP_DELETED', 'Group deleted.', '2004-11-25 15:48:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GROUP_EDITED_SUCCESSFULLY', 'Group edited successfully.', '2006-03-23 11:09:18', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GROUP_JOINED', 'Group successfully joined.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GROUP_MEMBERS_SAVED', 'Group members saved successfully.', '2006-04-17 11:43:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GROUP_TYPE_DELETED', 'Group was successsfully deleted.', '2006-05-23 15:33:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GROUP_TYPE_EDITED_SUCCESSFULLY', 'Group type edited successfully.', '2006-03-23 11:18:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_GROUP_UPDATED', 'Group updated successfully.', '2004-11-25 15:49:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_IMPORT_CANCELLED', 'Import cancelled successfully.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_IMPORT_LANG_SUCCESS', 'New language was successfully imported. You may view and modify the new language by choosing it from the selection menu below.', '2003-06-05 19:38:41', 'admin language manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_IMPORT_SUCCEEDED', 'Import was successful.', '2008-10-02 13:48:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_INVITATION_SENT', 'Invitation successfully sent. Person will be added when the invitation has been accepted.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_JOIN_REQUEST_SENT', 'Request to join group has been sent. You will be added to the group when your request has been approved.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_LANG_ADDED', 'New language was successfully created. Use the language selector to choose the new language, then beginning adding translated terms. Translation tools are enabled in include/vitals.inc.php', '2004-11-20 20:14:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_LANG_DELETED', 'Language was successfully removed.', '2003-06-05 19:38:01', 'admin language manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_LANG_UPDATED', 'Language successfully updated.', '2005-04-26 16:04:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_LEFT_GROUP_SUCCESSFULLY', 'Successfully removed from group.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_LINK_ADDED', 'Link added successfully.  Link will become visible if approved.', '2005-02-23 12:07:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_LOGIN_SUCCESS', 'You have logged in successfully. Welcome back!', '2005-02-15 17:07:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_LOGOUT', 'You have successfully been logged out.', '2003-10-29 10:00:12', 'after logging out');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_MASTER_LIST_NO_CHANGES', 'No changes were done to the Master Student List.', '2005-06-16 12:32:19', 'When action to master list yields no changes');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_MASTER_LIST_UPLOADED', 'Master Student List has been updated successfully.', '2005-04-04 16:12:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_MEMBERS_ALUMNI', 'Student has been assigned alumni status.', '2004-12-02 11:42:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_MEMBERS_ENROLLED', 'The selected students were successfully enrolled in the course.', '2004-12-02 11:42:37', 'enrollment manager, confirm enrollment');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_MEMBERS_REMOVED', 'The selected users were successfully removed from the course', '2004-10-18 10:58:17', 'enrollment manager, confirm removal');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_MEMBERS_UNENROLLED', 'The selected users were successfully un-enrolled from the course', '2004-10-18 10:59:09', 'enrollemnt manager, confrm unenrollment');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_MOD_INSTALLED', 'Module successfully installed. Select the installed module from the list below, and press <strong>Enable</strong> to turn it on.', '2008-10-24 14:05:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_MOVED_FILES', 'Files successfully moved.', '2004-11-10 14:11:19', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_NOT_ENROLLED', 'The following students were not enrolled: <ul> %s </ul>', '2005-06-23 12:50:31', 'When a student was not enrolled when imported/created.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_NOW_ENROLLED', 'You are now enrolled in the %s course. You may enter the course at any time. To un-enroll, select "Un-Enroll" next to the course listing in My Courses..', '2005-06-06 10:04:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PACKAGES_IMPORT_SUCCESS', 'The packages<ol> %s </ol>were imported successfully.', '2005-05-17 12:03:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PACKAGE_IMPORT_SUCCESS', 'The package &quot;%s&quot; was imported successfully.', '2005-05-17 12:03:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PASSWORD_CHANGED', 'Password changed successfully. You may now login using the new password.', '2006-05-09 14:22:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PASSWORD_SUCCESS', 'Your login and password have been successfully emailed.', '2005-01-18 14:29:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PATCH_CREATED_SUCCESSFULLY', 'The patch has been created successfully.', '2008-04-21 15:11:31', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PATCH_INSTALLED_SUCCESSFULLY', 'The patch has been installed successfully.', '2008-04-21 15:08:55', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_POST_ADDED_SUCCESSFULLY', 'Blog message was successfully posted.', '2006-05-22 12:35:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PREFS_LOGIN', 'You cannot save these preferences because you are not logged in.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PRIVS_CHANGED', 'Privileges updated successfully.', '2005-08-24 11:21:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PROFILE_CREATED_ADMIN', 'User account created successfully.', '2005-03-29 15:19:07', 'admin create user');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PROFILE_UPDATED', 'Your Profile was successfully updated.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_PROFILE_UPDATED_ADMIN', 'The user profile was successfully updated', '2004-12-17 11:47:52', 'change user profile from admin area');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_QUESTION_DELETED', 'Question was successfully deleted.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_QUESTION_REMOVED', 'Question was successfully removed from test/survey.', '2004-11-24 10:03:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_QUESTION_UPDATED', 'Question was successfully updated.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_REG_THANKS', 'Thank you for registering, please <a href="login.php">login</a>.', '2003-09-25 14:39:50', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_REG_THANKS_CONFIRM', 'Thank-you for registering. Please follow the instructions in the email we sent you on how to confirm your account. You will need to confirm your account before you can login.', '2005-03-22 11:29:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_REJECT_GROUP_INVITATION', 'Invitation to join group was rejected.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_REJECT_GROUP_REQUEST', 'Request to join group was rejected.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_REQUEST_FRIEND_ADDED', 'Your request has been sent. Your new contact will be added when the person has accepted your request.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_RESOURCE_PROPERTIES_UPDATED', 'Resource properties have been successfully updated.', '2008-10-19 14:20:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_RESULTS_UPDATED', 'Result was successfully updated.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_RESULT_DELETED', 'Successfully deleted selected results.', '2008-08-20 15:02:07', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_SOCIAL_GROUP_UPDATED', 'Group successfully updated.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_SOCIAL_SETTINGS_SAVED', 'Social networking settings have been saved.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_STUDENT_TOOLS_SAVED', 'Student tools successfully updated', '2008-11-07 09:56:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_THEME_DEFAULT', 'The theme, <b>%s</b>, is now the default theme.', '2004-10-18 15:17:47', 'Theme Manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_THEME_DISABLED', 'The theme, <b> %s</b>, has been disabled successfully <b>(users currently using the theme will still be able to use the theme until it is deleted)</b>', '2004-10-19 16:55:20', 'theme manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_THREAD_LOCKED', 'Thread has been successfully <strong><em>locked</em></strong>.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_THREAD_SUBSCRIBED', 'You have successfully subscribed to the <strong>%s</strong> thread. Messages posted to this thread will be forwarded to your registered email address. View your profile to modify your email address.', '2004-12-02 16:21:03', 'forum threads');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_THREAD_UNLOCKED', 'Thread has been successfully <strong><em>unlocked</em></strong>.', '2003-05-16 13:47:01', 'feedback msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_THREAD_UNSUBSCRIBED', 'You have successfully unsubscribed from the <strong>%s</strong> thread. Messages will no longer be sent to your email address.', '2004-12-02 16:34:13', 'forum threads');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_TILE_IMPORT_SUCCESS', 'The course is imported into Transformable successfully. <br /><a href="%s" target="_new">View imported course at Transformable in a new window</a>', '2010-02-23 10:02:44', 'tile search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_FEEDBACK_UPDATE_GRADEBOOK', '"<strong>%1$s</strong>" cannot be updated into gradebook because the following students have taken it more than once:<br />\r\n%2$s.', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_404_BLURB', 'The page you are trying to access <i>%s</i> does not exist, or has been moved. Try using the <a href="mods/_standard/sitemap/sitemap.php">SiteMap</a> to find it.', '2010-03-09 14:29:53', '/404.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_ACCESS_PUBLIC', 'This feature is only available for protected or private courses.', '2007-02-13 15:55:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_ACCOUNT_APPROVED', 'You have successfully upgraded to an instructor account.', '2004-02-12 12:52:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_ALREADY_ENROLLED', 'You have already made a request to enroll in this course and you have not yet been approved by the instructor. You will be notifed when your request has been approved.', '2004-11-05 10:29:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_APPROVAL_PENDING', 'Your request has been made. You will be notified when your request has been approved.<br /><br />Return to <a href="users/index.php">My Courses</a>.', '2009-09-17 14:48:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_ASSIGNMENT_FS_SUBMISSIONS', 'Assignments are submitted using the group File Storage tool. Assign to all students, or create a group and enable File Storage for that group, to add an assignment drop-box.', '2006-06-29 14:50:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_CANNOT_CONNECT_MOD_SERVER', 'Unable to connect to module server. Be sure your Internet connection is functioning, and your firewall is not blocking access.', '2009-12-16 18:45:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_CANNOT_CONNECT_PATCH_SERVER', 'Failed to connect to patch server: %s so patches provided by the patch server can not be listed. Please proceed with installing private patch.', '2008-10-08 12:51:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_CANNOT_CONNECT_SERVER', 'Failed to connect to SVN server to determine if the files that will be modified by the patch script have previously been modified. So, to protect any customizations you\'ve made, all local scripts manipulated by patch are considered locally customized.', '2008-10-08 12:55:18', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_COURSE_ENDED', 'This course has ended on %s.', '2007-07-16 11:56:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_COURSE_RELEASE', 'This course has not yet been released. It is scheduled to be released on %s.', '2006-04-11 12:36:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_DECISION_NOT_REVERSED', 'Decisions could not be reversed.', '2004-08-18 12:08:25', 'AChecker - can\'t reverse decision');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_DECISION_NOT_SAVED', 'Decisions could not be saved.', '2004-08-18 12:09:38', 'AChecker - can\'t save decision');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_DECISION_REVERSED', 'Decision reversed successfully.', '2004-08-18 12:07:27', 'AChecker - reverse decision');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_FEATURE_NOT_AVAILABLE', 'This feature is not available.', '2007-02-26 11:12:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_FIRST_PREFS', 'Your personal preferences have not been setup. You can click on the wand icon above to open the personal preferences wizard, or ignore this message and use the default settings. You adjust your preferences later under the Preferences tab on My Start Page.', '2010-04-02 11:23:15', 'pref wizard');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_GLOSSARY_REMAINS', 'Note that removing a linked glossary term from your content will <strong>not</strong> delete the term from the glossary.', '2003-05-16 13:45:50', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_INBOX_SENT_MSGS_TTL', 'Sent messages are automatically deleted every %s days.', '2007-02-20 14:19:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_INVALID_URL', 'Localhost is not a valid URL', '2004-08-18 12:03:14', 'Used when AChecker reading URL');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_INVALID_USER', 'You must <a href="login.php?course=%s">login</a> to use this section.', '2004-04-15 13:52:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_LOGIN_TO_POST', 'You must be logged in to post.', '2004-11-05 10:29:51', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_MASTER_LIST_DISABLED', 'The master list has been disabled.  To enable this functionality go to <a href="admin/config_edit.php">System Preferences</a>.', '2005-05-10 15:16:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_MAX_ATTEMPTS', 'The test cannot be taken.  It is not available at this time, or you have reached the maximum number of attempts for this test.  If you have already completed this test. Please visit the <a href="mods/_standard/tests/my_tests.php">Tests & Surveys</a> to see your results.', '2010-03-09 14:31:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_MSG_SEND_LOGIN', 'You must be logged in to send messages.', '2003-05-16 13:42:17', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NOT_ENROLLED', 'You need to be enrolled in this course to access this area.', '2004-05-12 11:35:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NOT_RELEASED', 'This content has not yet been released. It is scheduled to be released on %s.', '2005-11-22 15:21:27', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_CONTENT', 'This course has no content yet.', '2003-05-16 13:45:50', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_COURSES', 'No courses found. <a href="./users/browse.php">Browse</a> existing courses.', '2006-11-24 15:24:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_COURSES_INST', 'No courses found. <a href="./browse.php">Browse</a> existing courses or <a href="./mods/_core/courses/users/create_course.php">create</a> a new one.', '2010-03-09 14:07:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_FORUMS', 'There are no forums that exist.', '2008-11-07 10:43:18', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_LINK_CATEGORIES', 'There are currently no link categories.  A link may not be suggested until link categories have been created.', '2005-03-16 16:47:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_PACKAGES', 'No packages found.', '2005-05-17 12:03:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_PAGE_CONTENT', 'There is no content on this page.', '2003-05-16 13:45:50', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_PERMISSION', 'You do not have permission to access this page.', '2003-05-16 13:45:50', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_POLLS', 'No polls are available right now.', '2005-03-22 10:52:43', 'no active polls');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_POSTS_FOUND', 'There are no posts in this forum.', '2003-05-16 13:45:50', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_SEARCH_RESULTS', 'No search results.', '2003-08-22 11:31:53', 'search page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_STUDENTS', 'There are no students enrolled in this course.', '2005-03-22 11:09:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_TESTS', 'No tests found. Create tests using the test manage.', '2008-11-12 10:07:03', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_NO_TOOLS_FOUND', 'No student tools are turned on. Turn them on through Manage>Student Tools', '2008-12-11 11:02:22', 'FHA student tools screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_OVER_QUOTA', 'You have reached or passed your maximum quota for this course. You will have to delete some files before you will be able to upload again.', '2003-10-07 15:06:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_PATCH_INSTALLED_AND_REMOVE_PERMISSION', 'The patch has been installed. Please remove write permission as instructed below.', '2008-04-22 14:10:33', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_PRETEST', 'You must take the prerequisite test in order to view the content.', '2009-11-13 15:52:44', 'content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_PRETEST_EXPIRED', 'You can\'t view this content because the prerequisite test <span style="font-weight:bold">"%s"</span> has expired. Please contact your instructor.', '2009-11-30 14:40:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_PRETEST_FAILED', 'You this cannot view this content because you have not passed the prerequisite test <span style="font-weight:bold">"%s"</span>.', '2009-11-13 15:51:50', 'edit/create folder');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_PRETEST_NO_PRIV', 'You can\'t view this content before taking the prerequisite test <span style="font-weight:bold">"%s"</span>.', '2009-11-13 15:51:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_PRIVATE_ENROL', 'The course you are trying to access is <strong>private</strong>. Enrollment in this course requires instructor approval.<br />', '2003-10-24 15:31:11', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_REG_DISABLED', 'Public registration is disabled.', '2008-09-10 14:09:17', 'registration form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_SAVE_CONTENT', 'Content must be saved before using this tool.', '2008-11-11 15:49:25', 'AChecker requirement in ATutor content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_SERVICE_UNAVAILABLE', 'Service currently unavailable.', '2004-08-18 12:00:53', 'Used for AChecker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_TRACKING_NO_INST', 'You have chosen your own ID number. Tracking information is not recorded for course instructors. Choose another user.', '2003-10-24 15:31:44', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_TRACKING_NO_INST1', 'Tracking information is not recorded for course instructors. See the <a href="mods/_standard/tracker/course_tracker.php">Course Tracker</a> for a record of course activity.', '2010-03-09 14:33:16', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_TRACKING_OFFIN', 'Tracking is not enabled for this course. Contact your system administrator to have it turned on.', '2003-05-16 13:45:50', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_INFOS_TRACKING_OFFST', 'Tracking is not enabled for this course.', '2003-05-16 13:45:50', 'info msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_WARNING_CHAT_TRAN_EXISTS', 'A transcript with the name %s already exits. Either delete the original transcript, then resubmit, or rename your new transcript.', '2003-06-02 14:05:26', 'achat instructor transcript tool');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_WARNING_DELETE_CATEGORY', 'Are you sure you want to delete this category with all its links?', '2003-05-16 13:46:16', 'warning msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_WARNING_LANG_EXISTS', 'The language you are uploading is already installed on this system. Delete the existing language first by selecting the "<strong>Remove</strong>" link next to its listing below.', '2003-06-06 09:40:14', 'admin language manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_WARNING_MAIL_NOT_ON', 'Mail configuration is not set properly. You may not be able to send out emails. See <a href="http://www.atutor.ca/atutor/docs/faq.php">ATutor FAQ</a> for details.', '2009-12-08 16:18:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_WARNING_QUESTION_WEIGHT', 'One or more of the questions on this test do not have points associated with them.  Ensure that this is correct, or enter values for questions that do not have points.', '2007-03-05 15:52:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_WARNING_SAVE_YOUR_WORK', 'Save your work before opening or closing the File Manager.', '2003-05-16 13:46:16', 'warning msg');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_WARNING_THEME_VERSION_DIFF', 'The theme, <b>%s</b>, may not be compatible with this version of Atutor.', '2004-10-19 14:34:35', 'Theme Manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_msgs', 'AT_WARNING_TRANSLATE_ON', 'You are currently in Translation Mode. Any user can access the translation page at this time. To turn off the Translate mode please set AT_DEVEL_TRANSLATE in /include/vitals.inc.php to zero.', '2004-12-09 10:53:02', 'admin index and admin language manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', '15_max_chars', '8 characters minimum, 15 characters maximum', '2006-07-17 12:03:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', '20_max_chars', '20 character maximum', '2003-06-04 14:52:27', 'login name registration screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', '404', 'Error: Missing Page', '2004-03-10 11:24:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'a', 'A', '2007-01-10 13:47:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'a4a_export', 'Export AccessForAll adapted content.', '2008-10-19 15:12:28', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'a4a_import_package', 'Import available AccessForAll adapted content.', '2008-10-21 11:44:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'abacus', 'Abacus', '2008-09-09 09:03:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'about_atutor', 'About ATutor', '2004-01-14 10:25:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'about_atutor_help_text', 'Learn about various sources of ATutor help, and the help display options available.', '2004-05-19 10:40:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'about_content_tests', 'Link available tests to this content page.', '2008-09-23 13:46:28', 'content editor tests tab');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'about_pretest', 'Select from the available tests one or more that must be passed before the student can view content in this folder.', '2009-11-13 15:43:59', 'edit/create folder');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'about_private', 'Available only to users with an ATutor System Account, and Instructor approved enrollment. Login required. Enrollment is required.', '2004-01-22 14:54:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'about_protected', 'Available only to users with an ATutor System Account. Login required. Enrollment is optional.', '2004-02-05 09:43:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'about_public', 'Available to all users with or without an ATutor System Account. Login not required. Enrollment is optional.', '2004-02-05 09:42:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'accept_late_submissions', 'Accept Late Submissions', '2006-03-23 11:38:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'accept_request', 'Accept Request', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'access', 'Access', '2007-01-27 13:45:44', 'create a new course');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'accessibility', 'Accessibility', '2003-05-21 13:56:28', 'help page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'accessibility_features', 'Accessibility Features', '2003-05-21 14:28:03', 'help');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'accessibility_features_text', 'Using ATutor with assistive technology and other accessibility features.', '2003-05-21 14:00:59', 'help');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'access_credit', 'Accessibility report provided by <a title="AChecker Web Accessibility Checker (link opens in a new window)" target="_new" href="http://www.achecker.ca">AChecker</a>.', '2009-11-04 16:20:03', 'include/html/editor_tabs/accessibility.inc.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'access_method', 'Access Method', '2003-05-18 09:07:28', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'access_stats', 'Access Method Statistics for', '2005-02-07 16:22:32', 'context (?)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'account_authorization', 'Account Creation Authorization', '2005-05-27 13:33:38', 'registration page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'account_information', 'Account Information', '2003-05-18 09:14:11', 'control centre/registration');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'account_settings', 'Account settings', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'account_status', 'Account Status', '2005-04-14 11:09:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'action', 'Action', '2004-10-14 14:10:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'active_admin', 'Active Administrator', '2005-03-03 11:00:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'activities', 'Activities', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'ac_access_groups', 'Access Groups', '2004-03-09 14:22:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add', 'Add', '2004-11-24 14:28:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'added_members', 'Current Group Members', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_announcement', 'Add Announcement', '2003-05-18 09:17:38', 'course announcments/home page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_application', 'Add Gadget', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_application_url', 'Add gadget by URL', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_assignment', 'Add Assignment', '2006-03-23 11:36:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_atutor_test', 'Add ATutor Assignments/Test/Surveys', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_atutor_test_info', 'Select from the available test and assignment titles, then optionally choose a  "Grade Scale", to add a test or assignment to the gradebook. . If "Grade Scale" is set to none, the raw final score will be used in place of a grade scale. Only tests with the test property "Attempts Allowed" set to 1 can be added to the Gradebook. Create tests using the ATutor Tests & Surveys Manager', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_a_file', 'Add A File', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_a_new_language', 'Add a new language.', '2004-10-28 13:05:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_code', 'Add Code', '2004-05-06 12:22:57', 'Title for code tags in code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_content', 'Create Content', '2005-04-18 11:40:53', 'heading/submit button on Add Content screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_content_folder', 'Add Content Folder', '2009-09-16 13:11:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_dependent_patch', 'Add A Dependent Patch', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_external_test', 'Add External Assignments/Tests', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_file_folder', 'Add File or Folder', '2008-07-22 16:45:15', 'Title text used in File Manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_glossary', 'Add Glossary Term', '2005-03-07 11:42:42', 'glossary screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_grade_scale', 'Add Grade Scale', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_language', 'Add Language', '2004-09-01 15:42:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_link', 'Add Link', '2005-02-22 10:13:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_media', 'Add Media', '2009-11-04 12:48:56', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_more', 'Add More Students', '2004-10-15 14:10:59', 'create student list manually in enrollment manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_association', 'Add new association', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_award', 'Add new award', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_contact', 'Add new alternate contact', '2009-12-10 10:17:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_content', 'Add Alternate Contact', '2009-12-03 15:38:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_education', 'Add new education', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_interest', 'Add new interest', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_personal', 'Add personal information', '2009-12-07 13:47:05', 'Social personal info');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_position', 'Add new position', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_representation', 'Add new representative', '2009-12-10 10:17:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_representative', 'Add New Representative', '2009-12-03 15:41:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_new_website', 'Add new website', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_poll', 'Add Poll', '2004-06-14 14:41:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_question', 'Add Question', '2005-10-19 12:44:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_questions', 'Add Questions', '2003-05-18 10:27:45', 'test manager add questions screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_sibling_folder', 'Add Sibling Folder', '2009-09-16 13:12:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_sibling_page', 'Add Sibling Page', '2005-07-21 10:18:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_sub_folder', 'Add Sub Folder', '2009-09-16 13:13:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_sub_page', 'Add Sub Page', '2005-03-31 14:17:33', 'content page shortcuts');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_term', 'Add Term', '2003-05-18 10:28:38', 'glossary');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_tests', 'Add Tests/Assignments', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_topic', 'Add Topic', '2005-10-19 12:43:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_top_folder', 'Add Top Folder', '2009-09-16 13:12:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_top_page', 'Add Top Page', '2005-07-21 10:18:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_to_friends', 'Add to contacts', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_to_mygadgets', 'Add to My Gadgets', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'add_to_test_survey', 'Add to Test/Survey', '2004-11-22 16:38:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'administration', 'Administration', '2003-06-04 10:51:48', 'admin home page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'administrators', 'Administrators', '2005-03-03 10:40:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'admin_bundle_instructions', 'Please select the profile(s) you wish to bundle and send via e-mail. All error logs coupled with these profiles will also be included.', '2005-03-10 15:29:13', 'admin error reporting');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'admin_email', 'Email Users', '2005-01-06 14:57:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'admin_log', 'Administrator Activity Log', '2005-03-03 10:40:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'admin_new_account', 'A user account has been created for you at %1s. To access this account, please log into the site. It is strongly suggested you change your password upon logging in.', '2005-06-21 16:38:21', 'Admin creates a new user account.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'admin_new_account_confirm', 'An account has been created for you at %1s. To access your account, you must first confirm your email by using the following link: %2s. It is strongly suggested you change your password upon logging in.', '2005-06-21 16:37:44', 'Admin creates a new user and confirm is ON');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'admin_social', 'Social Network Settings', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'affected_entries', 'Affected Entries', '2005-03-03 12:14:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'after_topic', 'After: %s', '2004-01-16 13:19:46', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'age', 'Age', '2003-05-18 10:38:32', 'registration, profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all', 'All', '2003-05-18 11:35:37', 'glossary');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'allow_browse', 'Course Browser', '2009-07-23 15:48:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'allow_editing', 'Allow Editing', '2007-02-20 10:30:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'allow_guests', 'Allow Guests', '2007-03-06 14:44:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'allow_instructor_registration', 'Allow Instructors to Enroll Users from the System Registration List', '2008-11-14 11:51:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'allow_instructor_requests', 'Allow Instructor Requests', '2005-03-03 10:51:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'allow_registration', 'Allow Self-Registration', '2008-09-10 14:14:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'allow_test_export', 'Allow students to export tests with content packages:', '2008-09-26 13:43:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'allow_unenroll', 'Allow Users to Unenroll Themselves from Courses.', '2008-09-10 14:16:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_atutor_assignments', 'All ATutor Assignments', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_atutor_tests', 'All Applicable ATutor Tests &amp; Surveys', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_available_courses', 'All available courses', '2004-08-18 12:03:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_courses', 'All Courses', '2005-04-01 14:08:29', 'forums');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_failed_students', 'All Failed Students', '2008-03-10 11:52:03', 'Test/Survey Property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_forums', 'Share with all courses, or', '2006-06-01 14:31:37', 'admin create shared forum');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_label', 'All (%s)', '2005-05-12 10:26:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_passed_students', 'All Passed Students', '2008-03-10 11:51:36', 'Test/Survey Property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_questions_on_page', 'All questions on one page', '2007-08-20 15:46:22', 'create/edit test');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_students', 'All Students', '2006-03-23 13:39:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'all_users', 'All Users', '2005-03-10 15:24:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alter', 'Alter', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alternate_text', 'Alternate Text', '2004-12-08 12:39:27', 'filemanager, image inset alt field');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alternatives', 'Alternatives', '2010-03-09 16:16:55', 'adapted content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alternatives_to', 'Adaptation of', '2008-10-21 10:56:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alternative_content', 'Adapted Content', '2008-10-19 12:03:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alt_contact', 'Alternate Contact', '2009-12-03 15:40:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alt_to_audio', 'Alternative To Audio', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alt_to_text', 'Alternative To Text', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alt_to_visual', 'Alternative To Visual', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'alumni', 'Alumni', '2004-10-22 15:56:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'always', 'Always', '2006-03-23 11:38:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'american-asl', 'American-ASL', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'announcements', 'Announcements', '2003-05-18 11:36:24', 'course home page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'announcement_date_format', '%%l %%F %%j, %%Y - %%H:%%i', '2006-04-11 14:10:57', 'course home page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'anonymous', 'Anonymous', '2004-08-26 13:24:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'anonymous_test', 'Anonymous', '2004-08-26 12:31:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'answer', 'Answer', '2003-05-18 11:38:10', 'test question add/edit screens');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'answers', 'Answers', '2007-01-10 13:47:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'answer_size', 'Answer Size', '2003-05-18 11:38:55', 'add/edit open ended question');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'apache_mod_rewrite', 'Apache mod_rewrite', '2008-05-14 12:04:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'append', 'Append', '2008-09-09 09:02:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'append_content', 'Append selected material', '2004-10-15 14:18:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'append_or_replace', 'Append or Replace Original Content', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'applications', 'Gadgets', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'application_control_blurb', 'Choose which gadgets to display on your networking home page.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'application_settings', 'Gadget Settings', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'applies_to_all_sub_pages', 'Applies to all sub pages.', '2007-03-01 10:23:22', 'edit/create content page. release date.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'apply', 'Apply', '2005-02-10 11:25:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'apply_theme_subcategories', 'Apply theme to subcategories.', '2004-08-04 11:35:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'apply_to_all_results', 'Apply to all results', '2007-02-21 11:49:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'approve', 'Approve', '2003-05-18 11:41:29', 'enrol administration');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'approved', 'Approved', '2005-02-23 12:17:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'approve_request', 'Approve Request', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'archive_total', 'Archive Total', '2003-05-18 11:42:55', 'file manager zip tool');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'arrange_content', 'Arrange Content', '2009-09-16 13:13:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'assigned_to', 'Assigned To', '2005-06-02 12:18:18', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'assignment', 'Assignment', '2006-03-20 14:38:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'assignments', 'Assignments', '2006-03-20 14:40:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'assignment_due', 'Assignment Due: %s - Due Date: %s', '2010-03-25 15:32:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'assign_to', 'Assign To', '2006-03-23 11:37:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'assign_unassigned', 'Assign Unassigned', '2006-03-23 11:07:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'assistant', 'Assistant', '2006-05-23 15:24:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'assistants', 'Assistants', '2004-10-15 11:45:31', 'Assistants tab in enrollment manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'associations', 'Associations', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'as_individual_content', 'As individual content pages', '2004-08-18 12:04:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'at', 'at', '2003-05-18 11:44:08', 'release date tool/links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atlas', 'Atlas', '2008-09-10 12:26:11', 'tool prefs');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'attempts', 'Attempts', '2004-08-30 11:31:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_accessibility_text', '<p>ATutor includes a variety of features designed to ensure that content is accessible to all potential users, including those with slow Internet connections, older Web browsers, and people with disabilities using assistive technologies to access the Web. These features are described in detail below. Depending on the theme being used, ATutor may include all or some of the features listed here. The default theme includes them all.</p>\r\n\r\n<ol>\r\n<li><strong>ByPass Links:</strong> In the top left corner of ATutor is a  hidden bypass link that allows assistive technology users to skip over the navigation elements and jump directly to an anchor at the top of the content being displayed. Press the Tab key once after a page has finished loading to advance to the first bypass link then press Enter to reposition the content to the top of your screen. The content anchor can also be accessed with an accesskey [Alt-c], so it is possible to jump to the top of the content area no matter where the cursor might be located on the screen.<br /><br />\r\n\r\nOther bypass links include: "jump past table" so users can skip over various data table to quickly access content that may appear after the table; "jump past codes", so users can skip over the emoticon codes near the bottom of message posting form in the Forums.<br /><br /></li>\r\n\r\n<li><strong>Accesskeys:</strong> Keyboard accessibility has been added to many ATutor features. To activate accesskeys, press Alt plus the assigned number, letter, or character. Accesskeys are assigned dynamically to the tabs in the Main Navigation. The first tab will be assigned [Alt-1], the second tab will be assigned [Alt-2], and so on.  Note that not all browsers support accesskeys.<br /><br />\r\n\r\nGeneral AccessKeys\r\n<ul>\r\n<li>[Alt-1 to Alt-0] Main Navigation Tabs</li>\r\n<li>[Alt-,] Previous topic (i.e. Left angle bracket <)</li>\r\n<li>[Alt-.] Next topic (i.e. Right angle bracket > )</li>\r\n<li>[Alt-.] Resume (i.e. Right angle bracket > while outside the course content)</li>\r\n<li>[Alt-j] Jump Menu</li>\r\n<li>[Alt-s] Submit (active on many form pages)</li>\r\n<li>[Alt-c] Jump to content top (top and navigation bypass link)</li>\r\n</ul>\r\n\r\nContent Editor AccessKeys\r\n<ul>\r\n<li>[Alt-n] Content Tab</li>\r\n<li>[Alt-p] Properties Tab</li>\r\n<li>[Alt-g] Glossary Tab</li>\r\n<li>[Alt-r] Preview Tab</li>\r\n<li>[Alt-a] Accessibility Tab</li>\r\n<li>[Alt-s] Save</li>\r\n</ul>\r\n\r\nChat AccessKeys\r\n<ul>\r\n<li>[Alt-c] Jump to Compose Message field</li>\r\n<li>[Alt-r] Refresh Messages</li>\r\n<li>[Alt-m] Jump to Message List</li>\r\n<li>[Alt-q] Quit Chat</li>\r\n</ul>\r\n\r\nInbox AccessKeys\r\n<ul>\r\n<li>[Alt-r] Reply to Messages</li>\r\n</ul>\r\n<br />\r\n\r\nVisual Editor AccessKeys\r\n<ul>\r\n<li>[Alt-q] jump to button bar</li>\r\n<li>[Alt-z] jump to content area of editor</li>\r\n<li>[Alt-x] jump to element path (bottm)</li>\r\n</ul>\r\n</li>\r\n\r\n<li><strong>Accessibility Verifier: </strong>While using the ATutor Content Editor, instructors can check the accessibility of their content to be sure it can accessed by all students, including those using assistive technologies, or older technologies. While using the Content Editor, select [Alt-a] to open the accessibility verifier.</li>\r\n\r\n<li><strong>Alternative Text: </strong>All meaningful images in ATutor include a text alternative that describes the image or its function. Where images are not meaningful the Alt attribute is left empty so assistive technologies  will ignore the image.</li>\r\n\r\n<li><strong>Alternative Navigation: </strong>Global, hierarchical, and sequential navigation tools are available so users can view or structure content in a manner that suits their style of learning.  The ATutor SiteMap provides a full list of all content and tools available, so all features in a course can be accessed from a single location.</li>\r\n\r\n<li><strong>Resume/Continue: </strong>ATutor remembers the last page accessed when users leave the course content, to go to the Forums for instance, so they can quickly find their way back to where they left off. The content location is also remembered between sessions, so when returning to ATutor, users can simply choose the Resume link in the course listing on My Courses, or select the the resume link in the breadcrumbs at the top of the screen once in a course. Using the [Alt-.] accesskey will also return a user to the last content page they were viewing after they have entered into a course.</li>\r\n\r\n<li><strong>Hide Menus:</strong> For users of older assistive technologies that do not support columnar text laid out in tables, it is possible to hide ATutor\'s content navigation menu so that content will be displayed in a linear presentation. Hiding the content menu also conserves space for users viewing ATutor on smaller screens.</li>\r\n\r\n<li><strong>Search and Sort:</strong> Most data tables are accompanied by a search tool, or filter, so specific records can be displayed in the table, reducing the amount of data displayed at any given time. Most data tables can also be sorted by selecting the column header label, again allowing users to narrow down the data display.</li>\r\n\r\n<li><strong>Table  Header Associations: </strong>All data tables are marked up with the TH element and the scope attribute to ensure that screen reader users are able to navigate through data displays and understand what each data cell represents.</li>\r\n\r\n<li><strong>Form Labels: </strong>All form fields throughout ATutor are marked up using the LABEL element to ensure that they are properly described for assistive technology users. Explicit labeling in this manner also makes it possible to click on a form field\'s label to activate the field. This provides a larger target area for those people who have difficulty positioning a mouse pointer on a small form field such as a radio button or a checkbox.</li>\r\n\r\n<li><strong>Style Sheets: </strong>Wherever possible, the presentation of content in ATutor is controlled by style sheet elements. This allows users to override ATutor\'s default appearance and apply their own preferred presentation styles (i.e. increased font sizes, different font styles, colours, etc.)</li>\r\n\r\n<li><strong>Form Field Focus: </strong>For pages where the primary content is a form, the cursor will automatically be placed in the first field so that after a form page loads, users can begin typing into the form.  Users may choose to disable form focus in their preference settings if it interferes with their use of form screens.</li>\r\n\r\n<li><strong>Relative Sizing of Images: </strong>With browsers that support resizing of images, ATutor icons can be magnified for users with low vision, making them more easily visible. (e.g. Netscape 7 press Alt +) . Wherever possible relative measures have also been used for other feature within ATutor so when the interface is magnified or reduced, all features resize relative to each other, maintaining the screen\'s symmetry.</li>\r\n\r\n</ol>', '2005-12-06 14:38:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_handbook', 'Official ATutor Handbook', '2005-07-12 10:42:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_home', 'ATutor home', '2003-05-18 11:49:37', 'mail response link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_is', '<strong><em>ATutor</em></strong> is an Open Source Web-based <strong>Learning Content Management System (LCMS)</strong> designed with accessibility and adaptability in mind. Administrators can install or update ATutor in minutes, create custom themes to give it a new look, and extent its functionality by enabling or developing feature modules. Educators can quickly assemble, package, and redistribute instructional content, and conduct their courses online. Students learn in an adaptive learning environment.', '2007-12-14 11:22:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_links', '<p>Learn more about <a href="http://atutor.ca/index.php">ATutor</a> by browsing the following links:</p>\r\n\r\n<ul>\r\n<li><a href="http://atutor.ca/forums/index.php">Support Forums</a> - Post to the user forums</li>\r\n<li><a href="http://atutor.ca/services/index.php">Support Services</a> - If you need our help, support is available</li>         \r\n<li><a href="http://atutor.ca/atutor/translate/index.php">Translation</a> - Download language packs, become a translator</li>\r\n<li><a href="http://atutor.ca/services/licensing.php">Licensing</a> - ATutor software is available for free under certain terms</li>\r\n<li><a href="http://atutor.ca/atutor/download.php">Download ATutor</a> - All of the system software required to run ATutor can be downloaded here</li>\r\n</ul>', '2007-12-14 11:22:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_patch_id', 'ATutor Patch ID', '2008-04-21 15:08:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_settings', 'ATutor Settings', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_version', 'ATutor Version', '2005-03-10 11:21:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_version_tested_with', 'Last Tested With', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_version_text', '%s. <a href="http://atutor.ca/check_atutor_version.php?v=%s">Check Latest Version</a>.', '2007-07-26 13:52:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'atutor_version_to_apply', 'ATutor Version to Apply', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'at_tools', 'ATutor Tools', '2003-05-18 11:51:40', 'tracker column heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'audible_captcha', 'Audible Version of CAPTCHA', '2009-07-16 08:50:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'audio', 'Audio', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auditory', 'Auditory', '2008-09-08 14:18:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'australian-auslan', 'Australian-Auslan', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'austrian', 'Austrian', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'authenticated_access', 'Authenticated Access', '2007-02-13 15:37:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'author', 'Author', '2006-03-20 14:36:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auth_access_text', 'Give this link to those you wish to have limited access to your protected or private course.', '2007-02-13 15:54:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_approve_instructors', 'Auto Approve Instructor Requests', '2005-03-03 10:51:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_check_new_version', 'Check for ATutor Updates Automatically', '2005-11-21 12:37:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_enroll', 'Auto Enrollment At Registration', '2008-03-10 11:53:18', 'Auto Enroll Property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_enrolled_msg', 'You have been enrolled into these courses:', '2008-03-10 12:02:23', 'auto enroll property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_enroll_delete', 'Delete Auto Enrollment', '2008-03-10 11:54:52', 'Auto Enroll label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_enroll_edit', 'Create/Edit Auto Enrollment', '2008-03-10 12:01:18', 'Auto Enroll property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_enroll_msg', 'You will be enrolled into these courses.', '2008-03-10 12:01:55', 'auto enroll property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_install_languages', 'Automatically Install New Language Packs', '2006-07-26 12:08:03', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_install_languages_cron', 'You must set-up the <a href="admin/cron_config.php">cron</a> to use this feature.', '2006-07-26 12:08:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'auto_login1', 'Auto-Login', '2003-05-18 11:53:47', 'control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'availability', 'Availability', '2007-03-06 14:24:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'available_applications', 'Available Gadgets', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'available_immediately', 'Release immediately', '2006-04-10 14:37:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'available_on_my_courses', 'Link From The <em>My Courses</em> Page', '2005-05-02 12:12:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'available_patches', 'Available Patches', '2008-04-21 15:08:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'available_patches_text', 'There are <strong>%s</strong> patches available to install.', '2008-04-21 15:08:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'available_to', 'Available To', '2008-04-21 15:08:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'average', 'Average', '2003-05-18 11:56:58', 'test results / tracker courses statistics');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'avg_duration', 'Avg. Duration', '2005-03-01 12:40:29', 'tracker column heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'awards', 'Awards', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'b', 'B', '2007-12-18 14:39:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'back', 'Back', '2003-05-18 12:02:02', 'file manager back up to previous directory');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'backups', 'Backups', '2004-10-15 11:40:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'backup_manager', 'Backup Manager', '2004-10-14 13:59:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'back_to', 'Back To:', '2005-03-22 16:08:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'back_to_main', 'Back to Main', '2004-12-06 12:07:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'back_to_profile', 'Back to Profile', '2004-12-06 12:09:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'back_to_summary', 'Back to Summary', '2003-05-18 12:05:32', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'banner', 'Banner', '2006-03-28 14:32:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'basic_profile', 'Basic Profile', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'before_topic', 'Before: %s', '2004-01-16 13:19:20', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'bg_colour', 'Background Colour', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'black', 'Black', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'blogcomment_notify_body', '*DO NOT REPLY TO THIS MESSAGE*  <br /><br />\r\nA new blog comment has been posted in the group %s.<br /><br />Click the following link to visit the course.<br /><br />%s', '2009-06-24 11:59:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'blogcomment_notify_subject', 'New blog comment', '2009-06-24 11:57:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'blogs', 'Blogs', '2006-05-22 12:10:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'blog_notify_body', '*DO NOT REPLY TO THIS MESSAGE*  <br /><br />\r\nA new blog post has been published in the group %s.<br /><br />Click the following link to visit the course.<br /><br />%s', '2009-06-24 11:58:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'blog_notify_subject', 'New blog post', '2009-06-24 11:57:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'blog_subscribe', 'Subscribe', '2009-06-24 11:53:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'blog_unsubscribe', 'Unsubscribe', '2009-06-24 11:53:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'blue', 'Blue', '2003-05-18 12:09:34', 'global code picker tool');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'blue_guests', 'Blue = Guests', '2003-05-18 12:10:38', 'instructor course statistics');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'body', 'Body', '2003-05-18 12:11:16', 'add/edit forms for body field label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'bold', 'Bold', '2003-05-18 12:11:41', 'global code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'bottom', 'Bottom', '2003-05-23 16:58:31', 'preference settings option');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'british-bsl', 'British-BSL', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'browse_all', 'Browse All', '2009-07-16 10:57:49', 'browse all');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'browse_courses', 'Browse Courses', '2003-05-18 12:13:27', 'control centre, about, login screens');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'browse_files', 'Browse Files', '2008-07-22 16:43:56', 'For "Browse Files" button in Fluid\'\'s multiple file uploader');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'bt', '<acronym title="Byte">B</acronym>', '2007-12-18 14:39:47', 'byte, file manager/storage');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'bug_count', 'Bug Count', '2004-12-06 12:23:46', 'admin/error_logging.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'bug_identifier', 'Bug Identifier', '2004-12-06 12:05:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'builtin_icons', 'Builtin Icons', '2008-08-21 10:38:41', 'course properties');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'business', 'Business', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'by', 'by', '2008-07-25 15:59:13', 'anouncements by a users');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'bytes', 'Bytes', '2003-05-18 12:15:45', 'admin course size quote, course properties screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'c', 'C', '2007-01-10 13:48:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cache_directory', 'Cache Directory', '2005-03-03 10:52:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'calculator', 'Calculator', '2008-09-09 09:03:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cancel', 'Cancel', '2003-05-18 12:16:07', 'global cancel button');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cannot_find_remote_languages', 'ATutor was unable to connect to the ATutor.ca website to retrieve the list of available languages.', '2004-10-18 14:28:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'categories', 'Categories', '2005-02-22 10:12:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'category', 'Category', '2003-05-18 12:16:54', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cats_all', 'All Categories', '2005-02-23 10:22:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cats_categories', 'Categories', '2003-09-24 18:21:26', 'admin course categories');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cats_none', 'None', '2003-09-24 18:13:50', 'admin course categories');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cats_no_categories', 'No Categories', '2003-09-24 18:28:32', 'admin course categories');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cats_parent_category', 'Parent Category', '2003-09-24 18:04:38', 'admin course categories');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cats_uncategorized', 'Uncategorized', '2003-09-24 18:17:50', 'admin course categories');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cats_view_links', 'Show Links by Category', '2005-03-29 14:08:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cat_theme', 'Category Theme', '2004-08-04 11:34:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'center', 'Center', '2003-05-18 12:20:08', 'global code picker option');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'change_email', 'Change Email', '2006-05-10 11:11:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'change_password', 'Change Password', '2006-05-10 11:11:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'charset', 'Character Set', '2004-11-20 19:36:01', 'admin new language');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat', 'Chat', '2003-05-18 12:20:29', 'global chat label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_altc', 'Alt + C: Jump to Compose Message', '2003-05-30 12:41:06', 'chat options frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_altm', 'Alt + M: Jump to Messages', '2004-08-18 10:58:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_altq', 'Alt + Q:  Quit Chat', '2005-05-30 15:04:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_altr', 'Alt + R: Refresh Messages', '2004-08-18 10:58:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_auto180_checking', 'Automatic (180 second interval)', '2003-05-15 14:23:13', 'chat message checking preference');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_auto20_checking', 'Automatic (20 second interval)', '2003-05-15 14:22:22', 'chat message checking preference');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_auto5_checking', 'Automatic (5 second interval)', '2003-05-27 09:09:57', 'chat message checking preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_auto60_checking', 'Automatic (60 second interval)', '2003-05-15 14:22:53', 'chat message checking preference');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_chime_help', 'Set to "Yes" to recieve an audio tone when new messsages are posted. Does not work in all Web browsers.', '2003-05-15 19:33:11', 'chat message checking preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_compose_message', 'Compose Message', '2003-05-15 13:12:38', 'chat message compose frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_currently_active', 'Currently active', '2003-05-15 12:40:47', 'chat hompage transcript activated');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_current_tran', 'A transcript is already being recorded.  You may view the current transcript at', '2005-03-30 14:04:45', 'achat');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_delete_transcript', 'Delete Transcript', '2003-06-30 17:53:55', 'chat home page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_edit_prefs', 'Edit Preferences', '2003-05-15 13:47:05', 'chat options frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_enter', 'Enter Chat', '2003-05-15 14:50:48', 'chat preferences pages');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_exit', 'Exit Chat', '2003-05-15 13:48:43', 'chat options frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_full_history', 'Full History', '2003-05-15 14:00:02', 'chat options frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_display_blurb', '<p>Note: <em>Jump To</em> links and the <em>Quick Key</em> list only appear if you have turned on <em>Navigation Aids</em> in you preferences.</p>\r\n \r\n<ul>\r\n        <li>The <em>Jump to Quick Keys</em> link at the top takes you to a list of quick keys for the Chat. </li>\r\n   <li>The <em>Message Area</em> displays the most recent messages (up to ten). </li>\r\n    <li>The <em>Jump to Messages</em> links take you to the beginning of the list of messages. (Alt+M) </li>\r\n    <li>The <em>Refresh Messages</em> link lets you check for new messages (Alt+R). </li>\r\n    <li>The <em>Compose Message</em> Field and <em>Send Button</em> let you enter and send messages (Alt+C to enter the Compose Field, Enter to send a completed message). </li>\r\n</ul>', '2004-08-18 11:00:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_display_frame', 'Display Frame Help (top left)', '2003-05-15 15:24:02', 'chat help screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_display_jump', 'Jump to Display Frame Help', '2003-05-27 09:14:57', 'chat help screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_history_blurb', 'The <em>User List</em> shows the Chat IDs of all the users in the chat. Click on a Chat ID to see the messages sent by that participant, along with your own messages. Click on <em>All Users</em> to see the messages sent by all participants.', '2003-05-15 15:34:10', 'chat help screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_history_frame', 'User List and History Help', '2003-05-15 15:32:14', 'chat help screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_history_jump', 'Jump to User List and History Help', '2003-05-15 15:22:23', 'chat help screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_jump_top', 'Jump to Top', '2003-05-15 15:25:48', 'chat_help screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_options_blurb', '<ul>\r\n   <li>The <em>Edit Preferences</em> link opens the preferences so you can modify your control and display settings. </li>\r\n    <li>The <em>Exit Chat</em> link ends your chat session.</li>\r\n    <li>The <em>Help</em> link brings you to this screen. (Alt+Q)</li>\r\n</ul>', '2004-08-18 11:01:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_options_frame', 'Options Help (top right)', '2003-05-15 15:24:50', 'chat help screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_options_jump', 'Jump to Options Help', '2003-05-27 09:15:04', 'chat help screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_help_screen', 'Help Screen', '2003-05-15 15:19:33', 'chat help');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_history_messages', 'History - Messages %s to %s of %s', '2003-05-15 15:59:13', 'chat full history screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_inactive', 'Inactive', '2005-03-30 14:47:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_jump_to_message', 'Jump to Message Area', '2003-05-15 13:14:01', 'chat display frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_keep_tran', 'This section allows you to keep a transcript of the chat in progress.', '2003-05-28 11:10:47', 'achat');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_layout_prefs', 'Preferences: Layout Settings', '2003-05-15 14:53:04', 'chat layout preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_list_and_history', 'User List and History', '2003-05-15 13:49:37', 'chat options frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_logged_out', 'User %s has logged out.', '2003-05-15 16:01:51', 'logout');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_manual_checking', 'Manual Refresh', '2003-05-15 14:23:42', 'chat message checking preference');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_messages', 'Messages', '2003-05-15 13:05:28', 'chat message display frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_message_checking', 'Message Checking:', '2003-05-15 14:19:45', 'chat message checking preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_message_check_help', 'Select the interval rate at which new messages are retrieved from the server. Screen reader users set this option to Manual Refresh.', '2003-05-15 14:39:17', 'chat message checking preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_message_chime', 'New Message Chime:', '2003-05-15 14:43:05', 'chat message checking preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_message_new_help', 'Screen reader users choose "Yes", along with the Manual Refresh setting.', '2003-05-15 15:05:32', 'chat layout preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_message_order_help', 'Select New to Old to display new messages at the top of the screen, and Old to New to display new messages at the bottom of the screen.', '2003-05-15 14:58:48', 'chat layout preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_newmsg_prefs', 'Show Only New Messages?', '2003-05-15 15:00:44', 'chat layout preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_newold_prefs', 'New to Old', '2003-05-15 14:55:15', 'chat layout preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_none_found', 'No transcripts found.', '2005-03-31 11:32:44', 'chat home page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_no_new_messages', 'No new messages.', '2003-05-15 13:09:01', 'chat display frames');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_oldnew_prefs', 'Old to New', '2003-05-15 14:54:48', 'chat layout preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_options', 'Options', '2003-05-15 13:45:35', 'chat options frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_order_prefs', 'Order of Messages:', '2003-05-15 14:53:59', 'chat layout preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_post', 'Enter: Post a completed message', '2003-05-15 14:07:17', 'chat options frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_prefs_checking', 'Preferences: Message Checking Settings', '2003-05-15 14:18:37', 'chat checking preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_quick_keys', 'Quick Keys', '2003-05-15 14:03:24', 'chat options frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_refresh_message', 'Refresh Messages', '2003-05-15 13:16:05', 'chat display frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_refresh_user_list', 'Refresh User List', '2003-05-15 14:01:12', 'chat options frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_return', 'Return to Chat', '2003-05-15 15:20:17', 'chat help screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_start_tran', 'Start keeping a transcript', '2003-05-28 11:20:12', 'achat');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_start_transcript', 'Start/Stop Transcript', '2005-05-16 10:55:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_stop_tran', 'Stop keeping transcript.', '2003-05-28 12:48:38', 'achat');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_system', 'system', '2003-05-15 13:07:42', 'chat display frame system message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_transcript', 'Transcript', '2003-05-30 11:27:26', 'achat');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_transcript_end', 'Transcript End:', '2003-05-30 11:30:10', 'achat');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_transcript_start', 'Transcript Start:', '2003-05-30 11:29:26', 'achat');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_tran_file_name', 'Transcript name (alphanumeric, no spaces):', '2003-05-28 18:36:35', 'achat');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_user_logged_in', 'User %s has logged in.', '2003-05-15 16:02:29', 'chat display system login message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_user_logged_out', 'User %s has been logged out due to inactivity.', '2003-05-15 16:02:16', 'chat logout system message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chat_you', 'you', '2003-05-15 13:53:10', 'chat users online list');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'checked', 'Checked', '2006-06-26 14:55:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'child_of', 'Child of: %s', '2004-01-16 13:21:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'choice', 'Choice', '2003-05-18 12:25:24', 'test manager, multiple choice question editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'chunks_not_found', '<small>(Warning: One or more code chunks to be deleted or replaced are not found.)</small>', '2008-10-27 11:35:01', 'patcher message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cid', 'CID', '2003-05-18 13:17:08', 'global code picker url content id indentifier');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'city', 'City', '2003-05-18 13:17:52', 'registration, edit profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'class_avg', 'Class Avg', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'click_browse_files', 'Click <em>Browse Files</em> to add files to the queue', '2008-07-22 16:44:21', 'Instructional text for using fluid\'\'s multiple file uploader');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'click_code', 'Click on the code or emoticon you want to use.', '2003-05-22 15:42:52', 'global code picker instructions');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'click_hide_tools', 'Click to hide tool bar', '2010-03-30 15:32:01', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'click_show_head', 'Click to customize HTML head', '2010-03-30 15:01:59', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'click_show_tools', 'Click to show tools.', '2010-03-30 14:48:25', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'close', 'Close', '2005-08-10 16:13:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'close_after_saving', 'Close after saving', '2004-05-11 11:01:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'close_file_manager', 'Close File Manager', '2004-11-25 17:34:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'close_help_window', 'Close Help Window', '2003-05-18 13:21:37', 'close help window link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'close_menus', 'Menus', '2005-03-05 18:29:54', 'Menus');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'close_related_topics', 'Related Topics', '2005-03-05 18:30:15', 'Menus');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'close_window', 'Close Window', '2004-12-08 12:04:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'codes', 'Codes', '2003-05-18 13:23:57', 'global code picker label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'code_to_replace_from', 'Code To Replace From', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'code_to_replace_to', 'Code To Replace To', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'collapse', 'Collapse', '2003-05-18 13:24:36', 'Menus');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'colors', 'Colours', '2003-05-18 13:25:02', 'global code picker label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'combination', 'Use a combination of letters, numbers and symbols', '2004-06-21 16:26:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'combine', 'Combine', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'combine_from', 'Combine From', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'combine_into', 'Combine Into', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'combine_tests', 'Combine ATutor Tests', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'combine_tests_info', 'Before combining tests, please run section above to update marks of "Combine Into Test/Survey."', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'comment', 'Comment', '2006-03-20 14:42:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'comments', 'Comments', '2006-03-20 14:36:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'comments_num', '%s Comment(s)', '2006-05-25 14:01:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'common_cartridge', 'Common Cartridge', '2008-12-02 11:57:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'common_interest', 'Common Interest', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'company', 'Company', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'completed', 'Completed', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'completed_date', 'Completed Date', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'completed_tests', 'Your Submissions', '2005-05-11 11:19:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'configuration', 'Configuration', '2005-02-07 16:04:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'confirm', 'Confirm', '2004-10-18 11:50:20', 'enrollment manager, confirm action');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'confirm_account_text', 'If you have already created an account, you will have to <a href="confirm.php">confirm your email address</a>.', '2005-07-27 15:05:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'confirm_admin_create', 'Are you sure you want to create a Super Administrator account?', '2005-03-03 10:34:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'confirm_deny_instructor', 'You are about to deny the instructor request of the following user:', '2005-07-21 16:16:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'confirm_password', 'Confirm Password', '2005-03-03 10:47:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'connections', 'My Contacts', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'contact_accepted', 'ATutor Social Contact Accepted', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'contact_email', 'Contact Email', '2005-03-03 10:50:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'contact_instructor', 'Contact Course Instructor', '2003-05-18 13:29:00', 'student contact instructor form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'contact_name', 'Contact Name', '2003-05-18 13:30:04', 'student contact instructor form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'contact_request', 'ATutor Social Contact Request', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'contact_support', 'Contact Support', '2005-07-19 10:27:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'contain_only', 'May contain only letters, numbers, underscores, hyphens or periods.', '2006-07-17 11:01:46', 'registration login name format');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content', 'Content', '2003-05-18 13:32:22', 'sitemap/delete course');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'contents', 'Contents', '2003-05-18 13:35:43', 'content page table of content menu heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_editor', 'Content Editor', '2006-11-23 13:17:41', 'user prefs');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_folder_title', 'Content Folder Title', '2009-09-16 13:11:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_navigation', 'Content Navigation', '2005-03-29 12:18:45', 'menu content nav drop down');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_package', 'Content Package', '2008-12-02 11:57:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_packaging', 'Import/Export Content', '2005-04-18 11:39:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_packaging_all', 'Available on every page', '2003-10-15 10:10:17', 'option3');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_packaging_disabled', 'Content packaging has been disabled for this course.', '2007-11-27 15:29:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_packaging_none', 'Not available on any of the pages', '2003-10-15 10:09:27', 'option1');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_packaging_top', 'Available only for top level pages', '2007-11-27 15:29:26', 'option2');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_settings', 'Content Settings', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'content_usage', 'Content Usage', '2005-03-03 15:09:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'continue', 'Continue', '2006-03-21 16:22:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'control_settings', 'Control Settings', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'copyright', 'Web site engine\'s code is copyright Â©  ATutor®', '2008-09-18 13:02:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'core', 'Core', '2005-08-30 10:17:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'correct_answer', 'Correct Answer', '2003-05-18 13:38:45', 'test manager add/edit questions');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'count', 'Count', '2003-05-18 13:40:35', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'country', 'Country', '2003-05-18 13:41:28', 'registration / profile edit');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course', 'Course', '2003-05-18 13:42:31', 'delete course warning screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'courses', 'Courses', '2003-05-18 13:43:44', 'admin users/courses manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'courses_below', 'My Courses', '2008-04-16 19:44:10', 'jump menu divider');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_available', 'Course Available', '2003-05-18 13:46:03', 'file manager, server space available');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_available_zip1', 'Course Available (before extraction)', '2003-05-18 13:46:37', 'file manager zip tool');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_available_zip2', 'Course Available (after extraction)', '2003-05-18 13:47:06', 'file manager zip tool');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_backups', 'Course Backups', '2005-03-03 10:21:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_copyright', 'Optional Copyright Notice', '2003-05-18 13:47:33', 'course copyright label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_dir_name', 'Course Directory Name', '2008-05-14 12:03:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_email', 'Course Email', '2003-05-18 13:51:48', 'taught courses table in instructor control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_enrolment', 'Enrollment Manager', '2003-10-01 18:54:09', 'instructor - course enrollment (previously ATutor Course Enrollment)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_files', 'Course Files', '2006-03-20 14:40:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_forums', 'Course Forums', '2004-11-13 19:55:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_id', 'Course ID', '2003-05-18 13:54:57', 'admin course manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_instructor', 'Course Instructor', '2003-05-18 13:57:00', 'student contact instructor form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_list', 'Course List', '2005-03-23 15:17:14', 'enrollment manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_properties', 'Course Properties', '2003-05-18 14:00:23', 'course properties, admin course manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_quota', 'Course Quota', '2003-05-18 14:01:10', 'course properties, admin course manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_stats', 'Course Statistics', '2003-05-18 14:01:59', 'delete course');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_summaries', 'Course Summaries', '2004-08-20 15:08:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_tools', 'Course Tools', '2008-11-07 09:18:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_total', 'Course Total', '2003-05-18 14:03:39', 'file manager, zip tool');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_total_zip', 'Course Total (before extraction)', '2003-05-18 14:04:10', 'file manager zip tool');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'course_to_auto_enroll', 'Courses to Enroll', '2008-03-12 11:11:57', 'Auto Enroll label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create', 'Create', '2003-05-18 14:06:29', 'links database submit button');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'created', 'Created', '2003-05-18 14:07:28', 'browse courses, control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'created_by', 'Created By', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'created_date', 'Created', '2003-05-18 14:09:05', 'admin course managers, profile editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_admin', 'Create Administrator Account', '2005-03-03 10:40:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_backup', 'Create Backup', '2004-10-15 14:19:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_backup_about', '<p>Creating a backup of this course will archive all available material into a single compressed ZIP file. Once the backup file is created, it will be available through the Backup Manager for download and safe-keeping, or available to be restored back into this or any other course.</p>\r\n\r\n<p>Depending on the course size and available server resources, the time needed to backup this course may take  some time.</p>\r\n               \r\n<p>Note: You are currently restricted to %s backups per course.</p>', '2005-05-30 15:04:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_basic', 'Create basic announcement, content, and forum.', '2004-10-20 14:28:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_category', 'Create Category', '2005-02-18 10:28:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_course', 'Create Course', '2005-02-15 13:16:16', 'instructor control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_folder', 'Create Folder', '2003-05-18 14:12:40', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_folder_here', 'To create a folder, enter name here:', '2009-11-05 14:42:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_forum', 'Create Forum', '2005-02-16 12:23:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_group', 'Create Group', '2005-02-22 16:51:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_groups', 'Create Groups', '2006-03-21 14:57:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_group_blurb', 'Create a new group on a particular topic, then invite people to post news items or discuss the topic. ', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_module', 'Create Module', '2005-08-17 13:06:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_new_file', 'Create New File', '2005-02-22 15:33:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_new_question', 'Create New Question', '2005-03-07 16:42:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_patch', 'Create Patch', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_test', 'Create Test/Survey', '2004-11-24 10:00:42', 'instructor test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'create_user', 'Create User Account', '2005-03-10 15:12:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'creation_date', 'Creation Date', '2009-06-17 13:32:26', 'admin/users.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'credits_and_work_experience', 'Credits and Work Experience', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cron', 'Cron', '2006-03-31 15:42:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cron_config', 'Cron Set-up', '2006-04-03 14:22:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cron_url', 'The URL to your cron service is:', '2006-06-14 12:47:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cron_url_usage', 'The URL below must be used when setting-up the cron service. See the <em>Cron Set-Up</em> section in the <em>ATutor Handbook</em> for instructions.', '2006-06-14 12:49:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'current_course_size', 'Current course size', '2003-10-07 15:41:36', 'admin course info');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'current_location', '(Current location)', '2004-01-16 13:22:03', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'current_path', 'Path to Current Directory:', '2003-05-18 14:13:52', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'curren_tests_surveys', 'Ongoing Tests & Surveys', '2005-01-03 09:57:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cursive', 'Cursive', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'custom', 'Custom', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'customized_head', 'Customized Head', '2008-04-29 15:57:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'customized_head_note', 'Edit your own styles or javascript', '2008-05-01 08:57:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'custom_grade_scale', 'Custom Grade Scale', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'custom_icons', 'Custom Icons', '2008-08-21 10:38:11', 'course properties');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'custom_test_message', 'Include a message to appear along with the link to the test.', '2008-10-10 15:30:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'cyan', 'Cyan', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'd', 'D', '2007-01-10 13:48:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'danish-dsl', 'Danish-DSL', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'dark_gray', 'Dark Gray', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'database', 'Database', '2007-07-26 13:39:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'database_table', 'Database Table', '2005-03-03 12:14:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date', 'Date', '2003-05-19 17:44:42', 'global date label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_apr', 'Apr', '2003-05-20 12:32:27', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_april', 'April', '2003-05-20 12:28:03', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_aug', 'Aug', '2003-05-20 12:33:34', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_august', 'August', '2003-05-20 12:29:12', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_created', 'Date Created', '2003-05-19 17:45:18', 'view profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_dec', 'Dec', '2003-05-20 12:34:03', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_december', 'December', '2003-05-20 12:30:35', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_feb', 'Feb', '2003-05-20 12:32:12', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_february', 'February', '2003-05-20 12:27:33', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_fri', 'Fri', '2003-05-20 12:26:47', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_friday', 'Friday', '2003-05-20 12:24:40', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_jan', 'Jan', '2003-05-20 12:32:05', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_january', 'January', '2003-05-20 12:27:11', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_jul', 'Jul', '2003-05-20 12:33:27', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_july', 'July', '2003-05-20 12:28:56', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_jun', 'Jun', '2003-05-20 12:33:21', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_june', 'June', '2003-05-20 12:28:41', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_mar', 'Mar', '2003-05-20 12:32:22', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_march', 'March', '2003-05-20 12:27:48', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_may', 'May', '2003-05-20 12:28:20', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_may_short', 'May', '2003-05-20 12:33:14', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_mon', 'Mon', '2003-05-20 12:26:18', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_monday', 'Monday', '2003-05-20 12:24:00', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_nov', 'Nov', '2003-05-20 12:33:56', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_november', 'November', '2003-05-20 12:30:20', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_oct', 'Oct', '2003-05-20 12:33:49', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_october', 'October', '2003-05-20 12:30:02', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_of_birth', 'Date of birth', '2004-06-24 12:31:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_sat', 'Sat', '2003-05-20 12:26:55', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_saturday', 'Saturday', '2003-05-20 12:24:48', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_sep', 'Sep', '2003-05-20 12:33:42', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_september', 'September', '2003-05-20 12:29:44', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_sun', 'Sun', '2003-05-20 12:26:09', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_sunday', 'Sunday', '2003-05-20 12:23:52', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_taken', 'Date Taken', '2003-05-19 17:46:06', 'My Tests');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_thu', 'Thu', '2003-05-20 12:26:40', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_thursday', 'Thursday', '2003-05-20 12:24:32', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_tue', 'Tue', '2003-05-20 12:26:24', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_tuesday', 'Tuesday', '2003-05-20 12:24:12', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_wed', 'Wed', '2003-05-20 12:26:32', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'date_wednesday', 'Wednesday', '2003-05-20 12:24:21', 'date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'day', 'Day', '2004-06-24 15:45:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'days', 'days', '2007-02-21 14:04:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'default', 'Default', '2003-05-19 17:47:07', 'edit header/admin course manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'default_announcement', 'This is a welcome announcement. You can access additional help by using the Help link available throughout ATutor.', '2005-05-11 14:52:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'default_description', 'Default Description', '2006-03-22 11:47:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'default_language', 'Default Language', '2005-03-03 10:50:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'default_modules', 'Default Course Tools', '2010-03-14 09:52:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'default_preferences', 'Default Preferences', '2005-10-05 12:19:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'default_side_menu', 'Default Side Menu', '2005-10-04 11:33:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'define_pretest', 'Prerequisite Tests.', '2009-11-13 15:43:11', 'create/edit folder');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'define_resource_type', 'Define resource type', '2008-09-08 14:18:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'degree', 'Degree/Program/Courses', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'degrees', 'Degrees', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete', 'Delete', '2003-05-19 18:25:41', 'global delete label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'deleted', 'Deleted', '2003-05-19 18:26:45', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_admin', 'Delete Administrator Account', '2005-03-03 10:48:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_announcement', 'Delete Announcement', '2003-05-19 18:27:52', 'delete news screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_applications', 'Delete applications', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_category', 'Delete Category', '2003-05-19 18:28:24', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_content', 'Delete Content', '2003-05-19 18:29:01', 'delete content screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_course', 'Delete Course', '2003-05-19 18:29:37', 'delete course screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_forum', 'Delete Forum', '2003-05-19 18:30:40', 'instructor delete forum screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_from', 'Delete From', '2005-03-03 12:16:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_glossary', 'Delete Glossary Term', '2005-03-07 11:33:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_grade_scale', 'Delete Grade Scale', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_group', 'Delete Group', '2005-01-15 16:01:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_language', 'Delete Language', '2003-06-05 18:59:51', 'admin language manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_link', 'Delete Link', '2005-03-29 14:09:36', 'links manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_module_data', 'Also delete module data', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_package', 'Delete Package', '2005-05-17 12:06:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_patch', 'Delete Patch', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_poll', 'Delete Poll', '2004-06-14 16:16:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_post', 'Delete Post', '2006-06-14 11:53:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_profile', 'Delete Profile', '2004-12-06 11:53:06', 'admin/error_logging.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_results', 'Delete Test Results', '2003-05-19 18:31:51', 'test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_selected_package_s', 'Delete selected packages', '2005-07-19 09:54:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_test', 'Delete Test/Survey', '2004-08-25 14:09:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_this_file', 'Delete This File', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_this_folder', 'Delete This Folder', '2009-11-25 10:53:28', 'Content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_this_page', 'Delete This Page', '2005-03-31 14:18:22', 'content page shortcuts');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_thread', 'Delete Thread', '2003-05-19 18:35:27', 'forums');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'delete_user', 'Delete User', '2003-05-19 18:35:55', 'admin user manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'deny', 'Deny', '2005-03-30 15:26:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'deny_instructor_request', 'Deny Instructor Request', '2005-07-21 16:17:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'dependent_patches', 'Dependent Patches', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'dependent_patch_id', 'Dependent Patch ID', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'depth_reached', 'Directory depth limit has been reached.', '2003-05-19 18:36:54', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'description', 'Description', '2003-05-19 18:37:34', 'global description label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'detailed_profile', 'Detailed Profile', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'details', 'Details', '2003-05-19 18:38:03', 'instructor taught course table of the control panel');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'detail_view', 'Detail View', '2009-06-30 16:13:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'dictionary', 'Dictionary', '2008-09-09 09:03:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'direction', 'Direction', '2004-11-20 19:36:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'directory', 'Directory', '2005-03-09 15:28:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'directory_name', 'Directory Name', '2003-05-19 18:38:42', 'file manager zip utility');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'directory_total', 'Directory Total', '2003-05-19 18:39:15', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'disable', 'Disable', '2004-10-15 15:46:20', 'to disable a theme in theme manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'disabled', 'Disabled', '2005-04-01 10:39:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'disable_syndicate', 'Disable Announcements syndication', '2005-01-04 09:48:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'disband_group', 'Disband Group', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'discussions', 'Discussions', '2003-05-19 18:43:39', 'global text for discussions label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'disk_usage', 'Disk Usage', '2007-07-26 17:02:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'display', 'Display', '2004-08-18 12:03:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'display_name_format', 'Display Name Format', '2006-09-07 10:21:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'display_name_format_fl', '%2$s (%1$s)', '2006-08-21 15:29:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'display_name_format_fst', '%2$s %3$s %4$s', '2006-08-21 15:27:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'display_name_format_fstl', '%2$s %3$s %4$s (%1$s)', '2006-08-21 15:28:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'display_name_format_l', '%s', '2006-08-21 15:25:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'display_name_format_lf', '%1$s (%2$s)', '2006-08-21 15:29:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'display_name_format_lfst', '%1$s (%2$s %3$s %4$s)', '2006-08-21 15:30:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'display_settings', 'Display Settings', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'dob', 'Date of Birth', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'donate', 'Donate', '2008-09-12 10:51:45', 'admin home');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'donate_text', 'The <a href="http://atrc.utoronto.ca">ATRC</a> is a not-for-profit organization that relies on community support to maintain ATutor, and keep it free. If you have found ATutor useful, please consider making a donation.', '2008-09-12 10:53:29', 'admin home');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'done', 'Done', '2003-05-19 18:44:34', 'enrolment manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'download', 'Download', '2004-04-30 15:35:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'download_file', 'Download File', '2005-01-10 15:40:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'download_test_csv', 'Download CSV of Results', '2005-05-30 14:32:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'drag', 'Drag', '2008-05-22 09:15:04', 'alt text for fluid theme drag icon');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'due', 'Due', '2006-03-20 14:38:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'due_date', 'Due Date', '2006-03-23 11:36:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'duration', 'Total Duration', '2005-03-01 12:40:00', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'duration_sec', 'Duration (sec)', '2003-05-19 18:45:37', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'e', 'E', '2007-01-10 13:48:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit', 'Edit', '2004-05-26 18:31:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'editor', 'Editor', '2003-10-22 15:01:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'editor_properties_instructions', 'Select the radio button of the content you want to move. Use the %1$s and %2$s buttons to place this topic after or before the selected location, respectively. Use the %3$s button to add this topic as a child of the selected location.', '2009-09-16 13:13:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'editor_properties_insturctions_related', 'Add Related Topics by selecting the topic from the list.', '2004-02-11 12:33:28', 'editor properties instructions');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_admin', 'Edit Administrator Account', '2005-03-03 11:06:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_announcement', 'Edit Announcement', '2003-05-19 18:47:32', 'instructor announcement editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_backup', 'Edit - %s', '2004-10-19 12:46:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_category', 'Edit Category', '2003-05-19 18:49:44', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_contact', 'Edit Alternate Contact', '2009-12-03 15:38:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_content', 'Edit Content', '2003-05-19 18:50:07', 'instructor content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_content_folder', 'Edit Content Folder', '2009-11-25 11:36:02', 'Content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_education', 'Edit Education', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_forum', 'Edit Forum', '2003-05-19 18:50:54', 'instructor forum editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_for_minutes', 'for another %s minutes', '2007-02-23 11:53:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_glossary', 'Edit Glossary Term', '2003-05-19 18:54:15', 'instructor edit glossary term screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_grade_scale', 'Edit Grade Scale', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_group', 'Edit Group', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_language', 'Edit Language', '2005-01-21 18:24:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_link', 'Edit Link', '2003-05-19 18:54:44', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_marks', 'Edit Marks', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_patch', 'Edit Patch', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_personal', 'Edit Personal Information', '2009-12-07 13:43:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_poll', 'Edit Poll', '2004-06-14 14:53:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_position', 'Edit Position', '2009-05-28 14:21:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_post', 'Edit Post', '2003-09-25 12:54:59', 'instructor edit forum post');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_profile', 'Edit Profile', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_question', 'Edit Question', '2004-12-14 17:58:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_representation', 'Edit Representative', '2009-12-03 15:42:24', 'social profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_test', 'Edit Test/Survey', '2004-08-25 14:08:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_tests', 'Edit Tests/Assignments', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_this_page', 'Edit This Page', '2005-03-31 14:16:42', 'content page shortcuts');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_user', 'Edit Member', '2004-03-29 11:49:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'edit_websites', 'Edit Websites', '2009-05-28 14:21:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'education', 'Education', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'email', 'Email', '2003-05-19 19:07:59', 'global email label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'email_address', 'Email Address', '2003-05-19 19:09:06', 'profile, password reminder');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'email_again', 'Email Address Again', '2009-06-03 15:33:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'email_approvals', 'Email me when new enrollments require approval.', '2004-01-22 14:57:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'email_confirmation_message', 'You have registered for an account on %1s. Please finish the registration process by confirming your email address by using the following link: %2s .', '2005-06-24 15:32:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'email_confirmation_message2', 'To finish changing your account\'s email address on %1s, please confirm your email address by using the following link: %2s .', '2006-05-11 16:08:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'email_confirmation_subject', 'Email Confirmation', '2005-03-22 11:35:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'email_enrollment_message', 'An enrolment request has been made in the course %s.', '2010-01-07 13:06:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'email_enrollment_subject', 'Course Enrolment', '2010-01-07 13:06:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'emoticons', 'Emoticons', '2003-05-22 15:43:20', 'code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'empty', 'empty', '2003-05-19 19:10:56', 'prefs page, menu options');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'empty_gradebook', 'Gradebook is empty.', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enable', 'Enable', '2004-10-15 15:52:29', 'enable button in theme');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enabled', 'Enabled', '2005-05-06 12:49:07', 'theme');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enable_mail_queue', 'Enable Mail Queue', '2006-04-03 14:21:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enable_sco_rte', 'Enable the SCORM 1.2 RTE', '2005-05-10 10:52:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enable_syndicate', 'Enable Announcements syndication via <acronym title="Rich Site Summary">RSS</acronym>', '2005-01-04 10:27:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enable_uploader', 'Enable multi-file uploader tool', '2008-07-24 16:19:54', 'Used for toggling between Fluid\'s Uploader and the basic uploader');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'encyclopedia', 'Encyclopedia', '2008-09-10 12:25:52', 'tool prefs');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'end_date', 'End Date', '2003-05-19 19:13:46', 'mytests');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'end_on', 'End on', '2007-07-16 14:26:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enroll', 'Enroll', '2003-05-19 19:16:50', 'link text for enroll function');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrolled', 'Enrolled', '2003-05-19 19:18:28', 'control centre, delete course, admin course manager, text label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrolled_list_includes_assistants', 'Enrolled Students (includes Assistants)', '2004-10-15 11:56:23', 'enrolled students list in list exporter in enrollement manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrolled_privileges', 'Enrolled With Privileges', '2005-06-10 10:58:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrollment', 'Enrollment', '2005-12-07 11:19:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enroll_me', 'Enroll Me', '2005-04-14 13:15:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enroll_to_post', 'You must be enrolled to post to the forums.', '2004-12-09 11:07:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrolment', 'Enrollment', '2006-10-18 11:47:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrol_login', 'You must login to your course to approve the new enrollment request using the Enrollment section.', '2005-07-05 12:15:39', 'instructor enrolment screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrol_message3', 'ATutor Course Enrollment', '2003-04-21 15:03:49', 'context');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrol_messagenew', 'An enrollment request was made for the ATutor course %s. Log into your course at %s , go to Manage and then to the unenrolled tab in the Enrollment Manager.', '2005-03-29 12:23:47', 'instructor enrolment email notice');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrol_message_approved', 'Your enrollment request for the course %1s has been approved.\r\nLog into ATutor, then select the course from My Courses or use the login link below:\r\n\r\n%2s', '2005-03-30 11:49:50', 'email message sent to enrollee once approved');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrol_message_subject', 'Course enrollment approved', '2003-05-20 11:18:15', 'enroll email approval');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enrol_msg', 'A new enrollment request has been made for your course %s.', '2005-07-05 12:15:49', 'instructor email enrollment notification message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'entertainment_arts', 'Arts and Entertainment', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enter_chat', 'Enter the Chat', '2003-05-27 14:20:24', 'achat entry page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enter_course', 'Enter Course', '2005-03-14 15:15:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'enter_edit_mode', 'Enter Edit Mode', '2009-09-16 13:12:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'entire_course', 'Entire Course', '2006-07-24 10:44:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'error', 'Error', '2003-05-19 20:20:07', 'global error label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'error_logging', 'Error Logging', '2005-02-07 16:11:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'everyone', 'Everyone', '2004-12-07 17:54:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'existing_type', 'Existing Type:', '2006-03-22 15:11:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'exit_edit_mode', 'Exit Edit Mode', '2009-09-16 13:12:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'expand', 'Expand', '2003-05-19 20:20:35', 'menu toggle alt text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'experimental', 'Experimental', '2008-12-02 11:58:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'expertise', 'Expertise', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'expired', 'Expired', '2003-05-19 20:21:08', 'mytests');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'expire_never', 'Never expire', '2007-02-13 15:38:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'expire_on', 'Expire on', '2007-02-13 15:38:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'expiry_date', 'Expiry Date', '2007-02-13 15:37:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'export', 'Export', '2003-05-19 20:21:32', 'instructor control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'export_content', 'Export Content', '2003-10-03 11:00:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'export_content_info', 'Export content as an <strong>IMS or SCORM conformant content package</strong>, or as an <strong>IMS Common Cartridge</strong>. Import the zipped package or cartridge into another ATutor system or another course, or into another conformant LMS or LCMS.', '2009-11-12 16:52:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'export_content_package_what', 'What to export', '2003-10-14 11:11:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'export_content_text', 'Download content, unzip it onto your computer, then click "index.html" to view.', '2009-07-02 14:15:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'export_entire_course_or_chap', 'Entire course, or select a chapter below', '2003-10-07 15:14:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'export_marks_info', 'To simplify the import process, you can export an empty csv file on the test you want to import, fill in the marks, import back into ATutor.', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'external_help', 'External Help', '2005-03-17 10:31:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'external_tests', 'External Tests', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'extra', 'Extra', '2005-09-21 13:35:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'extract', 'Extract', '2003-05-19 20:23:33', 'file manager zip utility');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'extract_archive', 'Extract Archive', '2003-05-19 20:23:58', 'file manager zip utility');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'extract_tip', 'Tip: Use an empty directory name to extract the contents into the current directory.', '2003-05-19 20:24:27', 'file manager zip utility');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'f', 'F', '2007-01-10 13:48:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'factory_default', 'Reset to Factory Defaults', '2008-10-01 10:53:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fail_feedback', 'Fail Feedback', '2008-03-10 11:49:51', 'Test/Survey Property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'false', 'False', '2003-05-20 08:52:19', 'textmanager, mytests t/f label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fantasy', 'Fantasy', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'faq', 'Frequently Asked Questions (FAQ)', '2005-10-19 12:41:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'farchive', 'Forum Archiver', '2008-11-07 10:41:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'farchive_export', 'Export Forum', '2008-11-07 10:42:18', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'farchive_select_forum', 'Select Forum to Export:', '2008-11-07 10:42:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'feedback', 'Feedback', '2003-05-20 09:09:40', 'global feedback label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'female', 'Female', '2003-05-20 09:18:03', 'registration, profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fg_colour', 'Foreground Colour', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'field', 'Area of Study', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file', 'File', '2003-05-20 09:18:31', 'file manager, zip tool');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'filemanager_date_format', '%%Y-%%m-%%d %%H:%%i', '2009-06-30 16:05:29', 'file manager date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'files', 'Files', '2005-08-16 15:27:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file_manager', 'File Manager', '2003-05-20 09:27:19', 'global file manager label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file_manager_frame', 'File Manager Frame', '2005-01-31 11:14:37', 'viewing files in filemanger frame');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file_manager_new', 'Create a New File', '2004-10-29 14:53:13', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file_name', 'File Name', '2004-10-15 12:08:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file_placeholder', 'File Name Placeholder', '2008-07-22 16:44:59', 'Placeholder text used in Fluid\'\'s multiple file uploader.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file_size', 'File Size', '2004-10-14 13:57:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file_storage', 'File Storage', '2006-03-20 14:36:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file_storage_version_control', 'Maintain File Storage Version Control', '2006-03-29 12:43:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'file_to_read', 'File To Read', '2006-04-13 11:03:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fill_groups', 'Fill Groups', '2006-03-22 11:52:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fill_groups_randomly', 'Fill groups randomly upon creation.', '2006-03-22 11:53:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'filter', 'Filter', '2005-03-30 14:52:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'final_score', 'Final Score', '2007-03-16 14:10:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'find_gadgets', 'Find Gadgets', '2009-07-13 14:55:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'find_results_in', 'Find results in', '2004-08-18 12:02:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'first_name', 'First Name', '2003-05-20 09:58:26', 'registration, profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fix_content_ordering', 'Fix Content Ordering', '2004-10-18 14:03:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fix_content_ordering_text', 'Occasionally, content pages can get disordered due to miscalculation. This is an ongoing issue that will be resolved in an upcoming version of ATutor but until then, we have made a patch available that can be used to fix the issue. If you are experiencing this problem, please use the button below.', '2005-03-10 11:19:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'flowplayer', 'Flowplayer', '2010-03-18 11:46:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'focus', 'Focus', '2008-10-06 13:41:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'folder', 'Folder', '2003-05-20 10:05:51', 'file manager, zip utility');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'font_face', 'Font Face', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'font_size', 'Font Size', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'formatting', 'Formatting', '2003-05-20 10:07:25', 'add/ edit content, news, export');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'form_editor', 'Atutor Form Editor', '2005-03-11 10:31:45', 'Form editor for test questions');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'form_focus', 'Form Focus On Page Load', '2005-03-29 12:38:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forum', 'Forum', '2004-04-16 10:54:23', 'Forum list header');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forums', 'Forums', '2003-05-20 10:08:05', 'global forums label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forum_date_format', '%%D %%M %%j %%H:%%i', '2004-05-26 15:18:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forum_email_links', 'All email addresses are made into links.', '2003-05-20 10:11:14', 'forums email address links instruction');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forum_general_discussion', 'General Discussion', '2004-12-16 11:07:19', 'default forum in forum list');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forum_html_disabled', 'HTML is disabled.', '2003-05-20 10:11:42', 'forum compose message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forum_links', 'All words starting with http:// are made into links.', '2003-05-20 10:12:23', 'forum compose link creation instruction');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forum_new_submsg', '*DO NOT REPLY TO THIS MESSAGE*\r\nA discussion thread in the ATutor course "%s" has recieved a reply. Login to access the "%s" forum and view the "%s" thread. Click and view the message at: %s', '2009-12-16 11:51:02', 'forum email message to thread subscribers');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forum_posts', 'Forum Posts', '2005-03-16 14:59:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forum_reply_to', 'Replying To', '2003-05-20 10:12:48', 'forum reply to label for quoted messages');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'forward', 'Forward', '2007-02-20 16:21:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'french', 'French', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'french-lsf', 'French-LSF', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'friends', 'My Contacts', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'friends_of_friends', 'Contacts of Your Contacts', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'from', 'From', '2003-05-20 10:17:19', 'global from label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'from_atutor', 'This message was sent through the ATutor system from course %s.', '2003-05-20 10:19:30', 'instructor/admin contact for email message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'from_email', 'From Email', '2003-05-20 10:21:35', 'instructor/admin contact form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'from_name', 'From Name', '2003-05-20 10:22:02', 'instrcutor/admin contact from');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fs_comment', '%s Comment', '2006-06-29 10:09:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fs_comments', '%s Comments', '2006-06-29 09:55:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fs_revision', '%s Revision', '2006-06-29 10:05:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fs_revisions', '%s Revisions', '2006-06-29 09:52:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'full_name', 'Full Name', '2006-03-27 15:55:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'fwd', 'Fwd', '2007-02-20 16:20:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'g', 'G', '2007-01-10 13:48:18', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'gender', 'Sex', '2003-05-20 10:22:19', 'registration, profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'general_help', 'For guidance on using ATutor see the official <a href="%1$s" onclick="poptastic(\'%1$s\'); return false;" target="_new"><em>ATutor Handbook</em></a>.', '2005-07-05 14:07:32', 'atutor default footer');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'geography', 'Geographic', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'german', 'German', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'german-dgs', 'German-DGS', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'give_description', 'Brief description of your proposed course(s)', '2005-03-09 12:19:48', 'control centre request instructor account form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'global_more_than_10_pages', 'Global: More than 10 pages.', '2006-09-27 12:42:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'glossary', 'Glossary', '2003-05-20 10:24:33', 'global glossary label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'glossary_definition', 'Definition', '2003-05-20 10:25:13', 'glossary add/edit term');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'glossary_related', 'Related Term', '2003-05-20 10:26:35', 'add/edit glossary term');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'glossary_term', 'Term', '2003-05-20 10:27:01', 'add/edit glossary term');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'glossary_terms', 'Glossary Terms', '2003-05-20 10:27:47', 'delete course feedback for terms deleted');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'glossary_term_limit', 'This term exceeds the 60 character limit and cannot be added.', '2005-12-12 11:39:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'go', 'Go!', '2006-04-26 13:47:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_key', 'Google Key', '2005-10-20 11:02:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_key_txt', 'To access the Google search as an <em>embedded service</em>, you must first create an account and obtain a license key at <a href="http://code.google.com/apis/ajaxsearch/signup.html" target="_new">google.com/apis</a> and enter it below.\r\n<br /><br />\r\nThe search can be used as an external service by clearing the key field below.', '2007-09-04 15:14:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_new_window', 'Search opens in a new window.', '2005-11-30 16:45:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search', 'Web Search', '2005-10-20 10:35:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_ajax', 'Google AJAX Search <em>(requires license key</em> <strong>after</strong> <em>Dec 5th, 2006)</em>', '2008-07-28 10:51:24', 'Google search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_attn', 'Please note that the old Google search is only applicable to those who have obtained a license key before Dec 5th, 2006; any new license key obtained after December 5th, 2006 is only applicable to the new Google AJAX search.', '2007-09-04 14:55:56', 'Google search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_books', 'Books', '2007-08-31 11:25:12', 'Google search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_images', 'Images', '2007-08-31 11:22:38', 'Google search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_local', 'Local', '2007-08-31 11:57:07', 'Google search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_news', 'News', '2007-08-31 11:23:30', 'Google search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_soap', 'Old Google Search <em>(requires license key</em> <strong>before</strong> <em>Dec 5th, 2006)</em>', '2008-07-28 10:51:46', 'Google search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_text', 'Search the Web outside this course for additional information.', '2009-07-02 14:17:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_txt', 'To search for specific words within a website, enter them below then use the \'Search\' button.  If you wish to search course content, use the <a href="search.php">content search</a>.', '2005-10-20 11:02:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_type_txt', 'Please select one of the Google search interfaces.', '2007-08-31 14:36:30', 'Google search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'google_search_videos', 'Videos', '2007-08-31 11:22:53', 'Google search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'goto_content', 'Go to content', '2004-05-11 15:18:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'goto_menu', 'Go to Menu', '2006-07-14 10:14:57', '2nd invisible link on the page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'goto_top', 'Go to Top', '2003-05-20 10:34:03', 'bypass link text in ATutor header');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'go_to_my_start_page', 'Go To My Start Page', '2008-03-10 12:02:45', 'auto enroll property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'grade', 'Grade', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'gradebook_text', 'Review marks for your tests and assignments.', '2009-07-02 14:16:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'grades_uncomparable', 'Grades are uncomparable. Choose another way to solve conflict', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'grade_already_exists', 'Conflict: Grade already exists - %s', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'grade_info', 'Note: "Grade" field can be grade defined in "Grade Scale" or percentage like 50%%.', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'grade_scale', 'Grade Scale', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'grant_write_permission', 'Please grant <strong>write</strong> permission to folders and files listed below:<p><strong>Note:</strong> To change permissions on Unix use <kbd>chmod a+rw</kbd> then the file name.</p>', '2008-04-21 15:08:55', 'patcher');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'graph', 'Graph', '2003-05-20 10:36:18', 'instructor course details graph label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'gray', 'Gray', '2003-05-20 10:36:32', 'global code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'green', 'Green', '2003-05-20 10:36:45', 'global code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group', 'Group', '2005-05-03 15:42:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'grouped_by_course', 'Grouped by course', '2004-08-18 12:04:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'groups', 'Groups', '2004-11-25 15:45:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'groups_create_automatic', 'Create multiple groups automatically', '2006-03-21 15:36:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'groups_create_manual', 'Create a single group manually', '2006-03-21 15:36:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'groups_text', 'Participate in group learning activities.', '2009-07-02 14:16:03', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'groups_type', 'Groups Type', '2006-03-22 11:16:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_about_private', 'Users will have to be approved by the moderator to join this group.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_about_public', 'The group is opened to all users.  No approval is needed.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_admin', 'Group Moderator', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_forums', 'Group Forums', '2006-05-24 08:48:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_info', 'Group Details', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_invitation', 'ATutor Social Group Invitation', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_invitation_accepted', 'ATutor Social Group Invitation Accepted', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_joined', 'You are a member of this group.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_last_update', 'Last Update', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_last_updated', 'Last Updated ', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_logo', 'Group Logo', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_members', 'Group Members', '2005-06-10 10:34:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_name', 'Group Name', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_prefix', 'Group Prefix', '2006-03-22 11:17:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_request', 'ATutor Social Join Group Request', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_request_accepted', 'ATutor Social Group Request Accepted', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'group_type', 'Group Type', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'guest', 'Guest', '2003-05-20 10:37:10', 'name assigned to non-registered users');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'guests', 'Guests', '2003-05-20 10:38:19', 'instructor course stats/details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'guests_not_listed', 'Guests are not listed', '2003-05-20 10:38:32', 'who\'s on menu');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'guest_information', 'Guest Information', '2008-10-06 13:40:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'guest_name', 'Guest Name', '2008-10-06 13:41:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'h', 'H', '2007-01-10 13:48:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'handout_to_read', 'Handout to Read', '2006-04-13 11:58:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hand_in', 'Hand In', '2006-03-20 14:36:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'has_added_app', 'has added the <a href="%s">%s</a>  gadget', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'has_added_group', 'has added the group %s.', '2009-07-22 14:35:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'has_invited_join', '%s has invited you to join the group %s.', '2009-07-22 14:36:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'has_joined_group', 'has joined the group %s.', '2009-07-22 14:35:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'has_requested_to', '%s has requested to join the group %s.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'has_updated_group', 'has updated the group %s.', '2009-07-22 14:35:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'have', 'Have', '2007-02-21 13:22:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'have_not', 'Have not', '2007-02-21 14:06:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'help', 'Help', '2003-05-20 10:41:08', 'global help label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hidden', 'Hidden', '2003-05-20 10:42:27', 'instructor/admin contact form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hide', 'Hide', '2005-03-15 11:37:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hide_course', 'Hide this course from the Browse Courses list', '2003-05-20 10:42:41', 'create course screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'history', 'History', '2003-05-25 08:36:00', 'context (removed after v1.1)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hits', 'Hits', '2003-05-20 10:44:14', 'links database link hit count');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hit_count', 'Hit Count', '2003-05-20 10:45:17', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hl_colour', 'Highlight Colour', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'home', 'Home', '2006-05-31 11:12:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'home_url', 'Home URL', '2005-03-03 10:50:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'horizontal', 'Horizontal', '2004-12-01 13:35:05', 'edit/create option test questions');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hot', 'Hot!', '2003-05-20 10:47:10', '(not used)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hot_thread', 'Hot very active thread!', '2003-05-20 10:47:30', 'forum message for busy thread');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hours_24', '24hr', '2003-05-20 10:48:10', 'release date picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'hour_short', 'h', '2007-07-09 12:31:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'howto_course', '<a href="http://atutor.ca/atutor/docs/index.php">ATutor Documentation</a>', '2005-06-01 12:32:03', 'help');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'howto_course_text', 'In addition to the <a href="documentation/" onclick="poptastic(\'documentation/\'); return false;" target="_new"><em>ATutor Handbook</em></a> bundled with ATutor, other documentation sources are available through the <a href="http://atutor.ca/atutor/docs/index.php">ATutor Documentation</a> site.', '2005-07-06 10:04:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'how_to_solve_conflict', 'How to solve conflict', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'html', 'HTML', '2003-05-20 10:48:48', 'global HTML label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'html_only', ' Plain Text or HTML files only.', '2003-05-20 10:49:49', 'add/edit content, header');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'i', 'I', '2007-01-10 13:48:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'icon', 'Icon', '2005-03-03 11:19:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'icon_view', 'Icon View', '2009-06-30 16:13:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'id', 'ID', '2003-05-20 10:50:57', 'global ID (identification number) label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'illegal_file', 'Illegal File Type', '2003-05-20 10:52:36', 'zip utility when archive contain illegal extension');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'illegal_file_extensions', 'Illegal File Extensions', '2005-03-03 10:52:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'image', 'Image', '2003-05-20 10:53:28', 'global code picker image code link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'image_validation_text', 'In the above image there are numbers and/or letters displayed.  Please type them into the following field.', '2009-07-16 09:02:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'image_validation_text2', 'This helps ensure a live person is registering on this system.', '2009-06-03 15:33:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import', 'Import', '2003-05-20 11:56:51', 'instructor import/export screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_a_new_lang', 'Import a New Language', '2003-06-04 15:34:43', 'admin language manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_content', 'Import Content', '2005-02-18 14:05:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_content_info', 'Import a conformant IMS content package or IMS common cartridge. Select a location within the existing content to <strong>import into</strong>.  Or enter a URL to content package or common cartridge, to import directly from the Web.', '2009-11-12 16:56:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_content_package', 'Import Content Package', '2003-10-03 13:07:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_content_package_bottom_subcontent', 'As top level content, or as subcontent selected below', '2003-10-20 13:36:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_content_package_where', 'Import into', '2003-10-14 12:24:03', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_err_email_exists', 'Account exists.', '2004-01-30 15:38:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_err_email_invalid', 'Email invalid.', '2004-01-30 13:28:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_err_email_missing', 'Email missing.', '2004-01-30 13:28:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_err_full_name_exists', 'First and Last name exist.', '2006-03-28 10:40:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_err_username_exists', 'Username already taken.', '2004-01-30 13:28:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_err_username_invalid', 'Username contains invalid characters.', '2004-01-30 13:28:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_export_external_marks', 'External Marks', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_lang_howto', 'You may import additional languages into this installation of ATutor by downloading the language pack from the ATutor.ca website then uploading it using the form below, or if the drop down below is able to detect the available languages remotely then it may be used as well.', '2004-10-18 14:25:21', 'admin language manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_marks_info', 'A mark list may be imported into ATutor. Create the mark list in a comma separated values (CSV) format as follows: "firstname", "lastname", "email", "mark" with one student per line. Please leave the first line as title. The mark in CSV file can be grade or percentage like 50%%. To simplify the process, you can export the CSV file with export functionality, update the marks into exported file and import back into ATutor.', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_package', 'Import Package', '2005-05-17 12:06:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_question', 'Import Questions', '2008-09-23 13:59:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_remote_language', 'Or, import a language directly from the ATutor.ca website.', '2004-10-18 14:27:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_sep_txt', 'For auto-generated usernames, separate first and last names with:', '2004-06-22 12:07:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_test', 'Import Test', '2008-09-23 13:52:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'import_theme', 'Import Theme', '2004-10-15 15:47:13', 'import theme button in theme manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'ims_files_missing', 'In this package, the file, %1$s, is missing or misplaced.', '2009-12-07 14:25:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'ims_missing_references', 'Missing file references', '2009-12-07 16:27:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'inactive_admin', 'Inactive Administrator', '2005-03-03 11:00:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'inbox', 'Inbox', '2003-05-20 11:59:47', 'global Inbox label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'inbox_date_format', '%%l %%M %%j, %%Y - %%H:%%i', '2003-05-20 12:00:47', 'inbox screen (see www.php.net/date for codes)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'inbox_notification', 'Inbox Notification', '2005-03-16 14:40:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'info', 'Course Info', '2005-04-01 15:09:41', 'global info message box label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'initial_content', 'Initial Content', '2004-10-15 15:45:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'insert', 'Insert', '2003-05-20 12:02:16', 'instructor add content screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'insert_into', 'Insert Into', '2005-03-03 12:15:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'install', 'Install', '2005-08-16 15:51:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'installed', 'Installed', '2008-10-28 10:58:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'installed_date', 'Installed Date', '2008-11-17 10:41:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'install_modules', 'Install Modules', '2005-08-16 16:17:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'install_module_text', 'To install a new module it must first be extracted into the <code>%s</code> directory for it to appear in the list below.', '2005-08-17 13:47:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'install_themes', 'Install Themes', '2008-11-14 11:47:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'install_themes_text', 'To install new themes the <code>%s</code> directory must be set to writeable. Use the command <kbd>chmod a+w themes</kbd> on Unix machines, while on Windows the web server must have write permissions on that directory.', '2005-12-14 12:36:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'institution', 'School/Institution', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructions', 'Instructions', '2005-04-05 14:25:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor', 'Instructor', '2003-05-20 12:02:59', 'global instructor label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructors', 'Instructors', '2003-05-20 12:03:37', 'admin general statistics label for number of instructors');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_contact_form', 'Instructor Contact Form', '2003-05-20 12:12:32', 'instructor contact form heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_request', 'ATutor Instructor Request', '2003-05-25 08:37:50', 'subject line in email to admin when instructor request is made');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_requests', 'Instructor Requests', '2003-05-20 12:19:52', 'admin home page heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_requests_text', 'There are <strong>%s</strong> instructor requests pending approval.', '2005-03-30 15:30:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_request_deny', 'Your ATutor instructor request has been denied.', '2003-10-06 15:14:48', 'email message to denied instructor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_request_denymsg1', 'Registration information is incomplete.', '2003-10-06 15:55:47', 'reason why denied');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_request_denymsg2', 'Inappropriate subject matter.', '2003-10-06 16:01:26', 'reason why denied');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_request_denymsg3', 'The course description requires more detail.', '2003-10-07 15:47:33', 'deny instructor request');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_request_denymsg4', 'You have requested enrollment with the wrong form.', '2003-10-07 15:52:12', 'admin deny instructor request');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_request_email_notification', 'Instructor Request Email Notification', '2005-03-03 10:51:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_request_enterdenymsg', 'Choose a message explaining why the user\'s request was denied or enter your own.', '2003-10-06 15:19:05', 'Header text for deny message text area');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'instructor_request_reply', 'Your ATutor instructor request has been approved. Go to %s to login to My Courses, then select "Create Course".', '2005-05-27 13:53:06', 'email in reply to instructor account approval');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'interests', 'Interests', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'internet_technology', 'Internet Technology', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'invalid_session', 'Not a Valid Session', '2003-05-20 12:26:29', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'invite', 'Invite', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'invite_groups', 'Invite New Group Members', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'in_minutes', 'Minutes', '2007-02-20 10:30:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'in_reply_to', 'In reply to', '2003-05-20 12:27:21', 'replyto label for quoted forum or inbox message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'irish-isl', 'Irish-ISL', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'italian', 'Italian', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'italian-lis', 'Italian-LIS', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'italic', 'Italic', '2003-05-20 12:27:44', 'global code picker link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'item', 'Item', '2007-01-10 13:46:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'j', 'J', '2007-01-10 13:48:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'japanese-jsl', 'Japanese-JSL', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'join_group', 'Join Group', '2009-06-12 10:06:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'jump', 'Jump', '2003-05-20 12:28:03', 'jump menu submit button text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'jump_codes', 'Jump over the code picker', '2003-05-20 12:29:53', 'alt text for bypass link to jump over the code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'jump_redirect', 'Direct Jump', '2004-11-30 10:03:55', 'preferecnes');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'just_social', 'Use just ATutor Social', '2009-07-17 14:11:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'kb', '<acronym title="Kilobytes">KB</acronym>', '2007-12-09 12:56:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'keep_email_private', 'Keep email hidden from others.', '2006-03-28 11:29:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'keep_it_short', 'Tip: Keep it short, no spaces.', '2003-05-20 12:31:53', 'file manager suggestion for folder creation');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'keywords', 'Keywords', '2003-09-28 10:22:10', 'content add/edit');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'language', 'Language', '2003-05-20 12:32:05', 'profile, registration');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'languages', 'Languages', '2005-03-03 11:07:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lang_code', 'Language Code', '2006-09-27 14:12:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'last_accessed', 'Last Accessed', '2005-03-01 12:52:16', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'last_comment', 'Last Comment', '2003-05-20 12:33:10', 'forums, thread view column label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'last_login', 'Last Login', '2005-03-03 11:03:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'last_modified', 'Last Modified', '2003-05-20 12:36:35', 'instructor content editor link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'last_name', 'Last Name', '2003-05-20 12:37:39', 'registration, profile, admin user manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'last_post', 'Last Post', '2004-04-16 11:24:59', 'Refers to date of last post in forum');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'last_updated', 'Last updated: %s', '2006-05-19 14:54:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'latex_server', 'MimeTex Server for the LaTex service.  For production purposes, please install mimeTeX on your own server. (http://www.atutor.ca/cgi/mimetex.cgi?)', '2010-03-04 08:46:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'leave_blank', 'Leave blank', '2003-05-20 12:39:07', 'mytest/test manager question option');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'leave_group', 'Leave Group', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'leave_unchanged', 'Leave unchanged', '2005-05-10 16:04:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'left', 'Left', '2004-04-27 11:00:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'left_blank', 'Left blank', '2003-05-20 12:40:14', 'mytests/test manager question result text for unanswerd question');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'legend', 'Legend', '2003-05-20 12:41:00', 'instructor course statistics/details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'license', 'License', '2005-08-16 15:27:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'light_gray', 'Light Gray', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'limit_to_group', 'Assign To Groups', '2004-12-10 14:39:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'link', 'Link', '2003-05-20 12:41:18', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'links', 'Links', '2005-02-09 13:25:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'list_add_course_list', 'Add to Course List', '2004-10-19 14:39:08', 'Enrollment manager, add students manually button');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'list_add_enrolled_list', 'Add to Enrolled List', '2004-10-19 14:51:02', 'enrollment manager, add to enrolled students list button');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'list_add_unenrolled_list', 'Add to Un-enrolled List', '2004-10-19 14:47:31', 'enrollment manager, add to unenrolled students list button');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'list_create_course_list', 'Create Course List', '2004-10-15 12:04:06', 'create list of students function in enrollement manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'list_export_course_list', 'Export Course List', '2003-09-16 10:15:29', 'enrol admin');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'list_import_course_list', 'Import Course List', '2003-09-16 09:35:35', 'import course list');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'list_import_howto', 'A course enrollment list may be imported into ATutor. Create the course list in a comma separated values (CSV) format as follows: <code>"firstname", "lastname", "email"</code> with one student per line.  New students will receive their access instructions by email.', '2004-02-05 10:22:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_agree', 'Agree', '2004-08-12 15:45:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_always', 'Always', '2004-08-26 12:23:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_disagree', 'Disagree', '2004-08-12 15:46:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_excellent', 'Excellent', '2004-08-12 15:42:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_fair', 'Fair', '2004-08-12 15:43:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_good', 'Good', '2004-08-12 15:42:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_important', 'Important', '2004-08-26 12:26:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_little_importance', 'Of Little Importance', '2004-08-26 12:26:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_mod_important', 'Moderately Important', '2004-08-26 12:26:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_never', 'Never', '2004-08-26 12:25:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_occasionally', 'Occasionally', '2004-08-26 12:24:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_poor', 'Poor', '2004-08-12 15:43:18', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_rarely', 'Rarely', '2004-08-26 12:24:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_strongly_agree', 'Strongly Agree', '2004-08-12 15:45:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_strongly_disagree', 'Strongly Disagree', '2004-08-12 15:46:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_undecided', 'Undecided', '2004-08-26 11:46:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_unimportant', 'Unimportant', '2004-08-26 12:27:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_very_frequently', 'Very Frequently', '2004-08-26 12:23:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_very_good', 'Very Good', '2004-08-12 15:42:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_very_important', 'Very Important', '2004-08-26 12:25:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_very_poor', 'Very Poor', '2004-08-12 15:43:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lk_very_rarely', 'Very Rarely', '2004-08-26 12:24:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'locale', 'Locale', '2004-11-20 19:35:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'local_network', 'Local Network', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'location', 'Location', '2005-03-04 14:06:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lock_no_post', 'No posting, but allow reading.', '2003-05-20 12:46:36', 'forum instructor lock text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lock_no_post1', 'This thread is locked from posting.', '2003-05-20 12:46:45', 'forum instructor lock text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lock_no_read', 'No posting and no reading.', '2003-05-20 12:46:56', 'context');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lock_no_read1', 'This thread is locked from reading and posting.', '2003-05-20 12:47:24', 'forum thread display lock message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lock_submit', 'Apply Lock', '2003-05-20 12:47:50', 'text for instructor forum lock button');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'lock_thread', 'Lock Thread', '2003-05-20 12:48:14', 'Alt text for forum instructor lock icon');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'logged_in_within', 'logged in within', '2007-02-21 13:37:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'login', 'Login', '2006-07-27 17:35:30', 'global login label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'login_into_atutor', 'Log into your ATutor Account', '2003-05-20 12:51:48', 'login after enrollment message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'login_name', 'Login Name', '2003-05-20 12:52:32', 'control centre account information label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'login_name_or_email', 'Login Name or Email', '2006-03-28 14:21:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'login_statistics', '%s login statistics for  %s', '2003-05-31 14:49:29', 'course login details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'login_text', 'Enter your login name or email address, along with your password, to access your courses and networking area.', '2009-11-20 16:12:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'logout', 'Log-out', '2003-05-20 12:53:44', 'global logout link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'log_file_bundle', 'Log File Bundle', '2005-03-10 16:36:31', 'error logging - email subject');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'ltr', 'Left to Right', '2004-11-20 19:37:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'magenta', 'Magenta', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'mail_queue_cron', 'You must set-up the <a href="admin/cron_config.php">cron</a> to use this feature.', '2006-04-03 14:21:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'maintainers', 'Maintainers', '2005-08-16 15:26:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'main_navigation', 'Main Navigation', '2005-03-07 12:09:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'malaysian-msl', 'Malaysian-MSL', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'male', 'Male', '2003-05-20 12:55:53', 'registration, profile, admin user manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'manage', 'Manage', '2005-02-23 12:05:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'manage_languages', 'Manage Existing Languages', '2004-09-23 16:30:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'manage_lang_howto', 'Below are all the languages currently available in this installation of ATutor. You may export the language as an ATutor language pack or delete it from the installation.', '2004-10-18 14:23:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'manage_links', 'Manage Links', '2006-05-24 11:24:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'mark', 'Mark', '2003-05-20 12:56:19', 'mytests/test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'marked_label', 'Marked (%s)', '2005-05-12 10:25:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'marks', 'marks', '2003-05-20 12:56:34', 'mytests/test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'mark_alumni', 'Mark Alumni', '2004-10-25 12:24:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'mark_statistics', 'Submission Statistics', '2004-08-26 13:27:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'master_list_authentication', 'Authenticate Against A Master Student List', '2005-03-31 13:54:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'master_not_in_list', 'If existing user not in new list', '2005-05-10 16:04:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'master_student_list', 'Master Student List', '2005-04-04 10:39:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material', 'Material', '2004-10-14 14:10:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material_announcements', 'Announcements (%s)', '2004-10-14 14:14:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material_content_pages', 'Content Pages (%s)', '2004-10-14 14:12:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material_files', 'Files (%s)', '2004-10-14 14:22:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material_glossary', 'Glossary (%s)', '2004-10-14 14:22:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material_groups', 'Groups (%s)', '2004-11-25 15:43:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material_links', 'Links (%1$s categories,  %2$s links)', '2004-10-14 14:18:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material_polls', 'Polls (%s)', '2004-10-14 14:21:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material_select_all', 'Select All', '2004-10-14 14:11:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'material_stats', 'Statistics (%s days)', '2004-10-14 14:23:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'maximum', 'Maximum', '2003-05-20 12:59:01', 'instructor course statistics/details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'maximum_course_float', 'Maximum Course Float', '2005-03-03 10:52:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'maximum_course_size', 'Maximum Course Size', '2005-03-03 10:51:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'maximum_file_size', 'Maximum File Size', '2005-03-03 10:51:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'maximum_login_attempt', 'Maximum Login Attempts', '2009-06-03 15:33:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'max_backups_reached', 'You have reached the maximum number of backups allowed.', '2004-10-15 14:16:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'max_file_size', 'Max File Size', '2003-05-20 12:59:52', 'admin course manager properties');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'max_file_size_system', 'Maximum system allows', '2003-10-14 14:32:52', 'php\'s max file size');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'mb', '<acronym title="Megabyte">MB</acronym>', '2007-07-26 14:05:45', 'short for MB (megabytes)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'media', 'Media', '2007-06-15 14:41:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'members', 'Members', '2003-05-20 13:00:39', 'instructor course statistics/details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'member_id', 'Member ID', '2003-05-20 13:01:18', 'admin user manager column heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'member_stats', 'Student Specific Usage', '2005-03-03 15:25:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'menu', 'Menu', '2003-05-20 13:02:17', 'preferences option');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'menu_menu', 'Content Navigation', '2005-03-30 10:13:27', 'context (?)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'message', 'Message', '2003-05-20 13:06:56', 'inbox send message screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'message_board', 'Message Board', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'message_notification', 'Message Notification', '2005-03-14 15:31:15', 'preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'mexican-lsm', 'Mexican-LSM', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'minimum', 'Minimum', '2003-05-20 13:08:57', 'instructor course statistics/details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'minutes', '%s min.', '2006-03-31 15:41:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'minute_short', 'm', '2007-07-09 12:31:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'missing', 'Missing', '2005-10-05 14:02:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'missing_content', 'Missing Content', '2005-03-07 15:25:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'missing_info', 'Missing Info', '2005-08-17 13:23:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'modules', 'Modules', '2005-08-16 13:40:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'module_install_directory', 'The following directory must be created for this module to install and function: <kbd>%s</kbd>.', '2005-09-22 14:14:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'module_name', 'Module Name', '2005-08-17 13:11:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'module_uninstall', 'Uninstall Module', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'mod_rewrite', 'mod_rewrite', '2008-05-14 12:05:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'monospaced', 'Monospaced', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'month', 'Month', '2004-06-24 15:45:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'more_options', 'More options...', '2007-02-21 11:48:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'move', 'Move', '2004-01-15 13:31:18', 'editing content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'move_down', 'Move Down', '2005-03-30 15:54:20', 'modules');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'move_thread', 'Move Thread', '2006-09-06 13:14:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'move_thread_to', 'Move thread to:', '2006-09-06 13:15:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'move_to_inbox', 'Move to Inbox', '2007-02-22 13:09:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'move_up', 'Move Up', '2005-08-02 15:44:46', 'modules');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'music', 'Music', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'mutual_connections', 'Mutual Connections', '2009-06-12 15:42:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'myown_patches', 'My Own Patches', '2008-04-21 15:08:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'mysql_version', 'MySQL Version', '2007-07-26 13:40:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'my_account', 'My Account', '2005-03-28 14:04:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'my_courses', 'My Courses', '2004-04-15 12:05:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'my_enrolled_courses', 'My enrolled courses', '2004-08-18 12:03:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'my_files', 'My Files', '2006-03-20 14:40:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'my_friends_only', 'Only my contacts', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'my_groups', 'My Network Groups', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'my_start_page', 'My Start Page', '2005-02-08 10:58:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'my_tests', 'My Tests & Surveys', '2010-03-18 12:33:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'my_tracker', 'My Tracker', '2003-05-20 13:12:27', 'global my tracker  heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'na', 'N/A', '2003-05-20 13:12:48', 'short form for "not applicable"');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'name', 'Name', '2003-05-20 13:31:04', 'file manager, zip utility column heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'name_in_english', 'Language name in English', '2004-11-20 19:41:16', 'admin add language');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'name_in_language', 'Language name translated', '2004-11-20 19:39:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'native-american', 'Native-American', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'navigation', 'Navigation', '2008-09-09 09:03:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'nav_path', 'Navigation Path for User', '2003-05-20 13:31:22', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'nav_tendencies', 'Navigation Tendencies for User', '2003-05-20 13:32:03', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'netherlands-ngt', 'Netherlands-NGT', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'network_home', 'My Network', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'network_updates', 'Network Activity', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'never', 'Never', '2005-03-03 11:03:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new', 'New!', '2003-05-20 13:32:52', 'forum/inbox new message indicator');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new_account_enroll', 'A user account has been created for you at %1s and you have been enrolled into the course %2s. To access this course, please log into the site. It is strongly suggested you change your password upon logging in.', '2005-06-24 15:33:45', 'Message emailed to new users as a result of enrollment.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new_account_enroll_confirm', 'You have been enrolled into the course %1s. To access this course, you must first confirm your account by using the following link: %2s. It is strongly suggested you change your password upon logging in.', '2005-06-24 15:33:17', 'If new user created during enrollment and needs confirmation.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new_file', 'New File', '2006-03-20 14:36:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new_group_invitations', 'New Group Invitations', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new_name', 'New Name', '2005-03-07 13:26:12', 'filemanager rename file');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new_thread', 'New Thread', '2003-05-20 13:37:34', 'forum');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new_type', 'New Type:', '2006-03-22 15:11:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new_user', 'New User', '2005-07-27 15:06:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'new_window', 'Links open in a new window.', '2005-10-28 12:24:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'next', 'Next', '2003-05-20 13:38:07', 'sequence arrow link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'next_topic', 'Next Topic', '2003-05-20 13:38:42', 'sequence arrow link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no', 'No', '2005-03-03 10:18:39', 'the word no, preferences, admin course manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'none', 'None', '2003-05-20 13:40:59', 'global message when no results were retrieved');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'none_available', 'None available.', '2003-05-20 13:41:46', 'instructor add/edit content, glossary');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'none_found', 'None Found.', '2005-05-18 13:12:47', 'glossary, related topis, users online');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'non_group_members', 'Non-Group Members', '2005-06-10 10:51:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'norwegian-nsl', 'Norwegian-NSL', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'notes', 'Notes', '2003-05-20 13:43:39', 'admin hime, instructor request notes column heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'note_taking', 'Note Taking', '2008-09-09 09:03:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'notification_accept_contact', '%s has been added to your ATutor Social contacts. Follow the link below to review your new contact. \r\n\r\n------\r\nSent from ATutor Social at:\r\n%s\r\n', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'notification_group_invite', '%s has invited you to join the %s group. Follow the link below to login and accept or reject the invitation. \r\n\r\n------\r\nSent from ATutor Social at:\r\n%s\r\n', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'notification_group_invite_accepted', '%s has accepted your  invitation to join the %s group. Follow the link below to login to the group.\r\n\r\n------\r\nLogin to ATutor Social at:\r\n%s\r\n', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'notification_group_request', 'A request has been made to join the %s group Follow the link below to login and accept or reject the request.\r\n\r\n------\r\nLogin to ATutor Social at:\r\n%s\r\n', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'notification_group_request_accepted', 'Your request to join the %s group has been accepted. Follow the link below to login to the group.\r\n\r\n------\r\nLogin to ATutor Social at:\r\n%s\r\n', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'notification_new_contact', '%s wants to add you to as a ATutor Social contact. Follow the link below to login and accept or reject the request. \r\n\r\n------\r\nSent from ATutor Social at:\r\n%s\r\n', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'notification_new_inbox', 'You have received a new message from %s. Login to access your inbox and view the message. Login at: %s', '2005-05-17 14:20:35', 'notification message for new mail in inbox');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'notify', 'Notify', '2003-05-20 13:45:17', 'admin course properties');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'not_added_members', 'Invite Group Members', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'not_created', 'Not Created', '2005-05-10 15:23:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'not_editable', 'Not editable.', '2006-03-20 15:17:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'not_enrolled', 'Not Enrolled', '2005-03-23 14:23:18', 'user status on my courses page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'not_installed', 'Not Installed', '2008-10-28 10:58:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'not_overwrite', 'Not overwrite', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'not_specified', 'Not specified', '2003-05-12 15:26:26', 'registration gender selection');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'now_friends1', 'and %s are now contacts.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'now_friends2', 'and %s are now contacts', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_activities', 'No network activity.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_announcements', 'No Announcements Found', '2003-05-20 13:55:19', 'course homepage when no announcments exist');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_content_avail', 'No content available.', '2005-10-20 11:00:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_courses', 'There are no available courses.', '2003-05-20 13:57:26', 'browse message when no courses exist');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_courses_found', 'No courses found.', '2003-05-20 13:58:31', 'message when query resuylt in no courses found, admin course manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_course_found', 'Course not found.', '2003-10-15 14:31:39', 'course not found');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_description', 'No description available.', '2004-08-20 15:00:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_due_date', 'No due date', '2006-05-30 12:37:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_end_date', 'No end date', '2007-07-16 14:27:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_forums', 'No Forums Found', '2003-05-20 13:59:58', 'discussions message when no forums exist');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_friends', 'You have no contacts yet.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_gadgets_installed', 'You have not installed any gadgets yet.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_glossary_items', 'No glossary terms found.', '2005-03-07 10:52:11', 'edit glossary');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_groups_yet', 'You have not joined any groups yet.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_icon', 'No Icon', '2005-03-03 11:20:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_month_data', 'There is no data for this month.', '2003-05-20 14:01:42', 'instructor course statistics when nonne exist');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_pass_score', 'No pass score', '2008-03-10 11:50:35', 'Test/Survey Property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_post', 'No post found.', '2003-05-20 14:02:44', 'forums message when attempting to view a post that no longer exists');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_questions', 'No questions found.', '2003-05-20 14:04:01', 'test manager message when no questions exist for a test.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'No_resources', 'No resources found in this content page.', '2008-12-11 12:10:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_results_available', 'No Results Available', '2003-05-20 14:07:22', 'test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_results_yet', 'No Results Yet', '2003-05-20 14:07:32', 'my tests');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_settings', 'There is no available settings.', '2009-06-09 14:25:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_terms_found', 'There are no glossary terms being used in this content page.', '2004-01-16 10:52:51', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_tests', 'No Tests or Surveys Available', '2004-08-25 14:04:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_title', 'No title.', '2005-10-20 11:00:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'no_user_found', 'No user found', '2003-05-20 14:09:41', 'admin user amanager, profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'num', 'No.', '2003-05-20 14:10:36', 'short form for the word number, test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'number_of_groups', 'Number of Groups', '2006-03-22 11:48:03', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'number_of_members', 'Number of Members', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'number_of_students_per_group', 'Number of Students per Group', '2006-03-22 11:52:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'num_pages', '# pages', '2005-03-16 13:54:47', 'content manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'num_posts', 'Number of Posts', '2005-04-14 11:07:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'num_questions_per_test', 'questions per test.', '2004-08-23 16:13:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'num_students_currently_enrolled', 'There are <em>%s</em> students currently enrolled in this course.', '2006-03-22 13:02:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'num_takes_test', 'Attempts Allowed', '2004-08-26 10:34:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'num_threads', 'Number of Threads', '2005-04-14 11:07:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'ok', 'OK', '2004-01-30 11:54:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'on', 'on', '2003-05-20 14:11:28', 'admin course manager properties tracking option');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'one_page', 'One Page', '2003-05-20 14:12:22', 'test manager open ended question type');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'one_question_per_page', 'One question per page', '2007-08-20 15:46:36', 'edit/create test');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'one_sentence', 'One Sentence', '2003-05-20 14:12:46', 'test manager open ended question type');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'one_word', 'One Word', '2003-05-20 14:12:53', 'test manager open ended question type');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'ongoing', 'On Going!', '2003-05-20 14:13:23', 'mytest currently running test indicator');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'online_status', 'Online Status', '2005-03-11 16:18:30', 'directory');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'only_show_edited_terms', 'Only show edit terms.', '2006-09-25 13:08:06', 'language editor filter form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'open_file_manager', 'Open File Manager', '2004-11-25 17:31:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'optional', 'Optional', '2003-05-20 14:40:09', 'registration screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'optional_description', 'Optional Description', '2004-10-27 15:31:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'optional_feedback', 'Optional Feedback', '2004-11-24 14:33:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'option_alignment', 'Alignment', '2004-12-01 13:36:36', 'edit/create option in test questions');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'or', 'Or', '2003-05-20 14:40:26', 'global word or');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'orange', 'Orange', '2003-05-20 14:40:40', 'global code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'order', 'Order', '2005-03-04 14:07:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'organization', 'Organization', '2008-10-06 13:41:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'original_resource', 'Original resource', '2010-03-09 16:16:17', 'adapted content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'original_term', 'Original term', '2006-09-25 13:09:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'origin_page', 'Originating Page', '2003-05-20 14:40:57', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'or_groups', 'Or, Groups:', '2006-08-28 15:58:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'os', '<acronym title="Operating System">OS</acronym>', '2007-07-26 14:04:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'other', 'Other', '2005-03-03 12:17:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'others', 'Others', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'out_of', 'Maximum Score', '2008-07-17 08:36:47', 'mytests, score out of ...');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'override', 'Override selections with this course\'s custom Colour & Font theme.  <small class="spacer">( If available. )</small>', '2003-05-20 14:42:37', 'preferences page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'overwite_content', 'Overwrite existing material with those selected', '2004-10-15 14:18:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'overwrite', 'Overwrite', '2004-11-09 15:24:23', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'overwrite_master', 'If an existing account is using this Student ID, overwrite association with new account.', '2006-06-12 13:58:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'packaged_in', 'Content Package', '2003-10-07 18:21:34', 'apckage label in edit content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'packages', 'Packages', '2005-05-17 12:09:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'packages_auto_advance', 'Automatically start next Learning Object', '2005-05-17 12:10:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'package_settings', 'Package Settings', '2005-05-17 12:06:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'package_type', 'Package Type', '2005-05-17 12:09:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'package_type_info', 'Please select the type of package you wish to upload.', '2005-05-17 12:07:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'package_upload_file', 'Package File', '2005-05-17 12:07:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'package_upload_file_info', 'Select the package file from your computer', '2005-05-17 12:07:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'package_upload_url', 'Package URL', '2005-05-17 12:06:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'package_upload_url_info', 'or specify the URL to your web accessible package file', '2005-05-17 12:06:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'page', 'Page', '2003-05-20 14:43:17', 'forum thread pages menu, tracker pages menu');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pages_found', '%s pages found', '2004-08-20 15:09:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pages_stats', 'Page Tracking Statistics for %s.', '2003-06-08 09:20:38', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'page_error', 'An error occured while generating the paginator', '2003-05-20 14:44:01', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'page_info', 'Last Modified: %s.  Revision: %s.  Release Date: %s.', '2004-02-12 11:27:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'page_stats', 'Content Tracking Summary', '2003-05-20 14:44:48', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'page_title', 'Page Title', '2003-05-20 14:45:16', 'tracker column heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'page_viewed', 'Page Viewed', '2003-05-20 14:45:44', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'parent', 'Parent', '2005-03-29 13:04:13', 'categories');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'partially_uninstalled', 'Partially Uninstalled', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password', 'Password', '2003-05-20 14:45:56', 'global password word');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_again', 'Password Again', '2003-05-20 14:46:52', 'registration, edit profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_blurb', 'Enter your account\'s email address below and an email with instructions on retrieving your password will be sent to you. The email address must be the same as the one you used for\r\nregistration.', '2006-06-08 11:20:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_changed', 'Password Change', '2005-11-30 13:54:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_change_confirm', 'Your password on %s has been changed successfully. Go to %s to login.', '2006-05-09 15:28:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_change_msg', 'Your password has been altered. Please use the information below.', '2005-11-30 13:55:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_forgot', 'Forgot Password', '2006-05-09 15:00:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_new_blurb', 'Enter a new password for your account.', '2006-05-09 15:54:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_old', 'Old Password', '2006-05-11 11:34:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_reminder', 'Forgot your password?', '2006-05-09 14:29:49', 'password reminder screen heading, public login header');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_reminder_text', 'If you have lost your password, use the forgotten password feature to regain access to your account.', '2006-05-09 14:56:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'password_request2', 'Dear %1$s,\r\n\r\nYour login name is %2$s.\r\n\r\nTo set a new password, follow the link below. \r\n\r\n%4$s\r\n\r\n(If this link does not take you to the site, copy and paste it into the address bar of your internet browser)\r\n\r\nThe link will become invalid after %3$s days.', '2009-01-23 10:49:55', 'password reminder');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pass_feedback', 'Pass Feedback', '2008-03-10 11:49:19', 'Test/Survey Property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pass_score', 'Pass Score', '2008-03-10 08:46:46', 'Test/Survey property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'paste', 'Paste', '2004-12-03 10:30:28', 'form_editor in create question');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'paste_file', 'Paste From File', '2003-05-20 14:49:35', 'instructor content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'patcher', 'Patcher', '2008-04-21 15:08:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'patcher_alter_modified_files', 'The listed files are modified locally. If you choose to proceed, your local file will be modified. The original\r\nfile will be backed up before the modification. Please note that the modification to your customized code may break your customization.<br />', '2008-07-28 10:52:09', 'patcher');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'patcher_overwrite_modified_files', 'The listed files have been modified locally. If you choose to proceed, the patch file will be copied to your local machine. \r\nYou have to manually merge this file and your local copy.<br />', '2008-07-28 10:52:22', 'patcher');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'patcher_show_backup_files', 'Below is the list of the backup files created by the Patcher. After ensuring ATutor works properly with the patch, you may want to \r\ndelete these files. If  ATutor does not work properly with the patch, you can always revert back to the old files by renaming the backup files \r\nto the original file names,  removing the [patch_id].old portion of the file name. <br />', '2008-07-28 10:52:38', 'patcher');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'patcher_show_patch_files', 'Below is the list of the patch files copied to your computer. \r\nPlease manually merge the changes between the patch files and your local copy. <br />', '2008-07-28 10:52:51', 'patcher');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'patch_dependent_patch_not_installed', '<br><span style="color: red">Warning: There are patch dependencies, please install the listed patches first: </span>', '2008-04-22 14:56:15', 'patcher');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'patch_local_file_not_exist', 'Cannot proceed. The listed files do not exist on your local machine. If you renamed the file, in order to proceed, please rename back.<br />', '2008-07-28 10:53:03', 'patcher');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_add_more_photos', 'Add More Photos', '2010-03-17 15:53:59', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_albums', 'Albums', '2010-03-17 15:49:41', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_album_cover', 'Album Cover', '2010-03-17 15:57:45', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_album_description', 'Album Description', '2010-03-17 15:57:34', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_album_location', 'Album Location', '2010-03-17 15:57:24', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_album_name', 'Album Name', '2010-03-17 15:57:02', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_album_permission', 'Album Permission', '2010-03-17 16:04:31', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_album_type', 'Album Type', '2010-03-17 15:57:13', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_alt_text', 'Alternative Text', '2010-03-17 15:59:00', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_choose_profile_picture', 'Upload Profile Picture', '2010-03-25 16:00:58', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_click_here_to_edit', 'Click here to edit', '2010-03-17 16:00:54', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_click_item_to_edit', 'Click item to edit', '2010-03-17 16:01:06', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_close_upload_manager', 'Close Upload Manager', '2010-03-17 16:04:18', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_course_albums', 'Course Albums', '2010-03-17 15:58:28', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_create_album', 'Create Album', '2010-03-17 15:58:50', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_delete_album', 'Delete Album', '2010-03-17 15:51:21', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_delete_comment', 'Delete Comment', '2010-03-17 15:51:34', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_delete_photo', 'Delete Photo', '2010-03-17 15:51:47', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_delete_profile_pic_blub', 'You can remove this picture, but be sure to upload another or we will display a silhouette in its place.', '2010-03-25 16:04:19', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_delete_this_photo', 'Delete This Photo', '2010-03-17 15:53:32', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_edit_album', 'Edit Album', '2010-03-17 15:51:09', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_edit_photo', 'Edit Photo', '2010-03-17 15:50:55', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_edit_photos', 'Edit Photos', '2010-03-17 15:50:39', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_last_updated', 'Last Updated', '2010-03-17 15:58:00', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_max_memory', 'Maximum Memory Size allowed per member', '2010-03-17 16:01:42', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_memory_usage', 'Memory Usage', '2010-03-17 16:03:53', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_my_albums', 'My Albums', '2010-03-17 15:58:14', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_no_album', 'No Album Available', '2010-03-17 15:59:28', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_no_image', 'No image', '2010-03-17 15:59:52', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_no_photos', 'No Photos Available', '2010-03-17 15:59:39', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_of', 'of', '2010-03-17 16:00:19', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_open_upload_manager', 'Open Upload Manager', '2010-03-17 16:04:07', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_organize_photos', 'Organize Photos', '2010-03-17 15:53:45', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_organize_photo_blurb', 'Note: Drag photos using a mouse, or [CTRL]+[Left/Right/Up/Down Arrow] keys to rearrange them.', '2010-03-17 16:00:09', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_photo', 'Photo', '2010-03-17 15:49:57', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_photos', 'Photos', '2010-03-17 15:50:12', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_photo_gallery', 'Photo Gallery', '2010-03-17 15:49:28', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_preferences', 'Album Preferences', '2010-03-17 16:01:30', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_private', 'Private', '2010-03-17 16:04:46', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_processed', 'Processed', '2010-03-17 15:59:14', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_profile_album', 'Profile Album', '2010-03-17 15:50:26', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_redo', 'Redo', '2010-03-17 16:00:41', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_set_profile_pic', 'Make Profile Picture', '2010-03-25 12:02:04', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_shared', 'Shared', '2010-03-17 16:04:58', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_shared_albums', 'Shared Albums', '2010-03-17 15:58:39', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_undo', 'Undo', '2010-03-17 16:00:31', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_uploaded_by', 'Uploaded by', '2010-03-17 16:05:10', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_upload_blurb', 'Click "Browse" to look for the picture you wish to upload.  These photos will be processed and display below.  You also have the option to remove the pending photos anytime.  When you are done, click "Upload".', '2010-03-17 15:56:41', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pa_write_a_comment', 'Write a comment...', '2010-03-17 16:01:18', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'peer_interaction', 'Peer Interaction', '2008-09-09 09:03:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pending', 'Pending', '2003-05-20 14:50:41', 'mytests, control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pending_approval', '(pending approval)', '2003-05-20 14:51:49', 'control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pending_enrollment', 'Pending Enrollment', '2005-06-10 10:14:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pending_friend_requests', 'Pending Friend Requests', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'people_you_may_know', 'People you may know', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'percentage_from', 'Percentage From', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'percentage_score', 'percentage score', '2008-03-10 11:50:57', 'Test/Survey Property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'percentage_to', 'Percentage To', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'period', 'Period', '2004-06-22 12:09:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'personal', 'Personal Information', '2009-12-07 13:42:47', 'Social personal info');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'personal_information', 'Personal Information', '2003-05-20 14:53:12', 'registration, profile edit');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'per_day', 'per day', '2003-05-20 14:54:04', 'instructor course statistics, details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'per_disabilities', 'Disabilities', '2009-12-07 13:42:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'per_ethnicity', 'Ethnicity', '2009-12-07 13:40:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'per_eyes', 'Eye Colour', '2009-12-07 13:40:23', 'Social personal info');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'per_hair', 'Hair Colour', '2009-12-07 13:39:57', 'Social personal info');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'per_height', 'Height', '2009-12-07 13:39:21', 'social personal info');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'per_languages', 'Languages Spoken', '2009-12-07 13:41:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'per_weight', 'Body Weight', '2009-12-07 14:09:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'phone', 'Telephone Number', '2006-11-23 11:33:30', 'global phone number field label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'photos', 'Photo Gallery', '2010-03-17 15:49:12', 'photo album');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'php_version', 'PHP Version', '2007-07-26 13:40:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'picture', 'Picture', '2007-02-26 17:22:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pink', 'Pink', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'placelogo', 'Place holder logo', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'plain_text', 'Plain Text', '2006-11-23 13:16:30', 'instructor content editor, news, inbox, forum message format');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'points', 'Points', '2007-03-05 15:51:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'points_score', 'points score', '2008-03-10 11:51:16', 'Test/Survey Property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'poll', 'Poll', '2004-06-25 13:17:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'polls', 'Polls', '2004-06-14 13:55:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'position', 'Position', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'post', 'Post', '2003-05-20 14:56:13', 'forum new thread post button');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'postal_code', 'Postal/Zip Code', '2003-05-20 14:56:34', 'global postal code filed labal');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'posted_by', 'By', '2003-05-20 14:57:31', 'forum message submitter');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'posted_on', 'on', '2003-05-20 14:58:10', 'forum message post date, inbox');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'posts', 'Forum Threads', '2005-03-07 13:37:56', 'Header for posts in Forum List');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'post_lock', 'Locked from posting', '2003-05-20 14:58:32', 'forum lock thread message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'post_message', 'Post Message', '2008-05-05 15:27:19', 'forum post fieldset');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'powered_by_google', 'Results by <a href="http://www.google.com">Google</a>.', '2005-10-20 10:52:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'preferences', 'Preferences', '2003-05-20 14:59:08', 'global preferences word');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'prefer_alt', 'Preferred Alternative', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'prefer_lang', 'Preferred Language', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'presets', 'Presets', '2004-08-24 11:56:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'preset_grade_scale', 'Preset Grade Scale', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'preset_scales', 'Preset &amp; Previously Used Scales', '2004-08-24 13:48:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'pretty_url', 'Pretty URL', '2008-05-14 12:02:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'preview', 'Preview', '2003-05-20 14:59:52', 'test manager preview test');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'preview_questions', 'Preview Questions', '2005-06-21 14:06:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'previous', 'Previous', '2003-05-20 15:01:31', 'global sequence arrow alt/link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'previous_posts', 'Previous Posts', '2006-06-14 10:47:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'previous_topic', 'Previous Topic', '2003-05-20 15:02:06', 'global sequence arrow alt/link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'prev_used', 'Previously Used', '2004-08-13 13:29:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'primary_language', 'Original Language', '2008-10-19 17:03:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'primary_resource_language', 'Original Resource Language', '2008-10-19 17:04:18', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'primary_resource_type', 'Original Resource Type', '2008-10-19 17:04:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'print_page', 'Print Page', '2008-01-04 10:16:49', 'redux theme');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'privacy_control_blurb', 'Controls who can see your profile and related information.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'privacy_settings', 'Privacy Settings', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'private', 'Private', '2003-05-20 15:03:14', 'global private course indicator');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'private_enroll', 'The course you are trying to access is <strong>private</strong>. Enrollment in this course requires instructor approval.<br />', '2005-03-17 11:51:06', 'requesting enrollment in private course');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'privileges', 'Privileges', '2004-03-05 12:29:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'priv_ac_access_all', 'ACollab: Access all Groups', '2005-08-10 15:21:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'priv_ac_create', 'ACollab: Create Group', '2005-08-10 15:20:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'priv_admin_super', 'Super Administrator', '2005-03-03 10:36:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'priv_admin_themes', 'Themes', '2005-03-03 10:38:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'priv_forums', 'Forums & Chat', '2004-03-08 10:04:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'priv_test_create', 'Test Creation', '2005-08-10 15:20:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'priv_test_mark', 'Test Marking', '2005-08-10 15:22:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'profile', 'Profile', '2003-05-20 16:24:30', 'control centre heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'profile_bundle_select', 'Profile Bundle Selection', '2004-12-06 12:13:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'profile_control', 'Profile Visability', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'profile_picture', 'Profile Picture', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'profile_pictures', 'Profile Pictures', '2007-02-27 13:43:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'profile_student_information', 'Student Information', '2003-09-16 11:49:35', 'view profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'properties', 'Properties', '2003-05-21 12:15:58', 'instructor control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'protected', 'Protected', '2003-05-21 12:16:46', 'browse, create coruse, control centre, course properties');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'province', 'Province/State', '2003-05-21 12:17:22', 'registration, profile editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'public', 'Public', '2003-05-21 12:18:37', 'browse courses, create course, course properties, control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'publish_date', 'Publish Date', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'purple', 'Purple', '2003-05-21 12:18:50', 'global code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'put_link', 'put link name here', '2004-12-08 12:38:42', 'filemanager, isert text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'quebec-lsq', 'Quebec-LSQ', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'question', 'Question', '2003-05-21 12:30:21', 'test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'questions', 'Questions', '2003-05-21 12:30:40', 'test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'questions_for', 'Questions for', '2003-05-21 12:30:50', 'test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'question_categories', 'Question Categories', '2005-02-22 14:17:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'question_database', 'Question Database', '2004-11-24 10:14:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'question_statistics', 'Question Statistics', '2004-08-26 13:26:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'quote', 'Quote', '2003-05-21 12:31:19', 'code picker alt text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'randomize_questions', 'Randomize Questions', '2004-05-18 10:44:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'raw', 'Raw', '2003-09-13 09:25:20', 'course tracker member picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'raw_data', 'Raw Data', '2003-05-21 12:31:48', 'instructor course statistics/details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'raw_final_score', 'Raw Final Score', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 're', 'Re', '2007-02-20 16:20:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'reading_list', 'Reading List', '2006-05-09 14:19:55', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'read_lock', 'Locked from posting & reading', '2003-05-21 12:32:39', 'forum lock message in thread list');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'real_name', 'Real Name', '2003-10-20 11:33:14', 'course properties');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'reapply_default', 'Reset to System Defaults', '2008-10-29 12:18:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'recent_first', 'Recent First', '2009-09-08 13:34:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'recent_last', 'Recent Last', '2009-09-08 13:34:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'recipient_address', 'Recipient Address', '2004-12-06 12:20:03', 'admin/error_logging_bundle.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'red', 'Red', '2003-05-21 12:32:57', 'global code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'red_members', 'Red = Members', '2003-05-21 12:33:55', 'instructor course statistics/details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'refresh_image', 'Refresh Image', '2009-07-16 08:51:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'regenerate', 'Regenerate', '2007-02-16 14:00:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'register', 'Register', '2003-11-26 15:09:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'registered_members', 'Registered Members', '2008-10-06 13:42:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'register_an_account', 'Register an ATutor System Account', '2003-05-21 12:36:01', 'private course enrolment screen, login screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'registration_text', 'If you do not have an account on this system,  please create a new account by clicking on the Register Button below.', '2005-07-27 15:11:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'reg_exp', 'Regular Expression', '2004-11-20 19:38:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'reject_request', 'Reject Request', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'related_topics', 'Related Topics', '2003-05-21 12:38:26', 'context(?)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'relative_directory', 'Directory is relative directory to ATutor root, for example: docs/images/ or tools/tests/. Leave empty if it is ATutor root directory.', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'release_date', 'Release Date', '2003-05-21 12:39:24', 'instructor add/edit content, control centre');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'release_immediate', 'Once quiz has been submitted', '2004-12-13 13:55:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'release_marked', 'Once quiz has been submitted and all questions have been marked', '2004-12-13 13:55:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'release_never', 'Do not release results', '2004-12-13 14:02:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'release_on', 'Release on', '2006-04-10 14:37:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'remove', 'Remove', '2003-05-21 12:40:11', 'control centre, admin user manager, instructor enrolment manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'removed', 'Removed', '2004-02-03 09:36:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'remove_frame', 'Remove Frame', '2005-01-10 14:31:34', 'filemanager preview');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'remove_question', 'Remove Question', '2004-11-25 10:30:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'remove_queued_file', 'Remove file from queue', '2008-07-22 16:44:41', 'Instruction to remove file in Fluid\'\'s multiple file uploader');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'remove_write_permission', '<span style="color:red">Please <strong>REMOVE</strong> write permission on the listed folders and files for your security:</span><p><strong>Note:</strong> To remove permissions on Unix use <kbd>chmod 755</kbd> then the file name..</p>', '2008-04-21 15:08:55', 'patcher');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rename', 'Rename', '2004-08-11 14:00:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'replace', 'Replace', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'replace_file', 'Replace File', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'replace_into', 'Replace Into', '2005-03-03 12:16:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'replied', 'Replied', '2003-05-21 12:40:35', 'inbox message status label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'replies', 'Replies', '2003-05-21 12:40:50', 'forum');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'reply', 'Reply', '2003-05-21 12:41:20', 'forum, inbox');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'report_errors', 'Report Errors', '2004-12-06 12:08:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'representation', 'Representative', '2009-12-03 15:41:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'request_enrollment', 'Request Enrollment', '2003-10-21 13:04:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'request_instructor', 'You do not yet have permission to create courses. If you would like an instructor account, enter the required description of the course you wish to create.', '2005-03-09 12:22:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'request_instructor_account', 'Request Instructor Account', '2003-05-21 12:43:12', 'control centre non-instructor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'request_instructor_pending', 'Your instructor account request has been made. You will be notifed by email when your request has been approved.', '2005-03-09 12:35:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'request_instructor_priv', 'Request Instructor Account', '2009-11-13 15:44:24', 'my start page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'request_services', '<a href="http://www.atutor.ca/services">Request ATutor Services</a>', '2008-11-14 13:43:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'request_services_text', 'Purchase yearly support packages, support tickets, or other ATutor services. Requires <a href="http://www.atutor.ca/my/register.php">registration on atutor.ca</a>.', '2008-11-14 14:04:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'required', 'Required', '2003-05-21 12:43:54', 'registration, export course, test manager question editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'required_field', 'Required Field', '2005-03-04 12:52:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'required_information', 'Required Information', '2005-03-04 14:08:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'require_email_confirmation', 'Require Email Confirmation Upon Registration', '2005-03-22 10:55:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'req_message9', 'ATutor Instructor Request', '2003-05-21 18:52:38', 'email message subject line from control centre instructor request');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'req_message_instructor', 'A new Instructor account request has been made by: %s.\r\n\r\nCourse Description: %s\r\n\r\nYou must login as the administrator at %s to approve or reject this request.', '2004-02-16 16:38:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'reset', 'Reset', '2003-05-21 18:53:27', 'global text for reset buttons');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'reset_filter', 'Reset Filter', '2005-03-30 14:52:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'reset_log', 'Reset Log', '2005-03-03 10:42:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'resource_categories', 'Resource Categories', '2003-05-21 18:57:43', 'instructor export course feedback');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'resource_links', 'Resource Links', '2003-05-21 18:58:34', 'instructor export course feedback');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'resource_type', 'Resource type', '2010-03-09 16:16:42', 'adapted content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'response_text', 'The following answers were given in response to:', '2004-08-25 12:20:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'restore', 'Restore', '2003-05-21 18:59:34', 'preferences page (removed 1.2)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'restore_backup_about', 'Choose the checkboxes next to the content to be restored, select course into which to restore the content, then choose to append the content to the course, or replace the content in the course.', '2004-12-10 09:53:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'restore_upload', 'To upload a backup file, enter a description of the backup, choose a file to upload, and use the "Upload" button. Only backups created using ATutor 1.3 and later are supported. Depending on the size of the course and your Internet connection speed,  uploading a backup may take a long time.', '2004-12-10 18:06:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'resubmit', 'Resubmit', '2004-01-30 16:34:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'result', 'Result', '2004-08-12 15:22:08', 'single result in search engine');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'results', 'Results', '2003-05-21 19:00:51', 'test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'results_found', 'Results Found: %s', '2005-04-14 11:01:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'results_from', 'Results from %s', '2004-08-18 12:05:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'result_release', 'Release Results', '2004-12-13 13:57:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'resume', 'Resume', '2003-05-21 19:01:48', 'alt/link text for the resume arrow');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'return', 'Return', '2003-05-21 19:02:25', 'escape from delete course function');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'return_file_manager', 'Return to the File Manager', '2004-11-05 11:20:30', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'return_to_admin_area', 'Return to Admin Area', '2006-03-28 12:31:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'revision', 'Revision', '2003-05-21 19:04:01', 'instructor content editor statistics below embedded links');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'revisions', 'Revisions', '2006-03-20 14:36:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'revision_comment', 'Revisions Comment', '2006-03-20 14:37:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'right', 'Right', '2004-04-27 11:00:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_add_av_material_to_resources', 'Add AV Material To Resources', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_add_resource_av', 'Add Resource AV', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_add_resource_book', 'Add Resource Book', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_add_resource_file', 'Add Resource File', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_add_resource_handout', 'Add Resource Handout', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_add_resource_url', 'Add Resource URL', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_av', 'AV', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_av_material_to_view', 'AV Material to View', '2006-04-13 12:18:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_book', 'book', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_book_to_read', 'Book To Read', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_create_new_av', 'Create New AV', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_create_new_book', 'Create New Book', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_create_new_file', 'Create New File', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_create_new_handout', 'Create New Handout', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_create_new_url', 'Create New URL', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_date_format', '%%M %%d, %%Y', '2006-06-26 16:10:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_delete_reading', 'Delete Reading', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_delete_resource', 'Delete Resource', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_display_resource', 'Display Resource', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_display_resources', 'Resources', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_reading_av', 'Edit Reading AV', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_reading_book', 'Edit Reading Book', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_reading_file', 'Edit Reading File', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_reading_handout', 'Edit Reading Handout', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_reading_url', 'Edit Reading URL', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_resource_av', 'Edit Resource', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_resource_book', 'Edit Resource Book', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_resource_file', 'Edit Resource File', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_resource_handout', 'Edit Resource Handout', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_edit_resource_url', 'Edit Resource URL', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_end', 'End', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_file', 'file', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_goto_url', 'view page', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_handout', 'handout', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_isbn_number', 'ISBN', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_name_reading', 'Name Of Reading', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_new_reading_av', 'New Reading AV', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_new_reading_book', 'New Reading Book', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_new_reading_file', 'New Reading File', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_new_reading_handout', 'New Reading Handout', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_new_reading_url', 'New Reading URL', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_no_read_by_date', 'No Read By Date', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_optional_reading', 'Optional Reading', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_or', 'or', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_pages', 'Pages', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_publisher', 'Publisher', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_reading_date', 'Reading Date', '2006-02-23 09:18:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_read_by_date', 'Read by Date', '2006-04-13 10:58:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_select_book', 'Select Book', '2006-07-25 09:08:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_select_file', 'Select File', '2006-07-25 09:15:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_select_handout', 'Select Handout', '2006-07-25 09:13:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_select_url', 'Select URL', '2006-07-25 09:12:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_start', 'Start', '2006-06-21 08:53:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_type_of_reading', 'Type of Reading', '2006-07-31 15:23:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_type_of_resource', 'Type of Resource', '2006-07-14 10:24:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_url', 'URL', '2007-08-02 10:46:30', 'resource type picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_view_resource_details', 'View Resource Details', '2008-06-10 14:23:50', 'reading list.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rl_year_written', 'Year Written', '2006-06-21 08:55:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'role', 'Role', '2004-03-05 12:26:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rss_feeds', 'Syndicated Feeds', '2005-10-28 11:07:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'rtl', 'Right to Left', '2004-11-20 19:37:58', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'russian-rsl', 'Russian-RSL', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'same_course_users', 'Only users in the same courses as you are listed.', '2003-05-21 19:05:32', 'inbox send message form');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sans_serif', 'Sans Serif', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'save', 'Save', '2004-10-29 14:57:46', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'save_changes', 'Save Changes', '2004-05-11 10:48:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'save_changes_saved', 'All changes have been saved.', '2004-02-16 14:06:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'save_changes_unsaved', 'Unsaved changes have been made.', '2004-02-16 14:04:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'save_types_and_language', 'Update Resource Properties', '2008-10-19 13:51:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'scaffold_text', 'Modify the URLs for the learning tools below. Leave blank to disable.', '2008-09-10 12:29:26', 'tool preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'scale', 'Scale', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'scale_value', 'Scale Value', '2008-09-25 15:59:56', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'schema_error', 'Wrong schema location', '2009-12-07 13:09:06', 'common cartridge');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search', 'Search', '2003-05-21 19:19:30', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_all_words', 'All words', '2003-08-11 11:22:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_any_word', 'Any word', '2003-08-11 11:22:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_connections', 'Search Connections', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_control', 'Search Control', '2009-11-06 15:53:36', 'networking settings');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_education', 'Search Education', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_for_friends', 'Search People', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_for_groups', 'Search for Groups', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_in', 'Search in', '2004-04-30 10:51:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_match', 'Match', '2003-08-11 11:21:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_position', 'Search Position', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_profile', 'Search Profile', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_results', 'Search Results', '2003-05-21 19:21:29', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_site', 'Only search within <strong>%s</strong>.', '2005-10-20 10:53:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_visibility', 'Search Visibility', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'search_words', 'Words', '2003-08-11 11:21:36', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'secondary_resource_body', 'Body', '2008-09-23 13:50:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'secondary_resource_language', 'Adapted Resource Language', '2008-10-19 17:05:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'secondary_resource_type', 'Adapted Resource Type', '2008-10-19 17:06:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'second_name', 'Second Name', '2006-03-27 14:53:50', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'second_short', 's', '2007-07-09 12:31:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'section', 'Section', '2005-03-04 14:06:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'see', 'See', '2003-05-21 19:24:22', 'glossary - "see" related terms');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'see_attached', 'See attached.', '2005-03-10 16:37:04', 'error logging - email body');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'select', 'Select', '2007-02-21 13:22:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'select_all', 'select/unselect all', '2004-10-29 13:25:57', 'file manager and enrollment manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'select_av', 'Select Audio/Visual', '2006-07-25 09:14:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'select_cat', 'Select Category', '2005-02-23 12:23:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'select_directory', 'Please choose the folder you want to move the selected files to:', '2004-11-30 11:40:08', 'Filamanger, moving a file');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'select_member', 'Select a Member to View', '2003-05-21 19:29:27', 'instructor course tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'select_parent_topic', 'Select parent topic', '2005-03-16 13:37:00', 'content manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'select_term_to_edit', 'Select term to edit.', '2006-09-25 13:08:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'send', 'Send', '2003-05-21 19:31:57', 'global message send button text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'send_bundle', 'Send Bundle', '2004-12-06 12:16:19', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'send_confirmation', 'Enter your email address below and the account confirmation message will be resent.', '2005-03-24 09:57:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'send_delete', 'Send & Delete', '2003-05-21 19:32:55', 'send a message from the inbox and delete the original');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'send_message', 'Send Message', '2003-05-21 19:34:13', 'inbox send message button text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sent_messages', 'Sent Messages', '2007-02-20 16:21:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sent_msgs_ttl_text', 'Number of Days to Keep Copied Sent Messages for', '2007-02-20 14:00:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sent_via_atutor', 'Sent via an ATutor system at %s', '2003-05-21 20:04:50', 'global email message footer');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sequence', 'Sequence', '2003-05-21 20:05:50', 'context (removed 1.2)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'serif', 'Serif', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'server_date_format', '%%Y-%%m-%%d %%G:%%i:%%s', '2008-10-01 15:02:49', 'date format');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'session_end', 'and ended on', '2003-05-21 20:12:12', 'tracker - to be updated ( started on [date] and ended on [date])');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'session_start', 'Session above started on', '2003-05-21 20:11:35', 'tracker (to be updated)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'set', 'Set', '2003-06-30 17:02:05', 'admin language manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'settings', 'Settings', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'set_default', 'Set as Default', '2004-10-15 15:48:04', 'set as default button in theme manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'set_preset', 'Apply Preset', '2003-05-24 10:52:43', 'preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'shared_forums', 'Shared Forums', '2004-11-03 11:18:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'shindig_blurb', 'If you have your own Shindig server setup, your can enter the URL to the server here. If you do not have your own Shindig server, you can either leave the URL empty, or you can use "http://social.atutor.ca/shindig/php" to connect to the ATutor social network. Shindig allows users to link gadgets from other sites into their social networking environment, as well as communicate with those in other social networks. If you choose not to use a Shindig server, your social network will function as a self-contained network, without access to external networks.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'shindig_url', 'URL of Optional ShinDig server.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'shortcuts', 'Shortcuts', '2004-04-27 14:57:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'short_paragraph', 'Short Paragraph', '2003-05-21 20:13:03', 'test manager test type');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show', 'Show', '2005-03-15 11:37:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_all', 'show all', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_available_applications', 'Show Available Gadgets', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_bread_crumbs', 'Show Breadcrumb Link Navigation', '2008-09-24 13:05:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_contents', 'Show Table of Contents', '2008-09-09 09:03:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_guest_form', 'Show Guest Information Collection Form', '2008-10-09 14:13:38', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_guide', 'Show Context Sensitive Links to Handbook', '2008-09-24 12:09:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_next_previous_buttons', 'Show Next/Previous Navigation Buttons', '2008-09-24 13:04:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_numbers', 'Topic Numbering', '2005-02-09 10:20:54', 'preference option');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_on_home_page', 'Show on Home Page', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_raw_tracking', 'Show raw tracking', '2003-11-26 15:19:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_summary_tracking', 'Show summary tracking', '2003-11-26 15:18:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'show_your_applications', 'Show Your Gadgets', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'side_menu', 'Side Menu', '2005-03-04 14:37:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'side_menu_text', 'Choose which menu items you would like displayed at the side.', '2005-03-04 15:17:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sign_lang', 'Sign Language', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sign_language', 'Sign language', '2008-09-08 14:19:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'singapore-sls', 'Singapore-SLS', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sitemap', 'Site-map', '2003-05-21 20:17:21', 'global site-map text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sitemap_text', 'Browse through the whole course site from one location.', '2009-07-02 14:15:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'site_name', 'Site Name', '2005-03-03 10:49:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'size', 'Size', '2003-05-22 13:01:20', 'file manager, zip tool');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_angry', 'angry', '2004-02-12 12:20:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_confused', 'confused', '2004-02-12 12:21:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_crazy', 'crazy', '2004-02-12 12:20:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_evil', 'evil', '2004-02-12 12:20:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_frown', 'frown', '2004-02-12 12:20:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_lol', 'laughing out loud', '2004-02-12 12:20:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_muah', 'muah', '2004-02-12 12:21:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_oh_well', 'oh well', '2004-02-12 12:20:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_smile', 'smile', '2004-02-12 12:20:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_tired', 'tired', '2004-02-12 12:21:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_tongue', 'tongue', '2004-02-12 12:20:27', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'smile_wink', 'wink', '2004-02-12 12:20:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'social', 'Networking', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'social_and_lms', 'Use ATutor LMS with ATutor Social module', '2009-07-17 14:12:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'social_groups', 'Network Groups', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'social_profile', 'Network Profile', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'social_switch', 'Social Networking', '2009-07-17 14:11:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'social_switch_text', 'Choose to use ATutor as a social networking environment only, or as a learning management system with a social networking module.', '2009-07-17 14:19:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'spanish', 'Spanish', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'spanish-lse', 'Spanish-LSE', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'specific_groups', 'Specific Groups', '2006-03-23 13:39:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'specify_url_to_content_package', 'Or, Specify a URL to a Content Package or Common Cartridge', '2009-11-16 10:57:14', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'specify_url_to_theme_package', 'Or, Specify a URL to a Theme', '2004-10-18 15:10:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sports_recreation', 'Sports and Recreation', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sql_statement', 'SQL Statement', '2008-04-21 15:11:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'standard', 'Standard', '2005-09-21 13:35:25', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'started_by', 'Started By', '2003-05-22 13:02:38', 'forums thread display table column header');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'startend_date_format', '%%j/%%n/%%y %%G:%%i', '2007-12-09 15:58:39', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'startend_date_longs_format', '%%Y-%%m-%%d %%H:%%i', '2008-08-27 11:23:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'startend_date_long_format', '%%Y-%%m-%%d %%H:%%i', '2008-08-27 11:24:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'start_date', 'Start Date', '2003-05-22 13:03:05', 'mytests, test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'start_test', 'Begin', '2009-11-13 16:18:58', 'test intro');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'state', 'State', '2005-08-16 15:27:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'statement', 'Statement', '2003-05-22 13:07:22', 'test manager add/edit questions');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'statistics', 'Statistics', '2003-05-22 13:08:06', 'instructor course statistics/details');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'statistics_information', 'Statistics &amp; Information', '2007-07-26 13:39:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'status', 'Status', '2003-05-22 13:09:29', 'test manager, control center, profile, admin user manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sticky_thread', 'Sticky Thread - always at the top', '2003-05-22 13:10:18', 'instructor forum option alt text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'street_address', 'Street Address', '2003-05-22 13:10:43', 'registration, profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'student', 'Student', '2003-10-27 11:44:47', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'student1', 'Student', '2003-05-22 13:11:42', 'admin user manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'students', 'Students', '2003-05-21 20:01:44', 'course email (removed 1.2)');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'student_id', 'Student ID', '2003-05-22 13:12:40', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'student_not_exists', 'Student not exists', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'student_pin', 'Student PIN', '2005-05-27 13:35:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'student_tools', 'Student Tools', '2008-11-07 09:17:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'student_tools_text', 'Access the tools used in this course.', '2009-07-02 14:16:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'style_editor', 'Stylesheet Editor', '2003-05-22 13:13:22', 'tool page/ stylesheet editor heading text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'subject', 'Subject', '2003-05-22 13:14:21', 'global message subject label');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'submission', 'Submission', '2005-05-11 11:29:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'submissions', 'Submissions', '2003-05-22 13:14:47', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'submit', 'Submit', '2003-05-22 13:15:05', 'global submit button text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'submitted_by', 'Submitted By', '2005-02-23 12:23:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'submit_no', 'No', '2004-11-22 16:23:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'submit_yes', 'Yes', '2004-11-22 16:23:00', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'subscribe', 'Subscribe to this thread to receive notification via email of new replies.', '2003-11-06 13:47:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'subscribe1', 'Subscribe', '2004-12-02 15:32:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'sub_topics', 'Subtopics', '2005-03-16 13:55:12', 'content manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'suggestions', 'Suggestions', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'suggest_link', 'Suggest Course Link', '2006-05-25 11:40:32', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'summary', 'Summary', '2003-09-13 09:24:55', 'course tracker member picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'support_tools', 'Learner Support Tools', '2008-09-09 09:03:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'swedish', 'Swedish', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'switch_text', 'Switch to text editor', '2004-05-27 10:50:47', 'Content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'switch_visual', 'Switch to visual editor', '2004-05-27 10:52:19', 'Used in content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'syndicate_announcements', 'Syndicate Announcements', '2005-01-04 09:46:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'system_preferences', 'System Preferences', '2005-03-03 10:49:44', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'table_of_contents', 'Table of Contents', '2003-05-22 13:53:36', 'preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'take_test', 'Take Test', '2003-05-22 13:54:16', 'MyTests');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tamil', 'Tamil', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tech_support_forum', 'Community Support Forum', '2008-11-14 13:38:14', 'help');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tech_support_forum_text', 'Support questions should be of a technical nature.', '2005-07-05 14:13:20', 'help');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'template', 'Template', '2006-09-25 13:07:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tests', 'Tests & Surveys', '2009-11-17 09:49:16', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_anonymous', 'This test/survey is anonymous.', '2004-09-02 13:42:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_description', 'Test Description', '2008-03-10 11:50:11', 'Test/Survey Property');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_import_package', 'Import available tests.', '2008-10-21 11:43:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_lk', 'Likert', '2004-08-12 15:55:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_ma', 'Multiple Answer', '2007-02-01 15:49:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_matching', 'Matching (Simple)', '2007-02-01 16:20:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_matchingdd', 'Matching (Graphical)', '2007-02-01 16:20:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_mc', 'Multiple Choice', '2003-05-22 14:03:29', 'test manager question type');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_open', 'Open Ended', '2003-05-22 14:03:45', 'test manager question type');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_ordering', 'Ordering', '2007-01-10 13:45:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'test_tf', 'True or False', '2003-05-22 14:09:05', 'test manager question type');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'text', 'Text', '2004-04-20 16:40:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'textual', 'Textual', '2008-09-08 14:19:22', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'theme', 'Theme', '2004-04-23 15:26:57', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'themes', 'Themes', '2003-05-22 14:10:24', 'preferences');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'themes_disabled', 'The personal theme preference has been disabled in favour of theme specific categories.', '2004-08-04 11:58:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'theme_screenshot', 'Screenshot', '2005-05-06 14:18:00', 'theme manager, screentshot alt/title');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'theme_specific_categories', 'Theme Specific Categories', '2005-03-31 13:49:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'there_are_entries', 'There are %s entries.', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'thesaurus', 'Thesaurus', '2008-09-09 09:03:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'the_follow_errors_occurred', 'The following errors occurred:', '2005-03-07 12:41:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'this_course_only', 'This course only', '2004-08-18 12:02:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'this_is_content', 'This is just a blank content page. Use the Edit Content link to edit this page. You can manage this course by accessing the Manage section.', '2005-05-11 14:52:47', 'default content insert when a new course is created');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'thread_already_subscribed', 'You are already subscribed to this thread.', '2003-05-22 14:11:25', 'forum view thread subscribe feedback');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'thread_locked', 'Thread Locked', '2003-05-22 14:11:58', 'forum thread view thread lock message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'thread_notify1', 'Thread Subscription', '2005-01-08 09:18:48', 'Thread email notify subject');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'thread_subscribe', 'Subscribe to this thread to receive notification via email of replies.', '2003-05-22 14:42:57', 'forum thread subscribe description');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_any_field', 'Any Field', '2004-05-03 13:14:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_author', 'Author', '2004-05-03 13:14:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_export', 'Export content to the Transformable repository. A valid Transformable account is required.', '2010-02-23 10:07:47', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_howto', 'Enter the keywords to search Transformable repository.', '2010-02-23 10:03:49', 'tile search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_import_content_package_about', 'Import the content directly into this course.', '2004-05-03 13:15:54', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_keyword', 'Keyword', '2004-05-03 13:14:23', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_not_accessible', 'Transformable repository is not accessible.', '2010-02-23 10:03:28', 'tile search');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_progress', 'Transformable Importing in Progress...', '2010-02-23 10:08:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_search', 'Transformable Repository Search', '2010-02-23 10:08:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_search_text', 'Search the content repository for additional learning materials.', '2009-07-02 14:15:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tile_technical_format', 'Technical Format', '2004-05-03 13:14:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'times', 'Times', '2009-10-26 15:03:31', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'timestamp', 'Timestamp', '2004-12-06 12:04:30', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'time_spent', 'Time Spent', '2007-07-09 12:32:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'time_zone', 'Time Zone (date below should match your local time)', '2010-03-03 16:32:12', 'appears on the config page');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'time_zones_not_supported', 'Your server is not set-up to support time zones. See the Handbook for more details.', '2006-11-01 13:06:40', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'title', 'Title', '2003-05-22 14:43:54', 'admin course manager column heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'to', 'To', '2003-05-22 14:45:14', 'inbox send message "to" a user');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'to1', 'to', '2003-05-22 14:48:13', 'login form header row login -to- some place');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'toggle_disabled', 'Toggle Disabled', '2003-05-22 15:10:01', 'alt text for menu toggle');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tools', 'Tools', '2006-03-22 12:52:10', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tools_details', 'Details for Tool Usage', '2003-05-22 15:11:15', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tools_manager', 'Add Activity', '2009-10-22 16:17:01', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tool_manager', 'Tool/Activity Manager', '2009-11-19 16:12:28', 'core modules');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tool_man_comment', 'Choose from the tools available in the course, to add activities to this content.', '2009-11-05 12:29:40', 'content tool manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tool_settings', 'Tool Settings', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tool_summary', 'Tools Usage Summary', '2003-05-22 15:11:26', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'top', 'Top', '2003-05-22 15:11:53', 'global alt text for jump to top link/icon');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'topic', 'Topic', '2003-05-22 15:12:45', 'forum thread list column heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'top_20', 'Only the top 20 results have been displayed.', '2005-10-20 10:50:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'top_level', 'Top Level', '2005-03-16 13:36:35', 'content manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'total', 'Total', '2003-05-22 15:14:13', 'instructor course statistic/details, test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'total_votes', 'Total Votes', '2005-03-11 15:51:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'to_2', 'to', '2003-05-22 15:15:16', 'test manager date');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'to_email', 'To Email', '2003-05-22 15:17:02', 'help admin/instructor contact forms');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'to_name', 'To Name', '2003-05-22 15:17:20', 'help admin/instructor contact forms');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tracker', 'Content Tracker', '2005-11-25 18:36:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tracker_none_viewed', 'No content pages have been viewed in this course yet.', '2003-09-15 11:53:06', 'mytracker summary view');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tracker_not_viewed', 'Jump to pages not yet viewed.', '2003-09-13 12:16:10', 'mytracker bypass to not viewed alt text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tracker_pages_total', 'Total pages in this course %s (pages visited: %s.)', '2003-09-13 09:11:43', 'tracker summary pages read');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tracker_percent_read', 'Percentage of pages viewed %s.', '2003-09-13 12:09:57', 'tracker pages read');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tracker_summary_read', 'Summary of pages viewed by user %s.', '2003-09-13 12:30:44', 'tracker summary read');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tracking', 'Tracking', '2003-05-22 15:18:11', 'admin course manager ');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'tracking_all_page_viewed', 'All pages in this course have been viewed.', '2003-09-13 12:37:23', 'mytracker page not viewed');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'training_and_education', 'Training and Education', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'translate', 'Translate', '2004-12-07 13:59:44', 'language manager translate button');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'translate_lang_howto', 'To translate a language you must: <br />\r\n1. Set the AT_DEVEL_TRANSLATE constant in /include/vitals.inc.php to \'1\' <br />\r\n2. Make sure that you have added the new language to the database<br />\r\n3. Select  the new language as the one you want to translate from the \'translate to:\' option at the bottom of the page<br />\r\n4. Use the translate button and translate the new language in a new window<br />', '2004-12-10 16:29:48', 'Language Manager, translation message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'translate_to', 'Translate to:', '2003-05-22 15:19:14', 'footer');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'true', 'True', '2003-05-22 15:19:50', 'test manager question answer option');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'type', 'Type', '2003-05-22 15:20:30', 'test manager questions column heading');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unchecked', 'Un-checked', '2006-06-26 14:56:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unconfirmed', 'Unconfirmed', '2005-04-01 10:39:51', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'underline', 'Underline', '2003-05-22 15:21:31', 'global code picker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'underscore', 'Underscore', '2004-06-22 12:09:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unenroll', 'Un-enroll', '2004-10-15 11:51:25', 'unenroll button in enrollment manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unenrolled', 'Un-enrolled', '2004-10-15 11:50:06', 'unenrolled tab in enrollement manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unenroll_me', 'Unenroll', '2007-12-09 08:57:03', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'uninstall', 'Uninstall', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'uninstall_module_info', 'You are about to <strong>UNINSTALL</strong> module <strong><em>%s</em></strong>.', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unique_visits', 'Unique Visits', '2005-03-01 12:41:13', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'university', 'School/Institution', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unknown', 'Unknown', '2003-06-06 10:41:35', 'links database , file upload progress window');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unknown_error', 'An unknown error occured', '2003-05-22 15:22:55', 'general catch all error message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unlimited', 'Unlimited', '2005-03-01 11:22:02', 'admin course properties & file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unlock_thread', 'Unlock Thread', '2003-05-22 15:24:58', 'forum instructor lock screen');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unmarked', 'Unmarked', '2003-05-22 15:25:33', 'mytests, test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unmarked_label', 'Unmarked (%s)', '2005-05-12 10:25:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unreleased', 'Unreleased', '2005-05-04 13:59:37', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unshared_forums', 'Unshared Forums', '2004-11-05 10:50:02', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unsubscribe', 'UnSubscribe from this thread to cancel receiving notifications via email of new replies.', '2003-11-06 13:47:20', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unsubscribe1', 'Unsubscribe', '2004-12-02 15:32:28', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'until', 'Until', '2006-03-23 11:38:49', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'unvisited_pages', 'You have not viewed the following pages:', '2003-09-13 11:56:50', 'mytracker summary');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'update', 'Update', '2004-11-24 14:28:45', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'updated', 'Updated', '2003-05-22 15:33:15', 'admin course manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'update_gradebook', 'Update ATutor Marks', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'update_list', 'Update List', '2005-05-10 14:31:59', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'update_to', 'Update To', '2005-03-03 12:16:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload', 'Upload', '2003-05-22 15:56:16', 'global upload button/link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_backup', 'Upload Backup', '2008-05-20 12:44:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_content_package', 'Upload a Content Package or Common Cartridge', '2009-11-16 10:54:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_file', 'Upload File', '2006-03-20 14:37:46', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_files', 'Upload files', '2008-07-22 16:43:38', 'Used in filemanager and any place that uses fluid for multiple file upload.');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_icon', 'Upload Custom Course Icon', '2007-11-09 13:05:42', 'Course Properties Custom Icon');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_icon_text', 'This icon will be uploaded to the file manager for this course under the folder \'/custom_icons\'.', '2008-07-28 10:36:03', 'Course Properties Custom Icon Text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_module', 'Upload a module zip file to install it:', '2008-11-05 08:48:45', 'Module installation message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_new_picture', 'Upload new picture', '2007-02-26 17:23:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_patch', 'Upload a zip file to install patch:', '2008-04-21 15:08:55', 'patcher');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_progress', 'File Upload in Progress...', '2003-06-06 10:36:38', 'file upload progress window');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_question', 'Select Question Package to Upload', '2008-09-23 14:00:24', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_test', 'Select Test Package to Upload', '2008-09-23 13:58:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'upload_theme_package', 'Upload a Theme', '2004-10-18 15:09:32', 'Theme Manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'urdu', 'Urdu', '2008-09-09 09:01:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'url', 'URL', '2003-05-22 15:56:36', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'url_to_read', 'URL To Read', '2006-04-13 12:01:15', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'usage', 'Usage', '2005-03-16 13:55:31', 'content manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'usaved_changes_made', 'Unsaved changes made', '2004-01-15 13:30:06', 'editing content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'user', 'User', '2003-05-22 15:59:34', 'links database');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'username', 'Username', '2003-05-22 16:00:31', 'global username label/link text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'users', 'Users', '2003-05-22 16:02:26', 'forum, admin user manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'users_online', 'Users Online', '2003-05-22 16:03:00', 'discussions page text');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'user_contributed_notes', 'User Contributed Handbook Notes', '2005-07-27 12:01:52', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'user_offline', 'Offline', '2005-03-11 16:19:14', 'directory');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'user_online', 'Online', '2005-03-11 16:19:28', 'directory');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'user_type', 'User Type', '2008-10-06 13:41:48', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_alt_to_audio', 'Use Alternative To Audio', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_alt_to_text', 'Use Alternative To Text', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_alt_to_visual', 'Use Alternative To Visual', '2008-09-09 08:56:34', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_as_alternative', 'Use As Alternative', '2010-03-09 16:15:53', 'adapted content');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_captcha', 'Allow the use of CAPTCHA', '2009-06-03 15:33:17', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_customized_head', 'Use Customized Head', '2008-04-29 15:59:06', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_enrol_button', 'Use the button below to enroll in this course.', '2003-05-22 16:03:37', 'enrol screen instruction');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_higher_grade', 'Use higher grade', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_lower_grade', 'Use lower grade', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_parent_theme', 'Use parent category\'s theme.', '2004-08-04 11:34:41', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_system_time', 'Use the system\'s time', '2006-11-01 13:06:01', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'use_visual_editor', '<small style="text-decoration:underline;">(Editor)</small>', '2004-12-08 12:15:36', 'form editor in create test question');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'version', 'Version', '2003-05-22 16:04:54', 'copyright notice in footer');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'version_history', 'Version History', '2008-10-21 15:41:53', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'version_not_match', 'This patch is for ATutor version %s. Does not match with your current ATutor version. The installation of it may break ATutor. Are you sure you want to proceed?', '2008-06-19 13:20:45', 'patcher warning message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'vertical', 'Vertical', '2004-12-01 13:34:28', 'create/edit test question option');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view', 'View', '2004-02-16 15:23:09', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'viewing_errors', 'Viewing Error(s)', '2004-12-06 12:10:05', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'viewing_profile_bugs', 'Viewing Profile Bugs', '2004-12-06 12:03:33', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_all', 'View All', '2005-08-04 09:54:04', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_details', 'View Details', '2005-03-11 11:27:43', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_entire_post', 'View Entire Post', '2003-05-22 16:07:57', 'forum message view');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_groups', 'View Group', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_log', 'View Activity Log', '2005-03-03 10:44:12', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_mark_test', 'View & Mark Test', '2003-05-22 16:08:11', 'test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_message', 'View Message', '2005-03-14 11:48:21', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_profile_bugs', 'View Profile Bugs', '2004-12-06 11:51:58', 'admin/error_logging.php');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_readme', 'View Readme', '2009-07-21 15:31:29', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_responses', 'View Responses', '2004-08-25 11:53:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_results', 'View Results', '2003-05-22 16:09:09', 'mytests, test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_selected_bugs', 'View Selected Bugs', '2004-12-06 12:06:26', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_sub_topics', 'View subtopics', '2005-03-16 13:35:47', 'content manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'view_tracking', 'View Tracking', '2003-05-22 16:09:31', 'tracker');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'visitor_counts', 'Visitor counts', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'visits', 'Visits', '2003-09-13 09:19:09', 'tracker summary read');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'visual', 'Visual', '2008-09-08 14:19:07', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'visual_editor', 'Visual Editor', '2006-11-23 13:31:56', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'vote_to_see_results', 'Vote to see results.', '2004-06-21 16:55:42', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'warning', 'Warning', '2003-05-22 16:09:47', 'text for warning message');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'weblink', 'Web Link', '2009-10-22 16:18:13', 'content editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'websites', 'Websites', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'web_site', 'Web Site', '2003-05-22 16:10:20', 'registration, profile');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'weight', 'Weight', '2003-05-22 16:10:31', 'test manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'welcome_to_atutor', 'Welcome To ATutor', '2003-05-31 15:30:38', 'announcement default heading for new course');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'white', 'White', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'window_auto_close', 'This window will close automatically.', '2003-06-06 10:37:43', 'file upload progress window');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'workspace', 'Workspace', '2006-03-20 14:38:08', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'world_network', 'World Network', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'wrong_answer', 'Wrong Answer', '2003-05-22 16:11:51', 'test manager question editor');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'wrong_request_token', 'Mismatched request token from OAuth server.', '2010-02-23 10:03:11', 'oauth client');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'year', 'Year', '2004-06-24 15:45:35', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'yellow', 'Yellow', '2008-09-09 09:01:13', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'yes', 'Yes', '2005-03-03 10:18:48', 'preferences, admin course manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'yes_delete', 'Yes / Delete', '2003-05-22 16:14:23', 'global delete response option');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'your_applications', 'My Gadgets', '2009-05-27 12:01:11', '');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'your_mark', 'Your Mark', '2008-09-25 16:01:17', 'gradebook');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'you_are_here', 'You are here', '2003-10-02 16:46:28', 'ALT text Global/Local Navigation link to self');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'zip_archive', 'Zip Archive', '2003-05-22 16:20:01', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'zip_file_manager', 'Zip File Manager', '2003-05-22 16:20:14', 'file manager');
-INSERT INTO `language_text` (`language_code`, `variable`, `term`, `text`, `revised_date`, `context`) VALUES ('en', '_template', 'zip_illegal_contents', 'The contents of this archive are listed below. Illegal file types will not be extracted, and file names containing illegal characters will be translated.', '2004-08-10 15:10:04', '');
\ No newline at end of file
+INSERT INTO `language_text` VALUES ('en', '_module','gradebook','Gradebook','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_ADD_FEED','Are you sure you want to add this syndicated feed?','2005-11-15 13:19:26','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_ADD_MODULE','Are you sure you want to install the module in <strong><code>%s</code></strong>?','2005-08-17 12:59:04','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_ADD_TEST_QUESTIONS','Are you sure you want to <em>add</em> the following questions? \r\n<ul>%s</ul>','2004-11-23 12:38:56','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_ALUMNI','Are you sure you want to mark the following users as course alumni: <ul> %s </ul>','2004-11-23 12:17:53','enrollment_manager, make students into alumi');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE','Are you sure you want to delete these items?<br />\r\n\r\n <ul> %s </ul>','2008-05-08 12:19:32','generic delete confirmation msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_ADMIN','Are you sure you want to delete the following administrator?\r\n<br />\r\n<strong>%s</strong>','2008-01-22 09:38:06','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_ASSIGNMENT','Are you sure you want to delete assignment <em>%s</em>?','2006-05-23 13:10:30','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_AUTO_ENROLL','Are you sure you want to <strong>delete</strong> auto enrollment for <strong>%s</strong>','2008-03-10 11:52:57','confirm message when deleting an auto enroll definition');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_CATEGORY','Are you sure you want to delete category  <strong>%s</strong>?','2005-02-17 14:57:18','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_COURSE_1','Are you sure you want to <strong>Delete</strong> the course <strong><em>%s</em></strong>?','2005-03-04 11:27:35','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_COURSE_2','Are you <strong>really really</strong> sure you want to <b>Delete</b> the course <strong><em>%s</em></strong>? Deleted courses can not be recovered.','2005-03-04 11:31:35','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_FAQ_QUESTION','Are you sure you want to delete the question <strong>%s</strong>?','2005-10-19 12:49:55','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_FAQ_TOPIC','Are you sure you want to delete the topic <strong>%s</strong> and its questions?','2005-11-08 13:42:33','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_FEED','Are you sure you want to delete feed <strong>%s</strong>.?','2005-12-07 09:36:25','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_FORUM','Are you sure you want to delete <strong>%s</strong> forum? All messages posted to this forum will be erased.','2005-12-07 09:36:15','deleting a forum');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_GRADE_SCALE','Are you sure you want to <strong>delete</strong> grade scale <strong>%s</strong>?','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_GROUP','Are you sure you want to delete the group: <strong>%s</strong>?','2005-02-21 12:07:05','deletep enrollment group');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_GROUP_TYPE','Are you sure you want to delete group type <em>%s</em> and all its groups?','2006-03-23 11:27:52','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_LANG','Are you sure you want to delete the language ( <strong>%s </strong>)?','2004-11-24 13:19:50','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_LINK','Are you sure you want to delete the link %s?','2005-02-21 16:55:38','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_MSGS','Are you sure you want to delete the selected messages?','2007-02-22 13:09:14','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_MYOWN_PATCH','Are you sure you want to <strong>delete</strong> patch <strong>%s</strong>','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_NEWS','Are you sure you want to delete %s?','2004-11-24 13:37:55','news deletion in editor');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_POLL','Are you sure you want to delete this poll \'%s\'?  It cannot be recovered once deleted.','2004-11-24 14:03:36','editor');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_TEST','Are you sure you want to delete the test/survey <strong><em>%s</em></strong> and any results? The questions, however, will not be deleted.','2004-12-15 10:42:13','Deleting Test');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_TEST_CATEGORY','Are you sure you want to delete test category <strong>%s</strong>?','2005-03-07 11:58:48','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_TEST_FROM_GRADEBOOK','Are you sure you want to <strong>delete</strong> test <strong>%s</strong> from gradebook?','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_THEME','Are you sure you want to delete the following theme: <b> % s </b>','2004-11-23 09:30:03','confirm message for delete theme');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_TOOL_1','Are you sure you want to delete the tool <strong> %s</strong>?','2011-05-27 16:09:45','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_TRACKING','Are you sure your want to delete the content usage data for this course?','2005-08-11 10:08:50','reset tracking session');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_TRANSCRIPT','Are you sure you want to delete the transcript <strong>%s</strong>?','2005-03-30 14:21:00','delete chat transcript');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DELETE_USER','Are you sure you want to delete the following users? Selected instructors who own courses will not be deleted.<strong>%s</strong>','2007-02-19 11:44:45','deleting user from admin');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DIR_DELETE','Are you sure you want to delete the following folder(s) and all their contents? <ul><strong>%s</strong></ul>','2004-12-15 09:59:39','filemanager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_DIR_MOVE','Are you sure you want to move <strong>%1s</strong> to the folder <strong>%2s</strong>?','2005-01-10 10:35:17','filemanager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_EDIT_STATUS','Are you sure you want to change the following users\' status to  <strong>%s</strong>? Status of selected instructors who own courses will not be changed. %s','2007-02-19 11:43:37','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_ENROLL_STUDENT','Are you sure you want to enroll the following users: <ul> %s </ul>','2004-11-23 12:21:00','enrollment manager, enroll confirm');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_FILE_DELETE','Are you sure you want to delete the following file(s)? <ul>%s</ul>','2006-07-05 11:44:15','filemanager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_FILE_EXISTS','The file <strong>%s</strong> already exists. Do you want to overwrite the file?','2005-03-09 16:26:11','filemanager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_FILE_MOVE','Are you sure you want to move <strong>%1s</strong> to the folder <strong>%2s</strong>?','2005-01-10 10:33:21','file_manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_GLOSSARY_REMAINS','Deleting a term will not remove the embedded glossary codes from your content.','2005-02-24 10:34:33','content deletion');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_GRANT_WRITE_PERMISSION','Please grant <strong>write</strong> permission to folder: %s<p><strong>Note:</strong> To change permissions on Unix use <kbd>chmod a+rw</kbd> then the file name.</p>','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_LIST_DELETE','Are you sure you want to delete <strong>%s</strong> Student ID from the master student list?','2005-04-04 15:47:51','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_LOGIN_INSTRUCTOR','<h3>%2$s</h3>\r\nYou will be logged in as the instructor for this course.  Are you sure you want to continue?','2006-04-10 13:12:29','viewing courses from admin');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_NO_ANSWER','You are about to add a question with no correct choice. Continue?','2004-12-06 14:35:10','adding a question without specifying answer');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_PA_DELETE_ALBUM','Are you sure you want to delete the album <strong>%s</strong>? Once deleted, photos can not be recovered.','2010-03-17 16:08:25','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_PA_DELETE_COMMENT','Are you sure you want to delete this comment?','2010-03-17 16:09:08','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_PA_DELETE_PHOTO','Are you sure you want to delete this Photo?','2010-03-17 16:08:50','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_REMOVE_STUDENT','Are you sure you want to remove the following students: <ul> %s </ul>','2004-11-23 12:21:12','removing a student');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_REMOVE_TEST_QUESTION','Are you sure you want to remove this question from this test? Removing the question will not delete it from the question database.','2004-11-25 10:31:52','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_REMOVE_WRITE_PERMISSION','<span style=\"color:red\">For your security, please <strong>REMOVE</strong> write permission on the folder: %s</span><p><strong>Note:</strong> To remove permissions on Unix use <kbd>chmod 755</kbd> then the file or folder name.</p>','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_RESET_ADMIN_LOG','Are you sure you want to delete the Administrator Activity Log?','2005-03-03 10:42:50','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_RESET_ERROR_LOG','Are you sure you want to delete all the error logs?','2005-03-10 15:49:02','error log reset (delete logs folder0');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_RL_DELETE_READING','Are you sure you want to delete this reading: <strong>%s</strong>?','2006-10-04 10:48:51','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_RL_DELETE_RESOURCE','Are you sure you want to delete this resource: <strong>%s</strong>?<br/>Note: Any readings that use this resource will also be deleted.','2006-10-04 10:48:36','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_STUDENT_GROUP','Are you sure you want to add the following users to group \'%s\'? <ul> %s </ul>','2005-06-02 12:07:05','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_STUDENT_REMOVE_GROUP','Are you sure you want to <strong>remove</strong> the following users from group \'%s\'? <ul> %s </ul>','2005-06-02 12:06:56','Enrollment');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_SUB_CONTENT_DELETE','This content page has sub content. If you delete this page all its sub pages will be deleted as well.<br />','2004-11-24 13:31:34','content deletion');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_UNENROLL','Are you sure you want to un-enroll from <strong>%s</strong>?','2005-03-24 12:43:34','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_UNENROLL_PRIV','Are you sure you want to un-enroll the following users (the users will have their roles and privileges removed): <ul> %s </ul>','2004-11-23 12:23:22','enrollment manager, unenrolling a TA');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_CONFIRM_UNENROLL_STUDENT','Are you sure you want to un-enroll the following students: <ul> %s </ul>','2004-11-23 12:21:36','enrollment manager, confirm unenroll');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ACCESS_DENIED','You do not have permission to access this area.','2005-06-15 15:13:59','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ACCOUNT_DISABLED','That account has been disabled.','2005-04-01 10:30:12','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ADMIN_EDIT_OWN_ACCOUNT','To edit your own account use the <a href=\"mods/_core/users/admins/my_edit.php\">My Account</a> page.','2010-03-09 14:25:28','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ALREADY_ENROLED','You have already made a request to enroll in this course and you have not yet been approved by the instructor. You will be notified when your request has been approved.','2009-09-17 14:47:14','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ALREADY_INSTALLED','Selected item appears to have been installed.','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ALREADY_OWNED','You own this course, and cannot enroll.','2004-11-26 14:30:22','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ALREADY_UNINSTALLED','Selected item appears to have been uninstalled. Module directory does not exist.','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ALTERNATIVE_ALREADY_DECLARED','The file you selected has already been declared as an alternative to the selected primary resource.','2008-09-08 15:25:02','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ALTERNATIVE_NOT_DEFINED','You must select an alternative from files available in the File Manager to the right.','2009-12-01 11:02:01','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ASSIGNMENT_CUTOFF','The assignment cut-off date has past. Submissions are no longer accepted.','2006-03-20 14:41:46','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_BACKUP_RESTORE','Restore failed - file is not a valid backup. Backups older than version 1.3 are not supported.','2005-11-29 14:33:56','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_BACKUP_UNSUPPORTED_GREATER_VERSION','Backups created from versions of ATutor greater than this version are not supported.','2005-05-11 15:56:50','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_BAD_DATE','That date is not valid.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_BAD_FILE_TYPE','Unsupported file type. Plain Text or HTML files only.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_BAD_FOLDER_NAME','The folder name contains illegal characters. You may choose from alphanumeric characters and underscores, dashes or periods.','2005-01-10 13:13:55','filemanager, foilder with illegal chars');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CACHE_DIR_BAD','Cache dir cannot be created. Cache disabled. See the configuration options to either disable or fix the problem.','2003-05-27 13:10:53','global');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CACHE_DIR_NOT_EXIST','Cache directory does not exist or is not writable. Create it and set write permissions to make the directory writable by the system\'s Web server user. (e.g. chmod a+rwx cache)','2010-03-04 14:41:51','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_BE_EMPTY','Search field cannot be empty.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_CONNECT_SERVER','Failed to connect to server: %s','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_CREATE_DIR','Cannot create content directory.','2003-10-15 12:20:51','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_DELETE_OWN_ACCOUNT','You cannot delete your own account.','2005-03-03 10:59:44','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_OPEN_DIR','Unable to open content directory. You may try to <a href=\"mods/_core/file_manager/new.php\">create it now</a>.','2010-03-09 14:26:18','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_OPEN_FILE','Cannot open the file: <b> %s </b>','2004-10-18 14:38:00','Theme Manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_OVERWRITE_FILE','Cannot override file.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_READ_FILE','Cannot read from file: <b> %s </b>','2004-11-19 13:00:03','admin/error_logging.php');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_RENAME','File or directory cannot be renamed. Either a file or directory with that name already exists, the original file or directory does not exist, or the file or directory name has not changed.','2004-08-20 12:05:15','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_UNINSTALL_MANUAL_MODULE','This module needs to be uninstalled manually instead of using the ATutor module installer. Please uninstall it manually.','2008-10-21 15:41:53','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_UNZIP','Can NOT unzip the uploaded file.','2008-04-21 15:08:55','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANNOT_WRITE_FILE','Cannot write to file: <b> %s </b>','2004-10-18 14:39:10','Theme Manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CANT_DELETE_GROUP','You cannot delete this group.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CHAT_TRAN_REJECTED','Transcript filename rejected. Please ensure that it is  alphanumeric and contains no spaces.','2003-06-02 13:47:39','achat');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CHOICES_EMPTY','Enter at least two answer choices.','2005-03-08 15:41:49','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CHOOSE_UNINSTALLED_PATCH','Please choose an uninstalled patch.','2008-04-21 15:08:55','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_COMBINE_TESTS','\"<strong>%1$s</strong>\" cannot be combined because the following students have taken it more than once:<br />\r\n%2$s.','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CONFIG_NOT_WRITEABLE','It is not possible to edit these settings because the configuration file is locked for security reasons. If you want to make changes, you need to unlock the config.inc.php file first by changing its permissions with the command <kbd>chmod a+rw config.inc.php</kbd>.','2005-03-03 10:14:48','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CONFIRM_BAD','Your email address and account could not be confirmed.','2005-05-31 12:55:25','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CONTACT_INFO_NOT_FOUND','Contact Support is not available, because an email address has not been specified.','2005-03-17 11:33:38','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_COURSE_DIR_NAME_INVALID','The course directory name is invalid. It may contain only letters, numbers, and underscores, and may not contain spaces.','2008-10-06 13:18:28','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_COURSE_DIR_NAME_IN_USE','The course directory name is already in use. Please try another.','2008-10-06 13:19:17','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_COURSE_ENDED','This course ended on %s.','2007-07-16 11:53:27','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_COURSE_NOT_RELEASED','This course can only be accessed on %s.','2006-04-10 14:28:27','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CREATE_MASTER_USED','The Student ID you have entered already belongs to another user. If you wish to over-write this association with the new account, use the over-write checkbox.','2006-06-12 15:39:43','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_CURL_NOT_INSTALLED','The curl library needs to be installed for gadgets to be added.  Please contact your administrator for more information.','2009-06-09 14:44:50','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_DB_NOT_UPDATED','Information could not be added to the database.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_DIR_NOT_DELETED','Cannot open directory to be deleted.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_DIR_NOT_EXIST','Directory <strong>%s</strong> does not exist. Please create it.','2005-09-22 14:08:05','file manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_DIR_NOT_WRITEABLE','Directory <strong>%s</strong> is not writeable. On Unix issue the command <kbd>chmod a+rw</kbd> on the directory.','2005-09-22 14:22:24','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_DIR_NO_PERMISSION','Cannot delete folder. You may not have premission, or it may not be empty.','2003-05-22 12:20:14','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_DISABLE_CORE_MODULE','Core modules cannot be disabled.','2005-08-25 14:00:13','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_DISABLE_MISSING_MODULE','You cannot disable a missing module. To continue managing this module you must first restore its directory.','2005-10-05 16:22:01','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_DISABLE_PARTIALLY_UNINSTALLED_MODULE','You cannot disable a partially uninstalled module. To continue managing this module you must first restore it.','2008-10-21 15:41:53','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_DOB_INVALID','Date of birth has invalid format.','2004-06-24 12:53:34','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_EMAIL_EXISTS','An account with that email address already exists.','2005-03-01 11:36:57','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_EMAIL_INVALID','Email address was invalid.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_EMAIL_MISMATCH','Email addresses do not match. Please re-type them.','2009-11-04 14:12:12','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_EMAIL_NOT_FOUND','No account found with that email address.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_EMPTY_FIELDS','The following required field(s) are empty:<br />\r\n%s.','2006-10-05 15:51:52','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_EMPTY_ZIP_FILE','Downloaded zip file is empty.','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_END_DATE_INVALID','That end date is not valid.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ENROLLMENT_NONE_FOUND','There is no one to export.','2006-06-27 11:53:26','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FEED_NO_CONTENT','The feed either cannot be found at that URL or is not valid.','2005-11-23 10:59:56','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FILE_EMPTY','You did not select a file to import or the file was empty.','2004-12-09 14:44:43','enrollment manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FILE_ILLEGAL','%s files are not allowed.','2003-05-22 11:52:08','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FILE_MAX_SIZE','The file exceeded the maximum allowable size limit of %s.','2004-05-06 13:18:19','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FILE_NOT_DELETED','Error deleting file. Cannot delete file.','2004-11-08 16:33:12','file manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FILE_NOT_EXIST','The selected file does not exist.','2005-01-07 09:51:45','filemanager, fiule to be edited does not exist');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FILE_NOT_FOUND','File not found.','2006-03-20 14:45:12','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FILE_NOT_SAVED','The file cannot be saved.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FILE_NOT_SELECTED','You did not select a file to upload.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FILE_TOO_BIG','The file size exceeds the limit of <strong>%s </strong>. Contact your ATutor Administrator to have this limit increased.','2005-01-15 18:49:53','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FIRST_LAST_NAME_UNIQUE','First, second, and last names combination must be unique.','2006-03-27 14:55:34','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FOLDER_NOT_CREATED','The folder \" %s \" could not be created.','2006-06-02 13:43:53','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FOLDER_NOT_EXIST','Folder not found.','2006-03-20 15:37:24','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FORUM_DENIED','You do not  have permission to post in this forum.','2005-08-10 13:48:14','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FORUM_NOT_FOUND','Forum can not be found.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FORUM_NO_DEL_SHARE','You do not have permission to delete a shared forum.','2004-12-10 11:10:25','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FORUM_NO_EDIT_SHARE','You do not have permission to edit a Shared forum.','2004-12-10 11:15:41','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_FORUM_NO_SUBSCRIBE','Cannot subscribe to the requested thread. Only subscription to the top-level post is allowed.','2004-12-10 13:44:57','forum/subscribe.php');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GADGET_ADDED_FAILURE','The following error occured while adding a gadget:\r\n%s','2009-06-22 11:19:44','gadget error');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GADGET_DELETED_CANNOT_BE_EMPTY','You need to select at least one application to delete.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GENERAL','This is a search and %s ATutor error.','2003-05-22 11:52:28','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GOOGLE_KEY_INVALID','Invalid key.','2005-11-30 14:35:03','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GOOGLE_KEY_MISSING','A Google Key must be entered in order for the enabled Web Search to be available in courses. Enter this key by going to Google Key under the Configuration tab.','2005-11-30 14:40:38','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GOOGLE_QUERY_FAILED','Query failed.','2005-10-20 10:52:04','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GROUP_CREATION_FAILED','Group creation failed.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GROUP_EDIT_FAILED','Group edit failed.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GROUP_HAS_BEEN_REMOVED','Group has been removed.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GROUP_NOT_FOUND','Group not found.','2004-11-25 16:03:01','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_GROUP_NO_STUDENTS','There are no students to create groups for.','2006-03-22 13:33:24','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_HAND_IN_FOLDER','Folders cannot be handed in.','2006-03-20 15:43:06','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ID_ZERO','Content ID was zero, or was missing.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_IMPORTDIR_FAILED','Unable to create import directory.','2005-07-20 14:02:57','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_IMPORTDIR_IMS_NOTVALID','The file does not appear to be a valid ZIP file.','2005-06-27 11:37:47','IMS file is not a ZIP file.');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_IMPORTFILE_EMPTY','The import file must not be empty.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_IMPORT_CARTRIDGE_FAILED','Import failed. Does not appear to be a valid content package or common cartridge:\r\n\r\n%s','2009-12-03 09:55:01','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_IMPORT_ERROR_IN_ZIP','Zip file could not be extracted because: <b> %s </b>','2006-06-28 10:30:50','theme manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_IMPORT_FAILED','Import Failed','2005-01-15 09:50:40','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_IMPORT_NOT_PROPER_FORMAT','The selected file does not appear to be a valid theme package.','2004-12-09 11:34:27','admin/themes/import.php');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_IMS_AUTHORIZATION_NOT_SUPPORT','Import failed.  ATutor does not support package authentications.','2009-12-10 12:19:12','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_INCOMPLETE','Please fill out the forms as directed below','2004-10-18 11:14:50','enrollment Manager, incomplete info in create list');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_INCORRECT_FILE_FORMAT','File is in the incorrect format. Review line %s of your course list file and make sure it follows format guidelines.','2006-06-28 10:43:48','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_INST_INFO_NOT_FOUND','Instructor information cannot be found.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_INVALID_LINK','The link is either invalid or expired.','2006-05-10 09:08:50','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_INVALID_LOGIN','Invalid login/password combination.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_INVALID_URL','Localhost is not a valid URL','2004-11-05 10:22:37','AChecker');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ITEM_NOT_FOUND','Item not found.','2006-10-04 10:52:48','generic something not found msg.');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_JOIN_REQUEST_FAILED','Request to join group failed. Perhaps you have already requested to join this group.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LANG_EXISTS','The language pack you are trying to import already exists. Language already exists. You can edit language properties by following the <em>translate</em> in the sub menu above.','2007-02-06 15:44:17','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LANG_IMPORT_FAILED','Language import failed.','2003-06-06 11:23:51','admin language manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LANG_NOT_COMPLETE','The language pack you are trying to import has not been marked as complete and published. To use incomplete language packs you must enable <em>translating</em> using the instructions at the bottom of this page.','2005-11-30 14:49:00','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LANG_WRONG_VERSION','The language pack you are trying to import is not compatible with this version of ATutor. If you still want to import this language pack you must enable <em>translating</em> following the instructions at the bottom of this page.','2005-11-30 14:50:49','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LAST_LANGUAGE','Cannot delete the last language. At least one language must be available.','2006-06-29 16:50:59','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LINK_CAT_EMPTY','Cannot add a link because there are no categories.','2005-03-09 13:05:25','adding link but no cats');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LINK_CAT_NOT_EMPTY','Link category cannot be deleted because it contains sub-categories and/or links.','2005-02-22 15:22:44','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LOGIN_CHARS','Your Login Name must only contain letters, numbers, periods, or underscores (_\'s).','2006-07-11 10:40:57','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LOGIN_ENROL','You must be logged in to enroll in a course.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LOGIN_EXISTS','That login already exists, please choose another.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LOGIN_TO_POST','You must be logged in to post.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_LOG_NOT_RESET','The error log could not be reset.','2005-03-10 15:54:03','error logging');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_MAX_LOGIN_ATTEMPT','Maximum login attempts has been reached. Login has been temporarily disabled for 1 hour.  Please try again later.','2009-06-17 11:59:49','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_MAX_LOGIN_ATTEMPT_1','Invalid username or password. You have one more attempt before the login page is disabled.','2009-06-26 16:37:13','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_MAX_LOGIN_ATTEMPT_2','You have entered an unrecognized login and password combination. You have two more attempts before the login page is disabled.','2009-06-26 16:35:44','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_MAX_STORAGE_EXCEEDED','Adding this file exceeds the maximum course storage limit.','2003-10-03 16:00:08','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_MISSING_THEMEXML','Cannot import. The import package is missing a vital component: themes.xml. Check that the theme package is for version 1.4.3 or above.','2004-12-09 11:59:21','admin/themese/import.php');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_MODULE_INSTALL','The following error(s) were encountered when trying to install this module:\r\n<ul>%s</ul>','2005-10-11 10:48:49','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_MODULE_UNINSTALL','The following error(s) were encountered when trying to install this module:\r\n<ul>%s</ul>','2008-10-21 15:41:53','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_MYSQL_FAILED','Connection to MySQL failed.','2009-12-01 11:07:33','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NEED_FILENAME','Filename was left empty. Need a filename to create new file.','2004-11-09 16:19:24','file manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NODELETE_USER','Cannot delete this user because they own courses. Delete the courses first.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NOT_CONFIRMED','Your account\'s email address has not yet been confirmed.  Please check your email account for a confirmation message.  Please contact us if you do not receive it.','2006-06-21 10:59:56','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NOT_IN_ANY_GROUPS','You are not in any groups.','2006-04-11 13:34:20','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NOT_OWNER','You do not own this course or it does not exist.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NOT_RELEASED','This content has not yet been released. %s','2003-05-22 11:52:38','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_ACTION_SELECTED','No action selected.','2007-02-21 14:12:39','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_ASSIGNMENTS_FOUND','No assignments are due in this workspace. You might try another workspace.','2007-12-13 16:12:07','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_BOXES_CHECKED','You must select at least one checkbox.','2010-04-12 16:39:34','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_CHILD_AS_PARENT','Cannot move the content to be the child of its own children.','2009-09-16 13:14:12','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_CONTENT_SPACE','Not enough space to import content directory. %s KB over the limit.','2003-10-03 15:58:38','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_COURSE_FLOAT','Invalid Maximum Course Float value.','2005-06-20 10:44:45','Admin did not specify a float for course size.');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_FAQ_TOPICS','You must first add a topic.','2005-10-19 12:44:36','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_IMSMANIFEST','IMS manifest file is missing. This does not appear to be a valid IMS content package or common cartridge.','2009-11-17 12:38:14','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_IMS_BACKUP','This file appears to be a <a href=\"mods/_core/backups/\">course backup</a> rather than a content package.','2010-03-09 14:27:08','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_ITEM_SELECTED','You must select an item before using a button.','2005-03-07 16:36:43','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_LANGUAGE','Selected language is not supported.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_LOGS_SELECTED','You must select at least one profile to create a bundle.','2004-11-25 11:18:19','admin/error_logging_details.php');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_LOG_SELECTED','You did not select a log file.','2004-11-23 15:59:57','admin/error_logging_details.php');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_MEMBERS','No users found.','2005-05-18 12:43:40','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_PROFILE_SELECTED','You did not select a profile.','2004-11-23 16:01:27','admin/error_logging_details.php');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_QUESTIONS','No questions were found for this test.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_QUESTIONS_SELECTED','You did not select any questions to add to this test.','2004-11-23 11:56:45','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_SELF_AS_PARENT','Cannot move the content to be its own child.','2009-09-16 13:14:00','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_SPACE_LEFT','There is no more space in this course to extract this archive.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_STUDENT_SELECTED','You did not select any students.','2006-06-27 12:18:13','enrollment manager, no students selected');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_NO_SUCH_USER','The user you selected does not exist.','2005-03-17 15:34:30','veiwing profile but no such user');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_ONLY_UNINSTALL_EXTRA_MODULE','Only modules with type \"Extra\" can be uninstalled.','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PACKAGE_DIR_FAILED','Problem with Package Directory.','2005-05-17 12:02:28','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PAGE_NOT_FOUND','Page cannot be found.','2005-09-19 12:18:06','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PASSWORD_CHARS','The password must contain a combination of letters, and numbers or symbols.','2010-10-07 09:26:30','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PASSWORD_LENGTH','Password must be at least 8 characters long.','2006-04-10 11:43:46','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PASSWORD_MISMATCH','Passwords did not match.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PATCH_ALREADY_INSTALLED','The selected patch is already installed.','2008-04-21 15:08:55','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PATCH_DEPENDENCY','Due to patch dependency, please install the listed patches before installing this patch: %s','2008-04-21 15:08:55','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PATCH_XML_NOT_FOUND','Patch XML file is not found.','2008-04-21 15:08:55','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_ADD_COMMENT_FAILED','Comment could not be added due to an internal error.  Please try again.','2010-03-17 16:05:53','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_ADD_PHOTO_FAILED','Photo could not be added due to an internal error.  Please try again.','2010-03-17 16:06:23','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_CREATE_ALBUM_FAILED','Album could not be created due to an internal error.  Please try again.','2010-03-17 16:06:36','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_EDIT_ALBUM_FAILED','Album could not be edited due to an internal error.  Please try again.','2010-03-17 16:06:49','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_EDIT_PHOTO_FAILED','Photo could not be edited due to an internal error.  Please try again.','2010-03-17 16:07:01','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_EMPTY_COMMENT','Comment can not be empty.','2010-03-17 16:06:10','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_EMTPY_ALBUM_NAME','Album name can not be empty.','2010-03-17 16:07:15','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_EXCEEDED_MAX_USAGE','You have exceeded the maximum allowable memory usage for the photo album.','2010-03-17 16:08:06','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_MEMORY_INPUT_ERROR','Invalid input.  Please enter a valid Integer.','2010-03-17 16:07:40','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_MEMORY_SQL_ERROR','Preferences were not updated due to an internal error.  Please try again.','2010-03-17 16:07:52','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_PA_PHOTO_NOT_FOUND','Photo can not be found.','2010-03-17 16:07:27','photo album');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_POLL_QUESTION_MINIMUM','The poll must have at least two questions.','2005-07-20 10:12:40','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_QTI_WRONG_PACKAGE','Import failed.  Please note that ATutor only supports QTI 1.2.1 import.','2008-12-15 10:04:05','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_RAND_TEST_Q_WEIGHT','The non-required questions must all have the same weight.','2007-07-09 15:03:55','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_REGISTER_MASTER_USED','The student ID and PIN combination you provided is either being used or is incorrect.','2005-04-04 13:01:33','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_REMOVE_WRITE_PERMISSION','Please remove write permission from the listed files.','2008-04-21 15:08:55','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_RESOURCE_NOT_DEFINED','You did not select a resource to add.','2008-09-08 14:44:09','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_RESTORE_TOO_BIG','The course is too small to restore this backup into.','2004-10-15 16:42:23','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_RESULTS_NOT_RELEASED','You are not permitted to view these test results at this time.','2004-12-15 10:13:06','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SAME_LOCATION','The content is already at the moved location.','2009-09-16 13:14:24','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SAVE_BEFORE_PROCEED','Please save the content before proceeding to define \"Adapted Content\".','2010-06-10 13:58:40','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SCORM_SETTINGS_SAVE_FAILED','Save SCORM settings failed. This could mean the SCORM directory has not been setup properly. See the SCORM module readme for details.','2009-11-04 14:13:40','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SCO_DIR_NOT_EXIST','The SCORM RTE directory does not exist. Please create a directory called <em>sco</em> in your installations top directory (example: <code>server.com/ATutor/sco</code>).','2005-05-10 10:58:58','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SCO_DIR_NOT_WRITEABLE','The SCORM RTE directory is not writeable. Please execute the command <code>chmod a+rwx sco</code> while in ATutor\'s top directory.','2005-05-10 11:00:08','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SCO_DISABLED','The SCORM 1.2 RTE has not been enabled by the Administrator.','2005-05-10 11:06:09','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SEARCH_TERM_REQUIRED','You must specify at least one search term.','2003-08-22 12:03:29','search form');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SECRET_ERROR','Letters or numbers entered from the CAPTCHA image are incorrect. Try again.','2009-07-16 09:01:08','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SELECT_ONE_ITEM','Only <em>one</em> item must be selected.','2007-02-21 14:07:53','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SENDING_ERROR','There was an error sending the email message.','2005-01-18 13:34:23','mail failed to be sent');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SEND_ENROL','You can only send a message to other members after you enroll in a course.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SEND_MEMBERS','You can only send a message to others who are enrolled in the same courses as you or your contacts.','2009-06-12 11:37:40','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SESSION_COOKIES','Session cookies must be enabled in your browser to login.','2005-07-22 13:04:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_SOCIAL_SETTINGS_NOT_SAVED','Social networking settings were not saved.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_START_DATE_INVALID','That start date is not valid.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_STUD_INFO_NOT_FOUND','Student information cannot be found.','2003-05-16 13:42:17','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_TERM_EXISTS','The term <strong>%s</strong> already exists.','2004-07-22 16:55:03','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_THEME_NOT_DELETED','The theme could not be deleted because it is either the current default theme or the original default theme.','2005-05-10 09:27:02','theme manager deleting theme');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_THEME_NOT_DISABLED','Theme cannot be disabled because it is currently the default theme.','2005-05-09 14:27:23','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_TILE_AUTHENTICATION_FAIL','The AContent authentication fails at:<br />%s.','2010-06-25 12:46:10','tile search');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_TILE_IMPORT_FAIL','AContent lesson import failed at:<br />%s','2010-06-25 12:46:28','tile search');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_TRANSCRIPT_ACTIVE','You may not delete an active transcript.','2005-05-16 12:46:32','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_TRANSFORMABLE_URI_INVALID','The AContent URL appears to be invalid. It should point to the base directory of your AContent installation, like:\r\n\r\nhttp://www.mysite.com/AContent/','2010-09-20 11:58:40','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_UNKNOWN','An undetermined error has occurred.','2003-05-16 14:24:59','error msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_USER_NOT_FOUND','User not found.','2005-03-09 15:56:27','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_ERROR_WRONG_PASSWORD','Incorrect password.','2006-05-11 11:34:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ACCEPT_GROUP_INVITATION','Invitation to join group was accepted.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ACCEPT_GROUP_REQUEST','Request to join group was accepted.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ACCOUNT_APPROVED','You have successfully upgraded to an instructor account.','2004-11-05 10:25:41','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ACCOUNT_CONFIRMED','Account has been confirmed.','2005-03-30 11:56:59','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ACTION_COMPLETED_SUCCESSFULLY','Action completed successfully.','2006-09-28 11:26:07','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ADD_TEST_INTO_GRADEBOOK','\"<strong>%1$s</strong>\" cannot be added into gradebook because the following students have taken it more than once:<br />\r\n%2$s.','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ADMIN_CREATED','Administrator account created successfully.','2005-03-03 16:12:49','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ADMIN_DELETED','Administrator account deleted successfully.','2005-03-03 10:49:25','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ADMIN_LOG_RESET','Administrator Activity Log has been reset successfully.','2005-03-03 10:43:36','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ALREADY_ENROLLED','The following students are already enrolled: <ul> %s </ul>','2005-06-23 12:50:58','enrollment manager, students added were alread enrolled');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ALREADY_REQUESTED','You have already made a request to enroll in this course and you have not yet been approved by the instructor. You will be notifed when your request has been approved.','2005-03-17 12:55:24','private enroll, already requested approval once');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ALTERNATIVE_ADDED','Alternate added. Be sure to define the resource type for the alternative.','2008-09-08 14:43:50','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ALTERNATIVE_DELETED','Alternative was successfully removed.','2008-09-08 14:56:39','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_APPROVAL_PENDING','Your request has been made. You will be notified when your request has been approved.','2009-09-17 14:47:54','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ARCHIVE_EXTRACTED','Archive has been extracted successfully.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ASSIGNMENT_ADDED','Assignment was successfully added.','2006-04-20 14:42:13','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ASSIGNMENT_HANDED_IN','Assignment files submitted successfully.','2006-03-20 14:35:53','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ATUTOR_SOCIAL_LMS','ATutor is now configured as a learning management system (LMS) with social networking as a module.','2009-07-17 14:20:59','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ATUTOR_SOCIAL_ONLY','ATutor is now configured as a social networking environment. Learning management tools are turned off.','2009-07-17 14:22:01','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ATUTOR_UPDATE_AVAILABLE','An updated version of ATutor is available! View the <a href=\"http://atutor.ca/atutor/change_log.php\">Change Log</a> for details.','2005-11-21 12:36:30','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_AUTO_DISABLED','Auto-Login has been disabled','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_AUTO_ENABLED','Auto-Login has been enabled. Next time you enter ATutor using this computer, you will bypass the login screen. ','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_BASICLTI_DELETED','External tool removed as a Learning Activity from this content page.','2011-05-27 16:09:15','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_BASICLTI_SAVED','External tool added as a Learning Activity for this content page.','2011-05-27 16:08:58','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_BLOG_SUBSCRIBED','Subscribed to blog feed.','2009-06-24 11:57:05','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_BLOG_UNSUBSCRIBED','Unsubscribed to blog feed.','2009-06-24 11:57:20','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_CANCELLED','Successfully cancelled without any changes.','2003-12-10 10:40:21','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_CLOSED','Successfully closed','2004-05-03 11:26:52','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_CONFIG_SAVED','System preferences have been saved successfully. A backup of the old configuration file was created and saved as %s (it\'s in your content directory).','2005-03-29 15:22:14','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_CONFIRMATION_SENT','An email confirmation message has been sent.','2005-03-22 12:07:10','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_CONFIRM_EMAIL','An email message has been sent to the new email address you specified. You must follow the instructions in that email for the changes to take effect.','2006-05-11 15:55:32','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_CONFIRM_EMAIL2','An email with instructions on retrieving your password has been sent.','2006-05-10 10:23:41','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_CONFIRM_GOOD','Your email address has been confirmed successfully.','2005-04-11 10:29:29','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_CONTENT_DELETED','Content was successfully deleted','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_CONTENT_DIR_CREATED','Content directory created successfully.','2003-10-15 12:20:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_COURSE_DEFAULT_FSIZE','The \'Max File Size\' was set to \'Default\' as the entered file size was either empty or negative.','2003-10-14 16:13:40','course properites: file size was set to default');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_COURSE_PREFS_SAVED','Course preferences were saved','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_COURSE_PROPERTIES','Course properties were successfully updated.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_COURSE_REMOVED','Course was removed successfully.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_DIRS_MOVED','Directories successfully moved.','2004-11-10 14:12:11','file manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_DIR_DELETED','Folder was successfully deleted.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ENROLLED','The following unique accounts were successfully added to the course list: <ul> %s </ul>','2005-06-23 12:51:35','enrollment manager, confirm enrollmnet');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_ERROR_LOG_RESET','The error log was reset successfully.','2005-03-10 15:53:27','error logging');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_EXPORT_CANCELLED','Export cancelled successfully.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILES_MOVED','Files moved successfully.','2006-03-20 16:10:58','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILEUPLOAD_DONE','File(s) uploaded.','2008-07-22 16:45:58','Files uploaded');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILE_EDITED','File successfully edited.','2006-08-29 11:07:02','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILE_EDITED_SUCCESSFULLY','File edited successfully.','2006-03-20 15:05:28','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILE_EXISTS','The file <strong>%1$s</strong> already exists. The newly uploaded file was saved as <strong>%2$s</strong>. <a href=\"mods/_core/file_manager/index.php?overwrite=%2$s%5$spathext=%3$s%5$spopup=%4$s\">Overwrite</a> the old existing file with the newer one.','2010-03-09 14:27:41','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILE_OVERWRITE','File overwrite successful.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILE_PASTED','The file was successfully pasted into the textarea below. <strong><em>Save to apply changes</em></strong>, or Cancel to return to the previously saved content.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILE_SAVED','The file was successfully saved as <strong>%s</strong>','2005-01-10 09:35:48','file manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILE_UPLOADED','File was successfully uploaded.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FILE_UPLOADED_ZIP','File was successfully uploaded. You may now <a href=\"mods/_core/file_manager/zip.php?pathext=%1$s%4$sfile=%2$s%4$spopup=%3$s\">extract</a> the file.','2010-03-09 14:28:13','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FOLDER_EDITED_SUCCESSFULLY','Folder edited successfully.','2006-03-20 15:42:30','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FORUM_POSTING','To post messages to the new forum, log into ATutor as regular users or instructor.','2004-11-21 10:08:55','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FORUM_SUBSCRIBED','You have successfully subscribed to the <strong>%s</strong> forum. Messages posted to this forum will be delivered to your registered email address. View your profile to modify your email address.','2004-12-02 15:04:51','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_FORUM_UNSUBSCRIBED','You have successfully unsubscribed from the <strong>%s</strong> forum. Messages posted to this forum will no longer be delivered to your email address.','2004-12-03 17:25:43','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GADGET_ADDED_SUCCESSFULLY','Gadget was successsfully added.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GADGET_REMOVED_SUCCESSFULLY','Gadget was successsfully removed.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GADGET_SETTINGS_SAVED','Gadget settings have been saved.','2009-05-28 17:21:14','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GOOGLE_KEY_SAVED','Google key saved successfully.','2005-10-20 11:07:29','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GRADEBOOK_UPDATED','The following grades have been successfully updated into gradebook: <ul> %s </ul>','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GROUP_CREATED','Group was successfully created.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GROUP_DELETED','Group deleted.','2004-11-25 15:48:40','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GROUP_EDITED_SUCCESSFULLY','Group edited successfully.','2006-03-23 11:09:18','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GROUP_JOINED','Group successfully joined.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GROUP_MEMBERS_SAVED','Group members saved successfully.','2006-04-17 11:43:39','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GROUP_TYPE_DELETED','Group was successsfully deleted.','2006-05-23 15:33:56','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GROUP_TYPE_EDITED_SUCCESSFULLY','Group type edited successfully.','2006-03-23 11:18:02','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_GROUP_UPDATED','Group updated successfully.','2004-11-25 15:49:09','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_IMPORT_CANCELLED','Import cancelled successfully.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_IMPORT_LANG_SUCCESS','New language was successfully imported. You may enable the language using the Translate selection menu below.','2010-10-07 08:52:40','admin language manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_IMPORT_SUCCEEDED','Import was successful.','2008-10-02 13:48:16','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_INVITATION_SENT','Invitation successfully sent. Person will be added when the invitation has been accepted.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_JOIN_REQUEST_SENT','Request to join group has been sent. You will be added to the group when your request has been approved.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_LANG_ADDED','New language was successfully created. Use the language selector to choose the new language, then beginning adding translated terms. Translation tools are enabled in include/vitals.inc.php','2004-11-20 20:14:55','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_LANG_DELETED','Language was successfully removed.','2003-06-05 19:38:01','admin language manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_LANG_UPDATED','Language successfully updated.','2005-04-26 16:04:36','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_LEFT_GROUP_SUCCESSFULLY','Successfully removed from group.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_LINK_ADDED','Link added successfully.  Link will become visible if approved.','2005-02-23 12:07:59','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_LOGIN_SUCCESS','You have logged in successfully. Welcome back!','2005-02-15 17:07:45','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_LOGOUT','You have successfully been logged out.','2003-10-29 10:00:12','after logging out');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MASTER_LIST_NO_CHANGES','No changes were done to the Master Student List.','2005-06-16 12:32:19','When action to master list yields no changes');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MASTER_LIST_UPLOADED','Master Student List has been updated successfully.','2005-04-04 16:12:52','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MEMBERS_ALUMNI','Student has been assigned alumni status.','2004-12-02 11:42:06','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MEMBERS_ENROLLED','The selected students were successfully enrolled in the course.','2004-12-02 11:42:37','enrollment manager, confirm enrollment');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MEMBERS_REMOVED','The selected users were successfully removed from the course','2004-10-18 10:58:17','enrollment manager, confirm removal');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MEMBERS_UNENROLLED','The selected users were successfully un-enrolled from the course','2004-10-18 10:59:09','enrollemnt manager, confrm unenrollment');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MOD_INSTALLED','Module successfully installed. Select the installed module from the list below, and press <strong>Enable</strong> to turn it on.','2008-10-24 14:05:27','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MOVED_FILES','Files successfully moved.','2004-11-10 14:11:19','file manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_NOT_ENROLLED','The following students were not enrolled: <ul> %s </ul>','2005-06-23 12:50:31','When a student was not enrolled when imported/created.');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_NOW_ENROLLED','You are now enrolled in the %s course. You may enter the course at any time. To un-enroll, select \"Un-Enroll\" next to the course listing in My Courses.','2010-06-02 10:39:43','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_NO_A4A_FOR_PLAIN_TEXT','Defining adapted content is only available for content type \"html\".','2010-10-18 14:52:08','adapted content');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_NO_RESOURCES','No resources found in this content page.','2010-10-18 14:49:41','adapted content');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PACKAGES_IMPORT_SUCCESS','The packages<ol> %s </ol>were imported successfully.','2005-05-17 12:03:34','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PACKAGE_IMPORT_SUCCESS','The package &quot;%s&quot; was imported successfully.','2005-05-17 12:03:10','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PASSWORD_CHANGED','Password changed successfully. You may now login using the new password.','2006-05-09 14:22:35','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PASSWORD_SUCCESS','Your login and password have been successfully emailed.','2005-01-18 14:29:55','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PATCH_CREATED_SUCCESSFULLY','The patch has been created successfully.','2008-04-21 15:11:31','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PATCH_INSTALLED_SUCCESSFULLY','The patch has been installed successfully.','2008-04-21 15:08:55','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_POST_ADDED_SUCCESSFULLY','Blog message was successfully posted.','2006-05-22 12:35:15','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PREFS_LOGIN','You cannot save these preferences because you are not logged in.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PRIVS_CHANGED','Privileges updated successfully.','2005-08-24 11:21:49','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PROFILE_CREATED_ADMIN','User account created successfully.','2005-03-29 15:19:07','admin create user');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PROFILE_UPDATED','Your Profile was successfully updated.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_PROFILE_UPDATED_ADMIN','The user profile was successfully updated','2004-12-17 11:47:52','change user profile from admin area');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_QUESTION_DELETED','Question was successfully deleted.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_QUESTION_REMOVED','Question was successfully removed from test/survey.','2004-11-24 10:03:12','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_QUESTION_UPDATED','Question was successfully updated.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_REG_THANKS','Thank you for registering, please <a href=\"login.php\">login</a>.','2003-09-25 14:39:50','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_REG_THANKS_CONFIRM','Thank-you for registering. Please follow the instructions in the email we sent you on how to confirm your account. You will need to confirm your account before you can login.','2005-03-22 11:29:22','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_REJECT_GROUP_INVITATION','Invitation to join group was rejected.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_REJECT_GROUP_REQUEST','Request to join group was rejected.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_REQUEST_FRIEND_ADDED','Your request has been sent. Your new contact will be added when the person has accepted your request.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_RESOURCE_PROPERTIES_UPDATED','Resource properties have been successfully updated.','2008-10-19 14:20:47','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_RESULTS_UPDATED','Result was successfully updated.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_RESULT_DELETED','Successfully deleted selected results.','2008-08-20 15:02:07','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_SCORM_SETTINGS_SAVED','SCORM settings have been saved.','2010-12-08 19:22:28','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_SOCIAL_GROUP_UPDATED','Group successfully updated.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_SOCIAL_SETTINGS_SAVED','Social networking settings have been saved.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_STUDENT_TOOLS_SAVED','Student tools successfully updated','2008-11-07 09:56:08','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_THEME_DEFAULT','The theme, <b>%s</b>, is now the default theme.','2004-10-18 15:17:47','Theme Manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_THEME_DISABLED','The theme, <b> %s</b>, has been disabled successfully <b>(users currently using the theme will still be able to use the theme until it is deleted)</b>','2004-10-19 16:55:20','theme manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_THREAD_LOCKED','Thread has been successfully <strong><em>locked</em></strong>.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_THREAD_SUBSCRIBED','You have successfully subscribed to the <strong>%s</strong> thread. Messages posted to this thread will be forwarded to your registered email address. View your profile to modify your email address.','2004-12-02 16:21:03','forum threads');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_THREAD_UNLOCKED','Thread has been successfully <strong><em>unlocked</em></strong>.','2003-05-16 13:47:01','feedback msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_THREAD_UNSUBSCRIBED','You have successfully unsubscribed from the <strong>%s</strong> thread. Messages will no longer be sent to your email address.','2004-12-02 16:34:13','forum threads');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_TILE_IMPORT_SUCCESS','Content imported into AContent successfully. <br /><a href=\"%s\" target=\"_new\">View imported content in AContent in a new window</a>','2010-06-25 12:47:25','tile search');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_TRANSFORMABLE_CONFIG_SAVED','Your AContent settings have been saved.','2010-06-09 15:25:01','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_UPDATE_GRADEBOOK','\"<strong>%1$s</strong>\" cannot be updated into gradebook because the following students have taken it more than once:<br />\r\n%2$s.','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_404_BLURB','The page you are trying to access <i>%s</i> does not exist, or has been moved. Try using the <a href=\"mods/_standard/sitemap/sitemap.php\">SiteMap</a> to find it.','2010-03-09 14:29:53','/404.php');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_ACCESS_PUBLIC','This feature is only available for protected or private courses.','2007-02-13 15:55:47','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_ACCOUNT_APPROVED','You have successfully upgraded to an instructor account.','2004-02-12 12:52:57','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_ALREADY_ENROLLED','You have already made a request to enroll in this course and you have not yet been approved by the instructor. You will be notifed when your request has been approved.','2004-11-05 10:29:01','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_APPROVAL_PENDING','Your request has been made. You will be notified when your request has been approved.<br /><br />Return to <a href=\"users/index.php\">My Courses</a>.','2009-09-17 14:48:30','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_ASSIGNMENT_FS_SUBMISSIONS','Assignments can be submitted using the Assignment Dropbox or through My Files in the  File Storage tool. Assign an assignment to all students, or create a group and enable File Storage for that group, to add an assignment drop-box.','2011-05-30 10:08:46','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_CANNOT_CONNECT_MOD_SERVER','Unable to connect to module server. Be sure your Internet connection is functioning, and your firewall is not blocking access.','2009-12-16 18:45:05','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_CANNOT_CONNECT_PATCH_SERVER','Failed to connect to patch server: %s so patches provided by the patch server can not be listed. Please proceed with installing private patch.','2008-10-08 12:51:54','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_CANNOT_CONNECT_SVN_SERVER','Failed to connect to SVN server to determine if the files that will be modified by the patch script have previously been modified. So, to protect any customizations you\'ve made, all local scripts manipulated by patch are considered locally customized.','2008-10-08 12:55:18','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_COURSE_ENDED','This course has ended on %s.','2007-07-16 11:56:16','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_COURSE_RELEASE','This course has not yet been released. It is scheduled to be released on %s.','2006-04-11 12:36:49','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_DECISION_NOT_REVERSED','Decisions could not be reversed.','2004-08-18 12:08:25','AChecker - can\'t reverse decision');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_DECISION_NOT_SAVED','Decisions could not be saved.','2004-08-18 12:09:38','AChecker - can\'t save decision');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_DECISION_REVERSED','Decision reversed successfully.','2004-08-18 12:07:27','AChecker - reverse decision');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_FEATURE_NOT_AVAILABLE','This feature is not available.','2007-02-26 11:12:45','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_FIRST_PREFS','Your personal preferences have not been setup yet. You can click on the wand icon above to open the personal preferences wizard, or ignore this message and use the default settings. You can adjust your preferences later under the <a href=\"users/preferences.php\" style=\"color:red;\">Preferences</a> tab on My Start Page.','2010-12-21 15:10:33','pref wizard');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_GLOSSARY_REMAINS','Note that removing a linked glossary term from your content will <strong>not</strong> delete the term from the glossary.','2003-05-16 13:45:50','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_INBOX_SENT_MSGS_TTL','Sent messages are automatically deleted every %s days.','2007-02-20 14:19:34','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_INVALID_URL','Localhost is not a valid URL','2004-08-18 12:03:14','Used when AChecker reading URL');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_INVALID_USER','You must <a href=\"login.php?course=%s\">login</a> to use this section.','2004-04-15 13:52:32','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_LOGIN_TO_POST','You must be logged in to post.','2004-11-05 10:29:51','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_MASTER_LIST_DISABLED','The master list has been disabled.  To enable this functionality go to <a href=\"admin/config_edit.php\">System Preferences</a>.','2005-05-10 15:16:13','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_MAX_ATTEMPTS','This test is not currently available at this time.  If you have already completed this test. Please visit <a href=\"mods/_standard/tests/my_tests.php\">Tests & Surveys</a> to see your results.','2010-10-05 12:23:45','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_MSG_SEND_LOGIN','You must be logged in to send messages.','2003-05-16 13:42:17','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NOT_ENROLLED','You need to be enrolled in this course to access this area.','2004-05-12 11:35:43','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NOT_RELEASED','This content has not yet been released. It is scheduled to be released on %s.','2005-11-22 15:21:27','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_CONTENT','This course has no content yet.','2003-05-16 13:45:50','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_COURSES','No courses found. <a href=\"./users/browse.php\">Browse</a> existing courses.','2006-11-24 15:24:59','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_COURSES_INST','No courses found. <a href=\"./browse.php\">Browse</a> existing courses or <a href=\"./mods/_core/courses/users/create_course.php\">create</a> a new one.','2010-03-09 14:07:35','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_FORUMS','There are no forums that exist.','2008-11-07 10:43:18','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_LINK_CATEGORIES','There are currently no link categories.  A link may not be suggested until link categories have been created.','2005-03-16 16:47:22','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_PACKAGES','No packages found.','2005-05-17 12:03:52','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_PAGE_CONTENT','There is no content on this page.','2003-05-16 13:45:50','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_PERMISSION','You do not have permission to access this page.','2003-05-16 13:45:50','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_POLLS','No polls are available right now.','2005-03-22 10:52:43','no active polls');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_POSTS_FOUND','There are no posts in this forum.','2003-05-16 13:45:50','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_SEARCH_RESULTS','No search results.','2003-08-22 11:31:53','search page');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_STUDENTS','There are no students enrolled in this course.','2005-03-22 11:09:35','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_TESTS','No tests available. Create tests using the Tests & Surveys manager.','2010-06-17 12:29:49','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_NO_TOOLS_FOUND','No student tools are turned on. Turn them on through Manage>Student Tools','2008-12-11 11:02:22','FHA student tools screen');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_OVER_QUOTA','You have reached or passed your maximum quota for this course. You will have to delete some files before you will be able to upload again.','2003-10-07 15:06:28','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_PATCH_INSTALLED_AND_REMOVE_PERMISSION','The patch has been installed. Please remove write permission as instructed below.','2008-04-22 14:10:33','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_PRETEST','You must take the prerequisite test in order to view the content.','2009-11-13 15:52:44','content');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_PRETEST_EXPIRED','You can\'t view this content because the prerequisite test <span style=\"font-weight:bold\">\"%s\"</span> has expired. Please contact your instructor.','2009-11-30 14:40:06','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_PRETEST_FAILED','You this cannot view this content because you have not passed the prerequisite test <span style=\"font-weight:bold\">\"%s\"</span>.','2009-11-13 15:51:50','edit/create folder');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_PRETEST_NO_PRIV','You can\'t view this content before taking the prerequisite test <span style=\"font-weight:bold\">\"%s\"</span>.','2009-11-13 15:51:15','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_PRIVATE_ENROL','The course you are trying to access is <strong>private</strong>. Enrollment in this course requires instructor approval.<br />','2003-10-24 15:31:11','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_REG_DISABLED','Public registration is disabled.','2008-09-10 14:09:17','registration form');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_SAVE_CONTENT','Content must be saved before using this tool.','2008-11-11 15:49:25','AChecker requirement in ATutor content');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_SERVICE_UNAVAILABLE','Service currently unavailable.','2004-08-18 12:00:53','Used for AChecker');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_TRACKING_NO_INST','You have chosen your own ID number. Tracking information is not recorded for course instructors. Choose another user.','2003-10-24 15:31:44','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_TRACKING_NO_INST1','Tracking information is not recorded for course instructors. See the <a href=\"mods/_standard/tracker/course_tracker.php\">Course Tracker</a> for a record of course activity.','2010-03-09 14:33:16','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_TRACKING_OFFIN','Tracking is not enabled for this course. Contact your system administrator to have it turned on.','2003-05-16 13:45:50','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_INFOS_TRACKING_OFFST','Tracking is not enabled for this course.','2003-05-16 13:45:50','info msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_WARNING_CHAT_TRAN_EXISTS','A transcript with the name %s already exits. Either delete the original transcript, then resubmit, or rename your new transcript.','2003-06-02 14:05:26','achat instructor transcript tool');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_WARNING_DELETE_CATEGORY','Are you sure you want to delete this category with all its links?','2003-05-16 13:46:16','warning msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_WARNING_LANG_EXISTS','The language you are uploading is already installed on this system. Delete the existing language first by selecting the \"<strong>Remove</strong>\" link next to its listing below.','2003-06-06 09:40:14','admin language manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_WARNING_MAIL_NOT_ON','Mail configuration is not set properly. You may not be able to send out emails. See <a href=\"http://www.atutor.ca/atutor/docs/faq.php\">ATutor FAQ</a> for details.','2009-12-08 16:18:50','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_WARNING_QUESTION_WEIGHT','One or more of the questions on this test do not have points associated with them.  Ensure that this is correct, or enter values for questions that do not have points.','2007-03-05 15:52:54','');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_WARNING_SAVE_YOUR_WORK','Save your work before opening or closing the File Manager.','2003-05-16 13:46:16','warning msg');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_WARNING_THEME_VERSION_DIFF','The theme, <b>%s</b>, may not be compatible with this version of Atutor.','2004-10-19 14:34:35','Theme Manager');
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_WARNING_TRANSLATE_ON','You are currently in Translation Mode. Any user can access the translation page at this time. To turn off the Translate mode please set AT_DEVEL_TRANSLATE in /include/vitals.inc.php to zero.','2004-12-09 10:53:02','admin index and admin language manager');
+INSERT INTO `language_text` VALUES ('en', '_template','15_max_chars','8 characters minimum, 15 characters maximum','2010-07-28 19:26:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','20_max_chars','20 character maximum','2003-06-04 14:52:27','login name registration screen');
+INSERT INTO `language_text` VALUES ('en', '_template','404','Error: Missing Page','2004-03-10 11:24:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','a','A','2007-01-10 13:47:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','a4a_export','Export AccessForAll adapted content.','2008-10-19 15:12:28','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','a4a_import_package','Import available AccessForAll adapted content.','2008-10-21 11:44:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','abacus','Abacus','2008-09-09 09:03:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','about_atutor','About ATutor','2004-01-14 10:25:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','about_atutor_help_text','Learn about various sources of ATutor help, and the help display options available.','2004-05-19 10:40:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','about_content_tests','Link available tests to this content page.','2008-09-23 13:46:28','content editor tests tab');
+INSERT INTO `language_text` VALUES ('en', '_template','about_content_tools','Select from the available external tools, one that can be associated with this content page as a learning activity. Or, though  Manage>IMS Basic LTI add your own external tools to make them available here.','2011-05-27 16:08:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','about_pretest','Select from the available tests one or more that must be passed before the student can view this content.','2010-09-28 16:29:00','edit/create folder');
+INSERT INTO `language_text` VALUES ('en', '_template','about_private','Available only to users with an ATutor System Account, and Instructor approved enrollment. Login required. Enrollment is required.','2004-01-22 14:54:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','about_protected','Available only to users with an ATutor System Account. Login required. Enrollment is optional.','2004-02-05 09:43:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','about_public','Available to all users with or without an ATutor System Account. Login not required. Enrollment is optional.','2004-02-05 09:42:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','accept_late_submissions','Accept Late Submissions','2006-03-23 11:38:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','accept_request','Accept Request','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','access','Access','2007-01-27 13:45:44','create a new course');
+INSERT INTO `language_text` VALUES ('en', '_template','accessibility','Accessibility','2003-05-21 13:56:28','help page');
+INSERT INTO `language_text` VALUES ('en', '_template','accessibility_disabled','Accessibility Validation disabled','2010-05-03 18:50:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','accessibility_enabled','Acessibility Validation enabled','2010-04-26 15:39:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','accessibility_features','Accessibility Features','2003-05-21 14:28:03','help');
+INSERT INTO `language_text` VALUES ('en', '_template','accessibility_features_text','Using ATutor with assistive technology and other accessibility features.','2003-05-21 14:00:59','help');
+INSERT INTO `language_text` VALUES ('en', '_template','access_credit','Accessibility report provided by <a title=\"AChecker Web Accessibility Checker (link opens in a new window)\" target=\"_new\" href=\"http://www.achecker.ca\">AChecker</a>.','2009-11-04 16:20:03','include/html/editor_tabs/accessibility.inc.php');
+INSERT INTO `language_text` VALUES ('en', '_template','access_method','Access Method','2003-05-18 09:07:28','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','access_stats','Access Method Statistics for','2005-02-07 16:22:32','context (?)');
+INSERT INTO `language_text` VALUES ('en', '_template','account_authorization','Account Creation Authorization','2005-05-27 13:33:38','registration page');
+INSERT INTO `language_text` VALUES ('en', '_template','account_information','Account Information','2003-05-18 09:14:11','control centre/registration');
+INSERT INTO `language_text` VALUES ('en', '_template','account_settings','Account settings','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','account_status','Account Status','2005-04-14 11:09:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','action','Action','2004-10-14 14:10:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','active_admin','Active Administrator','2005-03-03 11:00:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','activities','Activities','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','ac_access_groups','Access Groups','2004-03-09 14:22:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','add','Add','2004-11-24 14:28:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','added','added','2010-04-21 14:36:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','added_members','Current Group Members','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_announcement','Add Announcement','2003-05-18 09:17:38','course announcments/home page');
+INSERT INTO `language_text` VALUES ('en', '_template','add_application','Add Gadget','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_application_url','Add gadget by URL','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_assignment','Add Assignment','2006-03-23 11:36:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_atutor_test','Add ATutor Assignments/Test/Surveys','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','add_atutor_test_info','Select from the available test and assignment titles, then optionally choose a  \"Grade Scale\", to add a test or assignment to the gradebook. . If \"Grade Scale\" is set to none, the raw final score will be used in place of a grade scale. Only tests with the test property \"Attempts Allowed\" set to 1 can be added to the Gradebook. Create tests using the ATutor Tests & Surveys Manager','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','add_a_file','Add A File','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_a_new_language','Add a new language.','2004-10-28 13:05:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_code','Add Code','2004-05-06 12:22:57','Title for code tags in code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','add_content','Create','2010-05-02 09:10:36','heading/submit button on Add Content screen');
+INSERT INTO `language_text` VALUES ('en', '_template','add_content_folder','Add Folder','2010-05-03 13:26:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_dependent_patch','Add A Dependent Patch','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_external_test','Add External Assignments/Tests','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','add_file_folder','Add File or Folder','2008-07-22 16:45:15','Title text used in File Manager');
+INSERT INTO `language_text` VALUES ('en', '_template','add_glossary','Add Glossary Term','2005-03-07 11:42:42','glossary screen');
+INSERT INTO `language_text` VALUES ('en', '_template','add_grade_scale','Add Grade Scale','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','add_language','Add Language','2004-09-01 15:42:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_link','Add Link','2005-02-22 10:13:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_media','Add Media','2009-11-04 12:48:56','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','add_more','Add More Students','2004-10-15 14:10:59','create student list manually in enrollment manager');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_association','Add new association','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_award','Add new award','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_contact','Add new alternate contact','2009-12-10 10:17:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_content','Add Alternate Contact','2009-12-03 15:38:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_education','Add new education','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_interest','Add new interest','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_personal','Add personal information','2009-12-07 13:47:05','Social personal info');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_position','Add new position','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_representation','Add new representative','2009-12-10 10:17:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_representative','Add New Representative','2009-12-03 15:41:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_new_website','Add new website','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_poll','Add Poll','2004-06-14 14:41:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_question','Add Question','2005-10-19 12:44:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_questions','Add Questions','2003-05-18 10:27:45','test manager add questions screen');
+INSERT INTO `language_text` VALUES ('en', '_template','add_sibling_folder','Add Folder','2010-05-03 13:26:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_sibling_page','Add Page','2010-05-03 13:26:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_sub_folder','Add Sub Folder','2009-09-16 13:13:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_sub_page','Add Sub Page','2005-03-31 14:17:33','content page shortcuts');
+INSERT INTO `language_text` VALUES ('en', '_template','add_term','Add Term','2003-05-18 10:28:38','glossary');
+INSERT INTO `language_text` VALUES ('en', '_template','add_tests','Add Tests/Assignments','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','add_topic','Add Topic','2005-10-19 12:43:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_top_folder','Add Folder','2010-08-09 08:38:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_top_page','Add Page','2010-08-09 08:38:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_to_friends','Add to contacts','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_to_mygadgets','Add to My Gadgets','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','add_to_test_survey','Add to Test/Survey','2004-11-22 16:38:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','administration','Administration','2003-06-04 10:51:48','admin home page');
+INSERT INTO `language_text` VALUES ('en', '_template','administrators','Administrators','2005-03-03 10:40:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','admin_bundle_instructions','Please select the profile(s) you wish to bundle and send via e-mail. All error logs coupled with these profiles will also be included.','2005-03-10 15:29:13','admin error reporting');
+INSERT INTO `language_text` VALUES ('en', '_template','admin_email','Email Users','2005-01-06 14:57:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','admin_home','Home','2010-10-08 13:33:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','admin_log','Administrator Activity Log','2005-03-03 10:40:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','admin_new_account','A user account has been created for you at %1s. To access this account, please log into the site. It is strongly suggested you change your password upon logging in.','2005-06-21 16:38:21','Admin creates a new user account.');
+INSERT INTO `language_text` VALUES ('en', '_template','admin_new_account_confirm','An account has been created for you at %1s. To access your account, you must first confirm your email by using the following link: %2s. It is strongly suggested you change your password upon logging in.','2005-06-21 16:37:44','Admin creates a new user and confirm is ON');
+INSERT INTO `language_text` VALUES ('en', '_template','admin_social','Social Network Settings','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','affected_entries','Affected Entries','2005-03-03 12:14:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','after_topic','After: %s','2004-01-16 13:19:46','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','age','Age','2003-05-18 10:38:32','registration, profile');
+INSERT INTO `language_text` VALUES ('en', '_template','all','All','2003-05-18 11:35:37','glossary');
+INSERT INTO `language_text` VALUES ('en', '_template','allow_browse','Course Browser','2009-07-23 15:48:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','allow_editing','Allow Editing','2007-02-20 10:30:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','allow_guests','Allow Guests','2007-03-06 14:44:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','allow_instructor_registration','Allow Instructors to Enroll Users from the System Registration List','2008-11-14 11:51:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','allow_instructor_requests','Allow Instructor Requests','2005-03-03 10:51:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','allow_registration','Allow Self-Registration','2008-09-10 14:14:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','allow_test_export','Allow students to export tests with content packages:','2008-09-26 13:43:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','allow_unenroll','Allow Users to Unenroll Themselves from Courses.','2008-09-10 14:16:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','all_atutor_assignments','All ATutor Assignments','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','all_atutor_tests','All Applicable ATutor Tests &amp; Surveys','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','all_available_courses','All available courses','2004-08-18 12:03:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','all_courses','All Courses','2005-04-01 14:08:29','forums');
+INSERT INTO `language_text` VALUES ('en', '_template','all_failed_students','All Failed Students','2008-03-10 11:52:03','Test/Survey Property');
+INSERT INTO `language_text` VALUES ('en', '_template','all_forums','Share with all courses, or','2006-06-01 14:31:37','admin create shared forum');
+INSERT INTO `language_text` VALUES ('en', '_template','all_label','All (%s)','2005-05-12 10:26:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','all_passed_students','All Passed Students','2008-03-10 11:51:36','Test/Survey Property');
+INSERT INTO `language_text` VALUES ('en', '_template','all_questions_on_page','All questions on one page','2007-08-20 15:46:22','create/edit test');
+INSERT INTO `language_text` VALUES ('en', '_template','all_students','All Students','2006-03-23 13:39:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','all_users','All Users','2005-03-10 15:24:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','alter','Alter','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','alternate_text','Alternate Text','2004-12-08 12:39:27','filemanager, image inset alt field');
+INSERT INTO `language_text` VALUES ('en', '_template','alternatives','Alternatives','2010-03-09 16:16:55','adapted content');
+INSERT INTO `language_text` VALUES ('en', '_template','alternatives_to','Adaptation of','2008-10-21 10:56:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','alternative_content','Adapted Content','2008-10-19 12:03:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','alt_contact','Alternate Contact','2009-12-03 15:40:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','alt_to_audio','Alternatives To Audio','2010-04-12 16:36:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','alt_to_text','Alternatives To Text','2010-04-12 16:35:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','alt_to_visual','Alternatives To Visual','2010-04-12 16:35:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','alumni','Alumni','2004-10-22 15:56:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','always','Always','2006-03-23 11:38:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','american-asl','American-ASL','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','announcements','Announcements','2003-05-18 11:36:24','course home page');
+INSERT INTO `language_text` VALUES ('en', '_template','announcement_date_format','%%l %%F %%j, %%Y - %%H:%%i','2006-04-11 14:10:57','course home page');
+INSERT INTO `language_text` VALUES ('en', '_template','anonymous','Anonymous','2004-08-26 13:24:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','anonymous_test','Anonymous','2004-08-26 12:31:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','answer','Answer','2003-05-18 11:38:10','test question add/edit screens');
+INSERT INTO `language_text` VALUES ('en', '_template','answers','Answers','2007-01-10 13:47:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','answer_size','Answer Size','2003-05-18 11:38:55','add/edit open ended question');
+INSERT INTO `language_text` VALUES ('en', '_template','apache_mod_rewrite','Apache mod_rewrite','2008-05-14 12:04:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','append','Append','2008-09-09 09:02:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','append_content','Append selected material','2004-10-15 14:18:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','append_or_replace','Append or Replace Original Content','2008-09-09 08:56:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','applications','Gadgets','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','application_control_blurb','Choose which gadgets to display on your networking home page.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','application_settings','Gadget Settings','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','applies_to_all_sub_pages','Applies to all sub pages.','2007-03-01 10:23:22','edit/create content page. release date.');
+INSERT INTO `language_text` VALUES ('en', '_template','apply','Apply','2005-02-10 11:25:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','apply_audio_alternatives','Apply Audio Alternatives','2010-04-21 14:34:24','alternative switcher');
+INSERT INTO `language_text` VALUES ('en', '_template','apply_sign_lang_alternatives','Apply Sign Language Alternatives','2010-04-21 14:35:03','alternative switcher');
+INSERT INTO `language_text` VALUES ('en', '_template','apply_text_alternatives','Apply Text Alternatives','2010-04-21 14:34:04','alternative switcher');
+INSERT INTO `language_text` VALUES ('en', '_template','apply_theme_subcategories','Apply theme to subcategories.','2004-08-04 11:35:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','apply_to_all_results','Apply to all results','2007-02-21 11:49:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','apply_visual_alternatives','Apply Visual Alternatives','2010-04-21 14:34:43','alternative switcher');
+INSERT INTO `language_text` VALUES ('en', '_template','approve','Approve','2003-05-18 11:41:29','enrol administration');
+INSERT INTO `language_text` VALUES ('en', '_template','approved','Approved','2005-02-23 12:17:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','approve_request','Approve Request','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','archive_total','Archive Total','2003-05-18 11:42:55','file manager zip tool');
+INSERT INTO `language_text` VALUES ('en', '_template','arrange_content','Arrange','2010-05-02 08:53:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','assigned_to','Assigned To','2005-06-02 12:18:18','');
+INSERT INTO `language_text` VALUES ('en', '_template','assignment','Assignment','2006-03-20 14:38:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','assignments','Assignments','2006-03-20 14:40:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','assignment_dropbox','Assignment Dropbox','2011-05-30 10:06:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','assignment_dropbox_text','Submit assignments.','2011-05-30 10:06:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','assignment_due','Assignment Due: %s - Due Date: %s','2010-03-25 15:32:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','assign_to','Assign To','2006-03-23 11:37:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','assign_unassigned','Assign Unassigned','2006-03-23 11:07:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','assistant','Assistant','2006-05-23 15:24:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','assistants','Assistants','2004-10-15 11:45:31','Assistants tab in enrollment manager');
+INSERT INTO `language_text` VALUES ('en', '_template','associations','Associations','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','as_individual_content','As individual content pages','2004-08-18 12:04:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','at','at','2003-05-18 11:44:08','release date tool/links database');
+INSERT INTO `language_text` VALUES ('en', '_template','atlas','Atlas','2008-09-10 12:26:11','tool prefs');
+INSERT INTO `language_text` VALUES ('en', '_template','attempts','Attempts','2004-08-30 11:31:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_accessibility_text','<p>ATutor includes a variety of features designed to ensure that content is accessible to all potential users, including those with slow Internet connections, older Web browsers, and people with disabilities using assistive technologies to access the Web. These features are described in detail below. Depending on the theme being used, ATutor may include all or some of the features listed here. The default theme includes them all.</p>\r\n\r\n<ol>\r\n<li><strong>ByPass Links:</strong> In the top left corner of ATutor is a  hidden bypass link that allows assistive technology users to skip over the navigation elements and jump directly to an anchor at the top of the content being displayed. Press the Tab key once after a page has finished loading to advance to the first bypass link then press Enter to reposition the content to the top of your screen. The content anchor can also be accessed with an accesskey [Alt-c], so it is possible to jump to the top of the content area no matter where the cursor might be located on the screen.<br /><br />\r\n\r\nOther bypass links include: \"jump past table\" so users can skip over various data table to quickly access content that may appear after the table; \"jump past codes\", so users can skip over the emoticon codes near the bottom of message posting form in the Forums.<br /><br /></li>\r\n\r\n<li><strong>Accesskeys:</strong> Keyboard accessibility has been added to many ATutor features. To activate accesskeys, press Alt plus the assigned number, letter, or character. Accesskeys are assigned dynamically to the tabs in the Main Navigation. The first tab will be assigned [Alt-1], the second tab will be assigned [Alt-2], and so on.  Note that not all browsers support accesskeys.<br /><br />\r\n\r\nGeneral AccessKeys\r\n<ul>\r\n<li>[Alt-1 to Alt-0] Main Navigation Tabs</li>\r\n<li>[Alt-,] Previous topic (i.e. Left angle bracket <)</li>\r\n<li>[Alt-.] Next topic (i.e. Right angle bracket > )</li>\r\n<li>[Alt-.] Resume (i.e. Right angle bracket > while outside the course content)</li>\r\n<li>[Alt-j] Jump Menu</li>\r\n<li>[Alt-s] Submit (active on many form pages)</li>\r\n<li>[Alt-c] Jump to content top (top and navigation bypass link)</li>\r\n</ul>\r\n\r\nContent Editor AccessKeys\r\n<ul>\r\n<li>[Alt-n] Content Tab</li>\r\n<li>[Alt-p] Properties Tab</li>\r\n<li>[Alt-g] Glossary Tab</li>\r\n<li>[Alt-r] Preview Tab</li>\r\n<li>[Alt-a] Accessibility Tab</li>\r\n<li>[Alt-s] Save</li>\r\n</ul>\r\n\r\nChat AccessKeys\r\n<ul>\r\n<li>[Alt-c] Jump to Compose Message field</li>\r\n<li>[Alt-r] Refresh Messages</li>\r\n<li>[Alt-m] Jump to Message List</li>\r\n<li>[Alt-q] Quit Chat</li>\r\n</ul>\r\n\r\nInbox AccessKeys\r\n<ul>\r\n<li>[Alt-r] Reply to Messages</li>\r\n</ul>\r\n<br />\r\n\r\nVisual Editor AccessKeys\r\n<ul>\r\n<li>[Alt-q] jump to button bar</li>\r\n<li>[Alt-z] jump to content area of editor</li>\r\n<li>[Alt-x] jump to element path (bottm)</li>\r\n</ul>\r\n</li>\r\n\r\n<li><strong>Accessibility Verifier: </strong>While using the ATutor Content Editor, instructors can check the accessibility of their content to be sure it can accessed by all students, including those using assistive technologies, or older technologies. While using the Content Editor, select [Alt-a] to open the accessibility verifier.</li>\r\n\r\n<li><strong>Alternative Text: </strong>All meaningful images in ATutor include a text alternative that describes the image or its function. Where images are not meaningful the Alt attribute is left empty so assistive technologies  will ignore the image.</li>\r\n\r\n<li><strong>Alternative Navigation: </strong>Global, hierarchical, and sequential navigation tools are available so users can view or structure content in a manner that suits their style of learning.  The ATutor SiteMap provides a full list of all content and tools available, so all features in a course can be accessed from a single location.</li>\r\n\r\n<li><strong>Resume/Continue: </strong>ATutor remembers the last page accessed when users leave the course content, to go to the Forums for instance, so they can quickly find their way back to where they left off. The content location is also remembered between sessions, so when returning to ATutor, users can simply choose the Resume link in the course listing on My Courses, or select the the resume link in the breadcrumbs at the top of the screen once in a course. Using the [Alt-.] accesskey will also return a user to the last content page they were viewing after they have entered into a course.</li>\r\n\r\n<li><strong>Hide Menus:</strong> For users of older assistive technologies that do not support columnar text laid out in tables, it is possible to hide ATutor\'s content navigation menu so that content will be displayed in a linear presentation. Hiding the content menu also conserves space for users viewing ATutor on smaller screens.</li>\r\n\r\n<li><strong>Search and Sort:</strong> Most data tables are accompanied by a search tool, or filter, so specific records can be displayed in the table, reducing the amount of data displayed at any given time. Most data tables can also be sorted by selecting the column header label, again allowing users to narrow down the data display.</li>\r\n\r\n<li><strong>Table  Header Associations: </strong>All data tables are marked up with the TH element and the scope attribute to ensure that screen reader users are able to navigate through data displays and understand what each data cell represents.</li>\r\n\r\n<li><strong>Form Labels: </strong>All form fields throughout ATutor are marked up using the LABEL element to ensure that they are properly described for assistive technology users. Explicit labeling in this manner also makes it possible to click on a form field\'s label to activate the field. This provides a larger target area for those people who have difficulty positioning a mouse pointer on a small form field such as a radio button or a checkbox.</li>\r\n\r\n<li><strong>Style Sheets: </strong>Wherever possible, the presentation of content in ATutor is controlled by style sheet elements. This allows users to override ATutor\'s default appearance and apply their own preferred presentation styles (i.e. increased font sizes, different font styles, colours, etc.)</li>\r\n\r\n<li><strong>Form Field Focus: </strong>For pages where the primary content is a form, the cursor will automatically be placed in the first field so that after a form page loads, users can begin typing into the form.  Users may choose to disable form focus in their preference settings if it interferes with their use of form screens.</li>\r\n\r\n<li><strong>Relative Sizing of Images: </strong>With browsers that support resizing of images, ATutor icons can be magnified for users with low vision, making them more easily visible. (e.g. Netscape 7 press Alt +) . Wherever possible relative measures have also been used for other feature within ATutor so when the interface is magnified or reduced, all features resize relative to each other, maintaining the screen\'s symmetry.</li>\r\n\r\n</ol>','2005-12-06 14:38:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_handbook','Official ATutor Handbook','2005-07-12 10:42:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_home','ATutor home','2003-05-18 11:49:37','mail response link text');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_is','<strong><em>ATutor</em></strong> is an Open Source Web-based <strong>Learning Management System (LMS)</strong> designed with accessibility and adaptability in mind. Administrators can install or update ATutor in minutes, create custom themes to give it a new look, and extent its functionality by enabling or developing feature modules. Educators can quickly assemble, package, and redistribute instructional content, and conduct their courses online. Students learn in an adaptive learning environment.','2011-08-02 15:51:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_links','<p>Learn more about <a href=\"http://atutor.ca/index.php\">ATutor</a> by browsing the following links:</p>\r\n\r\n<ul>\r\n<li><a href=\"http://atutor.ca/forums/index.php\">Support Forums</a> - Post to the user forums</li>\r\n<li><a href=\"http://atutor.ca/services/index.php\">Support Services</a> - If you need our help, support is available</li>              \r\n<li><a href=\"http://atutor.ca/atutor/translate/index.php\">Translation</a> - Download language packs, become a translator</li>\r\n<li><a href=\"http://atutor.ca/services/licensing.php\">Licensing</a> - ATutor software is available for free under certain terms</li>\r\n<li><a href=\"http://atutor.ca/atutor/download.php\">Download ATutor</a> - All of the system software required to run ATutor can be downloaded here</li>\r\n</ul>','2007-12-14 11:22:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_patch_id','ATutor Patch ID','2008-04-21 15:08:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_settings','ATutor Settings','2008-09-09 08:56:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_version','ATutor Version','2005-03-10 11:21:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_version_tested_with','Last Tested With','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_version_text','%s. <a href=\"http://atutor.ca/check_atutor_version.php?v=%s\">Check Latest Version</a>.','2007-07-26 13:52:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','atutor_version_to_apply','ATutor Version to Apply','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','at_tools','ATutor Tools','2003-05-18 11:51:40','tracker column heading');
+INSERT INTO `language_text` VALUES ('en', '_template','audible_captcha','Audible Version of CAPTCHA','2009-07-16 08:50:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','audio','Audio','2008-09-09 08:56:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','auditory','Auditory','2008-09-08 14:18:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','australian-auslan','Australian-Auslan','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','austrian','Austrian','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','authenticated_access','Authenticated Access','2007-02-13 15:37:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','author','Author','2006-03-20 14:36:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','auth_access_text','Give this link to those you wish to have limited access to your protected or private course.','2007-02-13 15:54:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_approve_instructors','Auto Approve Instructor Requests','2005-03-03 10:51:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_check_new_version','Check for ATutor Updates Automatically','2005-11-21 12:37:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_enroll','Auto Enrollment','2010-05-03 14:58:37','Auto Enroll Property');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_enrolled_msg','You have been enrolled into these courses:','2008-03-10 12:02:23','auto enroll property');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_enroll_delete','Delete Auto Enrollment','2008-03-10 11:54:52','Auto Enroll label');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_enroll_edit','Create/Edit Auto Enrollment','2008-03-10 12:01:18','Auto Enroll property');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_enroll_msg','You will be enrolled into these courses.','2008-03-10 12:01:55','auto enroll property');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_install_languages','Automatically Install New Language Packs','2006-07-26 12:08:03','');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_install_languages_cron','You must set-up the <a href=\"admin/cron_config.php\">cron</a> to use this feature.','2006-07-26 12:08:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','auto_login1','Auto-Login','2003-05-18 11:53:47','control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','availability','Availability','2007-03-06 14:24:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','available_applications','Available Gadgets','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','available_immediately','Release immediately','2006-04-10 14:37:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','available_on_my_courses','Link From The <em>My Courses</em> Page','2005-05-02 12:12:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','available_patches','Available Patches','2008-04-21 15:08:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','available_patches_text','There are <strong>%s</strong> patches available to install.','2008-04-21 15:08:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','available_to','Available To','2008-04-21 15:08:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','average','Average','2003-05-18 11:56:58','test results / tracker courses statistics');
+INSERT INTO `language_text` VALUES ('en', '_template','avg_duration','Avg. Duration','2005-03-01 12:40:29','tracker column heading');
+INSERT INTO `language_text` VALUES ('en', '_template','awards','Awards','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','b','B','2007-12-18 14:39:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','back','Back','2003-05-18 12:02:02','file manager back up to previous directory');
+INSERT INTO `language_text` VALUES ('en', '_template','backups','Backups','2004-10-15 11:40:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','backup_manager','Backup Manager','2004-10-14 13:59:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','back_to','Back To:','2005-03-22 16:08:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','back_to_main','Back to Main','2004-12-06 12:07:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','back_to_profile','Back to Profile','2004-12-06 12:09:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','back_to_summary','Back to Summary','2003-05-18 12:05:32','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','banner','Banner','2006-03-28 14:32:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','basiclti','External Tools','2011-05-27 15:50:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','basiclti_comment','You can choose and configure an External Tool associated with this Content Item.','2011-05-27 15:54:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','basiclti_content_text','External Tool','2011-05-27 15:53:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','basiclti_text','Support for integrating External Tools that support IMS Basic Learning Tools Interoperability','2011-05-27 15:50:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','basiclti_tool','External Tool','2011-05-27 15:53:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','basic_profile','Basic Profile','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','before_topic','Before: %s','2004-01-16 13:19:20','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','bg_colour','Background Colour','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','black','Black','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','blogcomment_notify_body','*DO NOT REPLY TO THIS MESSAGE*  <br /><br />\r\nA new blog comment has been posted in the group %s.<br /><br />Click the following link to visit the course.<br /><br />%s','2009-06-24 11:59:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','blogcomment_notify_subject','New blog comment','2009-06-24 11:57:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','blogs','Blogs','2006-05-22 12:10:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','blog_notify_body','*DO NOT REPLY TO THIS MESSAGE*  <br /><br />\r\nA new blog post has been published in the group %s.<br /><br />Click the following link to visit the course.<br /><br />%s','2009-06-24 11:58:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','blog_notify_subject','New blog post','2009-06-24 11:57:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','blog_subscribe','Subscribe','2009-06-24 11:53:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','blog_unsubscribe','Unsubscribe','2009-06-24 11:53:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','blti_missing_tool','External Tool configuration has is missing toolid:','2011-05-27 15:54:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','blue','Blue','2003-05-18 12:09:34','global code picker tool');
+INSERT INTO `language_text` VALUES ('en', '_template','blue_guests','Blue = Guests','2003-05-18 12:10:38','instructor course statistics');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_acceptgrades','Accept Grades From External Tool','2011-05-27 15:55:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_acceptgrades_off','Do not allow','2011-05-27 15:55:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_acceptgrades_on','Allow','2011-05-27 15:55:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowcustomparameters','Allow Additional Custom Parameters in Content Item','2011-05-27 15:55:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowcustomparameters_off','Do not allow','2011-05-27 15:56:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowcustomparameters_on','Allow','2011-05-27 15:56:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowpreferheight','Allow Frame Height to be Changed','2011-05-27 15:56:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowpreferheight_off','Do not allow','2011-05-27 15:56:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowpreferheight_on','Allow','2011-05-27 15:57:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowroster','Allow External Tool To Retrieve Roster','2011-05-27 15:57:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowroster_content','Specify in each Content Item','2011-05-27 15:57:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowroster_instructor','Delegate to Instructor','2011-05-27 15:57:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowroster_off','Never','2011-05-27 15:58:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowroster_on','Always','2011-05-27 15:58:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowsetting','Allow External Tool to use the Setting Service','2011-05-27 15:58:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowsetting_content','Specify in each Content Item','2011-05-27 15:58:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowsetting_instructor','Delegate to Instructor','2011-05-27 15:58:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowsetting_off','Never','2011-05-27 15:59:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_allowsetting_on','Always','2011-05-27 15:59:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_choose_gradbook_entry','Select Gradebook Entry','2011-05-27 15:54:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_choose_tool','Select External Tool','2011-05-27 15:54:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_content_title','External Tool Settings','2011-05-27 15:53:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_count','Use Count','2011-05-27 15:52:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_create','Create External Tool','2011-05-27 15:51:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_customparameters','Custom Parameters','2011-05-27 15:59:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_debuglaunch','Launch Tool in Debug Mode','2011-05-27 15:59:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_debuglaunch_content','Specify in each Content Item','2011-05-27 16:00:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_debuglaunch_instructor','Delegate to Instructor','2011-05-27 16:00:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_debuglaunch_off','Never','2011-05-27 16:00:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_debuglaunch_on','Always','2011-05-27 16:00:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_delete','Deleting External Tool','2011-05-27 15:52:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_description','Description','2011-05-27 16:00:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_edit','Edit External Tool','2011-05-27 15:52:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_launchinpopup','Launch Tool in Pop Up Window','2011-05-27 16:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_launchinpopup_content','Specify in each Content Item','2011-05-27 16:01:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_launchinpopup_instructor','Delegate to Instructor','2011-05-27 16:01:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_launchinpopup_off','Never','2011-05-27 16:01:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_launchinpopup_on','Always','2011-05-27 16:02:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_organizationdescr','Organization Description','2011-05-27 16:02:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_organizationid','Organization Identifier (typically DNS)','2011-05-27 16:02:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_organizationurl','Organization URL','2011-05-27 16:02:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_password','Tool Secret','2011-05-27 16:03:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_preferheight','Frame Height','2011-05-27 16:03:18','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_resourcekey','Tool Key (oauth_consumer_key)','2011-05-27 16:03:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendemailaddr','Send User Mail Addresses to External Tool','2011-05-27 16:03:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendemailaddr_content','Specify in each Content Item','2011-05-27 16:04:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendemailaddr_instructor','Delegate to Instructor','2011-05-27 16:04:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendemailaddr_off','Never','2011-05-27 16:04:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendemailaddr_on','Always','2011-05-27 16:04:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendname','Send User Names to External Tool','2011-05-27 16:05:03','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendname_content','Specify in each Content Item','2011-05-27 16:05:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendname_instructor','Delegate to Instructor','2011-05-27 16:05:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendname_off','Never','2011-05-27 16:05:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_sendname_on','Always','2011-05-27 16:05:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_settings','Settings','2011-05-27 15:51:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_title','Title','2011-05-27 16:06:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_toolid','ToolId (must be unique across system)','2011-05-27 16:06:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_toolid_header','ToolID','2011-05-27 15:52:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_toolurl','Tool Launch URL','2011-05-27 16:06:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','bl_view','External Tool Settings','2011-05-27 15:51:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','body','Body','2003-05-18 12:11:16','add/edit forms for body field label');
+INSERT INTO `language_text` VALUES ('en', '_template','bold','Bold','2003-05-18 12:11:41','global code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','bottom','Bottom','2003-05-23 16:58:31','preference settings option');
+INSERT INTO `language_text` VALUES ('en', '_template','british-bsl','British-BSL','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','browse_all','Browse All','2009-07-16 10:57:49','browse all');
+INSERT INTO `language_text` VALUES ('en', '_template','browse_courses','Browse Courses','2003-05-18 12:13:27','control centre, about, login screens');
+INSERT INTO `language_text` VALUES ('en', '_template','browse_files','Browse Files','2008-07-22 16:43:56','For \"Browse Files\" button in Fluid\'\'s multiple file uploader');
+INSERT INTO `language_text` VALUES ('en', '_template','browse_for_upload','Browse for file to upload','2010-04-21 14:36:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','bt','<acronym title=\"Byte\">B</acronym>','2007-12-18 14:39:47','byte, file manager/storage');
+INSERT INTO `language_text` VALUES ('en', '_template','bug_count','Bug Count','2004-12-06 12:23:46','admin/error_logging.php');
+INSERT INTO `language_text` VALUES ('en', '_template','bug_identifier','Bug Identifier','2004-12-06 12:05:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','builtin_icons','Builtin Icons','2008-08-21 10:38:41','course properties');
+INSERT INTO `language_text` VALUES ('en', '_template','business','Business','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','by','by','2008-07-25 15:59:13','anouncements by a users');
+INSERT INTO `language_text` VALUES ('en', '_template','bytes','Bytes','2003-05-18 12:15:45','admin course size quote, course properties screen');
+INSERT INTO `language_text` VALUES ('en', '_template','c','C','2007-01-10 13:48:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','cache_directory','Cache Directory','2005-03-03 10:52:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','calculator','Calculator','2008-09-09 09:03:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','cancel','Cancel','2003-05-18 12:16:07','global cancel button');
+INSERT INTO `language_text` VALUES ('en', '_template','cannot_find_remote_languages','ATutor was unable to connect to the ATutor.ca website to retrieve the list of available languages.','2004-10-18 14:28:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','categories','Categories','2005-02-22 10:12:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','category','Category','2003-05-18 12:16:54','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','cats_all','All Categories','2005-02-23 10:22:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','cats_categories','Categories','2003-09-24 18:21:26','admin course categories');
+INSERT INTO `language_text` VALUES ('en', '_template','cats_none','None','2003-09-24 18:13:50','admin course categories');
+INSERT INTO `language_text` VALUES ('en', '_template','cats_no_categories','No Categories','2003-09-24 18:28:32','admin course categories');
+INSERT INTO `language_text` VALUES ('en', '_template','cats_parent_category','Parent Category','2003-09-24 18:04:38','admin course categories');
+INSERT INTO `language_text` VALUES ('en', '_template','cats_uncategorized','Uncategorized','2003-09-24 18:17:50','admin course categories');
+INSERT INTO `language_text` VALUES ('en', '_template','cats_view_links','Show Links by Category','2005-03-29 14:08:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','cat_theme','Category Theme','2004-08-04 11:34:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','center','Center','2003-05-18 12:20:08','global code picker option');
+INSERT INTO `language_text` VALUES ('en', '_template','change_email','Change Email','2006-05-10 11:11:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','change_password','Change Password','2006-05-10 11:11:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','charset','Character Set','2004-11-20 19:36:01','admin new language');
+INSERT INTO `language_text` VALUES ('en', '_template','chat','Chat','2003-05-18 12:20:29','global chat label');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_altc','Alt + C: Jump to Compose Message','2003-05-30 12:41:06','chat options frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_altm','Alt + M: Jump to Messages','2004-08-18 10:58:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_altq','Alt + Q:  Quit Chat','2005-05-30 15:04:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_altr','Alt + R: Refresh Messages','2004-08-18 10:58:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_auto180_checking','Automatic (180 second interval)','2003-05-15 14:23:13','chat message checking preference');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_auto20_checking','Automatic (20 second interval)','2003-05-15 14:22:22','chat message checking preference');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_auto5_checking','Automatic (5 second interval)','2003-05-27 09:09:57','chat message checking preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_auto60_checking','Automatic (60 second interval)','2003-05-15 14:22:53','chat message checking preference');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_chime_help','Set to \"Yes\" to recieve an audio tone when new messsages are posted. Does not work in all Web browsers.','2003-05-15 19:33:11','chat message checking preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_compose_message','Compose Message','2003-05-15 13:12:38','chat message compose frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_currently_active','Currently active','2003-05-15 12:40:47','chat hompage transcript activated');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_current_tran','A transcript is already being recorded.  You may view the current transcript at','2005-03-30 14:04:45','achat');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_delete_transcript','Delete Transcript','2003-06-30 17:53:55','chat home page');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_edit_prefs','Edit Preferences','2003-05-15 13:47:05','chat options frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_enter','Enter Chat','2003-05-15 14:50:48','chat preferences pages');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_exit','Exit Chat','2003-05-15 13:48:43','chat options frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_full_history','Full History','2003-05-15 14:00:02','chat options frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_display_blurb','<p>Note: <em>Jump To</em> links and the <em>Quick Key</em> list only appear if you have turned on <em>Navigation Aids</em> in you preferences.</p>\r\n \r\n<ul>\r\n   <li>The <em>Jump to Quick Keys</em> link at the top takes you to a list of quick keys for the Chat. </li>\r\n   <li>The <em>Message Area</em> displays the most recent messages (up to ten). </li>\r\n    <li>The <em>Jump to Messages</em> links take you to the beginning of the list of messages. (Alt+M) </li>\r\n    <li>The <em>Refresh Messages</em> link lets you check for new messages (Alt+R). </li>\r\n    <li>The <em>Compose Message</em> Field and <em>Send Button</em> let you enter and send messages (Alt+C to enter the Compose Field, Enter to send a completed message). </li>\r\n</ul>','2004-08-18 11:00:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_display_frame','Display Frame Help (top left)','2003-05-15 15:24:02','chat help screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_display_jump','Jump to Display Frame Help','2003-05-27 09:14:57','chat help screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_history_blurb','The <em>User List</em> shows the Chat IDs of all the users in the chat. Click on a Chat ID to see the messages sent by that participant, along with your own messages. Click on <em>All Users</em> to see the messages sent by all participants.','2003-05-15 15:34:10','chat help screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_history_frame','User List and History Help','2003-05-15 15:32:14','chat help screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_history_jump','Jump to User List and History Help','2003-05-15 15:22:23','chat help screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_jump_top','Jump to Top','2003-05-15 15:25:48','chat_help screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_options_blurb','<ul>\r\n      <li>The <em>Edit Preferences</em> link opens the preferences so you can modify your control and display settings. </li>\r\n    <li>The <em>Exit Chat</em> link ends your chat session.</li>\r\n    <li>The <em>Help</em> link brings you to this screen. (Alt+Q)</li>\r\n</ul>','2004-08-18 11:01:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_options_frame','Options Help (top right)','2003-05-15 15:24:50','chat help screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_options_jump','Jump to Options Help','2003-05-27 09:15:04','chat help screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_help_screen','Help Screen','2003-05-15 15:19:33','chat help');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_history_messages','History - Messages %s to %s of %s','2003-05-15 15:59:13','chat full history screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_inactive','Inactive','2005-03-30 14:47:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_jump_to_message','Jump to Message Area','2003-05-15 13:14:01','chat display frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_keep_tran','This section allows you to keep a transcript of the chat in progress.','2003-05-28 11:10:47','achat');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_layout_prefs','Preferences: Layout Settings','2003-05-15 14:53:04','chat layout preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_list_and_history','User List and History','2003-05-15 13:49:37','chat options frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_logged_out','User %s has logged out.','2003-05-15 16:01:51','logout');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_manual_checking','Manual Refresh','2003-05-15 14:23:42','chat message checking preference');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_messages','Messages','2003-05-15 13:05:28','chat message display frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_message_checking','Message Checking:','2003-05-15 14:19:45','chat message checking preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_message_check_help','Select the interval rate at which new messages are retrieved from the server. Screen reader users set this option to Manual Refresh.','2003-05-15 14:39:17','chat message checking preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_message_chime','New Message Chime:','2003-05-15 14:43:05','chat message checking preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_message_new_help','Screen reader users choose \"Yes\", along with the Manual Refresh setting.','2003-05-15 15:05:32','chat layout preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_message_order_help','Select New to Old to display new messages at the top of the screen, and Old to New to display new messages at the bottom of the screen.','2003-05-15 14:58:48','chat layout preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_newmsg_prefs','Show Only New Messages?','2003-05-15 15:00:44','chat layout preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_newold_prefs','New to Old','2003-05-15 14:55:15','chat layout preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_none_found','No transcripts found.','2005-03-31 11:32:44','chat home page');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_no_new_messages','No new messages.','2003-05-15 13:09:01','chat display frames');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_oldnew_prefs','Old to New','2003-05-15 14:54:48','chat layout preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_options','Options','2003-05-15 13:45:35','chat options frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_order_prefs','Order of Messages:','2003-05-15 14:53:59','chat layout preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_post','Enter: Post a completed message','2003-05-15 14:07:17','chat options frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_prefs_checking','Preferences: Message Checking Settings','2003-05-15 14:18:37','chat checking preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_quick_keys','Quick Keys','2003-05-15 14:03:24','chat options frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_refresh_message','Refresh Messages','2003-05-15 13:16:05','chat display frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_refresh_user_list','Refresh User List','2003-05-15 14:01:12','chat options frame');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_return','Return to Chat','2003-05-15 15:20:17','chat help screen');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_start_tran','Start keeping a transcript','2003-05-28 11:20:12','achat');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_start_transcript','Start/Stop Transcript','2005-05-16 10:55:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_stop_tran','Stop keeping transcript.','2003-05-28 12:48:38','achat');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_system','system','2003-05-15 13:07:42','chat display frame system message');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_transcript','Transcript','2003-05-30 11:27:26','achat');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_transcript_end','Transcript End:','2003-05-30 11:30:10','achat');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_transcript_start','Transcript Start:','2003-05-30 11:29:26','achat');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_tran_file_name','Transcript name (alphanumeric, no spaces):','2003-05-28 18:36:35','achat');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_user_logged_in','User %s has logged in.','2003-05-15 16:02:29','chat display system login message');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_user_logged_out','User %s has been logged out due to inactivity.','2003-05-15 16:02:16','chat logout system message');
+INSERT INTO `language_text` VALUES ('en', '_template','chat_you','you','2003-05-15 13:53:10','chat users online list');
+INSERT INTO `language_text` VALUES ('en', '_template','checked','Checked','2006-06-26 14:55:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','child_of','Child of: %s','2004-01-16 13:21:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','choice','Choice','2003-05-18 12:25:24','test manager, multiple choice question editor');
+INSERT INTO `language_text` VALUES ('en', '_template','chunks_not_found','<small>(Warning: One or more code chunks to be deleted or replaced are not found.)</small>','2008-10-27 11:35:01','patcher message');
+INSERT INTO `language_text` VALUES ('en', '_template','cid','CID','2003-05-18 13:17:08','global code picker url content id indentifier');
+INSERT INTO `language_text` VALUES ('en', '_template','city','City','2003-05-18 13:17:52','registration, edit profile');
+INSERT INTO `language_text` VALUES ('en', '_template','class_avg','Class Avg','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','click_browse_files','Click <em>Browse Files</em> to add files to the queue','2008-07-22 16:44:21','Instructional text for using fluid\'\'s multiple file uploader');
+INSERT INTO `language_text` VALUES ('en', '_template','click_code','Click on the code or emoticon you want to use.','2003-05-22 15:42:52','global code picker instructions');
+INSERT INTO `language_text` VALUES ('en', '_template','click_hide_tools','Click to hide tool bar','2010-03-30 15:32:01','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','click_show_head','Click to customize HTML head','2010-03-30 15:01:59','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','click_show_tools','Click to show tools.','2010-03-30 14:48:25','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','close','Close','2005-08-10 16:13:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','close_after_saving','Close after saving','2004-05-11 11:01:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','close_help_window','Close Help Window','2003-05-18 13:21:37','close help window link text');
+INSERT INTO `language_text` VALUES ('en', '_template','close_menus','Menus','2005-03-05 18:29:54','Menus');
+INSERT INTO `language_text` VALUES ('en', '_template','close_related_topics','Related Topics','2005-03-05 18:30:15','Menus');
+INSERT INTO `language_text` VALUES ('en', '_template','close_window','Close Window','2004-12-08 12:04:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','codes','Codes','2003-05-18 13:23:57','global code picker label');
+INSERT INTO `language_text` VALUES ('en', '_template','code_to_replace_from','Code To Replace From','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','code_to_replace_to','Code To Replace To','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','collapse','Collapse','2003-05-18 13:24:36','Menus');
+INSERT INTO `language_text` VALUES ('en', '_template','colors','Colours','2003-05-18 13:25:02','global code picker label');
+INSERT INTO `language_text` VALUES ('en', '_template','combination','Must use a combination of letters, and numbers or symbols','2010-10-07 09:23:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','combine','Combine','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','combine_from','Combine From','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','combine_into','Combine Into','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','combine_tests','Combine ATutor Tests','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','combine_tests_info','Before combining tests, please run section above to update marks of \"Combine Into Test/Survey.\"','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','comment','Comment','2006-03-20 14:42:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','comments','Comments','2006-03-20 14:36:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','comments_num','%s Comment(s)','2006-05-25 14:01:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','common_cartridge','Common Cartridge','2008-12-02 11:57:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','common_interest','Common Interest','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','company','Company','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','completed','Completed','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','completed_date','Completed Date','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','completed_tests','Your Submissions','2005-05-11 11:19:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','configuration','Configuration','2005-02-07 16:04:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','confirm','Confirm','2004-10-18 11:50:20','enrollment manager, confirm action');
+INSERT INTO `language_text` VALUES ('en', '_template','confirm_account_text','If you have already created an account, you will have to <a href=\"confirm.php\">confirm your email address</a>.','2005-07-27 15:05:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','confirm_admin_create','Are you sure you want to create a Super Administrator account?','2005-03-03 10:34:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','confirm_deny_instructor','You are about to deny the instructor request of the following user:','2005-07-21 16:16:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','confirm_password','Confirm Password','2005-03-03 10:47:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','connections','My Contacts','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','contact_accepted','ATutor Social Contact Accepted','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','contact_email','Contact Email','2005-03-03 10:50:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','contact_instructor','Contact Course Instructor','2003-05-18 13:29:00','student contact instructor form');
+INSERT INTO `language_text` VALUES ('en', '_template','contact_name','Contact Name','2003-05-18 13:30:04','student contact instructor form');
+INSERT INTO `language_text` VALUES ('en', '_template','contact_request','ATutor Social Contact Request','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','contact_support','Contact Support','2005-07-19 10:27:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','contain_only','May contain only letters, numbers, underscores, hyphens or periods.','2006-07-17 11:01:46','registration login name format');
+INSERT INTO `language_text` VALUES ('en', '_template','content','Content','2003-05-18 13:32:22','sitemap/delete course');
+INSERT INTO `language_text` VALUES ('en', '_template','contents','Contents','2003-05-18 13:35:43','content page table of content menu heading');
+INSERT INTO `language_text` VALUES ('en', '_template','content_editor','Content Editor','2006-11-23 13:17:41','user prefs');
+INSERT INTO `language_text` VALUES ('en', '_template','content_folder_title','Content Folder Title','2009-09-16 13:11:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','content_navigation','Content Navigation','2005-03-29 12:18:45','menu content nav drop down');
+INSERT INTO `language_text` VALUES ('en', '_template','content_package','Content Package','2008-12-02 11:57:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','content_packaging','Import/Export','2010-05-02 09:04:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','content_packaging_all','Available on every page','2003-10-15 10:10:17','option3');
+INSERT INTO `language_text` VALUES ('en', '_template','content_packaging_disabled','Content packaging has been disabled for this course.','2007-11-27 15:29:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','content_packaging_none','Not available on any of the pages','2003-10-15 10:09:27','option1');
+INSERT INTO `language_text` VALUES ('en', '_template','content_packaging_top','Available only for top level pages','2007-11-27 15:29:26','option2');
+INSERT INTO `language_text` VALUES ('en', '_template','content_settings','Content Alternatives','2010-04-12 16:30:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','content_usage','Usage','2010-05-02 08:52:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','continue','Continue','2006-03-21 16:22:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','control_settings','Navigation','2010-04-12 16:29:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','copyright','Web site engine\'s code is copyright Â©  ATutor®','2008-09-18 13:02:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','core','Core','2005-08-30 10:17:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','correct_answer','Correct Answer','2003-05-18 13:38:45','test manager add/edit questions');
+INSERT INTO `language_text` VALUES ('en', '_template','count','Count','2003-05-18 13:40:35','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','country','Country','2003-05-18 13:41:28','registration / profile edit');
+INSERT INTO `language_text` VALUES ('en', '_template','course','Course','2003-05-18 13:42:31','delete course warning screen');
+INSERT INTO `language_text` VALUES ('en', '_template','courses','Courses','2003-05-18 13:43:44','admin users/courses manager');
+INSERT INTO `language_text` VALUES ('en', '_template','courses_below','My Courses','2008-04-16 19:44:10','jump menu divider');
+INSERT INTO `language_text` VALUES ('en', '_template','course_available','Course Available','2003-05-18 13:46:03','file manager, server space available');
+INSERT INTO `language_text` VALUES ('en', '_template','course_available_zip1','Course Available (before extraction)','2003-05-18 13:46:37','file manager zip tool');
+INSERT INTO `language_text` VALUES ('en', '_template','course_available_zip2','Course Available (after extraction)','2003-05-18 13:47:06','file manager zip tool');
+INSERT INTO `language_text` VALUES ('en', '_template','course_backups','Course Backups','2005-03-03 10:21:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','course_copyright','Optional Copyright Notice','2003-05-18 13:47:33','course copyright label');
+INSERT INTO `language_text` VALUES ('en', '_template','course_dir_name','Course Directory Name','2008-05-14 12:03:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','course_email','Course Email','2003-05-18 13:51:48','taught courses table in instructor control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','course_enrolment','Enrollment Manager','2003-10-01 18:54:09','instructor - course enrollment (previously ATutor Course Enrollment)');
+INSERT INTO `language_text` VALUES ('en', '_template','course_files','Course Files','2006-03-20 14:40:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','course_forums','Course Forums','2004-11-13 19:55:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','course_home','Course Home','2010-10-08 13:32:24','course main nav menu');
+INSERT INTO `language_text` VALUES ('en', '_template','course_id','Course ID','2003-05-18 13:54:57','admin course manager');
+INSERT INTO `language_text` VALUES ('en', '_template','course_instructor','Course Instructor','2003-05-18 13:57:00','student contact instructor form');
+INSERT INTO `language_text` VALUES ('en', '_template','course_list','Course List','2005-03-23 15:17:14','enrollment manager');
+INSERT INTO `language_text` VALUES ('en', '_template','course_properties','Course Properties','2003-05-18 14:00:23','course properties, admin course manager');
+INSERT INTO `language_text` VALUES ('en', '_template','course_quota','Course Quota','2003-05-18 14:01:10','course properties, admin course manager');
+INSERT INTO `language_text` VALUES ('en', '_template','course_stats','Course Statistics','2003-05-18 14:01:59','delete course');
+INSERT INTO `language_text` VALUES ('en', '_template','course_summaries','Course Summaries','2004-08-20 15:08:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','course_tools','Course Tools','2008-11-07 09:18:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','course_total','Course Total','2003-05-18 14:03:39','file manager, zip tool');
+INSERT INTO `language_text` VALUES ('en', '_template','course_total_zip','Course Total (before extraction)','2003-05-18 14:04:10','file manager zip tool');
+INSERT INTO `language_text` VALUES ('en', '_template','course_to_auto_enroll','Courses to Enroll','2008-03-12 11:11:57','Auto Enroll label');
+INSERT INTO `language_text` VALUES ('en', '_template','create','Create','2003-05-18 14:06:29','links database submit button');
+INSERT INTO `language_text` VALUES ('en', '_template','created','Created','2003-05-18 14:07:28','browse courses, control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','created_by','Created By','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','created_date','Created','2003-05-18 14:09:05','admin course managers, profile editor');
+INSERT INTO `language_text` VALUES ('en', '_template','create_admin','Create Administrator Account','2005-03-03 10:40:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_backup','Create Backup','2004-10-15 14:19:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_backup_about','<p>Creating a backup of this course will archive all available material into a single compressed ZIP file. Once the backup file is created, it will be available through the Backup Manager for download and safe-keeping, or available to be restored back into this or any other course.</p>\r\n\r\n<p>Depending on the course size and available server resources, the time needed to backup this course may take  some time.</p>\r\n          \r\n<p>Note: You are currently restricted to %s backups per course.</p>','2005-05-30 15:04:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_basic','Create basic announcement, content, and forum.','2004-10-20 14:28:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_category','Create Category','2005-02-18 10:28:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_course','Create Course','2005-02-15 13:16:16','instructor control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','create_folder','Create Folder','2003-05-18 14:12:40','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','create_folder_here','To create a folder, enter name here:','2009-11-05 14:42:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_forum','Create Forum','2005-02-16 12:23:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_group','Create Group','2005-02-22 16:51:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_groups','Create Groups','2006-03-21 14:57:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_group_blurb','Create a new group on a particular topic, then invite people to post news items or discuss the topic. ','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_module','Create Module','2005-08-17 13:06:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_new_file','Create New File','2005-02-22 15:33:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_new_question','Create New Question','2005-03-07 16:42:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_patch','Create Patch','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','create_test','Create Test/Survey','2004-11-24 10:00:42','instructor test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','create_user','Create User Account','2005-03-10 15:12:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','creation_date','Creation Date','2009-06-17 13:32:26','admin/users.php');
+INSERT INTO `language_text` VALUES ('en', '_template','creative_commons','Creative Commons','2010-07-20 14:56:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','credits_and_work_experience','Credits and Work Experience','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','cron','Cron','2006-03-31 15:42:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','cron_config','Cron Set-up','2006-04-03 14:22:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','cron_url','The URL to your cron service is:','2006-06-14 12:47:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','cron_url_usage','The URL below must be used when setting-up the cron service. See the <em>Cron Set-Up</em> section in the <em>ATutor Handbook</em> for instructions.','2006-06-14 12:49:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','current_course_size','Current course size','2003-10-07 15:41:36','admin course info');
+INSERT INTO `language_text` VALUES ('en', '_template','current_location','(Current location)','2004-01-16 13:22:03','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','current_path','Path to Current Directory:','2003-05-18 14:13:52','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','curren_tests_surveys','Ongoing Tests & Surveys','2005-01-03 09:57:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','cursive','Cursive','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','custom','Custom','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','customized_head','Scripts/CSS','2010-05-03 10:42:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','customized_head_disabled_title','Scripts/CSS disabled','2010-05-03 10:42:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','customized_head_enabled_title','Toggle Scripts/CSS','2010-05-03 10:42:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','customized_head_note','Edit your own styles or javascript','2008-05-01 08:57:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','custom_grade_scale','Custom Grade Scale','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','custom_icons','Custom Icons','2008-08-21 10:38:11','course properties');
+INSERT INTO `language_text` VALUES ('en', '_template','custom_test_message','Include a message to appear along with the link to the test.','2008-10-10 15:30:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','cyan','Cyan','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','d','D','2007-01-10 13:48:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','danish-dsl','Danish-DSL','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','dark_gray','Dark Gray','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','database','Database','2007-07-26 13:39:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','database_table','Database Table','2005-03-03 12:14:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','date','Date','2003-05-19 17:44:42','global date label');
+INSERT INTO `language_text` VALUES ('en', '_template','date_apr','Apr','2003-05-20 12:32:27','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_april','April','2003-05-20 12:28:03','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_aug','Aug','2003-05-20 12:33:34','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_august','August','2003-05-20 12:29:12','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_created','Date Created','2003-05-19 17:45:18','view profile');
+INSERT INTO `language_text` VALUES ('en', '_template','date_dec','Dec','2003-05-20 12:34:03','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_december','December','2003-05-20 12:30:35','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_feb','Feb','2003-05-20 12:32:12','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_february','February','2003-05-20 12:27:33','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_fri','Fri','2003-05-20 12:26:47','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_friday','Friday','2003-05-20 12:24:40','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_jan','Jan','2003-05-20 12:32:05','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_january','January','2003-05-20 12:27:11','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_jul','Jul','2003-05-20 12:33:27','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_july','July','2003-05-20 12:28:56','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_jun','Jun','2003-05-20 12:33:21','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_june','June','2003-05-20 12:28:41','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_mar','Mar','2003-05-20 12:32:22','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_march','March','2003-05-20 12:27:48','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_may','May','2003-05-20 12:28:20','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_may_short','May','2003-05-20 12:33:14','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_mon','Mon','2003-05-20 12:26:18','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_monday','Monday','2003-05-20 12:24:00','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_nov','Nov','2003-05-20 12:33:56','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_november','November','2003-05-20 12:30:20','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_oct','Oct','2003-05-20 12:33:49','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_october','October','2003-05-20 12:30:02','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_of_birth','Date of birth','2004-06-24 12:31:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','date_sat','Sat','2003-05-20 12:26:55','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_saturday','Saturday','2003-05-20 12:24:48','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_sep','Sep','2003-05-20 12:33:42','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_september','September','2003-05-20 12:29:44','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_sun','Sun','2003-05-20 12:26:09','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_sunday','Sunday','2003-05-20 12:23:52','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_taken','Date Taken','2003-05-19 17:46:06','My Tests');
+INSERT INTO `language_text` VALUES ('en', '_template','date_thu','Thu','2003-05-20 12:26:40','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_thursday','Thursday','2003-05-20 12:24:32','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_tue','Tue','2003-05-20 12:26:24','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_tuesday','Tuesday','2003-05-20 12:24:12','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_wed','Wed','2003-05-20 12:26:32','date');
+INSERT INTO `language_text` VALUES ('en', '_template','date_wednesday','Wednesday','2003-05-20 12:24:21','date');
+INSERT INTO `language_text` VALUES ('en', '_template','day','Day','2004-06-24 15:45:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','days','days','2007-02-21 14:04:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','default','Default','2003-05-19 17:47:07','edit header/admin course manager');
+INSERT INTO `language_text` VALUES ('en', '_template','default_announcement','This is a welcome announcement. You can access additional help by using the Help link available throughout ATutor.','2005-05-11 14:52:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','default_description','Default Description','2006-03-22 11:47:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','default_language','Default Language','2005-03-03 10:50:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','default_modules','Default Tools','2010-05-03 14:56:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','default_preferences','Default Preferences','2005-10-05 12:19:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','default_side_menu','Default Menu','2010-05-03 14:56:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','define_pretest','Prerequisite Tests.','2009-11-13 15:43:11','create/edit folder');
+INSERT INTO `language_text` VALUES ('en', '_template','define_resource_type','Define resource type','2008-09-08 14:18:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','degree','Degree/Program/Courses','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','degrees','Degrees','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete','Delete','2003-05-19 18:25:41','global delete label');
+INSERT INTO `language_text` VALUES ('en', '_template','deleted','Deleted','2003-05-19 18:26:45','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_admin','Delete Administrator Account','2005-03-03 10:48:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_announcement','Delete Announcement','2003-05-19 18:27:52','delete news screen');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_applications','Delete applications','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_category','Delete Category','2003-05-19 18:28:24','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_content','Delete Content','2003-05-19 18:29:01','delete content screen');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_course','Delete Course','2003-05-19 18:29:37','delete course screen');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_forum','Delete Forum','2003-05-19 18:30:40','instructor delete forum screen');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_from','Delete From','2005-03-03 12:16:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_glossary','Delete Glossary Term','2005-03-07 11:33:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_grade_scale','Delete Grade Scale','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_group','Delete Group','2005-01-15 16:01:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_language','Delete Language','2003-06-05 18:59:51','admin language manager');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_link','Delete Link','2005-03-29 14:09:36','links manager');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_module_data','Also delete module data','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_package','Delete Package','2005-05-17 12:06:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_patch','Delete Patch','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_poll','Delete Poll','2004-06-14 16:16:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_post','Delete Post','2006-06-14 11:53:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_profile','Delete Profile','2004-12-06 11:53:06','admin/error_logging.php');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_results','Delete Test Results','2003-05-19 18:31:51','test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_selected_package_s','Delete selected packages','2005-07-19 09:54:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_test','Delete Test/Survey','2004-08-25 14:09:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_text','Note: \"Delete\" button is only available before the assignment due date.','2011-05-30 10:07:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_this_file','Delete This File','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_this_folder','Delete This Folder','2009-11-25 10:53:28','Content');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_this_page','Delete This Page','2005-03-31 14:18:22','content page shortcuts');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_thread','Delete Thread','2003-05-19 18:35:27','forums');
+INSERT INTO `language_text` VALUES ('en', '_template','delete_user','Delete User','2003-05-19 18:35:55','admin user manager');
+INSERT INTO `language_text` VALUES ('en', '_template','deny','Deny','2005-03-30 15:26:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','deny_instructor_request','Deny Instructor Request','2005-07-21 16:17:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','dependent_patches','Dependent Patches','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','dependent_patch_id','Dependent Patch ID','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','depth_reached','Directory depth limit has been reached.','2003-05-19 18:36:54','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','description','Description','2003-05-19 18:37:34','global description label');
+INSERT INTO `language_text` VALUES ('en', '_template','desktop_theme','Desktop Theme','2010-06-18 15:46:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','detailed_profile','Detailed Profile','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','details','Details','2003-05-19 18:38:03','instructor taught course table of the control panel');
+INSERT INTO `language_text` VALUES ('en', '_template','detail_view','Detail View','2009-06-30 16:13:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','dictionary','Dictionary','2008-09-09 09:03:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','direction','Direction','2004-11-20 19:36:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','directory','Directory','2005-03-09 15:28:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','directory_name','Directory Name','2003-05-19 18:38:42','file manager zip utility');
+INSERT INTO `language_text` VALUES ('en', '_template','directory_total','Directory Total','2003-05-19 18:39:15','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','disable','Disable','2004-10-15 15:46:20','to disable a theme in theme manager');
+INSERT INTO `language_text` VALUES ('en', '_template','disabled','Disabled','2005-04-01 10:39:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','disable_syndicate','Disable Announcements syndication','2005-01-04 09:48:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','disband_group','Disband Group','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','discussions','Discussions','2003-05-19 18:43:39','global text for discussions label');
+INSERT INTO `language_text` VALUES ('en', '_template','disk_usage','Disk Usage','2007-07-26 17:02:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','display','Display','2004-08-18 12:03:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','display_name_format','Display Name Format','2006-09-07 10:21:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','display_name_format_fl','%2$s (%1$s)','2006-08-21 15:29:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','display_name_format_fst','%2$s %3$s %4$s','2006-08-21 15:27:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','display_name_format_fstl','%2$s %3$s %4$s (%1$s)','2006-08-21 15:28:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','display_name_format_l','%s','2006-08-21 15:25:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','display_name_format_lf','%1$s (%2$s)','2006-08-21 15:29:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','display_name_format_lfst','%1$s (%2$s %3$s %4$s)','2006-08-21 15:30:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','display_settings','Text Settings','2010-04-12 16:32:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','dob','Date of Birth','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','donate','Donate','2008-09-12 10:51:45','admin home');
+INSERT INTO `language_text` VALUES ('en', '_template','donate_text','The <a href=\"http://idrc.ocad.ca\">IDRC</a> is a not-for-profit organization that relies on community support to maintain ATutor, and keep it free. If you have found ATutor useful, please consider making a donation.','2011-02-09 13:06:37','admin home');
+INSERT INTO `language_text` VALUES ('en', '_template','done','Done','2003-05-19 18:44:34','enrolment manager');
+INSERT INTO `language_text` VALUES ('en', '_template','download','Download','2004-04-30 15:35:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','download_content_package','Download content package:','2010-06-10 11:28:18','');
+INSERT INTO `language_text` VALUES ('en', '_template','download_file','Download File','2005-01-10 15:40:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','download_test_csv','Download CSV of Results','2005-05-30 14:32:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','drag','Drag','2008-05-22 09:15:04','alt text for fluid theme drag icon');
+INSERT INTO `language_text` VALUES ('en', '_template','due','Due','2006-03-20 14:38:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','due_date','Due Date','2006-03-23 11:36:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','duration','Total Duration','2005-03-01 12:40:00','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','duration_sec','Duration (sec)','2003-05-19 18:45:37','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','e','E','2007-01-10 13:48:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit','Edit','2004-05-26 18:31:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','editor','Editor','2003-10-22 15:01:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','editor_properties_instructions','Select the radio button of the content you want to move. Use the %1$s and %2$s buttons to place this topic after or before the selected location, respectively. Use the %3$s button to add this topic as a child of the selected location.','2009-09-16 13:13:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','editor_properties_insturctions_related','Add Related Topics by selecting the topic from the list.','2004-02-11 12:33:28','editor properties instructions');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_admin','Edit Administrator Account','2005-03-03 11:06:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_announcement','Edit Announcement','2003-05-19 18:47:32','instructor announcement editor');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_backup','Edit - %s','2004-10-19 12:46:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_category','Edit Category','2003-05-19 18:49:44','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_contact','Edit Alternate Contact','2009-12-03 15:38:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_content','Edit Content','2003-05-19 18:50:07','instructor content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_content_folder','Edit Content Folder','2009-11-25 11:36:02','Content');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_education','Edit Education','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_forum','Edit Forum','2003-05-19 18:50:54','instructor forum editor');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_for_minutes','for another %s minutes','2007-02-23 11:53:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_glossary','Edit Glossary Term','2003-05-19 18:54:15','instructor edit glossary term screen');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_grade_scale','Edit Grade Scale','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_group','Edit Group','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_language','Edit Language','2005-01-21 18:24:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_link','Edit Link','2003-05-19 18:54:44','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_marks','Edit Marks','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_patch','Edit Patch','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_personal','Edit Personal Information','2009-12-07 13:43:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_poll','Edit Poll','2004-06-14 14:53:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_position','Edit Position','2009-05-28 14:21:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_post','Edit Post','2003-09-25 12:54:59','instructor edit forum post');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_profile','Edit Profile','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_question','Edit Question','2004-12-14 17:58:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_representation','Edit Representative','2009-12-03 15:42:24','social profile');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_test','Edit Test/Survey','2004-08-25 14:08:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_tests','Edit Tests/Assignments','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_this_page','Edit This Page','2005-03-31 14:16:42','content page shortcuts');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_user','Edit Member','2004-03-29 11:49:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','edit_websites','Edit Websites','2009-05-28 14:21:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','education','Education','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','email','Email','2003-05-19 19:07:59','global email label');
+INSERT INTO `language_text` VALUES ('en', '_template','email_address','Email Address','2003-05-19 19:09:06','profile, password reminder');
+INSERT INTO `language_text` VALUES ('en', '_template','email_again','Email Address Again','2009-06-03 15:33:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','email_approvals','Email me when new enrollments require approval.','2004-01-22 14:57:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','email_confirmation_message','You have registered for an account on %1s. Please finish the registration process by confirming your email address by using the following link: %2s .','2005-06-24 15:32:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','email_confirmation_message2','To finish changing your account\'s email address on %1s, please confirm your email address by using the following link: %2s .','2006-05-11 16:08:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','email_confirmation_subject','Email Confirmation','2005-03-22 11:35:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','email_enrollment_message','An enrolment request has been made in the course %s.','2010-01-07 13:06:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','email_enrollment_subject','Course Enrolment','2010-01-07 13:06:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','emoticons','Emoticons','2003-05-22 15:43:20','code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','empty','empty','2003-05-19 19:10:56','prefs page, menu options');
+INSERT INTO `language_text` VALUES ('en', '_template','empty_gradebook','Gradebook is empty.','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','empty_url','Please provide a remote URL.','2010-06-18 13:28:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','enable','Enable','2004-10-15 15:52:29','enable button in theme');
+INSERT INTO `language_text` VALUES ('en', '_template','enabled','Enabled','2005-05-06 12:49:07','theme');
+INSERT INTO `language_text` VALUES ('en', '_template','enable_mail_queue','Enable Mail Queue','2006-04-03 14:21:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','enable_sco_rte','Enable the SCORM 1.2 RTE','2005-05-10 10:52:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','enable_syndicate','Enable Announcements syndication via <acronym title=\"Rich Site Summary\">RSS</acronym>','2005-01-04 10:27:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','enable_uploader','Enable multi-file uploader tool','2008-07-24 16:19:54','Used for toggling between Fluid\'s Uploader and the basic uploader');
+INSERT INTO `language_text` VALUES ('en', '_template','encyclopedia','Encyclopedia','2008-09-10 12:25:52','tool prefs');
+INSERT INTO `language_text` VALUES ('en', '_template','end_date','End Date','2003-05-19 19:13:46','mytests');
+INSERT INTO `language_text` VALUES ('en', '_template','end_on','End on','2007-07-16 14:26:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','enroll','Enroll','2003-05-19 19:16:50','link text for enroll function');
+INSERT INTO `language_text` VALUES ('en', '_template','enrolled','Enrolled','2003-05-19 19:18:28','control centre, delete course, admin course manager, text label');
+INSERT INTO `language_text` VALUES ('en', '_template','enrolled_list_includes_assistants','Enrolled Students (includes Assistants)','2004-10-15 11:56:23','enrolled students list in list exporter in enrollement manager');
+INSERT INTO `language_text` VALUES ('en', '_template','enrolled_privileges','Enrolled With Privileges','2005-06-10 10:58:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','enrollment','Enrollment','2005-12-07 11:19:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','enroll_me','Enroll Me','2005-04-14 13:15:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','enroll_to_post','You must be enrolled to post to the forums.','2004-12-09 11:07:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','enrolment','Enrollment','2006-10-18 11:47:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','enrol_login','You must login to your course to approve the new enrollment request using the Enrollment section.','2005-07-05 12:15:39','instructor enrolment screen');
+INSERT INTO `language_text` VALUES ('en', '_template','enrol_message3','ATutor Course Enrollment','2003-04-21 15:03:49','context');
+INSERT INTO `language_text` VALUES ('en', '_template','enrol_messagenew','An enrollment request was made for the ATutor course %s. Log into your course at %s , go to Manage and then to the unenrolled tab in the Enrollment Manager.','2005-03-29 12:23:47','instructor enrolment email notice');
+INSERT INTO `language_text` VALUES ('en', '_template','enrol_message_approved','Your enrollment request for the course %1s has been approved.\r\nLog into ATutor, then select the course from My Courses or use the login link below:\r\n\r\n%2s','2005-03-30 11:49:50','email message sent to enrollee once approved');
+INSERT INTO `language_text` VALUES ('en', '_template','enrol_message_subject','Course enrollment approved','2003-05-20 11:18:15','enroll email approval');
+INSERT INTO `language_text` VALUES ('en', '_template','enrol_msg','A new enrollment request has been made for your course %s.','2005-07-05 12:15:49','instructor email enrollment notification message');
+INSERT INTO `language_text` VALUES ('en', '_template','entertainment_arts','Arts and Entertainment','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','enter_chat','Enter the Chat','2003-05-27 14:20:24','achat entry page');
+INSERT INTO `language_text` VALUES ('en', '_template','enter_course','Enter Course','2005-03-14 15:15:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','enter_edit_mode','Enter Edit Mode','2009-09-16 13:12:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','entire_course','Entire Course','2006-07-24 10:44:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','error','Error','2003-05-19 20:20:07','global error label');
+INSERT INTO `language_text` VALUES ('en', '_template','error_logging','Error Logging','2005-02-07 16:11:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','everyone','Everyone','2004-12-07 17:54:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','existing_type','Existing Type:','2006-03-22 15:11:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','exit_edit_mode','Exit Edit Mode','2009-09-16 13:12:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','expand','Expand','2003-05-19 20:20:35','menu toggle alt text');
+INSERT INTO `language_text` VALUES ('en', '_template','experimental','Experimental','2008-12-02 11:58:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','expertise','Expertise','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','expired','Expired','2003-05-19 20:21:08','mytests');
+INSERT INTO `language_text` VALUES ('en', '_template','expire_never','Never expire','2007-02-13 15:38:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','expire_on','Expire on','2007-02-13 15:38:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','expiry_date','Expiry Date','2007-02-13 15:37:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','export','Export','2003-05-19 20:21:32','instructor control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','export_content','Export Content','2003-10-03 11:00:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','export_content_info','Export content as an <strong>IMS or SCORM conformant content package</strong>, or as an <strong>IMS Common Cartridge</strong>. Import the zipped package or cartridge into another ATutor system or another course, or into another conformant LMS or LCMS.','2009-11-12 16:52:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','export_content_package_what','What to export','2003-10-14 11:11:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','export_content_text','Download content, unzip it onto your computer, then click \"index.html\" to view.','2009-07-02 14:15:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','export_entire_course_or_chap','Entire course, or select a chapter below','2003-10-07 15:14:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','export_marks_info','To simplify the import process, you can export an empty csv file on the test you want to import, fill in the marks, import back into ATutor.','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','external_help','External Help','2005-03-17 10:31:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','external_tests','External Tests','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','extra','Extra','2005-09-21 13:35:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','extract','Extract','2003-05-19 20:23:33','file manager zip utility');
+INSERT INTO `language_text` VALUES ('en', '_template','extract_archive','Extract Archive','2003-05-19 20:23:58','file manager zip utility');
+INSERT INTO `language_text` VALUES ('en', '_template','extract_tip','Tip: Use an empty directory name to extract the contents into the current directory.','2003-05-19 20:24:27','file manager zip utility');
+INSERT INTO `language_text` VALUES ('en', '_template','f','F','2007-01-10 13:48:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','factory_default','Reset to preference defaults','2010-04-20 13:58:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','fail_feedback','Fail Feedback','2008-03-10 11:49:51','Test/Survey Property');
+INSERT INTO `language_text` VALUES ('en', '_template','false','False','2003-05-20 08:52:19','textmanager, mytests t/f label');
+INSERT INTO `language_text` VALUES ('en', '_template','fantasy','Fantasy','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','faq','Frequently Asked Questions (FAQ)','2005-10-19 12:41:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','farchive','Forum Archiver','2008-11-07 10:41:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','farchive_export','Export Forum','2008-11-07 10:42:18','');
+INSERT INTO `language_text` VALUES ('en', '_template','farchive_select_forum','Select Forum to Export:','2008-11-07 10:42:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','feedback','Feedback','2003-05-20 09:09:40','global feedback label');
+INSERT INTO `language_text` VALUES ('en', '_template','female','Female','2003-05-20 09:18:03','registration, profile');
+INSERT INTO `language_text` VALUES ('en', '_template','fg_colour','Foreground Colour','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','field','Area of Study','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','file','File','2003-05-20 09:18:31','file manager, zip tool');
+INSERT INTO `language_text` VALUES ('en', '_template','filemanager_date_format','%%Y-%%m-%%d %%H:%%i','2009-06-30 16:05:29','file manager date');
+INSERT INTO `language_text` VALUES ('en', '_template','fileman_disabled_title','File Manager disabled','2010-04-14 11:26:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','fileman_enabled_title','Open File Manager window','2010-04-14 11:26:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','files','Files','2005-08-16 15:27:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','file_manager','File Manager','2003-05-20 09:27:19','global file manager label');
+INSERT INTO `language_text` VALUES ('en', '_template','file_manager_frame','File Manager Frame','2005-01-31 11:14:37','viewing files in filemanger frame');
+INSERT INTO `language_text` VALUES ('en', '_template','file_manager_new','Create a New File','2004-10-29 14:53:13','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','file_name','File Name','2004-10-15 12:08:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','file_placeholder','File Name Placeholder','2008-07-22 16:44:59','Placeholder text used in Fluid\'\'s multiple file uploader.');
+INSERT INTO `language_text` VALUES ('en', '_template','file_size','File Size','2004-10-14 13:57:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','file_storage','File Storage','2010-06-29 14:30:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','file_storage_edit_file','File Storage - Edit File','2010-12-08 20:15:04','File Storage');
+INSERT INTO `language_text` VALUES ('en', '_template','file_storage_edit_folder','File Storage - Edit Folder','2010-12-08 20:15:31','File Storage');
+INSERT INTO `language_text` VALUES ('en', '_template','file_storage_move','File Storage - Move','2010-12-08 20:15:52','File Storage');
+INSERT INTO `language_text` VALUES ('en', '_template','file_storage_new_file','File Storage - New File','2010-12-08 20:21:53','File Storage');
+INSERT INTO `language_text` VALUES ('en', '_template','file_storage_version_control','Maintain File Storage Version Control','2010-06-29 14:29:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','file_to_read','File To Read','2006-04-13 11:03:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','fill_groups','Fill Groups','2006-03-22 11:52:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','fill_groups_randomly','Fill groups randomly upon creation.','2006-03-22 11:53:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','filter','Filter','2005-03-30 14:52:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','final_score','Final Score','2007-03-16 14:10:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','find_gadgets','Find Gadgets','2009-07-13 14:55:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','find_results_in','Find results in','2004-08-18 12:02:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','first_name','First Name','2003-05-20 09:58:26','registration, profile');
+INSERT INTO `language_text` VALUES ('en', '_template','fix_content_ordering','Fix Content Ordering','2004-10-18 14:03:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','fix_content_ordering_text','Occasionally, content pages can get disordered due to miscalculation. This is an ongoing issue that will be resolved in an upcoming version of ATutor but until then, we have made a patch available that can be used to fix the issue. If you are experiencing this problem, please use the button below.','2005-03-10 11:19:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','flag_text','<small>%s indicates files have been handed in.</small>','2011-05-30 10:07:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','flowplayer','Flowplayer','2010-03-18 11:46:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','focus','Focus','2008-10-06 13:41:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','folder','Folder','2003-05-20 10:05:51','file manager, zip utility');
+INSERT INTO `language_text` VALUES ('en', '_template','font_face','Font Face','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','font_size','Font Size','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','formatting','Formatting','2003-05-20 10:07:25','add/ edit content, news, export');
+INSERT INTO `language_text` VALUES ('en', '_template','form_editor','Atutor Form Editor','2005-03-11 10:31:45','Form editor for test questions');
+INSERT INTO `language_text` VALUES ('en', '_template','form_focus','Form Focus On Page Load','2005-03-29 12:38:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','forum','Forum','2004-04-16 10:54:23','Forum list header');
+INSERT INTO `language_text` VALUES ('en', '_template','forums','Forums','2003-05-20 10:08:05','global forums label');
+INSERT INTO `language_text` VALUES ('en', '_template','forum_date_format','%%D %%M %%j %%H:%%i','2004-05-26 15:18:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','forum_email_links','All email addresses are made into links.','2003-05-20 10:11:14','forums email address links instruction');
+INSERT INTO `language_text` VALUES ('en', '_template','forum_general_discussion','General Discussion','2004-12-16 11:07:19','default forum in forum list');
+INSERT INTO `language_text` VALUES ('en', '_template','forum_html_disabled','HTML is disabled.','2003-05-20 10:11:42','forum compose message');
+INSERT INTO `language_text` VALUES ('en', '_template','forum_links','All words starting with http:// are made into links.','2003-05-20 10:12:23','forum compose link creation instruction');
+INSERT INTO `language_text` VALUES ('en', '_template','forum_new_submsg','*DO NOT REPLY TO THIS MESSAGE*\r\nA discussion thread in the ATutor course \"%s\" has recieved a reply. Login to access the \"%s\" forum and view the \"%s\" thread. Click and view the message at: %s','2009-12-16 11:51:02','forum email message to thread subscribers');
+INSERT INTO `language_text` VALUES ('en', '_template','forum_posts','Forum Posts','2005-03-16 14:59:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','forum_reply_to','Replying To','2003-05-20 10:12:48','forum reply to label for quoted messages');
+INSERT INTO `language_text` VALUES ('en', '_template','forward','Forward','2007-02-20 16:21:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','french','French','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','french-lsf','French-LSF','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','friends','My Contacts','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','friends_of_friends','Contacts of Your Contacts','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','from','From','2003-05-20 10:17:19','global from label');
+INSERT INTO `language_text` VALUES ('en', '_template','from_atutor','This message was sent through the ATutor system from course %s.','2003-05-20 10:19:30','instructor/admin contact for email message');
+INSERT INTO `language_text` VALUES ('en', '_template','from_email','From Email','2003-05-20 10:21:35','instructor/admin contact form');
+INSERT INTO `language_text` VALUES ('en', '_template','from_name','From Name','2003-05-20 10:22:02','instrcutor/admin contact from');
+INSERT INTO `language_text` VALUES ('en', '_template','fs_comment','%s Comment','2006-06-29 10:09:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','fs_comments','%s Comments','2006-06-29 09:55:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','fs_revision','%s Revision','2006-06-29 10:05:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','fs_revisions','%s Revisions','2006-06-29 09:52:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','full_name','Full Name','2006-03-27 15:55:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','fwd','Fwd','2007-02-20 16:20:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','g','G','2007-01-10 13:48:18','');
+INSERT INTO `language_text` VALUES ('en', '_template','gender','Sex','2003-05-20 10:22:19','registration, profile');
+INSERT INTO `language_text` VALUES ('en', '_template','general_help','For guidance on using ATutor see the official <a href=\"%1$s\" onclick=\"poptastic(\'%1$s\'); return false;\" target=\"_new\"><strong>ATutor Handbook</strong></a>.','2010-09-17 13:53:17','atutor default footer');
+INSERT INTO `language_text` VALUES ('en', '_template','geography','Geographic','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','german','German','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','german-dgs','German-DGS','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','give_description','Brief description of your proposed course(s)','2005-03-09 12:19:48','control centre request instructor account form');
+INSERT INTO `language_text` VALUES ('en', '_template','global_more_than_10_pages','Global: More than 10 pages.','2006-09-27 12:42:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','glossary','Glossary','2003-05-20 10:24:33','global glossary label');
+INSERT INTO `language_text` VALUES ('en', '_template','glossary_definition','Definition','2003-05-20 10:25:13','glossary add/edit term');
+INSERT INTO `language_text` VALUES ('en', '_template','glossary_related','Related Term','2003-05-20 10:26:35','add/edit glossary term');
+INSERT INTO `language_text` VALUES ('en', '_template','glossary_term','Term','2003-05-20 10:27:01','add/edit glossary term');
+INSERT INTO `language_text` VALUES ('en', '_template','glossary_terms','Glossary Terms','2003-05-20 10:27:47','delete course feedback for terms deleted');
+INSERT INTO `language_text` VALUES ('en', '_template','glossary_term_limit','This term exceeds the 60 character limit and cannot be added.','2005-12-12 11:39:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','go','Go!','2006-04-26 13:47:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','google_key','Google Key','2005-10-20 11:02:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','google_key_txt','To access the Google search as an <em>embedded service</em>, you must first create an account and obtain a license key at <a href=\"http://code.google.com/apis/ajaxsearch/signup.html\" target=\"_new\">google.com/apis</a> and enter it below.\r\n<br /><br />\r\nThe search can be used as an external service by clearing the key field below.','2007-09-04 15:14:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','google_new_window','Search opens in a new window.','2005-11-30 16:45:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search','Web Search','2005-10-20 10:35:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_ajax','Google AJAX Search <em>(requires license key</em> <strong>after</strong> <em>Dec 5th, 2006)</em>','2008-07-28 10:51:24','Google search');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_attn','Please note that the old Google search is only applicable to those who have obtained a license key before Dec 5th, 2006; any new license key obtained after December 5th, 2006 is only applicable to the new Google AJAX search.','2007-09-04 14:55:56','Google search');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_books','Books','2007-08-31 11:25:12','Google search');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_images','Images','2007-08-31 11:22:38','Google search');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_local','Local','2007-08-31 11:57:07','Google search');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_news','News','2007-08-31 11:23:30','Google search');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_soap','Old Google Search <em>(requires license key</em> <b>before</b> <em>Dec 5th, 2006)</em>','2008-07-28 10:51:46','Google search');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_text','Search the Web outside this course for additional information.','2009-07-02 14:17:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_txt','To search for specific words within a website, enter them below then use the \'Search\' button.  If you wish to search course content, use the <a href=\"search.php\">content search</a>.','2005-10-20 11:02:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_type_txt','Please select one of the Google search interfaces.','2007-08-31 14:36:30','Google search');
+INSERT INTO `language_text` VALUES ('en', '_template','google_search_videos','Videos','2007-08-31 11:22:53','Google search');
+INSERT INTO `language_text` VALUES ('en', '_template','goto_content','Go to content','2004-05-11 15:18:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','goto_menu','Go to Menu','2006-07-14 10:14:57','2nd invisible link on the page');
+INSERT INTO `language_text` VALUES ('en', '_template','goto_top','Go to Top','2003-05-20 10:34:03','bypass link text in ATutor header');
+INSERT INTO `language_text` VALUES ('en', '_template','go_to_my_start_page','Go To My Start Page','2008-03-10 12:02:45','auto enroll property');
+INSERT INTO `language_text` VALUES ('en', '_template','grade','Grade','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','gradebook','Gradebook','2011-05-11 14:40:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','gradebook_text','Review marks for your tests and assignments.','2009-07-02 14:16:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','grades_uncomparable','Grades are uncomparable. Choose another way to solve conflict','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','grade_already_exists','Conflict: Grade already exists - %s','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','grade_info','Note: \"Grade\" field can be grade defined in \"Grade Scale\" or percentage like 50%%.','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','grade_scale','Grade Scale','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','grant_write_permission','Please grant <strong>write</strong> permission to folders and files listed below:<p><strong>Note:</strong> To change permissions on Unix use <kbd>chmod a+rw</kbd> then the file name.</p>','2008-04-21 15:08:55','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','graph','Graph','2003-05-20 10:36:18','instructor course details graph label');
+INSERT INTO `language_text` VALUES ('en', '_template','gray','Gray','2003-05-20 10:36:32','global code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','green','Green','2003-05-20 10:36:45','global code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','group','Group','2005-05-03 15:42:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','grouped_by_course','Grouped by course','2004-08-18 12:04:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','groups','Groups','2004-11-25 15:45:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','groups_create_automatic','Create multiple groups automatically','2006-03-21 15:36:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','groups_create_manual','Create a single group manually','2006-03-21 15:36:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','groups_text','Participate in group learning activities.','2009-07-02 14:16:03','');
+INSERT INTO `language_text` VALUES ('en', '_template','groups_type','Groups Type','2006-03-22 11:16:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_about_private','Users will have to be approved by the moderator to join this group.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_about_public','The group is opened to all users.  No approval is needed.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_admin','Group Moderator','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_forums','Group Forums','2006-05-24 08:48:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_info','Group Details','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_invitation','ATutor Social Group Invitation','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_invitation_accepted','ATutor Social Group Invitation Accepted','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_joined','You are a member of this group.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_last_update','Last Update','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_last_updated','Last Updated ','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_logo','Group Logo','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_members','Group Members','2005-06-10 10:34:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_name','Group Name','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_prefix','Group Prefix','2006-03-22 11:17:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_request','ATutor Social Join Group Request','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_request_accepted','ATutor Social Group Request Accepted','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','group_type','Group Type','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','guest','Guest','2003-05-20 10:37:10','name assigned to non-registered users');
+INSERT INTO `language_text` VALUES ('en', '_template','guests','Guests','2003-05-20 10:38:19','instructor course stats/details');
+INSERT INTO `language_text` VALUES ('en', '_template','guests_not_listed','Guests are not listed','2003-05-20 10:38:32','who\'s on menu');
+INSERT INTO `language_text` VALUES ('en', '_template','guest_information','Guest Information','2008-10-06 13:40:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','guest_name','Guest Name','2008-10-06 13:41:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','guide','Guide','2010-09-21 11:46:53','mobile header.tmpl');
+INSERT INTO `language_text` VALUES ('en', '_template','h','H','2007-01-10 13:48:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','handout_to_read','Handout to Read','2006-04-13 11:58:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','hand_in','Hand In','2006-03-20 14:36:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','has_added_app','has added the <a href=\"%s\">%s</a>  gadget','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','has_added_group','has added the group %s.','2009-07-22 14:35:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','has_invited_join','%s has invited you to join the group %s.','2009-07-22 14:36:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','has_joined_group','has joined the group %s.','2009-07-22 14:35:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','has_requested_to','%s has requested to join the group %s.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','has_updated_group','has updated the group %s.','2009-07-22 14:35:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','have','Have','2007-02-21 13:22:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','have_not','Have not','2007-02-21 14:06:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','help','Help','2003-05-20 10:41:08','global help label');
+INSERT INTO `language_text` VALUES ('en', '_template','hidden','Hidden','2003-05-20 10:42:27','instructor/admin contact form');
+INSERT INTO `language_text` VALUES ('en', '_template','hide','Hide','2005-03-15 11:37:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','hide_course','Hide this course from the Browse Courses list','2003-05-20 10:42:41','create course screen');
+INSERT INTO `language_text` VALUES ('en', '_template','history','History','2003-05-25 08:36:00','context (removed after v1.1)');
+INSERT INTO `language_text` VALUES ('en', '_template','hits','Hits','2003-05-20 10:44:14','links database link hit count');
+INSERT INTO `language_text` VALUES ('en', '_template','hit_count','Hit Count','2003-05-20 10:45:17','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','hl_colour','Highlight Colour','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','home','Home','2006-05-31 11:12:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','home_url','Home URL','2005-03-03 10:50:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','horizontal','Horizontal','2004-12-01 13:35:05','edit/create option test questions');
+INSERT INTO `language_text` VALUES ('en', '_template','hot','Hot!','2003-05-20 10:47:10','(not used)');
+INSERT INTO `language_text` VALUES ('en', '_template','hot_thread','Hot very active thread!','2003-05-20 10:47:30','forum message for busy thread');
+INSERT INTO `language_text` VALUES ('en', '_template','hours_24','24hr','2003-05-20 10:48:10','release date picker');
+INSERT INTO `language_text` VALUES ('en', '_template','hour_short','h','2007-07-09 12:31:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','howto_course','<a href=\"http://atutor.ca/atutor/docs/index.php\">ATutor Documentation</a>','2005-06-01 12:32:03','help');
+INSERT INTO `language_text` VALUES ('en', '_template','howto_course_text','In addition to the <a href=\"documentation/\" onclick=\"poptastic(\'documentation/\'); return false;\" target=\"_new\"><em>ATutor Handbook</em></a> bundled with ATutor, other documentation sources are available through the <a href=\"http://atutor.ca/atutor/docs/index.php\">ATutor Documentation</a> site.','2005-07-06 10:04:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','how_to_solve_conflict','How to solve conflict','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','html','HTML','2003-05-20 10:48:48','global HTML label');
+INSERT INTO `language_text` VALUES ('en', '_template','html_only',' Plain Text or HTML files only.','2003-05-20 10:49:49','add/edit content, header');
+INSERT INTO `language_text` VALUES ('en', '_template','i','I','2007-01-10 13:48:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','icon','Icon','2005-03-03 11:19:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','icon_view','Icon View','2009-06-30 16:13:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','id','ID','2003-05-20 10:50:57','global ID (identification number) label');
+INSERT INTO `language_text` VALUES ('en', '_template','ignore_validation','Ignore validation','2010-06-16 10:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','illegal_file','Illegal File Type','2003-05-20 10:52:36','zip utility when archive contain illegal extension');
+INSERT INTO `language_text` VALUES ('en', '_template','illegal_file_extensions','Illegal File Extensions','2005-03-03 10:52:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','image','Image','2003-05-20 10:53:28','global code picker image code link text');
+INSERT INTO `language_text` VALUES ('en', '_template','image_validation_text','In the above image there are numbers and/or letters displayed.  Please type them into the following field.','2009-07-16 09:02:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','image_validation_text2','This helps ensure a live person is registering on this system.','2009-06-03 15:33:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','import','Import','2003-05-20 11:56:51','instructor import/export screen');
+INSERT INTO `language_text` VALUES ('en', '_template','import_a_new_lang','Import a New Language','2003-06-04 15:34:43','admin language manager');
+INSERT INTO `language_text` VALUES ('en', '_template','import_content','Import Content','2005-02-18 14:05:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_content_info','Import a conformant IMS content package or IMS common cartridge. Select a location within the existing content to <strong>import into</strong>.  Or enter a URL to content package or common cartridge, to import directly from the Web.','2009-11-12 16:56:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_content_package','Import Content Package','2003-10-03 13:07:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_content_package_bottom_subcontent','As top level content, or as subcontent selected below','2003-10-20 13:36:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_content_package_where','Import into','2003-10-14 12:24:03','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_err_email_exists','Account exists.','2004-01-30 15:38:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_err_email_invalid','Email invalid.','2004-01-30 13:28:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_err_email_missing','Email missing.','2004-01-30 13:28:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_err_full_name_exists','First and Last name exist.','2006-03-28 10:40:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_err_username_exists','Username already taken.','2004-01-30 13:28:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_err_username_invalid','Username contains invalid characters.','2004-01-30 13:28:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_export_external_marks','External Marks','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','import_lang_howto','You may import additional languages into this installation of ATutor by downloading the language pack from the ATutor.ca website then uploading it using the form below, or if the drop down below is able to detect the available languages remotely then it may be used as well.','2004-10-18 14:25:21','admin language manager');
+INSERT INTO `language_text` VALUES ('en', '_template','import_marks_info','A mark list may be imported into ATutor. Create the mark list in a comma separated values (CSV) format as follows: \"firstname\", \"lastname\", \"email\", \"mark\" with one student per line. Please leave the first line as title. The mark in CSV file can be grade or percentage like 50%%. To simplify the process, you can export the CSV file with export functionality, update the marks into exported file and import back into ATutor.','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','import_package','Import Package','2005-05-17 12:06:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_question','Import Questions','2008-09-23 13:59:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_remote_language','Or, import a language directly from the ATutor.ca website.','2004-10-18 14:27:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_sep_txt','For auto-generated usernames, separate first and last names with:','2004-06-22 12:07:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_test','Import Test','2008-09-23 13:52:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','import_theme','Import Theme','2004-10-15 15:47:13','import theme button in theme manager');
+INSERT INTO `language_text` VALUES ('en', '_template','ims_files_missing','In this package, the file, %1$s, is missing or misplaced.','2009-12-07 14:25:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','ims_missing_references','Missing file references','2009-12-07 16:27:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','inactive_admin','Inactive Administrator','2005-03-03 11:00:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','inbox','Inbox','2003-05-20 11:59:47','global Inbox label');
+INSERT INTO `language_text` VALUES ('en', '_template','inbox_date_format','%%l %%M %%j, %%Y - %%H:%%i','2003-05-20 12:00:47','inbox screen (see www.php.net/date for codes)');
+INSERT INTO `language_text` VALUES ('en', '_template','inbox_notification','Inbox Notification','2005-03-16 14:40:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','info','Course Info','2005-04-01 15:09:41','global info message box label');
+INSERT INTO `language_text` VALUES ('en', '_template','initial_content','Initial Content','2004-10-15 15:45:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','insert','Insert','2003-05-20 12:02:16','instructor add content screen');
+INSERT INTO `language_text` VALUES ('en', '_template','insert_into','Insert Into','2005-03-03 12:15:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','install','Install','2005-08-16 15:51:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','installed','Installed','2008-10-28 10:58:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','installed_date','Installed Date','2008-11-17 10:41:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','install_modules','Install Modules','2005-08-16 16:17:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','install_module_text','To install a new module it must first be extracted into the <code>%s</code> directory for it to appear in the list below.','2005-08-17 13:47:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','install_themes','Install Themes','2008-11-14 11:47:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','install_themes_text','To install new themes the <code>%s</code> directory must be set to writeable. Use the command <kbd>chmod a+w themes</kbd> on Unix machines, while on Windows the web server must have write permissions on that directory.','2005-12-14 12:36:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','institution','School/Institution','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','instructions','Instructions','2005-04-05 14:25:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor','Instructor','2003-05-20 12:02:59','global instructor label');
+INSERT INTO `language_text` VALUES ('en', '_template','instructors','Instructors','2003-05-20 12:03:37','admin general statistics label for number of instructors');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_contact_form','Instructor Contact Form','2003-05-20 12:12:32','instructor contact form heading');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_request','ATutor Instructor Request','2003-05-25 08:37:50','subject line in email to admin when instructor request is made');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_requests','Instructor Requests','2003-05-20 12:19:52','admin home page heading');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_requests_text','There are <strong>%s</strong> instructor requests pending approval.','2005-03-30 15:30:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_request_deny','Your ATutor instructor request has been denied.','2003-10-06 15:14:48','email message to denied instructor');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_request_denymsg1','Registration information is incomplete.','2003-10-06 15:55:47','reason why denied');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_request_denymsg2','Inappropriate subject matter.','2003-10-06 16:01:26','reason why denied');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_request_denymsg3','The course description requires more detail.','2003-10-07 15:47:33','deny instructor request');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_request_denymsg4','You have requested enrollment with the wrong form.','2003-10-07 15:52:12','admin deny instructor request');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_request_email_notification','Instructor Request Email Notification','2005-03-03 10:51:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_request_enterdenymsg','Choose a message explaining why the user\'s request was denied or enter your own.','2003-10-06 15:19:05','Header text for deny message text area');
+INSERT INTO `language_text` VALUES ('en', '_template','instructor_request_reply','Your ATutor instructor request has been approved. Go to %s to login to My Courses, then select \"Create Course\".','2005-05-27 13:53:06','email in reply to instructor account approval');
+INSERT INTO `language_text` VALUES ('en', '_template','interests','Interests','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','internet_technology','Internet Technology','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','invalid_session','Not a Valid Session','2003-05-20 12:26:29','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','invite','Invite','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','invite_groups','Invite New Group Members','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','in_minutes','Minutes','2007-02-20 10:30:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','in_reply_to','In reply to','2003-05-20 12:27:21','replyto label for quoted forum or inbox message');
+INSERT INTO `language_text` VALUES ('en', '_template','irish-isl','Irish-ISL','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','italian','Italian','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','italian-lis','Italian-LIS','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','italic','Italic','2003-05-20 12:27:44','global code picker link text');
+INSERT INTO `language_text` VALUES ('en', '_template','item','Item','2007-01-10 13:46:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','j','J','2007-01-10 13:48:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','japanese-jsl','Japanese-JSL','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','join_group','Join Group','2009-06-12 10:06:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','jump','Jump','2003-05-20 12:28:03','jump menu submit button text');
+INSERT INTO `language_text` VALUES ('en', '_template','jump_codes','Jump over the code picker','2003-05-20 12:29:53','alt text for bypass link to jump over the code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','jump_redirect','Direct Jump','2004-11-30 10:03:55','preferecnes');
+INSERT INTO `language_text` VALUES ('en', '_template','just_social','Use just ATutor Social','2009-07-17 14:11:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','kb','<acronym title=\"Kilobytes\">KB</acronym>','2007-12-09 12:56:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','keep_email_private','Keep email hidden from others.','2006-03-28 11:29:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','keep_it_short','Tip: Keep it short, no spaces.','2003-05-20 12:31:53','file manager suggestion for folder creation');
+INSERT INTO `language_text` VALUES ('en', '_template','keywords','Keywords','2003-09-28 10:22:10','content add/edit');
+INSERT INTO `language_text` VALUES ('en', '_template','language','Language','2003-05-20 12:32:05','profile, registration');
+INSERT INTO `language_text` VALUES ('en', '_template','languages','Languages','2005-03-03 11:07:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','lang_code','Language Code','2006-09-27 14:12:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','last_accessed','Last Accessed','2005-03-01 12:52:16','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','last_comment','Last Comment','2003-05-20 12:33:10','forums, thread view column label');
+INSERT INTO `language_text` VALUES ('en', '_template','last_login','Last Login','2005-03-03 11:03:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','last_modified','Last Modified','2003-05-20 12:36:35','instructor content editor link text');
+INSERT INTO `language_text` VALUES ('en', '_template','last_name','Last Name','2003-05-20 12:37:39','registration, profile, admin user manager');
+INSERT INTO `language_text` VALUES ('en', '_template','last_post','Last Post','2004-04-16 11:24:59','Refers to date of last post in forum');
+INSERT INTO `language_text` VALUES ('en', '_template','last_updated','Last updated: %s','2006-05-19 14:54:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','latex_server','MimeTex Server for the LaTex service.  For production purposes, please install mimeTeX on your own server. (http://www.atutor.ca/cgi/mimetex.cgi?)','2010-03-04 08:46:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','leave_blank','Leave blank','2003-05-20 12:39:07','mytest/test manager question option');
+INSERT INTO `language_text` VALUES ('en', '_template','leave_group','Leave Group','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','leave_unchanged','Leave unchanged','2005-05-10 16:04:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','left','Left','2004-04-27 11:00:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','left_blank','Left blank','2003-05-20 12:40:14','mytests/test manager question result text for unanswerd question');
+INSERT INTO `language_text` VALUES ('en', '_template','legend','Legend','2003-05-20 12:41:00','instructor course statistics/details');
+INSERT INTO `language_text` VALUES ('en', '_template','license','License','2005-08-16 15:27:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','light_gray','Light Gray','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','limit_to_group','Assign To Groups','2004-12-10 14:39:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','link','Link','2003-05-20 12:41:18','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','links','Links','2005-02-09 13:25:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','list_add_course_list','Add to Course List','2004-10-19 14:39:08','Enrollment manager, add students manually button');
+INSERT INTO `language_text` VALUES ('en', '_template','list_add_enrolled_list','Add to Enrolled List','2004-10-19 14:51:02','enrollment manager, add to enrolled students list button');
+INSERT INTO `language_text` VALUES ('en', '_template','list_add_unenrolled_list','Add to Un-enrolled List','2004-10-19 14:47:31','enrollment manager, add to unenrolled students list button');
+INSERT INTO `language_text` VALUES ('en', '_template','list_create_course_list','Create Course List','2004-10-15 12:04:06','create list of students function in enrollement manager');
+INSERT INTO `language_text` VALUES ('en', '_template','list_export_course_list','Export Course List','2003-09-16 10:15:29','enrol admin');
+INSERT INTO `language_text` VALUES ('en', '_template','list_import_course_list','Import Course List','2003-09-16 09:35:35','import course list');
+INSERT INTO `language_text` VALUES ('en', '_template','list_import_howto','A course enrollment list may be imported into ATutor. Create the course list in a comma separated values (CSV) format as follows: <code>\"firstname\", \"lastname\", \"email\"</code> with one student per line.  New students will receive their access instructions by email.','2004-02-05 10:22:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_agree','Agree','2004-08-12 15:45:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_always','Always','2004-08-26 12:23:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_disagree','Disagree','2004-08-12 15:46:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_excellent','Excellent','2004-08-12 15:42:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_fair','Fair','2004-08-12 15:43:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_good','Good','2004-08-12 15:42:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_important','Important','2004-08-26 12:26:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_little_importance','Of Little Importance','2004-08-26 12:26:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_mod_important','Moderately Important','2004-08-26 12:26:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_never','Never','2004-08-26 12:25:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_occasionally','Occasionally','2004-08-26 12:24:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_poor','Poor','2004-08-12 15:43:18','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_rarely','Rarely','2004-08-26 12:24:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_strongly_agree','Strongly Agree','2004-08-12 15:45:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_strongly_disagree','Strongly Disagree','2004-08-12 15:46:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_undecided','Undecided','2004-08-26 11:46:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_unimportant','Unimportant','2004-08-26 12:27:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_very_frequently','Very Frequently','2004-08-26 12:23:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_very_good','Very Good','2004-08-12 15:42:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_very_important','Very Important','2004-08-26 12:25:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_very_poor','Very Poor','2004-08-12 15:43:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','lk_very_rarely','Very Rarely','2004-08-26 12:24:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','locale','Locale','2004-11-20 19:35:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','local_network','Local Network','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','location','Location','2005-03-04 14:06:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','lock_no_post','No posting, but allow reading.','2003-05-20 12:46:36','forum instructor lock text');
+INSERT INTO `language_text` VALUES ('en', '_template','lock_no_post1','This thread is locked from posting.','2003-05-20 12:46:45','forum instructor lock text');
+INSERT INTO `language_text` VALUES ('en', '_template','lock_no_read','No posting and no reading.','2003-05-20 12:46:56','context');
+INSERT INTO `language_text` VALUES ('en', '_template','lock_no_read1','This thread is locked from reading and posting.','2003-05-20 12:47:24','forum thread display lock message');
+INSERT INTO `language_text` VALUES ('en', '_template','lock_submit','Apply Lock','2003-05-20 12:47:50','text for instructor forum lock button');
+INSERT INTO `language_text` VALUES ('en', '_template','lock_thread','Lock Thread','2003-05-20 12:48:14','Alt text for forum instructor lock icon');
+INSERT INTO `language_text` VALUES ('en', '_template','logged_in_within','logged in within','2007-02-21 13:37:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','login','Login','2006-07-27 17:35:30','global login label');
+INSERT INTO `language_text` VALUES ('en', '_template','login_into_atutor','Log into your ATutor Account','2003-05-20 12:51:48','login after enrollment message');
+INSERT INTO `language_text` VALUES ('en', '_template','login_name','Login Name','2003-05-20 12:52:32','control centre account information label');
+INSERT INTO `language_text` VALUES ('en', '_template','login_name_or_email','Login Name or Email','2006-03-28 14:21:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','login_statistics','%s login statistics for  %s','2003-05-31 14:49:29','course login details');
+INSERT INTO `language_text` VALUES ('en', '_template','login_text','Enter your login name or your email address, and  your password.','2010-10-07 09:00:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','logout','Log-out','2003-05-20 12:53:44','global logout link text');
+INSERT INTO `language_text` VALUES ('en', '_template','log_file_bundle','Log File Bundle','2005-03-10 16:36:31','error logging - email subject');
+INSERT INTO `language_text` VALUES ('en', '_template','ltr','Left to Right','2004-11-20 19:37:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','magenta','Magenta','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','mail_queue_cron','You must set-up the <a href=\"admin/cron_config.php\">cron</a> to use this feature.','2006-04-03 14:21:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','maintainers','Maintainers','2005-08-16 15:26:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','main_navigation','Main Navigation','2005-03-07 12:09:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','malaysian-msl','Malaysian-MSL','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','male','Male','2003-05-20 12:55:53','registration, profile, admin user manager');
+INSERT INTO `language_text` VALUES ('en', '_template','manage','Manage','2005-02-23 12:05:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','manage_languages','Manage Existing Languages','2004-09-23 16:30:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','manage_lang_howto','Below are all the languages currently available in this installation of ATutor. You may export the language as an ATutor language pack or delete it from the installation.','2004-10-18 14:23:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','manage_links','Manage Links','2006-05-24 11:24:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','mark','Mark','2003-05-20 12:56:19','mytests/test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','marked_label','Marked (%s)','2005-05-12 10:25:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','marks','marks','2003-05-20 12:56:34','mytests/test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','mark_alumni','Mark Alumni','2004-10-25 12:24:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','mark_statistics','Submission Statistics','2004-08-26 13:27:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','master_list_authentication','Authenticate Against A Master Student List','2005-03-31 13:54:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','master_not_in_list','If existing user not in new list','2005-05-10 16:04:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','master_student_list','Master Student List','2005-04-04 10:39:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','material','Material','2004-10-14 14:10:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','material_announcements','Announcements (%s)','2004-10-14 14:14:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','material_content_pages','Content Pages (%s)','2004-10-14 14:12:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','material_files','Files (%s)','2004-10-14 14:22:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','material_glossary','Glossary (%s)','2004-10-14 14:22:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','material_groups','Groups (%s)','2004-11-25 15:43:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','material_links','Links (%1$s categories,  %2$s links)','2004-10-14 14:18:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','material_polls','Polls (%s)','2004-10-14 14:21:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','material_select_all','Select All','2004-10-14 14:11:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','material_stats','Statistics (%s days)','2004-10-14 14:23:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','maximum','Maximum','2003-05-20 12:59:01','instructor course statistics/details');
+INSERT INTO `language_text` VALUES ('en', '_template','maximum_course_float','Maximum Course Float','2005-03-03 10:52:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','maximum_course_size','Maximum Course Size','2005-03-03 10:51:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','maximum_file_size','Maximum File Size','2005-03-03 10:51:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','maximum_login_attempt','Maximum Login Attempts','2009-06-03 15:33:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','max_backups_reached','You have reached the maximum number of backups allowed.','2004-10-15 14:16:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','max_file_size','Max File Size','2003-05-20 12:59:52','admin course manager properties');
+INSERT INTO `language_text` VALUES ('en', '_template','max_file_size_system','Maximum system allows','2003-10-14 14:32:52','php\'s max file size');
+INSERT INTO `language_text` VALUES ('en', '_template','mb','<acronym title=\"Megabyte\">MB</acronym>','2007-07-26 14:05:45','short for MB (megabytes)');
+INSERT INTO `language_text` VALUES ('en', '_template','media','Media','2007-06-15 14:41:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','members','Members','2003-05-20 13:00:39','instructor course statistics/details');
+INSERT INTO `language_text` VALUES ('en', '_template','member_id','Member ID','2003-05-20 13:01:18','admin user manager column heading');
+INSERT INTO `language_text` VALUES ('en', '_template','member_stats','Student Specific Usage','2005-03-03 15:25:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','menu','Menu','2003-05-20 13:02:17','preferences option');
+INSERT INTO `language_text` VALUES ('en', '_template','menu_menu','Content Navigation','2005-03-30 10:13:27','context (?)');
+INSERT INTO `language_text` VALUES ('en', '_template','message','Message','2003-05-20 13:06:56','inbox send message screen');
+INSERT INTO `language_text` VALUES ('en', '_template','message_board','Message Board','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','message_notification','Message Notification','2005-03-14 15:31:15','preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','mexican-lsm','Mexican-LSM','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','minimum','Minimum','2003-05-20 13:08:57','instructor course statistics/details');
+INSERT INTO `language_text` VALUES ('en', '_template','minutes','%s min.','2006-03-31 15:41:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','minute_short','m','2007-07-09 12:31:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','missing','Missing','2005-10-05 14:02:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','missing_content','Missing Content','2005-03-07 15:25:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','missing_info','Missing Info','2005-08-17 13:23:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','mobile_theme','Mobile Theme','2010-06-18 15:46:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','modules','Modules','2005-08-16 13:40:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','module_install_directory','The following directory must be created for this module to install and function: <kbd>%s</kbd>.','2005-09-22 14:14:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','module_name','Module Name','2005-08-17 13:11:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','module_uninstall','Uninstall Module','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','mod_rewrite','mod_rewrite','2008-05-14 12:05:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','monospaced','Monospaced','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','month','Month','2004-06-24 15:45:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','more_options','More options...','2007-02-21 11:48:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','move','Move','2004-01-15 13:31:18','editing content');
+INSERT INTO `language_text` VALUES ('en', '_template','move_down','Move Down','2005-03-30 15:54:20','modules');
+INSERT INTO `language_text` VALUES ('en', '_template','move_thread','Move Thread','2006-09-06 13:14:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','move_thread_to','Move thread to:','2006-09-06 13:15:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','move_to_inbox','Move to Inbox','2007-02-22 13:09:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','move_up','Move Up','2005-08-02 15:44:46','modules');
+INSERT INTO `language_text` VALUES ('en', '_template','music','Music','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','mutual_connections','Mutual Connections','2009-06-12 15:42:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','myown_patches','My Own Patches','2008-04-21 15:08:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','mysql_version','MySQL Version','2007-07-26 13:40:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','my_account','My Account','2005-03-28 14:04:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','my_courses','My Courses','2004-04-15 12:05:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','my_enrolled_courses','My enrolled courses','2004-08-18 12:03:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','my_files','My Files','2006-03-20 14:40:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','my_friends_only','Only my contacts','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','my_groups','My Network Groups','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','my_start_page','My Start Page','2005-02-08 10:58:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','my_tests','My Tests and Surveys','2010-06-25 14:01:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','my_tracker','My Tracker','2003-05-20 13:12:27','global my tracker  heading');
+INSERT INTO `language_text` VALUES ('en', '_template','na','N/A','2003-05-20 13:12:48','short form for \"not applicable\"');
+INSERT INTO `language_text` VALUES ('en', '_template','name','Name','2003-05-20 13:31:04','file manager, zip utility column heading');
+INSERT INTO `language_text` VALUES ('en', '_template','name_in_english','Language name in English','2004-11-20 19:41:16','admin add language');
+INSERT INTO `language_text` VALUES ('en', '_template','name_in_language','Language name translated','2004-11-20 19:39:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','native-american','Native-American','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','navigation','Navigation','2008-09-09 09:03:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','nav_path','Navigation Path for User','2003-05-20 13:31:22','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','nav_tendencies','Navigation Tendencies for User','2003-05-20 13:32:03','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','netherlands-ngt','Netherlands-NGT','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','network_home','My Network','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','network_updates','Network Activity','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','never','Never','2005-03-03 11:03:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','new','New!','2003-05-20 13:32:52','forum/inbox new message indicator');
+INSERT INTO `language_text` VALUES ('en', '_template','new_account_enroll','A user account has been created for you at %1s and you have been enrolled into the course %2s. To access this course, please log into the site. It is strongly suggested you change your password upon logging in.','2005-06-24 15:33:45','Message emailed to new users as a result of enrollment.');
+INSERT INTO `language_text` VALUES ('en', '_template','new_account_enroll_confirm','You have been enrolled into the course %1s. To access this course, you must first confirm your account by using the following link: %2s. It is strongly suggested you change your password upon logging in.','2005-06-24 15:33:17','If new user created during enrollment and needs confirmation.');
+INSERT INTO `language_text` VALUES ('en', '_template','new_file','New File','2006-03-20 14:36:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','new_group_invitations','New Group Invitations','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','new_name','New Name','2005-03-07 13:26:12','filemanager rename file');
+INSERT INTO `language_text` VALUES ('en', '_template','new_thread','New Thread','2003-05-20 13:37:34','forum');
+INSERT INTO `language_text` VALUES ('en', '_template','new_type','New Type:','2006-03-22 15:11:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','new_user','New User','2005-07-27 15:06:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','new_window','Opens in a new window.','2010-04-22 13:41:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','next','Next','2003-05-20 13:38:07','sequence arrow link text');
+INSERT INTO `language_text` VALUES ('en', '_template','next_topic','Next Topic','2003-05-20 13:38:42','sequence arrow link text');
+INSERT INTO `language_text` VALUES ('en', '_template','no','No','2005-03-03 10:18:39','the word no, preferences, admin course manager');
+INSERT INTO `language_text` VALUES ('en', '_template','none','None','2003-05-20 13:40:59','global message when no results were retrieved');
+INSERT INTO `language_text` VALUES ('en', '_template','none_available','None available.','2003-05-20 13:41:46','instructor add/edit content, glossary');
+INSERT INTO `language_text` VALUES ('en', '_template','none_found','None Found.','2005-05-18 13:12:47','glossary, related topis, users online');
+INSERT INTO `language_text` VALUES ('en', '_template','non_group_members','Non-Group Members','2005-06-10 10:51:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','norwegian-nsl','Norwegian-NSL','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','notes','Notes','2003-05-20 13:43:39','admin hime, instructor request notes column heading');
+INSERT INTO `language_text` VALUES ('en', '_template','note_taking','Note Taking','2008-09-09 09:03:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','notification_accept_contact','%s has been added to your ATutor Social contacts. Follow the link below to review your new contact. \r\n\r\n------\r\nSent from ATutor Social at:\r\n%s\r\n','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','notification_group_invite','%s has invited you to join the %s group. Follow the link below to login and accept or reject the invitation. \r\n\r\n------\r\nSent from ATutor Social at:\r\n%s\r\n','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','notification_group_invite_accepted','%s has accepted your  invitation to join the %s group. Follow the link below to login to the group.\r\n\r\n------\r\nLogin to ATutor Social at:\r\n%s\r\n','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','notification_group_request','A request has been made to join the %s group Follow the link below to login and accept or reject the request.\r\n\r\n------\r\nLogin to ATutor Social at:\r\n%s\r\n','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','notification_group_request_accepted','Your request to join the %s group has been accepted. Follow the link below to login to the group.\r\n\r\n------\r\nLogin to ATutor Social at:\r\n%s\r\n','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','notification_new_contact','%s wants to add you to as a ATutor Social contact. Follow the link below to login and accept or reject the request. \r\n\r\n------\r\nSent from ATutor Social at:\r\n%s\r\n','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','notification_new_inbox','You have received a new message from %s. Login to access your inbox and view the message. Login at: %s','2005-05-17 14:20:35','notification message for new mail in inbox');
+INSERT INTO `language_text` VALUES ('en', '_template','notify','Notify','2003-05-20 13:45:17','admin course properties');
+INSERT INTO `language_text` VALUES ('en', '_template','not_added_members','Invite Group Members','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','not_created','Not Created','2005-05-10 15:23:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','not_editable','Not editable.','2006-03-20 15:17:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','not_enrolled','Not Enrolled','2005-03-23 14:23:18','user status on my courses page');
+INSERT INTO `language_text` VALUES ('en', '_template','not_installed','Not Installed','2008-10-28 10:58:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','not_overwrite','Not overwrite','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','not_specified','Not specified','2003-05-12 15:26:26','registration gender selection');
+INSERT INTO `language_text` VALUES ('en', '_template','now_friends1','and %s are now contacts.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','now_friends2','and %s are now contacts','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_activities','No network activity.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_announcements','No Announcements Found','2003-05-20 13:55:19','course homepage when no announcments exist');
+INSERT INTO `language_text` VALUES ('en', '_template','no_content_avail','No content available.','2005-10-20 11:00:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_courses','There are no available courses.','2003-05-20 13:57:26','browse message when no courses exist');
+INSERT INTO `language_text` VALUES ('en', '_template','no_courses_found','No courses found.','2003-05-20 13:58:31','message when query resuylt in no courses found, admin course manager');
+INSERT INTO `language_text` VALUES ('en', '_template','no_course_found','Course not found.','2003-10-15 14:31:39','course not found');
+INSERT INTO `language_text` VALUES ('en', '_template','no_description','No description available.','2004-08-20 15:00:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_due_date','No due date','2006-05-30 12:37:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_end_date','No end date','2007-07-16 14:27:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_forums','No Forums Found','2003-05-20 13:59:58','discussions message when no forums exist');
+INSERT INTO `language_text` VALUES ('en', '_template','no_friends','You have no contacts yet.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_gadgets_installed','You have not installed any gadgets yet.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_glossary_items','No glossary terms found.','2005-03-07 10:52:11','edit glossary');
+INSERT INTO `language_text` VALUES ('en', '_template','no_groups_yet','You have not joined any groups yet.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_icon','No Icon','2005-03-03 11:20:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_month_data','There is no data for this month.','2003-05-20 14:01:42','instructor course statistics when nonne exist');
+INSERT INTO `language_text` VALUES ('en', '_template','no_pass_score','No pass score','2008-03-10 11:50:35','Test/Survey Property');
+INSERT INTO `language_text` VALUES ('en', '_template','no_post','No post found.','2003-05-20 14:02:44','forums message when attempting to view a post that no longer exists');
+INSERT INTO `language_text` VALUES ('en', '_template','no_questions','No questions found.','2003-05-20 14:04:01','test manager message when no questions exist for a test.');
+INSERT INTO `language_text` VALUES ('en', '_template','no_results_available','No Results Available','2003-05-20 14:07:22','test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','no_results_yet','No Results Yet','2003-05-20 14:07:32','my tests');
+INSERT INTO `language_text` VALUES ('en', '_template','no_settings','There is no available settings.','2009-06-09 14:25:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_student_tools','No Student Tools Found','2010-12-07 16:51:03','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_terms_found','There are no glossary terms being used in this content page.','2004-01-16 10:52:51','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','no_tests','No Tests or Surveys Available','2004-08-25 14:04:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_title','No title.','2005-10-20 11:00:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','no_user_found','No user found','2003-05-20 14:09:41','admin user amanager, profile');
+INSERT INTO `language_text` VALUES ('en', '_template','num','No.','2003-05-20 14:10:36','short form for the word number, test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','number_of_groups','Number of Groups','2006-03-22 11:48:03','');
+INSERT INTO `language_text` VALUES ('en', '_template','number_of_members','Number of Members','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','number_of_students_per_group','Number of Students per Group','2006-03-22 11:52:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','num_pages','# pages','2005-03-16 13:54:47','content manager');
+INSERT INTO `language_text` VALUES ('en', '_template','num_posts','Number of Posts','2005-04-14 11:07:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','num_questions_per_test','questions per test.','2004-08-23 16:13:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','num_students_currently_enrolled','There are <em>%s</em> students currently enrolled in this course.','2006-03-22 13:02:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','num_takes_test','Attempts Allowed','2004-08-26 10:34:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','num_threads','Number of Threads','2005-04-14 11:07:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','oauth_expire','OAuth Expire Threshold','2010-05-05 16:18:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','oauth_expire_note','Note: When \"Expire Threshold\" is set to 0, the oauth token never expires.','2010-05-05 16:18:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','ok','OK','2004-01-30 11:54:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','on','on','2003-05-20 14:11:28','admin course manager properties tracking option');
+INSERT INTO `language_text` VALUES ('en', '_template','one_page','One Page','2003-05-20 14:12:22','test manager open ended question type');
+INSERT INTO `language_text` VALUES ('en', '_template','one_question_per_page','One question per page','2007-08-20 15:46:36','edit/create test');
+INSERT INTO `language_text` VALUES ('en', '_template','one_sentence','One Sentence','2003-05-20 14:12:46','test manager open ended question type');
+INSERT INTO `language_text` VALUES ('en', '_template','one_word','One Word','2003-05-20 14:12:53','test manager open ended question type');
+INSERT INTO `language_text` VALUES ('en', '_template','ongoing','On Going!','2003-05-20 14:13:23','mytest currently running test indicator');
+INSERT INTO `language_text` VALUES ('en', '_template','online_status','Online Status','2005-03-11 16:18:30','directory');
+INSERT INTO `language_text` VALUES ('en', '_template','only_show_edited_terms','Only show edit terms.','2006-09-25 13:08:06','language editor filter form');
+INSERT INTO `language_text` VALUES ('en', '_template','open_file_manager','Open File Manager','2004-11-25 17:31:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','optional','Optional','2003-05-20 14:40:09','registration screen');
+INSERT INTO `language_text` VALUES ('en', '_template','optional_description','Optional Description','2004-10-27 15:31:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','optional_feedback','Optional Feedback','2004-11-24 14:33:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','option_alignment','Alignment','2004-12-01 13:36:36','edit/create option in test questions');
+INSERT INTO `language_text` VALUES ('en', '_template','or','Or','2003-05-20 14:40:26','global word or');
+INSERT INTO `language_text` VALUES ('en', '_template','orange','Orange','2003-05-20 14:40:40','global code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','order','Order','2005-03-04 14:07:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','organization','Organization','2008-10-06 13:41:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','original_resource','Original resource','2010-03-09 16:16:17','adapted content');
+INSERT INTO `language_text` VALUES ('en', '_template','original_term','Original term','2006-09-25 13:09:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','origin_page','Originating Page','2003-05-20 14:40:57','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','or_groups','Or, Groups:','2006-08-28 15:58:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','os','<acronym title=\"Operating System\">OS</acronym>','2007-07-26 14:04:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','other','Other','2005-03-03 12:17:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','others','Others','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','out_of','Maximum Score','2008-07-17 08:36:47','mytests, score out of ...');
+INSERT INTO `language_text` VALUES ('en', '_template','override','Override selections with this course\'s custom Colour & Font theme.  <small class=\"spacer\">( If available. )</small>','2003-05-20 14:42:37','preferences page');
+INSERT INTO `language_text` VALUES ('en', '_template','overwite_content','Overwrite existing material with those selected','2004-10-15 14:18:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','overwrite','Overwrite','2004-11-09 15:24:23','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','overwrite_master','If an existing account is using this Student ID, overwrite association with new account.','2006-06-12 13:58:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','packaged_in','Content Package','2003-10-07 18:21:34','apckage label in edit content');
+INSERT INTO `language_text` VALUES ('en', '_template','packages','Packages','2005-05-17 12:09:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','packages_auto_advance','Automatically start next Learning Object','2005-05-17 12:10:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','package_settings','Package Settings','2005-05-17 12:06:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','package_type','Package Type','2005-05-17 12:09:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','package_type_info','Please select the type of package you wish to upload.','2005-05-17 12:07:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','package_upload_file','Package File','2005-05-17 12:07:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','package_upload_file_info','Select the package file from your computer','2005-05-17 12:07:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','package_upload_url','Package URL','2005-05-17 12:06:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','package_upload_url_info','or specify the URL to your web accessible package file','2005-05-17 12:06:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','page','Page','2003-05-20 14:43:17','forum thread pages menu, tracker pages menu');
+INSERT INTO `language_text` VALUES ('en', '_template','pages_found','%s pages found','2004-08-20 15:09:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','pages_stats','Page Tracking Statistics for %s.','2003-06-08 09:20:38','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','page_error','An error occured while generating the paginator','2003-05-20 14:44:01','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','page_info','Last Modified: %s.  Revision: %s.  Release Date: %s.','2004-02-12 11:27:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','page_stats','Content Tracking Summary','2003-05-20 14:44:48','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','page_title','Page Title','2003-05-20 14:45:16','tracker column heading');
+INSERT INTO `language_text` VALUES ('en', '_template','page_viewed','Page Viewed','2003-05-20 14:45:44','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','parent','Parent','2005-03-29 13:04:13','categories');
+INSERT INTO `language_text` VALUES ('en', '_template','partially_uninstalled','Partially Uninstalled','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','password','Password','2003-05-20 14:45:56','global password word');
+INSERT INTO `language_text` VALUES ('en', '_template','password_again','Password Again','2003-05-20 14:46:52','registration, edit profile');
+INSERT INTO `language_text` VALUES ('en', '_template','password_blurb','Enter your account\'s email address below and an email with instructions on retrieving your password will be sent to you. The email address must be the same as the one you used for\r\nregistration.','2006-06-08 11:20:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','password_changed','Password Change','2005-11-30 13:54:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','password_change_confirm','Your password on %s has been changed successfully. Go to %s to login.','2006-05-09 15:28:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','password_change_msg','Your password has been altered. Please use the information below.','2005-11-30 13:55:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','password_forgot','Forgot Password','2006-05-09 15:00:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','password_new_blurb','Enter a new password for your account.','2006-05-09 15:54:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','password_old','Old Password','2006-05-11 11:34:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','password_reminder','Forgot your password?','2006-05-09 14:29:49','password reminder screen heading, public login header');
+INSERT INTO `language_text` VALUES ('en', '_template','password_reminder_text','If you have lost your password, use the forgotten password feature to regain access to your account.','2006-05-09 14:56:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','password_request2','Dear %1$s,\r\n\r\nYour login name is %2$s.\r\n\r\nTo set a new password, follow the link below. \r\n\r\n%4$s\r\n\r\n(If this link does not take you to the site, copy and paste it into the address bar of your internet browser)\r\n\r\nThe link will become invalid after %3$s days.','2009-01-23 10:49:55','password reminder');
+INSERT INTO `language_text` VALUES ('en', '_template','pass_feedback','Pass Feedback','2008-03-10 11:49:19','Test/Survey Property');
+INSERT INTO `language_text` VALUES ('en', '_template','pass_score','Pass Score','2008-03-10 08:46:46','Test/Survey property');
+INSERT INTO `language_text` VALUES ('en', '_template','paste','Paste','2004-12-03 10:30:28','form_editor in create question');
+INSERT INTO `language_text` VALUES ('en', '_template','paste_disabled_title','Paste from file disabled','2010-04-14 11:25:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','paste_enabled_title','Toggle paste from file','2010-04-14 11:25:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','paste_file','Paste From File','2003-05-20 14:49:35','instructor content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','patcher','Patcher','2008-04-21 15:08:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','patcher_alter_modified_files','The listed files are modified locally. If you choose to proceed, your local file will be modified. The original\r\nfile will be backed up before the modification. Please note that the modification to your customized code may break your customization.<br />','2008-07-28 10:52:09','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','patcher_overwrite_modified_files','The listed files have been modified locally. If you choose to proceed, the patch file will be copied to your local machine. \r\nYou have to manually merge this file and your local copy.<br />','2008-07-28 10:52:22','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','patcher_show_backup_files','Below is the list of the backup files created by the Patcher. After ensuring ATutor works properly with the patch, you may want to \r\ndelete these files. If  ATutor does not work properly with the patch, you can always revert back to the old files by renaming the backup files \r\nto the original file names,  removing the [patch_id].old portion of the file name. <br />','2008-07-28 10:52:38','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','patcher_show_patch_files','Below is the list of the patch files copied to your computer. \r\nPlease manually merge the changes between the patch files and your local copy. <br />','2008-07-28 10:52:51','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','patch_dependent_patch_not_installed','<br><span style=\"color: red\">Warning: There are patch dependencies, please install the listed patches first: </span>','2008-04-22 14:56:15','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','patch_local_file_not_exist','Cannot proceed. The listed files do not exist on your local machine. If you renamed the file, in order to proceed, please rename back.<br />','2008-07-28 10:53:03','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','path_not_allowed','Cannot proceed! The listed file path(s) is not allowed:<br />','2010-09-30 13:47:40','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_add_more_photos','Add More Photos','2010-03-17 15:53:59','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_albums','Albums','2010-03-17 15:49:41','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_album_cover','Album Cover','2010-03-17 15:57:45','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_album_description','Album Description','2010-03-17 15:57:34','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_album_location','Album Location','2010-03-17 15:57:24','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_album_name','Album Name','2010-03-17 15:57:02','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_album_permission','Album Permission','2010-03-17 16:04:31','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_album_type','Album Type','2010-03-17 15:57:13','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_alt_text','Alternative Text','2010-03-17 15:59:00','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_choose_profile_picture','Upload Profile Picture','2010-03-25 16:00:58','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_click_here_to_edit','Click here to edit','2010-03-17 16:00:54','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_click_item_to_edit','Click item to edit','2010-03-17 16:01:06','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_close_upload_manager','Close Upload Manager','2010-03-17 16:04:18','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_course_albums','Course Albums','2010-03-17 15:58:28','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_create_album','Create Album','2010-03-17 15:58:50','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_delete_album','Delete Album','2010-03-17 15:51:21','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_delete_comment','Delete Comment','2010-03-17 15:51:34','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_delete_photo','Delete Photo','2010-03-17 15:51:47','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_delete_profile_pic_blub','You can remove this picture, but be sure to upload another or we will display a silhouette in its place.','2010-03-25 16:04:19','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_delete_this_photo','Delete This Photo','2010-03-17 15:53:32','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_edit_album','Edit Album','2010-03-17 15:51:09','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_edit_photo','Edit Photo','2010-03-17 15:50:55','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_edit_photos','Edit Photos','2010-03-17 15:50:39','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_last_updated','Last Updated','2010-03-17 15:58:00','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_max_memory','Maximum Memory Size allowed per member','2010-03-17 16:01:42','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_memory_usage','Memory Usage','2010-03-17 16:03:53','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_my_albums','My Albums','2010-03-17 15:58:14','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_no_album','No Album Available','2010-03-17 15:59:28','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_no_image','No image','2010-03-17 15:59:52','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_no_photos','No Photos Available','2010-03-17 15:59:39','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_of','of','2010-03-17 16:00:19','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_open_upload_manager','Open Upload Manager','2010-03-17 16:04:07','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_organize_photos','Organize Photos','2010-03-17 15:53:45','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_organize_photo_blurb','Note: Drag photos using a mouse, or [CTRL]+[Left/Right/Up/Down Arrow] keys to rearrange them.','2010-03-17 16:00:09','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_photo','Photo','2010-03-17 15:49:57','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_photos','Photos','2010-03-17 15:50:12','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_photo_gallery','Photo Gallery','2010-03-17 15:49:28','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_preferences','Album Preferences','2010-03-17 16:01:30','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_private','Private','2010-03-17 16:04:46','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_processed','Processed','2010-03-17 15:59:14','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_profile_album','Profile Album','2010-03-17 15:50:26','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_redo','Redo','2010-03-17 16:00:41','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_set_profile_pic','Make Profile Picture','2010-03-25 12:02:04','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_shared','Shared','2010-03-17 16:04:58','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_shared_albums','Shared Albums','2010-03-17 15:58:39','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_undo','Undo','2010-03-17 16:00:31','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_uploaded_by','Uploaded by','2010-03-17 16:05:10','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_upload_blurb','Click \"Browse\" to look for the picture you wish to upload.  These photos will be processed and display below.  You also have the option to remove the pending photos anytime.  When you are done, click \"Upload\".','2010-03-17 15:56:41','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','pa_write_a_comment','Write a comment...','2010-03-17 16:01:18','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','peer_interaction','Peer Interaction','2008-09-09 09:03:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','pending','Pending','2003-05-20 14:50:41','mytests, control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','pending_approval','(pending approval)','2003-05-20 14:51:49','control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','pending_enrollment','Pending Enrollment','2005-06-10 10:14:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','pending_friend_requests','Pending Friend Requests','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','people_you_may_know','People you may know','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','percentage_from','Percentage From','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','percentage_score','percentage score','2008-03-10 11:50:57','Test/Survey Property');
+INSERT INTO `language_text` VALUES ('en', '_template','percentage_to','Percentage To','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','period','Period','2004-06-22 12:09:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','personal','Personal Information','2009-12-07 13:42:47','Social personal info');
+INSERT INTO `language_text` VALUES ('en', '_template','personal_information','Personal Information','2003-05-20 14:53:12','registration, profile edit');
+INSERT INTO `language_text` VALUES ('en', '_template','per_day','per day','2003-05-20 14:54:04','instructor course statistics, details');
+INSERT INTO `language_text` VALUES ('en', '_template','per_disabilities','Disabilities','2009-12-07 13:42:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','per_ethnicity','Ethnicity','2009-12-07 13:40:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','per_eyes','Eye Colour','2009-12-07 13:40:23','Social personal info');
+INSERT INTO `language_text` VALUES ('en', '_template','per_hair','Hair Colour','2009-12-07 13:39:57','Social personal info');
+INSERT INTO `language_text` VALUES ('en', '_template','per_height','Height','2009-12-07 13:39:21','social personal info');
+INSERT INTO `language_text` VALUES ('en', '_template','per_languages','Languages Spoken','2009-12-07 13:41:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','per_weight','Body Weight','2009-12-07 14:09:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','phone','Telephone Number','2006-11-23 11:33:30','global phone number field label');
+INSERT INTO `language_text` VALUES ('en', '_template','photos','Photo Gallery','2010-03-17 15:49:12','photo album');
+INSERT INTO `language_text` VALUES ('en', '_template','php_version','PHP Version','2007-07-26 13:40:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','picture','Picture','2007-02-26 17:22:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','pink','Pink','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','placelogo','Place holder logo','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','plain_text','Plain Text','2006-11-23 13:16:30','instructor content editor, news, inbox, forum message format');
+INSERT INTO `language_text` VALUES ('en', '_template','points','Points','2007-03-05 15:51:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','points_score','points score','2008-03-10 11:51:16','Test/Survey Property');
+INSERT INTO `language_text` VALUES ('en', '_template','poll','Poll','2004-06-25 13:17:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','polls','Polls','2004-06-14 13:55:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','position','Position','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','post','Post','2003-05-20 14:56:13','forum new thread post button');
+INSERT INTO `language_text` VALUES ('en', '_template','postal_code','Postal/Zip Code','2003-05-20 14:56:34','global postal code filed labal');
+INSERT INTO `language_text` VALUES ('en', '_template','posted_by','By','2003-05-20 14:57:31','forum message submitter');
+INSERT INTO `language_text` VALUES ('en', '_template','posted_on','on','2003-05-20 14:58:10','forum message post date, inbox');
+INSERT INTO `language_text` VALUES ('en', '_template','posts','Forum Threads','2005-03-07 13:37:56','Header for posts in Forum List');
+INSERT INTO `language_text` VALUES ('en', '_template','post_lock','Locked from posting','2003-05-20 14:58:32','forum lock thread message');
+INSERT INTO `language_text` VALUES ('en', '_template','post_message','Post Message','2008-05-05 15:27:19','forum post fieldset');
+INSERT INTO `language_text` VALUES ('en', '_template','powered_by_google','Results by <a href=\"http://www.google.com\">Google</a>.','2005-10-20 10:52:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','preferences','Preferences','2003-05-20 14:59:08','global preferences word');
+INSERT INTO `language_text` VALUES ('en', '_template','prefer_alt','Preferred Alternative','2008-09-09 08:56:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefer_lang','Preferred Language','2008-09-09 08:56:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_atutor','Setup your general ATutor configuration  options.','2010-04-12 16:28:18','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_audio','If you want alternatives to audio content when it is available, select \"Yes\", choose the type of Preferred Alternative, then choose to have the alternative appended to, or replace the original audio content.','2010-04-12 16:23:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_display','Select the text settings to make the screen easier to see.','2010-04-12 16:34:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_init','You may use this wizard to setup your ATutor personal preferences. Select the checkbox(s) next to preferences you would like to modify, then choose <strong>Next</strong>, OR click <strong>Close</strong> to exit.','2010-04-12 16:08:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_init_atutor','I would like to change or review my ATutor preferences.','2010-04-12 16:15:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_init_audio','I would like alternatives to audio content.','2010-04-12 16:13:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_init_legend','What preferences would you like to setup?','2010-04-12 16:16:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_init_nav','I would like to enhance the navigation of the content.','2010-04-12 16:10:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_init_see','I would like to make the text on the screen easier to see.','2010-04-12 16:09:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_init_text','I would like alternatives to textual content.','2010-04-12 16:13:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_init_tool','I would like access to learner support tools.','2010-04-12 16:15:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_init_visual','I would like alternatives to visual content.','2010-04-12 16:14:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_nav','Select the navigation features you would like added to ATutor.','2010-04-12 16:19:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_text','If you want alternatives to text content when it is available, select \"Yes\", choose the type of Preferred Alternative, then choose to have the alternative appended to, or replace the original text content','2010-04-12 16:21:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_tools','You may choose from the available Learner Support Tools to make them available while in a course.','2010-04-12 16:26:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','prefs_set_visual','If you want alternatives to visual content when it is available, select \"Yes\", choose the type of Preferred Alternative, then choose to have the alternative appended to, or replace the original visual content','2010-04-12 16:24:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','presets','Presets','2004-08-24 11:56:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','preset_grade_scale','Preset Grade Scale','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','preset_scales','Preset &amp; Previously Used Scales','2004-08-24 13:48:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','pretty_url','Pretty URL','2008-05-14 12:02:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','preview','Preview','2003-05-20 14:59:52','test manager preview test');
+INSERT INTO `language_text` VALUES ('en', '_template','preview_questions','Preview Questions','2005-06-21 14:06:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','previous','Previous','2003-05-20 15:01:31','global sequence arrow alt/link text');
+INSERT INTO `language_text` VALUES ('en', '_template','previous_posts','Previous Posts','2006-06-14 10:47:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','previous_topic','Previous Topic','2003-05-20 15:02:06','global sequence arrow alt/link text');
+INSERT INTO `language_text` VALUES ('en', '_template','prev_used','Previously Used','2004-08-13 13:29:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','primary_language','Original Language','2008-10-19 17:03:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','primary_resource_language','Original Resource Language','2008-10-19 17:04:18','');
+INSERT INTO `language_text` VALUES ('en', '_template','primary_resource_type','Original Resource Type','2008-10-19 17:04:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','print_page','Print Page','2008-01-04 10:16:49','redux theme');
+INSERT INTO `language_text` VALUES ('en', '_template','privacy_control_blurb','Controls who can see your profile and related information.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','privacy_settings','Privacy Settings','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','private','Private','2003-05-20 15:03:14','global private course indicator');
+INSERT INTO `language_text` VALUES ('en', '_template','private_enroll','The course you are trying to access is <strong>private</strong>. Enrollment in this course requires instructor approval.<br />','2005-03-17 11:51:06','requesting enrollment in private course');
+INSERT INTO `language_text` VALUES ('en', '_template','privileges','Privileges','2004-03-05 12:29:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','priv_ac_access_all','ACollab: Access all Groups','2005-08-10 15:21:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','priv_ac_create','ACollab: Create Group','2005-08-10 15:20:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','priv_admin_super','Super Administrator','2005-03-03 10:36:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','priv_admin_themes','Themes','2005-03-03 10:38:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','priv_forums','Forums & Chat','2004-03-08 10:04:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','priv_test_create','Test Creation','2005-08-10 15:20:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','priv_test_mark','Test Marking','2005-08-10 15:22:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','processing','Processing','2010-04-26 15:39:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','profile','Profile','2003-05-20 16:24:30','control centre heading');
+INSERT INTO `language_text` VALUES ('en', '_template','profile_bundle_select','Profile Bundle Selection','2004-12-06 12:13:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','profile_control','Profile Visability','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','profile_picture','Profile Picture','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','profile_pictures','Profile Pictures','2007-02-27 13:43:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','profile_student_information','Student Information','2003-09-16 11:49:35','view profile');
+INSERT INTO `language_text` VALUES ('en', '_template','properties','Properties','2003-05-21 12:15:58','instructor control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','protected','Protected','2003-05-21 12:16:46','browse, create coruse, control centre, course properties');
+INSERT INTO `language_text` VALUES ('en', '_template','province','Province/State','2003-05-21 12:17:22','registration, profile editor');
+INSERT INTO `language_text` VALUES ('en', '_template','proxy','Learning Activity','2011-05-27 16:08:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','public','Public','2003-05-21 12:18:37','browse courses, create course, course properties, control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','publish_date','Publish Date','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','purple','Purple','2003-05-21 12:18:50','global code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','put_link','put link name here','2004-12-08 12:38:42','filemanager, isert text');
+INSERT INTO `language_text` VALUES ('en', '_template','quebec-lsq','Quebec-LSQ','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','question','Question','2003-05-21 12:30:21','test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','questions','Questions','2003-05-21 12:30:40','test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','questions_for','Questions for','2003-05-21 12:30:50','test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','question_categories','Question Categories','2005-02-22 14:17:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','question_database','Question Bank','2010-06-25 15:13:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','question_statistics','Question Statistics','2004-08-26 13:26:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','quote','Quote','2003-05-21 12:31:19','code picker alt text');
+INSERT INTO `language_text` VALUES ('en', '_template','randomize_questions','Randomize Questions','2004-05-18 10:44:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','raw','Raw','2003-09-13 09:25:20','course tracker member picker');
+INSERT INTO `language_text` VALUES ('en', '_template','raw_data','Raw Data','2003-05-21 12:31:48','instructor course statistics/details');
+INSERT INTO `language_text` VALUES ('en', '_template','raw_final_score','Raw Final Score','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','re','Re','2007-02-20 16:20:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','reading_list','Reading List','2006-05-09 14:19:55','');
+INSERT INTO `language_text` VALUES ('en', '_template','read_lock','Locked from posting & reading','2003-05-21 12:32:39','forum lock message in thread list');
+INSERT INTO `language_text` VALUES ('en', '_template','real_name','Real Name','2003-10-20 11:33:14','course properties');
+INSERT INTO `language_text` VALUES ('en', '_template','reapply_default','Reset to System Defaults','2008-10-29 12:18:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','recent_first','Recent First','2009-09-08 13:34:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','recent_last','Recent Last','2009-09-08 13:34:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','recipient_address','Recipient Address','2004-12-06 12:20:03','admin/error_logging_bundle.php');
+INSERT INTO `language_text` VALUES ('en', '_template','red','Red','2003-05-21 12:32:57','global code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','red_members','Red = Members','2003-05-21 12:33:55','instructor course statistics/details');
+INSERT INTO `language_text` VALUES ('en', '_template','refresh_image','Refresh Image','2009-07-16 08:51:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','regenerate','Regenerate','2007-02-16 14:00:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','register','Register','2003-11-26 15:09:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','registered_members','Registered Members','2008-10-06 13:42:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','register_an_account','Register an ATutor System Account','2003-05-21 12:36:01','private course enrolment screen, login screen');
+INSERT INTO `language_text` VALUES ('en', '_template','registration_text','If you do not have an account on this system,  please create a new account by clicking on the Register Button below.','2005-07-27 15:11:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','reg_exp','Regular Expression','2004-11-20 19:38:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','reject_request','Reject Request','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','related_topics','Related Topics','2003-05-21 12:38:26','context(?)');
+INSERT INTO `language_text` VALUES ('en', '_template','relative_directory','Directory is relative directory to ATutor root, for example: docs/images/ or tools/tests/. Leave empty if it is ATutor root directory.','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','release_date','Release Date','2003-05-21 12:39:24','instructor add/edit content, control centre');
+INSERT INTO `language_text` VALUES ('en', '_template','release_immediate','Once quiz has been submitted','2004-12-13 13:55:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','release_marked','Once quiz has been submitted and all questions have been marked','2004-12-13 13:55:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','release_never','Do not release results','2004-12-13 14:02:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','release_on','Release on','2006-04-10 14:37:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','remove','Remove','2003-05-21 12:40:11','control centre, admin user manager, instructor enrolment manager');
+INSERT INTO `language_text` VALUES ('en', '_template','removed','Removed','2004-02-03 09:36:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','remove_frame','Remove Frame','2005-01-10 14:31:34','filemanager preview');
+INSERT INTO `language_text` VALUES ('en', '_template','remove_question','Remove Question','2004-11-25 10:30:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','remove_queued_file','Remove file from queue','2008-07-22 16:44:41','Instruction to remove file in Fluid\'\'s multiple file uploader');
+INSERT INTO `language_text` VALUES ('en', '_template','remove_write_permission','<span style=\"color:red\">Please <strong>REMOVE</strong> write permission on the listed folders and files for your security:</span><p><strong>Note:</strong> To remove permissions on Unix use <kbd>chmod 755</kbd> then the file name..</p>','2008-04-21 15:08:55','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','rename','Rename','2004-08-11 14:00:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','replace','Replace','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','replace_file','Replace File','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','replace_into','Replace Into','2005-03-03 12:16:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','replied','Replied','2003-05-21 12:40:35','inbox message status label');
+INSERT INTO `language_text` VALUES ('en', '_template','replies','Replies','2003-05-21 12:40:50','forum');
+INSERT INTO `language_text` VALUES ('en', '_template','reply','Reply','2003-05-21 12:41:20','forum, inbox');
+INSERT INTO `language_text` VALUES ('en', '_template','report_errors','Report Errors','2004-12-06 12:08:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','representation','Representative','2009-12-03 15:41:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','request_enrollment','Request Enrollment','2003-10-21 13:04:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','request_instructor','You do not yet have permission to create courses. If you would like an instructor account, enter the required description of the course you wish to create.','2005-03-09 12:22:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','request_instructor_account','Request Instructor Account','2003-05-21 12:43:12','control centre non-instructor');
+INSERT INTO `language_text` VALUES ('en', '_template','request_instructor_pending','Your instructor account request has been made. You will be notifed by email when your request has been approved.','2005-03-09 12:35:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','request_instructor_priv','Request Instructor Account','2009-11-13 15:44:24','my start page');
+INSERT INTO `language_text` VALUES ('en', '_template','request_services','<a href=\"http://www.atutor.ca/services\">Request ATutor Services</a>','2008-11-14 13:43:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','request_services_text','Purchase yearly support packages, support tickets, or other ATutor services. Requires <a href=\"http://www.atutor.ca/my/register.php\">registration on atutor.ca</a>.','2008-11-14 14:04:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','required','Required','2003-05-21 12:43:54','registration, export course, test manager question editor');
+INSERT INTO `language_text` VALUES ('en', '_template','required_field','Required Field','2005-03-04 12:52:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','required_information','Required Information','2005-03-04 14:08:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','require_email_confirmation','Require Email Confirmation Upon Registration','2005-03-22 10:55:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','req_message9','ATutor Instructor Request','2003-05-21 18:52:38','email message subject line from control centre instructor request');
+INSERT INTO `language_text` VALUES ('en', '_template','req_message_instructor','A new Instructor account request has been made by: %s.\r\n\r\nCourse Description: %s\r\n\r\nYou must login as the administrator at %s to approve or reject this request.','2004-02-16 16:38:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','reset','Reset','2003-05-21 18:53:27','global text for reset buttons');
+INSERT INTO `language_text` VALUES ('en', '_template','reset_filter','Reset Filter','2005-03-30 14:52:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','reset_log','Reset Log','2005-03-03 10:42:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','resource_categories','Resource Categories','2003-05-21 18:57:43','instructor export course feedback');
+INSERT INTO `language_text` VALUES ('en', '_template','resource_links','Resource Links','2003-05-21 18:58:34','instructor export course feedback');
+INSERT INTO `language_text` VALUES ('en', '_template','resource_type','Resource type','2010-03-09 16:16:42','adapted content');
+INSERT INTO `language_text` VALUES ('en', '_template','response_text','The following answers were given in response to:','2004-08-25 12:20:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','restore','Restore','2003-05-21 18:59:34','preferences page (removed 1.2)');
+INSERT INTO `language_text` VALUES ('en', '_template','restore_backup_about','Choose the checkboxes next to the content to be restored, select course into which to restore the content, then choose to append the content to the course, or replace the content in the course.','2004-12-10 09:53:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','restore_upload','To upload a backup file, enter a description of the backup, choose a file to upload, and use the \"Upload\" button. Only backups created using ATutor 1.3 and later are supported. Depending on the size of the course and your Internet connection speed,  uploading a backup may take a long time.','2004-12-10 18:06:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','resubmit','Resubmit','2004-01-30 16:34:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','result','Result','2004-08-12 15:22:08','single result in search engine');
+INSERT INTO `language_text` VALUES ('en', '_template','results','Results','2003-05-21 19:00:51','test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','results_found','Results Found: %s','2005-04-14 11:01:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','results_from','Results from %s','2004-08-18 12:05:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','result_release','Release Results','2004-12-13 13:57:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','resume','Resume','2003-05-21 19:01:48','alt/link text for the resume arrow');
+INSERT INTO `language_text` VALUES ('en', '_template','return','Return','2003-05-21 19:02:25','escape from delete course function');
+INSERT INTO `language_text` VALUES ('en', '_template','returning_user','Returning User','2010-10-19 10:06:09','login screen');
+INSERT INTO `language_text` VALUES ('en', '_template','return_file_manager','Return to the File Manager','2004-11-05 11:20:30','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','return_to_admin_area','Return to Admin Area','2006-03-28 12:31:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','revision','Revision','2003-05-21 19:04:01','instructor content editor statistics below embedded links');
+INSERT INTO `language_text` VALUES ('en', '_template','revisions','Revisions','2006-03-20 14:36:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','revision_comment','Revisions Comment','2006-03-20 14:37:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','right','Right','2004-04-27 11:00:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_add_av_material_to_resources','Add AV Material To Resources','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_add_resource_av','Add Resource AV','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_add_resource_book','Add Resource Book','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_add_resource_file','Add Resource File','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_add_resource_handout','Add Resource Handout','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_add_resource_url','Add Resource URL','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_av','AV','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_av_material_to_view','AV Material to View','2006-04-13 12:18:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_book','book','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_book_to_read','Book To Read','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_create_new_av','Create New AV','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_create_new_book','Create New Book','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_create_new_file','Create New File','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_create_new_handout','Create New Handout','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_create_new_url','Create New URL','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_date_format','%%M %%d, %%Y','2006-06-26 16:10:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_delete_reading','Delete Reading','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_delete_resource','Delete Resource','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_display_resource','Display Resource','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_display_resources','Resources','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_reading_av','Edit Reading AV','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_reading_book','Edit Reading Book','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_reading_file','Edit Reading File','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_reading_handout','Edit Reading Handout','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_reading_url','Edit Reading URL','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_resource_av','Edit Resource','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_resource_book','Edit Resource Book','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_resource_file','Edit Resource File','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_resource_handout','Edit Resource Handout','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_edit_resource_url','Edit Resource URL','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_end','End','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_file','file','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_goto_url','view page','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_handout','handout','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_isbn_number','ISBN','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_name_reading','Name Of Reading','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_new_reading_av','New Reading AV','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_new_reading_book','New Reading Book','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_new_reading_file','New Reading File','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_new_reading_handout','New Reading Handout','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_new_reading_url','New Reading URL','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_no_read_by_date','No Read By Date','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_optional_reading','Optional Reading','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_or','or','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_pages','Pages','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_publisher','Publisher','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_reading_date','Reading Date','2006-02-23 09:18:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_read_by_date','Read by Date','2006-04-13 10:58:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_select_book','Select Book','2006-07-25 09:08:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_select_file','Select File','2006-07-25 09:15:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_select_handout','Select Handout','2006-07-25 09:13:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_select_url','Select URL','2006-07-25 09:12:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_start','Start','2006-06-21 08:53:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_type_of_reading','Type of Reading','2006-07-31 15:23:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_type_of_resource','Type of Resource','2006-07-14 10:24:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_url','URL','2007-08-02 10:46:30','resource type picker');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_view_resource_details','View Resource Details','2008-06-10 14:23:50','reading list.');
+INSERT INTO `language_text` VALUES ('en', '_template','rl_year_written','Year Written','2006-06-21 08:55:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','role','Role','2004-03-05 12:26:47','');
+INSERT INTO `language_text` VALUES ('en', '_template','rss_feeds','News Feeds','2010-05-03 15:01:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','rtl','Right to Left','2004-11-20 19:37:58','');
+INSERT INTO `language_text` VALUES ('en', '_template','russian-rsl','Russian-RSL','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','same_course_users','Only users in the same courses as you are listed.','2003-05-21 19:05:32','inbox send message form');
+INSERT INTO `language_text` VALUES ('en', '_template','sans_serif','Sans Serif','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','save','Save','2004-10-29 14:57:46','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','save_changes','Save Changes','2004-05-11 10:48:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','save_changes_saved','All changes have been saved.','2004-02-16 14:06:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','save_changes_unsaved','Unsaved changes have been made.','2004-02-16 14:04:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','save_types_and_language','Update Resource Properties','2008-10-19 13:51:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','scaffold_text','Modify the URLs for the learning tools below. Leave blank to disable.','2008-09-10 12:29:26','tool preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','scale','Scale','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','scale_value','Scale Value','2008-09-25 15:59:56','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','schema_error','Wrong schema location','2009-12-07 13:09:06','common cartridge');
+INSERT INTO `language_text` VALUES ('en', '_template','search','Search','2003-05-21 19:19:30','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','search_all_words','All words','2003-08-11 11:22:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_any_word','Any word','2003-08-11 11:22:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_connections','Search Connections','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_control','Search Control','2009-11-06 15:53:36','networking settings');
+INSERT INTO `language_text` VALUES ('en', '_template','search_education','Search Education','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_for_friends','Search People','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_for_groups','Search for Groups','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_in','Search in','2004-04-30 10:51:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_match','Match','2003-08-11 11:21:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_position','Search Position','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_profile','Search Profile','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_results','Search Results','2003-05-21 19:21:29','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','search_site','Only search within <strong>%s</strong>.','2005-10-20 10:53:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_visibility','Search Visibility','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','search_words','Words','2003-08-11 11:21:36','');
+INSERT INTO `language_text` VALUES ('en', '_template','secondary_resource_body','Body','2008-09-23 13:50:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','secondary_resource_language','Adapted Resource Language','2008-10-19 17:05:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','secondary_resource_type','Adapted Resource Type','2008-10-19 17:06:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','seconds','Seconds','2010-05-10 15:56:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','second_name','Second Name','2006-03-27 14:53:50','');
+INSERT INTO `language_text` VALUES ('en', '_template','second_short','s','2007-07-09 12:31:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','section','Section','2005-03-04 14:06:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','see','See','2003-05-21 19:24:22','glossary - \"see\" related terms');
+INSERT INTO `language_text` VALUES ('en', '_template','see_attached','See attached.','2005-03-10 16:37:04','error logging - email body');
+INSERT INTO `language_text` VALUES ('en', '_template','select','Select','2007-02-21 13:22:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','select_all','select/unselect all','2004-10-29 13:25:57','file manager and enrollment manager');
+INSERT INTO `language_text` VALUES ('en', '_template','select_av','Select Audio/Visual','2006-07-25 09:14:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','select_cat','Select Category','2005-02-23 12:23:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','select_directory','Please choose the folder you want to move the selected files to:','2004-11-30 11:40:08','Filamanger, moving a file');
+INSERT INTO `language_text` VALUES ('en', '_template','select_member','Select a Member to View','2003-05-21 19:29:27','instructor course tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','select_parent_topic','Select parent topic','2005-03-16 13:37:00','content manager');
+INSERT INTO `language_text` VALUES ('en', '_template','select_term_to_edit','Select term to edit.','2006-09-25 13:08:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','send','Send','2003-05-21 19:31:57','global message send button text');
+INSERT INTO `language_text` VALUES ('en', '_template','send_bundle','Send Bundle','2004-12-06 12:16:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','send_confirmation','Enter your email address below and the account confirmation message will be resent.','2005-03-24 09:57:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','send_delete','Send & Delete','2003-05-21 19:32:55','send a message from the inbox and delete the original');
+INSERT INTO `language_text` VALUES ('en', '_template','send_message','Send Message','2003-05-21 19:34:13','inbox send message button text');
+INSERT INTO `language_text` VALUES ('en', '_template','sent_messages','Sent Messages','2007-02-20 16:21:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','sent_msgs_ttl_text','Number of Days to Keep Copied Sent Messages for','2007-02-20 14:00:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','sent_via_atutor','Sent via an ATutor system at %s','2003-05-21 20:04:50','global email message footer');
+INSERT INTO `language_text` VALUES ('en', '_template','sequence','Sequence','2003-05-21 20:05:50','context (removed 1.2)');
+INSERT INTO `language_text` VALUES ('en', '_template','serif','Serif','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','server_date_format','%%Y-%%m-%%d %%G:%%i:%%s','2008-10-01 15:02:49','date format');
+INSERT INTO `language_text` VALUES ('en', '_template','session_end','and ended on','2003-05-21 20:12:12','tracker - to be updated ( started on [date] and ended on [date])');
+INSERT INTO `language_text` VALUES ('en', '_template','session_start','Session above started on','2003-05-21 20:11:35','tracker (to be updated)');
+INSERT INTO `language_text` VALUES ('en', '_template','set','Set','2003-06-30 17:02:05','admin language manager');
+INSERT INTO `language_text` VALUES ('en', '_template','settings','Settings','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','set_all_weights','Set a point value for all the questions on this test.  After you are done, click \"save\".','2010-06-16 11:22:11','test questions');
+INSERT INTO `language_text` VALUES ('en', '_template','set_default','Set as Default','2004-10-15 15:48:04','set as default button in theme manager');
+INSERT INTO `language_text` VALUES ('en', '_template','set_preset','Apply Preset','2003-05-24 10:52:43','preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','shared_forums','Shared Forums','2004-11-03 11:18:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','shindig_blurb','If you have your own Shindig server setup, your can enter the URL to the server here. If you do not have your own Shindig server, you can either leave the URL empty, or you can use \"http://social.atutor.ca/shindig/php\" to connect to the ATutor social network. Shindig allows users to link gadgets from other sites into their social networking environment, as well as communicate with those in other social networks. If you choose not to use a Shindig server, your social network will function as a self-contained network, without access to external networks.','2010-12-14 16:15:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','shindig_url','URL of Optional ShinDig server.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','shortcuts','Shortcuts','2004-04-27 14:57:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','short_paragraph','Short Paragraph','2003-05-21 20:13:03','test manager test type');
+INSERT INTO `language_text` VALUES ('en', '_template','show','Show','2005-03-15 11:37:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_all','show all','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_available_applications','Show Available Gadgets','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_bread_crumbs','Show Breadcrumb Link Navigation','2008-09-24 13:05:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_contents','Show page Table of Contents','2010-10-07 10:42:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_guest_form','Show Guest Information Collection Form','2008-10-09 14:13:38','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_guide','Show Context Sensitive Links to Handbook','2008-09-24 12:09:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_next_previous_buttons','Show Next/Previous Navigation Buttons','2008-09-24 13:04:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_numbers','Topic Numbering','2005-02-09 10:20:54','preference option');
+INSERT INTO `language_text` VALUES ('en', '_template','show_on_home_page','Show on Home Page','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_pages','Show Pages','2010-04-21 16:28:13','thing current');
+INSERT INTO `language_text` VALUES ('en', '_template','show_raw_tracking','Show raw tracking','2003-11-26 15:19:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_summary_tracking','Show summary tracking','2003-11-26 15:18:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','show_your_applications','Show Your Gadgets','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','side_menu','Side Menu','2005-03-04 14:37:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','side_menu_text','Choose which menu items you would like displayed at the side.','2005-03-04 15:17:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','sign_lang','Sign Language','2008-09-09 08:56:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','sign_language','Sign language','2008-09-08 14:19:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','singapore-sls','Singapore-SLS','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','sitemap','Site-map','2003-05-21 20:17:21','global site-map text');
+INSERT INTO `language_text` VALUES ('en', '_template','sitemap_text','Browse through the whole course site from one location.','2009-07-02 14:15:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','site_name','Site Name','2005-03-03 10:49:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','size','Size','2003-05-22 13:01:20','file manager, zip tool');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_angry','angry','2004-02-12 12:20:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_confused','confused','2004-02-12 12:21:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_crazy','crazy','2004-02-12 12:20:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_evil','evil','2004-02-12 12:20:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_frown','frown','2004-02-12 12:20:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_lol','laughing out loud','2004-02-12 12:20:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_muah','muah','2004-02-12 12:21:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_oh_well','oh well','2004-02-12 12:20:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_smile','smile','2004-02-12 12:20:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_tired','tired','2004-02-12 12:21:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_tongue','tongue','2004-02-12 12:20:27','');
+INSERT INTO `language_text` VALUES ('en', '_template','smile_wink','wink','2004-02-12 12:20:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','social','Networking','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','social_and_lms','Use ATutor LMS with ATutor Social module','2009-07-17 14:12:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','social_groups','Network Groups','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','social_profile','Network Profile','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','social_switch','Social Networking','2009-07-17 14:11:16','');
+INSERT INTO `language_text` VALUES ('en', '_template','social_switch_text','Choose to use ATutor as a social networking environment only, or as a learning management system with a social networking module.','2009-07-17 14:19:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','spanish','Spanish','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','spanish-lse','Spanish-LSE','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','specific_groups','Specific Groups','2006-03-23 13:39:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','specify_url_to_content_package','Or, Specify a URL to a Content Package or Common Cartridge','2009-11-16 10:57:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','specify_url_to_theme_package','Or, Specify a URL to a Theme','2004-10-18 15:10:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','sports_recreation','Sports and Recreation','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','sql_statement','SQL Statement','2008-04-21 15:11:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','standard','Standard','2005-09-21 13:35:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','started_by','Started By','2003-05-22 13:02:38','forums thread display table column header');
+INSERT INTO `language_text` VALUES ('en', '_template','startend_date_format','%%j/%%n/%%y %%G:%%i','2007-12-09 15:58:39','');
+INSERT INTO `language_text` VALUES ('en', '_template','startend_date_longs_format','%%Y-%%m-%%d %%H:%%i','2008-08-27 11:23:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','startend_date_long_format','%%Y-%%m-%%d %%H:%%i','2008-08-27 11:24:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','start_date','Start Date','2003-05-22 13:03:05','mytests, test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','start_test','Begin','2009-11-13 16:18:58','test intro');
+INSERT INTO `language_text` VALUES ('en', '_template','state','State','2005-08-16 15:27:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','statement','Statement','2003-05-22 13:07:22','test manager add/edit questions');
+INSERT INTO `language_text` VALUES ('en', '_template','statistics','Statistics','2003-05-22 13:08:06','instructor course statistics/details');
+INSERT INTO `language_text` VALUES ('en', '_template','statistics_information','Statistics &amp; Information','2007-07-26 13:39:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','status','Status','2003-05-22 13:09:29','test manager, control center, profile, admin user manager');
+INSERT INTO `language_text` VALUES ('en', '_template','sticky_thread','Sticky Thread - always at the top','2003-05-22 13:10:18','instructor forum option alt text');
+INSERT INTO `language_text` VALUES ('en', '_template','stop_apply_audio_alternatives','Stop Applying Audio Alternatives','2010-04-21 14:35:40','alternative switcher');
+INSERT INTO `language_text` VALUES ('en', '_template','stop_apply_sign_lang_alternatives','Stop Applying Sign Language Alternatives','2010-04-21 14:36:15','alternative switcher');
+INSERT INTO `language_text` VALUES ('en', '_template','stop_apply_text_alternatives','Stop Applying Text Alternatives','2010-04-21 14:35:20','alternative switcher');
+INSERT INTO `language_text` VALUES ('en', '_template','stop_apply_visual_alternatives','Stop Applying Visual Alternatives','2010-04-21 14:35:57','alternative switcher');
+INSERT INTO `language_text` VALUES ('en', '_template','street_address','Street Address','2003-05-22 13:10:43','registration, profile');
+INSERT INTO `language_text` VALUES ('en', '_template','student','Student','2003-10-27 11:44:47','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','student1','Student','2003-05-22 13:11:42','admin user manager');
+INSERT INTO `language_text` VALUES ('en', '_template','students','Students','2003-05-21 20:01:44','course email (removed 1.2)');
+INSERT INTO `language_text` VALUES ('en', '_template','student_id','Student ID','2003-05-22 13:12:40','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','student_not_exists','Student not exists','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','student_pin','Student PIN','2005-05-27 13:35:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','student_tools','Student Tools','2008-11-07 09:17:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','student_tools_text','Access the tools used in this course.','2009-07-02 14:16:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','style_editor','Stylesheet Editor','2003-05-22 13:13:22','tool page/ stylesheet editor heading text');
+INSERT INTO `language_text` VALUES ('en', '_template','subject','Subject','2003-05-22 13:14:21','global message subject label');
+INSERT INTO `language_text` VALUES ('en', '_template','submission','Submission','2005-05-11 11:29:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','submissions','Submissions','2003-05-22 13:14:47','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','submit','Submit','2003-05-22 13:15:05','global submit button text');
+INSERT INTO `language_text` VALUES ('en', '_template','submitted_by','Submitted By','2005-02-23 12:23:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','submit_no','No','2004-11-22 16:23:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','submit_yes','Yes','2004-11-22 16:23:00','');
+INSERT INTO `language_text` VALUES ('en', '_template','subscribe','Subscribe to this thread to receive notification via email of new replies.','2003-11-06 13:47:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','subscribe1','Subscribe','2004-12-02 15:32:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','sub_topics','Subtopics','2005-03-16 13:55:12','content manager');
+INSERT INTO `language_text` VALUES ('en', '_template','suggestions','Suggestions','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','suggest_link','Suggest Course Link','2006-05-25 11:40:32','');
+INSERT INTO `language_text` VALUES ('en', '_template','summary','Summary','2003-09-13 09:24:55','course tracker member picker');
+INSERT INTO `language_text` VALUES ('en', '_template','support_tools','Learner Tools','2010-05-03 14:59:19','');
+INSERT INTO `language_text` VALUES ('en', '_template','swedish','Swedish','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','switch_text','Switch to text editor','2004-05-27 10:50:47','Content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','switch_visual','Switch to visual editor','2004-05-27 10:52:19','Used in content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','syndicate_announcements','Syndicate Announcements','2005-01-04 09:46:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','system_preferences','System Preferences','2005-03-03 10:49:44','');
+INSERT INTO `language_text` VALUES ('en', '_template','table_of_contents','Page Contents','2010-10-07 10:42:38','preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','take_test','Take Test','2003-05-22 13:54:16','MyTests');
+INSERT INTO `language_text` VALUES ('en', '_template','tamil','Tamil','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','tech_support_forum','Community Support Forum','2008-11-14 13:38:14','help');
+INSERT INTO `language_text` VALUES ('en', '_template','tech_support_forum_text','Support questions should be of a technical nature.','2005-07-05 14:13:20','help');
+INSERT INTO `language_text` VALUES ('en', '_template','template','Template','2006-09-25 13:07:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','tests','Tests and Surveys','2010-06-25 14:02:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','test_anonymous','This test/survey is anonymous.','2004-09-02 13:42:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','test_confirm_submit','You are about to submit the test/survey.  Please note that changes are not allowed once the test/survey is submitted, do you want to proceed?','2010-05-07 10:53:46','test questions');
+INSERT INTO `language_text` VALUES ('en', '_template','test_description','Test Description','2008-03-10 11:50:11','Test/Survey Property');
+INSERT INTO `language_text` VALUES ('en', '_template','test_import_package','Import available tests.','2008-10-21 11:43:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','test_lk','Likert','2004-08-12 15:55:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','test_ma','Multiple Answer','2007-02-01 15:49:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','test_matching','Matching (Simple)','2007-02-01 16:20:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','test_matchingdd','Matching (Graphical)','2007-02-01 16:20:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','test_mc','Multiple Choice','2003-05-22 14:03:29','test manager question type');
+INSERT INTO `language_text` VALUES ('en', '_template','test_open','Open Ended','2003-05-22 14:03:45','test manager question type');
+INSERT INTO `language_text` VALUES ('en', '_template','test_ordering','Ordering','2007-01-10 13:45:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','test_tf','True or False','2003-05-22 14:09:05','test manager question type');
+INSERT INTO `language_text` VALUES ('en', '_template','text','Text','2004-04-20 16:40:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','textual','Textual','2008-09-08 14:19:22','');
+INSERT INTO `language_text` VALUES ('en', '_template','theme','Theme','2004-04-23 15:26:57','');
+INSERT INTO `language_text` VALUES ('en', '_template','themes','Themes','2003-05-22 14:10:24','preferences');
+INSERT INTO `language_text` VALUES ('en', '_template','themes_disabled','The personal theme preference has been disabled in favour of theme specific categories.','2004-08-04 11:58:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','themes_for_desktop','Themes for desktop computers','2010-06-18 15:45:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','themes_for_mobile','Themes for mobile devices','2010-06-18 15:46:14','');
+INSERT INTO `language_text` VALUES ('en', '_template','theme_screenshot','Screenshot','2005-05-06 14:18:00','theme manager, screentshot alt/title');
+INSERT INTO `language_text` VALUES ('en', '_template','theme_specific_categories','Theme Specific Categories','2005-03-31 13:49:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','there_are_entries','There are %s entries.','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','thesaurus','Thesaurus','2008-09-09 09:03:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','the_follow_errors_occurred','The following errors occurred:','2005-03-07 12:41:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','things_current','Things Current','2010-04-14 12:20:52','my start page');
+INSERT INTO `language_text` VALUES ('en', '_template','this_course_only','This course only','2004-08-18 12:02:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','this_is_content','This is a blank content page. Use Edit this Page in the Content Editor links above to modify this page. As the instructor of this course, you can manage it through the Manage tab above.','2010-10-19 10:16:29','default content insert when a new course is created');
+INSERT INTO `language_text` VALUES ('en', '_template','thread_already_subscribed','You are already subscribed to this thread.','2003-05-22 14:11:25','forum view thread subscribe feedback');
+INSERT INTO `language_text` VALUES ('en', '_template','thread_locked','Thread Locked','2003-05-22 14:11:58','forum thread view thread lock message');
+INSERT INTO `language_text` VALUES ('en', '_template','thread_notify1','Thread Subscription','2005-01-08 09:18:48','Thread email notify subject');
+INSERT INTO `language_text` VALUES ('en', '_template','thread_subscribe','Subscribe to this thread to receive notification via email of replies.','2003-05-22 14:42:57','forum thread subscribe description');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_any_field','Any Field','2004-05-03 13:14:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_author','Author','2004-05-03 13:14:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_export','Export content to the AContent repository. A valid AContent account is required.','2010-06-09 15:20:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_howto','Enter keywords to search AContent repository.','2010-06-09 15:21:01','tile search');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_import_content_package_about','Import the content directly into this course.','2004-05-03 13:15:54','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_keyword','Keyword','2004-05-03 13:14:23','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_not_accessible','AContent repository is not accessible.','2010-06-09 15:21:48','tile search');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_no_response','No response from AContent. It might because the course is too big to be auto-imported into AContent, or unknown problems occurred. Please download the ATutor package and manually import into AContent.','2010-07-12 11:48:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_progress','AContent Importing in Progress...','2010-06-09 15:22:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_search','AContent','2010-06-09 15:22:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_search_text','Search the content repository for additional learning materials. Use reserved keyword \"OR\" (must be capital) in between searching words for searching either one of several words.','2010-05-05 16:13:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_setup','AContent Setup','2010-06-09 15:17:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_setup_txt','Enter the location of the AContent repository (http://www.acontent.com) and the AContent web service ID. An AContent web service ID can be obtained by registering on an AContent system. Or, if already registered, it can be accessed from the AContent \"Profile\" page.','2010-06-09 15:19:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','tile_technical_format','Technical Format','2004-05-03 13:14:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','times','Times','2009-10-26 15:03:31','');
+INSERT INTO `language_text` VALUES ('en', '_template','timestamp','Timestamp','2004-12-06 12:04:30','');
+INSERT INTO `language_text` VALUES ('en', '_template','time_spent','Time Spent','2007-07-09 12:32:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','time_zone','Time Zone (date below should match your local time)','2010-03-03 16:32:12','appears on the config page');
+INSERT INTO `language_text` VALUES ('en', '_template','time_zones_not_supported','Your server is not set-up to support time zones. See the Handbook for more details.','2006-11-01 13:06:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','title','Title','2003-05-22 14:43:54','admin course manager column heading');
+INSERT INTO `language_text` VALUES ('en', '_template','to','To','2003-05-22 14:45:14','inbox send message \"to\" a user');
+INSERT INTO `language_text` VALUES ('en', '_template','to1','to','2003-05-22 14:48:13','login form header row login -to- some place');
+INSERT INTO `language_text` VALUES ('en', '_template','toggle_disabled','Toggle Disabled','2003-05-22 15:10:01','alt text for menu toggle');
+INSERT INTO `language_text` VALUES ('en', '_template','tools','Tools','2006-03-22 12:52:10','');
+INSERT INTO `language_text` VALUES ('en', '_template','tools_details','Details for Tool Usage','2003-05-22 15:11:15','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','tools_manager','Add Activity','2009-10-22 16:17:01','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','tool_manager','Tool/Activity Manager','2009-11-19 16:12:28','core modules');
+INSERT INTO `language_text` VALUES ('en', '_template','tool_man_comment','Choose from the tools available in the course, to add activities to this content.','2009-11-05 12:29:40','content tool manager');
+INSERT INTO `language_text` VALUES ('en', '_template','tool_settings','Learner Supports','2010-04-12 16:29:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','tool_summary','Tools Usage Summary','2003-05-22 15:11:26','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','top','Top','2003-05-22 15:11:53','global alt text for jump to top link/icon');
+INSERT INTO `language_text` VALUES ('en', '_template','topic','Topic','2003-05-22 15:12:45','forum thread list column heading');
+INSERT INTO `language_text` VALUES ('en', '_template','top_20','Only the top 20 results have been displayed.','2005-10-20 10:50:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','top_level','Top Level','2005-03-16 13:36:35','content manager');
+INSERT INTO `language_text` VALUES ('en', '_template','total','Total','2003-05-22 15:14:13','instructor course statistic/details, test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','total_votes','Total Votes','2005-03-11 15:51:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','to_2','to','2003-05-22 15:15:16','test manager date');
+INSERT INTO `language_text` VALUES ('en', '_template','to_email','To Email','2003-05-22 15:17:02','help admin/instructor contact forms');
+INSERT INTO `language_text` VALUES ('en', '_template','to_name','To Name','2003-05-22 15:17:20','help admin/instructor contact forms');
+INSERT INTO `language_text` VALUES ('en', '_template','tracker','Content Tracker','2005-11-25 18:36:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','tracker_none_viewed','No content pages have been viewed in this course yet.','2003-09-15 11:53:06','mytracker summary view');
+INSERT INTO `language_text` VALUES ('en', '_template','tracker_not_viewed','Jump to pages not yet viewed.','2003-09-13 12:16:10','mytracker bypass to not viewed alt text');
+INSERT INTO `language_text` VALUES ('en', '_template','tracker_pages_total','Total pages in this course %s (pages visited: %s.)','2003-09-13 09:11:43','tracker summary pages read');
+INSERT INTO `language_text` VALUES ('en', '_template','tracker_percent_read','Percentage of pages viewed %s.','2003-09-13 12:09:57','tracker pages read');
+INSERT INTO `language_text` VALUES ('en', '_template','tracker_summary_read','Summary of pages viewed by user %s.','2003-09-13 12:30:44','tracker summary read');
+INSERT INTO `language_text` VALUES ('en', '_template','tracking','Tracking','2003-05-22 15:18:11','admin course manager ');
+INSERT INTO `language_text` VALUES ('en', '_template','tracking_all_page_viewed','All pages in this course have been viewed.','2003-09-13 12:37:23','mytracker page not viewed');
+INSERT INTO `language_text` VALUES ('en', '_template','training_and_education','Training and Education','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','transformable_uri','AContent URL','2010-06-09 15:32:25','');
+INSERT INTO `language_text` VALUES ('en', '_template','translate','Translate','2004-12-07 13:59:44','language manager translate button');
+INSERT INTO `language_text` VALUES ('en', '_template','translate_lang_howto','In order to translate a language you must : <br />\r\n1. Set the AT_DEVEL_TRANSLATE constant in /include/vitals.inc.php to \'1\' <br />\r\n2. Make sure that you have added the new language to the database<br />\r\n3. Select  the new language as the one you want to translate from the \'translate to:\' option at the bottom of the page<br />\r\n4. Use the translate button and translate the new language in a new window<br />','2004-12-10 16:29:48','Language Manager, translation message');
+INSERT INTO `language_text` VALUES ('en', '_template','translate_to','Translate to:','2003-05-22 15:19:14','footer');
+INSERT INTO `language_text` VALUES ('en', '_template','true','True','2003-05-22 15:19:50','test manager question answer option');
+INSERT INTO `language_text` VALUES ('en', '_template','type','Type','2003-05-22 15:20:30','test manager questions column heading');
+INSERT INTO `language_text` VALUES ('en', '_template','unchecked','Un-checked','2006-06-26 14:56:06','');
+INSERT INTO `language_text` VALUES ('en', '_template','unconfirmed','Unconfirmed','2005-04-01 10:39:51','');
+INSERT INTO `language_text` VALUES ('en', '_template','underline','Underline','2003-05-22 15:21:31','global code picker');
+INSERT INTO `language_text` VALUES ('en', '_template','underscore','Underscore','2004-06-22 12:09:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','unenroll','Un-enroll','2004-10-15 11:51:25','unenroll button in enrollment manager');
+INSERT INTO `language_text` VALUES ('en', '_template','unenrolled','Un-enrolled','2004-10-15 11:50:06','unenrolled tab in enrollement manager');
+INSERT INTO `language_text` VALUES ('en', '_template','unenroll_me','Unenroll','2007-12-09 08:57:03','');
+INSERT INTO `language_text` VALUES ('en', '_template','uninstall','Uninstall','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','uninstall_module_info','You are about to <strong>UNINSTALL</strong> module <strong><em>%s</em></strong>.','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','unique_visits','Unique Visits','2005-03-01 12:41:13','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','university','School/Institution','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','unknown','Unknown','2003-06-06 10:41:35','links database , file upload progress window');
+INSERT INTO `language_text` VALUES ('en', '_template','unknown_error','An unknown error occured','2003-05-22 15:22:55','general catch all error message');
+INSERT INTO `language_text` VALUES ('en', '_template','unlimited','Unlimited','2005-03-01 11:22:02','admin course properties & file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','unlock_thread','Unlock Thread','2003-05-22 15:24:58','forum instructor lock screen');
+INSERT INTO `language_text` VALUES ('en', '_template','unmarked','Unmarked','2003-05-22 15:25:33','mytests, test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','unmarked_label','Unmarked (%s)','2005-05-12 10:25:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','unreleased','Unreleased','2005-05-04 13:59:37','');
+INSERT INTO `language_text` VALUES ('en', '_template','unshared_forums','Unshared Forums','2004-11-05 10:50:02','');
+INSERT INTO `language_text` VALUES ('en', '_template','unsubscribe','UnSubscribe from this thread to cancel receiving notifications via email of new replies.','2003-11-06 13:47:20','');
+INSERT INTO `language_text` VALUES ('en', '_template','unsubscribe1','Unsubscribe','2004-12-02 15:32:28','');
+INSERT INTO `language_text` VALUES ('en', '_template','until','Until','2006-03-23 11:38:49','');
+INSERT INTO `language_text` VALUES ('en', '_template','unvisited_pages','You have not viewed the following pages:','2003-09-13 11:56:50','mytracker summary');
+INSERT INTO `language_text` VALUES ('en', '_template','update','Update','2004-11-24 14:28:45','');
+INSERT INTO `language_text` VALUES ('en', '_template','updated','Updated','2003-05-22 15:33:15','admin course manager');
+INSERT INTO `language_text` VALUES ('en', '_template','update_gradebook','Update ATutor Marks','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','update_list','Update List','2005-05-10 14:31:59','');
+INSERT INTO `language_text` VALUES ('en', '_template','update_to','Update To','2005-03-03 12:16:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','upload','Upload','2003-05-22 15:56:16','global upload button/link text');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_backup','Upload Backup','2008-05-20 12:44:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_content_package','Upload a Content Package or Common Cartridge','2009-11-16 10:54:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_file','Upload File','2006-03-20 14:37:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_files','Upload files','2008-07-22 16:43:38','Used in filemanager and any place that uses fluid for multiple file upload.');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_icon','Upload Custom Course Icon','2007-11-09 13:05:42','Course Properties Custom Icon');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_icon_text','This icon will be uploaded to the file manager for this course under the folder \'/custom_icons\'.','2008-07-28 10:36:03','Course Properties Custom Icon Text');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_module','Upload a module zip file to install it:','2008-11-05 08:48:45','Module installation message');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_new_picture','Upload new picture','2007-02-26 17:23:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_patch','Upload a zip file to install patch:','2008-04-21 15:08:55','patcher');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_progress','File Upload in Progress...','2003-06-06 10:36:38','file upload progress window');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_question','Select Question Package to Upload','2008-09-23 14:00:24','');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_test','Select Test Package to Upload','2008-09-23 13:58:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','upload_theme_package','Upload a Theme','2004-10-18 15:09:32','Theme Manager');
+INSERT INTO `language_text` VALUES ('en', '_template','urdu','Urdu','2008-09-09 09:01:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','url','URL','2003-05-22 15:56:36','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','url_to_read','URL To Read','2006-04-13 12:01:15','');
+INSERT INTO `language_text` VALUES ('en', '_template','usage','Usage','2005-03-16 13:55:31','content manager');
+INSERT INTO `language_text` VALUES ('en', '_template','usaved_changes_made','Unsaved changes made','2004-01-15 13:30:06','editing content');
+INSERT INTO `language_text` VALUES ('en', '_template','user','User','2003-05-22 15:59:34','links database');
+INSERT INTO `language_text` VALUES ('en', '_template','username','Username','2003-05-22 16:00:31','global username label/link text');
+INSERT INTO `language_text` VALUES ('en', '_template','users','Users','2003-05-22 16:02:26','forum, admin user manager');
+INSERT INTO `language_text` VALUES ('en', '_template','users_online','Users Online','2003-05-22 16:03:00','discussions page text');
+INSERT INTO `language_text` VALUES ('en', '_template','user_contributed_notes','User Contributed Handbook Notes','2005-07-27 12:01:52','');
+INSERT INTO `language_text` VALUES ('en', '_template','user_offline','Offline','2005-03-11 16:19:14','directory');
+INSERT INTO `language_text` VALUES ('en', '_template','user_online','Online','2005-03-11 16:19:28','directory');
+INSERT INTO `language_text` VALUES ('en', '_template','user_type','User Type','2008-10-06 13:41:48','');
+INSERT INTO `language_text` VALUES ('en', '_template','use_alt_to_audio','Use Alternative To Audio','2008-09-09 08:56:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','use_alt_to_text','Use Alternative To Text','2008-09-09 08:56:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','use_alt_to_visual','Use Alternative To Visual','2008-09-09 08:56:34','');
+INSERT INTO `language_text` VALUES ('en', '_template','use_as_alternative','Use As Alternative','2010-03-09 16:15:53','adapted content');
+INSERT INTO `language_text` VALUES ('en', '_template','use_captcha','Allow the use of CAPTCHA','2009-06-03 15:33:17','');
+INSERT INTO `language_text` VALUES ('en', '_template','use_customized_head','Turn on custom Scripts/CSS','2010-05-03 10:44:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','use_enrol_button','Use the button below to enroll in this course.','2003-05-22 16:03:37','enrol screen instruction');
+INSERT INTO `language_text` VALUES ('en', '_template','use_higher_grade','Use higher grade','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','use_lower_grade','Use lower grade','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','use_parent_theme','Use parent category\'s theme.','2004-08-04 11:34:41','');
+INSERT INTO `language_text` VALUES ('en', '_template','use_system_time','Use the system\'s time','2006-11-01 13:06:01','');
+INSERT INTO `language_text` VALUES ('en', '_template','use_url_as_alternative','Use a remote URL as an alternative','2010-06-18 13:28:40','');
+INSERT INTO `language_text` VALUES ('en', '_template','use_visual_editor','<small style=\"text-decoration:underline;\">(Editor)</small>','2004-12-08 12:15:36','form editor in create test question');
+INSERT INTO `language_text` VALUES ('en', '_template','version','Version','2003-05-22 16:04:54','copyright notice in footer');
+INSERT INTO `language_text` VALUES ('en', '_template','version_history','Version History','2008-10-21 15:41:53','');
+INSERT INTO `language_text` VALUES ('en', '_template','version_not_match','This patch is for ATutor version %s. Does not match with your current ATutor version. The installation of it may break ATutor. Are you sure you want to proceed?','2008-06-19 13:20:45','patcher warning message');
+INSERT INTO `language_text` VALUES ('en', '_template','vertical','Vertical','2004-12-01 13:34:28','create/edit test question option');
+INSERT INTO `language_text` VALUES ('en', '_template','view','View','2004-02-16 15:23:09','');
+INSERT INTO `language_text` VALUES ('en', '_template','viewing_errors','Viewing Error(s)','2004-12-06 12:10:05','');
+INSERT INTO `language_text` VALUES ('en', '_template','viewing_profile_bugs','Viewing Profile Bugs','2004-12-06 12:03:33','');
+INSERT INTO `language_text` VALUES ('en', '_template','view_all','View All','2005-08-04 09:54:04','');
+INSERT INTO `language_text` VALUES ('en', '_template','view_details','View Details','2005-03-11 11:27:43','');
+INSERT INTO `language_text` VALUES ('en', '_template','view_entire_post','View Entire Post','2003-05-22 16:07:57','forum message view');
+INSERT INTO `language_text` VALUES ('en', '_template','view_groups','View Group','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','view_log','View Activity Log','2005-03-03 10:44:12','');
+INSERT INTO `language_text` VALUES ('en', '_template','view_mark_test','View & Mark Test','2003-05-22 16:08:11','test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','view_message','View Message','2005-03-14 11:48:21','');
+INSERT INTO `language_text` VALUES ('en', '_template','view_profile_bugs','View Profile Bugs','2004-12-06 11:51:58','admin/error_logging.php');
+INSERT INTO `language_text` VALUES ('en', '_template','view_readme','View Readme','2009-07-21 15:31:29','');
+INSERT INTO `language_text` VALUES ('en', '_template','view_responses','View Responses','2004-08-25 11:53:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','view_results','View Results','2003-05-22 16:09:09','mytests, test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','view_selected_bugs','View Selected Bugs','2004-12-06 12:06:26','');
+INSERT INTO `language_text` VALUES ('en', '_template','view_sub_topics','View subtopics','2005-03-16 13:35:47','content manager');
+INSERT INTO `language_text` VALUES ('en', '_template','view_tracking','View Tracking','2003-05-22 16:09:31','tracker');
+INSERT INTO `language_text` VALUES ('en', '_template','vimeo','Vimeo','2010-11-30 18:09:48','module name');
+INSERT INTO `language_text` VALUES ('en', '_template','visitor_counts','Visitor counts','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','visits','Visits','2003-09-13 09:19:09','tracker summary read');
+INSERT INTO `language_text` VALUES ('en', '_template','visual','Visual','2008-09-08 14:19:07','');
+INSERT INTO `language_text` VALUES ('en', '_template','visual_editor','Visual Editor','2006-11-23 13:31:56','');
+INSERT INTO `language_text` VALUES ('en', '_template','vote_to_see_results','Vote to see results.','2004-06-21 16:55:42','');
+INSERT INTO `language_text` VALUES ('en', '_template','warning','Warning','2003-05-22 16:09:47','text for warning message');
+INSERT INTO `language_text` VALUES ('en', '_template','weblink','Web Link','2009-10-22 16:18:13','content editor');
+INSERT INTO `language_text` VALUES ('en', '_template','websites','Websites','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','web_service_id','Web Service ID','2010-05-05 16:17:46','');
+INSERT INTO `language_text` VALUES ('en', '_template','web_site','Web Site','2003-05-22 16:10:20','registration, profile');
+INSERT INTO `language_text` VALUES ('en', '_template','weight','Weight','2003-05-22 16:10:31','test manager');
+INSERT INTO `language_text` VALUES ('en', '_template','welcome_to_atutor','Welcome To ATutor','2003-05-31 15:30:38','announcement default heading for new course');
+INSERT INTO `language_text` VALUES ('en', '_template','white','White','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','window_auto_close','This window will close automatically.','2003-06-06 10:37:43','file upload progress window');
+INSERT INTO `language_text` VALUES ('en', '_template','workspace','Workspace','2006-03-20 14:38:08','');
+INSERT INTO `language_text` VALUES ('en', '_template','world_network','World Network','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','wrong_answer','Wrong Answer','2003-05-22 16:11:51','test manager question editor');
+INSERT INTO `language_text` VALUES ('en', '_template','wrong_request_token','Mismatched request token from OAuth server.','2010-02-23 10:03:11','oauth client');
+INSERT INTO `language_text` VALUES ('en', '_template','year','Year','2004-06-24 15:45:35','');
+INSERT INTO `language_text` VALUES ('en', '_template','yellow','Yellow','2008-09-09 09:01:13','');
+INSERT INTO `language_text` VALUES ('en', '_template','yes','Yes','2005-03-03 10:18:48','preferences, admin course manager');
+INSERT INTO `language_text` VALUES ('en', '_template','yes_delete','Yes / Delete','2003-05-22 16:14:23','global delete response option');
+INSERT INTO `language_text` VALUES ('en', '_template','your_applications','My Gadgets','2009-05-27 12:01:11','');
+INSERT INTO `language_text` VALUES ('en', '_template','your_mark','Your Mark','2008-09-25 16:01:17','gradebook');
+INSERT INTO `language_text` VALUES ('en', '_template','you_are_here','You are here','2003-10-02 16:46:28','ALT text Global/Local Navigation link to self');
+INSERT INTO `language_text` VALUES ('en', '_template','zip_archive','Zip Archive','2003-05-22 16:20:01','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','zip_file_manager','Zip File Manager','2003-05-22 16:20:14','file manager');
+INSERT INTO `language_text` VALUES ('en', '_template','zip_illegal_contents','The contents of this archive are listed below. Illegal file types will not be extracted, and file names containing illegal characters will be translated.','2004-08-10 15:10:04','');
index c152f8d..cb0bd72 100644 (file)
@@ -617,7 +617,7 @@ CREATE TABLE `messages_sent` (
 CREATE TABLE `modules` (  
   `dir_name` VARCHAR( 50 ) NOT NULL default '',  
   `status` TINYINT NOT NULL default 0,
-  `privilege` INT UNSIGNED NOT NULL default 0,  
+  `privilege` BIGINT UNSIGNED NOT NULL default 0,  
   `admin_privilege` MEDIUMINT UNSIGNED NOT NULL default 0, 
   `cron_interval` SMALLINT UNSIGNED DEFAULT '0' NOT NULL ,
   `cron_last_run` INT UNSIGNED DEFAULT '0' NOT NULL,
@@ -649,6 +649,8 @@ INSERT INTO `modules` VALUES ('_standard/farchive',      2, 4194304, 0, 0, 0);
 INSERT INTO `modules` VALUES ('_standard/social',       2, 8388608, 0, 0, 0);
 INSERT INTO `modules` VALUES ('_standard/photos',       2, 16777216, 0, 0, 0);
 INSERT INTO `modules` VALUES ('_standard/flowplayer',   2, 33554432, 0, 0, 0);
+INSERT INTO `modules` VALUES ('_standard/basiclti', 2, 67108864, 16384, 0, 0);
+INSERT INTO `modules` VALUES ('_standard/assignment_dropbox', 2, 134217728, 0, 0, 0);
 INSERT INTO `modules` VALUES ('_core/users',             2, 0,         2, 0, 0);
 INSERT INTO `modules` VALUES ('_core/courses',           2, 0,         4, 0, 0);
 INSERT INTO `modules` VALUES ('_core/backups',           2, 1,         8, 0, 0);
@@ -1541,7 +1543,70 @@ CREATE TABLE `pa_photo_comments` (
   PRIMARY KEY (`id`)
 ) ENGINE = MyISAM;
 
-# Initiali Config
+# A mapping table between photo album and atutor groups
+#######################
+# This table is not currently being used, to be implemented later
+#######################
+CREATE TABLE `pa_groups` (
+  `group_id` INTEGER UNSIGNED NOT NULL,
+  `album_id` INTEGER UNSIGNED NOT NULL,
+  PRIMARY KEY (`group_id`, `album_id`)
+) ENGINE = MyISAM;
+
+
+# Initial Config
 INSERT INTO `config` VALUES ('pa_max_memory_per_member', '50');
 
-# -------------- Photo Album Module Ends -----------------
\ No newline at end of file
+# -------------- Photo Album Module Ends -----------------
+
+# -------------- External Tools/BasicLTI  Starts -----------------
+CREATE TABLE `basiclti_tools` (
+       `id` mediumint(10) NOT NULL AUTO_INCREMENT,
+       `toolid` varchar(32) NOT NULL,
+       `course_id` mediumint(10) NOT NULL DEFAULT '0',
+       `title` varchar(255) NOT NULL,
+       `description` varchar(1024),
+       `timecreated` TIMESTAMP,
+       `timemodified` TIMESTAMP,
+       `toolurl` varchar(1023) NOT NULL,
+       `resourcekey` varchar(1023) NOT NULL,
+       `password` varchar(1023) NOT NULL,
+       `preferheight` mediumint(4) NOT NULL DEFAULT '0',
+       `allowpreferheight` mediumint(1) NOT NULL DEFAULT '0',
+       `sendname` mediumint(1) NOT NULL DEFAULT '0',
+       `sendemailaddr` mediumint(1) NOT NULL DEFAULT '0',
+       `acceptgrades` mediumint(1) NOT NULL DEFAULT '0',
+       `allowroster` mediumint(1) NOT NULL DEFAULT '0',
+       `allowsetting` mediumint(1) NOT NULL DEFAULT '0',
+       `allowcustomparameters` mediumint(1) NOT NULL DEFAULT '0',
+       `customparameters` text,
+       `organizationid` varchar(64),
+       `organizationurl` varchar(255),
+       `organizationdescr` varchar(255),
+       `launchinpopup` mediumint(1) NOT NULL DEFAULT '0',
+       `debuglaunch` mediumint(1) NOT NULL DEFAULT '0',
+       PRIMARY KEY ( `id`, `toolid` )
+) ENGINE = MyISAM;
+
+CREATE TABLE `basiclti_content` (
+       `id` mediumint(10) NOT NULL AUTO_INCREMENT,
+       `content_id` mediumint(10) NOT NULL DEFAULT '0',
+       `course_id` mediumint(10) NOT NULL DEFAULT '0',
+       `toolid` varchar(32) NOT NULL DEFAULT '',
+       `preferheight` mediumint(4) NOT NULL DEFAULT '0',
+       `sendname` mediumint(1) NOT NULL DEFAULT '0',
+       `sendemailaddr` mediumint(1) NOT NULL DEFAULT '0',
+       `gradebook_test_id` mediumint(10) NOT NULL DEFAULT '0',
+       `allowroster` mediumint(1) NOT NULL DEFAULT '0',
+       `allowsetting` mediumint(1) NOT NULL DEFAULT '0',
+       `customparameters` text,
+       `launchinpopup` mediumint(1) NOT NULL DEFAULT '0',
+       `debuglaunch` mediumint(1) NOT NULL DEFAULT '0',
+       `placementsecret` varchar(1023),
+       `timeplacementsecret` mediumint(10) NOT NULL DEFAULT '0',
+       `oldplacementsecret` varchar(1023),
+       `setting` text(8192),
+       `xmlimport` text(16384),
+       PRIMARY KEY ( `id`, `course_id`, `content_id` )
+) ENGINE = MyISAM;
+# -------------- External Tools/BasicLTI  Ends -----------------
\ No newline at end of file
index 497da9a..abca578 100644 (file)
@@ -15,10 +15,10 @@ UPDATE `themes` SET `version` = '2.0.2' WHERE `title` = 'ATutor 1.5';
 UPDATE `themes` SET `version` = '2.0.2' WHERE `title` = 'Mobile';
 UPDATE `themes` SET `version` = '2.0.2' WHERE `title` = 'ATutor 1.6';
 
-# A mapping table between photo album and atutor's groups
+# A mapping table between photo album and atutor groups
 CREATE TABLE `pa_groups` (
   `group_id` INTEGER UNSIGNED NOT NULL,
   `album_id` INTEGER UNSIGNED NOT NULL,
   PRIMARY KEY (`group_id`, `album_id`)
-) ENGINE = MyISAM
+) ENGINE = MyISAM;
 
index 1394cd7..ffbbe2b 100644 (file)
@@ -29,3 +29,78 @@ ALTER TABLE `pa_albums` MODIFY `description` TEXT;
 ALTER TABLE `pa_album_comments` MODIFY `comment` TEXT;
 
 ALTER TABLE `pa_photo_comments` MODIFY `comment` TEXT;
+
+# add the BasicLTI module 
+
+# -------------- External Tools/BasicLTI  Starts -----------------
+CREATE TABLE `basiclti_tools` (
+       `id` mediumint(10) NOT NULL AUTO_INCREMENT,
+       `toolid` varchar(32) NOT NULL,
+       `course_id` mediumint(10) NOT NULL DEFAULT '0',
+       `title` varchar(255) NOT NULL,
+       `description` varchar(1024),
+       `timecreated` TIMESTAMP,
+       `timemodified` TIMESTAMP,
+       `toolurl` varchar(1023) NOT NULL,
+       `resourcekey` varchar(1023) NOT NULL,
+       `password` varchar(1023) NOT NULL,
+       `preferheight` mediumint(4) NOT NULL DEFAULT '0',
+       `allowpreferheight` mediumint(1) NOT NULL DEFAULT '0',
+       `sendname` mediumint(1) NOT NULL DEFAULT '0',
+       `sendemailaddr` mediumint(1) NOT NULL DEFAULT '0',
+       `acceptgrades` mediumint(1) NOT NULL DEFAULT '0',
+       `allowroster` mediumint(1) NOT NULL DEFAULT '0',
+       `allowsetting` mediumint(1) NOT NULL DEFAULT '0',
+       `allowcustomparameters` mediumint(1) NOT NULL DEFAULT '0',
+       `customparameters` text,
+       `organizationid` varchar(64),
+       `organizationurl` varchar(255),
+       `organizationdescr` varchar(255),
+       `launchinpopup` mediumint(1) NOT NULL DEFAULT '0',
+       `debuglaunch` mediumint(1) NOT NULL DEFAULT '0',
+       PRIMARY KEY ( `id`, `toolid` )
+) ENGINE = MyISAM;
+
+CREATE TABLE `basiclti_content` (
+       `id` mediumint(10) NOT NULL AUTO_INCREMENT,
+       `content_id` mediumint(10) NOT NULL DEFAULT '0',
+       `course_id` mediumint(10) NOT NULL DEFAULT '0',
+       `toolid` varchar(32) NOT NULL DEFAULT '',
+       `preferheight` mediumint(4) NOT NULL DEFAULT '0',
+       `sendname` mediumint(1) NOT NULL DEFAULT '0',
+       `sendemailaddr` mediumint(1) NOT NULL DEFAULT '0',
+       `gradebook_test_id` mediumint(10) NOT NULL DEFAULT '0',
+       `allowroster` mediumint(1) NOT NULL DEFAULT '0',
+       `allowsetting` mediumint(1) NOT NULL DEFAULT '0',
+       `customparameters` text,
+       `launchinpopup` mediumint(1) NOT NULL DEFAULT '0',
+       `debuglaunch` mediumint(1) NOT NULL DEFAULT '0',
+       `placementsecret` varchar(1023),
+       `timeplacementsecret` mediumint(10) NOT NULL DEFAULT '0',
+       `oldplacementsecret` varchar(1023),
+       `setting` text(8192),
+       `xmlimport` text(16384),
+       PRIMARY KEY ( `id`, `course_id`, `content_id` )
+) ENGINE = MyISAM;
+
+# Add BasicLTI to modules
+INSERT INTO `modules` (dir_name, status, privilege, admin_privilege, cron_interval, cron_last_run) SELECT '_standard/basiclti', 2, max(privilege)*2, max(admin_privilege) * 2, 0, 0 FROM `modules`;
+
+# Add Assignment Dropbox to modules
+INSERT INTO `modules` (dir_name, status, privilege, admin_privilege, cron_interval, cron_last_run) SELECT '_standard/assignment_dropbox', 2, max(privilege)*2, 0, 0, 0 FROM `modules`;
+
+# -------------- External Tools/BasicLTI  Ends -----------------
+
+# -------------- Update theme version, not changes in this release ---------
+UPDATE `themes` SET `version` = '2.0.3' WHERE `title` = 'ATutor';
+UPDATE `themes` SET `version` = '2.0.3' WHERE `title` = 'Fluid';
+UPDATE `themes` SET `version` = '2.0.3' WHERE `title` = 'ATutor Classic';
+UPDATE `themes` SET `version` = '2.0.3' WHERE `title` = 'Blumin';
+UPDATE `themes` SET `version` = '2.0.3' WHERE `title` = 'Greenmin';
+UPDATE `themes` SET `version` = '2.0.3' WHERE `title` = 'ATutor 1.5';
+UPDATE `themes` SET `version` = '2.0.3' WHERE `title` = 'Mobile';
+UPDATE `themes` SET `version` = '2.0.3' WHERE `title` = 'ATutor 1.6';
+UPDATE `themes` SET `version` = '2.0.3' WHERE `title` = 'IDI Theme';
+
+# more modules now, need space for bigger privilege numbers
+ALTER TABLE `modules` CHANGE `privilege` `privilege` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT '0';
\ No newline at end of file
index f7724ce..3b554d3 100644 (file)
@@ -3,6 +3,9 @@ if (!defined('AT_INCLUDE_PATH')) { exit; }
 error_reporting(E_ALL ^ E_NOTICE);
 @set_time_limit(0);
 
+// set the default timezone to avoid the warning of "cannot rely on system timezone"
+@date_default_timezone_set(@date_default_timezone_get());
+
 /* atutor default configuration options */
 /* used on: ustep1.php, step3.php, step5.php */
 $_defaults['admin_username'] = ($_POST['old_path'] ? 'admin' : '');
@@ -234,6 +237,30 @@ function print_meta_redirect(){
        return $html;
 }
 
+/**
+ * This function calculate the ATutor installation path
+ * @access  public
+ * @param   include_path: The relative path to install/include
+ * @return  string: atutor installation path, for example: /ATutor/
+ */
+function get_atutor_installation_path($include_path) {
+       /* get the base url     */
+       if (isset($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) == 'on')) {
+               $server_protocol = 'https://';
+       } else {
+               $server_protocol = 'http://';
+       }
+
+       $dir_deep        = substr_count($include_path, '..');
+       $url_parts       = explode('/', $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
+       $base_href       = array_slice($url_parts, 0, count($url_parts) - $dir_deep-2);
+       $base_href       = $server_protocol . implode('/', $base_href).'/';
+       
+       $session_path = substr($base_href, strlen($server_protocol . $_SERVER['HTTP_HOST']));
+       
+       return $session_path;
+}
+
 /**
  * This function is used for printing variables for debugging.
  * @access  public
index 87f34f9..e0b814c 100644 (file)
@@ -120,6 +120,11 @@ if(isset($_POST['submit']) && ($_POST['action'] == 'process')) {
                $sql = "INSERT INTO ".$_POST['step2']['tb_prefix']."config VALUES ('set_utf8', '1')";
                mysql_query($sql ,$db);
 
+               // Calculate the ATutor installation path and save into database for the usage of
+               // session associated path @ include/vitals.inc.php
+               $sql = "INSERT INTO ".$_POST['step2']['tb_prefix']."config VALUES ('session_path', '".get_atutor_installation_path(AT_INCLUDE_PATH)."')";
+               mysql_query($sql ,$db);
+               
                unset($_POST['admin_username']);
                unset($_POST['form_admin_password_hidden']);
                unset($_POST['admin_email']);
index 3bf49af..21b2d7a 100644 (file)
@@ -22,7 +22,7 @@ if (isset($_POST['submit'])) {
        } else if (!is_dir($_POST['content_dir'])) {
                $errors[] = '<strong>Content Directory</strong> is not a directory.';
        } else if (!is_writable($_POST['content_dir'])){
-               $errors[] = 'The Content Directory is not writable.';
+               $errors[] = 'The Content Directory is not writable. To make it writable, at the command prompt from within the ATutor directory enter the command <strong>chmod 2777 content</strong>';
        } else {
 
                $_POST['content_dir'] = realpath(urldecode($_POST['content_dir']));
@@ -263,7 +263,7 @@ if (isset($_POST['step1']['old_version'])) {
                
                <p>On a Windows machine, the path should look like <kbd>C:\content</kbd>, while on Unix it should look like <kbd>/var/content</kbd>.</p>
                
-               <p>The directory you specify must be created if it does not already exist and be writeable by the webserver. On Unix machines issue the command <kbd>chmod a+rwx content</kbd>, additionally the path may not contain any symbolic links.</p>
+               <p>The directory you specify must be created if it does not already exist and be writeable by the webserver. On Unix machines issue the command <kbd>chmod 2777 content</kbd>. Also be sure the path may not contain any symbolic links.</p>
 
                <input type="text" name="content_dir" id="contentdir" value="<?php if (!empty($_POST['content_dir'])) { echo $_POST['content_dir']; } else { echo $_defaults['content_dir']; } ?>" class="formfield" size="70" /></td>
        </tr>
index 94d2cd3..2931e37 100644 (file)
@@ -14,7 +14,7 @@ if (!defined('AT_INCLUDE_PATH')) { exit; }
 
 require('../svn.php');
 
-$svn_data   = explode("\n", $svn_data);
+if ($svn_data <> '') $svn_data = explode("\n", $svn_data);
 
 if (substr($svn_data[1], 0, 1) == 'r') {
        $svn_data = $svn_data[1];
index 1f69ac2..8e4a230 100644 (file)
@@ -244,6 +244,14 @@ if(isset($_POST['submit']) && ($_POST['action'] == 'process')) {
                mysql_query($sql, $db);
        }
 
+       /* Saved the atutor installation path into "config" table after 2.0.2 */
+       if (version_compare($_POST['step1']['new_version'], '2.0.2', '>')) {
+               // Calculate the ATutor installation path and save into database for the usage of
+               // session associated path @ include/vitals.inc.php
+               $sql = "INSERT INTO ".$_POST['step1']['tb_prefix']."config VALUES ('session_path', '".get_atutor_installation_path(AT_UPGRADE_INCLUDE_PATH)."')";
+               mysql_query($sql ,$db);
+       }
+
        if (!isset($errors)) {
                unset($errors);
                unset($_POST['submit']);
index 3d59cb3..eaed621 100644 (file)
@@ -10,6 +10,9 @@
 /************************************************************************/
 // $Id$
 
+// Be careful at modifying AT_INCLUDE_PATH constant which is used by 
+// get_atutor_installation_path() @ common.inc.php. Must make sure the 
+// function doesn't get broken at its modification.
 define('AT_INCLUDE_PATH', 'include/');
 require(AT_INCLUDE_PATH.'common.inc.php');
 
index 97f801d..6c697a3 100644 (file)
@@ -10,6 +10,9 @@
 /************************************************************************/
 // $Id$
 
+// AT_INCLUDE_PATH is the relative path to atutor root include directory
+// rather than the install include directory because this path is required
+// by Module.class.php used in ustep3.php.
 define('AT_INCLUDE_PATH', '../include/');
 
 if (isset($_POST['new_version'])) {
@@ -24,7 +27,11 @@ if (!isset($step) || ($step == 0)) {
        $step = 1;
 }
 
-require('include/common.inc.php');
+// Be careful at modifying AT_UPGRADE_INCLUDE_PATH constant which is used by 
+// get_atutor_installation_path() @ common.inc.php in ustep3.php. Must make sure the 
+// function doesn't get broken at modifying this constant.
+define('AT_UPGRADE_INCLUDE_PATH', 'include/');
+require(AT_UPGRADE_INCLUDE_PATH.'common.inc.php');
 
 if (($step == 2) && isset($_POST['override']) && ($_POST['override'] == 0)) {
        header('Location: index.php');
index 0913d53..d113a90 100644 (file)
@@ -84,6 +84,21 @@ ATutor.users.preferences = ATutor.users.preferences || {};
                '#contentwrapper {' +
                'FG_COLOR BG_COLOR' +
                '}' +
+               '#contentcolumn {' +
+               'FG_COLOR BG_COLOR' +
+               '}' +
+               '#rightcolumn {' +
+               'FG_COLOR BG_COLOR' +
+               '}' +
+               '#ctitle {' +
+               'FG_COLOR BG_COLOR FONT_SIZE FONT_FAMILY' +
+               '}' +
+               '#body_text{' +
+               'FG_COLOR BG_COLOR' +
+               '}' +
+               '.group_form {' +
+               'FG_COLOR BG_COLOR' +
+               '}' +
                '.test_instruction {' +
                'FG_COLOR BG_COLOR' +
                '}' +
@@ -554,7 +569,7 @@ ATutor.users.preferences = ATutor.users.preferences || {};
     ATutor.users.preferences.setStyles = function (bg_color, fg_color, hl_color, font, font_size) {
                var font_style = font ? 'font-family:' + font + ' !important;\n' : '';
                var font_size_style = font_size ? 'font-size:' + font_size + 'em !important;\n' : '';
-               var bg_color_style = bg_color ? 'background-color: #' + bg_color + ' !important;\n' : '';
+               var bg_color_style = bg_color ? 'background-color: #' + bg_color + ' !important;\n' + 'background-image: none  !important;\n' : '';
                var fg_color_style = fg_color ? 'color: #' + fg_color + ' !important;\n' : '';
                var hl_color_style = hl_color ? 'background-color: #' + hl_color + '! important;\n' : '';
                var bd_color_style = fg_color ? 'border-color: #' + fg_color + '! important;\n' : '';   
index 917a56a..f2e355a 100644 (file)
@@ -49,7 +49,7 @@ ATutor.course = ATutor.course || {};
        
        //modifies the menu html to add title, expand/collapse image, alt text. 
        var printSubmenus = function () {
-               var sideMenuBoxHeadings = jQuery("h4.box");
+               var sideMenuBoxHeadings = jQuery("h2.box");
                for (var titleIndex = 0; titleIndex < sideMenuBoxHeadings.length; titleIndex++) {
                        var heading = jQuery(sideMenuBoxHeadings[titleIndex]);                          
                        var title = jQuery("span", heading).html();
index 1497083..f422849 100644 (file)
@@ -1,33 +1,75 @@
 /*
- * jQuery JavaScript Library v1.3.2
+ * jQuery JavaScript Library v1.6.1
  * http://jquery.com/
  *
- * Copyright (c) 2009 John Resig
- * Dual licensed under the MIT and GPL licenses.
- * http://docs.jquery.com/License
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
- * Revision: 6246
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu May 12 15:04:36 2011 -0400
  */
-(function(){var window=this,undefined,_jQuery=window.jQuery,_$=window.$,jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context)},quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,isSimple=/^.[^:#\[\.,]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;this.context=selector;return this}if(typeof selector==="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1]){selector=jQuery.clean([match[1]],context)}else{var elem=document.getElementById(match[3]);if(elem&&elem.id!=match[3]){return jQuery().find(selector)}var ret=jQuery(elem||[]);ret.context=document;ret.selector=selector;return ret}}else{return jQuery(context).find(selector)}}else{if(jQuery.isFunction(selector)){return jQuery(document).ready(selector)}}if(selector.selector&&selector.context){this.selector=selector.selector;this.context=selector.context}return this.setArray(jQuery.isArray(selector)?selector:jQuery.makeArray(selector))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(num){return num===undefined?Array.prototype.slice.call(this):this[num]},pushStack:function(elems,name,selector){var ret=jQuery(elems);ret.prevObject=this;ret.context=this.context;if(name==="find"){ret.selector=this.selector+(this.selector?" ":"")+selector}else{if(name){ret.selector=this.selector+"."+name+"("+selector+")"}}return ret},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this},each:function(callback,args){return jQuery.each(this,callback,args)},index:function(elem){return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this)},attr:function(name,value,type){var options=name;if(typeof name==="string"){if(value===undefined){return this[0]&&jQuery[type||"attr"](this[0],name)}else{options={};options[name]=value}}return this.each(function(i){for(name in options){jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name))}})},css:function(key,value){if((key=="width"||key=="height")&&parseFloat(value)<0){value=undefined}return this.attr(key,value,"curCSS")},text:function(text){if(typeof text!=="object"&&text!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text))}var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8){ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this])}})});return ret},wrapAll:function(html){if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).clone();if(this[0].parentNode){wrap.insertBefore(this[0])}wrap.map(function(){var elem=this;while(elem.firstChild){elem=elem.firstChild}return elem}).append(this)}return this},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html)})},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html)})},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1){this.appendChild(elem)}})},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1){this.insertBefore(elem,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this)})},after:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling)})},end:function(){return this.prevObject||jQuery([])},push:[].push,sort:[].sort,splice:[].splice,find:function(selector){if(this.length===1){var ret=this.pushStack([],"find",selector);ret.length=0;jQuery.find(selector,this[0],ret);return ret}else{return this.pushStack(jQuery.unique(jQuery.map(this,function(elem){return jQuery.find(selector,elem)})),"find",selector)}},clone:function(events){var ret=this.map(function(){if(!jQuery.support.noCloneEvent&&!jQuery.isXMLDoc(this)){var html=this.outerHTML;if(!html){var div=this.ownerDocument.createElement("div");div.appendChild(this.cloneNode(true));html=div.innerHTML}return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(events===true){var orig=this.find("*").andSelf(),i=0;ret.find("*").andSelf().each(function(){if(this.nodeName!==orig[i].nodeName){return }var events=jQuery.data(orig[i],"events");for(var type in events){for(var handler in events[type]){jQuery.event.add(this,type,events[type][handler],events[type][handler].data)}}i++})}return ret},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i)})||jQuery.multiFilter(selector,jQuery.grep(this,function(elem){return elem.nodeType===1})),"filter",selector)},closest:function(selector){var pos=jQuery.expr.match.POS.test(selector)?jQuery(selector):null,closer=0;return this.map(function(){var cur=this;while(cur&&cur.ownerDocument){if(pos?pos.index(cur)>-1:jQuery(cur).is(selector)){jQuery.data(cur,"closest",closer);return cur}cur=cur.parentNode;closer++}})},not:function(selector){if(typeof selector==="string"){if(isSimple.test(selector)){return this.pushStack(jQuery.multiFilter(selector,this,true),"not",selector)}else{selector=jQuery.multiFilter(selector,this)}}var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector})},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector==="string"?jQuery(selector):jQuery.makeArray(selector))))},is:function(selector){return !!selector&&jQuery.multiFilter(selector,this).length>0},hasClass:function(selector){return !!selector&&this.is("."+selector)},val:function(value){if(value===undefined){var elem=this[0];if(elem){if(jQuery.nodeName(elem,"option")){return(elem.attributes.value||{}).specified?elem.value:elem.text}if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0){return null}for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery(option).val();if(one){return value}values.push(value)}}return values}return(elem.value||"").replace(/\r/g,"")}return undefined}if(typeof value==="number"){value+=""}return this.each(function(){if(this.nodeType!=1){return }if(jQuery.isArray(value)&&/radio|checkbox/.test(this.type)){this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0)}else{if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0)});if(!values.length){this.selectedIndex=-1}}else{this.value=value}}})},html:function(value){return value===undefined?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(value)},replaceWith:function(value){return this.after(value).remove()},eq:function(i){return this.slice(i,+i+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(args,table,callback){if(this[0]){var fragment=(this[0].ownerDocument||this[0]).createDocumentFragment(),scripts=jQuery.clean(args,(this[0].ownerDocument||this[0]),fragment),first=fragment.firstChild;if(first){for(var i=0,l=this.length;i<l;i++){callback.call(root(this[i],first),this.length>1||i>0?fragment.cloneNode(true):fragment)}}if(scripts){jQuery.each(scripts,evalScript)}}return this;function root(elem,cur){return table&&jQuery.nodeName(elem,"table")&&jQuery.nodeName(cur,"tr")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem}}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dataType:"script"})}else{jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"")}if(elem.parentNode){elem.parentNode.removeChild(elem)}}function now(){return +new Date}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={}}if(length==i){target=this;--i}for(;i<length;i++){if((options=arguments[i])!=null){for(var name in options){var src=target[name],copy=options[name];if(target===copy){continue}if(deep&&copy&&typeof copy==="object"&&!copy.nodeType){target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy)}else{if(copy!==undefined){target[name]=copy}}}}}return target};var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{},toString=Object.prototype.toString;jQuery.extend({noConflict:function(deep){window.$=_$;if(deep){window.jQuery=_jQuery}return jQuery},isFunction:function(obj){return toString.call(obj)==="[object Function]"},isArray:function(obj){return toString.call(obj)==="[object Array]"},isXMLDoc:function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&jQuery.isXMLDoc(elem.ownerDocument)},globalEval:function(data){if(data&&/\S/.test(data)){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.support.scriptEval){script.appendChild(document.createTextNode(data))}else{script.text=data}head.insertBefore(script,head.firstChild);head.removeChild(script)}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase()},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length===undefined){for(name in object){if(callback.apply(object[name],args)===false){break}}}else{for(;i<length;){if(callback.apply(object[i++],args)===false){break}}}}else{if(length===undefined){for(name in object){if(callback.call(object[name],name,object[name])===false){break}}}else{for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}}return object},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value)){value=value.call(elem,i)}return typeof value==="number"&&type=="curCSS"&&!exclude.test(name)?value+"px":value},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className)){elem.className+=(elem.className?" ":"")+className}})},remove:function(elem,classNames){if(elem.nodeType==1){elem.className=classNames!==undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return !jQuery.className.has(classNames,className)}).join(" "):""}},has:function(elem,className){return elem&&jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name]}callback.call(elem);for(var name in options){elem.style[name]=old[name]}},css:function(elem,name,force,extra){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;if(extra==="border"){return }jQuery.each(which,function(){if(!extra){val-=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0}if(extra==="margin"){val+=parseFloat(jQuery.curCSS(elem,"margin"+this,true))||0}else{val-=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0}})}if(elem.offsetWidth!==0){getWH()}else{jQuery.swap(elem,props,getWH)}return Math.max(0,Math.round(val))}return jQuery.curCSS(elem,name,force)},curCSS:function(elem,name,force){var ret,style=elem.style;if(name=="opacity"&&!jQuery.support.opacity){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret}if(name.match(/float/i)){name=styleFloat}if(!force&&style&&style[name]){ret=style[name]}else{if(defaultView.getComputedStyle){if(name.match(/float/i)){name="float"}name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle){ret=computedStyle.getPropertyValue(name)}if(name=="opacity"&&ret==""){ret="1"}}else{if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase()});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft}}}}return ret},clean:function(elems,context,fragment){context=context||document;if(typeof context.createElement==="undefined"){context=context.ownerDocument||context[0]&&context[0].ownerDocument||document}if(!fragment&&elems.length===1&&typeof elems[0]==="string"){var match=/^<(\w+)\s*\/?>$/.exec(elems[0]);if(match){return[context.createElement(match[1])]}}var ret=[],scripts=[],div=context.createElement("div");jQuery.each(elems,function(i,elem){if(typeof elem==="number"){elem+=""}if(!elem){return }if(typeof elem==="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">"});var tags=elem.replace(/^\s+/,"").substring(0,10).toLowerCase();var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!jQuery.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--){div=div.lastChild}if(!jQuery.support.tbody){var hasBody=/<tbody/i.test(elem),tbody=!tags.indexOf("<table")&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&!hasBody?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j])}}}if(!jQuery.support.leadingWhitespace&&/^\s/.test(elem)){div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild)}elem=jQuery.makeArray(div.childNodes)}if(elem.nodeType){ret.push(elem)}else{ret=jQuery.merge(ret,elem)}});if(fragment){for(var i=0;ret[i];i++){if(jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i])}else{if(ret[i].nodeType===1){ret.splice.apply(ret,[i+1,0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))))}fragment.appendChild(ret[i])}}return scripts}return ret},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8){return undefined}var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&elem.parentNode){elem.parentNode.selectedIndex}if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode){throw"type property can't be changed"}elem[name]=value}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name)){return elem.getAttributeNode(name).nodeValue}if(name=="tabIndex"){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?attributeNode.value:elem.nodeName.match(/(button|input|object|select|textarea)/i)?0:elem.nodeName.match(/^(a|area)$/i)&&elem.href?0:undefined}return elem[name]}if(!jQuery.support.style&&notxml&&name=="style"){return jQuery.attr(elem.style,"cssText",value)}if(set){elem.setAttribute(name,""+value)}var attr=!jQuery.support.hrefNormalized&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr}if(!jQuery.support.opacity&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+""=="NaN"?"":"alpha(opacity="+value*100+")")}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase()});if(set){elem[name]=value}return elem[name]},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"")},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||typeof array==="string"||jQuery.isFunction(array)||array.setInterval){ret[0]=array}else{while(i){ret[--i]=array[i]}}}return ret},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++){if(array[i]===elem){return i}}return -1},merge:function(first,second){var i=0,elem,pos=first.length;if(!jQuery.support.getAll){while((elem=second[i++])!=null){if(elem.nodeType!=8){first[pos++]=elem}}}else{while((elem=second[i++])!=null){first[pos++]=elem}}return first},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i])}}}catch(e){ret=array}return ret},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++){if(!inv!=!callback(elems[i],i)){ret.push(elems[i])}}return ret},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null){ret[ret.length]=value}}return ret.concat.apply([],ret)}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};jQuery.each({parent:function(elem){return elem.parentNode},parents:function(elem){return jQuery.dir(elem,"parentNode")},next:function(elem){return jQuery.nth(elem,2,"nextSibling")},prev:function(elem){return jQuery.nth(elem,2,"previousSibling")},nextAll:function(elem){return jQuery.dir(elem,"nextSibling")},prevAll:function(elem){return jQuery.dir(elem,"previousSibling")},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string"){ret=jQuery.multiFilter(selector,ret)}return this.pushStack(jQuery.unique(ret),name,selector)}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector);for(var i=0,l=insert.length;i<l;i++){var elems=(i>0?this.clone(true):this).get();jQuery.fn[original].apply(jQuery(insert[i]),elems);ret=ret.concat(elems)}return this.pushStack(ret,name,selector)}});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1){this.removeAttribute(name)}},addClass:function(classNames){jQuery.className.add(this,classNames)},removeClass:function(classNames){jQuery.className.remove(this,classNames)},toggleClass:function(classNames,state){if(typeof state!=="boolean"){state=!jQuery.className.has(this,classNames)}jQuery.className[state?"add":"remove"](this,classNames)},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).length){jQuery("*",this).add([this]).each(function(){jQuery.event.remove(this);jQuery.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){jQuery(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments)}});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0}var expando="jQuery"+now(),uuid=0,windowData={};jQuery.extend({cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id){id=elem[expando]=++uuid}if(name&&!jQuery.cache[id]){jQuery.cache[id]={}}if(data!==undefined){jQuery.cache[id][name]=data}return name?jQuery.cache[id][name]:id},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id]){break}if(!name){jQuery.removeData(elem)}}}else{try{delete elem[expando]}catch(e){if(elem.removeAttribute){elem.removeAttribute(expando)}}delete jQuery.cache[id]}},queue:function(elem,type,data){if(elem){type=(type||"fx")+"queue";var q=jQuery.data(elem,type);if(!q||jQuery.isArray(data)){q=jQuery.data(elem,type,jQuery.makeArray(data))}else{if(data){q.push(data)}}}return q},dequeue:function(elem,type){var queue=jQuery.queue(elem,type),fn=queue.shift();if(!type||type==="fx"){fn=queue[0]}if(fn!==undefined){fn.call(elem)}}});jQuery.fn.extend({data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length){data=jQuery.data(this[0],key)}return data===undefined&&parts[1]?this.data(parts[0]):data}else{return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value)})}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key)})},queue:function(type,data){if(typeof type!=="string"){data=type;type="fx"}if(data===undefined){return jQuery.queue(this[0],type)}return this.each(function(){var queue=jQuery.queue(this,type,data);if(type=="fx"&&queue.length==1){queue[0].call(this)}})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})}});
+(function(window,undefined){var document=window.document,navigator=window.navigator,location=window.location;var jQuery=(function(){var jQuery=function(selector,context){return new jQuery.fn.init(selector,context,rootjQuery)},_jQuery=window.jQuery,_$=window.$,rootjQuery,quickExpr=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,rnotwhite=/\S/,trimLeft=/^\s+/,trimRight=/\s+$/,rdigit=/\d/,rsingleTag=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,rvalidchars=/^[\],:{}\s]*$/,rvalidescape=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rvalidtokens=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rvalidbraces=/(?:^|:|,)(?:\s*\[)+/g,rwebkit=/(webkit)[ \/]([\w.]+)/,ropera=/(opera)(?:.*version)?[ \/]([\w.]+)/,rmsie=/(msie) ([\w.]+)/,rmozilla=/(mozilla)(?:.*? rv:([\w.]+))?/,userAgent=navigator.userAgent,browserMatch,readyList,DOMContentLoaded,toString=Object.prototype.toString,hasOwn=Object.prototype.hasOwnProperty,push=Array.prototype.push,slice=Array.prototype.slice,trim=String.prototype.trim,indexOf=Array.prototype.indexOf,class2type={};jQuery.fn=jQuery.prototype={constructor:jQuery,init:function(selector,context,rootjQuery){var match,elem,ret,doc;if(!selector){return this}if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this}if(selector==="body"&&!context&&document.body){this.context=document;this[0]=document.body;this.selector=selector;this.length=1;return this}if(typeof selector==="string"){if(selector.charAt(0)==="<"&&selector.charAt(selector.length-1)===">"&&selector.length>=3){match=[null,selector,null]}else{match=quickExpr.exec(selector)}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;doc=(context?context.ownerDocument||context:document);ret=rsingleTag.exec(selector);if(ret){if(jQuery.isPlainObject(context)){selector=[document.createElement(ret[1])];jQuery.fn.attr.call(selector,context,true)}else{selector=[doc.createElement(ret[1])]}}else{ret=jQuery.buildFragment([match[1]],[doc]);selector=(ret.cacheable?jQuery.clone(ret.fragment):ret.fragment).childNodes}return jQuery.merge(this,selector)}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){if(elem.id!==match[2]){return rootjQuery.find(selector)}this.length=1;this[0]=elem}this.context=document;this.selector=selector;return this}}else{if(!context||context.jquery){return(context||rootjQuery).find(selector)}else{return this.constructor(context).find(selector)}}}else{if(jQuery.isFunction(selector)){return rootjQuery.ready(selector)}}if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context}return jQuery.makeArray(selector,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return slice.call(this,0)},get:function(num){return num==null?this.toArray():(num<0?this[this.length+num]:this[num])},pushStack:function(elems,name,selector){var ret=this.constructor();if(jQuery.isArray(elems)){push.apply(ret,elems)}else{jQuery.merge(ret,elems)}ret.prevObject=this;ret.context=this.context;if(name==="find"){ret.selector=this.selector+(this.selector?" ":"")+selector}else{if(name){ret.selector=this.selector+"."+name+"("+selector+")"}}return ret},each:function(callback,args){return jQuery.each(this,callback,args)},ready:function(fn){jQuery.bindReady();readyList.done(fn);return this},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(slice.apply(this,arguments),"slice",slice.call(arguments).join(","))},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},end:function(){return this.prevObject||this.constructor(null)},push:push,sort:[].sort,splice:[].splice};jQuery.fn.init.prototype=jQuery.fn;jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={}}if(length===i){target=this;--i}for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue}if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[]}else{clone=src&&jQuery.isPlainObject(src)?src:{}}target[name]=jQuery.extend(deep,clone,copy)}else{if(copy!==undefined){target[name]=copy}}}}}return target};jQuery.extend({noConflict:function(deep){if(window.$===jQuery){window.$=_$}if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery}return jQuery},isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++}else{jQuery.ready(true)}},ready:function(wait){if((wait===true&&!--jQuery.readyWait)||(wait!==true&&!jQuery.isReady)){if(!document.body){return setTimeout(jQuery.ready,1)}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return }readyList.resolveWith(document,[jQuery]);if(jQuery.fn.trigger){jQuery(document).trigger("ready").unbind("ready")}}},bindReady:function(){if(readyList){return }readyList=jQuery._Deferred();if(document.readyState==="complete"){return setTimeout(jQuery.ready,1)}if(document.addEventListener){document.addEventListener("DOMContentLoaded",DOMContentLoaded,false);window.addEventListener("load",jQuery.ready,false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",DOMContentLoaded);window.attachEvent("onload",jQuery.ready);var toplevel=false;try{toplevel=window.frameElement==null}catch(e){}if(document.documentElement.doScroll&&toplevel){doScrollCheck()}}}},isFunction:function(obj){return jQuery.type(obj)==="function"},isArray:Array.isArray||function(obj){return jQuery.type(obj)==="array"},isWindow:function(obj){return obj&&typeof obj==="object"&&"setInterval" in obj},isNaN:function(obj){return obj==null||!rdigit.test(obj)||isNaN(obj)},type:function(obj){return obj==null?String(obj):class2type[toString.call(obj)]||"object"},isPlainObject:function(obj){if(!obj||jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false}if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false}var key;for(key in obj){}return key===undefined||hasOwn.call(obj,key)},isEmptyObject:function(obj){for(var name in obj){return false}return true},error:function(msg){throw msg},parseJSON:function(data){if(typeof data!=="string"||!data){return null}data=jQuery.trim(data);if(window.JSON&&window.JSON.parse){return window.JSON.parse(data)}if(rvalidchars.test(data.replace(rvalidescape,"@").replace(rvalidtokens,"]").replace(rvalidbraces,""))){return(new Function("return "+data))()}jQuery.error("Invalid JSON: "+data)},parseXML:function(data,xml,tmp){if(window.DOMParser){tmp=new DOMParser();xml=tmp.parseFromString(data,"text/xml")}else{xml=new ActiveXObject("Microsoft.XMLDOM");xml.async="false";xml.loadXML(data)}tmp=xml.documentElement;if(!tmp||!tmp.nodeName||tmp.nodeName==="parsererror"){jQuery.error("Invalid XML: "+data)}return xml},noop:function(){},globalEval:function(data){if(data&&rnotwhite.test(data)){(window.execScript||function(data){window.eval.call(window,data)})(data)}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()===name.toUpperCase()},each:function(object,callback,args){var name,i=0,length=object.length,isObj=length===undefined||jQuery.isFunction(object);if(args){if(isObj){for(name in object){if(callback.apply(object[name],args)===false){break}}}else{for(;i<length;){if(callback.apply(object[i++],args)===false){break}}}}else{if(isObj){for(name in object){if(callback.call(object[name],name,object[name])===false){break}}}else{for(;i<length;){if(callback.call(object[i],i,object[i++])===false){break}}}}return object},trim:trim?function(text){return text==null?"":trim.call(text)}:function(text){return text==null?"":text.toString().replace(trimLeft,"").replace(trimRight,"")},makeArray:function(array,results){var ret=results||[];if(array!=null){var type=jQuery.type(array);if(array.length==null||type==="string"||type==="function"||type==="regexp"||jQuery.isWindow(array)){push.call(ret,array)}else{jQuery.merge(ret,array)}}return ret},inArray:function(elem,array){if(indexOf){return indexOf.call(array,elem)}for(var i=0,length=array.length;i<length;i++){if(array[i]===elem){return i}}return -1},merge:function(first,second){var i=first.length,j=0;if(typeof second.length==="number"){for(var l=second.length;j<l;j++){first[i++]=second[j]}}else{while(second[j]!==undefined){first[i++]=second[j++]}}first.length=i;return first},grep:function(elems,callback,inv){var ret=[],retVal;inv=!!inv;for(var i=0,length=elems.length;i<length;i++){retVal=!!callback(elems[i],i);if(inv!==retVal){ret.push(elems[i])}}return ret},map:function(elems,callback,arg){var value,key,ret=[],i=0,length=elems.length,isArray=elems instanceof jQuery||length!==undefined&&typeof length==="number"&&((length>0&&elems[0]&&elems[length-1])||length===0||jQuery.isArray(elems));if(isArray){for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret[ret.length]=value}}}else{for(key in elems){value=callback(elems[key],key,arg);if(value!=null){ret[ret.length]=value}}}return ret.concat.apply([],ret)},guid:1,proxy:function(fn,context){if(typeof context==="string"){var tmp=fn[context];context=fn;fn=tmp}if(!jQuery.isFunction(fn)){return undefined}var args=slice.call(arguments,2),proxy=function(){return fn.apply(context,args.concat(slice.call(arguments)))};proxy.guid=fn.guid=fn.guid||proxy.guid||jQuery.guid++;return proxy},access:function(elems,key,value,exec,fn,pass){var length=elems.length;if(typeof key==="object"){for(var k in key){jQuery.access(elems,k,key[k],exec,fn,value)}return elems}if(value!==undefined){exec=!pass&&exec&&jQuery.isFunction(value);for(var i=0;i<length;i++){fn(elems[i],key,exec?value.call(elems[i],i,fn(elems[i],key)):value,pass)}return elems}return length?fn(elems[0],key):undefined},now:function(){return(new Date()).getTime()},uaMatch:function(ua){ua=ua.toLowerCase();var match=rwebkit.exec(ua)||ropera.exec(ua)||rmsie.exec(ua)||ua.indexOf("compatible")<0&&rmozilla.exec(ua)||[];return{browser:match[1]||"",version:match[2]||"0"}},sub:function(){function jQuerySub(selector,context){return new jQuerySub.fn.init(selector,context)}jQuery.extend(true,jQuerySub,this);jQuerySub.superclass=this;jQuerySub.fn=jQuerySub.prototype=this();jQuerySub.fn.constructor=jQuerySub;jQuerySub.sub=this.sub;jQuerySub.fn.init=function init(selector,context){if(context&&context instanceof jQuery&&!(context instanceof jQuerySub)){context=jQuerySub(context)}return jQuery.fn.init.call(this,selector,context,rootjQuerySub)};jQuerySub.fn.init.prototype=jQuerySub.fn;var rootjQuerySub=jQuerySub(document);return jQuerySub},browser:{}});jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});browserMatch=jQuery.uaMatch(userAgent);if(browserMatch.browser){jQuery.browser[browserMatch.browser]=true;jQuery.browser.version=browserMatch.version}if(jQuery.browser.webkit){jQuery.browser.safari=true}if(rnotwhite.test("\xA0")){trimLeft=/^[\s\xA0]+/;trimRight=/[\s\xA0]+$/}rootjQuery=jQuery(document);if(document.addEventListener){DOMContentLoaded=function(){document.removeEventListener("DOMContentLoaded",DOMContentLoaded,false);jQuery.ready()}}else{if(document.attachEvent){DOMContentLoaded=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",DOMContentLoaded);jQuery.ready()}}}}function doScrollCheck(){if(jQuery.isReady){return }try{document.documentElement.doScroll("left")}catch(e){setTimeout(doScrollCheck,1);return }jQuery.ready()}return jQuery})();var promiseMethods="done fail isResolved isRejected promise then always pipe".split(" "),sliceDeferred=[].slice;jQuery.extend({_Deferred:function(){var callbacks=[],fired,firing,cancelled,deferred={done:function(){if(!cancelled){var args=arguments,i,length,elem,type,_fired;if(fired){_fired=fired;fired=0}for(i=0,length=args.length;i<length;i++){elem=args[i];type=jQuery.type(elem);if(type==="array"){deferred.done.apply(deferred,elem)}else{if(type==="function"){callbacks.push(elem)}}}if(_fired){deferred.resolveWith(_fired[0],_fired[1])}}return this},resolveWith:function(context,args){if(!cancelled&&!fired&&!firing){args=args||[];firing=1;try{while(callbacks[0]){callbacks.shift().apply(context,args)}}finally{fired=[context,args];firing=0}}return this},resolve:function(){deferred.resolveWith(this,arguments);return this},isResolved:function(){return !!(firing||fired)},cancel:function(){cancelled=1;callbacks=[];return this}};return deferred},Deferred:function(func){var deferred=jQuery._Deferred(),failDeferred=jQuery._Deferred(),promise;jQuery.extend(deferred,{then:function(doneCallbacks,failCallbacks){deferred.done(doneCallbacks).fail(failCallbacks);return this},always:function(){return deferred.done.apply(deferred,arguments).fail.apply(this,arguments)},fail:failDeferred.done,rejectWith:failDeferred.resolveWith,reject:failDeferred.resolve,isRejected:failDeferred.isResolved,pipe:function(fnDone,fnFail){return jQuery.Deferred(function(newDefer){jQuery.each({done:[fnDone,"resolve"],fail:[fnFail,"reject"]},function(handler,data){var fn=data[0],action=data[1],returned;if(jQuery.isFunction(fn)){deferred[handler](function(){returned=fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().then(newDefer.resolve,newDefer.reject)}else{newDefer[action](returned)}})}else{deferred[handler](newDefer[action])}})}).promise()},promise:function(obj){if(obj==null){if(promise){return promise}promise=obj={}}var i=promiseMethods.length;while(i--){obj[promiseMethods[i]]=deferred[promiseMethods[i]]}return obj}});deferred.done(failDeferred.cancel).fail(deferred.cancel);delete deferred.cancel;if(func){func.call(deferred,deferred)}return deferred},when:function(firstParam){var args=arguments,i=0,length=args.length,count=length,deferred=length<=1&&firstParam&&jQuery.isFunction(firstParam.promise)?firstParam:jQuery.Deferred();function resolveFunc(i){return function(value){args[i]=arguments.length>1?sliceDeferred.call(arguments,0):value;if(!(--count)){deferred.resolveWith(deferred,sliceDeferred.call(args,0))}}}if(length>1){for(;i<length;i++){if(args[i]&&jQuery.isFunction(args[i].promise)){args[i].promise().then(resolveFunc(i),deferred.reject)}else{--count}}if(!count){deferred.resolveWith(deferred,args)}}else{if(deferred!==firstParam){deferred.resolveWith(deferred,length?[firstParam]:[])}}return deferred.promise()}});jQuery.support=(function(){var div=document.createElement("div"),documentElement=document.documentElement,all,a,select,opt,input,marginDiv,support,fragment,body,bodyStyle,tds,events,eventName,i,isSupported;div.setAttribute("className","t");div.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";all=div.getElementsByTagName("*");a=div.getElementsByTagName("a")[0];if(!all||!all.length||!a){return{}}select=document.createElement("select");opt=select.appendChild(document.createElement("option"));input=div.getElementsByTagName("input")[0];support={leadingWhitespace:(div.firstChild.nodeType===3),tbody:!div.getElementsByTagName("tbody").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/top/.test(a.getAttribute("style")),hrefNormalized:(a.getAttribute("href")==="/a"),opacity:/^0.55$/.test(a.style.opacity),cssFloat:!!a.style.cssFloat,checkOn:(input.value==="on"),optSelected:opt.selected,getSetAttribute:div.className!=="t",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};input.checked=true;support.noCloneChecked=input.cloneNode(true).checked;select.disabled=true;support.optDisabled=!opt.disabled;try{delete div.test}catch(e){support.deleteExpando=false}if(!div.addEventListener&&div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function click(){support.noCloneEvent=false;div.detachEvent("onclick",click)});div.cloneNode(true).fireEvent("onclick")}input=document.createElement("input");input.value="t";input.setAttribute("type","radio");support.radioValue=input.value==="t";input.setAttribute("checked","checked");div.appendChild(input);fragment=document.createDocumentFragment();fragment.appendChild(div.firstChild);support.checkClone=fragment.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="";div.style.width=div.style.paddingLeft="1px";body=document.createElement("body");bodyStyle={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(i in bodyStyle){body.style[i]=bodyStyle[i]}body.appendChild(div);documentElement.insertBefore(body,documentElement.firstChild);support.appendChecked=input.checked;support.boxModel=div.offsetWidth===2;if("zoom" in div.style){div.style.display="inline";div.style.zoom=1;support.inlineBlockNeedsLayout=(div.offsetWidth===2);div.style.display="";div.innerHTML="<div style='width:4px;'></div>";support.shrinkWrapBlocks=(div.offsetWidth!==2)}div.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";tds=div.getElementsByTagName("td");isSupported=(tds[0].offsetHeight===0);tds[0].style.display="";tds[1].style.display="none";support.reliableHiddenOffsets=isSupported&&(tds[0].offsetHeight===0);div.innerHTML="";if(document.defaultView&&document.defaultView.getComputedStyle){marginDiv=document.createElement("div");marginDiv.style.width="0";marginDiv.style.marginRight="0";div.appendChild(marginDiv);support.reliableMarginRight=(parseInt((document.defaultView.getComputedStyle(marginDiv,null)||{marginRight:0}).marginRight,10)||0)===0}body.innerHTML="";documentElement.removeChild(body);if(div.attachEvent){for(i in {submit:1,change:1,focusin:1}){eventName="on"+i;isSupported=(eventName in div);if(!isSupported){div.setAttribute(eventName,"return;");isSupported=(typeof div[eventName]==="function")}support[i+"Bubbles"]=isSupported}}return support})();jQuery.boxModel=jQuery.support.boxModel;var rbrace=/^(?:\{.*\}|\[.*\])$/,rmultiDash=/([a-z])([A-Z])/g;jQuery.extend({cache:{},uuid:0,expando:"jQuery"+(jQuery.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(elem){elem=elem.nodeType?jQuery.cache[elem[jQuery.expando]]:elem[jQuery.expando];return !!elem&&!isEmptyDataObject(elem)},data:function(elem,name,data,pvt){if(!jQuery.acceptData(elem)){return }var internalKey=jQuery.expando,getByName=typeof name==="string",thisCache,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:elem[jQuery.expando]&&jQuery.expando;if((!id||(pvt&&id&&!cache[id][internalKey]))&&getByName&&data===undefined){return }if(!id){if(isNode){elem[jQuery.expando]=id=++jQuery.uuid}else{id=jQuery.expando}}if(!cache[id]){cache[id]={};if(!isNode){cache[id].toJSON=jQuery.noop}}if(typeof name==="object"||typeof name==="function"){if(pvt){cache[id][internalKey]=jQuery.extend(cache[id][internalKey],name)}else{cache[id]=jQuery.extend(cache[id],name)}}thisCache=cache[id];if(pvt){if(!thisCache[internalKey]){thisCache[internalKey]={}}thisCache=thisCache[internalKey]}if(data!==undefined){thisCache[jQuery.camelCase(name)]=data}if(name==="events"&&!thisCache[name]){return thisCache[internalKey]&&thisCache[internalKey].events}return getByName?thisCache[jQuery.camelCase(name)]:thisCache},removeData:function(elem,name,pvt){if(!jQuery.acceptData(elem)){return }var internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(!cache[id]){return }if(name){var thisCache=pvt?cache[id][internalKey]:cache[id];if(thisCache){delete thisCache[name];if(!isEmptyDataObject(thisCache)){return }}}if(pvt){delete cache[id][internalKey];if(!isEmptyDataObject(cache[id])){return }}var internalCache=cache[id][internalKey];if(jQuery.support.deleteExpando||cache!=window){delete cache[id]}else{cache[id]=null}if(internalCache){cache[id]={};if(!isNode){cache[id].toJSON=jQuery.noop}cache[id][internalKey]=internalCache}else{if(isNode){if(jQuery.support.deleteExpando){delete elem[jQuery.expando]}else{if(elem.removeAttribute){elem.removeAttribute(jQuery.expando)}else{elem[jQuery.expando]=null}}}}},_data:function(elem,name,data){return jQuery.data(elem,name,data,true)},acceptData:function(elem){if(elem.nodeName){var match=jQuery.noData[elem.nodeName.toLowerCase()];if(match){return !(match===true||elem.getAttribute("classid")!==match)}}return true}});jQuery.fn.extend({data:function(key,value){var data=null;if(typeof key==="undefined"){if(this.length){data=jQuery.data(this[0]);if(this[0].nodeType===1){var attr=this[0].attributes,name;for(var i=0,l=attr.length;i<l;i++){name=attr[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.substring(5));dataAttr(this[0],name,data[name])}}}}return data}else{if(typeof key==="object"){return this.each(function(){jQuery.data(this,key)})}}var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length){data=jQuery.data(this[0],key);data=dataAttr(this[0],key,data)}return data===undefined&&parts[1]?this.data(parts[0]):data}else{return this.each(function(){var $this=jQuery(this),args=[parts[0],value];$this.triggerHandler("setData"+parts[1]+"!",args);jQuery.data(this,key,value);$this.triggerHandler("changeData"+parts[1]+"!",args)})}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key)})}});function dataAttr(elem,key,data){if(data===undefined&&elem.nodeType===1){var name="data-"+key.replace(rmultiDash,"$1-$2").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:!jQuery.isNaN(data)?parseFloat(data):rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}jQuery.data(elem,key,data)}else{data=undefined}}return data}function isEmptyDataObject(obj){for(var name in obj){if(name!=="toJSON"){return false}}return true}function handleQueueMarkDefer(elem,type,src){var deferDataKey=type+"defer",queueDataKey=type+"queue",markDataKey=type+"mark",defer=jQuery.data(elem,deferDataKey,undefined,true);if(defer&&(src==="queue"||!jQuery.data(elem,queueDataKey,undefined,true))&&(src==="mark"||!jQuery.data(elem,markDataKey,undefined,true))){setTimeout(function(){if(!jQuery.data(elem,queueDataKey,undefined,true)&&!jQuery.data(elem,markDataKey,undefined,true)){jQuery.removeData(elem,deferDataKey,true);defer.resolve()}},0)}}jQuery.extend({_mark:function(elem,type){if(elem){type=(type||"fx")+"mark";jQuery.data(elem,type,(jQuery.data(elem,type,undefined,true)||0)+1,true)}},_unmark:function(force,elem,type){if(force!==true){type=elem;elem=force;force=false}if(elem){type=type||"fx";var key=type+"mark",count=force?0:((jQuery.data(elem,key,undefined,true)||1)-1);if(count){jQuery.data(elem,key,count,true)}else{jQuery.removeData(elem,key,true);handleQueueMarkDefer(elem,type,"mark")}}},queue:function(elem,type,data){if(elem){type=(type||"fx")+"queue";var q=jQuery.data(elem,type,undefined,true);if(data){if(!q||jQuery.isArray(data)){q=jQuery.data(elem,type,jQuery.makeArray(data),true)}else{q.push(data)}}return q||[]}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),fn=queue.shift(),defer;if(fn==="inprogress"){fn=queue.shift()}if(fn){if(type==="fx"){queue.unshift("inprogress")}fn.call(elem,function(){jQuery.dequeue(elem,type)})}if(!queue.length){jQuery.removeData(elem,type+"queue",true);handleQueueMarkDefer(elem,type,"queue")}}});jQuery.fn.extend({queue:function(type,data){if(typeof type!=="string"){data=type;type="fx"}if(data===undefined){return jQuery.queue(this[0],type)}return this.each(function(){var queue=jQuery.queue(this,type,data);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type)}})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},delay:function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(){var elem=this;setTimeout(function(){jQuery.dequeue(elem,type)},time)})},clearQueue:function(type){return this.queue(type||"fx",[])},promise:function(type,object){if(typeof type!=="string"){object=type;type=undefined}type=type||"fx";var defer=jQuery.Deferred(),elements=this,i=elements.length,count=1,deferDataKey=type+"defer",queueDataKey=type+"queue",markDataKey=type+"mark",tmp;function resolve(){if(!(--count)){defer.resolveWith(elements,[elements])}}while(i--){if((tmp=jQuery.data(elements[i],deferDataKey,undefined,true)||(jQuery.data(elements[i],queueDataKey,undefined,true)||jQuery.data(elements[i],markDataKey,undefined,true))&&jQuery.data(elements[i],deferDataKey,jQuery._Deferred(),true))){count++;tmp.done(resolve)}}resolve();return defer.promise()}});var rclass=/[\n\t\r]/g,rspace=/\s+/,rreturn=/\r/g,rtype=/^(?:button|input)$/i,rfocusable=/^(?:button|input|object|select|textarea)$/i,rclickable=/^a(?:rea)?$/i,rboolean=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,rinvalidChar=/\:/,formHook,boolHook;jQuery.fn.extend({attr:function(name,value){return jQuery.access(this,name,value,true,jQuery.attr)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})},prop:function(name,value){return jQuery.access(this,name,value,true,jQuery.prop)},removeProp:function(name){name=jQuery.propFix[name]||name;return this.each(function(){try{this[name]=undefined;delete this[name]}catch(e){}})},addClass:function(value){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.addClass(value.call(this,i,self.attr("class")||""))})}if(value&&typeof value==="string"){var classNames=(value||"").split(rspace);for(var i=0,l=this.length;i<l;i++){var elem=this[i];if(elem.nodeType===1){if(!elem.className){elem.className=value}else{var className=" "+elem.className+" ",setClass=elem.className;for(var c=0,cl=classNames.length;c<cl;c++){if(className.indexOf(" "+classNames[c]+" ")<0){setClass+=" "+classNames[c]}}elem.className=jQuery.trim(setClass)}}}}return this},removeClass:function(value){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.removeClass(value.call(this,i,self.attr("class")))})}if((value&&typeof value==="string")||value===undefined){var classNames=(value||"").split(rspace);for(var i=0,l=this.length;i<l;i++){var elem=this[i];if(elem.nodeType===1&&elem.className){if(value){var className=(" "+elem.className+" ").replace(rclass," ");for(var c=0,cl=classNames.length;c<cl;c++){className=className.replace(" "+classNames[c]+" "," ")}elem.className=jQuery.trim(className)}else{elem.className=""}}}}return this},toggleClass:function(value,stateVal){var type=typeof value,isBool=typeof stateVal==="boolean";if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.toggleClass(value.call(this,i,self.attr("class"),stateVal),stateVal)})}return this.each(function(){if(type==="string"){var className,i=0,self=jQuery(this),state=stateVal,classNames=value.split(rspace);while((className=classNames[i++])){state=isBool?state:!self.hasClass(className);self[state?"addClass":"removeClass"](className)}}else{if(type==="undefined"||type==="boolean"){if(this.className){jQuery._data(this,"__className__",this.className)}this.className=this.className||value===false?"":jQuery._data(this,"__className__")||""}}})},hasClass:function(selector){var className=" "+selector+" ";for(var i=0,l=this.length;i<l;i++){if((" "+this[i].className+" ").replace(rclass," ").indexOf(className)>-1){return true}}return false},val:function(value){var hooks,ret,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.nodeName.toLowerCase()]||jQuery.valHooks[elem.type];if(hooks&&"get" in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret}return(elem.value||"").replace(rreturn,"")}return undefined}var isFunction=jQuery.isFunction(value);return this.each(function(i){var self=jQuery(this),val;if(this.nodeType!==1){return }if(isFunction){val=value.call(this,i,self.val())}else{val=value}if(val==null){val=""}else{if(typeof val==="number"){val+=""}else{if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+""})}}}hooks=jQuery.valHooks[this.nodeName.toLowerCase()]||jQuery.valHooks[this.type];if(!hooks||!("set" in hooks)||hooks.set(this,val,"value")===undefined){this.value=val}})}});jQuery.extend({valHooks:{option:{get:function(elem){var val=elem.attributes.value;return !val||val.specified?elem.value:elem.text}},select:{get:function(elem){var value,index=elem.selectedIndex,values=[],options=elem.options,one=elem.type==="select-one";if(index<0){return null}for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected&&(jQuery.support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value}values.push(value)}}if(one&&!values.length&&options.length){return jQuery(options[index]).val()}return values},set:function(elem,value){var values=jQuery.makeArray(value);jQuery(elem).find("option").each(function(){this.selected=jQuery.inArray(jQuery(this).val(),values)>=0});if(!values.length){elem.selectedIndex=-1}return values}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attrFix:{tabindex:"tabIndex"},attr:function(elem,name,value,pass){var nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return undefined}if(pass&&name in jQuery.attrFn){return jQuery(elem)[name](value)}if(!("getAttribute" in elem)){return jQuery.prop(elem,name,value)}var ret,hooks,notxml=nType!==1||!jQuery.isXMLDoc(elem);name=notxml&&jQuery.attrFix[name]||name;hooks=jQuery.attrHooks[name];if(!hooks){if(rboolean.test(name)&&(typeof value==="boolean"||value===undefined||value.toLowerCase()===name.toLowerCase())){hooks=boolHook}else{if(formHook&&(jQuery.nodeName(elem,"form")||rinvalidChar.test(name))){hooks=formHook}}}if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);return undefined}else{if(hooks&&"set" in hooks&&notxml&&(ret=hooks.set(elem,value,name))!==undefined){return ret}else{elem.setAttribute(name,""+value);return value}}}else{if(hooks&&"get" in hooks&&notxml){return hooks.get(elem,name)}else{ret=elem.getAttribute(name);return ret===null?undefined:ret}}},removeAttr:function(elem,name){var propName;if(elem.nodeType===1){name=jQuery.attrFix[name]||name;if(jQuery.support.getSetAttribute){elem.removeAttribute(name)}else{jQuery.attr(elem,name,"");elem.removeAttributeNode(elem.getAttributeNode(name))}if(rboolean.test(name)&&(propName=jQuery.propFix[name]||name) in elem){elem[propName]=false}}},attrHooks:{type:{set:function(elem,value){if(rtype.test(elem.nodeName)&&elem.parentNode){jQuery.error("type property can't be changed")}else{if(!jQuery.support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val}return value}}}},tabIndex:{get:function(elem){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?parseInt(attributeNode.value,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:undefined}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(elem,name,value){var nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return undefined}var ret,hooks,notxml=nType!==1||!jQuery.isXMLDoc(elem);name=notxml&&jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];if(value!==undefined){if(hooks&&"set" in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret}else{return(elem[name]=value)}}else{if(hooks&&"get" in hooks&&(ret=hooks.get(elem,name))!==undefined){return ret}else{return elem[name]}}},propHooks:{}});boolHook={get:function(elem,name){return elem[jQuery.propFix[name]||name]?name.toLowerCase():undefined},set:function(elem,value,name){var propName;if(value===false){jQuery.removeAttr(elem,name)}else{propName=jQuery.propFix[name]||name;if(propName in elem){elem[propName]=value}elem.setAttribute(name,name.toLowerCase())}return name}};jQuery.attrHooks.value={get:function(elem,name){if(formHook&&jQuery.nodeName(elem,"button")){return formHook.get(elem,name)}return elem.value},set:function(elem,value,name){if(formHook&&jQuery.nodeName(elem,"button")){return formHook.set(elem,value,name)}elem.value=value}};if(!jQuery.support.getSetAttribute){jQuery.attrFix=jQuery.propFix;formHook=jQuery.attrHooks.name=jQuery.valHooks.button={get:function(elem,name){var ret;ret=elem.getAttributeNode(name);return ret&&ret.nodeValue!==""?ret.nodeValue:undefined},set:function(elem,value,name){var ret=elem.getAttributeNode(name);if(ret){ret.nodeValue=value;return value}}};jQuery.each(["width","height"],function(i,name){jQuery.attrHooks[name]=jQuery.extend(jQuery.attrHooks[name],{set:function(elem,value){if(value===""){elem.setAttribute(name,"auto");return value}}})})}if(!jQuery.support.hrefNormalized){jQuery.each(["href","src","width","height"],function(i,name){jQuery.attrHooks[name]=jQuery.extend(jQuery.attrHooks[name],{get:function(elem){var ret=elem.getAttribute(name,2);return ret===null?undefined:ret}})})}if(!jQuery.support.style){jQuery.attrHooks.style={get:function(elem){return elem.style.cssText.toLowerCase()||undefined},set:function(elem,value){return(elem.style.cssText=""+value)}}}if(!jQuery.support.optSelected){jQuery.propHooks.selected=jQuery.extend(jQuery.propHooks.selected,{get:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex}}}})}if(!jQuery.support.checkOn){jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={get:function(elem){return elem.getAttribute("value")===null?"on":elem.value}}})}jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]=jQuery.extend(jQuery.valHooks[this],{set:function(elem,value){if(jQuery.isArray(value)){return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0)}}})});var hasOwn=Object.prototype.hasOwnProperty,rnamespaces=/\.(.*)$/,rformElems=/^(?:textarea|input|select)$/i,rperiod=/\./g,rspaces=/ /g,rescape=/[^\w\s.|`]/g,fcleanup=function(nm){return nm.replace(rescape,"\\$&")};jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType===3||elem.nodeType===8){return }if(handler===false){handler=returnFalse}else{if(!handler){return }}var handleObjIn,handleObj;if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler}if(!handler.guid){handler.guid=jQuery.guid++}var elemData=jQuery._data(elem);if(!elemData){return }var events=elemData.events,eventHandle=elemData.handle;if(!events){elemData.events=events={}}if(!eventHandle){elemData.handle=eventHandle=function(e){return typeof jQuery!=="undefined"&&(!e||jQuery.event.triggered!==e.type)?jQuery.event.handle.apply(eventHandle.elem,arguments):undefined}}eventHandle.elem=elem;types=types.split(" ");var type,i=0,namespaces;while((type=types[i++])){handleObj=handleObjIn?jQuery.extend({},handleObjIn):{handler:handler,data:data};if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();handleObj.namespace=namespaces.slice(0).sort().join(".")}else{namespaces=[];handleObj.namespace=""}handleObj.type=type;if(!handleObj.guid){handleObj.guid=handler.guid}var handlers=events[type],special=jQuery.event.special[type]||{};if(!handlers){handlers=events[type]=[];if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false)}else{if(elem.attachEvent){elem.attachEvent("on"+type,eventHandle)}}}}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid}}handlers.push(handleObj);jQuery.event.global[type]=true}elem=null},global:{},remove:function(elem,types,handler,pos){if(elem.nodeType===3||elem.nodeType===8){return }if(handler===false){handler=returnFalse}var ret,type,fn,j,i=0,all,namespaces,namespace,special,eventType,handleObj,origType,elemData=jQuery.hasData(elem)&&jQuery._data(elem),events=elemData&&elemData.events;if(!elemData||!events){return }if(types&&types.type){handler=types.handler;types=types.type}if(!types||typeof types==="string"&&types.charAt(0)==="."){types=types||"";for(type in events){jQuery.event.remove(elem,type+types)}return }types=types.split(" ");while((type=types[i++])){origType=type;handleObj=null;all=type.indexOf(".")<0;namespaces=[];if(!all){namespaces=type.split(".");type=namespaces.shift();namespace=new RegExp("(^|\\.)"+jQuery.map(namespaces.slice(0).sort(),fcleanup).join("\\.(?:.*\\.)?")+"(\\.|$)")}eventType=events[type];if(!eventType){continue}if(!handler){for(j=0;j<eventType.length;j++){handleObj=eventType[j];if(all||namespace.test(handleObj.namespace)){jQuery.event.remove(elem,origType,handleObj.handler,j);eventType.splice(j--,1)}}continue}special=jQuery.event.special[type]||{};for(j=pos||0;j<eventType.length;j++){handleObj=eventType[j];if(handler.guid===handleObj.guid){if(all||namespace.test(handleObj.namespace)){if(pos==null){eventType.splice(j--,1)}if(special.remove){special.remove.call(elem,handleObj)}}if(pos!=null){break}}}if(eventType.length===0||pos!=null&&eventType.length===1){if(!special.teardown||special.teardown.call(elem,namespaces)===false){jQuery.removeEvent(elem,type,elemData.handle)}ret=null;delete events[type]}}if(jQuery.isEmptyObject(events)){var handle=elemData.handle;if(handle){handle.elem=null}delete elemData.events;delete elemData.handle;if(jQuery.isEmptyObject(elemData)){jQuery.removeData(elem,undefined,true)}}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(event,data,elem,onlyHandlers){var type=event.type||event,namespaces=[],exclusive;if(type.indexOf("!")>=0){type=type.slice(0,-1);exclusive=true}if(type.indexOf(".")>=0){namespaces=type.split(".");type=namespaces.shift();namespaces.sort()}if((!elem||jQuery.event.customEvent[type])&&!jQuery.event.global[type]){return }event=typeof event==="object"?event[jQuery.expando]?event:new jQuery.Event(type,event):new jQuery.Event(type);event.type=type;event.exclusive=exclusive;event.namespace=namespaces.join(".");event.namespace_re=new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.)?")+"(\\.|$)");if(onlyHandlers||!elem){event.preventDefault();event.stopPropagation()}if(!elem){jQuery.each(jQuery.cache,function(){var internalKey=jQuery.expando,internalCache=this[internalKey];if(internalCache&&internalCache.events&&internalCache.events[type]){jQuery.event.trigger(event,data,internalCache.handle.elem)}});return }if(elem.nodeType===3||elem.nodeType===8){return }event.result=undefined;event.target=elem;data=data?jQuery.makeArray(data):[];data.unshift(event);var cur=elem,ontype=type.indexOf(":")<0?"on"+type:"";do{var handle=jQuery._data(cur,"handle");event.currentTarget=cur;if(handle){handle.apply(cur,data)}if(ontype&&jQuery.acceptData(cur)&&cur[ontype]&&cur[ontype].apply(cur,data)===false){event.result=false;event.preventDefault()}cur=cur.parentNode||cur.ownerDocument||cur===event.target.ownerDocument&&window}while(cur&&!event.isPropagationStopped());if(!event.isDefaultPrevented()){var old,special=jQuery.event.special[type]||{};if((!special._default||special._default.call(elem.ownerDocument,event)===false)&&!(type==="click"&&jQuery.nodeName(elem,"a"))&&jQuery.acceptData(elem)){try{if(ontype&&elem[type]){old=elem[ontype];if(old){elem[ontype]=null}jQuery.event.triggered=type;elem[type]()}}catch(ieError){}if(old){elem[ontype]=old}jQuery.event.triggered=undefined}}return event.result},handle:function(event){event=jQuery.event.fix(event||window.event);var handlers=((jQuery._data(this,"events")||{})[event.type]||[]).slice(0),run_all=!event.exclusive&&!event.namespace,args=Array.prototype.slice.call(arguments,0);args[0]=event;event.currentTarget=this;for(var j=0,l=handlers.length;j<l;j++){var handleObj=handlers[j];if(run_all||event.namespace_re.test(handleObj.namespace)){event.handler=handleObj.handler;event.data=handleObj.data;event.handleObj=handleObj;var ret=handleObj.handler.apply(this,args);if(ret!==undefined){event.result=ret;if(ret===false){event.preventDefault();event.stopPropagation()}}if(event.isImmediatePropagationStopped()){break}}}return event.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(event){if(event[jQuery.expando]){return event}var originalEvent=event;event=jQuery.Event(originalEvent);for(var i=this.props.length,prop;i;){prop=this.props[--i];event[prop]=originalEvent[prop]}if(!event.target){event.target=event.srcElement||document}if(event.target.nodeType===3){event.target=event.target.parentNode}if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement===event.target?event.toElement:event.fromElement}if(event.pageX==null&&event.clientX!=null){var eventDocument=event.target.ownerDocument||document,doc=eventDocument.documentElement,body=eventDocument.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}if(event.which==null&&(event.charCode!=null||event.keyCode!=null)){event.which=event.charCode!=null?event.charCode:event.keyCode}if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey}if(!event.which&&event.button!==undefined){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)))}return event},guid:100000000,proxy:jQuery.proxy,special:{ready:{setup:jQuery.bindReady,teardown:jQuery.noop},live:{add:function(handleObj){jQuery.event.add(this,liveConvert(handleObj.origType,handleObj.selector),jQuery.extend({},handleObj,{handler:liveHandler,guid:handleObj.handler.guid}))},remove:function(handleObj){jQuery.event.remove(this,liveConvert(handleObj.origType,handleObj.selector),handleObj)}},beforeunload:{setup:function(data,namespaces,eventHandle){if(jQuery.isWindow(this)){this.onbeforeunload=eventHandle}},teardown:function(namespaces,eventHandle){if(this.onbeforeunload===eventHandle){this.onbeforeunload=null}}}}};jQuery.removeEvent=document.removeEventListener?function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false)}}:function(elem,type,handle){if(elem.detachEvent){elem.detachEvent("on"+type,handle)}};jQuery.Event=function(src,props){if(!this.preventDefault){return new jQuery.Event(src,props)}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=(src.defaultPrevented||src.returnValue===false||src.getPreventDefault&&src.getPreventDefault())?returnTrue:returnFalse}else{this.type=src}if(props){jQuery.extend(this,props)}this.timeStamp=jQuery.now();this[jQuery.expando]=true};function returnFalse(){return false}function returnTrue(){return true}jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e){return }if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e){return }if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation()},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var withinElement=function(event){var parent=event.relatedTarget;event.type=event.data;try{if(parent&&parent!==document&&!parent.parentNode){return }while(parent&&parent!==this){parent=parent.parentNode}if(parent!==this){jQuery.event.handle.apply(this,arguments)}}catch(e){}},delegate=function(event){event.type=event.data;jQuery.event.handle.apply(this,arguments)};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(orig,fix){jQuery.event.special[orig]={setup:function(data){jQuery.event.add(this,fix,data&&data.selector?delegate:withinElement,orig)},teardown:function(data){jQuery.event.remove(this,fix,data&&data.selector?delegate:withinElement)}}});if(!jQuery.support.submitBubbles){jQuery.event.special.submit={setup:function(data,namespaces){if(!jQuery.nodeName(this,"form")){jQuery.event.add(this,"click.specialSubmit",function(e){var elem=e.target,type=elem.type;if((type==="submit"||type==="image")&&jQuery(elem).closest("form").length){trigger("submit",this,arguments)}});jQuery.event.add(this,"keypress.specialSubmit",function(e){var elem=e.target,type=elem.type;if((type==="text"||type==="password")&&jQuery(elem).closest("form").length&&e.keyCode===13){trigger("submit",this,arguments)}})}else{return false}},teardown:function(namespaces){jQuery.event.remove(this,".specialSubmit")}}}if(!jQuery.support.changeBubbles){var changeFilters,getVal=function(elem){var type=elem.type,val=elem.value;if(type==="radio"||type==="checkbox"){val=elem.checked}else{if(type==="select-multiple"){val=elem.selectedIndex>-1?jQuery.map(elem.options,function(elem){return elem.selected}).join("-"):""}else{if(jQuery.nodeName(elem,"select")){val=elem.selectedIndex}}}return val},testChange=function testChange(e){var elem=e.target,data,val;if(!rformElems.test(elem.nodeName)||elem.readOnly){return }data=jQuery._data(elem,"_change_data");val=getVal(elem);if(e.type!=="focusout"||elem.type!=="radio"){jQuery._data(elem,"_change_data",val)}if(data===undefined||val===data){return }if(data!=null||val){e.type="change";e.liveFired=undefined;jQuery.event.trigger(e,arguments[1],elem)}};jQuery.event.special.change={filters:{focusout:testChange,beforedeactivate:testChange,click:function(e){var elem=e.target,type=jQuery.nodeName(elem,"input")?elem.type:"";if(type==="radio"||type==="checkbox"||jQuery.nodeName(elem,"select")){testChange.call(this,e)}},keydown:function(e){var elem=e.target,type=jQuery.nodeName(elem,"input")?elem.type:"";if((e.keyCode===13&&!jQuery.nodeName(elem,"textarea"))||(e.keyCode===32&&(type==="checkbox"||type==="radio"))||type==="select-multiple"){testChange.call(this,e)}},beforeactivate:function(e){var elem=e.target;jQuery._data(elem,"_change_data",getVal(elem))}},setup:function(data,namespaces){if(this.type==="file"){return false}for(var type in changeFilters){jQuery.event.add(this,type+".specialChange",changeFilters[type])}return rformElems.test(this.nodeName)},teardown:function(namespaces){jQuery.event.remove(this,".specialChange");return rformElems.test(this.nodeName)}};changeFilters=jQuery.event.special.change.filters;changeFilters.focus=changeFilters.beforeactivate}function trigger(type,elem,args){var event=jQuery.extend({},args[0]);event.type=type;event.originalEvent={};event.liveFired=undefined;jQuery.event.handle.call(elem,event);if(event.isDefaultPrevented()){args[0].preventDefault()}}if(!jQuery.support.focusinBubbles){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var attaches=0;jQuery.event.special[fix]={setup:function(){if(attaches++===0){document.addEventListener(orig,handler,true)}},teardown:function(){if(--attaches===0){document.removeEventListener(orig,handler,true)}}};function handler(donor){var e=jQuery.event.fix(donor);e.type=fix;e.originalEvent={};jQuery.event.trigger(e,null,e.target);if(e.isDefaultPrevented()){donor.preventDefault()}}})}jQuery.each(["bind","one"],function(i,name){jQuery.fn[name]=function(type,data,fn){var handler;if(typeof type==="object"){for(var key in type){this[name](key,data,type[key],fn)}return this}if(arguments.length===2||data===false){fn=data;data=undefined}if(name==="one"){handler=function(event){jQuery(this).unbind(event,handler);return fn.apply(this,arguments)};handler.guid=fn.guid||jQuery.guid++}else{handler=fn}if(type==="unload"&&name!=="one"){this.one(type,data,fn)}else{for(var i=0,l=this.length;i<l;i++){jQuery.event.add(this[i],type,handler,data)}}return this}});jQuery.fn.extend({unbind:function(type,fn){if(typeof type==="object"&&!type.preventDefault){for(var key in type){this.unbind(key,type[key])}}else{for(var i=0,l=this.length;i<l;i++){jQuery.event.remove(this[i],type,fn)}}return this},delegate:function(selector,types,data,fn){return this.live(types,data,fn,selector)},undelegate:function(selector,types,fn){if(arguments.length===0){return this.unbind("live")}else{return this.die(types,null,fn,selector)}},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){if(this[0]){return jQuery.event.trigger(type,data,this[0],true)}},toggle:function(fn){var args=arguments,guid=fn.guid||jQuery.guid++,i=0,toggler=function(event){var lastToggle=(jQuery.data(this,"lastToggle"+fn.guid)||0)%i;jQuery.data(this,"lastToggle"+fn.guid,lastToggle+1);event.preventDefault();return args[lastToggle].apply(this,arguments)||false};toggler.guid=guid;while(i<args.length){args[i++].guid=guid}return this.click(toggler)},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)}});var liveMap={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};jQuery.each(["live","die"],function(i,name){jQuery.fn[name]=function(types,data,fn,origSelector){var type,i=0,match,namespaces,preType,selector=origSelector||this.selector,context=origSelector?this:jQuery(this.context);if(typeof types==="object"&&!types.preventDefault){for(var key in types){context[name](key,data,types[key],selector)}return this}if(name==="die"&&!types&&origSelector&&origSelector.charAt(0)==="."){context.unbind(origSelector);return this}if(data===false||jQuery.isFunction(data)){fn=data||returnFalse;data=undefined}types=(types||"").split(" ");while((type=types[i++])!=null){match=rnamespaces.exec(type);namespaces="";if(match){namespaces=match[0];type=type.replace(rnamespaces,"")}if(type==="hover"){types.push("mouseenter"+namespaces,"mouseleave"+namespaces);continue}preType=type;if(liveMap[type]){types.push(liveMap[type]+namespaces);type=type+namespaces}else{type=(liveMap[type]||type)+namespaces}if(name==="live"){for(var j=0,l=context.length;j<l;j++){jQuery.event.add(context[j],"live."+liveConvert(type,selector),{data:data,selector:selector,handler:fn,origType:type,origHandler:fn,preType:preType})}}else{context.unbind("live."+liveConvert(type,selector),fn)}}return this}});function liveHandler(event){var stop,maxLevel,related,match,handleObj,elem,j,i,l,data,close,namespace,ret,elems=[],selectors=[],events=jQuery._data(this,"events");if(event.liveFired===this||!events||!events.live||event.target.disabled||event.button&&event.type==="click"){return }if(event.namespace){namespace=new RegExp("(^|\\.)"+event.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")}event.liveFired=this;var live=events.live.slice(0);for(j=0;j<live.length;j++){handleObj=live[j];if(handleObj.origType.replace(rnamespaces,"")===event.type){selectors.push(handleObj.selector)}else{live.splice(j--,1)}}match=jQuery(event.target).closest(selectors,event.currentTarget);for(i=0,l=match.length;i<l;i++){close=match[i];for(j=0;j<live.length;j++){handleObj=live[j];if(close.selector===handleObj.selector&&(!namespace||namespace.test(handleObj.namespace))&&!close.elem.disabled){elem=close.elem;related=null;if(handleObj.preType==="mouseenter"||handleObj.preType==="mouseleave"){event.type=handleObj.preType;related=jQuery(event.relatedTarget).closest(handleObj.selector)[0];if(related&&jQuery.contains(elem,related)){related=elem}}if(!related||related!==elem){elems.push({elem:elem,handleObj:handleObj,level:close.level})}}}}for(i=0,l=elems.length;i<l;i++){match=elems[i];if(maxLevel&&match.level>maxLevel){break}event.currentTarget=match.elem;event.data=match.handleObj.data;event.handleObj=match.handleObj;ret=match.handleObj.origHandler.apply(match.elem,arguments);if(ret===false||event.isPropagationStopped()){maxLevel=match.level;if(ret===false){stop=false}if(event.isImmediatePropagationStopped()){break}}}return stop}function liveConvert(type,selector){return(type&&type!=="*"?type+".":"")+selector.replace(rperiod,"`").replace(rspaces,"&")}jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){if(fn==null){fn=data;data=null}return arguments.length>0?this.bind(name,data,fn):this.trigger(name)};if(jQuery.attrFn){jQuery.attrFn[name]=true}});
 /*
- * Sizzle CSS Selector Engine - v0.9.3
- *  Copyright 2009, The Dojo Foundation
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
  *  Released under the MIT, BSD, and GPL Licenses.
  *  More information: http://sizzlejs.com/
  */
-(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,done=0,toString=Object.prototype.toString;var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;if(context.nodeType!==1&&context.nodeType!==9){return[]}if(!selector||typeof selector!=="string"){return results}var parts=[],m,set,checkSet,check,mode,extra,prune=true;chunker.lastIndex=0;while((m=chunker.exec(selector))!==null){parts.push(m[1]);if(m[2]){extra=RegExp.rightContext;break}}if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context)}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector]){selector+=parts.shift()}set=posProcess(selector,set)}}}else{var ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&context.parentNode?context.parentNode:context,isXML(context));set=Sizzle.filter(ret.expr,ret.set);if(parts.length>0){checkSet=makeArray(set)}else{prune=false}while(parts.length){var cur=parts.pop(),pop=cur;if(!Expr.relative[cur]){cur=""}else{pop=parts.pop()}if(pop==null){pop=context}Expr.relative[cur](checkSet,pop,isXML(context))}}if(!checkSet){checkSet=set}if(!checkSet){throw"Syntax error, unrecognized expression: "+(cur||selector)}if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet)}else{if(context.nodeType===1){for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context,checkSet[i]))){results.push(set[i])}}}else{for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i])}}}}}else{makeArray(checkSet,results)}if(extra){Sizzle(extra,context,results,seed);if(sortOrder){hasDuplicate=false;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1)}}}}}return results};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set)};Sizzle.find=function(expr,context,isXML){var set,match;if(!expr){return[]}for(var i=0,l=Expr.order.length;i<l;i++){var type=Expr.order[i],match;if((match=Expr.match[type].exec(expr))){var left=RegExp.leftContext;if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(/\\/g,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break}}}}if(!set){set=context.getElementsByTagName("*")}return{set:set,expr:expr}};Sizzle.filter=function(expr,set,inplace,not){var old=expr,result=[],curLoop=set,match,anyFound,isXMLFilter=set&&set[0]&&isXML(set[0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.match[type].exec(expr))!=null){var filter=Expr.filter[type],found,item;anyFound=false;if(curLoop==result){result=[]}if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true}else{if(match===true){continue}}}if(match){for(var i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true}else{curLoop[i]=false}}else{if(pass){result.push(item);anyFound=true}}}}}if(found!==undefined){if(!inplace){curLoop=result}expr=expr.replace(Expr.match[type],"");if(!anyFound){return[]}break}}}if(expr==old){if(anyFound==null){throw"Syntax error, unrecognized expression: "+expr}else{break}}old=expr}return curLoop};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href")}},relative:{"+":function(checkSet,part,isXML){var isPartStr=typeof part==="string",isTag=isPartStr&&!/\W/.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag&&!isXML){part=part.toUpperCase()}for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}checkSet[i]=isPartStrNotTag||elem&&elem.nodeName===part?elem||false:elem===part}}if(isPartStrNotTag){Sizzle.filter(part,checkSet,true)}},">":function(checkSet,part,isXML){var isPartStr=typeof part==="string";if(isPartStr&&!/\W/.test(part)){part=isXML?part:part.toUpperCase();for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName===part?parent:false}}}else{for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part}}if(isPartStr){Sizzle.filter(part,checkSet,true)}}},"":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck}checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML)},"~":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck}checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML)}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?[m]:[]}},NAME:function(match,context,isXML){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i])}}return ret.length===0?null:ret}},TAG:function(match,context){return context.getElementsByTagName(match[1])}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(/\\/g,"")+" ";if(isXML){return match}for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").indexOf(match)>=0)){if(!inplace){result.push(elem)}}else{if(inplace){curLoop[i]=false}}}}return false},ID:function(match){return match[1].replace(/\\/g,"")},TAG:function(match,curLoop){for(var i=0;curLoop[i]===false;i++){}return curLoop[i]&&isXML(curLoop[i])?match[1]:match[1].toUpperCase()},CHILD:function(match){if(match[1]=="nth"){var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2]=="even"&&"2n"||match[2]=="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0}match[0]=done++;return match},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1].replace(/\\/g,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name]}if(match[2]==="~="){match[4]=" "+match[4]+" "}return match},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if(match[3].match(chunker).length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop)}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret)}return false}}else{if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true}}return match},POS:function(match){match.unshift(true);return match}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden"},disabled:function(elem){return elem.disabled===true},checked:function(elem){return elem.checked===true},selected:function(elem){elem.parentNode.selectedIndex;return elem.selected===true},parent:function(elem){return !!elem.firstChild},empty:function(elem){return !elem.firstChild},has:function(elem,i,match){return !!Sizzle(match[3],elem).length},header:function(elem){return/h\d/i.test(elem.nodeName)},text:function(elem){return"text"===elem.type},radio:function(elem){return"radio"===elem.type},checkbox:function(elem){return"checkbox"===elem.type},file:function(elem){return"file"===elem.type},password:function(elem){return"password"===elem.type},submit:function(elem){return"submit"===elem.type},image:function(elem){return"image"===elem.type},reset:function(elem){return"reset"===elem.type},button:function(elem){return"button"===elem.type||elem.nodeName.toUpperCase()==="BUTTON"},input:function(elem){return/input|select|textarea|button/i.test(elem.nodeName)}},setFilters:{first:function(elem,i){return i===0},last:function(elem,i,match,array){return i===array.length-1},even:function(elem,i){return i%2===0},odd:function(elem,i){return i%2===1},lt:function(elem,i,match){return i<match[3]-0},gt:function(elem,i,match){return i>match[3]-0},nth:function(elem,i,match){return match[3]-0==i},eq:function(elem,i,match){return match[3]-0==i}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array)}else{if(name==="contains"){return(elem.textContent||elem.innerText||"").indexOf(match[3])>=0}else{if(name==="not"){var not=match[3];for(var i=0,l=not.length;i<l;i++){if(not[i]===elem){return false}}return true}}}},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case"only":case"first":while(node=node.previousSibling){if(node.nodeType===1){return false}}if(type=="first"){return true}node=elem;case"last":while(node=node.nextSibling){if(node.nodeType===1){return false}}return true;case"nth":var first=match[2],last=match[3];if(first==1&&last==0){return true}var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count}}parent.sizcache=doneName}var diff=elem.nodeIndex-last;if(first==0){return diff==0}else{return(diff%first==0&&diff/first>=0)}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName===match},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!=check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array)}}}};var origPOS=Expr.match.POS;for(var type in Expr.match){Expr.match[type]=RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var makeArray=function(array,results){array=Array.prototype.slice.call(array);if(results){results.push.apply(results,array);return results}return array};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(e){makeArray=function(array,results){var ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array)}else{if(typeof array.length==="number"){for(var i=0,l=array.length;i<l;i++){ret.push(array[i])}}else{for(var i=0;array[i];i++){ret.push(array[i])}}}return ret}}var sortOrder;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){var ret=a.compareDocumentPosition(b)&4?-1:a===b?0:1;if(ret===0){hasDuplicate=true}return ret}}else{if("sourceIndex" in document.documentElement){sortOrder=function(a,b){var ret=a.sourceIndex-b.sourceIndex;if(ret===0){hasDuplicate=true}return ret}}else{if(document.createRange){sortOrder=function(a,b){var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.selectNode(a);aRange.collapse(true);bRange.selectNode(b);bRange.collapse(true);var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);if(ret===0){hasDuplicate=true}return ret}}}}(function(){var form=document.createElement("form"),id="script"+(new Date).getTime();form.innerHTML="<input name='"+id+"'/>";var root=document.documentElement;root.insertBefore(form,root.firstChild);if(!!document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[]}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match}}root.removeChild(form)})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i])}}results=tmp}return results}}div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div");div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return }Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&context.nodeType===9&&!isXML(context)){try{return makeArray(context.querySelectorAll(query),extra)}catch(e){}}return oldSizzle(query,context,extra,seed)};Sizzle.find=oldSizzle.find;Sizzle.filter=oldSizzle.filter;Sizzle.selectors=oldSizzle.selectors;Sizzle.matches=oldSizzle.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(div.getElementsByClassName("e").length===0){return }div.lastChild.className="e";if(div.getElementsByClassName("e").length===1){return }Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1])}}})()}function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i}elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;elem.sizset=i}if(elem.nodeName===cur){match=elem;break}elem=elem[dir]}checkSet[i]=match}}}function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i}elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;elem.sizset=i}if(typeof cur!=="string"){if(elem===cur){match=true;break}}else{if(Sizzle.filter(cur,[elem]).length>0){match=elem;break}}}elem=elem[dir]}checkSet[i]=match}}}var contains=document.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)&16}:function(a,b){return a!==b&&(a.contains?a.contains(b):true)};var isXML=function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&isXML(elem.ownerDocument)};var posProcess=function(selector,context){var tmpSet=[],later="",match,root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"")}selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet)}return Sizzle.filter(later,tmpSet)};jQuery.find=Sizzle;jQuery.filter=Sizzle.filter;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.filters;Sizzle.selectors.filters.hidden=function(elem){return elem.offsetWidth===0||elem.offsetHeight===0};Sizzle.selectors.filters.visible=function(elem){return elem.offsetWidth>0||elem.offsetHeight>0};Sizzle.selectors.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length};jQuery.multiFilter=function(expr,elems,not){if(not){expr=":not("+expr+")"}return Sizzle.matches(expr,elems)};jQuery.dir=function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1){matched.push(cur)}cur=cur[dir]}return matched};jQuery.nth=function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir]){if(cur.nodeType==1&&++num==result){break}}return cur};jQuery.sibling=function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem){r.push(n)}}return r};return ;window.Sizzle=Sizzle})();jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8){return }if(elem.setInterval&&elem!=window){elem=window}if(!handler.guid){handler.guid=this.guid++}if(data!==undefined){var fn=handler;handler=this.proxy(fn);handler.data=data}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){return typeof jQuery!=="undefined"&&!jQuery.event.triggered?jQuery.event.handle.apply(arguments.callee.elem,arguments):undefined});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();handler.type=namespaces.slice().sort().join(".");var handlers=events[type];if(jQuery.event.specialAll[type]){jQuery.event.specialAll[type].setup.call(elem,data,namespaces)}if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem,data,namespaces)===false){if(elem.addEventListener){elem.addEventListener(type,handle,false)}else{if(elem.attachEvent){elem.attachEvent("on"+type,handle)}}}}handlers[handler.guid]=handler;jQuery.event.global[type]=true});elem=null},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8){return }var events=jQuery.data(elem,"events"),ret,index;if(events){if(types===undefined||(typeof types==="string"&&types.charAt(0)==".")){for(var type in events){this.remove(elem,type+(types||""))}}else{if(types.type){handler=types.handler;types=types.type}jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");if(events[type]){if(handler){delete events[type][handler.guid]}else{for(var handle in events[type]){if(namespace.test(events[type][handle].type)){delete events[type][handle]}}}if(jQuery.event.specialAll[type]){jQuery.event.specialAll[type].teardown.call(elem,namespaces)}for(ret in events[type]){break}if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem,namespaces)===false){if(elem.removeEventListener){elem.removeEventListener(type,jQuery.data(elem,"handle"),false)}else{if(elem.detachEvent){elem.detachEvent("on"+type,jQuery.data(elem,"handle"))}}}ret=null;delete events[type]}}})}for(ret in events){break}if(!ret){var handle=jQuery.data(elem,"handle");if(handle){handle.elem=null}jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle")}}},trigger:function(event,data,elem,bubbling){var type=event.type||event;if(!bubbling){event=typeof event==="object"?event[expando]?event:jQuery.extend(jQuery.Event(type),event):jQuery.Event(type);if(type.indexOf("!")>=0){event.type=type=type.slice(0,-1);event.exclusive=true}if(!elem){event.stopPropagation();if(this.global[type]){jQuery.each(jQuery.cache,function(){if(this.events&&this.events[type]){jQuery.event.trigger(event,data,this.handle.elem)}})}}if(!elem||elem.nodeType==3||elem.nodeType==8){return undefined}event.result=undefined;event.target=elem;data=jQuery.makeArray(data);data.unshift(event)}event.currentTarget=elem;var handle=jQuery.data(elem,"handle");if(handle){handle.apply(elem,data)}if((!elem[type]||(jQuery.nodeName(elem,"a")&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false){event.result=false}if(!bubbling&&elem[type]&&!event.isDefaultPrevented()&&!(jQuery.nodeName(elem,"a")&&type=="click")){this.triggered=true;try{elem[type]()}catch(e){}}this.triggered=false;if(!event.isPropagationStopped()){var parent=elem.parentNode||elem.ownerDocument;if(parent){jQuery.event.trigger(event,data,parent,true)}}},handle:function(event){var all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);event.currentTarget=this;var namespaces=event.type.split(".");event.type=namespaces.shift();all=!namespaces.length&&!event.exclusive;var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||namespace.test(handler.type)){event.handler=handler;event.data=handler.data;var ret=handler.apply(this,arguments);if(ret!==undefined){event.result=ret;if(ret===false){event.preventDefault();event.stopPropagation()}}if(event.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(event){if(event[expando]){return event}var originalEvent=event;event=jQuery.Event(originalEvent);for(var i=this.props.length,prop;i;){prop=this.props[--i];event[prop]=originalEvent[prop]}if(!event.target){event.target=event.srcElement||document}if(event.target.nodeType==3){event.target=event.target.parentNode}if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement}if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0)}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode)){event.which=event.charCode||event.keyCode}if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey}if(!event.which&&event.button){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)))}return event},proxy:function(fn,proxy){proxy=proxy||function(){return fn.apply(this,arguments)};proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy},special:{ready:{setup:bindReady,teardown:function(){}}},specialAll:{live:{setup:function(selector,namespaces){jQuery.event.add(this,namespaces[0],liveHandler)},teardown:function(namespaces){if(namespaces.length){var remove=0,name=RegExp("(^|\\.)"+namespaces[0]+"(\\.|$)");jQuery.each((jQuery.data(this,"events").live||{}),function(){if(name.test(this.type)){remove++}});if(remove<1){jQuery.event.remove(this,namespaces[0],liveHandler)}}}}}};jQuery.Event=function(src){if(!this.preventDefault){return new jQuery.Event(src)}if(src&&src.type){this.originalEvent=src;this.type=src.type}else{this.type=src}this.timeStamp=now();this[expando]=true};function returnFalse(){return false}function returnTrue(){return true}jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e){return }if(e.preventDefault){e.preventDefault()}e.returnValue=false},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e){return }if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation()},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var withinElement=function(event){var parent=event.relatedTarget;while(parent&&parent!=this){try{parent=parent.parentNode}catch(e){parent=this}}if(parent!=this){event.type=event.data;jQuery.event.handle.apply(this,arguments)}};jQuery.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(orig,fix){jQuery.event.special[fix]={setup:function(){jQuery.event.add(this,orig,withinElement,fix)},teardown:function(){jQuery.event.remove(this,orig,withinElement)}}});jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data)})},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments)});return this.each(function(){jQuery.event.add(this,type,one,fn&&data)})},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn)})},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){if(this[0]){var event=jQuery.Event(type);event.preventDefault();event.stopPropagation();jQuery.event.trigger(event,data,this[0]);return event.result}},toggle:function(fn){var args=arguments,i=1;while(i<args.length){jQuery.event.proxy(fn,args[i++])}return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false}))},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut)},ready:function(fn){bindReady();if(jQuery.isReady){fn.call(document,jQuery)}else{jQuery.readyList.push(fn)}return this},live:function(type,fn){var proxy=jQuery.event.proxy(fn);proxy.guid+=this.selector+type;jQuery(document).bind(liveConvert(type,this.selector),this.selector,proxy);return this},die:function(type,fn){jQuery(document).unbind(liveConvert(type,this.selector),fn?{guid:fn.guid+this.selector+type}:null);return this}});function liveHandler(event){var check=RegExp("(^|\\.)"+event.type+"(\\.|$)"),stop=true,elems=[];jQuery.each(jQuery.data(this,"events").live||[],function(i,fn){if(check.test(fn.type)){var elem=jQuery(event.target).closest(fn.data)[0];if(elem){elems.push({elem:elem,fn:fn})}}});elems.sort(function(a,b){return jQuery.data(a.elem,"closest")-jQuery.data(b.elem,"closest")});jQuery.each(elems,function(){if(this.fn.call(this.elem,event,this.fn.data)===false){return(stop=false)}});return stop}function liveConvert(type,selector){return["live",type,selector.replace(/\./g,"`").replace(/ /g,"|")].join(".")}jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document,jQuery)});jQuery.readyList=null}jQuery(document).triggerHandler("ready")}}});var readyBound=false;function bindReady(){if(readyBound){return }readyBound=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);jQuery.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);jQuery.ready()}});if(document.documentElement.doScroll&&window==window.top){(function(){if(jQuery.isReady){return }try{document.documentElement.doScroll("left")}catch(error){setTimeout(arguments.callee,0);return }jQuery.ready()})()}}}jQuery.event.add(window,"load",jQuery.ready)}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name)}});jQuery(window).bind("unload",function(){for(var id in jQuery.cache){if(id!=1&&jQuery.cache[id].handle){jQuery.event.remove(jQuery.cache[id].handle.elem)}}});(function(){jQuery.support={};var root=document.documentElement,script=document.createElement("script"),div=document.createElement("div"),id="script"+(new Date).getTime();div.style.display="none";div.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var all=div.getElementsByTagName("*"),a=div.getElementsByTagName("a")[0];if(!all||!all.length||!a){return }jQuery.support={leadingWhitespace:div.firstChild.nodeType==3,tbody:!div.getElementsByTagName("tbody").length,objectAll:!!div.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/red/.test(a.getAttribute("style")),hrefNormalized:a.getAttribute("href")==="/a",opacity:a.style.opacity==="0.5",cssFloat:!!a.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};script.type="text/javascript";try{script.appendChild(document.createTextNode("window."+id+"=1;"))}catch(e){}root.insertBefore(script,root.firstChild);if(window[id]){jQuery.support.scriptEval=true;delete window[id]}root.removeChild(script);if(div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function(){jQuery.support.noCloneEvent=false;div.detachEvent("onclick",arguments.callee)});div.cloneNode(true).fireEvent("onclick")}jQuery(function(){var div=document.createElement("div");div.style.width=div.style.paddingLeft="1px";document.body.appendChild(div);jQuery.boxModel=jQuery.support.boxModel=div.offsetWidth===2;document.body.removeChild(div).style.display="none"})})();var styleFloat=jQuery.support.cssFloat?"cssFloat":"styleFloat";jQuery.props={"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!=="string"){return this._load(url)}var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off)}var type="GET";if(params){if(jQuery.isFunction(params)){callback=params;params=null}else{if(typeof params==="object"){params=jQuery.param(params);type="POST"}}}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified"){self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText)}if(callback){self.each(callback,[res.responseText,status,res])}}});return this},serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?jQuery.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){return{name:elem.name,value:val}}):{name:elem.name,value:val}}).get()}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f)}});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type})},getScript:function(url,callback){return jQuery.get(url,null,callback,"script")},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={}}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type})},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data)}if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre)){s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?"}}else{if(!s.data||!s.data.match(jsre)){s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?"}}s.dataType="json"}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data){s.data=(s.data+"").replace(jsre,"="+jsonp+"$1")}s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp]}catch(e){}if(head){head.removeChild(script)}}}if(s.dataType=="script"&&s.cache==null){s.cache=false}if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"")}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null}if(s.global&&!jQuery.active++){jQuery.event.trigger("ajaxStart")}var parts=/^(\w+:)?\/\/([^\/?#]+)/.exec(s.url);if(s.dataType=="script"&&type=="GET"&&parts&&(parts[1]&&parts[1]!=location.protocol||parts[2]!=location.host)){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset){script.charset=s.scriptCharset}if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();script.onload=script.onreadystatechange=null;head.removeChild(script)}}}head.appendChild(script);return undefined}var requestDone=false;var xhr=s.xhr();if(s.username){xhr.open(type,s.url,s.async,s.username,s.password)}else{xhr.open(type,s.url,s.async)}try{if(s.data){xhr.setRequestHeader("Content-Type",s.contentType)}if(s.ifModified){xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default)}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop")}xhr.abort();return false}if(s.global){jQuery.event.trigger("ajaxSend",[xhr,s])}var onreadystatechange=function(isTimeout){if(xhr.readyState==0){if(ival){clearInterval(ival);ival=null;if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop")}}}else{if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null}status=isTimeout=="timeout"?"timeout":!jQuery.httpSuccess(xhr)?"error":s.ifModified&&jQuery.httpNotModified(xhr,s.url)?"notmodified":"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s)}catch(e){status="parsererror"}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified")}catch(e){}if(s.ifModified&&modRes){jQuery.lastModified[s.url]=modRes}if(!jsonp){success()}}else{jQuery.handleError(s,xhr,status)}complete();if(isTimeout){xhr.abort()}if(s.async){xhr=null}}}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0){setTimeout(function(){if(xhr&&!requestDone){onreadystatechange("timeout")}},s.timeout)}}try{xhr.send(s.data)}catch(e){jQuery.handleError(s,xhr,null,e)}if(!s.async){onreadystatechange()}function success(){if(s.success){s.success(data,status)}if(s.global){jQuery.event.trigger("ajaxSuccess",[xhr,s])}}function complete(){if(s.complete){s.complete(xhr,status)}if(s.global){jQuery.event.trigger("ajaxComplete",[xhr,s])}if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop")}}return xhr},handleError:function(s,xhr,status,e){if(s.error){s.error(xhr,status,e)}if(s.global){jQuery.event.trigger("ajaxError",[xhr,s,e])}},active:0,httpSuccess:function(xhr){try{return !xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223}catch(e){}return false},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]}catch(e){}return false},httpData:function(xhr,type,s){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror"){throw"parsererror"}if(s&&s.dataFilter){data=s.dataFilter(data,type)}if(typeof data==="string"){if(type=="script"){jQuery.globalEval(data)}if(type=="json"){data=window.eval("("+data+")")}}return data},param:function(a){var s=[];function add(key,value){s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)}if(jQuery.isArray(a)||a.jquery){jQuery.each(a,function(){add(this.name,this.value)})}else{for(var j in a){if(jQuery.isArray(a[j])){jQuery.each(a[j],function(){add(j,this)})}else{add(j,jQuery.isFunction(a[j])?a[j]():a[j])}}}return s.join("&").replace(/%20/g,"+")}});var elemdisplay={},timerId,fxAttrs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function genFx(type,num){var obj={};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type});return obj}jQuery.fn.extend({show:function(speed,callback){if(speed){return this.animate(genFx("show",3),speed,callback)}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");this[i].style.display=old||"";if(jQuery.css(this[i],"display")==="none"){var tagName=this[i].tagName,display;if(elemdisplay[tagName]){display=elemdisplay[tagName]}else{var elem=jQuery("<"+tagName+" />").appendTo("body");display=elem.css("display");if(display==="none"){display="block"}elem.remove();elemdisplay[tagName]=display}jQuery.data(this[i],"olddisplay",display)}}for(var i=0,l=this.length;i<l;i++){this[i].style.display=jQuery.data(this[i],"olddisplay")||""}return this}},hide:function(speed,callback){if(speed){return this.animate(genFx("hide",3),speed,callback)}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");if(!old&&old!=="none"){jQuery.data(this[i],"olddisplay",jQuery.css(this[i],"display"))}}for(var i=0,l=this.length;i<l;i++){this[i].style.display="none"}return this}},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){var bool=typeof fn==="boolean";return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn==null||bool?this.each(function(){var state=bool?fn:jQuery(this).is(":hidden");jQuery(this)[state?"show":"hide"]()}):this.animate(genFx("toggle",3),fn,fn2)},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback)},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){var opt=jQuery.extend({},optall),p,hidden=this.nodeType==1&&jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden){return opt.complete.call(this)}if((p=="height"||p=="width")&&this.style){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow}}if(opt.overflow!=null){this.style.overflow="hidden"}opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val)){e[val=="toggle"?hidden?"show":"hide":val](prop)}else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit}if(parts[1]){end=((parts[1]=="-="?-1:1)*end)+start}e.custom(start,end,unit)}else{e.custom(start,val,"")}}});return true})},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue){this.queue([])}this.each(function(){for(var i=timers.length-1;i>=0;i--){if(timers[i].elem==this){if(gotoEnd){timers[i](true)}timers.splice(i,1)}}});if(!gotoEnd){this.dequeue()}return this}});jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),slideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(name,props){jQuery.fn[name]=function(speed,callback){return this.animate(props,speed,callback)}});jQuery.extend({speed:function(speed,easing,fn){var opt=typeof speed==="object"?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:jQuery.fx.speeds[opt.duration]||jQuery.fx.speeds._default;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false){jQuery(this).dequeue()}if(jQuery.isFunction(opt.old)){opt.old.call(this)}};return opt},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum}},timers:[],fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig){options.orig={}}}});jQuery.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(force){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;var self=this;function t(gotoEnd){return self.step(gotoEnd)}t.elem=this.elem;if(t()&&jQuery.timers.push(t)&&!timerId){timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++){if(!timers[i]()){timers.splice(i--,1)}}if(!timers.length){clearInterval(timerId);timerId=undefined}},13)}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());jQuery(this.elem).show()},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(gotoEnd){var t=now();if(gotoEnd||t>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim){if(this.options.curAnim[i]!==true){done=false}}if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){jQuery(this.elem).hide()}if(this.options.hide||this.options.show){for(var p in this.options.curAnim){jQuery.attr(this.elem.style,p,this.options.orig[p])}}this.options.complete.call(this.elem)}return false}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now)},_default:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=null){fx.elem.style[fx.prop]=fx.now+fx.unit}else{fx.elem[fx.prop]=fx.now}}}});if(document.documentElement.getBoundingClientRect){jQuery.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return jQuery.offset.bodyOffset(this[0])}var box=this[0].getBoundingClientRect(),doc=this[0].ownerDocument,body=doc.body,docElem=doc.documentElement,clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,top=box.top+(self.pageYOffset||jQuery.boxModel&&docElem.scrollTop||body.scrollTop)-clientTop,left=box.left+(self.pageXOffset||jQuery.boxModel&&docElem.scrollLeft||body.scrollLeft)-clientLeft;return{top:top,left:left}}}else{jQuery.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return jQuery.offset.bodyOffset(this[0])}jQuery.offset.initialized||jQuery.offset.initialize();var elem=this[0],offsetParent=elem.offsetParent,prevOffsetParent=elem,doc=elem.ownerDocument,computedStyle,docElem=doc.documentElement,body=doc.body,defaultView=doc.defaultView,prevComputedStyle=defaultView.getComputedStyle(elem,null),top=elem.offsetTop,left=elem.offsetLeft;while((elem=elem.parentNode)&&elem!==body&&elem!==docElem){computedStyle=defaultView.getComputedStyle(elem,null);top-=elem.scrollTop,left-=elem.scrollLeft;if(elem===offsetParent){top+=elem.offsetTop,left+=elem.offsetLeft;if(jQuery.offset.doesNotAddBorder&&!(jQuery.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(elem.tagName))){top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0}prevOffsetParent=offsetParent,offsetParent=elem.offsetParent}if(jQuery.offset.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible"){top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0}prevComputedStyle=computedStyle}if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static"){top+=body.offsetTop,left+=body.offsetLeft}if(prevComputedStyle.position==="fixed"){top+=Math.max(docElem.scrollTop,body.scrollTop),left+=Math.max(docElem.scrollLeft,body.scrollLeft)}return{top:top,left:left}}}jQuery.offset={initialize:function(){if(this.initialized){return }var body=document.body,container=document.createElement("div"),innerDiv,checkDiv,table,td,rules,prop,bodyMarginTop=body.style.marginTop,html='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';rules={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(prop in rules){container.style[prop]=rules[prop]}container.innerHTML=html;body.insertBefore(container,body.firstChild);innerDiv=container.firstChild,checkDiv=innerDiv.firstChild,td=innerDiv.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(checkDiv.offsetTop!==5);this.doesAddBorderForTableAndCells=(td.offsetTop===5);innerDiv.style.overflow="hidden",innerDiv.style.position="relative";this.subtractsBorderForOverflowNotVisible=(checkDiv.offsetTop===-5);body.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(body.offsetTop===0);body.style.marginTop=bodyMarginTop;body.removeChild(container);this.initialized=true},bodyOffset:function(body){jQuery.offset.initialized||jQuery.offset.initialize();var top=body.offsetTop,left=body.offsetLeft;if(jQuery.offset.doesNotIncludeMarginInBodyOffset){top+=parseInt(jQuery.curCSS(body,"marginTop",true),10)||0,left+=parseInt(jQuery.curCSS(body,"marginLeft",true),10)||0}return{top:top,left:left}}};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,"marginTop");offset.left-=num(this,"marginLeft");parentOffset.top+=num(offsetParent,"borderTopWidth");parentOffset.left+=num(offsetParent,"borderLeftWidth");results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left}}return results},offsetParent:function(){var offsetParent=this[0].offsetParent||document.body;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,"position")=="static")){offsetParent=offsetParent.offsetParent}return jQuery(offsetParent)}});jQuery.each(["Left","Top"],function(i,name){var method="scroll"+name;jQuery.fn[method]=function(val){if(!this[0]){return null}return val!==undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val}):this[0]==window||this[0]==document?self[i?"pageYOffset":"pageXOffset"]||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method]}});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom",lower=name.toLowerCase();jQuery.fn["inner"+name]=function(){return this[0]?jQuery.css(this[0],lower,false,"padding"):null};jQuery.fn["outer"+name]=function(margin){return this[0]?jQuery.css(this[0],lower,false,margin?"margin":"border"):null};var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(document.documentElement["client"+name],document.body["scroll"+name],document.documentElement["scroll"+name],document.body["offset"+name],document.documentElement["offset"+name]):size===undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,typeof size==="string"?size:size+"px")}})})();jQuery.ui||(function($){var _remove=$.fn.remove,isFF2=$.browser.mozilla&&(parseFloat($.browser.version)<1.9);$.ui={version:"1.7",plugin:{add:function(module,option,set){var proto=$.ui[module].prototype;for(var i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]])}},call:function(instance,name,args){var set=instance.plugins[name];if(!set||!instance.element[0].parentNode){return }for(var i=0;i<set.length;i++){if(instance.options[set[i][0]]){set[i][1].apply(instance.element,args)}}}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(el,a){if($(el).css("overflow")=="hidden"){return false}var scroll=(a&&a=="left")?"scrollLeft":"scrollTop",has=false;if(el[scroll]>0){return true}el[scroll]=1;has=(el[scroll]>0);el[scroll]=0;return has},isOverAxis:function(x,reference,size){return(x>reference)&&(x<(reference+size))},isOver:function(y,x,top,left,height,width){return $.ui.isOverAxis(y,top,height)&&$.ui.isOverAxis(x,left,width)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(isFF2){var attr=$.attr,removeAttr=$.fn.removeAttr,ariaNS="http://www.w3.org/2005/07/aaa",ariaState=/^aria-/,ariaRole=/^wairole:/;$.attr=function(elem,name,value){var set=value!==undefined;return(name=="role"?(set?attr.call(this,elem,name,"wairole:"+value):(attr.apply(this,arguments)||"").replace(ariaRole,"")):(ariaState.test(name)?(set?elem.setAttributeNS(ariaNS,name.replace(ariaState,"aaa:"),value):attr.call(this,elem,name.replace(ariaState,"aaa:"))):attr.apply(this,arguments)))};$.fn.removeAttr=function(name){return(ariaState.test(name)?this.each(function(){this.removeAttributeNS(ariaNS,name.replace(ariaState,""))}):removeAttr.call(this,name))}}$.fn.extend({remove:function(){$("*",this).add(this).each(function(){$(this).triggerHandler("remove")});return _remove.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var scrollParent;if(($.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){scrollParent=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test($.curCSS(this,"position",1))&&(/(auto|scroll)/).test($.curCSS(this,"overflow",1)+$.curCSS(this,"overflow-y",1)+$.curCSS(this,"overflow-x",1))}).eq(0)}else{scrollParent=this.parents().filter(function(){return(/(auto|scroll)/).test($.curCSS(this,"overflow",1)+$.curCSS(this,"overflow-y",1)+$.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!scrollParent.length?$(document):scrollParent}});$.extend($.expr[":"],{data:function(elem,i,match){return !!$.data(elem,match[3])},focusable:function(element){var nodeName=element.nodeName.toLowerCase(),tabIndex=$.attr(element,"tabindex");return(/input|select|textarea|button|object/.test(nodeName)?!element.disabled:"a"==nodeName||"area"==nodeName?element.href||!isNaN(tabIndex):!isNaN(tabIndex))&&!$(element)["area"==nodeName?"parents":"closest"](":hidden").length},tabbable:function(element){var tabIndex=$.attr(element,"tabindex");return(isNaN(tabIndex)||tabIndex>=0)&&$(element).is(":focusable")}});function getter(namespace,plugin,method,args){function getMethods(type){var methods=$[namespace][plugin][type]||[];return(typeof methods=="string"?methods.split(/,?\s+/):methods)}var methods=getMethods("getter");if(args.length==1&&typeof args[0]=="string"){methods=methods.concat(getMethods("getterSetter"))}return($.inArray(method,methods)!=-1)}$.widget=function(name,prototype){var namespace=name.split(".")[0];name=name.split(".")[1];$.fn[name]=function(options){var isMethodCall=(typeof options=="string"),args=Array.prototype.slice.call(arguments,1);if(isMethodCall&&options.substring(0,1)=="_"){return this}if(isMethodCall&&getter(namespace,name,options,args)){var instance=$.data(this[0],name);return(instance?instance[options].apply(instance,args):undefined)}return this.each(function(){var instance=$.data(this,name);(!instance&&!isMethodCall&&$.data(this,name,new $[namespace][name](this,options))._init());(instance&&isMethodCall&&$.isFunction(instance[options])&&instance[options].apply(instance,args))})};$[namespace]=$[namespace]||{};$[namespace][name]=function(element,options){var self=this;this.namespace=namespace;this.widgetName=name;this.widgetEventPrefix=$[namespace][name].eventPrefix||name;this.widgetBaseClass=namespace+"-"+name;this.options=$.extend({},$.widget.defaults,$[namespace][name].defaults,$.metadata&&$.metadata.get(element)[name],options);this.element=$(element).bind("setData."+name,function(event,key,value){if(event.target==element){return self._setData(key,value)}}).bind("getData."+name,function(event,key){if(event.target==element){return self._getData(key)}}).bind("remove",function(){return self.destroy()})};$[namespace][name].prototype=$.extend({},$.widget.prototype,prototype);$[namespace][name].getterSetter="option"};$.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(key,value){var options=key,self=this;if(typeof key=="string"){if(value===undefined){return this._getData(key)}options={};options[key]=value}$.each(options,function(key,value){self._setData(key,value)})},_getData:function(key){return this.options[key]},_setData:function(key,value){this.options[key]=value;if(key=="disabled"){this.element[value?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",value)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(type,event,data){var callback=this.options[type],eventName=(type==this.widgetEventPrefix?type:this.widgetEventPrefix+type);event=$.Event(event);event.type=eventName;if(event.originalEvent){for(var i=$.event.props.length,prop;i;){prop=$.event.props[--i];event[prop]=event.originalEvent[prop]}}this.element.trigger(event,data);return !($.isFunction(callback)&&callback.call(this.element[0],event,data)===false||event.isDefaultPrevented())}};$.widget.defaults={disabled:false};$.ui.mouse={_mouseInit:function(){var self=this;this.element.bind("mousedown."+this.widgetName,function(event){return self._mouseDown(event)}).bind("click."+this.widgetName,function(event){if(self._preventClickEvent){self._preventClickEvent=false;event.stopImmediatePropagation();return false}});if($.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);($.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(event){event.originalEvent=event.originalEvent||{};if(event.originalEvent.mouseHandled){return }(this._mouseStarted&&this._mouseUp(event));this._mouseDownEvent=event;var self=this,btnIsLeft=(event.which==1),elIsCancel=(typeof this.options.cancel=="string"?$(event.target).parents().add(event.target).filter(this.options.cancel).length:false);if(!btnIsLeft||elIsCancel||!this._mouseCapture(event)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){self.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(event)!==false);if(!this._mouseStarted){event.preventDefault();return true}}this._mouseMoveDelegate=function(event){return self._mouseMove(event)};this._mouseUpDelegate=function(event){return self._mouseUp(event)};$(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);($.browser.safari||event.preventDefault());event.originalEvent.mouseHandled=true;return true},_mouseMove:function(event){if($.browser.msie&&!event.button){return this._mouseUp(event)}if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault()}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,event)!==false);(this._mouseStarted?this._mouseDrag(event):this._mouseUp(event))}return !this._mouseStarted},_mouseUp:function(event){$(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(event.target==this._mouseDownEvent.target);this._mouseStop(event)}return false},_mouseDistanceMet:function(event){return(Math.max(Math.abs(this._mouseDownEvent.pageX-event.pageX),Math.abs(this._mouseDownEvent.pageY-event.pageY))>=this.options.distance)},_mouseDelayMet:function(event){return this.mouseDelayMet},_mouseStart:function(event){},_mouseDrag:function(event){},_mouseStop:function(event){},_mouseCapture:function(event){return true}};$.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&parseInt($.browser.version)<=6){s=$.extend({top:"auto",left:"auto",width:"auto",height:"auto",opacity:true,src:"javascript:false;"},s||{});var prop=function(n){return n&&n.constructor==Number?n+"px":n},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?"filter:Alpha(Opacity='0');":"")+"top:"+(s.top=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+'px')":prop(s.top))+";left:"+(s.left=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+'px')":prop(s.left))+";width:"+(s.width=="auto"?"expression(this.parentNode.offsetWidth+'px')":prop(s.width))+";height:"+(s.height=="auto"?"expression(this.parentNode.offsetHeight+'px')":prop(s.height))+';"/>';return this.each(function(){if($("> iframe.bgiframe",this).length==0){this.insertBefore(document.createElement(html),this.firstChild)}})}return this};if(!$.browser.version){$.browser.version=navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)[1]}})(jQuery);(function($){var setDataSwitch={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},uiDialogClasses="ui-dialog ui-widget ui-widget-content ui-corner-all ";$.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var self=this,options=this.options,title=options.title||this.originalTitle||"&nbsp;",titleId=$.ui.dialog.getTitleId(this.element),uiDialog=(this.uiDialog=$("<div/>")).appendTo(document.body).hide().addClass(uiDialogClasses+options.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:options.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(event){(options.closeOnEscape&&event.keyCode&&event.keyCode==$.ui.keyCode.ESCAPE&&self.close(event))}).attr({role:"dialog","aria-labelledby":titleId}).mousedown(function(event){self.moveToTop(false,event)}),uiDialogContent=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(uiDialog),uiDialogTitlebar=(this.uiDialogTitlebar=$("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(uiDialog),uiDialogTitlebarClose=$('<a href="#"/>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){uiDialogTitlebarClose.addClass("ui-state-hover")},function(){uiDialogTitlebarClose.removeClass("ui-state-hover")}).focus(function(){uiDialogTitlebarClose.addClass("ui-state-focus")}).blur(function(){uiDialogTitlebarClose.removeClass("ui-state-focus")}).mousedown(function(ev){ev.stopPropagation()}).click(function(event){self.close(event);return false}).appendTo(uiDialogTitlebar),uiDialogTitlebarCloseText=(this.uiDialogTitlebarCloseText=$("<span/>")).addClass("ui-icon ui-icon-closethick").text(options.closeText).appendTo(uiDialogTitlebarClose),uiDialogTitle=$("<span/>").addClass("ui-dialog-title").attr("id",titleId).html(title).prependTo(uiDialogTitlebar);uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();(options.draggable&&$.fn.draggable&&this._makeDraggable());(options.resizable&&$.fn.resizable&&this._makeResizable());this._createButtons(options.buttons);this._isOpen=false;(options.bgiframe&&$.fn.bgiframe&&uiDialog.bgiframe());(options.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(event){var self=this;if(false===self._trigger("beforeclose",event)){return }(self.overlay&&self.overlay.destroy());self.uiDialog.unbind("keypress.ui-dialog");(self.options.hide?self.uiDialog.hide(self.options.hide,function(){self._trigger("close",event)}):self.uiDialog.hide()&&self._trigger("close",event));$.ui.dialog.overlay.resize();self._isOpen=false},isOpen:function(){return this._isOpen},moveToTop:function(force,event){if((this.options.modal&&!force)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",event)}if(this.options.zIndex>$.ui.dialog.maxZ){$.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",$.ui.dialog.overlay.maxZ=++$.ui.dialog.maxZ));var saveScroll={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++$.ui.dialog.maxZ);this.element.attr(saveScroll);this._trigger("focus",event)},open:function(){if(this._isOpen){return }var options=this.options,uiDialog=this.uiDialog;this.overlay=options.modal?new $.ui.dialog.overlay(this):null;(uiDialog.next().length&&uiDialog.appendTo("body"));this._size();this._position(options.position);uiDialog.show(options.show);this.moveToTop(true);(options.modal&&uiDialog.bind("keypress.ui-dialog",function(event){if(event.keyCode!=$.ui.keyCode.TAB){return }var tabbables=$(":tabbable",this),first=tabbables.filter(":first")[0],last=tabbables.filter(":last")[0];if(event.target==last&&!event.shiftKey){setTimeout(function(){first.focus()},1)}else{if(event.target==first&&event.shiftKey){setTimeout(function(){last.focus()},1)}}}));$([]).add(uiDialog.find(".ui-dialog-content :tabbable:first")).add(uiDialog.find(".ui-dialog-buttonpane :tabbable:first")).add(uiDialog).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(buttons){var self=this,hasButtons=false,uiDialogButtonPane=$("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof buttons=="object"&&buttons!==null&&$.each(buttons,function(){return !(hasButtons=true)}));if(hasButtons){$.each(buttons,function(name,fn){$('<button type="button"></button>').addClass("ui-state-default ui-corner-all").text(name).click(function(){fn.apply(self.element[0],arguments)}).hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}).focus(function(){$(this).addClass("ui-state-focus")}).blur(function(){$(this).removeClass("ui-state-focus")}).appendTo(uiDialogButtonPane)});uiDialogButtonPane.appendTo(this.uiDialog)}},_makeDraggable:function(){var self=this,options=this.options,heightBeforeDrag;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){heightBeforeDrag=options.height;$(this).height($(this).height()).addClass("ui-dialog-dragging");(options.dragStart&&options.dragStart.apply(self.element[0],arguments))},drag:function(){(options.drag&&options.drag.apply(self.element[0],arguments))},stop:function(){$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);(options.dragStop&&options.dragStop.apply(self.element[0],arguments));$.ui.dialog.overlay.resize()}})},_makeResizable:function(handles){handles=(handles===undefined?this.options.resizable:handles);var self=this,options=this.options,resizeHandles=typeof handles=="string"?handles:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:options.maxWidth,maxHeight:options.maxHeight,minWidth:options.minWidth,minHeight:options.minHeight,start:function(){$(this).addClass("ui-dialog-resizing");(options.resizeStart&&options.resizeStart.apply(self.element[0],arguments))},resize:function(){(options.resize&&options.resize.apply(self.element[0],arguments))},handles:resizeHandles,stop:function(){$(this).removeClass("ui-dialog-resizing");options.height=$(this).height();options.width=$(this).width();(options.resizeStop&&options.resizeStop.apply(self.element[0],arguments));$.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(pos){var wnd=$(window),doc=$(document),pTop=doc.scrollTop(),pLeft=doc.scrollLeft(),minTop=pTop;if($.inArray(pos,["center","top","right","bottom","left"])>=0){pos=[pos=="right"||pos=="left"?pos:"center",pos=="top"||pos=="bottom"?pos:"middle"]}if(pos.constructor!=Array){pos=["center","middle"]}if(pos[0].constructor==Number){pLeft+=pos[0]}else{switch(pos[0]){case"left":pLeft+=0;break;case"right":pLeft+=wnd.width()-this.uiDialog.outerWidth();break;default:case"center":pLeft+=(wnd.width()-this.uiDialog.outerWidth())/2}}if(pos[1].constructor==Number){pTop+=pos[1]}else{switch(pos[1]){case"top":pTop+=0;break;case"bottom":pTop+=wnd.height()-this.uiDialog.outerHeight();break;default:case"middle":pTop+=(wnd.height()-this.uiDialog.outerHeight())/2}}pTop=Math.max(pTop,minTop);this.uiDialog.css({top:pTop,left:pLeft})},_setData:function(key,value){(setDataSwitch[key]&&this.uiDialog.data(setDataSwitch[key],value));switch(key){case"buttons":this._createButtons(value);break;case"closeText":this.uiDialogTitlebarCloseText.text(value);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(uiDialogClasses+value);break;case"draggable":(value?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(value);break;case"position":this._position(value);break;case"resizable":var uiDialog=this.uiDialog,isResizable=this.uiDialog.is(":data(resizable)");(isResizable&&!value&&uiDialog.resizable("destroy"));(isResizable&&typeof value=="string"&&uiDialog.resizable("option","handles",value));(isResizable||this._makeResizable(value));break;case"title":$(".ui-dialog-title",this.uiDialogTitlebar).html(value||"&nbsp;");break;case"width":this.uiDialog.width(value);break}$.widget.prototype._setData.apply(this,arguments)},_size:function(){var options=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var nonContentHeight=this.uiDialog.css({height:"auto",width:options.width}).height();this.element.css({minHeight:Math.max(options.minHeight-nonContentHeight,0),height:options.height=="auto"?"auto":Math.max(options.height-nonContentHeight,0)})}});$.extend($.ui.dialog,{version:"1.7",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function($el){return"ui-dialog-title-"+($el.attr("id")||++this.uuid)},overlay:function(dialog){this.$el=$.ui.dialog.overlay.create(dialog)}});$.extend($.ui.dialog.overlay,{instances:[],maxZ:0,events:$.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(event){return event+".dialog-overlay"}).join(" "),create:function(dialog){if(this.instances.length===0){setTimeout(function(){$(document).bind($.ui.dialog.overlay.events,function(event){var dialogZ=$(event.target).parents(".ui-dialog").css("zIndex")||0;return(dialogZ>$.ui.dialog.overlay.maxZ)})},1);$(document).bind("keydown.dialog-overlay",function(event){(dialog.options.closeOnEscape&&event.keyCode&&event.keyCode==$.ui.keyCode.ESCAPE&&dialog.close(event))});$(window).bind("resize.dialog-overlay",$.ui.dialog.overlay.resize)}var $el=$("<div></div>").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(dialog.options.bgiframe&&$.fn.bgiframe&&$el.bgiframe());this.instances.push($el);return $el},destroy:function($el){this.instances.splice($.inArray(this.instances,$el),1);if(this.instances.length===0){$([document,window]).unbind(".dialog-overlay")}$el.remove()},height:function(){if($.browser.msie&&$.browser.version<7){var scrollHeight=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var offsetHeight=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(scrollHeight<offsetHeight){return $(window).height()+"px"}else{return scrollHeight+"px"}}else{return $(document).height()+"px"}},width:function(){if($.browser.msie&&$.browser.version<7){var scrollWidth=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);var offsetWidth=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(scrollWidth<offsetWidth){return $(window).width()+"px"}else{return scrollWidth+"px"}}else{return $(document).width()+"px"}},resize:function(){var $overlays=$([]);$.each($.ui.dialog.overlay.instances,function(){$overlays=$overlays.add(this)});$overlays.css({width:0,height:0}).css({width:$.ui.dialog.overlay.width(),height:$.ui.dialog.overlay.height()})}});$.extend($.ui.dialog.overlay.prototype,{destroy:function(){$.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);(function($){$.widget("ui.draggable",$.extend({},$.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return }this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(event){var o=this.options;if(this.helper||o.disabled||$(event.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(event);if(!this.handle){return false}return true},_mouseStart:function(event){var o=this.options;this.helper=this._createHelper(event);this._cacheHelperProportions();if($.ui.ddmanager){$.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;if(o.cursorAt){this._adjustOffsetFromHelper(o.cursorAt)}if(o.containment){this._setContainment()}this._trigger("start",event);this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(event,true);return true},_mouseDrag:function(event,noPropagation){this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();this._trigger("drag",event,ui);this.position=ui.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if($.ui.ddmanager){$.ui.ddmanager.drag(this,event)}return false},_mouseStop:function(event){var dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour){dropped=$.ui.ddmanager.drop(this,event)}if(this.dropped){dropped=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!dropped)||(this.options.revert=="valid"&&dropped)||this.options.revert===true||($.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped))){var self=this;$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){self._trigger("stop",event);self._clear()})}else{this._trigger("stop",event);this._clear()}return false},_getHandle:function(event){var handle=!this.options.handle||!$(this.options.handle,this.element).length?true:false;$(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==event.target){handle=true}});return handle},_createHelper:function(event){var o=this.options;var helper=$.isFunction(o.helper)?$(o.helper.apply(this.element[0],[event])):(o.helper=="clone"?this.element.clone():this.element);if(!helper.parents("body").length){helper.appendTo((o.appendTo=="parent"?this.element[0].parentNode:o.appendTo))}if(helper[0]!=this.element[0]&&!(/(fixed|absolute)/).test(helper.css("position"))){helper.css("position","absolute")}return helper},_adjustOffsetFromHelper:function(obj){if(obj.left!=undefined){this.offset.click.left=obj.left+this.margins.left}if(obj.right!=undefined){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left}if(obj.top!=undefined){this.offset.click.top=obj.top+this.margins.top}if(obj.bottom!=undefined){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var po=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&$.ui.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&$.browser.msie)){po={top:0,left:0}}return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var p=this.element.position();return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:p.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var o=this.options;if(o.containment=="parent"){o.containment=this.helper[0].parentNode}if(o.containment=="document"||o.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,$(o.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,($(o.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(o.containment)&&o.containment.constructor!=Array){var ce=$(o.containment)[0];if(!ce){return }var co=$(o.containment).offset();var over=($(ce).css("overflow")!="hidden");this.containment=[co.left+(parseInt($(ce).css("borderLeftWidth"),10)||0)+(parseInt($(ce).css("paddingLeft"),10)||0)-this.margins.left,co.top+(parseInt($(ce).css("borderTopWidth"),10)||0)+(parseInt($(ce).css("paddingTop"),10)||0)-this.margins.top,co.left+(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt($(ce).css("borderLeftWidth"),10)||0)-(parseInt($(ce).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,co.top+(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt($(ce).css("borderTopWidth"),10)||0)-(parseInt($(ce).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(o.containment.constructor==Array){this.containment=o.containment}}},_convertPositionTo:function(d,pos){if(!pos){pos=this.position}var mod=d=="absolute"?1:-1;var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName);return{top:(pos.top+this.offset.relative.top*mod+this.offset.parent.top*mod-($.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(scrollIsRootNode?0:scroll.scrollTop()))*mod)),left:(pos.left+this.offset.relative.left*mod+this.offset.parent.left*mod-($.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())*mod))}},_generatePosition:function(event){var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var pageX=event.pageX;var pageY=event.pageY;if(this.originalPosition){if(this.containment){if(event.pageX-this.offset.click.left<this.containment[0]){pageX=this.containment[0]+this.offset.click.left}if(event.pageY-this.offset.click.top<this.containment[1]){pageY=this.containment[1]+this.offset.click.top}if(event.pageX-this.offset.click.left>this.containment[2]){pageX=this.containment[2]+this.offset.click.left}if(event.pageY-this.offset.click.top>this.containment[3]){pageY=this.containment[3]+this.offset.click.top}}if(o.grid){var top=this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1];pageY=this.containment?(!(top-this.offset.click.top<this.containment[1]||top-this.offset.click.top>this.containment[3])?top:(!(top-this.offset.click.top<this.containment[1])?top-o.grid[1]:top+o.grid[1])):top;var left=this.originalPageX+Math.round((pageX-this.originalPageX)/o.grid[0])*o.grid[0];pageX=this.containment?(!(left-this.offset.click.left<this.containment[0]||left-this.offset.click.left>this.containment[2])?left:(!(left-this.offset.click.left<this.containment[0])?left-o.grid[0]:left+o.grid[0])):left}}return{top:(pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+($.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(scrollIsRootNode?0:scroll.scrollTop())))),left:(pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+($.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(type,event,ui){ui=ui||this._uiHash();$.ui.plugin.call(this,type,[event,ui]);if(type=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return $.widget.prototype._trigger.call(this,type,event,ui)},plugins:{},_uiHash:function(event){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,offset:this.positionAbs}}}));$.extend($.ui.draggable,{version:"1.7",eventPrefix:"drag",defaults:{addClasses:true,appendTo:"parent",axis:false,cancel:":input,option",connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,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}});$.ui.plugin.add("draggable","connectToSortable",{start:function(event,ui){var inst=$(this).data("draggable"),o=inst.options,uiSortable=$.extend({},ui,{item:inst.element});inst.sortables=[];$(o.connectToSortable).each(function(){var sortable=$.data(this,"sortable");if(sortable&&!sortable.options.disabled){inst.sortables.push({instance:sortable,shouldRevert:sortable.options.revert});sortable._refreshItems();sortable._trigger("activate",event,uiSortable)}})},stop:function(event,ui){var inst=$(this).data("draggable"),uiSortable=$.extend({},ui,{item:inst.element});$.each(inst.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;inst.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(event);this.instance.options.helper=this.instance.options._helper;if(inst.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",event,uiSortable)}})},drag:function(event,ui){var inst=$(this).data("draggable"),self=this;var checkPos=function(o){var dyClick=this.offset.click.top,dxClick=this.offset.click.left;var helperTop=this.positionAbs.top,helperLeft=this.positionAbs.left;var itemHeight=o.height,itemWidth=o.width;var itemTop=o.top,itemLeft=o.left;return $.ui.isOver(helperTop+dyClick,helperLeft+dxClick,itemTop,itemLeft,itemHeight,itemWidth)};$.each(inst.sortables,function(i){this.instance.positionAbs=inst.positionAbs;this.instance.helperProportions=inst.helperProportions;this.instance.offset.click=inst.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=$(self).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return ui.helper[0]};event.target=this.instance.currentItem[0];this.instance._mouseCapture(event,true);this.instance._mouseStart(event,true,true);this.instance.offset.click.top=inst.offset.click.top;this.instance.offset.click.left=inst.offset.click.left;this.instance.offset.parent.left-=inst.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=inst.offset.parent.top-this.instance.offset.parent.top;inst._trigger("toSortable",event);inst.dropped=this.instance.element;inst.currentItem=inst.element;this.instance.fromOutside=inst}if(this.instance.currentItem){this.instance._mouseDrag(event)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",event,this.instance._uiHash(this.instance));this.instance._mouseStop(event,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}inst._trigger("fromSortable",event);inst.dropped=false}}})}});$.ui.plugin.add("draggable","cursor",{start:function(event,ui){var t=$("body"),o=$(this).data("draggable").options;if(t.css("cursor")){o._cursor=t.css("cursor")}t.css("cursor",o.cursor)},stop:function(event,ui){var o=$(this).data("draggable").options;if(o._cursor){$("body").css("cursor",o._cursor)}}});$.ui.plugin.add("draggable","iframeFix",{start:function(event,ui){var o=$(this).data("draggable").options;$(o.iframeFix===true?"iframe":o.iframeFix).each(function(){$('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css($(this).offset()).appendTo("body")})},stop:function(event,ui){$("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});$.ui.plugin.add("draggable","opacity",{start:function(event,ui){var t=$(ui.helper),o=$(this).data("draggable").options;if(t.css("opacity")){o._opacity=t.css("opacity")}t.css("opacity",o.opacity)},stop:function(event,ui){var o=$(this).data("draggable").options;if(o._opacity){$(ui.helper).css("opacity",o._opacity)}}});$.ui.plugin.add("draggable","scroll",{start:function(event,ui){var i=$(this).data("draggable");if(i.scrollParent[0]!=document&&i.scrollParent[0].tagName!="HTML"){i.overflowOffset=i.scrollParent.offset()}},drag:function(event,ui){var i=$(this).data("draggable"),o=i.options,scrolled=false;if(i.scrollParent[0]!=document&&i.scrollParent[0].tagName!="HTML"){if(!o.axis||o.axis!="x"){if((i.overflowOffset.top+i.scrollParent[0].offsetHeight)-event.pageY<o.scrollSensitivity){i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop+o.scrollSpeed}else{if(event.pageY-i.overflowOffset.top<o.scrollSensitivity){i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop-o.scrollSpeed}}}if(!o.axis||o.axis!="y"){if((i.overflowOffset.left+i.scrollParent[0].offsetWidth)-event.pageX<o.scrollSensitivity){i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft+o.scrollSpeed}else{if(event.pageX-i.overflowOffset.left<o.scrollSensitivity){i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft-o.scrollSpeed}}}}else{if(!o.axis||o.axis!="x"){if(event.pageY-$(document).scrollTop()<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()-o.scrollSpeed)}else{if($(window).height()-(event.pageY-$(document).scrollTop())<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()+o.scrollSpeed)}}}if(!o.axis||o.axis!="y"){if(event.pageX-$(document).scrollLeft()<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed)}else{if($(window).width()-(event.pageX-$(document).scrollLeft())<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed)}}}}if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(i,event)}}});$.ui.plugin.add("draggable","snap",{start:function(event,ui){var i=$(this).data("draggable"),o=i.options;i.snapElements=[];$(o.snap.constructor!=String?(o.snap.items||":data(draggable)"):o.snap).each(function(){var $t=$(this);var $o=$t.offset();if(this!=i.element[0]){i.snapElements.push({item:this,width:$t.outerWidth(),height:$t.outerHeight(),top:$o.top,left:$o.left})}})},drag:function(event,ui){var inst=$(this).data("draggable"),o=inst.options;var d=o.snapTolerance;var x1=ui.offset.left,x2=x1+inst.helperProportions.width,y1=ui.offset.top,y2=y1+inst.helperProportions.height;for(var i=inst.snapElements.length-1;i>=0;i--){var l=inst.snapElements[i].left,r=l+inst.snapElements[i].width,t=inst.snapElements[i].top,b=t+inst.snapElements[i].height;if(!((l-d<x1&&x1<r+d&&t-d<y1&&y1<b+d)||(l-d<x1&&x1<r+d&&t-d<y2&&y2<b+d)||(l-d<x2&&x2<r+d&&t-d<y1&&y1<b+d)||(l-d<x2&&x2<r+d&&t-d<y2&&y2<b+d))){if(inst.snapElements[i].snapping){(inst.options.snap.release&&inst.options.snap.release.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})))}inst.snapElements[i].snapping=false;continue}if(o.snapMode!="inner"){var ts=Math.abs(t-y2)<=d;var bs=Math.abs(b-y1)<=d;var ls=Math.abs(l-x2)<=d;var rs=Math.abs(r-x1)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top-inst.margins.top}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top-inst.margins.top}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left-inst.margins.left}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left-inst.margins.left}}var first=(ts||bs||ls||rs);if(o.snapMode!="outer"){var ts=Math.abs(t-y1)<=d;var bs=Math.abs(b-y2)<=d;var ls=Math.abs(l-x1)<=d;var rs=Math.abs(r-x2)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top-inst.margins.top}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top-inst.margins.top}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left-inst.margins.left}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left-inst.margins.left}}if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first)){(inst.options.snap.snap&&inst.options.snap.snap.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})))}inst.snapElements[i].snapping=(ts||bs||ls||rs||first)}}});$.ui.plugin.add("draggable","stack",{start:function(event,ui){var o=$(this).data("draggable").options;var group=$.makeArray($(o.stack.group)).sort(function(a,b){return(parseInt($(a).css("zIndex"),10)||o.stack.min)-(parseInt($(b).css("zIndex"),10)||o.stack.min)});$(group).each(function(i){this.style.zIndex=o.stack.min+i});this[0].style.zIndex=o.stack.min+group.length}});$.ui.plugin.add("draggable","zIndex",{start:function(event,ui){var t=$(ui.helper),o=$(this).data("draggable").options;if(t.css("zIndex")){o._zIndex=t.css("zIndex")}t.css("zIndex",o.zIndex)},stop:function(event,ui){var o=$(this).data("draggable").options;if(o._zIndex){$(ui.helper).css("zIndex",o._zIndex)}}})})(jQuery);(function($){$.widget("ui.accordion",{_init:function(){var o=this.options,self=this;this.running=0;if(o.collapsible==$.ui.accordion.defaults.collapsible&&o.alwaysOpen!=$.ui.accordion.defaults.alwaysOpen){o.collapsible=!o.alwaysOpen}if(o.navigation){var current=this.element.find("a").filter(o.navigationFilter);if(current.length){if(current.filter(o.header).length){this.active=current}else{this.active=current.parent().parent().prev();current.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(o.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){$(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){$(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){$(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){$(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||o.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");$("<span/>").addClass("ui-icon "+o.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);if($.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(event){return self._keydown(event)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!$.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(o.event){this.headers.bind((o.event)+".accordion",function(event){return self._clickHandler.call(self,event,this)})}},destroy:function(){var o=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var contents=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(o.autoHeight||o.fillHeight){contents.css("height","")}},_setData:function(key,value){if(key=="alwaysOpen"){key="collapsible";value=!value}$.widget.prototype._setData.apply(this,arguments)},_keydown:function(event){var o=this.options,keyCode=$.ui.keyCode;if(o.disabled||event.altKey||event.ctrlKey){return }var length=this.headers.length;var currentIndex=this.headers.index(event.target);var toFocus=false;switch(event.keyCode){case keyCode.RIGHT:case keyCode.DOWN:toFocus=this.headers[(currentIndex+1)%length];break;case keyCode.LEFT:case keyCode.UP:toFocus=this.headers[(currentIndex-1+length)%length];break;case keyCode.SPACE:case keyCode.ENTER:return this._clickHandler({target:event.target},event.target)}if(toFocus){$(event.target).attr("tabIndex","-1");$(toFocus).attr("tabIndex","0");toFocus.focus();return false}return true},resize:function(){var o=this.options,maxHeight;if(o.fillSpace){if($.browser.msie){var defOverflow=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}maxHeight=this.element.parent().height();if($.browser.msie){this.element.parent().css("overflow",defOverflow)}this.headers.each(function(){maxHeight-=$(this).outerHeight()});var maxPadding=0;this.headers.next().each(function(){maxPadding=Math.max(maxPadding,$(this).innerHeight()-$(this).height())}).height(Math.max(0,maxHeight-maxPadding)).css("overflow","auto")}else{if(o.autoHeight){maxHeight=0;this.headers.next().each(function(){maxHeight=Math.max(maxHeight,$(this).outerHeight())}).height(maxHeight)}}},activate:function(index){var active=this._findActive(index)[0];this._clickHandler({target:active},active)},_findActive:function(selector){return selector?typeof selector=="number"?this.headers.filter(":eq("+selector+")"):this.headers.not(this.headers.not(selector)):selector===false?$([]):this.headers.filter(":eq(0)")},_clickHandler:function(event,target){var o=this.options;if(o.disabled){return false}if(!event.target&&o.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);this.active.next().addClass("ui-accordion-content-active");var toHide=this.active.next(),data={options:o,newHeader:$([]),oldHeader:o.active,newContent:$([]),oldContent:toHide},toShow=(this.active=$([]));this._toggle(toShow,toHide,data);return false}var clicked=$(event.currentTarget||target);var clickedIsActive=clicked[0]==this.active[0];if(this.running||(!o.collapsible&&clickedIsActive)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!clickedIsActive){clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);clicked.next().addClass("ui-accordion-content-active")}var toShow=clicked.next(),toHide=this.active.next(),data={options:o,newHeader:clickedIsActive&&o.collapsible?$([]):clicked,oldHeader:this.active,newContent:clickedIsActive&&o.collapsible?$([]):toShow.find("> *"),oldContent:toHide.find("> *")},down=this.headers.index(this.active[0])>this.headers.index(clicked[0]);this.active=clickedIsActive?$([]):clicked;this._toggle(toShow,toHide,data,clickedIsActive,down);return false},_toggle:function(toShow,toHide,data,clickedIsActive,down){var o=this.options,self=this;this.toShow=toShow;this.toHide=toHide;this.data=data;var complete=function(){if(!self){return }return self._completed.apply(self,arguments)};this._trigger("changestart",null,this.data);this.running=toHide.size()===0?toShow.size():toHide.size();if(o.animated){var animOptions={};if(o.collapsible&&clickedIsActive){animOptions={toShow:$([]),toHide:toHide,complete:complete,down:down,autoHeight:o.autoHeight||o.fillSpace}}else{animOptions={toShow:toShow,toHide:toHide,complete:complete,down:down,autoHeight:o.autoHeight||o.fillSpace}}if(!o.proxied){o.proxied=o.animated}if(!o.proxiedDuration){o.proxiedDuration=o.duration}o.animated=$.isFunction(o.proxied)?o.proxied(animOptions):o.proxied;o.duration=$.isFunction(o.proxiedDuration)?o.proxiedDuration(animOptions):o.proxiedDuration;var animations=$.ui.accordion.animations,duration=o.duration,easing=o.animated;if(!animations[easing]){animations[easing]=function(options){this.slide(options,{easing:easing,duration:duration||700})}}animations[easing](animOptions)}else{if(o.collapsible&&clickedIsActive){toShow.toggle()}else{toHide.hide();toShow.show()}complete(true)}toHide.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();toShow.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(cancel){var o=this.options;this.running=cancel?0:--this.running;if(this.running){return }if(o.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});$.extend($.ui.accordion,{version:"1.7",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(options,additions){options=$.extend({easing:"swing",duration:300},options,additions);if(!options.toHide.size()){options.toShow.animate({height:"show"},options);return }if(!options.toShow.size()){options.toHide.animate({height:"hide"},options);return }var overflow=options.toShow.css("overflow"),percentDone,showProps={},hideProps={},fxAttrs=["height","paddingTop","paddingBottom"],originalWidth;var s=options.toShow;originalWidth=s[0].style.width;s.width(parseInt(s.parent().width(),10)-parseInt(s.css("paddingLeft"),10)-parseInt(s.css("paddingRight"),10)-parseInt(s.css("borderLeftWidth"),10)-parseInt(s.css("borderRightWidth"),10));$.each(fxAttrs,function(i,prop){hideProps[prop]="hide";var parts=(""+$.css(options.toShow[0],prop)).match(/^([\d+-.]+)(.*)$/);showProps[prop]={value:parts[1],unit:parts[2]||"px"}});options.toShow.css({height:0,overflow:"hidden"}).show();options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate(hideProps,{step:function(now,settings){if(settings.prop=="height"){percentDone=(settings.now-settings.start)/(settings.end-settings.start)}options.toShow[0].style[settings.prop]=(percentDone*showProps[settings.prop].value)+showProps[settings.prop].unit},duration:options.duration,easing:options.easing,complete:function(){if(!options.autoHeight){options.toShow.css("height","")}options.toShow.css("width",originalWidth);options.toShow.css({overflow:overflow});options.complete()}})},bounceslide:function(options){this.slide(options,{easing:options.down?"easeOutBounce":"swing",duration:options.down?1000:200})},easeslide:function(options){this.slide(options,{easing:"easeinout",duration:700})}}})})(jQuery);(function($){$.widget("ui.slider",$.extend({},$.ui.mouse,{_init:function(){var self=this,o=this.options;this._keySliding=false;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");this.range=$([]);if(o.range){if(o.range===true){this.range=$("<div></div>");if(!o.values){o.values=[this._valueMin(),this._valueMin()]}if(o.values.length&&o.values.length!=2){o.values=[o.values[0],o.values[0]]}}else{this.range=$("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(o.range=="min"||o.range=="max"){this.range.addClass("ui-slider-range-"+o.range)}this.range.addClass("ui-widget-header")}if($(".ui-slider-handle",this.element).length==0){$('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(o.values&&o.values.length){while($(".ui-slider-handle",this.element).length<o.values.length){$('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=$(".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(event){event.preventDefault()}).hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}).focus(function(){$(".ui-slider .ui-state-focus").removeClass("ui-state-focus");$(this).addClass("ui-state-focus")}).blur(function(){$(this).removeClass("ui-state-focus")});this.handles.each(function(i){$(this).data("index.ui-slider-handle",i)});this.handles.keydown(function(event){var ret=true;var index=$(this).data("index.ui-slider-handle");if(self.options.disabled){return }switch(event.keyCode){case $.ui.keyCode.HOME:case $.ui.keyCode.END:case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:ret=false;if(!self._keySliding){self._keySliding=true;$(this).addClass("ui-state-active");self._start(event,index)}break}var curVal,newVal,step=self._step();if(self.options.values&&self.options.values.length){curVal=newVal=self.values(index)}else{curVal=newVal=self.value()}switch(event.keyCode){case $.ui.keyCode.HOME:newVal=self._valueMin();break;case $.ui.keyCode.END:newVal=self._valueMax();break;case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:if(curVal==self._valueMax()){return }newVal=curVal+step;break;case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:if(curVal==self._valueMin()){return }newVal=curVal-step;break}self._slide(event,index,newVal);return ret}).keyup(function(event){var index=$(this).data("index.ui-slider-handle");if(self._keySliding){self._stop(event,index);self._change(event,index);self._keySliding=false;$(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(event){var o=this.options;if(o.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var position={x:event.pageX,y:event.pageY};var normValue=this._normValueFromMouse(position);var distance=this._valueMax()+1,closestHandle;var self=this,index;this.handles.each(function(i){var thisDistance=Math.abs(normValue-self.values(i));if(distance>thisDistance){distance=thisDistance;closestHandle=$(this);index=i}});if(o.range==true&&this.values(1)==o.min){closestHandle=$(this.handles[++index])}this._start(event,index);self._handleIndex=index;closestHandle.addClass("ui-state-active").focus();var offset=closestHandle.offset();var mouseOverHandle=!$(event.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=mouseOverHandle?{left:0,top:0}:{left:event.pageX-offset.left-(closestHandle.width()/2),top:event.pageY-offset.top-(closestHandle.height()/2)-(parseInt(closestHandle.css("borderTopWidth"),10)||0)-(parseInt(closestHandle.css("borderBottomWidth"),10)||0)+(parseInt(closestHandle.css("marginTop"),10)||0)};normValue=this._normValueFromMouse(position);this._slide(event,index,normValue);return true},_mouseStart:function(event){return true},_mouseDrag:function(event){var position={x:event.pageX,y:event.pageY};var normValue=this._normValueFromMouse(position);this._slide(event,this._handleIndex,normValue);return false},_mouseStop:function(event){this.handles.removeClass("ui-state-active");this._stop(event,this._handleIndex);this._change(event,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(position){var pixelTotal,pixelMouse;if("horizontal"==this.orientation){pixelTotal=this.elementSize.width;pixelMouse=position.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{pixelTotal=this.elementSize.height;pixelMouse=position.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var percentMouse=(pixelMouse/pixelTotal);if(percentMouse>1){percentMouse=1}if(percentMouse<0){percentMouse=0}if("vertical"==this.orientation){percentMouse=1-percentMouse}var valueTotal=this._valueMax()-this._valueMin(),valueMouse=percentMouse*valueTotal,valueMouseModStep=valueMouse%this.options.step,normValue=this._valueMin()+valueMouse-valueMouseModStep;if(valueMouseModStep>(this.options.step/2)){normValue+=this.options.step}return parseFloat(normValue.toFixed(5))},_start:function(event,index){this._trigger("start",event,this._uiHash(index))},_slide:function(event,index,newVal){var handle=this.handles[index];if(this.options.values&&this.options.values.length){var otherVal=this.values(index?0:1);if((index==0&&newVal>=otherVal)||(index==1&&newVal<=otherVal)){newVal=otherVal}if(newVal!=this.values(index)){var newValues=this.values();newValues[index]=newVal;var allowed=this._trigger("slide",event,this._uiHash(index,newVal,newValues));var otherVal=this.values(index?0:1);if(allowed!==false){this.values(index,newVal,(event.type=="mousedown"&&this.options.animate),true)}}}else{if(newVal!=this.value()){var allowed=this._trigger("slide",event,this._uiHash(index,newVal));if(allowed!==false){this._setData("value",newVal,(event.type=="mousedown"&&this.options.animate))}}}},_stop:function(event,index){this._trigger("stop",event,this._uiHash(index))},_change:function(event,index){this._trigger("change",event,this._uiHash(index))},value:function(newValue){if(arguments.length){this._setData("value",newValue);this._change(null,0)}return this._value()},values:function(index,newValue,animated,noPropagation){if(arguments.length>1){this.options.values[index]=newValue;this._refreshValue(animated);if(!noPropagation){this._change(null,index)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(index)}else{return this.value()}}else{return this._values()}},_setData:function(key,value,animated){$.widget.prototype._setData.apply(this,arguments);switch(key){case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(animated);break;case"value":this._refreshValue(animated);break}},_step:function(){var step=this.options.step;return step},_value:function(){var val=this.options.value;if(val<this._valueMin()){val=this._valueMin()}if(val>this._valueMax()){val=this._valueMax()}return val},_values:function(index){if(arguments.length){var val=this.options.values[index];if(val<this._valueMin()){val=this._valueMin()}if(val>this._valueMax()){val=this._valueMax()}return val}else{return this.options.values}},_valueMin:function(){var valueMin=this.options.min;return valueMin},_valueMax:function(){var valueMax=this.options.max;return valueMax},_refreshValue:function(animate){var oRange=this.options.range,o=this.options,self=this;if(this.options.values&&this.options.values.length){var vp0,vp1;this.handles.each(function(i,j){var valPercent=(self.values(i)-self._valueMin())/(self._valueMax()-self._valueMin())*100;var _set={};_set[self.orientation=="horizontal"?"left":"bottom"]=valPercent+"%";$(this).stop(1,1)[animate?"animate":"css"](_set,o.animate);if(self.options.range===true){if(self.orientation=="horizontal"){(i==0)&&self.range.stop(1,1)[animate?"animate":"css"]({left:valPercent+"%"},o.animate);(i==1)&&self.range[animate?"animate":"css"]({width:(valPercent-lastValPercent)+"%"},{queue:false,duration:o.animate})}else{(i==0)&&self.range.stop(1,1)[animate?"animate":"css"]({bottom:(valPercent)+"%"},o.animate);(i==1)&&self.range[animate?"animate":"css"]({height:(valPercent-lastValPercent)+"%"},{queue:false,duration:o.animate})}}lastValPercent=valPercent})}else{var value=this.value(),valueMin=this._valueMin(),valueMax=this._valueMax(),valPercent=valueMax!=valueMin?(value-valueMin)/(valueMax-valueMin)*100:0;var _set={};_set[self.orientation=="horizontal"?"left":"bottom"]=valPercent+"%";this.handle.stop(1,1)[animate?"animate":"css"](_set,o.animate);(oRange=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[animate?"animate":"css"]({width:valPercent+"%"},o.animate);(oRange=="max")&&(this.orientation=="horizontal")&&this.range[animate?"animate":"css"]({width:(100-valPercent)+"%"},{queue:false,duration:o.animate});(oRange=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[animate?"animate":"css"]({height:valPercent+"%"},o.animate);(oRange=="max")&&(this.orientation=="vertical")&&this.range[animate?"animate":"css"]({height:(100-valPercent)+"%"},{queue:false,duration:o.animate})}},_uiHash:function(index,value,values){var multiple=this.options.values&&this.options.values.length;return{handle:this.handles[index],value:value||(multiple?this.values(index):this.value()),values:values||(multiple&&this.values())}}}));$.extend($.ui.slider,{getter:"value values",version:"1.7",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);(function($){$.each({focus:"focusin",blur:"focusout"},function(original,fix){$.event.special[fix]={setup:function(){if($.browser.msie){return false}this.addEventListener(original,$.event.special[fix].handler,true)},teardown:function(){if($.browser.msie){return false}this.removeEventListener(original,$.event.special[fix].handler,true)},handler:function(e){arguments[0]=$.event.fix(e);arguments[0].type=fix;return $.event.handle.apply(this,arguments)}}});$.extend($.fn,{delegate:function(type,delegate,handler){return this.bind(type,function(event){var target=$(event.target);if(target.is(delegate)){return handler.apply(target,arguments)}})},triggerEvent:function(type,target){return this.triggerHandler(type,[jQuery.event.fix({type:type,target:target})])}})})(jQuery);var fluid_1_1=fluid_1_1||{};var fluid=fluid||fluid_1_1;(function($,fluid){fluid.version="Infusion 1.1";fluid.fail=function(message){fluid.setLogging(true);fluid.log(message.message?message.message:message);throw new Error(message)};fluid.wrap=function(obj){return((!obj||obj.jquery)?obj:$(obj))};fluid.unwrap=function(obj){return obj&&obj.jquery&&obj.length===1?obj[0]:obj};fluid.keyForValue=function(obj,value){for(var key in obj){if(obj[key]===value){return key}}return null};fluid.findKeyInObject=fluid.keyForValue;fluid.clear=function(target){if(target instanceof Array){target.length=0}else{for(var i in target){delete target[i]}}};fluid.container=function(containerSpec){var container=containerSpec;if(typeof containerSpec==="string"||containerSpec.nodeType&&(containerSpec.nodeType===1||containerSpec.nodeType===9)){container=$(containerSpec)}if(!container||!container.jquery||container.length!==1){if(typeof (containerSpec)!=="string"){containerSpec=container.selector}fluid.fail({name:"NotOne",message:"A single container element was not found for selector "+containerSpec})}return container};var defaultsStore={};var globalDefaultsStore={};fluid.defaults=function(){var offset=0;var store=defaultsStore;if(typeof arguments[0]==="boolean"){store=globalDefaultsStore;offset=1}var componentName=arguments[offset];var defaultsObject=arguments[offset+1];if(defaultsObject!==undefined){store[componentName]=defaultsObject;return defaultsObject}return store[componentName]};fluid.createDomBinder=function(container,selectors){var cache={},that={};function cacheKey(name,thisContainer){return $.data(fluid.unwrap(thisContainer))+"-"+name}function record(name,thisContainer,result){cache[cacheKey(name,thisContainer)]=result}that.locate=function(name,localContainer){var selector,thisContainer,togo;selector=selectors[name];thisContainer=localContainer?localContainer:container;if(!thisContainer){fluid.fail("DOM binder invoked for selector "+name+" without container")}if(!selector){return thisContainer}if(typeof (selector)==="function"){togo=$(selector.call(null,fluid.unwrap(thisContainer)))}else{togo=$(selector,thisContainer)}if(togo.get(0)===document){togo=[]}if(!togo.selector){togo.selector=selector;togo.context=thisContainer}togo.selectorName=name;record(name,thisContainer,togo);return togo};that.fastLocate=function(name,localContainer){var thisContainer=localContainer?localContainer:container;var key=cacheKey(name,thisContainer);var togo=cache[key];return togo?togo:that.locate(name,localContainer)};that.clear=function(){cache={}};that.refresh=function(names,localContainer){var thisContainer=localContainer?localContainer:container;if(typeof names==="string"){names=[names]}if(thisContainer.length===undefined){thisContainer=[thisContainer]}for(var i=0;i<names.length;++i){for(var j=0;j<thisContainer.length;++j){that.locate(names[i],thisContainer[j])}}};return that};fluid.mergeListeners=function(events,listeners){if(listeners){for(var key in listeners){var value=listeners[key];var keydot=key.indexOf(".");var namespace;if(keydot!==-1){namespace=key.substring(keydot+1);key=key.substring(0,keydot)}if(!events[key]){events[key]=fluid.event.getEventFirer()}var firer=events[key];if(typeof (value)==="function"){firer.addListener(value,namespace)}else{if(value&&typeof value.length==="number"){for(var i=0;i<value.length;++i){firer.addListener(value[i],namespace)}}}}}};fluid.instantiateFirers=function(that,options){that.events={};if(options.events){for(var event in options.events){var eventType=options.events[event];that.events[event]=fluid.event.getEventFirer(eventType==="unicast",eventType==="preventable")}}fluid.mergeListeners(that.events,options.listeners)};fluid.mergeComponentOptions=function(that,componentName,userOptions){var defaults=fluid.defaults(componentName);that.options=fluid.merge(defaults?defaults.mergePolicy:null,{},defaults,userOptions)};fluid.expectFilledSelector=function(result,message){if(result&&result.length===0&&result.jquery){fluid.fail(message+': selector "'+result.selector+'" with name '+result.selectorName+" returned no results in context "+fluid.dumpEl(result.context))}};fluid.initView=function(componentName,container,userOptions){var that={};fluid.expectFilledSelector(container,'Error instantiating component with name "'+componentName);fluid.mergeComponentOptions(that,componentName,userOptions);if(container){that.container=fluid.container(container);fluid.initDomBinder(that)}fluid.instantiateFirers(that,that.options);return that};fluid.COMPONENT_OPTIONS={};fluid.VALUE={};fluid.emptySubcomponent=function(options){var that={};options=$.makeArray(options);for(var i=0;i<options.length;++i){that[options[i]]=function(){}}return that};fluid.initSubcomponent=function(that,className,args){return fluid.initSubcomponents(that,className,args)[0]};fluid.initSubcomponents=function(that,className,args){var entry=that.options[className];if(!entry){return }var entries=$.makeArray(entry);var optindex=-1;var togo=[];args=$.makeArray(args);for(var i=0;i<args.length;++i){if(args[i]===fluid.COMPONENT_OPTIONS){optindex=i}}for(i=0;i<entries.length;++i){entry=entries[i];if(optindex!==-1&&entry.options){args[optindex]=entry.options}if(typeof (entry)!=="function"){var entryType=typeof (entry)==="string"?entry:entry.type;var globDef=fluid.defaults(true,entryType);fluid.merge("reverse",that.options,globDef);togo[i]=entryType==="fluid.emptySubcomponent"?fluid.emptySubcomponent(entry.options):fluid.invokeGlobalFunction(entryType,args,{fluid:fluid})}else{togo[i]=entry.apply(null,args)}var returnedOptions=togo[i]?togo[i].returnedOptions:null;if(returnedOptions){fluid.merge(that.options.mergePolicy,that.options,returnedOptions);if(returnedOptions.listeners){fluid.mergeListeners(that.events,returnedOptions.listeners)}}}return togo};fluid.initDomBinder=function(that){that.dom=fluid.createDomBinder(that.container,that.options.selectors);that.locate=that.dom.locate};fluid.isPrimitive=function(value){var valueType=typeof (value);return !value||valueType==="string"||valueType==="boolean"||valueType==="number"};function mergeImpl(policy,basePath,target,source){var thisPolicy=policy&&typeof (policy)!=="string"?policy[basePath]:policy;if(typeof (thisPolicy)==="function"){thisPolicy.apply(null,target,source);return target}if(thisPolicy==="replace"){fluid.clear(target)}for(var name in source){var path=(basePath?basePath+".":"")+name;var thisTarget=target[name];var thisSource=source[name];var primitiveTarget=fluid.isPrimitive(thisTarget);if(thisSource!==undefined){if(thisSource!==null&&typeof thisSource==="object"&&!thisSource.nodeType&&!thisSource.jquery&&thisSource!==fluid.VALUE){if(primitiveTarget){target[name]=thisTarget=thisSource instanceof Array?[]:{}}mergeImpl(policy,path,thisTarget,thisSource)}else{if(thisTarget===null||thisTarget===undefined||thisPolicy!=="reverse"){target[name]=thisSource}}}}return target}fluid.merge=function(policy,target){var path="";for(var i=2;i<arguments.length;++i){var source=arguments[i];if(source!==null&&source!==undefined){mergeImpl(policy,path,target,source)}}if(policy&&typeof (policy)!=="string"){for(var key in policy){var elrh=policy[key];if(typeof (elrh)==="string"&&elrh!=="replace"){var oldValue=fluid.model.getBeanValue(target,key);if(oldValue===null||oldValue===undefined){var value=fluid.model.getBeanValue(target,elrh);fluid.model.setBeanValue(target,key,value)}}}}return target};fluid.copy=function(tocopy){if(fluid.isPrimitive(tocopy)){return tocopy}return $.extend(true,typeof (tocopy.length)==="number"?[]:{},tocopy)};fluid.invokeGlobalFunction=function(functionPath,args,environment){var func=fluid.model.getBeanValue(window,functionPath,environment);if(!func){fluid.fail("Error invoking global function: "+functionPath+" could not be located")}else{return func.apply(null,args)}};fluid.event={};var fluid_guid=1;fluid.event.getEventFirer=function(unicast,preventable){var log=fluid.log;var listeners={};return{addListener:function(listener,namespace,predicate){if(!listener){return }if(unicast){namespace="unicast"}if(!namespace){if(!listener.$$guid){listener.$$guid=fluid_guid++}namespace=listener.$$guid}listeners[namespace]={listener:listener,predicate:predicate}},removeListener:function(listener){if(typeof (listener)==="string"){delete listeners[listener]}else{if(typeof (listener)==="object"&&listener.$$guid){delete listeners[listener.$$guid]}}},fire:function(){for(var i in listeners){var lisrec=listeners[i];var listener=lisrec.listener;if(lisrec.predicate&&!lisrec.predicate(listener,arguments)){continue}try{var ret=listener.apply(null,arguments);if(preventable&&ret===false){return false}}catch(e){log("FireEvent received exception "+e.message+" e "+e+" firing to listener "+i);throw (e)}}}}};fluid.model={};fluid.model.copyModel=function(target,source){fluid.clear(target);$.extend(true,target,source)};fluid.model.parseEL=function(EL){return EL.toString().split(".")};fluid.model.composePath=function(prefix,suffix){return prefix===""?suffix:prefix+"."+suffix};fluid.model.setBeanValue=function(root,EL,newValue){var segs=fluid.model.parseEL(EL);for(var i=0;i<segs.length-1;i+=1){if(!root[segs[i]]){root[segs[i]]={}}root=root[segs[i]]}root[segs[segs.length-1]]=newValue};fluid.model.getBeanValue=function(root,EL,environment){if(EL===""||EL===null||EL===undefined){return root}var segs=fluid.model.parseEL(EL);for(var i=0;i<segs.length;++i){if(!root){return root}var segment=segs[i];if(environment&&environment[segment]){root=environment[segment];environment=null}else{root=root[segment]}}return root};var logging;fluid.setLogging=function(enabled){if(typeof enabled==="boolean"){logging=enabled}else{logging=false}};fluid.log=function(str){if(logging){str=new Date().toTimeString()+":  "+str;if(typeof (console)!=="undefined"){if(console.debug){console.debug(str)}else{console.log(str)}}else{if(typeof (YAHOO)!=="undefined"){YAHOO.log(str)}else{if(typeof (opera)!=="undefined"){opera.postError(str)}}}}};fluid.dumpEl=function(element){var togo;if(!element){return"null"}if(element.nodeType===3||element.nodeType===8){return"[data: "+element.data+"]"}if(element.nodeType===9){return"[document: location "+element.location+"]"}if(!element.nodeType&&typeof element.length==="number"){togo="[";for(var i=0;i<element.length;++i){togo+=fluid.dumpEl(element[i]);if(i<element.length-1){togo+=", "}}return togo+"]"}element=$(element);togo=element.get(0).tagName;if(element.attr("id")){togo+="#"+element.attr("id")}if(element.attr("class")){togo+="."+element.attr("class")}return togo};fluid.findAncestor=function(element,test){element=fluid.unwrap(element);while(element){if(test(element)){return element}element=element.parentNode}};fluid.jById=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var element=fluid.byId(id,dokkument);var togo=element?$(element):[];togo.selector="#"+id;togo.context=dokkument;return togo};fluid.byId=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var el=dokkument.getElementById(id);if(el){if(el.getAttribute("id")!==id){fluid.fail("Problem in document structure - picked up element "+fluid.dumpEl(el)+" for id "+id+" without this id - most likely the element has a name which conflicts with this id")}return el}else{return null}};fluid.getId=function(element){return fluid.unwrap(element).getAttribute("id")};fluid.allocateSimpleId=function(element){element=fluid.unwrap(element);if(!element.id){element.id="fluid-id-"+(fluid_guid++)}return element.id};fluid.transform=function(list){var togo=[];for(var i=0;i<list.length;++i){var transit=list[i];for(var j=0;j<arguments.length-1;++j){transit=arguments[j+1](transit,i)}togo[togo.length]=transit}return togo};fluid.find=function(list,fn,deflt){for(var i=0;i<list.length;++i){var transit=fn(list[i],i);if(transit!==null&&transit!==undefined){return transit}}return deflt};fluid.accumulate=function(list,fn,arg){for(var i=0;i<list.length;++i){arg=fn(list[i],arg,i)}return arg};fluid.remove_if=function(list,fn){for(var i=0;i<list.length;++i){if(fn(list[i],i)){list.splice(i,1);--i}}return list};fluid.formatMessage=function(messageString,args){if(!args){return messageString}if(typeof (args)==="string"){args=[args]}for(var i=0;i<args.length;++i){messageString=messageString.replace("{"+i+"}",args[i])}return messageString};fluid.messageLocator=function(messageBase){return function(messagecodes,args){if(typeof (messagecodes)==="string"){messagecodes=[messagecodes]}for(var i=0;i<messagecodes.length;++i){var code=messagecodes[i];var message=messageBase[code];if(message===undefined){continue}return fluid.formatMessage(message,args)}return"[Message string for key "+messagecodes[0]+" not found]"}};fluid.stringTemplate=function(template,values){var newString=template;for(var key in values){if(values.hasOwnProperty(key)){var searchStr="%"+key;newString=newString.replace(searchStr,values[key])}}return newString}})(jQuery,fluid_1_1);var fluid_1_1=fluid_1_1||{};(function($,fluid){fluid.dom=fluid.dom||{};var getNextNode=function(iterator){if(iterator.node.firstChild){iterator.node=iterator.node.firstChild;iterator.depth+=1;return iterator}while(iterator.node){if(iterator.node.nextSibling){iterator.node=iterator.node.nextSibling;return iterator}iterator.node=iterator.node.parentNode;iterator.depth-=1}return iterator};fluid.dom.iterateDom=function(node,acceptor,allNodes){var currentNode={node:node,depth:0};var prevNode=node;var condition;while(currentNode.node!==null&&currentNode.depth>=0&&currentNode.depth<fluid.dom.iterateDom.DOM_BAIL_DEPTH){condition=null;if(currentNode.node.nodeType===1||allNodes){condition=acceptor(currentNode.node,currentNode.depth)}if(condition){if(condition==="delete"){currentNode.node.parentNode.removeChild(currentNode.node);currentNode.node=prevNode}else{if(condition==="stop"){return currentNode.node}}}prevNode=currentNode.node;currentNode=getNextNode(currentNode)}};fluid.dom.iterateDom.DOM_BAIL_DEPTH=256;fluid.dom.computeAbsolutePosition=function(element){var curleft=0,curtop=0;if(element.offsetParent){do{curleft+=element.offsetLeft;curtop+=element.offsetTop;element=element.offsetParent}while(element);return[curleft,curtop]}};fluid.dom.isContainer=function(container,containee){for(;containee;containee=containee.parentNode){if(container===containee){return true}}return false};fluid.dom.insertAfter=function(newChild,refChild){var nextSib=refChild.nextSibling;if(!nextSib){refChild.parentNode.appendChild(newChild)}else{refChild.parentNode.insertBefore(newChild,nextSib)}};fluid.dom.isWhitespaceNode=function(node){return !(/[^\t\n\r ]/.test(node.data))};fluid.dom.isIgnorableNode=function(node){return(node.nodeType===8)||((node.nodeType===3)&&fluid.dom.isWhitespaceNode(node))};fluid.dom.getElementText=function(element){var nodes=element.childNodes;var text="";for(var i=0;i<nodes.length;++i){var child=nodes[i];if(child.nodeType==3){text=text+child.nodeValue}}return text};fluid.dom.cleanseScripts=function(element){var cleansed=$.data(element,fluid.dom.cleanseScripts.MARKER);if(!cleansed){fluid.dom.iterateDom(element,function(node){return node.tagName.toLowerCase()==="script"?"delete":null});$.data(element,fluid.dom.cleanseScripts.MARKER,true)}};fluid.dom.cleanseScripts.MARKER="fluid-scripts-cleansed"})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){fluid.VALUE={};fluid.BINDING_ROOT_KEY="fluid-binding-root";fluid.findData=function(elem,name){while(elem){var data=$.data(elem,name);if(data){return data}elem=elem.parentNode}};fluid.bindFossils=function(node,data,fossils){$.data(node,fluid.BINDING_ROOT_KEY,{data:data,fossils:fossils})};fluid.findForm=function(node){return fluid.findAncestor(node,function(element){return element.nodeName.toLowerCase()==="form"})};fluid.value=function(nodeIn,newValue){var node=fluid.unwrap(nodeIn);var multiple=false;if(node.nodeType===undefined&&node.length>1){node=node[0];multiple=true}var jNode=$(node);if("input"!==node.nodeName.toLowerCase()||!/radio|checkbox/.test(node.type)){return $(node).val(newValue)}var name=node.name;if(name===undefined){fluid.fail("Cannot acquire value from node "+fluid.dumpEl(node)+" which does not have name attribute set")}var elements;if(multiple){elements=nodeIn}else{var elements=document.getElementsByName(name);var scope=fluid.findForm(node);elements=$.grep(elements,function(element){if(element.name!==name){return false}return !scope||fluid.dom.isContainer(scope,element)})}if(newValue!==undefined){if(typeof (newValue)==="boolean"){newValue=(newValue?"true":"false")}$.each(elements,function(){this.checked=(newValue instanceof Array?$.inArray(this.value,newValue)!==-1:newValue===this.value)})}else{var checked=$.map(elements,function(element){return element.checked?element.value:null});return node.type==="radio"?checked[0]:checked}};fluid.applyChange=function(node,newValue,applier){node=fluid.unwrap(node);if(newValue===undefined){newValue=fluid.value(node)}if(node.nodeType===undefined&&node.length>0){node=node[0]}var root=fluid.findData(node,fluid.BINDING_ROOT_KEY);if(!root){fluid.fail("Bound data could not be discovered in any node above "+fluid.dumpEl(node))}var name=node.name;var fossil=root.fossils[name];if(!fossil){fluid.fail("No fossil discovered for name "+name+" in fossil record above "+fluid.dumpEl(node))}if(typeof (fossil.oldvalue)==="boolean"){newValue=newValue[0]?true:false}var EL=root.fossils[name].EL;if(applier){applier.fireChangeRequest({path:EL,value:newValue,source:node.id})}else{fluid.model.setBeanValue(root.data,EL,newValue)}};fluid.pathUtil={};var getPathSegmentImpl=function(accept,path,i){var segment=null;if(accept){segment=""}var escaped=false;var limit=path.length;for(;i<limit;++i){var c=path.charAt(i);if(!escaped){if(c==="."){break}else{if(c==="\\"){escaped=true}else{if(segment!==null){segment+=c}}}}else{escaped=false;if(segment!==null){accept+=c}}}if(segment!==null){accept[0]=segment}return i};var globalAccept=[];fluid.pathUtil.getPathSegment=function(path,i){getPathSegmentImpl(globalAccept,path,i);return globalAccept[0]};fluid.pathUtil.getHeadPath=function(path){return fluid.pathUtil.getPathSegment(path,0)};fluid.pathUtil.getFromHeadPath=function(path){var firstdot=getPathSegmentImpl(null,path,0);return firstdot===path.length?null:path.substring(firstdot+1)};function lastDotIndex(path){return path.lastIndexOf(".")}fluid.pathUtil.getToTailPath=function(path){var lastdot=lastDotIndex(path);return lastdot==-1?null:path.substring(0,lastdot)};fluid.pathUtil.getTailPath=function(path){var lastdot=lastDotIndex(path);return fluid.pathUtil.getPathSegment(path,lastdot+1)};var composeSegment=function(prefix,toappend){for(var i=0;i<toappend.length;++i){var c=toappend.charAt(i);if(c==="."||c==="\\"||c==="}"){prefix+="\\"}prefix+=c}return prefix};fluid.pathUtil.composePath=function(prefix,suffix){if(prefix.length!==0){prefix+="."}return composeSegment(prefix,suffix)};fluid.pathUtil.matchPath=function(spec,path){var togo="";while(true){if(!spec){break}if(!path){return null}var spechead=fluid.pathUtil.getHeadPath(spec);var pathhead=fluid.pathUtil.getHeadPath(path);if(spechead!=="*"&&spechead!==pathhead){return null}togo=fluid.pathUtil.composePath(togo,pathhead);spec=fluid.pathUtil.getFromHeadPath(spec);path=fluid.pathUtil.getFromHeadPath(path)}return togo};fluid.model.applyChangeRequest=function(model,request){if(request.type==="ADD"){fluid.model.setBeanValue(model,request.path,request.value)}else{if(request.type==="DELETE"){var totail=fluid.pathUtil.getToTailPath(request.path);var tail=fluid.pathUtil.getTailPath(request.path);var penult=fluid.model.getBeanValue(model,penult);delete penult[tail]}}};fluid.makeChangeApplier=function(model){var baseEvents={guards:fluid.event.getEventFirer(false,true),modelChanged:fluid.event.getEventFirer(false,false)};var that={model:model};function makePredicate(listenerMember,requestIndex){return function(listener,args){var changeRequest=args[requestIndex];return fluid.pathUtil.matchPath(listener[listenerMember],changeRequest.path)}}function adaptListener(that,name,listenerMember,requestIndex){var predicate=makePredicate(listenerMember,requestIndex);that[name]={addListener:function(pathSpec,listener,namespace){listener[listenerMember]=pathSpec;baseEvents[name].addListener(listener,namespace,predicate)},removeListener:function(listener){baseEvents[name].removeListener(listener)}}}adaptListener(that,"guards","guardedPathSpec",1);adaptListener(that,"modelChanged","triggerPathSpec",2);that.fireChangeRequest=function(changeRequest){if(!changeRequest.type){changeRequest.type="ADD"}var prevent=baseEvents.guards.fire(model,changeRequest);if(prevent===false){return }var oldModel={};fluid.model.copyModel(oldModel,model);fluid.model.applyChangeRequest(model,changeRequest);baseEvents.modelChanged.fire(model,oldModel,changeRequest)};that.requestChange=function(path,value,type){var changeRequest={path:path,value:value,type:type};that.fireChangeRequest(changeRequest)};return that};fluid.makeSuperApplier=function(){var subAppliers=[];var that={};that.addSubApplier=function(path,subApplier){subAppliers.push({path:path,subApplier:subApplier})};that.fireChangeRequest=function(request){for(var i=0;i<subAppliers.length;++i){var path=subAppliers[i].path;if(request.path.indexOf(path)===0){var subpath=request.path.substring(path.length+1);var subRequest=fluid.copy(request);subRequest.path=subpath;subAppliers[i].subApplier.fireChangeRequest(subRequest)}}};return that};fluid.attachModel=function(baseModel,path,model){var segs=fluid.model.parseEL(path);for(var i=0;i<segs.length-1;++i){var seg=segs[i];var subModel=baseModel[seg];if(!subModel){baseModel[seg]=subModel={}}baseModel=subModel}baseModel[segs[segs.length-1]]=model};fluid.assembleModel=function(modelSpec){var model={};var superApplier=fluid.makeSuperApplier();var togo={model:model,applier:superApplier};for(path in modelSpec){var rec=modelSpec[path];fluid.attachModel(model,path,rec.model);if(rec.applier){superApplier.addSubApplier(path,rec.applier)}}return togo}})(jQuery,fluid_1_1);var fluid_1_1=fluid_1_1||{};var fluid=fluid||fluid_1_1;(function($,fluid){fluid.thatistBridge=function(name,peer){var togo=function(funcname){var segs=funcname.split(".");var move=peer;for(var i=0;i<segs.length;++i){move=move[segs[i]]}var args=[this];if(arguments.length===2){args=args.concat($.makeArray(arguments[1]))}var ret=move.apply(null,args);this.that=function(){return ret};var type=typeof (ret);return !ret||type==="string"||type==="number"||type==="boolean"||ret&&ret.length!==undefined?ret:this};$.fn[name]=togo;return togo};fluid.thatistBridge("fluid",fluid);fluid.thatistBridge("fluid_1_1",fluid_1_1);var NAMESPACE_KEY="fluid-keyboard-a11y";var getData=function(target,key){var data=$(target).data(NAMESPACE_KEY);return data?data[key]:undefined};var setData=function(target,key,value){$(target).each(function(){var data=$.data(this,NAMESPACE_KEY)||{};data[key]=value;$.data(this,NAMESPACE_KEY,data)})};var lastFocusedElement="disabled";if($.event.special.focusin){lastFocusedElement=null;$(document).bind("focusin",function(event){lastFocusedElement=event.target})}fluid.getLastFocusedElement=function(){if(lastFocusedElement==="disabled"){fluid.fail("Focus manager not enabled - please include jquery.delegate.js or equivalent for support of 'focusin' event")}return lastFocusedElement};var normalizeTabindexName=function(){return $.browser.msie?"tabIndex":"tabindex"};var canHaveDefaultTabindex=function(elements){if(elements.length<=0){return false}return $(elements[0]).is("a, input, button, select, area, textarea, object")};var getValue=function(elements){if(elements.length<=0){return undefined}if(!fluid.tabindex.hasAttr(elements)){return canHaveDefaultTabindex(elements)?Number(0):undefined}var value=elements.attr(normalizeTabindexName());return Number(value)};var setValue=function(elements,toIndex){return elements.each(function(i,item){$(item).attr(normalizeTabindexName(),toIndex)})};fluid.tabindex=function(target,toIndex){target=$(target);if(toIndex!==null&&toIndex!==undefined){return setValue(target,toIndex)}else{return getValue(target)}};fluid.tabindex.remove=function(target){target=$(target);return target.each(function(i,item){$(item).removeAttr(normalizeTabindexName())})};fluid.tabindex.hasAttr=function(target){target=$(target);if(target.length<=0){return false}var togo=target.map(function(){var attributeNode=this.getAttributeNode(normalizeTabindexName());return attributeNode?attributeNode.specified:false});return togo.length===1?togo[0]:togo};fluid.tabindex.has=function(target){target=$(target);return fluid.tabindex.hasAttr(target)||canHaveDefaultTabindex(target)};var ENABLEMENT_KEY="enablement";fluid.enabled=function(target,state){target=$(target);if(state===undefined){return getData(target,ENABLEMENT_KEY)!==false}else{$("*",target).each(function(){if(getData(this,ENABLEMENT_KEY)!==undefined){setData(this,ENABLEMENT_KEY,state)}else{if(/select|textarea|input/i.test(this.nodeName)){$(this).attr("disabled",!state)}}});setData(target,ENABLEMENT_KEY,state)}};fluid.a11y=$.a11y||{};fluid.a11y.orientation={HORIZONTAL:0,VERTICAL:1,BOTH:2};var UP_DOWN_KEYMAP={next:$.ui.keyCode.DOWN,previous:$.ui.keyCode.UP};var LEFT_RIGHT_KEYMAP={next:$.ui.keyCode.RIGHT,previous:$.ui.keyCode.LEFT};var unwrap=function(element){return element.jquery?element[0]:element};var makeElementsTabFocussable=function(elements){elements.each(function(idx,item){item=$(item);if(!item.fluid("tabindex.has")||item.fluid("tabindex")<0){item.fluid("tabindex",0)}})};fluid.tabbable=function(target){target=$(target);makeElementsTabFocussable(target)};var CONTEXT_KEY="selectionContext";var NO_SELECTION=-32768;var cleanUpWhenLeavingContainer=function(selectionContext){if(selectionContext.options.onLeaveContainer){selectionContext.options.onLeaveContainer(selectionContext.selectables[selectionContext.activeItemIndex])}else{if(selectionContext.options.onUnselect){selectionContext.options.onUnselect(selectionContext.selectables[selectionContext.activeItemIndex])}}if(!selectionContext.options.rememberSelectionState){selectionContext.activeItemIndex=NO_SELECTION}};var drawSelection=function(elementToSelect,handler){if(handler){handler(elementToSelect)}};var eraseSelection=function(selectedElement,handler){if(handler&&selectedElement){handler(selectedElement)}};var unselectElement=function(selectedElement,selectionContext){eraseSelection(selectedElement,selectionContext.options.onUnselect)};var selectElement=function(elementToSelect,selectionContext){unselectElement(selectionContext.selectedElement(),selectionContext);elementToSelect=unwrap(elementToSelect);var newIndex=selectionContext.selectables.index(elementToSelect);if(newIndex===-1){return }selectionContext.activeItemIndex=newIndex;drawSelection(elementToSelect,selectionContext.options.onSelect)};var selectableFocusHandler=function(selectionContext){return function(evt){selectElement(evt.target,selectionContext);return evt.stopPropagation()}};var selectableBlurHandler=function(selectionContext){return function(evt){unselectElement(evt.target,selectionContext);return evt.stopPropagation()}};var reifyIndex=function(sc_that){var elements=sc_that.selectables;if(sc_that.activeItemIndex>=elements.length){sc_that.activeItemIndex=0}if(sc_that.activeItemIndex<0&&sc_that.activeItemIndex!==NO_SELECTION){sc_that.activeItemIndex=elements.length-1}if(sc_that.activeItemIndex>=0){$(elements[sc_that.activeItemIndex]).focus()}};var prepareShift=function(selectionContext){unselectElement(selectionContext.selectedElement(),selectionContext);if(selectionContext.activeItemIndex===NO_SELECTION){selectionContext.activeItemIndex=-1}};var focusNextElement=function(selectionContext){prepareShift(selectionContext);++selectionContext.activeItemIndex;reifyIndex(selectionContext)};var focusPreviousElement=function(selectionContext){prepareShift(selectionContext);--selectionContext.activeItemIndex;reifyIndex(selectionContext)};var arrowKeyHandler=function(selectionContext,keyMap,userHandlers){return function(evt){if(evt.which===keyMap.next){focusNextElement(selectionContext);evt.preventDefault()}else{if(evt.which===keyMap.previous){focusPreviousElement(selectionContext);evt.preventDefault()}}}};var getKeyMapForDirection=function(direction){var keyMap;if(direction===fluid.a11y.orientation.HORIZONTAL){keyMap=LEFT_RIGHT_KEYMAP}else{if(direction===fluid.a11y.orientation.VERTICAL){keyMap=UP_DOWN_KEYMAP}}return keyMap};var tabKeyHandler=function(selectionContext){return function(evt){if(evt.which!==$.ui.keyCode.TAB){return }cleanUpWhenLeavingContainer(selectionContext);if(evt.shiftKey){selectionContext.focusIsLeavingContainer=true}}};var containerFocusHandler=function(selectionContext){return function(evt){var shouldOrig=selectionContext.options.autoSelectFirstItem;var shouldSelect=typeof (shouldOrig)==="function"?shouldOrig():shouldOrig;if(selectionContext.focusIsLeavingContainer){shouldSelect=false}if(shouldSelect&&evt.target===selectionContext.container.get(0)){if(selectionContext.activeItemIndex===NO_SELECTION){selectionContext.activeItemIndex=0}$(selectionContext.selectables[selectionContext.activeItemIndex]).focus()}return evt.stopPropagation()}};var containerBlurHandler=function(selectionContext){return function(evt){selectionContext.focusIsLeavingContainer=false;return evt.stopPropagation()}};var makeElementsSelectable=function(container,defaults,userOptions){var options=$.extend(true,{},defaults,userOptions);var keyMap=getKeyMapForDirection(options.direction);var selectableElements=options.selectableElements?options.selectableElements:container.find(options.selectableSelector);var that={container:container,activeItemIndex:NO_SELECTION,selectables:selectableElements,focusIsLeavingContainer:false,options:options};that.selectablesUpdated=function(focusedItem){if(typeof (that.options.selectablesTabindex)==="number"){that.selectables.fluid("tabindex",that.options.selectablesTabindex)}that.selectables.unbind("focus."+NAMESPACE_KEY);that.selectables.unbind("blur."+NAMESPACE_KEY);that.selectables.bind("focus."+NAMESPACE_KEY,selectableFocusHandler(that));that.selectables.bind("blur."+NAMESPACE_KEY,selectableBlurHandler(that));if(focusedItem){selectElement(focusedItem,that)}else{reifyIndex(that)}};that.refresh=function(){if(!that.options.selectableSelector){throw ("Cannot refresh selectable context which was not initialised by a selector")}that.selectables=container.find(options.selectableSelector);that.selectablesUpdated()};that.selectedElement=function(){return that.activeItemIndex<0?null:that.selectables[that.activeItemIndex]};if(keyMap){container.keydown(arrowKeyHandler(that,keyMap))}container.keydown(tabKeyHandler(that));container.focus(containerFocusHandler(that));container.blur(containerBlurHandler(that));that.selectablesUpdated();return that};fluid.selectable=function(target,options){target=$(target);var that=makeElementsSelectable(target,fluid.selectable.defaults,options);setData(target,CONTEXT_KEY,that);return that};fluid.selectable.select=function(target,toSelect){$(toSelect).focus()};fluid.selectable.selectNext=function(target){target=$(target);focusNextElement(getData(target,CONTEXT_KEY))};fluid.selectable.selectPrevious=function(target){target=$(target);focusPreviousElement(getData(target,CONTEXT_KEY))};fluid.selectable.currentSelection=function(target){target=$(target);var that=getData(target,CONTEXT_KEY);return $(that.selectedElement())};fluid.selectable.defaults={direction:fluid.a11y.orientation.VERTICAL,selectablesTabindex:-1,autoSelectFirstItem:true,rememberSelectionState:true,selectableSelector:".selectable",selectableElements:null,onSelect:null,onUnselect:null,onLeaveContainer:null};var checkForModifier=function(binding,evt){if(!binding.modifier){return true}var modifierKey=binding.modifier;var isCtrlKeyPresent=modifierKey&&evt.ctrlKey;var isAltKeyPresent=modifierKey&&evt.altKey;var isShiftKeyPresent=modifierKey&&evt.shiftKey;return isCtrlKeyPresent||isAltKeyPresent||isShiftKeyPresent};var makeActivationHandler=function(binding){return function(evt){var target=evt.target;if(!fluid.enabled(evt.target)){return }var code=evt.which?evt.which:evt.keyCode;if(code===binding.key&&binding.activateHandler&&checkForModifier(binding,evt)){var event=$.Event("fluid-activate");$(evt.target).trigger(event,[binding.activateHandler]);if(event.isDefaultPrevented()){evt.preventDefault()}}}};var makeElementsActivatable=function(elements,onActivateHandler,defaultKeys,options){var bindings=[];$(defaultKeys).each(function(index,key){bindings.push({modifier:null,key:key,activateHandler:onActivateHandler})});if(options&&options.additionalBindings){bindings=bindings.concat(options.additionalBindings)}setData(elements,ENABLEMENT_KEY,true);for(var i=0;i<bindings.length;++i){var binding=bindings[i];elements.keydown(makeActivationHandler(binding))}elements.bind("fluid-activate",function(evt,handler){handler=handler||onActivateHandler;return handler?handler(evt):null})};fluid.activatable=function(target,fn,options){target=$(target);makeElementsActivatable(target,fn,fluid.activatable.defaults.keys,options)};fluid.activate=function(target){$(target).trigger("fluid-activate")};fluid.activatable.defaults={keys:[$.ui.keyCode.ENTER,$.ui.keyCode.SPACE]}})(jQuery,fluid_1_1);var fluid_1_1=fluid_1_1||{};(function($,fluid){fluid.orientation={HORIZONTAL:4,VERTICAL:1};fluid.rectSides={4:["left","right"],1:["top","bottom"],8:"top",12:"bottom",2:"left",3:"right"};fluid.position={BEFORE:-1,AFTER:1,INSIDE:2,REPLACE:3};fluid.direction={NEXT:1,PREVIOUS:-1,UP:8,DOWN:12,LEFT:2,RIGHT:3};fluid.directionSign=function(direction){return direction===fluid.direction.UP||direction===fluid.direction.LEFT?fluid.direction.PREVIOUS:fluid.direction.NEXT};fluid.directionAxis=function(direction){return direction===fluid.direction.LEFT||direction===fluid.direction.RIGHT?0:1};fluid.directionOrientation=function(direction){return fluid.directionAxis(direction)?fluid.orientation.VERTICAL:fluid.orientation.HORIZONTAL};fluid.keycodeDirection={up:fluid.direction.UP,down:fluid.direction.DOWN,left:fluid.direction.LEFT,right:fluid.direction.RIGHT};fluid.moveDom=function(source,target,position){source=fluid.unwrap(source);target=fluid.unwrap(target);var scan;if(position===fluid.position.INSIDE){target.appendChild(source)}else{if(position===fluid.position.BEFORE){for(scan=target.previousSibling;;scan=scan.previousSibling){if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);target.parentNode.insertBefore(source,target)}break}}}else{if(position===fluid.position.AFTER){for(scan=target.nextSibling;;scan=scan.nextSibling){if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);fluid.dom.insertAfter(source,target)}break}}}else{fluid.fail("Unrecognised position supplied to fluid.moveDom: "+position)}}}};fluid.normalisePosition=function(position,samespan,targeti,sourcei){if(position===fluid.position.REPLACE){position=samespan&&targeti>=sourcei?fluid.position.AFTER:fluid.position.BEFORE}return position};fluid.permuteDom=function(element,target,position,sourceelements,targetelements){element=fluid.unwrap(element);target=fluid.unwrap(target);var sourcei=$.inArray(element,sourceelements);if(sourcei===-1){fluid.fail("Error in permuteDom: source element "+fluid.dumpEl(element)+" not found in source list "+fluid.dumpEl(sourceelements))}var targeti=$.inArray(target,targetelements);if(targeti===-1){fluid.fail("Error in permuteDom: target element "+fluid.dumpEl(target)+" not found in source list "+fluid.dumpEl(targetelements))}var samespan=sourceelements===targetelements;position=fluid.normalisePosition(position,samespan,targeti,sourcei);var oldn={};oldn[fluid.position.AFTER]=element.nextSibling;oldn[fluid.position.BEFORE]=element.previousSibling;fluid.moveDom(sourceelements[sourcei],targetelements[targeti],position);var frontlimit=samespan?targeti-1:sourceelements.length-2;var i;if(!samespan||targeti>sourcei){for(i=frontlimit;i>sourcei;--i){fluid.moveDom(sourceelements[i+1],sourceelements[i],fluid.position.AFTER)}if(sourcei+1<sourceelements.length){fluid.moveDom(sourceelements[sourcei+1],oldn[fluid.position.AFTER],fluid.position.BEFORE)}}var backlimit=samespan?sourcei-1:targetelements.length-1;if(position===fluid.position.AFTER){targeti++}if(!samespan||targeti<sourcei){for(i=targeti;i<backlimit;++i){fluid.moveDom(targetelements[i],targetelements[i+1],fluid.position.BEFORE)}if(backlimit>=0&&backlimit<targetelements.length-1){fluid.moveDom(targetelements[backlimit],oldn[fluid.position.BEFORE],fluid.position.AFTER)}}};var curCss=function(a,name){return window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(name):a.currentStyle[name]};var isAttached=function(node){while(node&&node.nodeName){if(node.nodeName==="BODY"){return true}node=node.parentNode}return false};var generalHidden=function(a){return"hidden"===a.type||curCss(a,"display")==="none"||curCss(a,"visibility")==="hidden"||!isAttached(a)};var computeGeometry=function(element,orientation,disposition){var elem={};elem.element=element;elem.orientation=orientation;if(disposition===fluid.position.INSIDE){elem.position=disposition}if(generalHidden(element)){elem.clazz="hidden"}var pos=fluid.dom.computeAbsolutePosition(element)||[0,0];var width=element.offsetWidth;var height=element.offsetHeight;elem.rect={left:pos[0],top:pos[1]};elem.rect.right=pos[0]+width;elem.rect.bottom=pos[1]+height;return elem};var SENTINEL_DIMENSION=10000;function dumprect(rect){return"Rect top: "+rect.top+" left: "+rect.left+" bottom: "+rect.bottom+" right: "+rect.right}function dumpelem(cacheelem){if(!cacheelem||!cacheelem.rect){return"null"}else{return dumprect(cacheelem.rect)+" position: "+cacheelem.position+" for "+fluid.dumpEl(cacheelem.element)}}fluid.dropManager=function(){var targets=[];var cache={};var that={};var lastClosest;function cacheKey(element){return $(element).data("")}function sentinelizeElement(targets,sides,cacheelem,fc,disposition,clazz){var elemCopy=$.extend(true,{},cacheelem);elemCopy.rect[sides[fc]]=elemCopy.rect[sides[1-fc]]+(fc?1:-1);elemCopy.rect[sides[1-fc]]=(fc?-1:1)*SENTINEL_DIMENSION;elemCopy.position=disposition===fluid.position.INSIDE?disposition:(fc?fluid.position.BEFORE:fluid.position.AFTER);elemCopy.clazz=clazz;targets[targets.length]=elemCopy}function splitElement(targets,sides,cacheelem,disposition,clazz1,clazz2){var elem1=$.extend(true,{},cacheelem);var elem2=$.extend(true,{},cacheelem);var midpoint=(elem1.rect[sides[0]]+elem1.rect[sides[1]])/2;elem1.rect[sides[1]]=midpoint;elem1.position=fluid.position.BEFORE;elem2.rect[sides[0]]=midpoint;elem2.position=fluid.position.AFTER;elem1.clazz=clazz1;elem2.clazz=clazz2;targets[targets.length]=elem1;targets[targets.length]=elem2}function getRelativeClass(thisElements,index,relative,thisclazz,mapper){index+=relative;if(index<0&&thisclazz==="locked"){return"locked"}if(index>=thisElements.length||mapper===null){return null}else{relative=thisElements[index];return mapper(relative)==="locked"&&thisclazz==="locked"?"locked":null}}var lastGeometry;var displacementX,displacementY;that.updateGeometry=function(geometricInfo){lastGeometry=geometricInfo;targets=[];cache={};var mapper=geometricInfo.elementMapper;for(var i=0;i<geometricInfo.extents.length;++i){var thisInfo=geometricInfo.extents[i];var orientation=thisInfo.orientation;var sides=fluid.rectSides[orientation];var processElement=function(element,sentB,sentF,disposition,j){var cacheelem=computeGeometry(element,orientation,disposition);cacheelem.owner=thisInfo;if(cacheelem.clazz!=="hidden"&&mapper){cacheelem.clazz=mapper(element)}cache[$.data(element)]=cacheelem;var backClass=getRelativeClass(thisInfo.elements,j,fluid.position.BEFORE,cacheelem.clazz,mapper);var frontClass=getRelativeClass(thisInfo.elements,j,fluid.position.AFTER,cacheelem.clazz,mapper);if(disposition===fluid.position.INSIDE){targets[targets.length]=cacheelem}else{splitElement(targets,sides,cacheelem,disposition,backClass,frontClass)}if(sentB&&geometricInfo.sentinelize){sentinelizeElement(targets,sides,cacheelem,1,disposition,backClass)}if(sentF&&geometricInfo.sentinelize){sentinelizeElement(targets,sides,cacheelem,0,disposition,frontClass)}return cacheelem};var allHidden=true;for(var j=0;j<thisInfo.elements.length;++j){var element=thisInfo.elements[j];var cacheelem=processElement(element,j===0,j===thisInfo.elements.length-1,fluid.position.INTERLEAVED,j);if(cacheelem.clazz!=="hidden"){allHidden=false}}if(allHidden&&thisInfo.parentElement){processElement(thisInfo.parentElement,true,true,fluid.position.INSIDE)}}};that.startDrag=function(event,handlePos,handleWidth,handleHeight){var handleMidX=handlePos[0]+handleWidth/2;var handleMidY=handlePos[1]+handleHeight/2;var dX=handleMidX-event.pageX;var dY=handleMidY-event.pageY;that.updateGeometry(lastGeometry);lastClosest=null;displacementX=dX;displacementY=dY;$("").bind("mousemove.fluid-dropManager",that.mouseMove)};that.lastPosition=function(){return lastClosest};that.endDrag=function(){$("").unbind("mousemove.fluid-dropManager")};that.mouseMove=function(evt){var x=evt.pageX+displacementX;var y=evt.pageY+displacementY;var closestTarget=that.closestTarget(x,y,lastClosest);if(closestTarget&&closestTarget!==fluid.dropManager.NO_CHANGE){lastClosest=closestTarget;that.dropChangeFirer.fire(closestTarget)}};that.dropChangeFirer=fluid.event.getEventFirer();var blankHolder={element:null};that.closestTarget=function(x,y,lastClosest){var mindistance=Number.MAX_VALUE;var minelem=blankHolder;var minlockeddistance=Number.MAX_VALUE;var minlockedelem=blankHolder;for(var i=0;i<targets.length;++i){var cacheelem=targets[i];if(cacheelem.clazz==="hidden"){continue}var distance=fluid.geom.minPointRectangle(x,y,cacheelem.rect);if(cacheelem.clazz==="locked"){if(distance<minlockeddistance){minlockeddistance=distance;minlockedelem=cacheelem}}else{if(distance<mindistance){mindistance=distance;minelem=cacheelem}if(distance===0){break}}}if(!minelem){return minelem}if(minlockeddistance>=mindistance){minlockedelem=blankHolder}if(lastClosest&&lastClosest.position===minelem.position&&fluid.unwrap(lastClosest.element)===fluid.unwrap(minelem.element)&&fluid.unwrap(lastClosest.lockedelem)===fluid.unwrap(minlockedelem.element)){return fluid.dropManager.NO_CHANGE}return{position:minelem.position,element:minelem.element,lockedelem:minlockedelem.element}};that.projectFrom=function(element,direction,includeLocked){that.updateGeometry(lastGeometry);var cacheelem=cache[cacheKey(element)];var projected=fluid.geom.projectFrom(cacheelem.rect,direction,targets,includeLocked);if(!projected.cacheelem){return null}var retpos=projected.cacheelem.position;return{element:projected.cacheelem.element,position:retpos?retpos:fluid.position.BEFORE}};function getRelativeElement(element,direction,elements){var folded=fluid.directionSign(direction);var index=$(elements).index(element)+folded;if(index<0){index+=elements.length}index%=elements.length;return elements[index]}that.logicalFrom=function(element,direction,includeLocked){var orderables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);return{element:getRelativeElement(element,direction,orderables),position:fluid.position.REPLACE}};that.lockedWrapFrom=function(element,direction,includeLocked){var base=that.logicalFrom(element,direction,includeLocked);var selectables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);var allElements=cache[cacheKey(element)].owner.elements;if(includeLocked||selectables[0]===allElements[0]){return base}var directElement=getRelativeElement(element,direction,allElements);if(lastGeometry.elementMapper(directElement)==="locked"){base.element=null;base.clazz="locked"}return base};that.getOwningSpan=function(element,position,includeLocked){var owner=cache[cacheKey(element)].owner;var elements=position===fluid.position.INSIDE?[owner.parentElement]:owner.elements;if(!includeLocked&&lastGeometry.elementMapper){elements=$.makeArray(elements);fluid.remove_if(elements,function(element){return lastGeometry.elementMapper(element)==="locked"})}return elements};that.geometricMove=function(element,target,position){var sourceElements=that.getOwningSpan(element,null,true);var targetElements=that.getOwningSpan(target,position,true);fluid.permuteDom(element,target,position,sourceElements,targetElements)};return that};fluid.dropManager.NO_CHANGE="no change";fluid.geom=fluid.geom||{};fluid.geom.minPointRectangle=function(x,y,rectangle){var dx=x<rectangle.left?(rectangle.left-x):(x>rectangle.right?(x-rectangle.right):0);var dy=y<rectangle.top?(rectangle.top-y):(y>rectangle.bottom?(y-rectangle.bottom):0);return dx*dx+dy*dy};fluid.geom.minRectRect=function(rect1,rect2){var dx=rect1.right<rect2.left?rect2.left-rect1.right:rect2.right<rect1.left?rect1.left-rect2.right:0;var dy=rect1.bottom<rect2.top?rect2.top-rect1.bottom:rect2.bottom<rect1.top?rect1.top-rect2.bottom:0;return dx*dx+dy*dy};var makePenCollect=function(){return{mindist:Number.MAX_VALUE,minrdist:Number.MAX_VALUE}};fluid.geom.projectFrom=function(baserect,direction,targets,forSelection){var axis=fluid.directionAxis(direction);var frontSide=fluid.rectSides[direction];var backSide=fluid.rectSides[axis*15+5-direction];var dirSign=fluid.directionSign(direction);var penrect={left:(7*baserect.left+1*baserect.right)/8,right:(5*baserect.left+3*baserect.right)/8,top:(7*baserect.top+1*baserect.bottom)/8,bottom:(5*baserect.top+3*baserect.bottom)/8};penrect[frontSide]=dirSign*SENTINEL_DIMENSION;penrect[backSide]=-penrect[frontSide];function accPen(collect,cacheelem,backSign){var thisrect=cacheelem.rect;var pdist=fluid.geom.minRectRect(penrect,thisrect);var rdist=-dirSign*backSign*(baserect[backSign===1?frontSide:backSide]-thisrect[backSign===1?backSide:frontSide]);if(pdist<=collect.mindist&&rdist>=0){if(pdist===collect.mindist&&rdist*backSign>collect.minrdist){return }collect.minrdist=rdist*backSign;collect.mindist=pdist;collect.minelem=cacheelem}}var collect=makePenCollect();var backcollect=makePenCollect();var lockedcollect=makePenCollect();for(var i=0;i<targets.length;++i){var elem=targets[i];var isPure=elem.owner&&elem.element===elem.owner.parentElement;if(elem.clazz==="hidden"||forSelection&&isPure){continue}else{if(!forSelection&&elem.clazz==="locked"){accPen(lockedcollect,elem,1)}else{accPen(collect,elem,1);accPen(backcollect,elem,-1)}}}var wrap=!collect.minelem||backcollect.mindist<collect.mindist;var mincollect=wrap?backcollect:collect;var togo={wrapped:wrap,cacheelem:mincollect.minelem};if(lockedcollect.mindist<mincollect.mindist){togo.lockedelem=lockedcollect.minelem}return togo}})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){var defaultAvatarCreator=function(item,cssClass,dropWarning){var avatar=$(item).clone();fluid.dom.iterateDom(avatar.get(0),function(node){if(node.tagName.toLowerCase()==="script"){return"delete"}node.removeAttribute("id");if(node.tagName.toLowerCase()==="input"){node.setAttribute("disabled","disabled")}});avatar.removeAttr("id");avatar.removeClass("ui-droppable");avatar.addClass(cssClass);if(dropWarning){var avatarContainer=$(document.createElement("div"));avatarContainer.append(avatar);avatarContainer.append(dropWarning);avatar=avatarContainer}$("body").append(avatar);if(!$.browser.safari){avatar.css("display","block").width(item.offsetWidth).height(item.offsetHeight)}if($.browser.opera){avatar.hide()}return avatar};function firstSelectable(that){var selectables=that.dom.fastLocate("selectables");if(selectables.length<=0){return null}return selectables[0]}function bindHandlersToContainer(container,keyDownHandler,keyUpHandler,mouseMoveHandler){var actualKeyDown=keyDownHandler;var advancedPrevention=false;if($.browser.msie){container[0].ondrag=function(){return false};container[0].onselectstart=function(){return false}}if($.browser.opera){container.keypress(function(evt){if(advancedPrevention){advancedPrevention=false;evt.preventDefault();return false}});actualKeyDown=function(evt){var oldret=keyDownHandler(evt);if(oldret===false){advancedPrevention=true}}}container.keydown(actualKeyDown);container.keyup(keyUpHandler)}function addRolesToContainer(that){var first=that.dom.fastLocate("selectables")[0];that.container.attr("role",that.options.containerRole.container);that.container.attr("aria-multiselectable","false");that.container.attr("aria-readonly","false");that.container.attr("aria-disabled","false")}function createAvatarId(parentId){return parentId+"_avatar"}var adaptKeysets=function(options){if(options.keysets&&!(options.keysets instanceof Array)){options.keysets=[options.keysets]}};fluid.reorderer=function(container,options){if(!container){fluid.fail("Reorderer initialised with no container")}var thatReorderer=fluid.initView("fluid.reorderer",container,options);options=thatReorderer.options;var dropManager=fluid.dropManager();thatReorderer.layoutHandler=fluid.initSubcomponent(thatReorderer,"layoutHandler",[container,options,dropManager,thatReorderer.dom]);thatReorderer.activeItem=undefined;adaptKeysets(options);var kbDropWarning=thatReorderer.locate("dropWarning");var mouseDropWarning;if(kbDropWarning){mouseDropWarning=kbDropWarning.clone()}var isMove=function(evt){var keysets=options.keysets;for(var i=0;i<keysets.length;i++){if(keysets[i].modifier(evt)){return true}}return false};var isActiveItemMovable=function(){return $.inArray(thatReorderer.activeItem,thatReorderer.dom.fastLocate("movables"))>=0};var setDropEffects=function(value){thatReorderer.dom.fastLocate("dropTargets").attr("aria-dropeffect",value)};var styles=options.styles;var noModifier=function(evt){return(!evt.ctrlKey&&!evt.altKey&&!evt.shiftKey&&!evt.metaKey)};var handleDirectionKeyDown=function(evt){var item=thatReorderer.activeItem;if(!item){return true}var keysets=options.keysets;for(var i=0;i<keysets.length;i++){var keyset=keysets[i];var didProcessKey=false;var keydir=fluid.keyForValue(keyset,evt.keyCode);if(!keydir){continue}var isMovement=keyset.modifier(evt);var dirnum=fluid.keycodeDirection[keydir];var relativeItem=thatReorderer.layoutHandler.getRelativePosition(item,dirnum,!isMovement);if(!relativeItem){continue}if(isMovement){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false){return false}if(kbDropWarning.length>0){if(relativeItem.clazz==="locked"){thatReorderer.events.onShowKeyboardDropWarning.fire(item,kbDropWarning);kbDropWarning.show()}else{kbDropWarning.hide()}}if(relativeItem.element){thatReorderer.requestMovement(relativeItem,item)}}else{if(noModifier(evt)){$(relativeItem.element).focus()}}return false}return true};thatReorderer.handleKeyDown=function(evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target){return true}var jActiveItem=$(thatReorderer.activeItem);if(!jActiveItem.hasClass(styles.dragging)&&isMove(evt)){if(isActiveItemMovable()){jActiveItem.removeClass(styles.selected);jActiveItem.addClass(styles.dragging);jActiveItem.attr("aria-grabbed","true");setDropEffects("move")}return false}return handleDirectionKeyDown(evt)};thatReorderer.handleKeyUp=function(evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target){return true}var jActiveItem=$(thatReorderer.activeItem);if(jActiveItem.hasClass(styles.dragging)&&!isMove(evt)){if(kbDropWarning){kbDropWarning.hide()}jActiveItem.removeClass(styles.dragging);jActiveItem.addClass(styles.selected);jActiveItem.attr("aria-grabbed","false");setDropEffects("none");return false}return false};var dropMarker;var createDropMarker=function(tagName){var dropMarker=$(document.createElement(tagName));dropMarker.addClass(options.styles.dropMarker);dropMarker.hide();return dropMarker};fluid.logEnabled=true;thatReorderer.requestMovement=function(requestedPosition,item){if(!requestedPosition||fluid.unwrap(requestedPosition.element)===fluid.unwrap(item)){return }thatReorderer.events.onMove.fire(item,requestedPosition);dropManager.geometricMove(item,requestedPosition.element,requestedPosition.position);$(thatReorderer.activeItem).focus();thatReorderer.refresh();dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());thatReorderer.events.afterMove.fire(item,requestedPosition,thatReorderer.dom.fastLocate("movables"))};var hoverStyleHandler=function(item,state){thatReorderer.dom.fastLocate("grabHandle",item)[state?"addClass":"removeClass"](styles.hover)};function initMovable(item){var styles=options.styles;item.attr("aria-grabbed","false");item.mouseover(function(){thatReorderer.events.onHover.fire(item,true)});item.mouseout(function(){thatReorderer.events.onHover.fire(item,false)});var avatar;thatReorderer.dom.fastLocate("grabHandle",item).draggable({refreshPositions:false,scroll:true,helper:function(){var dropWarningEl;if(mouseDropWarning){dropWarningEl=mouseDropWarning[0]}avatar=$(options.avatarCreator(item[0],styles.avatar,dropWarningEl));avatar.attr("id",createAvatarId(thatReorderer.container.id));return avatar},start:function(e,ui){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false){return false}var handle=thatReorderer.dom.fastLocate("grabHandle",item)[0];var handlePos=fluid.dom.computeAbsolutePosition(handle);var handleWidth=handle.offsetWidth;var handleHeight=handle.offsetHeight;item.focus();item.removeClass(options.styles.selected);item.addClass(options.styles.mouseDrag);item.attr("aria-grabbed","true");setDropEffects("move");dropManager.startDrag(e,handlePos,handleWidth,handleHeight);avatar.show()},stop:function(e,ui){item.removeClass(options.styles.mouseDrag);item.addClass(options.styles.selected);$(thatReorderer.activeItem).attr("aria-grabbed","false");var markerNode=fluid.unwrap(dropMarker);if(markerNode.parentNode){markerNode.parentNode.removeChild(markerNode)}avatar.hide();ui.helper=null;setDropEffects("none");dropManager.endDrag();thatReorderer.requestMovement(dropManager.lastPosition(),item);thatReorderer.activeItem.focus()},handle:thatReorderer.dom.fastLocate("grabHandle",item)})}function changeSelectedToDefault(jItem,styles){jItem.removeClass(styles.selected);jItem.removeClass(styles.dragging);jItem.addClass(styles.defaultStyle);jItem.attr("aria-selected","false")}var selectItem=function(anItem){thatReorderer.events.onSelect.fire(anItem);var styles=options.styles;if(thatReorderer.activeItem&&thatReorderer.activeItem!==anItem){changeSelectedToDefault($(thatReorderer.activeItem),styles)}thatReorderer.activeItem=anItem;var jItem=$(anItem);jItem.removeClass(styles.defaultStyle);jItem.addClass(styles.selected);jItem.attr("aria-selected","true")};var initSelectables=function(){var handleBlur=function(evt){changeSelectedToDefault($(this),options.styles);return evt.stopPropagation()};var handleFocus=function(evt){selectItem(this);return evt.stopPropagation()};var selectables=thatReorderer.dom.fastLocate("selectables");for(var i=0;i<selectables.length;++i){var selectable=$(selectables[i]);if(!$.data(selectable[0],"fluid.reorderer.selectable-initialised")){selectable.addClass(styles.defaultStyle);selectables.blur(handleBlur);selectables.focus(handleFocus);selectables.click(function(evt){var handle=fluid.unwrap(thatReorderer.dom.fastLocate("grabHandle",this));if(fluid.dom.isContainer(handle,evt.target)){$(this).focus()}});selectables.attr("role",options.containerRole.item);selectables.attr("aria-selected","false");selectables.attr("aria-disabled","false");$.data(selectable[0],"fluid.reorderer.selectable-initialised",true)}}if(!thatReorderer.selectableContext){thatReorderer.selectableContext=fluid.selectable(thatReorderer.container,{selectableElements:selectables,selectablesTabindex:thatReorderer.options.selectablesTabindex,direction:null})}};var dropChangeListener=function(dropTarget){fluid.moveDom(dropMarker,dropTarget.element,dropTarget.position);dropMarker.css("display","");if(mouseDropWarning){if(dropTarget.lockedelem){mouseDropWarning.show()}else{mouseDropWarning.hide()}}};var initItems=function(){var movables=thatReorderer.dom.fastLocate("movables");var dropTargets=thatReorderer.dom.fastLocate("dropTargets");initSelectables();for(var i=0;i<movables.length;i++){var item=movables[i];if(!$.data(item,"fluid.reorderer.movable-initialised")){initMovable($(item));$.data(item,"fluid.reorderer.movable-initialised",true)}}if(movables.length>0&&!dropMarker){dropMarker=createDropMarker(movables[0].tagName)}dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());dropManager.dropChangeFirer.addListener(dropChangeListener,"fluid.Reorderer");dropTargets.attr("aria-dropeffect","none")};if(thatReorderer.container){bindHandlersToContainer(thatReorderer.container,thatReorderer.handleKeyDown,thatReorderer.handleKeyUp);addRolesToContainer(thatReorderer);fluid.tabbable(thatReorderer.container);initItems()}if(options.afterMoveCallbackUrl){thatReorderer.events.afterMove.addListener(function(){var layoutHandler=thatReorderer.layoutHandler;var model=layoutHandler.getModel?layoutHandler.getModel():options.acquireModel(thatReorderer);$.post(options.afterMoveCallbackUrl,JSON.stringify(model))},"postModel")}thatReorderer.events.onHover.addListener(hoverStyleHandler,"style");thatReorderer.refresh=function(){thatReorderer.dom.refresh("movables");thatReorderer.dom.refresh("selectables");thatReorderer.dom.refresh("grabHandle",thatReorderer.dom.fastLocate("movables"));thatReorderer.dom.refresh("stylisticOffset",thatReorderer.dom.fastLocate("movables"));thatReorderer.dom.refresh("dropTargets");thatReorderer.events.onRefresh.fire();initItems();thatReorderer.selectableContext.selectables=thatReorderer.dom.fastLocate("selectables");thatReorderer.selectableContext.selectablesUpdated(thatReorderer.activeItem)};thatReorderer.refresh();return thatReorderer};fluid.reorderer.keys={TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:19,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,i:73,j:74,k:75,m:77};fluid.reorderer.defaultKeysets=[{modifier:function(evt){return evt.ctrlKey},up:fluid.reorderer.keys.UP,down:fluid.reorderer.keys.DOWN,right:fluid.reorderer.keys.RIGHT,left:fluid.reorderer.keys.LEFT},{modifier:function(evt){return evt.ctrlKey},up:fluid.reorderer.keys.i,down:fluid.reorderer.keys.m,right:fluid.reorderer.keys.k,left:fluid.reorderer.keys.j}];fluid.reorderer.roles={GRID:{container:"grid",item:"gridcell"},LIST:{container:"list",item:"listitem"},REGIONS:{container:"main",item:"article"}};var simpleInit=function(container,layoutHandler,options){options=options||{};options.layoutHandler=layoutHandler;return fluid.reorderer(container,options)};fluid.reorderList=function(container,options){return simpleInit(container,"fluid.listLayoutHandler",options)};fluid.reorderGrid=function(container,options){return simpleInit(container,"fluid.gridLayoutHandler",options)};fluid.reorderer.GEOMETRIC_STRATEGY="projectFrom";fluid.reorderer.LOGICAL_STRATEGY="logicalFrom";fluid.reorderer.WRAP_LOCKED_STRATEGY="lockedWrapFrom";fluid.reorderer.NO_STRATEGY=null;fluid.reorderer.relativeInfoGetter=function(orientation,coStrategy,contraStrategy,dropManager,dom){return function(item,direction,forSelection){var dirorient=fluid.directionOrientation(direction);var strategy=dirorient===orientation?coStrategy:contraStrategy;return strategy!==null?dropManager[strategy](item,direction,forSelection):null}};fluid.defaults("fluid.reorderer",{styles:{defaultStyle:"fl-reorderer-movable-default",selected:"fl-reorderer-movable-selected",dragging:"fl-reorderer-movable-dragging",mouseDrag:"fl-reorderer-movable-dragging",hover:"fl-reorderer-movable-hover",dropMarker:"fl-reorderer-dropMarker",avatar:"fl-reorderer-avatar"},selectors:{dropWarning:".flc-reorderer-dropWarning",movables:".flc-reorderer-movable",grabHandle:"",stylisticOffset:""},avatarCreator:defaultAvatarCreator,keysets:fluid.reorderer.defaultKeysets,layoutHandler:{type:"fluid.listLayoutHandler"},events:{onShowKeyboardDropWarning:null,onSelect:null,onBeginMove:"preventable",onMove:null,afterMove:null,onHover:null,onRefresh:null},mergePolicy:{keysets:"replace","selectors.selectables":"selectors.movables","selectors.dropTargets":"selectors.movables"}});function geometricInfoGetter(orientation,sentinelize,dom){return function(){return{sentinelize:sentinelize,extents:[{orientation:orientation,elements:dom.fastLocate("dropTargets")}],elementMapper:function(element){return $.inArray(element,dom.fastLocate("movables"))===-1?"locked":null}}}}fluid.defaults(true,"fluid.listLayoutHandler",{orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.LIST,selectablesTabindex:-1,sentinelize:true});fluid.listLayoutHandler=function(container,options,dropManager,dom){var that={};that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.LOGICAL_STRATEGY,null,dropManager,dom);that.getGeometricInfo=geometricInfoGetter(options.orientation,options.sentinelize,dom);return that};fluid.defaults(true,"fluid.gridLayoutHandler",{orientation:fluid.orientation.HORIZONTAL,containerRole:fluid.reorderer.roles.GRID,selectablesTabindex:-1,sentinelize:false});fluid.gridLayoutHandler=function(container,options,dropManager,dom){var that={};that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.LOGICAL_STRATEGY,fluid.reorderer.GEOMETRIC_STRATEGY,dropManager,dom);that.getGeometricInfo=geometricInfoGetter(options.orientation,options.sentinelize,dom);return that}})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){var deriveLightboxCellBase=function(namebase,index){return namebase+"lightbox-cell:"+index+":"};var addThumbnailActivateHandler=function(lightboxContainer){var enterKeyHandler=function(evt){if(evt.which===fluid.reorderer.keys.ENTER){var thumbnailAnchors=$("a",evt.target);document.location=thumbnailAnchors.attr("href")}};$(lightboxContainer).keypress(enterKeyHandler)};var seekNodesById=function(rootnode,tagname,idmatch){var inputs=rootnode.getElementsByTagName(tagname);var togo=[];for(var i=0;i<inputs.length;i+=1){var input=inputs[i];var id=input.id;if(id&&id.match(idmatch)){togo.push(input)}}return togo};var createItemFinder=function(parentNode,containerId){var lightboxCellNamePattern="^"+deriveLightboxCellBase(containerId,"[0-9]+")+"$";return function(){return seekNodesById(parentNode,"div",lightboxCellNamePattern)}};var findForm=function(element){while(element){if(element.nodeName.toLowerCase()==="form"){return element}element=element.parentNode}};var defaultAfterMoveCallback=function(lightboxContainer){var reorderform=findForm(lightboxContainer);return function(){var inputs,i;inputs=seekNodesById(reorderform,"input","^"+deriveLightboxCellBase(lightboxContainer.id,"[^:]*")+"reorder-index$");for(i=0;i<inputs.length;i+=1){inputs[i].value=i}if(reorderform&&reorderform.action){$.post(reorderform.action,$(reorderform).serialize(),function(type,data,evt){})}}};fluid.defaults("fluid.reorderImages",{layoutHandler:"fluid.gridLayoutHandler",selectors:{imageTitle:".flc-reorderer-imageTitle"}});fluid.reorderImages=function(container,options){var that=fluid.initView("fluid.reorderImages",container,options);var containerEl=fluid.unwrap(that.container);if(!that.options.afterMoveCallback){that.options.afterMoveCallback=defaultAfterMoveCallback(containerEl)}if(!that.options.selectors.movables){that.options.selectors.movables=createItemFinder(containerEl,containerEl.id)}var reorderer=fluid.reorderer(container,that.options);var movables=reorderer.locate("movables");fluid.transform(movables,function(cell){fluid.reorderImages.addAriaRoles(that.options.selectors.imageTitle,cell)});fluid.tabindex($("a",container),-1);addThumbnailActivateHandler(container);return reorderer};fluid.reorderImages.addAriaRoles=function(imageTitle,cell){cell=$(cell);cell.attr("role","img");var title=$(imageTitle,cell);if(title[0]===cell[0]||title[0]===document){fluid.fail("Could not locate cell title using selector "+imageTitle+" in context "+fluid.dumpEl(cell))}var titleId=fluid.allocateSimpleId(title);cell.attr("aria-labelledby",titleId);var image=$("img",cell);image.attr("role","presentation");image.attr("alt","")};fluid.lightbox=fluid.reorderImages})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};fluid.moduleLayout=fluid.moduleLayout||{};(function($,fluid){var findColumnAndItemIndices=function(item,layout){return fluid.find(layout.columns,function(column,colIndex){var index=$.inArray(item,column.elements);return index===-1?null:{columnIndex:colIndex,itemIndex:index}},{columnIndex:-1,itemIndex:-1})};var findColIndex=function(item,layout){return fluid.find(layout.columns,function(column,colIndex){return item===column.container?colIndex:null},-1)};fluid.moduleLayout.updateLayout=function(item,target,position,layout){item=fluid.unwrap(item);target=fluid.unwrap(target);var itemIndices=findColumnAndItemIndices(item,layout);layout.columns[itemIndices.columnIndex].elements.splice(itemIndices.itemIndex,1);var targetCol;if(position===fluid.position.INSIDE){targetCol=layout.columns[findColIndex(target,layout)].elements;targetCol.splice(targetCol.length,0,item)}else{var relativeItemIndices=findColumnAndItemIndices(target,layout);targetCol=layout.columns[relativeItemIndices.columnIndex].elements;position=fluid.normalisePosition(position,itemIndices.columnIndex===relativeItemIndices.columnIndex,relativeItemIndices.itemIndex,itemIndices.itemIndex);var relative=position===fluid.position.BEFORE?0:1;targetCol.splice(relativeItemIndices.itemIndex+relative,0,item)}};fluid.moduleLayout.layoutFromFlat=function(container,columns,portlets){var layout={};layout.container=container;layout.columns=fluid.transform(columns,function(column){return{container:column,elements:$.makeArray(portlets.filter(function(){return fluid.dom.isContainer(column,this)}))}});return layout};fluid.moduleLayout.layoutFromIds=function(idLayout){return{container:fluid.byId(idLayout.id),columns:fluid.transform(idLayout.columns,function(column){return{container:fluid.byId(column.id),elements:fluid.transform(column.children,fluid.byId)}})}};fluid.moduleLayout.layoutToIds=function(idLayout){return{id:fluid.getId(idLayout.container),columns:fluid.transform(idLayout.columns,function(column){return{id:fluid.getId(column.container),children:fluid.transform(column.elements,fluid.getId)}})}};var defaultOnShowKeyboardDropWarning=function(item,dropWarning){if(dropWarning){var offset=$(item).offset();dropWarning=$(dropWarning);dropWarning.css("position","absolute");dropWarning.css("top",offset.top);dropWarning.css("left",offset.left)}};fluid.defaults(true,"fluid.moduleLayoutHandler",{orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.REGIONS,selectablesTabindex:0,sentinelize:true});fluid.moduleLayoutHandler=function(container,options,dropManager,dom){var that={};function computeLayout(){var togo;if(options.selectors.modules){togo=fluid.moduleLayout.layoutFromFlat(container,dom.locate("columns"),dom.locate("modules"))}if(!togo){var idLayout=fluid.model.getBeanValue(options,"moduleLayout.layout");fluid.moduleLayout.layoutFromIds(idLayout)}return togo}var layout=computeLayout();that.layout=layout;function isLocked(item){var lockedModules=options.selectors.lockedModules?dom.fastLocate("lockedModules"):[];return $.inArray(item,lockedModules)!==-1}that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.WRAP_LOCKED_STRATEGY,fluid.reorderer.GEOMETRIC_STRATEGY,dropManager,dom);that.getGeometricInfo=function(){var extents=[];var togo={extents:extents,sentinelize:options.sentinelize};togo.elementMapper=function(element){return isLocked(element)?"locked":null};for(var col=0;col<layout.columns.length;col++){var column=layout.columns[col];var thisEls={orientation:options.orientation,elements:$.makeArray(column.elements),parentElement:column.container};extents.push(thisEls)}return togo};function computeModules(all){return function(){var modules=fluid.accumulate(layout.columns,function(column,list){return list.concat(column.elements)},[]);if(!all){fluid.remove_if(modules,isLocked)}return modules}}that.returnedOptions={selectors:{movables:computeModules(false),dropTargets:computeModules(false),selectables:computeModules(true)},listeners:{onMove:function(item,requestedPosition){fluid.moduleLayout.updateLayout(item,requestedPosition.element,requestedPosition.position,layout)},onRefresh:function(){layout=computeLayout();that.layout=layout},"onShowKeyboardDropWarning.setPosition":defaultOnShowKeyboardDropWarning}};that.getModel=function(){return fluid.moduleLayout.layoutToIds(layout)};return that}})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){fluid.reorderLayout=function(container,userOptions){var assembleOptions={layoutHandler:"fluid.moduleLayoutHandler",selectors:{columns:".flc-reorderer-column",modules:".flc-reorderer-module"}};var options=$.extend(true,assembleOptions,userOptions);return fluid.reorderer(container,options)}})(jQuery,fluid_1_1);
-/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
-       Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
-       This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
+(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,done=0,toString=Object.prototype.toString,hasDuplicate=false,baseHasDuplicate=true,rBackslash=/\\/g,rNonWord=/\W/;[0,0].sort(function(){baseHasDuplicate=false;return 0});var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;var origContext=context;if(context.nodeType!==1&&context.nodeType!==9){return[]}if(!selector||typeof selector!=="string"){return results}var m,set,checkSet,extra,ret,cur,pop,i,prune=true,contextXML=Sizzle.isXML(context),parts=[],soFar=selector;do{chunker.exec("");m=chunker.exec(soFar);if(m){soFar=m[3];parts.push(m[1]);if(m[2]){extra=m[3];break}}}while(m);if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context)}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector]){selector+=parts.shift()}set=posProcess(selector,set)}}}else{if(!seed&&parts.length>1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1])){ret=Sizzle.find(parts.shift(),context,contextXML);context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0]}if(context){ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode?context.parentNode:context,contextXML);set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;if(parts.length>0){checkSet=makeArray(set)}else{prune=false}while(parts.length){cur=parts.pop();pop=cur;if(!Expr.relative[cur]){cur=""}else{pop=parts.pop()}if(pop==null){pop=context}Expr.relative[cur](checkSet,pop,contextXML)}}else{checkSet=parts=[]}}if(!checkSet){checkSet=set}if(!checkSet){Sizzle.error(cur||selector)}if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet)}else{if(context&&context.nodeType===1){for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&Sizzle.contains(context,checkSet[i]))){results.push(set[i])}}}else{for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i])}}}}}else{makeArray(checkSet,results)}if(extra){Sizzle(extra,origContext,results,seed);Sizzle.uniqueSort(results)}return results};Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate=baseHasDuplicate;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1)}}}}return results};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set)};Sizzle.matchesSelector=function(node,expr){return Sizzle(expr,null,null,[node]).length>0};Sizzle.find=function(expr,context,isXML){var set;if(!expr){return[]}for(var i=0,l=Expr.order.length;i<l;i++){var match,type=Expr.order[i];if((match=Expr.leftMatch[type].exec(expr))){var left=match[1];match.splice(1,1);if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(rBackslash,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break}}}}if(!set){set=typeof context.getElementsByTagName!=="undefined"?context.getElementsByTagName("*"):[]}return{set:set,expr:expr}};Sizzle.filter=function(expr,set,inplace,not){var match,anyFound,old=expr,result=[],curLoop=set,isXMLFilter=set&&set[0]&&Sizzle.isXML(set[0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.leftMatch[type].exec(expr))!=null&&match[2]){var found,item,filter=Expr.filter[type],left=match[1];anyFound=false;match.splice(1,1);if(left.substr(left.length-1)==="\\"){continue}if(curLoop===result){result=[]}if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true}else{if(match===true){continue}}}if(match){for(var i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true}else{curLoop[i]=false}}else{if(pass){result.push(item);anyFound=true}}}}}if(found!==undefined){if(!inplace){curLoop=result}expr=expr.replace(Expr.match[type],"");if(!anyFound){return[]}break}}}if(expr===old){if(anyFound==null){Sizzle.error(expr)}else{break}}old=expr}return curLoop};Sizzle.error=function(msg){throw"Syntax error, unrecognized expression: "+msg};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href")},type:function(elem){return elem.getAttribute("type")}},relative:{"+":function(checkSet,part){var isPartStr=typeof part==="string",isTag=isPartStr&&!rNonWord.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag){part=part.toLowerCase()}for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}checkSet[i]=isPartStrNotTag||elem&&elem.nodeName.toLowerCase()===part?elem||false:elem===part}}if(isPartStrNotTag){Sizzle.filter(part,checkSet,true)}},">":function(checkSet,part){var elem,isPartStr=typeof part==="string",i=0,l=checkSet.length;if(isPartStr&&!rNonWord.test(part)){part=part.toLowerCase();for(;i<l;i++){elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName.toLowerCase()===part?parent:false}}}else{for(;i<l;i++){elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part}}if(isPartStr){Sizzle.filter(part,checkSet,true)}}},"":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!rNonWord.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck}checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML)},"~":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!rNonWord.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck}checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML)}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m&&m.parentNode?[m]:[]}},NAME:function(match,context){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i])}}return ret.length===0?null:ret}},TAG:function(match,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(match[1])}}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(rBackslash,"")+" ";if(isXML){return match}for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").replace(/[\t\n\r]/g," ").indexOf(match)>=0)){if(!inplace){result.push(elem)}}else{if(inplace){curLoop[i]=false}}}}return false},ID:function(match){return match[1].replace(rBackslash,"")},TAG:function(match,curLoop){return match[1].replace(rBackslash,"").toLowerCase()},CHILD:function(match){if(match[1]==="nth"){if(!match[2]){Sizzle.error(match[0])}match[2]=match[2].replace(/^\+|\s*/g,"");var test=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(match[2]==="even"&&"2n"||match[2]==="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0}else{if(match[2]){Sizzle.error(match[0])}}match[0]=done++;return match},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1]=match[1].replace(rBackslash,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name]}match[4]=(match[4]||match[5]||"").replace(rBackslash,"");if(match[2]==="~="){match[4]=" "+match[4]+" "}return match},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if((chunker.exec(match[3])||"").length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop)}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret)}return false}}else{if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true}}return match},POS:function(match){match.unshift(true);return match}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden"},disabled:function(elem){return elem.disabled===true},checked:function(elem){return elem.checked===true},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex}return elem.selected===true},parent:function(elem){return !!elem.firstChild},empty:function(elem){return !elem.firstChild},has:function(elem,i,match){return !!Sizzle(match[3],elem).length},header:function(elem){return(/h\d/i).test(elem.nodeName)},text:function(elem){var attr=elem.getAttribute("type"),type=elem.type;return elem.nodeName.toLowerCase()==="input"&&"text"===type&&(attr===type||attr===null)},radio:function(elem){return elem.nodeName.toLowerCase()==="input"&&"radio"===elem.type},checkbox:function(elem){return elem.nodeName.toLowerCase()==="input"&&"checkbox"===elem.type},file:function(elem){return elem.nodeName.toLowerCase()==="input"&&"file"===elem.type},password:function(elem){return elem.nodeName.toLowerCase()==="input"&&"password"===elem.type},submit:function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&"submit"===elem.type},image:function(elem){return elem.nodeName.toLowerCase()==="input"&&"image"===elem.type},reset:function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&"reset"===elem.type},button:function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&"button"===elem.type||name==="button"},input:function(elem){return(/input|select|textarea|button/i).test(elem.nodeName)},focus:function(elem){return elem===elem.ownerDocument.activeElement}},setFilters:{first:function(elem,i){return i===0},last:function(elem,i,match,array){return i===array.length-1},even:function(elem,i){return i%2===0},odd:function(elem,i){return i%2===1},lt:function(elem,i,match){return i<match[3]-0},gt:function(elem,i,match){return i>match[3]-0},nth:function(elem,i,match){return match[3]-0===i},eq:function(elem,i,match){return match[3]-0===i}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array)}else{if(name==="contains"){return(elem.textContent||elem.innerText||Sizzle.getText([elem])||"").indexOf(match[3])>=0}else{if(name==="not"){var not=match[3];for(var j=0,l=not.length;j<l;j++){if(not[j]===elem){return false}}return true}else{Sizzle.error(name)}}}},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case"only":case"first":while((node=node.previousSibling)){if(node.nodeType===1){return false}}if(type==="first"){return true}node=elem;case"last":while((node=node.nextSibling)){if(node.nodeType===1){return false}}return true;case"nth":var first=match[2],last=match[3];if(first===1&&last===0){return true}var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count}}parent.sizcache=doneName}var diff=elem.nodeIndex-last;if(first===0){return diff===0}else{return(diff%first===0&&diff/first>=0)}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName.toLowerCase()===match},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!==check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array)}}}};var origPOS=Expr.match.POS,fescape=function(all,num){return"\\"+(num-0+1)};for(var type in Expr.match){Expr.match[type]=new RegExp(Expr.match[type].source+(/(?![^\[]*\])(?![^\(]*\))/.source));Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source.replace(/\\(\d+)/g,fescape))}var makeArray=function(array,results){array=Array.prototype.slice.call(array,0);if(results){results.push.apply(results,array);return results}return array};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(e){makeArray=function(array,results){var i=0,ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array)}else{if(typeof array.length==="number"){for(var l=array.length;i<l;i++){ret.push(array[i])}}else{for(;array[i];i++){ret.push(array[i])}}}return ret}}var sortOrder,siblingCheck;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition){return a.compareDocumentPosition?-1:1}return a.compareDocumentPosition(b)&4?-1:1}}else{sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0}else{if(a.sourceIndex&&b.sourceIndex){return a.sourceIndex-b.sourceIndex}}var al,bl,ap=[],bp=[],aup=a.parentNode,bup=b.parentNode,cur=aup;if(aup===bup){return siblingCheck(a,b)}else{if(!aup){return -1}else{if(!bup){return 1}}}while(cur){ap.unshift(cur);cur=cur.parentNode}cur=bup;while(cur){bp.unshift(cur);cur=cur.parentNode}al=ap.length;bl=bp.length;for(var i=0;i<al&&i<bl;i++){if(ap[i]!==bp[i]){return siblingCheck(ap[i],bp[i])}}return i===al?siblingCheck(a,bp[i],-1):siblingCheck(ap[i],b,1)};siblingCheck=function(a,b,ret){if(a===b){return ret}var cur=a.nextSibling;while(cur){if(cur===b){return -1}cur=cur.nextSibling}return 1}}Sizzle.getText=function(elems){var ret="",elem;for(var i=0;elems[i];i++){elem=elems[i];if(elem.nodeType===3||elem.nodeType===4){ret+=elem.nodeValue}else{if(elem.nodeType!==8){ret+=Sizzle.getText(elem.childNodes)}}}return ret};(function(){var form=document.createElement("div"),id="script"+(new Date()).getTime(),root=document.documentElement;form.innerHTML="<a name='"+id+"'/>";root.insertBefore(form,root.firstChild);if(document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[]}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match}}root.removeChild(form);root=form=null})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i])}}results=tmp}return results}}div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2)}}div=null})();if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div"),id="__sizzle__";div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return }Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&!Sizzle.isXML(context)){var match=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(query);if(match&&(context.nodeType===1||context.nodeType===9)){if(match[1]){return makeArray(context.getElementsByTagName(query),extra)}else{if(match[2]&&Expr.find.CLASS&&context.getElementsByClassName){return makeArray(context.getElementsByClassName(match[2]),extra)}}}if(context.nodeType===9){if(query==="body"&&context.body){return makeArray([context.body],extra)}else{if(match&&match[3]){var elem=context.getElementById(match[3]);if(elem&&elem.parentNode){if(elem.id===match[3]){return makeArray([elem],extra)}}else{return makeArray([],extra)}}}try{return makeArray(context.querySelectorAll(query),extra)}catch(qsaError){}}else{if(context.nodeType===1&&context.nodeName.toLowerCase()!=="object"){var oldContext=context,old=context.getAttribute("id"),nid=old||id,hasParent=context.parentNode,relativeHierarchySelector=/^\s*[+~]/.test(query);if(!old){context.setAttribute("id",nid)}else{nid=nid.replace(/'/g,"\\$&")}if(relativeHierarchySelector&&hasParent){context=context.parentNode}try{if(!relativeHierarchySelector||hasParent){return makeArray(context.querySelectorAll("[id='"+nid+"'] "+query),extra)}}catch(pseudoError){}finally{if(!old){oldContext.removeAttribute("id")}}}}}return oldSizzle(query,context,extra,seed)};for(var prop in oldSizzle){Sizzle[prop]=oldSizzle[prop]}div=null})()}(function(){var html=document.documentElement,matches=html.matchesSelector||html.mozMatchesSelector||html.webkitMatchesSelector||html.msMatchesSelector;if(matches){var disconnectedMatch=!matches.call(document.createElement("div"),"div"),pseudoWorks=false;try{matches.call(document.documentElement,"[test!='']:sizzle")}catch(pseudoError){pseudoWorks=true}Sizzle.matchesSelector=function(node,expr){expr=expr.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!Sizzle.isXML(node)){try{if(pseudoWorks||!Expr.match.PSEUDO.test(expr)&&!/!=/.test(expr)){var ret=matches.call(node,expr);if(ret||!disconnectedMatch||node.document&&node.document.nodeType!==11){return ret}}}catch(e){}}return Sizzle(expr,null,null,[node]).length>0}}})();(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(!div.getElementsByClassName||div.getElementsByClassName("e").length===0){return }div.lastChild.className="e";if(div.getElementsByClassName("e").length===1){return }Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1])}};div=null})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var match=false;elem=elem[dir];while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;elem.sizset=i}if(elem.nodeName.toLowerCase()===cur){match=elem;break}elem=elem[dir]}checkSet[i]=match}}}function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var match=false;elem=elem[dir];while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;elem.sizset=i}if(typeof cur!=="string"){if(elem===cur){match=true;break}}else{if(Sizzle.filter(cur,[elem]).length>0){match=elem;break}}}elem=elem[dir]}checkSet[i]=match}}}if(document.documentElement.contains){Sizzle.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):true)}}else{if(document.documentElement.compareDocumentPosition){Sizzle.contains=function(a,b){return !!(a.compareDocumentPosition(b)&16)}}else{Sizzle.contains=function(){return false}}}Sizzle.isXML=function(elem){var documentElement=(elem?elem.ownerDocument||elem:0).documentElement;return documentElement?documentElement.nodeName!=="HTML":false};var posProcess=function(selector,context){var match,tmpSet=[],later="",root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"")}selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet)}return Sizzle.filter(later,tmpSet)};jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.filters;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains})();var runtil=/Until$/,rparentsprev=/^(?:parents|prevUntil|prevAll)/,rmultiselector=/,/,isSimple=/^.[^:#\[\.,]*$/,slice=Array.prototype.slice,POS=jQuery.expr.match.POS,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.fn.extend({find:function(selector){var self=this,i,l;if(typeof selector!=="string"){return jQuery(selector).filter(function(){for(i=0,l=self.length;i<l;i++){if(jQuery.contains(self[i],this)){return true}}})}var ret=this.pushStack("","find",selector),length,n,r;for(i=0,l=this.length;i<l;i++){length=ret.length;jQuery.find(selector,this[i],ret);if(i>0){for(n=length;n<ret.length;n++){for(r=0;r<length;r++){if(ret[r]===ret[n]){ret.splice(n--,1);break}}}}}return ret},has:function(target){var targets=jQuery(target);return this.filter(function(){for(var i=0,l=targets.length;i<l;i++){if(jQuery.contains(this,targets[i])){return true}}})},not:function(selector){return this.pushStack(winnow(this,selector,false),"not",selector)},filter:function(selector){return this.pushStack(winnow(this,selector,true),"filter",selector)},is:function(selector){return !!selector&&(typeof selector==="string"?jQuery.filter(selector,this).length>0:this.filter(selector).length>0)},closest:function(selectors,context){var ret=[],i,l,cur=this[0];if(jQuery.isArray(selectors)){var match,selector,matches={},level=1;if(cur&&selectors.length){for(i=0,l=selectors.length;i<l;i++){selector=selectors[i];if(!matches[selector]){matches[selector]=POS.test(selector)?jQuery(selector,context||this.context):selector}}while(cur&&cur.ownerDocument&&cur!==context){for(selector in matches){match=matches[selector];if(match.jquery?match.index(cur)>-1:jQuery(cur).is(match)){ret.push({selector:selector,elem:cur,level:level})}}cur=cur.parentNode;level++}}return ret}var pos=POS.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(i=0,l=this.length;i<l;i++){cur=this[i];while(cur){if(pos?pos.index(cur)>-1:jQuery.find.matchesSelector(cur,selectors)){ret.push(cur);break}else{cur=cur.parentNode;if(!cur||!cur.ownerDocument||cur===context||cur.nodeType===11){break}}}}ret=ret.length>1?jQuery.unique(ret):ret;return this.pushStack(ret,"closest",selectors)},index:function(elem){if(!elem||typeof elem==="string"){return jQuery.inArray(this[0],elem?jQuery(elem):this.parent().children())}return jQuery.inArray(elem.jquery?elem[0]:elem,this)},add:function(selector,context){var set=typeof selector==="string"?jQuery(selector,context):jQuery.makeArray(selector&&selector.nodeType?[selector]:selector),all=jQuery.merge(this.get(),set);return this.pushStack(isDisconnected(set[0])||isDisconnected(all[0])?all:jQuery.unique(all))},andSelf:function(){return this.add(this.prevObject)}});function isDisconnected(node){return !node||!node.parentNode||node.parentNode.nodeType===11}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null},parents:function(elem){return jQuery.dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until)},next:function(elem){return jQuery.nth(elem,2,"nextSibling")},prev:function(elem){return jQuery.nth(elem,2,"previousSibling")},nextAll:function(elem){return jQuery.dir(elem,"nextSibling")},prevAll:function(elem){return jQuery.dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until)},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var ret=jQuery.map(this,fn,until),args=slice.call(arguments);if(!runtil.test(name)){selector=until}if(selector&&typeof selector==="string"){ret=jQuery.filter(selector,ret)}ret=this.length>1&&!guaranteedUnique[name]?jQuery.unique(ret):ret;if((this.length>1||rmultiselector.test(selector))&&rparentsprev.test(name)){ret=ret.reverse()}return this.pushStack(ret,name,args.join(","))}});jQuery.extend({filter:function(expr,elems,not){if(not){expr=":not("+expr+")"}return elems.length===1?jQuery.find.matchesSelector(elems[0],expr)?[elems[0]]:[]:jQuery.find.matches(expr,elems)},dir:function(elem,dir,until){var matched=[],cur=elem[dir];while(cur&&cur.nodeType!==9&&(until===undefined||cur.nodeType!==1||!jQuery(cur).is(until))){if(cur.nodeType===1){matched.push(cur)}cur=cur[dir]}return matched},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir]){if(cur.nodeType===1&&++num===result){break}}return cur},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){r.push(n)}}return r}});function winnow(elements,qualifier,keep){qualifier=qualifier||0;if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){var retVal=!!qualifier.call(elem,i,elem);return retVal===keep})}else{if(qualifier.nodeType){return jQuery.grep(elements,function(elem,i){return(elem===qualifier)===keep})}else{if(typeof qualifier==="string"){var filtered=jQuery.grep(elements,function(elem){return elem.nodeType===1});if(isSimple.test(qualifier)){return jQuery.filter(qualifier,filtered,!keep)}else{qualifier=jQuery.filter(qualifier,filtered)}}}}return jQuery.grep(elements,function(elem,i){return(jQuery.inArray(elem,qualifier)>=0)===keep})}var rinlinejQuery=/ jQuery\d+="(?:\d+|null)"/g,rleadingWhitespace=/^\s+/,rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,rtagName=/<([\w:]+)/,rtbody=/<tbody/i,rhtml=/<|&#?\w+;/,rnocache=/<(?:script|object|embed|option|style)/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptType=/\/(java|ecma)script/i,rcleanScript=/^\s*<!(?:\[CDATA\[|\-\-)/,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;if(!jQuery.support.htmlSerialize){wrapMap._default=[1,"div<div>","</div>"]}jQuery.fn.extend({text:function(text){if(jQuery.isFunction(text)){return this.each(function(i){var self=jQuery(this);self.text(text.call(this,i,self.text()))})}if(typeof text!=="object"&&text!==undefined){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text))}return jQuery.text(this)},wrapAll:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i))})}if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0])}wrap.map(function(){var elem=this;while(elem.firstChild&&elem.firstChild.nodeType===1){elem=elem.firstChild}return elem}).append(this)}return this},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i))})}return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html)}else{self.append(html)}})},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html)})},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.appendChild(elem)}})},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.insertBefore(elem,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this)})}else{if(arguments.length){var set=jQuery(arguments[0]);set.push.apply(set,this.toArray());return this.pushStack(set,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling)})}else{if(arguments.length){var set=this.pushStack(this,"after",arguments);set.push.apply(set,jQuery(arguments[0]).toArray());return set}}},remove:function(selector,keepData){for(var i=0,elem;(elem=this[i])!=null;i++){if(!selector||jQuery.filter(selector,[elem]).length){if(!keepData&&elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"));jQuery.cleanData([elem])}if(elem.parentNode){elem.parentNode.removeChild(elem)}}}return this},empty:function(){for(var i=0,elem;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"))}while(elem.firstChild){elem.removeChild(elem.firstChild)}}return this},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){if(value===undefined){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(rinlinejQuery,""):null}else{if(typeof value==="string"&&!rnocache.test(value)&&(jQuery.support.leadingWhitespace||!rleadingWhitespace.test(value))&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(var i=0,l=this.length;i<l;i++){if(this[i].nodeType===1){jQuery.cleanData(this[i].getElementsByTagName("*"));this[i].innerHTML=value}}}catch(e){this.empty().append(value)}}else{if(jQuery.isFunction(value)){this.each(function(i){var self=jQuery(this);self.html(value.call(this,i,self.html()))})}else{this.empty().append(value)}}}return this},replaceWith:function(value){if(this[0]&&this[0].parentNode){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this),old=self.html();self.replaceWith(value.call(this,i,old))})}if(typeof value!=="string"){value=jQuery(value).detach()}return this.each(function(){var next=this.nextSibling,parent=this.parentNode;jQuery(this).remove();if(next){jQuery(next).before(value)}else{jQuery(parent).append(value)}})}else{return this.length?this.pushStack(jQuery(jQuery.isFunction(value)?value():value),"replaceWith",value):this}},detach:function(selector){return this.remove(selector,true)},domManip:function(args,table,callback){var results,first,fragment,parent,value=args[0],scripts=[];if(!jQuery.support.checkClone&&arguments.length===3&&typeof value==="string"&&rchecked.test(value)){return this.each(function(){jQuery(this).domManip(args,table,callback,true)})}if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);args[0]=value.call(this,i,table?self.html():undefined);self.domManip(args,table,callback)})}if(this[0]){parent=value&&value.parentNode;if(jQuery.support.parentNode&&parent&&parent.nodeType===11&&parent.childNodes.length===this.length){results={fragment:parent}}else{results=jQuery.buildFragment(args,this,scripts)}fragment=results.fragment;if(fragment.childNodes.length===1){first=fragment=fragment.firstChild}else{first=fragment.firstChild}if(first){table=table&&jQuery.nodeName(first,"tr");for(var i=0,l=this.length,lastIndex=l-1;i<l;i++){callback.call(table?root(this[i],first):this[i],results.cacheable||(l>1&&i<lastIndex)?jQuery.clone(fragment,true,true):fragment)}}if(scripts.length){jQuery.each(scripts,evalScript)}}return this}});function root(elem,cur){return jQuery.nodeName(elem,"table")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem}function cloneCopyEvent(src,dest){if(dest.nodeType!==1||!jQuery.hasData(src)){return }var internalKey=jQuery.expando,oldData=jQuery.data(src),curData=jQuery.data(dest,oldData);if((oldData=oldData[internalKey])){var events=oldData.events;curData=curData[internalKey]=jQuery.extend({},oldData);if(events){delete curData.handle;curData.events={};for(var type in events){for(var i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type+(events[type][i].namespace?".":"")+events[type][i].namespace,events[type][i],events[type][i].data)}}}}}function cloneFixAttributes(src,dest){var nodeName;if(dest.nodeType!==1){return }if(dest.clearAttributes){dest.clearAttributes()}if(dest.mergeAttributes){dest.mergeAttributes(src)}nodeName=dest.nodeName.toLowerCase();if(nodeName==="object"){dest.outerHTML=src.outerHTML}else{if(nodeName==="input"&&(src.type==="checkbox"||src.type==="radio")){if(src.checked){dest.defaultChecked=dest.checked=src.checked}if(dest.value!==src.value){dest.value=src.value}}else{if(nodeName==="option"){dest.selected=src.defaultSelected}else{if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue}}}}dest.removeAttribute(jQuery.expando)}jQuery.buildFragment=function(args,nodes,scripts){var fragment,cacheable,cacheresults,doc=(nodes&&nodes[0]?nodes[0].ownerDocument||nodes[0]:document);if(args.length===1&&typeof args[0]==="string"&&args[0].length<512&&doc===document&&args[0].charAt(0)==="<"&&!rnocache.test(args[0])&&(jQuery.support.checkClone||!rchecked.test(args[0]))){cacheable=true;cacheresults=jQuery.fragments[args[0]];if(cacheresults&&cacheresults!==1){fragment=cacheresults}}if(!fragment){fragment=doc.createDocumentFragment();jQuery.clean(args,doc,fragment,scripts)}if(cacheable){jQuery.fragments[args[0]]=cacheresults?fragment:1}return{fragment:fragment,cacheable:cacheable}};jQuery.fragments={};jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector),parent=this.length===1&&this[0].parentNode;if(parent&&parent.nodeType===11&&parent.childNodes.length===1&&insert.length===1){insert[original](this[0]);return this}else{for(var i=0,l=insert.length;i<l;i++){var elems=(i>0?this.clone(true):this).get();jQuery(insert[i])[original](elems);ret=ret.concat(elems)}return this.pushStack(ret,name,insert.selector)}}});function getAll(elem){if("getElementsByTagName" in elem){return elem.getElementsByTagName("*")}else{if("querySelectorAll" in elem){return elem.querySelectorAll("*")}else{return[]}}}function fixDefaultChecked(elem){if(elem.type==="checkbox"||elem.type==="radio"){elem.defaultChecked=elem.checked}}function findInputs(elem){if(jQuery.nodeName(elem,"input")){fixDefaultChecked(elem)}else{if(elem.getElementsByTagName){jQuery.grep(elem.getElementsByTagName("input"),fixDefaultChecked)}}}jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var clone=elem.cloneNode(true),srcElements,destElements,i;if((!jQuery.support.noCloneEvent||!jQuery.support.noCloneChecked)&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){cloneFixAttributes(elem,clone);srcElements=getAll(elem);destElements=getAll(clone);for(i=0;srcElements[i];++i){cloneFixAttributes(srcElements[i],destElements[i])}}if(dataAndEvents){cloneCopyEvent(elem,clone);if(deepDataAndEvents){srcElements=getAll(elem);destElements=getAll(clone);for(i=0;srcElements[i];++i){cloneCopyEvent(srcElements[i],destElements[i])}}}return clone},clean:function(elems,context,fragment,scripts){var checkScriptType;context=context||document;if(typeof context.createElement==="undefined"){context=context.ownerDocument||context[0]&&context[0].ownerDocument||document}var ret=[],j;for(var i=0,elem;(elem=elems[i])!=null;i++){if(typeof elem==="number"){elem+=""}if(!elem){continue}if(typeof elem==="string"){if(!rhtml.test(elem)){elem=context.createTextNode(elem)}else{elem=elem.replace(rxhtmlTag,"<$1></$2>");var tag=(rtagName.exec(elem)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,depth=wrap[0],div=context.createElement("div");div.innerHTML=wrap[1]+elem+wrap[2];while(depth--){div=div.lastChild}if(!jQuery.support.tbody){var hasBody=rtbody.test(elem),tbody=tag==="table"&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]==="<table>"&&!hasBody?div.childNodes:[];for(j=tbody.length-1;j>=0;--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j])}}}if(!jQuery.support.leadingWhitespace&&rleadingWhitespace.test(elem)){div.insertBefore(context.createTextNode(rleadingWhitespace.exec(elem)[0]),div.firstChild)}elem=div.childNodes}}var len;if(!jQuery.support.appendChecked){if(elem[0]&&typeof (len=elem.length)==="number"){for(j=0;j<len;j++){findInputs(elem[j])}}else{findInputs(elem)}}if(elem.nodeType){ret.push(elem)}else{ret=jQuery.merge(ret,elem)}}if(fragment){checkScriptType=function(elem){return !elem.type||rscriptType.test(elem.type)};for(i=0;ret[i];i++){if(scripts&&jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i])}else{if(ret[i].nodeType===1){var jsTags=jQuery.grep(ret[i].getElementsByTagName("script"),checkScriptType);ret.splice.apply(ret,[i+1,0].concat(jsTags))}fragment.appendChild(ret[i])}}}return ret},cleanData:function(elems){var data,id,cache=jQuery.cache,internalKey=jQuery.expando,special=jQuery.event.special,deleteExpando=jQuery.support.deleteExpando;for(var i=0,elem;(elem=elems[i])!=null;i++){if(elem.nodeName&&jQuery.noData[elem.nodeName.toLowerCase()]){continue}id=elem[jQuery.expando];if(id){data=cache[id]&&cache[id][internalKey];if(data&&data.events){for(var type in data.events){if(special[type]){jQuery.event.remove(elem,type)}else{jQuery.removeEvent(elem,type,data.handle)}}if(data.handle){data.handle.elem=null}}if(deleteExpando){delete elem[jQuery.expando]}else{if(elem.removeAttribute){elem.removeAttribute(jQuery.expando)}}delete cache[id]}}}});function evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dataType:"script"})}else{jQuery.globalEval((elem.text||elem.textContent||elem.innerHTML||"").replace(rcleanScript,"/*$0*/"))}if(elem.parentNode){elem.parentNode.removeChild(elem)}}var ralpha=/alpha\([^)]*\)/i,ropacity=/opacity=([^)]*)/,rdashAlpha=/-([a-z])/ig,rupper=/([A-Z]|^ms)/g,rnumpx=/^-?\d+(?:px)?$/i,rnum=/^-?\d/,rrelNum=/^[+\-]=/,rrelNumFilter=/[^+\-\.\de]+/g,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssWidth=["Left","Right"],cssHeight=["Top","Bottom"],curCSS,getComputedStyle,currentStyle,fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn.css=function(name,value){if(arguments.length===2&&value===undefined){return this}return jQuery.access(this,name,value,true,function(elem,name,value){return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name)})};jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity","opacity");return ret===""?"1":ret}else{return elem.style.opacity}}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true,widows:true,orphans:true},cssProps:{"float":jQuery.support.cssFloat?"cssFloat":"styleFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return }var ret,type,origName=jQuery.camelCase(name),style=elem.style,hooks=jQuery.cssHooks[origName];name=jQuery.cssProps[origName]||origName;if(value!==undefined){type=typeof value;if(type==="number"&&isNaN(value)||value==null){return }if(type==="string"&&rrelNum.test(value)){value=+value.replace(rrelNumFilter,"")+parseFloat(jQuery.css(elem,name))}if(type==="number"&&!jQuery.cssNumber[origName]){value+="px"}if(!hooks||!("set" in hooks)||(value=hooks.set(elem,value))!==undefined){try{style[name]=value}catch(e){}}}else{if(hooks&&"get" in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret}return style[name]}},css:function(elem,name,extra){var ret,hooks;name=jQuery.camelCase(name);hooks=jQuery.cssHooks[name];name=jQuery.cssProps[name]||name;if(name==="cssFloat"){name="float"}if(hooks&&"get" in hooks&&(ret=hooks.get(elem,true,extra))!==undefined){return ret}else{if(curCSS){return curCSS(elem,name)}}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name]}callback.call(elem);for(name in options){elem.style[name]=old[name]}},camelCase:function(string){return string.replace(rdashAlpha,fcamelCase)}});jQuery.curCSS=jQuery.css;jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){var val;if(computed){if(elem.offsetWidth!==0){val=getWH(elem,name,extra)}else{jQuery.swap(elem,cssShow,function(){val=getWH(elem,name,extra)})}if(val<=0){val=curCSS(elem,name,name);if(val==="0px"&&currentStyle){val=currentStyle(elem,name,name)}if(val!=null){return val===""||val==="auto"?"0px":val}}if(val<0||val==null){val=elem.style[name];return val===""||val==="auto"?"0px":val}return typeof val==="string"?val:val+"px"}},set:function(elem,value){if(rnumpx.test(value)){value=parseFloat(value);if(value>=0){return value+"px"}}else{return value}}}});if(!jQuery.support.opacity){jQuery.cssHooks.opacity={get:function(elem,computed){return ropacity.test((computed&&elem.currentStyle?elem.currentStyle.filter:elem.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":computed?"1":""},set:function(elem,value){var style=elem.style,currentStyle=elem.currentStyle;style.zoom=1;var opacity=jQuery.isNaN(value)?"":"alpha(opacity="+value*100+")",filter=currentStyle&&currentStyle.filter||style.filter||"";style.filter=ralpha.test(filter)?filter.replace(ralpha,opacity):filter+" "+opacity}}}jQuery(function(){if(!jQuery.support.reliableMarginRight){jQuery.cssHooks.marginRight={get:function(elem,computed){var ret;jQuery.swap(elem,{display:"inline-block"},function(){if(computed){ret=curCSS(elem,"margin-right","marginRight")}else{ret=elem.style.marginRight}});return ret}}}});if(document.defaultView&&document.defaultView.getComputedStyle){getComputedStyle=function(elem,name){var ret,defaultView,computedStyle;name=name.replace(rupper,"-$1").toLowerCase();if(!(defaultView=elem.ownerDocument.defaultView)){return undefined}if((computedStyle=defaultView.getComputedStyle(elem,null))){ret=computedStyle.getPropertyValue(name);if(ret===""&&!jQuery.contains(elem.ownerDocument.documentElement,elem)){ret=jQuery.style(elem,name)}}return ret}}if(document.documentElement.currentStyle){currentStyle=function(elem,name){var left,ret=elem.currentStyle&&elem.currentStyle[name],rsLeft=elem.runtimeStyle&&elem.runtimeStyle[name],style=elem.style;if(!rnumpx.test(ret)&&rnum.test(ret)){left=style.left;if(rsLeft){elem.runtimeStyle.left=elem.currentStyle.left}style.left=name==="fontSize"?"1em":(ret||0);ret=style.pixelLeft+"px";style.left=left;if(rsLeft){elem.runtimeStyle.left=rsLeft}}return ret===""?"auto":ret}}curCSS=getComputedStyle||currentStyle;function getWH(elem,name,extra){var which=name==="width"?cssWidth:cssHeight,val=name==="width"?elem.offsetWidth:elem.offsetHeight;if(extra==="border"){return val}jQuery.each(which,function(){if(!extra){val-=parseFloat(jQuery.css(elem,"padding"+this))||0}if(extra==="margin"){val+=parseFloat(jQuery.css(elem,"margin"+this))||0}else{val-=parseFloat(jQuery.css(elem,"border"+this+"Width"))||0}});return val}if(jQuery.expr&&jQuery.expr.filters){jQuery.expr.filters.hidden=function(elem){var width=elem.offsetWidth,height=elem.offsetHeight;return(width===0&&height===0)||(!jQuery.support.reliableHiddenOffsets&&(elem.style.display||jQuery.css(elem,"display"))==="none")};jQuery.expr.filters.visible=function(elem){return !jQuery.expr.filters.hidden(elem)}}var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rhash=/#.*$/,rheaders=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,rinput=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,rlocalProtocol=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rquery=/\?/,rscript=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,rselectTextarea=/^(?:select|textarea)/i,rspacesAjax=/\s+/,rts=/([?&])_=[^&]*/,rurl=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,_load=jQuery.fn.load,prefilters={},transports={},ajaxLocation,ajaxLocParts;try{ajaxLocation=location.href}catch(e){ajaxLocation=document.createElement("a");ajaxLocation.href="";ajaxLocation=ajaxLocation.href}ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*"}if(jQuery.isFunction(func)){var dataTypes=dataTypeExpression.toLowerCase().split(rspacesAjax),i=0,length=dataTypes.length,dataType,list,placeBefore;for(;i<length;i++){dataType=dataTypes[i];placeBefore=/^\+/.test(dataType);if(placeBefore){dataType=dataType.substr(1)||"*"}list=structure[dataType]=structure[dataType]||[];list[placeBefore?"unshift":"push"](func)}}}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,dataType,inspected){dataType=dataType||options.dataTypes[0];inspected=inspected||{};inspected[dataType]=true;var list=structure[dataType],i=0,length=list?list.length:0,executeOnly=(structure===prefilters),selection;for(;i<length&&(executeOnly||!selection);i++){selection=list[i](options,originalOptions,jqXHR);if(typeof selection==="string"){if(!executeOnly||inspected[selection]){selection=undefined}else{options.dataTypes.unshift(selection);selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,selection,inspected)}}}if((executeOnly||!selection)&&!inspected["*"]){selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,"*",inspected)}return selection}jQuery.fn.extend({load:function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments)}else{if(!this.length){return this}}var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off)}var type="GET";if(params){if(jQuery.isFunction(params)){callback=params;params=undefined}else{if(typeof params==="object"){params=jQuery.param(params,jQuery.ajaxSettings.traditional);type="POST"}}}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(jqXHR,status,responseText){responseText=jqXHR.responseText;if(jqXHR.isResolved()){jqXHR.done(function(r){responseText=r});self.html(selector?jQuery("<div>").append(responseText.replace(rscript,"")).find(selector):responseText)}if(callback){self.each(callback,[responseText,status,jqXHR])}}});return this},serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?jQuery.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||rselectTextarea.test(this.nodeName)||rinput.test(this.type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});jQuery.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f)}});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined}return jQuery.ajax({type:method,url:url,data:data,success:callback,dataType:type})}});jQuery.extend({getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script")},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},ajaxSetup:function(target,settings){if(!settings){settings=target;target=jQuery.extend(true,jQuery.ajaxSettings,settings)}else{jQuery.extend(true,target,jQuery.ajaxSettings,settings)}for(var field in {context:1,url:1}){if(field in settings){target[field]=settings[field]}else{if(field in jQuery.ajaxSettings){target[field]=jQuery.ajaxSettings[field]}}}return target},ajaxSettings:{url:ajaxLocation,isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":window.String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML}},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined}options=options||{};var s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=callbackContext!==s&&(callbackContext.nodeType||callbackContext instanceof jQuery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery._Deferred(),statusCode=s.statusCode||{},ifModifiedKey,requestHeaders={},requestHeadersNames={},responseHeadersString,responseHeaders,transport,timeoutTimer,parts,state=0,fireGlobals,i,jqXHR={readyState:0,setRequestHeader:function(name,value){if(!state){var lname=name.toLowerCase();name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value}return this},getAllResponseHeaders:function(){return state===2?responseHeadersString:null},getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()]=match[2]}}match=responseHeaders[key.toLowerCase()]}return match===undefined?null:match},overrideMimeType:function(type){if(!state){s.mimeType=type}return this},abort:function(statusText){statusText=statusText||"abort";if(transport){transport.abort(statusText)}done(0,statusText);return this}};function done(status,statusText,responses,headers){if(state===2){return }state=2;if(timeoutTimer){clearTimeout(timeoutTimer)}transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status?4:0;var isSuccess,success,error,response=responses?ajaxHandleResponses(s,jqXHR,responses):undefined,lastModified,etag;if(status>=200&&status<300||status===304){if(s.ifModified){if((lastModified=jqXHR.getResponseHeader("Last-Modified"))){jQuery.lastModified[ifModifiedKey]=lastModified}if((etag=jqXHR.getResponseHeader("Etag"))){jQuery.etag[ifModifiedKey]=etag}}if(status===304){statusText="notmodified";isSuccess=true}else{try{success=ajaxConvert(s,response);statusText="success";isSuccess=true}catch(e){statusText="parsererror";error=e}}}else{error=statusText;if(!statusText||status){statusText="error";if(status<0){status=0}}}jqXHR.status=status;jqXHR.statusText=statusText;if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR])}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error])}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger("ajax"+(isSuccess?"Success":"Error"),[jqXHR,s,isSuccess?success:error])}completeDeferred.resolveWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop")}}}deferred.promise(jqXHR);jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;jqXHR.complete=completeDeferred.done;jqXHR.statusCode=function(map){if(map){var tmp;if(state<2){for(tmp in map){statusCode[tmp]=[statusCode[tmp],map[tmp]]}}else{tmp=map[jqXHR.status];jqXHR.then(tmp,tmp)}}return this};s.url=((url||s.url)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().split(rspacesAjax);if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!=ajaxLocParts[1]||parts[2]!=ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?80:443))!=(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?80:443))))}if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional)}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return false}fireGlobals=s.global;s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart")}if(!s.hasContent){if(s.data){s.url+=(rquery.test(s.url)?"&":"?")+s.data}ifModifiedKey=s.url;if(s.cache===false){var ts=jQuery.now(),ret=s.url.replace(rts,"$1_="+ts);s.url=ret+((ret===s.url)?(rquery.test(s.url)?"&":"?")+"_="+ts:"")}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType)}if(s.ifModified){ifModifiedKey=ifModifiedKey||s.url;if(jQuery.lastModified[ifModifiedKey]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[ifModifiedKey])}if(jQuery.etag[ifModifiedKey]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[ifModifiedKey])}}jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", */*; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i])}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){jqXHR.abort();return false}for(i in {success:1,error:1,complete:1}){jqXHR[i](s[i])}transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport")}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s])}if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort("timeout")},s.timeout)}try{state=1;transport.send(requestHeaders,done)}catch(e){if(status<2){done(-1,e)}else{jQuery.error(e)}}}return jqXHR},param:function(a,traditional){var s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)};if(traditional===undefined){traditional=jQuery.ajaxSettings.traditional}if(jQuery.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value)})}else{for(var prefix in a){buildParams(prefix,a[prefix],traditional,add)}}return s.join("&").replace(r20,"+")}});function buildParams(prefix,obj,traditional,add){if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v)}else{buildParams(prefix+"["+(typeof v==="object"||jQuery.isArray(v)?i:"")+"]",v,traditional,add)}})}else{if(!traditional&&obj!=null&&typeof obj==="object"){for(var name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add)}}else{add(prefix,obj)}}}jQuery.extend({active:0,lastModified:{},etag:{}});function ajaxHandleResponses(s,jqXHR,responses){var contents=s.contents,dataTypes=s.dataTypes,responseFields=s.responseFields,ct,type,finalDataType,firstDataType;for(type in responseFields){if(type in responses){jqXHR[responseFields[type]]=responses[type]}}while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("content-type")}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}}}if(dataTypes[0] in responses){finalDataType=dataTypes[0]}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}if(!firstDataType){firstDataType=type}}finalDataType=finalDataType||firstDataType}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType)}return responses[finalDataType]}}function ajaxConvert(s,response){if(s.dataFilter){response=s.dataFilter(response,s.dataType)}var dataTypes=s.dataTypes,converters={},i,key,length=dataTypes.length,tmp,current=dataTypes[0],prev,conversion,conv,conv1,conv2;for(i=1;i<length;i++){if(i===1){for(key in s.converters){if(typeof key==="string"){converters[key.toLowerCase()]=s.converters[key]}}}prev=current;current=dataTypes[i];if(current==="*"){current=prev}else{if(prev!=="*"&&prev!==current){conversion=prev+" "+current;conv=converters[conversion]||converters["* "+current];if(!conv){conv2=undefined;for(conv1 in converters){tmp=conv1.split(" ");if(tmp[0]===prev||tmp[0]==="*"){conv2=converters[tmp[1]+" "+current];if(conv2){conv1=converters[conv1];if(conv1===true){conv=conv2}else{if(conv2===true){conv=conv1}}break}}}}if(!(conv||conv2)){jQuery.error("No conversion from "+conversion.replace(" "," to "))}if(conv!==true){response=conv?conv(response):conv2(conv1(response))}}}}return response}var jsc=jQuery.now(),jsre=/(\=)\?(&|$)|\?\?/i;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return jQuery.expando+"_"+(jsc++)}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var inspectData=s.contentType==="application/x-www-form-urlencoded"&&(typeof s.data==="string");if(s.dataTypes[0]==="jsonp"||s.jsonp!==false&&(jsre.test(s.url)||inspectData&&jsre.test(s.data))){var responseContainer,jsonpCallback=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback,previous=window[jsonpCallback],url=s.url,data=s.data,replace="$1"+jsonpCallback+"$2";if(s.jsonp!==false){url=url.replace(jsre,replace);if(s.url===url){if(inspectData){data=data.replace(jsre,replace)}if(s.data===data){url+=(/\?/.test(url)?"&":"?")+s.jsonp+"="+jsonpCallback}}}s.url=url;s.data=data;window[jsonpCallback]=function(response){responseContainer=[response]};jqXHR.always(function(){window[jsonpCallback]=previous;if(responseContainer&&jQuery.isFunction(previous)){window[jsonpCallback](responseContainer[0])}});s.converters["script json"]=function(){if(!responseContainer){jQuery.error(jsonpCallback+" was not called")}return responseContainer[0]};s.dataTypes[0]="json";return"script"}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(text){jQuery.globalEval(text);return text}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false}if(s.crossDomain){s.type="GET";s.global=false}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,head=document.head||document.getElementsByTagName("head")[0]||document.documentElement;return{send:function(_,callback){script=document.createElement("script");script.async="async";if(s.scriptCharset){script.charset=s.scriptCharset}script.src=s.url;script.onload=script.onreadystatechange=function(_,isAbort){if(isAbort||!script.readyState||/loaded|complete/.test(script.readyState)){script.onload=script.onreadystatechange=null;if(head&&script.parentNode){head.removeChild(script)}script=undefined;if(!isAbort){callback(200,"success")}}};head.insertBefore(script,head.firstChild)},abort:function(){if(script){script.onload(0,1)}}}}});var xhrOnUnloadAbort=window.ActiveXObject?function(){for(var key in xhrCallbacks){xhrCallbacks[key](0,1)}}:false,xhrId=0,xhrCallbacks;function createStandardXHR(){try{return new window.XMLHttpRequest()}catch(e){}}function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}jQuery.ajaxSettings.xhr=window.ActiveXObject?function(){return !this.isLocal&&createStandardXHR()||createActiveXHR()}:createStandardXHR;(function(xhr){jQuery.extend(jQuery.support,{ajax:!!xhr,cors:!!xhr&&("withCredentials" in xhr)})})(jQuery.ajaxSettings.xhr());if(jQuery.support.ajax){jQuery.ajaxTransport(function(s){if(!s.crossDomain||jQuery.support.cors){var callback;return{send:function(headers,complete){var xhr=s.xhr(),handle,i;if(s.username){xhr.open(s.type,s.url,s.async,s.username,s.password)}else{xhr.open(s.type,s.url,s.async)}if(s.xhrFields){for(i in s.xhrFields){xhr[i]=s.xhrFields[i]}}if(s.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(s.mimeType)}if(!s.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest"}try{for(i in headers){xhr.setRequestHeader(i,headers[i])}}catch(_){}xhr.send((s.hasContent&&s.data)||null);callback=function(_,isAbort){var status,statusText,responseHeaders,responses,xml;try{if(callback&&(isAbort||xhr.readyState===4)){callback=undefined;if(handle){xhr.onreadystatechange=jQuery.noop;if(xhrOnUnloadAbort){delete xhrCallbacks[handle]}}if(isAbort){if(xhr.readyState!==4){xhr.abort()}}else{status=xhr.status;responseHeaders=xhr.getAllResponseHeaders();responses={};xml=xhr.responseXML;if(xml&&xml.documentElement){responses.xml=xml}responses.text=xhr.responseText;try{statusText=xhr.statusText}catch(e){statusText=""}if(!status&&s.isLocal&&!s.crossDomain){status=responses.text?200:404}else{if(status===1223){status=204}}}}}catch(firefoxAccessException){if(!isAbort){complete(-1,firefoxAccessException)}}if(responses){complete(status,statusText,responses,responseHeaders)}};if(!s.async||xhr.readyState===4){callback()}else{handle=++xhrId;if(xhrOnUnloadAbort){if(!xhrCallbacks){xhrCallbacks={};jQuery(window).unload(xhrOnUnloadAbort)}xhrCallbacks[handle]=callback}xhr.onreadystatechange=callback}},abort:function(){if(callback){callback(0,1)}}}}})}var elemdisplay={},iframe,iframeDoc,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,timerId,fxAttrs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],fxNow,requestAnimationFrame=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame;jQuery.fn.extend({show:function(speed,easing,callback){var elem,display;if(speed||speed===0){return this.animate(genFx("show",3),speed,easing,callback)}else{for(var i=0,j=this.length;i<j;i++){elem=this[i];if(elem.style){display=elem.style.display;if(!jQuery._data(elem,"olddisplay")&&display==="none"){display=elem.style.display=""}if(display===""&&jQuery.css(elem,"display")==="none"){jQuery._data(elem,"olddisplay",defaultDisplay(elem.nodeName))}}}for(i=0;i<j;i++){elem=this[i];if(elem.style){display=elem.style.display;if(display===""||display==="none"){elem.style.display=jQuery._data(elem,"olddisplay")||""}}}return this}},hide:function(speed,easing,callback){if(speed||speed===0){return this.animate(genFx("hide",3),speed,easing,callback)}else{for(var i=0,j=this.length;i<j;i++){if(this[i].style){var display=jQuery.css(this[i],"display");if(display!=="none"&&!jQuery._data(this[i],"olddisplay")){jQuery._data(this[i],"olddisplay",display)}}}for(i=0;i<j;i++){if(this[i].style){this[i].style.display="none"}}return this}},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2,callback){var bool=typeof fn==="boolean";if(jQuery.isFunction(fn)&&jQuery.isFunction(fn2)){this._toggle.apply(this,arguments)}else{if(fn==null||bool){this.each(function(){var state=bool?fn:jQuery(this).is(":hidden");jQuery(this)[state?"show":"hide"]()})}else{this.animate(genFx("toggle",3),fn,fn2,callback)}}return this},fadeTo:function(speed,to,easing,callback){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);if(jQuery.isEmptyObject(prop)){return this.each(optall.complete,[false])}prop=jQuery.extend({},prop);return this[optall.queue===false?"each":"queue"](function(){if(optall.queue===false){jQuery._mark(this)}var opt=jQuery.extend({},optall),isElement=this.nodeType===1,hidden=isElement&&jQuery(this).is(":hidden"),name,val,p,display,e,parts,start,end,unit;opt.animatedProperties={};for(p in prop){name=jQuery.camelCase(p);if(p!==name){prop[name]=prop[p];delete prop[p]}val=prop[name];if(jQuery.isArray(val)){opt.animatedProperties[name]=val[1];val=prop[name]=val[0]}else{opt.animatedProperties[name]=opt.specialEasing&&opt.specialEasing[name]||opt.easing||"swing"}if(val==="hide"&&hidden||val==="show"&&!hidden){return opt.complete.call(this)}if(isElement&&(name==="height"||name==="width")){opt.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(jQuery.css(this,"display")==="inline"&&jQuery.css(this,"float")==="none"){if(!jQuery.support.inlineBlockNeedsLayout){this.style.display="inline-block"}else{display=defaultDisplay(this.nodeName);if(display==="inline"){this.style.display="inline-block"}else{this.style.display="inline";this.style.zoom=1}}}}}if(opt.overflow!=null){this.style.overflow="hidden"}for(p in prop){e=new jQuery.fx(this,opt,p);val=prop[p];if(rfxtypes.test(val)){e[val==="toggle"?hidden?"show":"hide":val]()}else{parts=rfxnum.exec(val);start=e.cur();if(parts){end=parseFloat(parts[2]);unit=parts[3]||(jQuery.cssNumber[p]?"":"px");if(unit!=="px"){jQuery.style(this,p,(end||1)+unit);start=((end||1)/e.cur())*start;jQuery.style(this,p,start+unit)}if(parts[1]){end=((parts[1]==="-="?-1:1)*end)+start}e.custom(start,end,unit)}else{e.custom(start,val,"")}}}return true})},stop:function(clearQueue,gotoEnd){if(clearQueue){this.queue([])}this.each(function(){var timers=jQuery.timers,i=timers.length;if(!gotoEnd){jQuery._unmark(true,this)}while(i--){if(timers[i].elem===this){if(gotoEnd){timers[i](true)}timers.splice(i,1)}}});if(!gotoEnd){this.dequeue()}return this}});function createFxNow(){setTimeout(clearFxNow,0);return(fxNow=jQuery.now())}function clearFxNow(){fxNow=undefined}function genFx(type,num){var obj={};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type});return obj}jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),slideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}});jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;opt.old=opt.complete;opt.complete=function(noUnmark){if(opt.queue!==false){jQuery.dequeue(this)}else{if(noUnmark!==false){jQuery._unmark(this)}}if(jQuery.isFunction(opt.old)){opt.old.call(this)}};return opt},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum}},timers:[],fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;options.orig=options.orig||{}}});jQuery.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var parsed,r=jQuery.css(this.elem,this.prop);return isNaN(parsed=parseFloat(r))?!r||r==="auto"?0:r:parsed},custom:function(from,to,unit){var self=this,fx=jQuery.fx,raf;this.startTime=fxNow||createFxNow();this.start=from;this.end=to;this.unit=unit||this.unit||(jQuery.cssNumber[this.prop]?"":"px");this.now=this.start;this.pos=this.state=0;function t(gotoEnd){return self.step(gotoEnd)}t.elem=this.elem;if(t()&&jQuery.timers.push(t)&&!timerId){if(requestAnimationFrame){timerId=1;raf=function(){if(timerId){requestAnimationFrame(raf);fx.tick()}};requestAnimationFrame(raf)}else{timerId=setInterval(fx.tick,fx.interval)}}},show:function(){this.options.orig[this.prop]=jQuery.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());jQuery(this.elem).show()},hide:function(){this.options.orig[this.prop]=jQuery.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(gotoEnd){var t=fxNow||createFxNow(),done=true,elem=this.elem,options=this.options,i,n;if(gotoEnd||t>=options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();options.animatedProperties[this.prop]=true;for(i in options.animatedProperties){if(options.animatedProperties[i]!==true){done=false}}if(done){if(options.overflow!=null&&!jQuery.support.shrinkWrapBlocks){jQuery.each(["","X","Y"],function(index,value){elem.style["overflow"+value]=options.overflow[index]})}if(options.hide){jQuery(elem).hide()}if(options.hide||options.show){for(var p in options.animatedProperties){jQuery.style(elem,p,options.orig[p])}}options.complete.call(elem)}return false}else{if(options.duration==Infinity){this.now=t}else{n=t-this.startTime;this.state=n/options.duration;this.pos=jQuery.easing[options.animatedProperties[this.prop]](this.state,n,0,1,options.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};jQuery.extend(jQuery.fx,{tick:function(){for(var timers=jQuery.timers,i=0;i<timers.length;++i){if(!timers[i]()){timers.splice(i--,1)}}if(!timers.length){jQuery.fx.stop()}},interval:13,stop:function(){clearInterval(timerId);timerId=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(fx){jQuery.style(fx.elem,"opacity",fx.now)},_default:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=null){fx.elem.style[fx.prop]=(fx.prop==="width"||fx.prop==="height"?Math.max(0,fx.now):fx.now)+fx.unit}else{fx.elem[fx.prop]=fx.now}}}});if(jQuery.expr&&jQuery.expr.filters){jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length}}function defaultDisplay(nodeName){if(!elemdisplay[nodeName]){var elem=jQuery("<"+nodeName+">").appendTo("body"),display=elem.css("display");elem.remove();if(display==="none"||display===""){if(!iframe){iframe=document.createElement("iframe");iframe.frameBorder=iframe.width=iframe.height=0}document.body.appendChild(iframe);if(!iframeDoc||!iframe.createElement){iframeDoc=(iframe.contentWindow||iframe.contentDocument).document;iframeDoc.write("<!doctype><html><body></body></html>")}elem=iframeDoc.createElement(nodeName);iframeDoc.body.appendChild(elem);display=jQuery.css(elem,"display");document.body.removeChild(iframe)}elemdisplay[nodeName]=display}return elemdisplay[nodeName]}var rtable=/^t(?:able|d|h)$/i,rroot=/^(?:body|html)$/i;if("getBoundingClientRect" in document.documentElement){jQuery.fn.offset=function(options){var elem=this[0],box;if(options){return this.each(function(i){jQuery.offset.setOffset(this,options,i)})}if(!elem||!elem.ownerDocument){return null}if(elem===elem.ownerDocument.body){return jQuery.offset.bodyOffset(elem)}try{box=elem.getBoundingClientRect()}catch(e){}var doc=elem.ownerDocument,docElem=doc.documentElement;if(!box||!jQuery.contains(docElem,elem)){return box?{top:box.top,left:box.left}:{top:0,left:0}}var body=doc.body,win=getWindow(doc),clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,scrollTop=win.pageYOffset||jQuery.support.boxModel&&docElem.scrollTop||body.scrollTop,scrollLeft=win.pageXOffset||jQuery.support.boxModel&&docElem.scrollLeft||body.scrollLeft,top=box.top+scrollTop-clientTop,left=box.left+scrollLeft-clientLeft;return{top:top,left:left}}}else{jQuery.fn.offset=function(options){var elem=this[0];if(options){return this.each(function(i){jQuery.offset.setOffset(this,options,i)})}if(!elem||!elem.ownerDocument){return null}if(elem===elem.ownerDocument.body){return jQuery.offset.bodyOffset(elem)}jQuery.offset.initialize();var computedStyle,offsetParent=elem.offsetParent,prevOffsetParent=elem,doc=elem.ownerDocument,docElem=doc.documentElement,body=doc.body,defaultView=doc.defaultView,prevComputedStyle=defaultView?defaultView.getComputedStyle(elem,null):elem.currentStyle,top=elem.offsetTop,left=elem.offsetLeft;while((elem=elem.parentNode)&&elem!==body&&elem!==docElem){if(jQuery.offset.supportsFixedPosition&&prevComputedStyle.position==="fixed"){break}computedStyle=defaultView?defaultView.getComputedStyle(elem,null):elem.currentStyle;top-=elem.scrollTop;left-=elem.scrollLeft;if(elem===offsetParent){top+=elem.offsetTop;left+=elem.offsetLeft;if(jQuery.offset.doesNotAddBorder&&!(jQuery.offset.doesAddBorderForTableAndCells&&rtable.test(elem.nodeName))){top+=parseFloat(computedStyle.borderTopWidth)||0;left+=parseFloat(computedStyle.borderLeftWidth)||0}prevOffsetParent=offsetParent;offsetParent=elem.offsetParent}if(jQuery.offset.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible"){top+=parseFloat(computedStyle.borderTopWidth)||0;left+=parseFloat(computedStyle.borderLeftWidth)||0}prevComputedStyle=computedStyle}if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static"){top+=body.offsetTop;left+=body.offsetLeft}if(jQuery.offset.supportsFixedPosition&&prevComputedStyle.position==="fixed"){top+=Math.max(docElem.scrollTop,body.scrollTop);left+=Math.max(docElem.scrollLeft,body.scrollLeft)}return{top:top,left:left}}}jQuery.offset={initialize:function(){var body=document.body,container=document.createElement("div"),innerDiv,checkDiv,table,td,bodyMarginTop=parseFloat(jQuery.css(body,"marginTop"))||0,html="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";jQuery.extend(container.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});container.innerHTML=html;body.insertBefore(container,body.firstChild);innerDiv=container.firstChild;checkDiv=innerDiv.firstChild;td=innerDiv.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(checkDiv.offsetTop!==5);this.doesAddBorderForTableAndCells=(td.offsetTop===5);checkDiv.style.position="fixed";checkDiv.style.top="20px";this.supportsFixedPosition=(checkDiv.offsetTop===20||checkDiv.offsetTop===15);checkDiv.style.position=checkDiv.style.top="";innerDiv.style.overflow="hidden";innerDiv.style.position="relative";this.subtractsBorderForOverflowNotVisible=(checkDiv.offsetTop===-5);this.doesNotIncludeMarginInBodyOffset=(body.offsetTop!==bodyMarginTop);body.removeChild(container);jQuery.offset.initialize=jQuery.noop},bodyOffset:function(body){var top=body.offsetTop,left=body.offsetLeft;jQuery.offset.initialize();if(jQuery.offset.doesNotIncludeMarginInBodyOffset){top+=parseFloat(jQuery.css(body,"marginTop"))||0;left+=parseFloat(jQuery.css(body,"marginLeft"))||0}return{top:top,left:left}},setOffset:function(elem,options,i){var position=jQuery.css(elem,"position");if(position==="static"){elem.style.position="relative"}var curElem=jQuery(elem),curOffset=curElem.offset(),curCSSTop=jQuery.css(elem,"top"),curCSSLeft=jQuery.css(elem,"left"),calculatePosition=(position==="absolute"||position==="fixed")&&jQuery.inArray("auto",[curCSSTop,curCSSLeft])>-1,props={},curPosition={},curTop,curLeft;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0}if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset)}if(options.top!=null){props.top=(options.top-curOffset.top)+curTop}if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft}if("using" in options){options.using.call(elem,props)}else{curElem.css(props)}}};jQuery.fn.extend({position:function(){if(!this[0]){return null}var elem=this[0],offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=rroot.test(offsetParent[0].nodeName)?{top:0,left:0}:offsetParent.offset();offset.top-=parseFloat(jQuery.css(elem,"marginTop"))||0;offset.left-=parseFloat(jQuery.css(elem,"marginLeft"))||0;parentOffset.top+=parseFloat(jQuery.css(offsetParent[0],"borderTopWidth"))||0;parentOffset.left+=parseFloat(jQuery.css(offsetParent[0],"borderLeftWidth"))||0;return{top:offset.top-parentOffset.top,left:offset.left-parentOffset.left}},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||document.body;while(offsetParent&&(!rroot.test(offsetParent.nodeName)&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent}return offsetParent})}});jQuery.each(["Left","Top"],function(i,name){var method="scroll"+name;jQuery.fn[method]=function(val){var elem,win;if(val===undefined){elem=this[0];if(!elem){return null}win=getWindow(elem);return win?("pageXOffset" in win)?win[i?"pageYOffset":"pageXOffset"]:jQuery.support.boxModel&&win.document.documentElement[method]||win.document.body[method]:elem[method]}return this.each(function(){win=getWindow(this);if(win){win.scrollTo(!i?val:jQuery(win).scrollLeft(),i?val:jQuery(win).scrollTop())}else{this[method]=val}})}});function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9?elem.defaultView||elem.parentWindow:false}jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn["inner"+name]=function(){return this[0]?parseFloat(jQuery.css(this[0],type,"padding")):null};jQuery.fn["outer"+name]=function(margin){return this[0]?parseFloat(jQuery.css(this[0],type,margin?"margin":"border")):null};jQuery.fn[type]=function(size){var elem=this[0];if(!elem){return size==null?null:this}if(jQuery.isFunction(size)){return this.each(function(i){var self=jQuery(this);self[type](size.call(this,i,self[type]()))})}if(jQuery.isWindow(elem)){var docElemProp=elem.document.documentElement["client"+name];return elem.document.compatMode==="CSS1Compat"&&docElemProp||elem.document.body["client"+name]||docElemProp}else{if(elem.nodeType===9){return Math.max(elem.documentElement["client"+name],elem.body["scroll"+name],elem.documentElement["scroll"+name],elem.body["offset"+name],elem.documentElement["offset"+name])}else{if(size===undefined){var orig=jQuery.css(elem,type),ret=parseFloat(orig);return jQuery.isNaN(ret)?orig:ret}else{return this.css(type,typeof size==="string"?size:size+"px")}}}}});window.jQuery=window.$=jQuery})(window);/*
+ * jQuery UI 1.8.12
+ *
+ * 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($,undefined){$.ui=$.ui||{};if($.ui.version){return }$.extend($.ui,{version:"1.8.12",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}});$.fn.extend({_focus:$.fn.focus,focus:function(delay,fn){return typeof delay==="number"?this.each(function(){var elem=this;setTimeout(function(){$(elem).focus();if(fn){fn.call(elem)}},delay)}):this._focus.apply(this,arguments)},scrollParent:function(){var scrollParent;if(($.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){scrollParent=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test($.curCSS(this,"position",1))&&(/(auto|scroll)/).test($.curCSS(this,"overflow",1)+$.curCSS(this,"overflow-y",1)+$.curCSS(this,"overflow-x",1))}).eq(0)}else{scrollParent=this.parents().filter(function(){return(/(auto|scroll)/).test($.curCSS(this,"overflow",1)+$.curCSS(this,"overflow-y",1)+$.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!scrollParent.length?$(document):scrollParent},zIndex:function(zIndex){if(zIndex!==undefined){return this.css("zIndex",zIndex)}if(this.length){var elem=$(this[0]),position,value;while(elem.length&&elem[0]!==document){position=elem.css("position");if(position==="absolute"||position==="relative"||position==="fixed"){value=parseInt(elem.css("zIndex"),10);if(!isNaN(value)&&value!==0){return value}}elem=elem.parent()}}return 0},disableSelection:function(){return this.bind(($.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(event){event.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});$.each(["Width","Height"],function(i,name){var side=name==="Width"?["Left","Right"]:["Top","Bottom"],type=name.toLowerCase(),orig={innerWidth:$.fn.innerWidth,innerHeight:$.fn.innerHeight,outerWidth:$.fn.outerWidth,outerHeight:$.fn.outerHeight};function reduce(elem,size,border,margin){$.each(side,function(){size-=parseFloat($.curCSS(elem,"padding"+this,true))||0;if(border){size-=parseFloat($.curCSS(elem,"border"+this+"Width",true))||0}if(margin){size-=parseFloat($.curCSS(elem,"margin"+this,true))||0}});return size}$.fn["inner"+name]=function(size){if(size===undefined){return orig["inner"+name].call(this)}return this.each(function(){$(this).css(type,reduce(this,size)+"px")})};$.fn["outer"+name]=function(size,margin){if(typeof size!=="number"){return orig["outer"+name].call(this,size)}return this.each(function(){$(this).css(type,reduce(this,size,true,margin)+"px")})}});function visible(element){return !$(element).parents().andSelf().filter(function(){return $.curCSS(this,"visibility")==="hidden"||$.expr.filters.hidden(this)}).length}$.extend($.expr[":"],{data:function(elem,i,match){return !!$.data(elem,match[3])},focusable:function(element){var nodeName=element.nodeName.toLowerCase(),tabIndex=$.attr(element,"tabindex");if("area"===nodeName){var map=element.parentNode,mapName=map.name,img;if(!element.href||!mapName||map.nodeName.toLowerCase()!=="map"){return false}img=$("img[usemap=#"+mapName+"]")[0];return !!img&&visible(img)}return(/input|select|textarea|button|object/.test(nodeName)?!element.disabled:"a"==nodeName?element.href||!isNaN(tabIndex):!isNaN(tabIndex))&&visible(element)},tabbable:function(element){var tabIndex=$.attr(element,"tabindex");return(isNaN(tabIndex)||tabIndex>=0)&&$(element).is(":focusable")}});$(function(){var body=document.body,div=body.appendChild(div=document.createElement("div"));$.extend(div.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});$.support.minHeight=div.offsetHeight===100;$.support.selectstart="onselectstart" in div;body.removeChild(div).style.display="none"});$.extend($.ui,{plugin:{add:function(module,option,set){var proto=$.ui[module].prototype;for(var i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]])}},call:function(instance,name,args){var set=instance.plugins[name];if(!set||!instance.element[0].parentNode){return }for(var i=0;i<set.length;i++){if(instance.options[set[i][0]]){set[i][1].apply(instance.element,args)}}}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(el,a){if($(el).css("overflow")==="hidden"){return false}var scroll=(a&&a==="left")?"scrollLeft":"scrollTop",has=false;if(el[scroll]>0){return true}el[scroll]=1;has=(el[scroll]>0);el[scroll]=0;return has},isOverAxis:function(x,reference,size){return(x>reference)&&(x<(reference+size))},isOver:function(y,x,top,left,height,width){return $.ui.isOverAxis(y,top,height)&&$.ui.isOverAxis(x,left,width)}})})(jQuery);/*
+ * jQuery UI Widget 1.8.12
+ *
+ * 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/Widget
+ */
+(function($,undefined){if($.cleanData){var _cleanData=$.cleanData;$.cleanData=function(elems){for(var i=0,elem;(elem=elems[i])!=null;i++){$(elem).triggerHandler("remove")}_cleanData(elems)}}else{var _remove=$.fn.remove;$.fn.remove=function(selector,keepData){return this.each(function(){if(!keepData){if(!selector||$.filter(selector,[this]).length){$("*",this).add([this]).each(function(){$(this).triggerHandler("remove")})}}return _remove.call($(this),selector,keepData)})}}$.widget=function(name,base,prototype){var namespace=name.split(".")[0],fullName;name=name.split(".")[1];fullName=namespace+"-"+name;if(!prototype){prototype=base;base=$.Widget}$.expr[":"][fullName]=function(elem){return !!$.data(elem,name)};$[namespace]=$[namespace]||{};$[namespace][name]=function(options,element){if(arguments.length){this._createWidget(options,element)}};var basePrototype=new base();basePrototype.options=$.extend(true,{},basePrototype.options);$[namespace][name].prototype=$.extend(true,basePrototype,{namespace:namespace,widgetName:name,widgetEventPrefix:$[namespace][name].prototype.widgetEventPrefix||name,widgetBaseClass:fullName},prototype);$.widget.bridge(name,$[namespace][name])};$.widget.bridge=function(name,object){$.fn[name]=function(options){var isMethodCall=typeof options==="string",args=Array.prototype.slice.call(arguments,1),returnValue=this;options=!isMethodCall&&args.length?$.extend.apply(null,[true,options].concat(args)):options;if(isMethodCall&&options.charAt(0)==="_"){return returnValue}if(isMethodCall){this.each(function(){var instance=$.data(this,name),methodValue=instance&&$.isFunction(instance[options])?instance[options].apply(instance,args):instance;if(methodValue!==instance&&methodValue!==undefined){returnValue=methodValue;return false}})}else{this.each(function(){var instance=$.data(this,name);if(instance){instance.option(options||{})._init()}else{$.data(this,name,new object(options,this))}})}return returnValue}};$.Widget=function(options,element){if(arguments.length){this._createWidget(options,element)}};$.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(options,element){$.data(element,this.widgetName,this);this.element=$(element);this.options=$.extend(true,{},this.options,this._getCreateOptions(),options);var self=this;this.element.bind("remove."+this.widgetName,function(){self.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return $.metadata&&$.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(key,value){var options=key;if(arguments.length===0){return $.extend({},this.options)}if(typeof key==="string"){if(value===undefined){return this.options[key]}options={};options[key]=value}this._setOptions(options);return this},_setOptions:function(options){var self=this;$.each(options,function(key,value){self._setOption(key,value)});return this},_setOption:function(key,value){this.options[key]=value;if(key==="disabled"){this.widget()[value?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",value)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(type,event,data){var callback=this.options[type];event=$.Event(event);event.type=(type===this.widgetEventPrefix?type:this.widgetEventPrefix+type).toLowerCase();data=data||{};if(event.originalEvent){for(var i=$.event.props.length,prop;i;){prop=$.event.props[--i];event[prop]=event.originalEvent[prop]}}this.element.trigger(event,data);return !($.isFunction(callback)&&callback.call(this.element[0],event,data)===false||event.isDefaultPrevented())}}})(jQuery);/*
+ * jQuery UI Mouse 1.8.12
+ *
+ * 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/Mouse
+ *
+ * Depends:
+ *     jquery.ui.widget.js
+ */
+(function($,undefined){$.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var self=this;this.element.bind("mousedown."+this.widgetName,function(event){return self._mouseDown(event)}).bind("click."+this.widgetName,function(event){if(true===$.data(event.target,self.widgetName+".preventClickEvent")){$.removeData(event.target,self.widgetName+".preventClickEvent");event.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(event){event.originalEvent=event.originalEvent||{};if(event.originalEvent.mouseHandled){return }(this._mouseStarted&&this._mouseUp(event));this._mouseDownEvent=event;var self=this,btnIsLeft=(event.which==1),elIsCancel=(typeof this.options.cancel=="string"?$(event.target).parents().add(event.target).filter(this.options.cancel).length:false);if(!btnIsLeft||elIsCancel||!this._mouseCapture(event)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){self.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(event)!==false);if(!this._mouseStarted){event.preventDefault();return true}}if(true===$.data(event.target,this.widgetName+".preventClickEvent")){$.removeData(event.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(event){return self._mouseMove(event)};this._mouseUpDelegate=function(event){return self._mouseUp(event)};$(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);event.preventDefault();event.originalEvent.mouseHandled=true;return true},_mouseMove:function(event){if($.browser.msie&&!(document.documentMode>=9)&&!event.button){return this._mouseUp(event)}if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault()}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,event)!==false);(this._mouseStarted?this._mouseDrag(event):this._mouseUp(event))}return !this._mouseStarted},_mouseUp:function(event){$(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(event.target==this._mouseDownEvent.target){$.data(event.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(event)}return false},_mouseDistanceMet:function(event){return(Math.max(Math.abs(this._mouseDownEvent.pageX-event.pageX),Math.abs(this._mouseDownEvent.pageY-event.pageY))>=this.options.distance)},_mouseDelayMet:function(event){return this.mouseDelayMet},_mouseStart:function(event){},_mouseDrag:function(event){},_mouseStop:function(event){},_mouseCapture:function(event){return true}})})(jQuery);(function($,undefined){$.ui=$.ui||{};var horizontalPositions=/left|center|right/,verticalPositions=/top|center|bottom/,center="center",_position=$.fn.position,_offset=$.fn.offset;$.fn.position=function(options){if(!options||!options.of){return _position.apply(this,arguments)}options=$.extend({},options);var target=$(options.of),targetElem=target[0],collision=(options.collision||"flip").split(" "),offset=options.offset?options.offset.split(" "):[0,0],targetWidth,targetHeight,basePosition;if(targetElem.nodeType===9){targetWidth=target.width();targetHeight=target.height();basePosition={top:0,left:0}}else{if(targetElem.setTimeout){targetWidth=target.width();targetHeight=target.height();basePosition={top:target.scrollTop(),left:target.scrollLeft()}}else{if(targetElem.preventDefault){options.at="left top";targetWidth=targetHeight=0;basePosition={top:options.of.pageY,left:options.of.pageX}}else{targetWidth=target.outerWidth();targetHeight=target.outerHeight();basePosition=target.offset()}}}$.each(["my","at"],function(){var pos=(options[this]||"").split(" ");if(pos.length===1){pos=horizontalPositions.test(pos[0])?pos.concat([center]):verticalPositions.test(pos[0])?[center].concat(pos):[center,center]}pos[0]=horizontalPositions.test(pos[0])?pos[0]:center;pos[1]=verticalPositions.test(pos[1])?pos[1]:center;options[this]=pos});if(collision.length===1){collision[1]=collision[0]}offset[0]=parseInt(offset[0],10)||0;if(offset.length===1){offset[1]=offset[0]}offset[1]=parseInt(offset[1],10)||0;if(options.at[0]==="right"){basePosition.left+=targetWidth}else{if(options.at[0]===center){basePosition.left+=targetWidth/2}}if(options.at[1]==="bottom"){basePosition.top+=targetHeight}else{if(options.at[1]===center){basePosition.top+=targetHeight/2}}basePosition.left+=offset[0];basePosition.top+=offset[1];return this.each(function(){var elem=$(this),elemWidth=elem.outerWidth(),elemHeight=elem.outerHeight(),marginLeft=parseInt($.curCSS(this,"marginLeft",true))||0,marginTop=parseInt($.curCSS(this,"marginTop",true))||0,collisionWidth=elemWidth+marginLeft+(parseInt($.curCSS(this,"marginRight",true))||0),collisionHeight=elemHeight+marginTop+(parseInt($.curCSS(this,"marginBottom",true))||0),position=$.extend({},basePosition),collisionPosition;if(options.my[0]==="right"){position.left-=elemWidth}else{if(options.my[0]===center){position.left-=elemWidth/2}}if(options.my[1]==="bottom"){position.top-=elemHeight}else{if(options.my[1]===center){position.top-=elemHeight/2}}position.left=Math.round(position.left);position.top=Math.round(position.top);collisionPosition={left:position.left-marginLeft,top:position.top-marginTop};$.each(["left","top"],function(i,dir){if($.ui.position[collision[i]]){$.ui.position[collision[i]][dir](position,{targetWidth:targetWidth,targetHeight:targetHeight,elemWidth:elemWidth,elemHeight:elemHeight,collisionPosition:collisionPosition,collisionWidth:collisionWidth,collisionHeight:collisionHeight,offset:offset,my:options.my,at:options.at})}});if($.fn.bgiframe){elem.bgiframe()}elem.offset($.extend(position,{using:options.using}))})};$.ui.position={fit:{left:function(position,data){var win=$(window),over=data.collisionPosition.left+data.collisionWidth-win.width()-win.scrollLeft();position.left=over>0?position.left-over:Math.max(position.left-data.collisionPosition.left,position.left)},top:function(position,data){var win=$(window),over=data.collisionPosition.top+data.collisionHeight-win.height()-win.scrollTop();position.top=over>0?position.top-over:Math.max(position.top-data.collisionPosition.top,position.top)}},flip:{left:function(position,data){if(data.at[0]===center){return }var win=$(window),over=data.collisionPosition.left+data.collisionWidth-win.width()-win.scrollLeft(),myOffset=data.my[0]==="left"?-data.elemWidth:data.my[0]==="right"?data.elemWidth:0,atOffset=data.at[0]==="left"?data.targetWidth:-data.targetWidth,offset=-2*data.offset[0];position.left+=data.collisionPosition.left<0?myOffset+atOffset+offset:over>0?myOffset+atOffset+offset:0},top:function(position,data){if(data.at[1]===center){return }var win=$(window),over=data.collisionPosition.top+data.collisionHeight-win.height()-win.scrollTop(),myOffset=data.my[1]==="top"?-data.elemHeight:data.my[1]==="bottom"?data.elemHeight:0,atOffset=data.at[1]==="top"?data.targetHeight:-data.targetHeight,offset=-2*data.offset[1];position.top+=data.collisionPosition.top<0?myOffset+atOffset+offset:over>0?myOffset+atOffset+offset:0}}};if(!$.offset.setOffset){$.offset.setOffset=function(elem,options){if(/static/.test($.curCSS(elem,"position"))){elem.style.position="relative"}var curElem=$(elem),curOffset=curElem.offset(),curTop=parseInt($.curCSS(elem,"top",true),10)||0,curLeft=parseInt($.curCSS(elem,"left",true),10)||0,props={top:(options.top-curOffset.top)+curTop,left:(options.left-curOffset.left)+curLeft};if("using" in options){options.using.call(elem,props)}else{curElem.css(props)}};$.fn.offset=function(options){var elem=this[0];if(!elem||!elem.ownerDocument){return null}if(options){return this.each(function(){$.offset.setOffset(this,options)})}return _offset.call(this)}}}(jQuery));/*
+ * Fluid Infusion v1.3
+ *
+ * Infusion is distributed under the Educational Community License 2.0 and new BSD licenses: 
+ * http://wiki.fluidproject.org/display/fluid/Fluid+Licensing
+ *
+ * For information on copyright, see the individual Infusion source code files: 
+ * https://github.com/fluid-project/infusion/
+ */
+var fluid_1_4=fluid_1_4||{};var fluid=fluid||fluid_1_4;(function($,fluid){fluid.version="Infusion 1.3";fluid.environment={fluid:fluid};var globalObject=window||{};var softFailure=[false];fluid.describeActivity=function(){return[]};fluid.fail=function(message){fluid.setLogging(true);fluid.log.apply(null,["ASSERTION FAILED: "].concat(fluid.makeArray(arguments)).concat(fluid.describeActivity()));if(softFailure[0]){throw new Error(message)}else{message.fail()}};fluid.pushSoftFailure=function(condition){if(typeof (condition)==="boolean"){softFailure.unshift(condition)}else{if(condition===-1){softFailure.shift()}}};fluid.notrycatch=false;fluid.tryCatch=function(tryfun,catchfun,finallyfun){finallyfun=finallyfun||fluid.identity;if(fluid.notrycatch){var togo=tryfun();finallyfun();return togo}else{try{return tryfun()}catch(e){if(catchfun){catchfun(e)}else{throw (e)}}finally{finallyfun()}}};fluid.expect=function(name,members,target){fluid.transform(fluid.makeArray(members),function(key){if(typeof target[key]==="undefined"){fluid.fail(name+" missing required parameter "+key)}})};var logging;fluid.isLogging=function(){return logging};fluid.setLogging=function(enabled){if(typeof enabled==="boolean"){logging=enabled}else{logging=false}};fluid.applyHostFunction=function(obj,func,args){if(func.apply){func.apply(obj,args)}else{var applier=Function.prototype.bind.call(func,obj);applier.apply(obj,args)}};fluid.log=function(message){if(logging){var arg0=fluid.renderTimestamp(new Date())+":  ";var args=[arg0].concat(fluid.makeArray(arguments));var str=args.join("");if(typeof (console)!=="undefined"){if(console.debug){fluid.applyHostFunction(console,console.debug,args)}else{if(typeof (console.log)==="function"){fluid.applyHostFunction(console,console.log,args)}else{console.log(str)}}}else{if(typeof (YAHOO)!=="undefined"){YAHOO.log(str)}else{if(typeof (opera)!=="undefined"){opera.postError(str)}}}}};fluid.wrap=function(obj){return((!obj||obj.jquery)?obj:$(obj))};fluid.unwrap=function(obj){return obj&&obj.jquery&&obj.length===1?obj[0]:obj};fluid.identity=function(arg){return arg};fluid.isValue=function(value){return value!==undefined&&value!==null};fluid.isPrimitive=function(value){var valueType=typeof (value);return !value||valueType==="string"||valueType==="boolean"||valueType==="number"||valueType==="function"};fluid.isDOMNode=function(obj){return obj&&typeof (obj.nodeType)==="number"};fluid.isArrayable=function(totest){return totest&&!fluid.isPrimitive(totest)&&typeof (totest.length)==="number"};fluid.freshContainer=function(tocopy){return fluid.isArrayable(tocopy)?[]:{}};fluid.copy=function(tocopy){if(fluid.isPrimitive(tocopy)){return tocopy}return $.extend(true,fluid.freshContainer(tocopy),tocopy)};fluid.makeArray=function(arg){if(arg===null||arg===undefined){return[]}else{return $.makeArray(arg)}};function transformInternal(source,togo,key,args){var transit=source[key];for(var j=0;j<args.length-1;++j){transit=args[j+1](transit,key)}togo[key]=transit}fluid.transform=function(source){var togo=fluid.freshContainer(source);if(fluid.isArrayable(source)){for(var i=0;i<source.length;++i){transformInternal(source,togo,i,arguments)}}else{for(var key in source){transformInternal(source,togo,key,arguments)}}return togo};fluid.each=function(source,func){if(fluid.isArrayable(source)){for(var i=0;i<source.length;++i){func(source[i],i)}}else{for(var key in source){func(source[key],key)}}};fluid.find=function(source,func,deflt){var disp;if(fluid.isArrayable(source)){for(var i=0;i<source.length;++i){disp=func(source[i],i);if(disp!==undefined){return disp}}}else{for(var key in source){disp=func(source[key],key);if(disp!==undefined){return disp}}}return deflt};fluid.accumulate=function(list,fn,arg){for(var i=0;i<list.length;++i){arg=fn(list[i],arg,i)}return arg};fluid.remove_if=function(source,fn){if(fluid.isArrayable(source)){for(var i=0;i<source.length;++i){if(fn(source[i],i)){source.splice(i,1);--i}}}else{for(var key in source){if(fn(source[key],key)){delete source[key]}}}return source};fluid.filterKeys=function(toFilter,keys,exclude){return fluid.remove_if($.extend({},toFilter),function(value,key){return exclude^($.inArray(key,keys)===-1)})};fluid.censorKeys=function(toCensor,keys){return fluid.filterKeys(toCensor,keys,true)};fluid.keys=function(obj){var togo=[];fluid.each(obj,function(value,key){togo.push(key)});return togo};fluid.contains=function(obj,value){return obj?fluid.find(obj,function(thisValue,key){if(value===thisValue){return true}}):undefined};fluid.keyForValue=function(obj,value){return fluid.find(obj,function(thisValue,key){if(value===thisValue){return key}})};fluid.findKeyInObject=fluid.keyForValue;fluid.arrayToHash=function(array){var togo={};fluid.each(array,function(el){togo[el]=true});return togo};fluid.clear=function(target){if(fluid.isArrayable(target)){target.length=0}else{for(var i in target){delete target[i]}}};fluid.model={};fluid.VALUE={type:"fluid.marker",value:"VALUE"};fluid.NO_VALUE={type:"fluid.marker",value:"NO_VALUE"};fluid.EXPAND={type:"fluid.marker",value:"EXPAND"};fluid.EXPAND_NOW={type:"fluid.marker",value:"EXPAND_NOW"};fluid.isMarker=function(totest,type){if(!totest||typeof (totest)!=="object"||totest.type!=="fluid.marker"){return false}if(!type){return true}return totest===type};fluid.model.copyModel=function(target,source){fluid.clear(target);$.extend(true,target,source)};fluid.model.parseEL=function(EL){return EL===""?[]:String(EL).split(".")};fluid.model.composePath=function(prefix,suffix){return prefix===""?suffix:(suffix===""?prefix:prefix+"."+suffix)};fluid.model.composeSegments=function(){return $.makeArray(arguments).join(".")};fluid.path=fluid.model.composeSegments;fluid.composePath=fluid.model.composePath;fluid.model.environmentStrategy=function(initEnvironment){return{init:function(){var environment=initEnvironment;return function(root,segment,index){var togo;if(environment&&environment[segment]){togo=environment[segment]}environment=null;return togo}}}};fluid.model.defaultCreatorStrategy=function(root,segment){if(root[segment]===undefined){root[segment]={};return root[segment]}};fluid.model.defaultFetchStrategy=function(root,segment){return segment===""?root:root[segment]};fluid.model.funcResolverStrategy=function(root,segment){if(root.resolvePathSegment){return root.resolvePathSegment(segment)}};fluid.model.applyStrategy=function(strategy,root,segment,index){if(typeof (strategy)==="function"){return strategy(root,segment,index)}else{if(strategy&&strategy.next){return strategy.next(root,segment,index)}}};fluid.model.initStrategy=function(baseStrategy,index,oldStrategies){return baseStrategy.init?baseStrategy.init(oldStrategies?oldStrategies[index]:undefined):baseStrategy};fluid.model.makeTrundler=function(root,config,oldStrategies){var that={root:root,strategies:fluid.isArrayable(config)?config:fluid.transform(config.strategies,function(strategy,index){return fluid.model.initStrategy(strategy,index,oldStrategies)})};that.trundle=function(EL,uncess){uncess=uncess||0;var newThat=fluid.model.makeTrundler(that.root,config,that.strategies);newThat.segs=fluid.model.parseEL(EL);newThat.index=0;newThat.step(newThat.segs.length-uncess);return newThat};that.next=function(){if(!that.root){return }var accepted;for(var i=0;i<that.strategies.length;++i){var value=fluid.model.applyStrategy(that.strategies[i],that.root,that.segs[that.index],that.index);if(accepted===undefined){accepted=value}}if(accepted===fluid.NO_VALUE){accepted=undefined}that.root=accepted;++that.index};that.step=function(limit){for(var i=0;i<limit;++i){that.next()}that.last=that.segs[that.index]};return that};fluid.model.defaultSetConfig={strategies:[fluid.model.funcResolverStrategy,fluid.model.defaultFetchStrategy,fluid.model.defaultCreatorStrategy]};fluid.model.trundleImpl=function(trundler,EL,config,uncess){if(typeof (EL)==="string"){trundler=trundler.trundle(EL,uncess)}else{var key=EL.type||"default";var resolver=config.resolvers[key];if(!resolver){fluid.fail("Unable to find resolver of type "+key)}trundler=resolver(EL,trundler)||{};if(EL.path&&trundler.trundle&&trundler.root!==undefined){trundler=fluid.model.trundleImpl(trundler,EL.path,config,uncess)}}return trundler};fluid.model.trundle=function(root,EL,config,uncess){EL=EL||"";config=config||fluid.model.defaultGetConfig;var trundler=fluid.model.makeTrundler(root,config);return fluid.model.trundleImpl(trundler,EL,config,uncess)};fluid.model.getPenultimate=function(root,EL,config){return fluid.model.trundle(root,EL,config,1)};fluid.set=function(root,EL,newValue,config){config=config||fluid.model.defaultSetConfig;var trundler=fluid.model.getPenultimate(root,EL,config);trundler.root[trundler.last]=newValue};fluid.model.defaultGetConfig={strategies:[fluid.model.funcResolverStrategy,fluid.model.defaultFetchStrategy]};fluid.get=function(root,EL,config){return fluid.model.trundle(root,EL,config).root};fluid.model.setBeanValue=fluid.set;fluid.model.getBeanValue=fluid.get;fluid.getGlobalValue=function(path,env){if(path){env=env||fluid.environment;var envFetcher=fluid.model.environmentStrategy(env);return fluid.get(globalObject,path,{strategies:[envFetcher].concat(fluid.model.defaultGetConfig.strategies)})}};fluid.invokeGlobalFunction=function(functionPath,args,environment){var func=fluid.getGlobalValue(functionPath,environment);if(!func){fluid.fail("Error invoking global function: "+functionPath+" could not be located")}else{return func.apply(null,args)}};fluid.registerGlobalFunction=function(functionPath,func,env){env=env||fluid.environment;var envFetcher=fluid.model.environmentStrategy(env);fluid.set(globalObject,functionPath,func,{strategies:[envFetcher].concat(fluid.model.defaultSetConfig.strategies)})};fluid.setGlobalValue=fluid.registerGlobalFunction;fluid.registerNamespace=function(naimspace,env){env=env||fluid.environment;var existing=fluid.getGlobalValue(naimspace,env);if(!existing){existing={};fluid.setGlobalValue(naimspace,existing,env)}return existing};fluid.dumpEl=fluid.identity;fluid.renderTimestamp=fluid.identity;fluid.registerNamespace("fluid.event");fluid.generateUniquePrefix=function(){return(Math.floor(Math.random()*1000000000000)).toString(36)+"-"};var fluid_prefix=fluid.generateUniquePrefix();var fluid_guid=1;fluid.allocateGuid=function(){return fluid_prefix+(fluid_guid++)};fluid.event.identifyListener=function(listener){if(typeof (listener)==="string"){return listener}if(!listener.$$guid){listener.$$guid=fluid.allocateGuid()}return listener.$$guid};fluid.event.mapPriority=function(priority,count){return(priority===null||priority===undefined?-count:(priority==="last"?-Number.MAX_VALUE:(priority==="first"?Number.MAX_VALUE:priority)))};fluid.event.listenerComparator=function(recA,recB){return recB.priority-recA.priority};fluid.event.sortListeners=function(listeners){var togo=[];fluid.each(listeners,function(listener){togo.push(listener)});return togo.sort(fluid.event.listenerComparator)};fluid.event.getEventFirer=function(unicast,preventable){var listeners={};var sortedListeners=[];function fireToListeners(listeners,args,wrapper){for(var i in listeners){var lisrec=listeners[i];var listener=lisrec.listener;if(typeof (listener)==="string"){var listenerFunc=fluid.getGlobalValue(listener);if(!listenerFunc){fluid.fail("Unable to look up name "+listener+" as a global function")}else{listener=lisrec.listener=listenerFunc}}if(lisrec.predicate&&!lisrec.predicate(listener,args)){continue}var value=fluid.tryCatch(function(){var ret=(wrapper?wrapper(listener):listener).apply(null,args);if(preventable&&ret===false){return false}if(unicast){return ret}},function(e){fluid.log("FireEvent received exception "+e.message+" e "+e+" firing to listener "+i);throw (e)});if(value!==undefined){return value}}}return{addListener:function(listener,namespace,predicate,priority){if(!listener){return }if(unicast){namespace="unicast"}if(!namespace){namespace=fluid.event.identifyListener(listener)}listeners[namespace]={listener:listener,predicate:predicate,priority:fluid.event.mapPriority(priority,sortedListeners.length)};sortedListeners=fluid.event.sortListeners(listeners)},removeListener:function(listener){if(typeof (listener)==="string"){delete listeners[listener]}else{if(listener.$$guid){delete listeners[listener.$$guid]}}sortedListeners=fluid.event.sortListeners(listeners)},fireToListeners:function(listeners,args,wrapper){return fireToListeners(listeners,args,wrapper)},fire:function(){return fireToListeners(sortedListeners,arguments)}}};fluid.event.addListenerToFirer=function(firer,value,namespace){if(fluid.isArrayable(value)){for(var i=0;i<value.length;++i){fluid.event.addListenerToFirer(firer,value[i],namespace)}}else{if(typeof (value)==="function"||typeof (value)==="string"){firer.addListener(value,namespace)}else{if(value&&typeof (value)==="object"){firer.addListener(value.listener,namespace||value.namespace,value.predicate,value.priority)}}}};fluid.mergeListeners=function(that,events,listeners){fluid.each(listeners,function(value,key){var firer,namespace;if(key.charAt(0)==="{"){if(!fluid.expandOptions){fluid.fail("fluid.expandOptions could not be loaded - please include FluidIoC.js in order to operate IoC-driven event with descriptor "+key)}firer=fluid.expandOptions(key,that)}else{var keydot=key.indexOf(".");if(keydot!==-1){namespace=key.substring(keydot+1);key=key.substring(0,keydot)}if(!events[key]){fluid.fail("Listener registered for event "+key+" which is not defined for this component");events[key]=fluid.event.getEventFirer()}firer=events[key]}fluid.event.addListenerToFirer(firer,value,namespace)})};function initEvents(that,events,pass){fluid.each(events,function(eventSpec,eventKey){var isIoCEvent=eventSpec&&(typeof (eventSpec)!=="string"||eventSpec.charAt(0)==="{");var event;if(isIoCEvent&&pass==="IoC"){if(!fluid.event.resolveEvent){fluid.fail("fluid.event.resolveEvent could not be loaded - please include FluidIoC.js in order to operate IoC-driven event with descriptor ",eventSpec)}else{event=fluid.event.resolveEvent(that,eventKey,eventSpec)}}else{if(pass==="flat"){event=fluid.event.getEventFirer(eventSpec==="unicast",eventSpec==="preventable")}}if(event){that.events[eventKey]=event}})}fluid.instantiateFirers=function(that,options){that.events={};initEvents(that,options.events,"flat");initEvents(that,options.events,"IoC");var listeners=fluid.expandOptions?fluid.expandOptions(options.listeners,that):options.listeners;fluid.mergeListeners(that,that.events,listeners)};fluid.mergeListenersPolicy=function(target,source){var togo=target||{};fluid.each(source,function(listeners,key){togo[key]=fluid.makeArray(source[key]).concat(fluid.makeArray(listeners))});return togo};var defaultsStore={};var resolveGradesImpl=function(gs,gradeNames){gradeNames=fluid.makeArray(gradeNames);fluid.each(gradeNames,function(gradeName){var options=fluid.rawDefaults(gradeName)||{};gs.gradeHash[gradeName]=true;gs.gradeChain.push(gradeName);gs.optionsChain.push(options);fluid.each(options.gradeNames,function(parent){if(!gs.gradeHash[parent]){resolveGradesImpl(gs,parent)}})});return gs};fluid.resolveGradeStructure=function(gradeNames){var gradeStruct={gradeChain:[],gradeHash:{},optionsChain:[]};return resolveGradesImpl(gradeStruct,gradeNames)};fluid.lifecycleFunctions={preInitFunction:true,postInitFunction:true,finalInitFunction:true};fluid.mergeLifecycleFunction=function(target,source){fluid.event.addListenerToFirer(target,source);return target};fluid.rootMergePolicy=fluid.transform(fluid.lifecycleFunctions,function(){return fluid.mergeLifecycleFunction});fluid.makeLifecycleFirers=function(){return fluid.transform(fluid.lifecycleFunctions,function(){return fluid.event.getEventFirer()})};fluid.resolveGrade=function(defaults,gradeNames){var mergeArgs=[defaults];if(gradeNames){var gradeStruct=fluid.resolveGradeStructure(gradeNames);mergeArgs=gradeStruct.optionsChain.reverse().concat(mergeArgs).concat({gradeNames:gradeStruct.gradeChain})}mergeArgs=[fluid.rootMergePolicy,fluid.makeLifecycleFirers()].concat(mergeArgs);var mergedDefaults=fluid.merge.apply(null,mergeArgs);return mergedDefaults};fluid.resolveGradedOptions=function(componentName){var defaults=fluid.rawDefaults(componentName);if(!defaults){return defaults}else{return fluid.resolveGrade(defaults,defaults.gradeNames)}};fluid.rawDefaults=function(componentName,options){if(options===undefined){return defaultsStore[componentName]}else{defaultsStore[componentName]=options}};fluid.hasGrade=function(options,gradeName){return !options||!options.gradeNames?false:fluid.contains(options.gradeNames,gradeName)};fluid.defaults=function(){var offset=0;if(typeof arguments[0]==="boolean"){offset=1}var componentName=(offset===0?"":"*.global-")+arguments[offset];var options=arguments[offset+1];if(options===undefined){return fluid.resolveGradedOptions(componentName)}else{if(options&&options.options){fluid.fail('Probable error in options structure with option named "options" - perhaps you meant to write these options at top level in fluid.defaults?')}fluid.rawDefaults(componentName,options);if(fluid.hasGrade(options,"autoInit")){fluid.makeComponent(componentName,fluid.resolveGradedOptions(componentName))}}};fluid.makeComponent=function(componentName,options){if(!options.initFunction||!options.gradeNames){fluid.fail("Cannot autoInit component "+componentName+" which does not have an initFunction and gradeName defined")}var creator=function(){return fluid.initComponent(componentName,arguments)};var existing=fluid.getGlobalValue(componentName);if(existing){$.extend(creator,existing)}fluid.setGlobalValue(componentName,creator)};fluid.makeComponents=function(components,env){fluid.each(components,function(value,key){var options={gradeNames:fluid.makeArray(value).concat(["autoInit"])};fluid.defaults(key,options)})};fluid.defaults("fluid.littleComponent",{initFunction:"fluid.initLittleComponent",argumentMap:{options:0}});fluid.defaults("fluid.eventedComponent",{gradeNames:["fluid.littleComponent"],mergePolicy:{listeners:"fluid.mergeListenersPolicy"}});fluid.preInitModelComponent=function(that){that.model=that.options.model||{};that.applier=that.options.applier||fluid.makeChangeApplier(that.model,that.options.changeApplierOptions)};fluid.defaults("fluid.modelComponent",{gradeNames:["fluid.littleComponent"],preInitFunction:{namespace:"preInitModelComponent",listener:"fluid.preInitModelComponent"},mergePolicy:{model:"preserve",applier:"nomerge"}});fluid.defaults("fluid.viewComponent",{gradeNames:["fluid.littleComponent","fluid.modelComponent","fluid.eventedComponent"],initFunction:"fluid.initView",argumentMap:{container:0,options:1}});fluid.guardCircularity=function(seenIds,source,message1,message2){if(source&&source.id){if(!seenIds[source.id]){seenIds[source.id]=source}else{if(seenIds[source.id]===source){fluid.fail("Circularity in options "+message1+" - component with typename "+source.typeName+" and id "+source.id+" has already been seen"+message2)}}}};fluid.mergePolicyIs=function(policy,test){return typeof (policy)==="string"&&$.inArray(test,policy.split(/\s*,\s*/))!==-1};function mergeImpl(policy,basePath,target,source,thisPolicy,rec){if(typeof (thisPolicy)==="function"){thisPolicy.call(null,target,source);return target}if(fluid.mergePolicyIs(thisPolicy,"replace")){fluid.clear(target)}fluid.guardCircularity(rec.seenIds,source,"merging"," when evaluating path "+basePath+' - please protect components from merging using the "nomerge" merge policy');for(var name in source){var path=(basePath?basePath+".":"")+name;var newPolicy=policy&&typeof (policy)!=="string"?policy[path]:policy;var thisTarget=target[name];var thisSource=source[name];var primitiveTarget=fluid.isPrimitive(thisTarget);if(thisSource!==undefined){if(thisSource!==null&&typeof (thisSource)==="object"&&!fluid.isDOMNode(thisSource)&&!thisSource.jquery&&thisSource!==fluid.VALUE&&!fluid.mergePolicyIs(newPolicy,"preserve")&&!fluid.mergePolicyIs(newPolicy,"nomerge")&&!fluid.mergePolicyIs(newPolicy,"noexpand")){if(primitiveTarget){target[name]=thisTarget=fluid.freshContainer(thisSource)}mergeImpl(policy,path,thisTarget,thisSource,newPolicy,rec)}else{if(typeof (newPolicy)==="function"){target[name]=newPolicy.call(null,thisTarget,thisSource,name)}else{if(!fluid.isValue(thisTarget)||!fluid.mergePolicyIs(newPolicy,"reverse")){target[name]=fluid.isValue(thisTarget)&&fluid.mergePolicyIs(newPolicy,"preserve")?fluid.model.mergeModel(thisTarget,thisSource):thisSource}}}}}return target}fluid.merge=function(policy,target){var path="";for(var i=2;i<arguments.length;++i){var source=arguments[i];if(source!==null&&source!==undefined){mergeImpl(policy,path,target,source,policy?policy[""]:null,{seenIds:{}})}}if(policy&&typeof (policy)!=="string"){for(var key in policy){var elrh=policy[key];if(typeof (elrh)==="string"&&elrh!=="replace"&&elrh!=="preserve"){var oldValue=fluid.get(target,key);if(oldValue===null||oldValue===undefined){var value=fluid.get(target,elrh);fluid.set(target,key,value)}}}}return target};fluid.transformOptions=function(mergeArgs,transRec){fluid.expect("Options transformation record",["transformer","config"],transRec);var transFunc=fluid.getGlobalValue(transRec.transformer);var togo=fluid.transform(mergeArgs,function(value,key){return key===0?value:transFunc.call(null,value,transRec.config)});return togo};fluid.lastTransformationRecord=function(extraArgs){for(var i=extraArgs.length-1;i>=0;--i){if(extraArgs[i]&&extraArgs[i].transformOptions){return extraArgs[i].transformOptions}}};fluid.mergeComponentOptions=function(that,componentName,userOptions,localOptions){var defaults=fluid.defaults(componentName);var mergePolicy=$.extend({},fluid.rootMergePolicy,defaults?defaults.mergePolicy:{});var defaultGrades=defaults&&defaults.gradeNames;var mergeArgs;if(!defaultGrades){defaults=fluid.censorKeys(defaults,fluid.keys(fluid.lifecycleFunctions));mergeArgs=[mergePolicy,localOptions]}else{mergeArgs=[mergePolicy]}var extraArgs;if(fluid.expandComponentOptions){extraArgs=fluid.expandComponentOptions(defaults,userOptions,that)}else{extraArgs=[defaults,userOptions]}var transRec=fluid.lastTransformationRecord(extraArgs);if(transRec){extraArgs=fluid.transformOptions(extraArgs,transRec)}mergeArgs=mergeArgs.concat(extraArgs);that.options=fluid.merge.apply(null,mergeArgs)};fluid.COMPONENT_OPTIONS={type:"fluid.marker",value:"COMPONENT_OPTIONS"};fluid.emptySubcomponent=function(options){var that={};options=$.makeArray(options);var empty=function(){};for(var i=0;i<options.length;++i){that[options[i]]=empty}return that};fluid.computeNickName=function(typeName){var segs=fluid.model.parseEL(typeName);return segs[segs.length-1]};fluid.typeTag=function(name){return name?{typeName:name,id:fluid.allocateGuid()}:null};fluid.typeFount=function(options){var that=fluid.initLittleComponent("fluid.typeFount",options);return fluid.typeTag(that.options.targetTypeName)};fluid.initLittleComponent=function(name,options,localOptions){var that=fluid.typeTag(name);that.nickName=options&&options.nickName?options.nickName:fluid.computeNickName(that.typeName);localOptions=localOptions||{gradeNames:"fluid.littleComponent"};localOptions=fluid.resolveGrade({},localOptions.gradeNames);fluid.mergeComponentOptions(that,name,options,localOptions);that.options.preInitFunction.fire(that);if(fluid.hasGrade(that.options,"fluid.eventedComponent")){fluid.instantiateFirers(that,that.options)}if(!fluid.hasGrade(that.options,"autoInit")){fluid.clearLifecycleFunctions(that.options)}return that};fluid.clearLifecycleFunctions=function(options){fluid.each(fluid.lifecycleFunctions,function(value,key){delete options[key]});delete options.initFunction};fluid.diagnoseFailedView=function(componentName,that,options,args){if(!that&&fluid.hasGrade(options,"fluid.viewComponent")){var container=fluid.wrap(args[1]);var message1="Instantiation of autoInit component with type "+componentName+" failed, since ";if(container.length===0){fluid.fail(message1+'selector "',args[1],'" did not match any markup in the document')}else{fluid.fail(message1+" component creator function did not return a value")}}};fluid.initComponent=function(componentName,initArgs){var options=fluid.defaults(componentName);if(!options.gradeNames){fluid.fail("Cannot initialise component "+componentName+" which has no gradeName registered")}var args=[componentName].concat(fluid.makeArray(initArgs));var that=fluid.invokeGlobalFunction(options.initFunction,args);fluid.diagnoseFailedView(componentName,that,options,args);that.options.postInitFunction.fire(that);if(fluid.initDependents){fluid.initDependents(that)}that.options.finalInitFunction.fire(that);fluid.clearLifecycleFunctions(that.options);return that.options.returnedPath?fluid.get(that,that.options.returnedPath):that};fluid.initSubcomponentImpl=function(that,entry,args){var togo;if(typeof (entry)!=="function"){var entryType=typeof (entry)==="string"?entry:entry.type;var globDef=fluid.defaults(true,entryType);fluid.merge("reverse",that.options,globDef);togo=entryType==="fluid.emptySubcomponent"?fluid.emptySubcomponent(entry.options):fluid.invokeGlobalFunction(entryType,args)}else{togo=entry.apply(null,args)}var returnedOptions=togo?togo.returnedOptions:null;if(returnedOptions){fluid.merge(that.options.mergePolicy,that.options,returnedOptions);if(returnedOptions.listeners){fluid.mergeListeners(that,that.events,returnedOptions.listeners)}}return togo};fluid.initSubcomponents=function(that,className,args){var entry=that.options[className];if(!entry){return }var entries=$.makeArray(entry);var optindex=-1;var togo=[];args=$.makeArray(args);for(var i=0;i<args.length;++i){if(args[i]===fluid.COMPONENT_OPTIONS){optindex=i}}for(i=0;i<entries.length;++i){entry=entries[i];if(optindex!==-1){args[optindex]=entry.options}togo[i]=fluid.initSubcomponentImpl(that,entry,args)}return togo};fluid.initSubcomponent=function(that,className,args){return fluid.initSubcomponents(that,className,args)[0]};fluid.checkTryCatchParameter=function(){var location=window.location||{search:"",protocol:"file:"};var GETParams=location.search.slice(1).split("&");return fluid.contains(GETParams,"notrycatch")};fluid.notrycatch=fluid.checkTryCatchParameter();fluid.container=function(containerSpec,fallible){var container=fluid.wrap(containerSpec);if(fallible&&(!container||container.length===0)){return null}if(!container||!container.jquery||container.length!==1){if(typeof (containerSpec)!=="string"){containerSpec=container.selector}var count=container.length!==undefined?container.length:0;fluid.fail((count>1?"More than one ("+count+") container elements were":"No container element was")+" found for selector "+containerSpec)}if(!fluid.isDOMNode(container[0])){fluid.fail("fluid.container was supplied a non-jQueryable element")}return container};fluid.createDomBinder=function(container,selectors){var cache={},that={};function cacheKey(name,thisContainer){return fluid.allocateSimpleId(thisContainer)+"-"+name}function record(name,thisContainer,result){cache[cacheKey(name,thisContainer)]=result}that.locate=function(name,localContainer){var selector,thisContainer,togo;selector=selectors[name];thisContainer=localContainer?localContainer:container;if(!thisContainer){fluid.fail("DOM binder invoked for selector "+name+" without container")}if(!selector){return thisContainer}if(typeof (selector)==="function"){togo=$(selector.call(null,fluid.unwrap(thisContainer)))}else{togo=$(selector,thisContainer)}if(togo.get(0)===document){togo=[]}if(!togo.selector){togo.selector=selector;togo.context=thisContainer}togo.selectorName=name;record(name,thisContainer,togo);return togo};that.fastLocate=function(name,localContainer){var thisContainer=localContainer?localContainer:container;var key=cacheKey(name,thisContainer);var togo=cache[key];return togo?togo:that.locate(name,localContainer)};that.clear=function(){cache={}};that.refresh=function(names,localContainer){var thisContainer=localContainer?localContainer:container;if(typeof names==="string"){names=[names]}if(thisContainer.length===undefined){thisContainer=[thisContainer]}for(var i=0;i<names.length;++i){for(var j=0;j<thisContainer.length;++j){that.locate(names[i],thisContainer[j])}}};that.resolvePathSegment=that.locate;return that};fluid.expectFilledSelector=function(result,message){if(result&&result.length===0&&result.jquery){fluid.fail(message+': selector "'+result.selector+'" with name '+result.selectorName+" returned no results in context "+fluid.dumpEl(result.context))}};fluid.initView=function(componentName,container,userOptions,localOptions){fluid.expectFilledSelector(container,'Error instantiating component with name "'+componentName);container=fluid.container(container,true);if(!container){return null}var that=fluid.initLittleComponent(componentName,userOptions,localOptions||{gradeNames:["fluid.viewComponent"]});that.container=container;fluid.initDomBinder(that);return that};fluid.initDomBinder=function(that){that.dom=fluid.createDomBinder(that.container,that.options.selectors);that.locate=that.dom.locate};fluid.findAncestor=function(element,test){element=fluid.unwrap(element);while(element){if(test(element)){return element}element=element.parentNode}};fluid.jById=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var element=fluid.byId(id,dokkument);var togo=element?$(element):[];togo.selector="#"+id;togo.context=dokkument;return togo};fluid.byId=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var el=dokkument.getElementById(id);if(el){if(el.id!==id){fluid.fail("Problem in document structure - picked up element "+fluid.dumpEl(el)+" for id "+id+" without this id - most likely the element has a name which conflicts with this id")}return el}else{return null}};fluid.getId=function(element){return fluid.unwrap(element).id};fluid.allocateSimpleId=function(element){var simpleId="fluid-id-"+fluid.allocateGuid();if(!element){return simpleId}element=fluid.unwrap(element);if(!element.id){element.id=simpleId}return element.id};fluid.stringToRegExp=function(str,flags){return new RegExp(str.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),flags)};fluid.stringTemplate=function(template,values){var newString=template;for(var key in values){var re=fluid.stringToRegExp("%"+key,"g");newString=newString.replace(re,values[key])}return newString};fluid.messageResolver=function(options){var that=fluid.initLittleComponent("fluid.messageResolver",options);that.messageBase=that.options.parseFunc(that.options.messageBase);that.lookup=function(messagecodes){var resolved=fluid.messageResolver.resolveOne(that.messageBase,messagecodes);if(resolved===undefined){return fluid.find(that.options.parents,function(parent){return parent.lookup(messagecodes)})}else{return{template:resolved,resolveFunc:that.options.resolveFunc}}};that.resolve=function(messagecodes,args){if(!messagecodes){return"[No messagecodes provided]"}messagecodes=fluid.makeArray(messagecodes);var looked=that.lookup(messagecodes);return looked?looked.resolveFunc(looked.template,args):"[Message string for key "+messagecodes[0]+" not found]"};return that};fluid.defaults("fluid.messageResolver",{mergePolicy:{messageBase:"preserve"},resolveFunc:fluid.stringTemplate,parseFunc:fluid.identity,messageBase:{},parents:[]});fluid.messageResolver.resolveOne=function(messageBase,messagecodes){for(var i=0;i<messagecodes.length;++i){var code=messagecodes[i];var message=messageBase[code];if(message!==undefined){return message}}};fluid.messageLocator=function(messageBase,resolveFunc){var resolver=fluid.messageResolver({messageBase:messageBase,resolveFunc:resolveFunc});return function(messagecodes,args){return resolver.resolve(messagecodes,args)}}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){var NAMESPACE_KEY="fluid-scoped-data";fluid.getScopedData=function(target,key){var data=$(target).data(NAMESPACE_KEY);return data?data[key]:undefined};fluid.setScopedData=function(target,key,value){$(target).each(function(){var data=$.data(this,NAMESPACE_KEY)||{};data[key]=value;$.data(this,NAMESPACE_KEY,data)})};var lastFocusedElement=null;$(document).bind("focusin",function(event){lastFocusedElement=event.target});fluid.getLastFocusedElement=function(){return lastFocusedElement};var ENABLEMENT_KEY="enablement";fluid.enabled=function(target,state){target=$(target);if(state===undefined){return fluid.getScopedData(target,ENABLEMENT_KEY)!==false}else{$("*",target).add(target).each(function(){if(fluid.getScopedData(this,ENABLEMENT_KEY)!==undefined){fluid.setScopedData(this,ENABLEMENT_KEY,state)}else{if(/select|textarea|input/i.test(this.nodeName)){$(this).prop("disabled",!state)}}});fluid.setScopedData(target,ENABLEMENT_KEY,state)}};fluid.initEnablement=function(target){fluid.setScopedData(target,ENABLEMENT_KEY,true)};function applyOp(node,func){node=$(node);node.trigger("fluid-"+func);node[func]()}$.each(["focus","blur"],function(i,name){fluid[name]=function(elem){applyOp(elem,name)}})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.dom=fluid.dom||{};var getNextNode=function(iterator){if(iterator.node.firstChild){iterator.node=iterator.node.firstChild;iterator.depth+=1;return iterator}while(iterator.node){if(iterator.node.nextSibling){iterator.node=iterator.node.nextSibling;return iterator}iterator.node=iterator.node.parentNode;iterator.depth-=1}return iterator};fluid.dom.iterateDom=function(node,acceptor,allNodes){var currentNode={node:node,depth:0};var prevNode=node;var condition;while(currentNode.node!==null&&currentNode.depth>=0&&currentNode.depth<fluid.dom.iterateDom.DOM_BAIL_DEPTH){condition=null;if(currentNode.node.nodeType===1||allNodes){condition=acceptor(currentNode.node,currentNode.depth)}if(condition){if(condition==="delete"){currentNode.node.parentNode.removeChild(currentNode.node);currentNode.node=prevNode}else{if(condition==="stop"){return currentNode.node}}}prevNode=currentNode.node;currentNode=getNextNode(currentNode)}};fluid.dom.iterateDom.DOM_BAIL_DEPTH=256;fluid.dom.isContainer=function(container,containee){for(;containee;containee=containee.parentNode){if(container===containee){return true}}return false};fluid.dom.getElementText=function(element){var nodes=element.childNodes;var text="";for(var i=0;i<nodes.length;++i){var child=nodes[i];if(child.nodeType===3){text=text+child.nodeValue}}return text}})(jQuery,fluid_1_4);fluid_1_4=fluid_1_4||{};(function($,fluid){var unUnicode=/(\\u[\dabcdef]{4}|\\x[\dabcdef]{2})/g;fluid.unescapeProperties=function(string){string=string.replace(unUnicode,function(match){var code=match.substring(2);var parsed=parseInt(code,16);return String.fromCharCode(parsed)});var pos=0;while(true){var backpos=string.indexOf("\\",pos);if(backpos===-1){break}if(backpos===string.length-1){return[string.substring(0,string.length-1),true]}var replace=string.charAt(backpos+1);if(replace==="n"){replace="\n"}if(replace==="r"){replace="\r"}if(replace==="t"){replace="\t"}string=string.substring(0,backpos)+replace+string.substring(backpos+2);pos=backpos+1}return[string,false]};var breakPos=/[^\\][\s:=]/;fluid.parseJavaProperties=function(text){var togo={};text=text.replace(/\r\n/g,"\n");text=text.replace(/\r/g,"\n");lines=text.split("\n");var contin,key,valueComp,valueRaw,valueEsc;for(var i=0;i<lines.length;++i){var line=$.trim(lines[i]);if(!line||line.charAt(0)==="#"||line.charAt(0)==="!"){continue}if(!contin){valueComp="";var breakpos=line.search(breakPos);if(breakpos===-1){key=line;valueRaw=""}else{key=$.trim(line.substring(0,breakpos+1));valueRaw=$.trim(line.substring(breakpos+2));if(valueRaw.charAt(0)===":"||valueRaw.charAt(0)==="="){valueRaw=$.trim(valueRaw.substring(1))}}key=fluid.unescapeProperties(key)[0];valueEsc=fluid.unescapeProperties(valueRaw)}else{valueEsc=fluid.unescapeProperties(line)}contin=valueEsc[1];if(!valueEsc[1]){togo[key]=valueComp+valueEsc[0]}else{valueComp+=valueEsc[0]}}return togo};fluid.formatMessage=function(messageString,args){if(!args){return messageString}if(typeof (args)==="string"){args=[args]}for(var i=0;i<args.length;++i){messageString=messageString.replace("{"+i+"}",args[i])}return messageString}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};var fluid=fluid||fluid_1_4;(function($,fluid){fluid.renderTimestamp=function(date){var zeropad=function(num,width){if(!width){width=2}var numstr=(num==undefined?"":num.toString());return"00000".substring(5-width+numstr.length)+numstr};return zeropad(date.getHours())+":"+zeropad(date.getMinutes())+":"+zeropad(date.getSeconds())+"."+zeropad(date.getMilliseconds(),3)};fluid.detectStackStyle=function(e){var style="other";var stackStyle={offset:0};if(e.arguments){style="chrome"}else{if(typeof window!=="undefined"&&window.opera&&e.stacktrace){style="opera10"}else{if(e.stack){style="firefox";stackStyle.offset=e.stack.indexOf("Trace exception")===-1?1:0}else{if(typeof window!=="undefined"&&window.opera&&!("stacktrace" in e)){style="opera"}}}}stackStyle.style=style;return stackStyle};fluid.obtainException=function(){try{throw new Error("Trace exception")}catch(e){return e}};var stackStyle=fluid.detectStackStyle(fluid.obtainException());fluid.registerNamespace("fluid.exceptionDecoders");fluid.decodeStack=function(){if(stackStyle.style!=="firefox"){return null}var e=fluid.obtainException();return fluid.exceptionDecoders[stackStyle.style](e)};fluid.exceptionDecoders.firefox=function(e){var lines=e.stack.replace(/(?:\n@:0)?\s+$/m,"").replace(/^\(/gm,"{anonymous}(").split("\n");return fluid.transform(lines,function(line){var atind=line.indexOf("@");return atind===-1?[line]:[line.substring(atind+1),line.substring(0,atind)]})};fluid.getCallerInfo=function(atDepth){atDepth=(atDepth||3)-stackStyle.offset;var stack=fluid.decodeStack();return stack?stack[atDepth][0]:null};function generate(c,count){var togo="";for(var i=0;i<count;++i){togo+=c}return togo}function printImpl(obj,small,options){var big=small+options.indentChars;if(obj===null){return"null"}else{if(fluid.isPrimitive(obj)){return JSON.stringify(obj)}else{var j=[];if(fluid.isArrayable(obj)){if(obj.length===0){return"[]"}for(var i=0;i<obj.length;++i){j[i]=printImpl(obj[i],big,options)}return"[\n"+big+j.join(",\n"+big)+"\n"+small+"]"}else{var i=0;fluid.each(obj,function(value,key){j[i++]=JSON.stringify(key)+": "+printImpl(value,big,options)});return"{\n"+big+j.join(",\n"+big)+"\n"+small+"}"}}}}fluid.prettyPrintJSON=function(obj,options){options=$.extend({indent:4},options);options.indentChars=generate(" ",options.indent);return printImpl(obj,"",options)};fluid.dumpEl=function(element){var togo;if(!element){return"null"}if(element.nodeType===3||element.nodeType===8){return"[data: "+element.data+"]"}if(element.nodeType===9){return"[document: location "+element.location+"]"}if(!element.nodeType&&fluid.isArrayable(element)){togo="[";for(var i=0;i<element.length;++i){togo+=fluid.dumpEl(element[i]);if(i<element.length-1){togo+=", "}}return togo+"]"}element=$(element);togo=element.get(0).tagName;if(element.id){togo+="#"+element.id}if(element.attr("class")){togo+="."+element.attr("class")}return togo}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.BINDING_ROOT_KEY="fluid-binding-root";fluid.findData=function(elem,name){while(elem){var data=$.data(elem,name);if(data){return data}elem=elem.parentNode}};fluid.bindFossils=function(node,data,fossils){$.data(node,fluid.BINDING_ROOT_KEY,{data:data,fossils:fossils})};fluid.boundPathForNode=function(node,fossils){node=fluid.unwrap(node);var key=node.name||node.id;var record=fossils[key];return record?record.EL:null};fluid.findForm=function(node){return fluid.findAncestor(node,function(element){return element.nodeName.toLowerCase()==="form"})};fluid.value=function(nodeIn,newValue){var node=fluid.unwrap(nodeIn);var multiple=false;if(node.nodeType===undefined&&node.length>1){node=node[0];multiple=true}if("input"!==node.nodeName.toLowerCase()||!/radio|checkbox/.test(node.type)){return newValue===undefined?$(node).val():$(node).val(newValue)}var name=node.name;if(name===undefined){fluid.fail("Cannot acquire value from node "+fluid.dumpEl(node)+" which does not have name attribute set")}var elements;if(multiple){elements=nodeIn}else{elements=document.getElementsByName(name);var scope=fluid.findForm(node);elements=$.grep(elements,function(element){if(element.name!==name){return false}return !scope||fluid.dom.isContainer(scope,element)})}if(newValue!==undefined){if(typeof (newValue)==="boolean"){newValue=(newValue?"true":"false")}$.each(elements,function(){this.checked=(newValue instanceof Array?$.inArray(this.value,newValue)!==-1:newValue===this.value)})}else{var checked=$.map(elements,function(element){return element.checked?element.value:null});return node.type==="radio"?checked[0]:checked}};fluid.applyChange=function(node,newValue,applier){node=fluid.unwrap(node);if(newValue===undefined){newValue=fluid.value(node)}if(node.nodeType===undefined&&node.length>0){node=node[0]}var root=fluid.findData(node,fluid.BINDING_ROOT_KEY);if(!root){fluid.fail("Bound data could not be discovered in any node above "+fluid.dumpEl(node))}var name=node.name;var fossil=root.fossils[name];if(!fossil){fluid.fail("No fossil discovered for name "+name+" in fossil record above "+fluid.dumpEl(node))}if(typeof (fossil.oldvalue)==="boolean"){newValue=newValue[0]?true:false}var EL=root.fossils[name].EL;if(applier){applier.fireChangeRequest({path:EL,value:newValue,source:node.id})}else{fluid.set(root.data,EL,newValue)}};fluid.pathUtil={};var getPathSegmentImpl=function(accept,path,i){var segment=null;if(accept){segment=""}var escaped=false;var limit=path.length;for(;i<limit;++i){var c=path.charAt(i);if(!escaped){if(c==="."){break}else{if(c==="\\"){escaped=true}else{if(segment!==null){segment+=c}}}}else{escaped=false;if(segment!==null){accept+=c}}}if(segment!==null){accept[0]=segment}return i};var globalAccept=[];fluid.pathUtil.getPathSegment=function(path,i){getPathSegmentImpl(globalAccept,path,i);return globalAccept[0]};fluid.pathUtil.getHeadPath=function(path){return fluid.pathUtil.getPathSegment(path,0)};fluid.pathUtil.getFromHeadPath=function(path){var firstdot=getPathSegmentImpl(null,path,0);return firstdot===path.length?null:path.substring(firstdot+1)};function lastDotIndex(path){return path.lastIndexOf(".")}fluid.pathUtil.getToTailPath=function(path){var lastdot=lastDotIndex(path);return lastdot===-1?null:path.substring(0,lastdot)};fluid.pathUtil.getTailPath=function(path){var lastdot=lastDotIndex(path);return fluid.pathUtil.getPathSegment(path,lastdot+1)};var composeSegment=function(prefix,toappend){for(var i=0;i<toappend.length;++i){var c=toappend.charAt(i);if(c==="."||c==="\\"||c==="}"){prefix+="\\"}prefix+=c}return prefix};fluid.pathUtil.composePath=function(prefix,suffix){if(prefix.length!==0){prefix+="."}return composeSegment(prefix,suffix)};fluid.pathUtil.matchPath=function(spec,path){var togo="";while(true){if(!spec||path===""){break}if(!path){return null}var spechead=fluid.pathUtil.getHeadPath(spec);var pathhead=fluid.pathUtil.getHeadPath(path);if(spechead!=="*"&&spechead!==pathhead){return null}togo=fluid.pathUtil.composePath(togo,pathhead);spec=fluid.pathUtil.getFromHeadPath(spec);path=fluid.pathUtil.getFromHeadPath(path)}return togo};fluid.model.mergeModel=function(target,source,applier){var copySource=fluid.copy(source);applier=applier||fluid.makeChangeApplier(source);if(!fluid.isPrimitive(target)){applier.fireChangeRequest({type:"ADD",path:"",value:target})}applier.fireChangeRequest({type:"MERGE",path:"",value:copySource});return source};fluid.model.isNullChange=function(model,request,resolverGetConfig){if(request.type==="ADD"){var existing=fluid.get(model,request.path,resolverGetConfig);if(existing===request.value){return true}}};fluid.model.applyChangeRequest=function(model,request,resolverSetConfig){var pen=fluid.model.getPenultimate(model,request.path,resolverSetConfig||fluid.model.defaultSetConfig);if(request.type==="ADD"||request.type==="MERGE"){if(request.path===""||request.type==="MERGE"){if(request.type==="ADD"){fluid.clear(pen.root)}$.extend(true,request.path===""?pen.root:pen.root[pen.last],request.value)}else{pen.root[pen.last]=request.value}}else{if(request.type==="DELETE"){if(request.path===""){fluid.clear(pen.root)}else{delete pen.root[pen.last]}}}};function bindRequestChange(that){that.requestChange=function(path,value,type){var changeRequest={path:path,value:value,type:type};that.fireChangeRequest(changeRequest)}}fluid.makeChangeApplier=function(model,options){options=options||{};var baseEvents={guards:fluid.event.getEventFirer(false,true),postGuards:fluid.event.getEventFirer(false,true),modelChanged:fluid.event.getEventFirer(false,false)};var that={model:model};function makeGuardWrapper(cullUnchanged){if(!cullUnchanged){return null}var togo=function(guard){return function(model,changeRequest,internalApplier){var oldRet=guard(model,changeRequest,internalApplier);if(oldRet===false){return false}else{if(fluid.model.isNullChange(model,changeRequest)){togo.culled=true;return false}}}};return togo}function wrapListener(listener,spec){var pathSpec=spec;var transactional=false;var priority=Number.MAX_VALUE;if(typeof (spec)!=="string"){pathSpec=spec.path;transactional=spec.transactional;if(spec.priority!==undefined){priority=spec.priority}}else{if(pathSpec.charAt(0)==="!"){transactional=true;pathSpec=pathSpec.substring(1)}}return function(changePath,fireSpec,accum){var guid=fluid.event.identifyListener(listener);var exist=fireSpec.guids[guid];if(!exist){var match=fluid.pathUtil.matchPath(pathSpec,changePath);if(match!==null){var record={changePath:changePath,pathSpec:pathSpec,listener:listener,priority:priority,transactional:transactional};if(accum){record.accumulate=[accum]}fireSpec.guids[guid]=record;var collection=transactional?"transListeners":"listeners";fireSpec[collection].push(record);fireSpec.all.push(record)}}else{if(accum){if(!exist.accumulate){exist.accumulate=[]}exist.accumulate.push(accum)}}}}function fireFromSpec(name,fireSpec,args,category,wrapper){return baseEvents[name].fireToListeners(fireSpec[category],args,wrapper)}function fireComparator(recA,recB){return recA.priority-recB.priority}function prepareFireEvent(name,changePath,fireSpec,accum){baseEvents[name].fire(changePath,fireSpec,accum);fireSpec.all.sort(fireComparator);fireSpec.listeners.sort(fireComparator);fireSpec.transListeners.sort(fireComparator)}function makeFireSpec(){return{guids:{},all:[],listeners:[],transListeners:[]}}function getFireSpec(name,changePath){var fireSpec=makeFireSpec();prepareFireEvent(name,changePath,fireSpec);return fireSpec}function fireEvent(name,changePath,args,wrapper){var fireSpec=getFireSpec(name,changePath);return fireFromSpec(name,fireSpec,args,"all",wrapper)}function adaptListener(that,name){that[name]={addListener:function(spec,listener,namespace){baseEvents[name].addListener(wrapListener(listener,spec),namespace)},removeListener:function(listener){baseEvents[name].removeListener(listener)}}}adaptListener(that,"guards");adaptListener(that,"postGuards");adaptListener(that,"modelChanged");function preFireChangeRequest(changeRequest){if(!changeRequest.type){changeRequest.type="ADD"}}var bareApplier={fireChangeRequest:function(changeRequest){that.fireChangeRequest(changeRequest,true)}};bindRequestChange(bareApplier);that.fireChangeRequest=function(changeRequest,defeatGuards){preFireChangeRequest(changeRequest);var guardFireSpec=defeatGuards?null:getFireSpec("guards",changeRequest.path);if(guardFireSpec&&guardFireSpec.transListeners.length>0){var ation=that.initiate();ation.fireChangeRequest(changeRequest,guardFireSpec);ation.commit()}else{if(!defeatGuards){var prevent=fireFromSpec("guards",guardFireSpec,[model,changeRequest,bareApplier],"listeners");if(prevent===false){return false}}var oldModel=model;if(!options.thin){oldModel={};fluid.model.copyModel(oldModel,model)}fluid.model.applyChangeRequest(model,changeRequest,options.resolverSetConfig);fireEvent("modelChanged",changeRequest.path,[model,oldModel,[changeRequest]])}};bindRequestChange(that);function fireAgglomerated(eventName,formName,changes,args,accpos){var fireSpec=makeFireSpec();for(var i=0;i<changes.length;++i){prepareFireEvent(eventName,changes[i].path,fireSpec,changes[i])}for(var j=0;j<fireSpec[formName].length;++j){var spec=fireSpec[formName][j];if(accpos){args[accpos]=spec.accumulate}var ret=spec.listener.apply(null,args);if(ret===false){return false}}}that.initiate=function(newModel){var cancelled=false;var changes=[];if(options.thin){newModel=model}else{newModel=newModel||{};fluid.model.copyModel(newModel,model)}var internalApplier={fireChangeRequest:function(changeRequest){preFireChangeRequest(changeRequest);fluid.model.applyChangeRequest(newModel,changeRequest,options.resolverSetConfig);changes.push(changeRequest)}};bindRequestChange(internalApplier);var ation={commit:function(){var oldModel;if(cancelled){return false}var ret=fireAgglomerated("postGuards","transListeners",changes,[newModel,null,internalApplier],1);if(ret===false){return false}if(options.thin){oldModel=model}else{oldModel={};fluid.model.copyModel(oldModel,model);fluid.clear(model);fluid.model.copyModel(model,newModel)}fireAgglomerated("modelChanged","all",changes,[model,oldModel,null],2)},fireChangeRequest:function(changeRequest){preFireChangeRequest(changeRequest);if(options.cullUnchanged&&fluid.model.isNullChange(model,changeRequest,options.resolverGetConfig)){return }var wrapper=makeGuardWrapper(options.cullUnchanged);var prevent=fireEvent("guards",changeRequest.path,[newModel,changeRequest,internalApplier],wrapper);if(prevent===false&&!(wrapper&&wrapper.culled)){cancelled=true}if(!cancelled){if(!(wrapper&&wrapper.culled)){fluid.model.applyChangeRequest(newModel,changeRequest,options.resolverSetConfig);changes.push(changeRequest)}}}};bindRequestChange(ation);return ation};return that};fluid.makeSuperApplier=function(){var subAppliers=[];var that={};that.addSubApplier=function(path,subApplier){subAppliers.push({path:path,subApplier:subApplier})};that.fireChangeRequest=function(request){for(var i=0;i<subAppliers.length;++i){var path=subAppliers[i].path;if(request.path.indexOf(path)===0){var subpath=request.path.substring(path.length+1);var subRequest=fluid.copy(request);subRequest.path=subpath;subAppliers[i].subApplier.fireChangeRequest(subRequest)}}};bindRequestChange(that);return that};fluid.attachModel=function(baseModel,path,model){var segs=fluid.model.parseEL(path);for(var i=0;i<segs.length-1;++i){var seg=segs[i];var subModel=baseModel[seg];if(!subModel){baseModel[seg]=subModel={}}baseModel=subModel}baseModel[segs[segs.length-1]]=model};fluid.assembleModel=function(modelSpec){var model={};var superApplier=fluid.makeSuperApplier();var togo={model:model,applier:superApplier};for(var path in modelSpec){var rec=modelSpec[path];fluid.attachModel(model,path,rec.model);if(rec.applier){superApplier.addSubApplier(path,rec.applier)}}return togo}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};var fluid=fluid||fluid_1_4;(function($,fluid){fluid.thatistBridge=function(name,peer){var togo=function(funcname){var segs=funcname.split(".");var move=peer;for(var i=0;i<segs.length;++i){move=move[segs[i]]}var args=[this];if(arguments.length===2){args=args.concat($.makeArray(arguments[1]))}var ret=move.apply(null,args);this.that=function(){return ret};var type=typeof (ret);return !ret||type==="string"||type==="number"||type==="boolean"||ret&&ret.length!==undefined?ret:this};$.fn[name]=togo;return togo};fluid.thatistBridge("fluid",fluid);fluid.thatistBridge("fluid_1_4",fluid_1_4);var normalizeTabindexName=function(){return $.browser.msie?"tabIndex":"tabindex"};var canHaveDefaultTabindex=function(elements){if(elements.length<=0){return false}return $(elements[0]).is("a, input, button, select, area, textarea, object")};var getValue=function(elements){if(elements.length<=0){return undefined}if(!fluid.tabindex.hasAttr(elements)){return canHaveDefaultTabindex(elements)?Number(0):undefined}var value=elements.attr(normalizeTabindexName());return Number(value)};var setValue=function(elements,toIndex){return elements.each(function(i,item){$(item).attr(normalizeTabindexName(),toIndex)})};fluid.tabindex=function(target,toIndex){target=$(target);if(toIndex!==null&&toIndex!==undefined){return setValue(target,toIndex)}else{return getValue(target)}};fluid.tabindex.remove=function(target){target=$(target);return target.each(function(i,item){$(item).removeAttr(normalizeTabindexName())})};fluid.tabindex.hasAttr=function(target){target=$(target);if(target.length<=0){return false}var togo=target.map(function(){var attributeNode=this.getAttributeNode(normalizeTabindexName());return attributeNode?attributeNode.specified:false});return togo.length===1?togo[0]:togo};fluid.tabindex.has=function(target){target=$(target);return fluid.tabindex.hasAttr(target)||canHaveDefaultTabindex(target)};fluid.a11y=$.a11y||{};fluid.a11y.orientation={HORIZONTAL:0,VERTICAL:1,BOTH:2};var UP_DOWN_KEYMAP={next:$.ui.keyCode.DOWN,previous:$.ui.keyCode.UP};var LEFT_RIGHT_KEYMAP={next:$.ui.keyCode.RIGHT,previous:$.ui.keyCode.LEFT};var unwrap=function(element){return element.jquery?element[0]:element};var makeElementsTabFocussable=function(elements){elements.each(function(idx,item){item=$(item);if(!item.fluid("tabindex.has")||item.fluid("tabindex")<0){item.fluid("tabindex",0)}})};fluid.tabbable=function(target){target=$(target);makeElementsTabFocussable(target)};var CONTEXT_KEY="selectionContext";var NO_SELECTION=-32768;var cleanUpWhenLeavingContainer=function(selectionContext){if(selectionContext.activeItemIndex!==NO_SELECTION){if(selectionContext.options.onLeaveContainer){selectionContext.options.onLeaveContainer(selectionContext.selectables[selectionContext.activeItemIndex])}else{if(selectionContext.options.onUnselect){selectionContext.options.onUnselect(selectionContext.selectables[selectionContext.activeItemIndex])}}}if(!selectionContext.options.rememberSelectionState){selectionContext.activeItemIndex=NO_SELECTION}};var drawSelection=function(elementToSelect,handler){if(handler){handler(elementToSelect)}};var eraseSelection=function(selectedElement,handler){if(handler&&selectedElement){handler(selectedElement)}};var unselectElement=function(selectedElement,selectionContext){eraseSelection(selectedElement,selectionContext.options.onUnselect)};var selectElement=function(elementToSelect,selectionContext){unselectElement(selectionContext.selectedElement(),selectionContext);elementToSelect=unwrap(elementToSelect);var newIndex=selectionContext.selectables.index(elementToSelect);if(newIndex===-1){return }selectionContext.activeItemIndex=newIndex;drawSelection(elementToSelect,selectionContext.options.onSelect)};var selectableFocusHandler=function(selectionContext){return function(evt){$(evt.target).fluid("tabindex",0);selectElement(evt.target,selectionContext);return evt.stopPropagation()}};var selectableBlurHandler=function(selectionContext){return function(evt){$(evt.target).fluid("tabindex",selectionContext.options.selectablesTabindex);unselectElement(evt.target,selectionContext);return evt.stopPropagation()}};var reifyIndex=function(sc_that){var elements=sc_that.selectables;if(sc_that.activeItemIndex>=elements.length){sc_that.activeItemIndex=0}if(sc_that.activeItemIndex<0&&sc_that.activeItemIndex!==NO_SELECTION){sc_that.activeItemIndex=elements.length-1}if(sc_that.activeItemIndex>=0){fluid.focus(elements[sc_that.activeItemIndex])}};var prepareShift=function(selectionContext){var selElm=selectionContext.selectedElement();if(selElm){fluid.blur(selElm)}unselectElement(selectionContext.selectedElement(),selectionContext);if(selectionContext.activeItemIndex===NO_SELECTION){selectionContext.activeItemIndex=-1}};var focusNextElement=function(selectionContext){prepareShift(selectionContext);++selectionContext.activeItemIndex;reifyIndex(selectionContext)};var focusPreviousElement=function(selectionContext){prepareShift(selectionContext);--selectionContext.activeItemIndex;reifyIndex(selectionContext)};var arrowKeyHandler=function(selectionContext,keyMap,userHandlers){return function(evt){if(evt.which===keyMap.next){focusNextElement(selectionContext);evt.preventDefault()}else{if(evt.which===keyMap.previous){focusPreviousElement(selectionContext);evt.preventDefault()}}}};var getKeyMapForDirection=function(direction){var keyMap;if(direction===fluid.a11y.orientation.HORIZONTAL){keyMap=LEFT_RIGHT_KEYMAP}else{if(direction===fluid.a11y.orientation.VERTICAL){keyMap=UP_DOWN_KEYMAP}}return keyMap};var tabKeyHandler=function(selectionContext){return function(evt){if(evt.which!==$.ui.keyCode.TAB){return }cleanUpWhenLeavingContainer(selectionContext);if(evt.shiftKey){selectionContext.focusIsLeavingContainer=true}}};var containerFocusHandler=function(selectionContext){return function(evt){var shouldOrig=selectionContext.options.autoSelectFirstItem;var shouldSelect=typeof (shouldOrig)==="function"?shouldOrig():shouldOrig;if(selectionContext.focusIsLeavingContainer){shouldSelect=false}if(shouldSelect&&evt.target===selectionContext.container.get(0)){if(selectionContext.activeItemIndex===NO_SELECTION){selectionContext.activeItemIndex=0}fluid.focus(selectionContext.selectables[selectionContext.activeItemIndex])}return evt.stopPropagation()}};var containerBlurHandler=function(selectionContext){return function(evt){selectionContext.focusIsLeavingContainer=false;return evt.stopPropagation()}};var makeElementsSelectable=function(container,defaults,userOptions){var options=$.extend(true,{},defaults,userOptions);var keyMap=getKeyMapForDirection(options.direction);var selectableElements=options.selectableElements?options.selectableElements:container.find(options.selectableSelector);var that={container:container,activeItemIndex:NO_SELECTION,selectables:selectableElements,focusIsLeavingContainer:false,options:options};that.selectablesUpdated=function(focusedItem){if(typeof (that.options.selectablesTabindex)==="number"){that.selectables.fluid("tabindex",that.options.selectablesTabindex)}that.selectables.unbind("focus."+CONTEXT_KEY);that.selectables.unbind("blur."+CONTEXT_KEY);that.selectables.bind("focus."+CONTEXT_KEY,selectableFocusHandler(that));that.selectables.bind("blur."+CONTEXT_KEY,selectableBlurHandler(that));if(keyMap&&that.options.noBubbleListeners){that.selectables.unbind("keydown."+CONTEXT_KEY);that.selectables.bind("keydown."+CONTEXT_KEY,arrowKeyHandler(that,keyMap))}if(focusedItem){selectElement(focusedItem,that)}else{reifyIndex(that)}};that.refresh=function(){if(!that.options.selectableSelector){throw ("Cannot refresh selectable context which was not initialised by a selector")}that.selectables=container.find(options.selectableSelector);that.selectablesUpdated()};that.selectedElement=function(){return that.activeItemIndex<0?null:that.selectables[that.activeItemIndex]};if(keyMap&&!that.options.noBubbleListeners){container.keydown(arrowKeyHandler(that,keyMap))}container.keydown(tabKeyHandler(that));container.focus(containerFocusHandler(that));container.blur(containerBlurHandler(that));that.selectablesUpdated();return that};fluid.selectable=function(target,options){target=$(target);var that=makeElementsSelectable(target,fluid.selectable.defaults,options);fluid.setScopedData(target,CONTEXT_KEY,that);return that};fluid.selectable.select=function(target,toSelect){fluid.focus(toSelect)};fluid.selectable.selectNext=function(target){target=$(target);focusNextElement(fluid.getScopedData(target,CONTEXT_KEY))};fluid.selectable.selectPrevious=function(target){target=$(target);focusPreviousElement(fluid.getScopedData(target,CONTEXT_KEY))};fluid.selectable.currentSelection=function(target){target=$(target);var that=fluid.getScopedData(target,CONTEXT_KEY);return $(that.selectedElement())};fluid.selectable.defaults={direction:fluid.a11y.orientation.VERTICAL,selectablesTabindex:-1,autoSelectFirstItem:true,rememberSelectionState:true,selectableSelector:".selectable",selectableElements:null,onSelect:null,onUnselect:null,onLeaveContainer:null};var checkForModifier=function(binding,evt){if(!binding.modifier){return true}var modifierKey=binding.modifier;var isCtrlKeyPresent=modifierKey&&evt.ctrlKey;var isAltKeyPresent=modifierKey&&evt.altKey;var isShiftKeyPresent=modifierKey&&evt.shiftKey;return isCtrlKeyPresent||isAltKeyPresent||isShiftKeyPresent};var makeActivationHandler=function(binding){return function(evt){var target=evt.target;if(!fluid.enabled(evt.target)){return }var code=evt.which?evt.which:evt.keyCode;if(code===binding.key&&binding.activateHandler&&checkForModifier(binding,evt)){var event=$.Event("fluid-activate");$(evt.target).trigger(event,[binding.activateHandler]);if(event.isDefaultPrevented()){evt.preventDefault()}}}};var makeElementsActivatable=function(elements,onActivateHandler,defaultKeys,options){var bindings=[];$(defaultKeys).each(function(index,key){bindings.push({modifier:null,key:key,activateHandler:onActivateHandler})});if(options&&options.additionalBindings){bindings=bindings.concat(options.additionalBindings)}fluid.initEnablement(elements);for(var i=0;i<bindings.length;++i){var binding=bindings[i];elements.keydown(makeActivationHandler(binding))}elements.bind("fluid-activate",function(evt,handler){handler=handler||onActivateHandler;return handler?handler(evt):null})};fluid.activatable=function(target,fn,options){target=$(target);makeElementsActivatable(target,fn,fluid.activatable.defaults.keys,options)};fluid.activate=function(target){$(target).trigger("fluid-activate")};fluid.activatable.defaults={keys:[$.ui.keyCode.ENTER,$.ui.keyCode.SPACE]}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.ariaLabeller",{labelAttribute:"aria-label",liveRegionMarkup:'<div class="liveRegion fl-offScreen-hidden" aria-live="polite"></div>',liveRegionId:"fluid-ariaLabeller-liveRegion",invokers:{generateLiveElement:{funcName:"fluid.ariaLabeller.generateLiveElement",args:["{ariaLabeller}"]}}});fluid.ariaLabeller=function(element,options){var that=fluid.initView("fluid.ariaLabeller",element,options);fluid.initDependents(that);that.update=function(newOptions){newOptions=newOptions||that.options;that.container.attr(that.options.labelAttribute,newOptions.text);if(newOptions.dynamicLabel){var live=fluid.jById(that.options.liveRegionId);if(live.length===0){live=that.generateLiveElement()}live.text(newOptions.text)}};that.update();return that};fluid.ariaLabeller.generateLiveElement=function(that){var liveEl=$(that.options.liveRegionMarkup);liveEl.prop("id",that.options.liveRegionId);$("body").append(liveEl);return liveEl};var LABEL_KEY="aria-labelling";fluid.getAriaLabeller=function(element){element=$(element);var that=fluid.getScopedData(element,LABEL_KEY);return that};fluid.updateAriaLabel=function(element,text,options){options=$.extend({},options||{},{text:text});var that=fluid.getAriaLabeller(element);if(!that){that=fluid.ariaLabeller(element,options);fluid.setScopedData(element,LABEL_KEY,that)}else{that.update(options)}return that};fluid.deadMansBlur=function(control,options){var that=fluid.initLittleComponent("fluid.deadMansBlur",options);that.blurPending=false;that.lastCancel=0;$(control).bind("focusout",function(event){fluid.log("Starting blur timer for element "+fluid.dumpEl(event.target));var now=new Date().getTime();fluid.log("back delay: "+(now-that.lastCancel));if(now-that.lastCancel>that.options.backDelay){that.blurPending=true}setTimeout(function(){if(that.blurPending){that.options.handler(control)}},that.options.delay)});that.canceller=function(event){fluid.log("Cancellation through "+event.type+" on "+fluid.dumpEl(event.target));that.lastCancel=new Date().getTime();that.blurPending=false};fluid.each(that.options.exclusions,function(exclusion){exclusion=$(exclusion);fluid.each(exclusion,function(excludeEl){$(excludeEl).bind("focusin",that.canceller).bind("fluid-focus",that.canceller).click(that.canceller).mousedown(that.canceller)})});return that};fluid.defaults("fluid.deadMansBlur",{delay:150,backDelay:100})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){var inCreationMarker="__CURRENTLY_IN_CREATION__";fluid.isFireBreak=function(component){return component.options&&component.options["fluid.visitComponents.fireBreak"]};fluid.visitComponentChildren=function(that,visitor,options,up,down){options=options||{};for(var name in that){var component=that[name];if(!component||!component.typeName||(component.id&&options.visited&&options.visited[component.id])){continue}if(options.visited){options.visited[component.id]=true}if(visitor(component,name,options,up,down)){return true}if(!fluid.isFireBreak(component)&&!options.flat){fluid.visitComponentChildren(component,visitor,options,up,down+1)}}};var visitComponents=function(thatStack,visitor,options){options=options||{visited:{},flat:true};var up=0;for(var i=thatStack.length-1;i>=0;--i){var that=thatStack[i];if(fluid.isFireBreak(that)){return }if(that.typeName){options.visited[that.id]=true;if(visitor(that,"",options,0,0)){return }}if(fluid.visitComponentChildren(that,visitor,options,up,1)){return }++up}};function makeGingerStrategy(instantiator,that,thatStack){return function(component,thisSeg){var atval=component[thisSeg];if(atval===undefined){var parentPath=instantiator.idToPath[component.id];atval=instantiator.pathToComponent[fluid.composePath(parentPath,thisSeg)];if(atval){atval[inCreationMarker]=true}}if(atval!==undefined){if(atval[inCreationMarker]){fluid.fail("Component "+fluid.dumpThat(atval)+' at path "'+thisSeg+'" of parent '+fluid.dumpThat(component)+" cannot be used for lookup since it is still in creation. Please reorganise your dependencies so that they no longer contain circular references")}}else{if(fluid.get(component,fluid.path("options","components",thisSeg,"type"))){fluid.initDependent(component,thisSeg);atval=component[thisSeg]}}return atval}}fluid.dumpThat=function(that,instantiator){return'{ typeName: "'+that.typeName+'" id: '+that.id+"}"};fluid.dumpThatStack=function(thatStack,instantiator){var togo=fluid.transform(thatStack,function(that){var path=instantiator.idToPath[that.id];return fluid.dumpThat(that)+(path?(" - path: "+path):"")});return togo.join("\n")};fluid.describeActivity=function(){return fluid.threadLocal().activityStack||[]};fluid.pushActivity=function(func,message){if(!message){return func()}var root=fluid.threadLocal();if(!root.activityStack){root.activityStack=[]}var frames=fluid.makeArray(message);frames.push("\n");frames.unshift("\n");root.activityStack=frames.concat(root.activityStack);return fluid.tryCatch(func,null,function(){root.activityStack=root.activityStack.slice(frames.length)})};fluid.wrapActivity=function(func,messageSpec){return function(){var args=fluid.makeArray(arguments);var message=fluid.transform(fluid.makeArray(messageSpec),function(specEl){if(specEl.indexOf("arguments.")===0){var el=specEl.substring("arguments.".length);return fluid.get(args,el)}else{return specEl}});return fluid.pushActivity(function(){return func.apply(null,args)},message)}};var localRecordExpected=/arguments|options|container/;function makeStackFetcher(instantiator,parentThat,localRecord,expandOptions){expandOptions=expandOptions||{};var thatStack=instantiator.getFullStack(parentThat);var fetchStrategies=[fluid.model.funcResolverStrategy,makeGingerStrategy(instantiator,parentThat,thatStack)];var fetcher=function(parsed){var context=parsed.context;if(localRecord&&localRecordExpected.test(context)){var fetched=fluid.get(localRecord[context],parsed.path);return(context==="arguments"||expandOptions.direct)?fetched:{marker:context==="options"?fluid.EXPAND:fluid.EXPAND_NOW,value:fetched}}var foundComponent;visitComponents(thatStack,function(component,name,options,up,down){if(context===name||context===component.typeName||context===component.nickName){foundComponent=component;if(down>1){fluid.log("***WARNING: value resolution for context "+context+" found at depth "+down+": this may not be supported in future")}return true}if(fluid.get(component,fluid.path("options","components",context,"type"))&&!component[context]){foundComponent=fluid.get(component,context,{strategies:fetchStrategies});return true}});if(!foundComponent&&parsed.path!==""){var ref=fluid.renderContextReference(parsed);fluid.log("Failed to resolve reference "+ref+": thatStack contains\n"+fluid.dumpThatStack(thatStack,instantiator));fluid.fail("Failed to resolve reference "+ref+" - could not match context with name "+context+" from component root of type "+thatStack[0].typeName,"\ninstantiator contents: ",instantiator)}return fluid.get(foundComponent,parsed.path,fetchStrategies)};return fetcher}function makeStackResolverOptions(instantiator,parentThat,localRecord,expandOptions){return $.extend({},fluid.defaults("fluid.resolveEnvironment"),{fetcher:makeStackFetcher(instantiator,parentThat,localRecord,expandOptions)})}fluid.instantiator=function(freeInstantiator){var preThat={options:{"fluid.visitComponents.fireBreak":true},idToPath:{},pathToComponent:{},stackCount:0,nickName:"instantiator"};var that=fluid.typeTag("fluid.instantiator");that=$.extend(that,preThat);that.stack=function(count){return that.stackCount+=count};that.getThatStack=function(component){var path=that.idToPath[component.id]||"";var parsed=fluid.model.parseEL(path);var togo=fluid.transform(parsed,function(value,i){var parentPath=fluid.model.composeSegments.apply(null,parsed.slice(0,i+1));return that.pathToComponent[parentPath]});var root=that.pathToComponent[""];if(root){togo.unshift(root)}return togo};that.getEnvironmentalStack=function(){var togo=[fluid.staticEnvironment];if(!freeInstantiator){togo.push(fluid.threadLocal())}return togo};that.getFullStack=function(component){var thatStack=component?that.getThatStack(component):[];return that.getEnvironmentalStack().concat(thatStack)};function recordComponent(component,path){that.idToPath[component.id]=path;if(that.pathToComponent[path]){fluid.fail("Error during instantiation - path "+path+" which has just created component "+fluid.dumpThat(component)+" has already been used for component "+fluid.dumpThat(that.pathToComponent[path])+" - this is a circular instantiation or other oversight. Please clear the component using instantiator.clearComponent() before reusing the path.")}that.pathToComponent[path]=component}that.recordRoot=function(component){if(component&&component.id&&!that.pathToComponent[""]){recordComponent(component,"")}};that.pushUpcomingInstantiation=function(parent,name){that.expectedParent=parent;that.expectedName=name};that.recordComponent=function(component){if(that.expectedName){that.recordKnownComponent(that.expectedParent,component,that.expectedName);delete that.expectedName;delete that.expectedParent}else{that.recordRoot(component)}};that.clearComponent=function(component,name,child,options,noModTree){options=options||{visited:{},flat:true};child=child||component[name];fluid.visitComponentChildren(child,function(gchild,gchildname){that.clearComponent(child,gchildname,null,options,noModTree)},options);var path=that.idToPath[child.id];delete that.idToPath[child.id];delete that.pathToComponent[path];if(!noModTree){delete component[name]}};that.recordKnownComponent=function(parent,component,name){var parentPath=that.idToPath[parent.id]||"";var path=fluid.model.composePath(parentPath,name);recordComponent(component,path)};return that};fluid.freeInstantiator=fluid.instantiator(true);fluid.argMapToDemands=function(argMap){var togo=[];fluid.each(argMap,function(value,key){togo[value]="{"+key+"}"});return togo};fluid.makePassArgsSpec=function(initArgs){return fluid.transform(initArgs,function(arg,index){return"{arguments}."+index})};function mergeToMergeAll(options){if(options&&options.mergeOptions){options.mergeAllOptions=["{options}"].concat(fluid.makeArray(options.mergeOptions))}}function upgradeMergeOptions(demandspec){mergeToMergeAll(demandspec);if(demandspec.mergeAllOptions){if(demandspec.options){fluid.fail("demandspec ",demandspec," is invalid - cannot specify literal options together with mergeOptions or mergeAllOptions")}demandspec.options={mergeAllOptions:demandspec.mergeAllOptions}}if(demandspec.options){delete demandspec.options.mergeOptions}}fluid.embodyDemands=function(instantiator,parentThat,demandspec,initArgs,options){options=options||{};upgradeMergeOptions(demandspec);var oldOptions=fluid.get(options,"componentRecord.options");options.componentRecord=$.extend(true,{},options.componentRecord,fluid.censorKeys(demandspec,["args","funcName","registeredFrom"]));var mergeAllZero=fluid.get(options,"componentRecord.options.mergeAllOptions.0");if(mergeAllZero==="{options}"){fluid.set(options,"componentRecord.options.mergeAllOptions.0",oldOptions)}var demands=$.makeArray(demandspec.args);var upDefaults=fluid.defaults(demandspec.funcName);var argMap=upDefaults?upDefaults.argumentMap:null;var inferMap=false;if(!argMap&&(upDefaults||(options&&options.componentRecord))&&!options.passArgs){inferMap=true;if(demands.length<2){argMap=fluid.rawDefaults("fluid.littleComponent").argumentMap}else{argMap={options:demands.length-1}}}options=options||{};if(demands.length===0){if(options.componentRecord&&argMap){demands=fluid.argMapToDemands(argMap)}else{if(options.passArgs){demands=fluid.makePassArgsSpec(initArgs)}}}var localRecord=$.extend({arguments:initArgs},fluid.censorKeys(options.componentRecord,["type"]));fluid.each(argMap,function(index,name){if(initArgs.length>0){localRecord[name]=localRecord.arguments[index]}if(demandspec[name]!==undefined&&localRecord[name]===undefined){localRecord[name]=demandspec[name]}});mergeToMergeAll(localRecord.options);mergeToMergeAll(argMap&&demands[argMap.options]);var upstreamLocalRecord=$.extend({},localRecord);if(options.componentRecord.options!==undefined){upstreamLocalRecord.options=options.componentRecord.options}var expandOptions=makeStackResolverOptions(instantiator,parentThat,localRecord);var args=[];if(demands){for(var i=0;i<demands.length;++i){var arg=demands[i];if(fluid.isMarker(arg)&&arg.value===fluid.COMPONENT_OPTIONS.value){arg="{options}";if(inferMap){argMap={options:i}}}if(typeof (arg)==="string"){if(arg.charAt(0)==="@"){var argpos=arg.substring(1);arg="{arguments}."+argpos}}if(!argMap||argMap.options!==i){args[i]=fluid.expander.expandLight(arg,expandOptions)}else{if(arg&&typeof (arg)==="object"&&!arg.targetTypeName){arg.targetTypeName=demandspec.funcName}args[i]={marker:fluid.EXPAND,value:fluid.copy(arg),localRecord:upstreamLocalRecord}}if(args[i]&&fluid.isMarker(args[i].marker,fluid.EXPAND_NOW)){args[i]=fluid.expander.expandLight(args[i].value,expandOptions)}}}else{args=initArgs?initArgs:[]}var togo={args:args,funcName:demandspec.funcName};return togo};var aliasTable={};fluid.alias=function(demandingName,aliasName){if(aliasName){aliasTable[demandingName]=aliasName}else{return aliasTable[demandingName]}};var dependentStore={};function searchDemands(demandingName,contextNames){var exist=dependentStore[demandingName]||[];outer:for(var i=0;i<exist.length;++i){var rec=exist[i];for(var j=0;j<contextNames.length;++j){if(rec.contexts[j]!==contextNames[j]){continue outer}}return rec.spec}}fluid.demands=function(demandingName,contextName,spec){var contextNames=$.makeArray(contextName).sort();if(!spec){return searchDemands(demandingName,contextNames)}else{if(spec.length){spec={args:spec}}}if(fluid.getCallerInfo){var callerInfo=fluid.getCallerInfo(5);if(callerInfo){spec.registeredFrom=callerInfo}}var exist=dependentStore[demandingName];if(!exist){exist=[];dependentStore[demandingName]=exist}exist.push({contexts:contextNames,spec:spec})};fluid.compareDemands=function(speca,specb){var p1=speca.uncess-specb.uncess;return p1===0?specb.intersect-speca.intersect:p1};fluid.isDemandLogging=function(demandingNames){return fluid.isLogging()&&demandingNames[0]!=="fluid.threadLocal"};fluid.locateAllDemands=function(instantiator,parentThat,demandingNames){var demandLogging=fluid.isDemandLogging(demandingNames);if(demandLogging){fluid.log("Resolving demands for function names ",demandingNames," in context of "+(parentThat?"component "+parentThat.typeName:"no component"))}var contextNames={};var visited=[];var thatStack=instantiator.getFullStack(parentThat);visitComponents(thatStack,function(component,xname,options,up,down){contextNames[component.typeName]=true;visited.push(component)});if(demandLogging){fluid.log("Components in scope for resolution:\n"+fluid.dumpThatStack(visited,instantiator))}var matches=[];for(var i=0;i<demandingNames.length;++i){var rec=dependentStore[demandingNames[i]]||[];for(var j=0;j<rec.length;++j){var spec=rec[j];var record={spec:spec,intersect:0,uncess:0};for(var k=0;k<spec.contexts.length;++k){record[contextNames[spec.contexts[k]]?"intersect":"uncess"]+=2}if(spec.contexts.length===0){record.intersect++}matches.push(record)}}matches.sort(fluid.compareDemands);return matches};fluid.locateDemands=function(instantiator,parentThat,demandingNames){var matches=fluid.locateAllDemands(instantiator,parentThat,demandingNames);var demandspec=matches.length===0||matches[0].intersect===0?null:matches[0].spec.spec;if(fluid.isDemandLogging(demandingNames)){if(demandspec){fluid.log("Located "+matches.length+" potential match"+(matches.length===1?"":"es")+", selected best match with "+matches[0].intersect+" matched context names: ",demandspec)}else{fluid.log("No matches found for demands, using direct implementation")}}return demandspec};fluid.determineDemands=function(instantiator,parentThat,funcNames){funcNames=$.makeArray(funcNames);var newFuncName=funcNames[0];var demandspec=fluid.locateDemands(instantiator,parentThat,funcNames)||{};if(demandspec.funcName){newFuncName=demandspec.funcName}var aliasTo=fluid.alias(newFuncName);if(aliasTo){newFuncName=aliasTo;fluid.log("Following redirect from function name "+newFuncName+" to "+aliasTo);var demandspec2=fluid.locateDemands(instantiator,parentThat,[aliasTo]);if(demandspec2){fluid.each(demandspec2,function(value,key){if(localRecordExpected.test(key)){fluid.fail("Error in demands block ",demandspec2,' - content with key "'+key+'" is not supported since this demands block was resolved via an alias from "'+newFuncName+'"')}});if(demandspec2.funcName){newFuncName=demandspec2.funcName;fluid.log('Followed final inner demands to function name "'+newFuncName+'"')}}}return fluid.merge(null,{funcName:newFuncName,args:fluid.makeArray(demandspec.args)},fluid.censorKeys(demandspec,["funcName","args"]))};fluid.resolveDemands=function(instantiator,parentThat,funcNames,initArgs,options){var demandspec=fluid.determineDemands(instantiator,parentThat,funcNames);return fluid.embodyDemands(instantiator,parentThat,demandspec,initArgs,options)};fluid.invoke=function(functionName,args,that,environment){args=fluid.makeArray(args);return fluid.withInstantiator(that,function(instantiator){var invokeSpec=fluid.resolveDemands(instantiator,that,functionName,args,{passArgs:true});return fluid.invokeGlobalFunction(invokeSpec.funcName,invokeSpec.args,environment)})};fluid.invoke=fluid.wrapActivity(fluid.invoke,['    while invoking function with name "',"arguments.0",'" from component',"arguments.2"]);fluid.makeFreeInvoker=function(functionName,environment){var demandSpec=fluid.determineDemands(fluid.freeInstantiator,null,functionName);return function(){var invokeSpec=fluid.embodyDemands(fluid.freeInstantiator,null,demandSpec,arguments,{passArgs:true});return fluid.invokeGlobalFunction(invokeSpec.funcName,invokeSpec.args,environment)}};fluid.makeInvoker=function(instantiator,that,demandspec,functionName,environment){demandspec=demandspec||fluid.determineDemands(instantiator,that,functionName);return function(){var args=arguments;return fluid.pushActivity(function(){var invokeSpec=fluid.embodyDemands(instantiator,that,demandspec,args,{passArgs:true});return fluid.invokeGlobalFunction(invokeSpec.funcName,invokeSpec.args,environment)},["    while invoking invoker with name "+functionName+" on component",that])}};fluid.event.dispatchListener=function(instantiator,that,listener,eventName,eventSpec){return function(){var demandspec=fluid.determineDemands(instantiator,that,eventName);if(demandspec.args.length===0&&eventSpec.args){demandspec.args=eventSpec.args}var resolved=fluid.embodyDemands(instantiator,that,demandspec,arguments,{passArgs:true,componentOptions:eventSpec});listener.apply(null,resolved.args)}};fluid.event.resolveEvent=function(that,eventName,eventSpec){return fluid.withInstantiator(that,function(instantiator){if(typeof (eventSpec)==="string"){var firer=fluid.expandOptions(eventSpec,that);if(!firer){fluid.fail("Error in fluid.event.resolveEvent - context path "+eventSpec+" could not be looked up to a valid event firer")}return firer}else{var event=eventSpec.event;var origin;if(!event){fluid.fail("Event specification for event with name "+eventName+" does not include a base event specification")}if(event.charAt(0)==="{"){origin=fluid.expandOptions(event,that)}else{origin=that.events[event]}if(!origin){fluid.fail("Error in event specification - could not resolve base event reference "+event+" to an event firer")}var firer={};fluid.each(["fire","removeListener"],function(method){firer[method]=function(){origin[method].apply(null,arguments)}});firer.addListener=function(listener,namespace,predicate,priority){origin.addListener(fluid.event.dispatchListener(instantiator,that,listener,eventName,eventSpec),namespace,predicate,priority)};return firer}})};fluid.registerNamespace("fluid.expander");fluid.expander.preserveFromExpansion=function(options){var preserve={};var preserveList=fluid.arrayToHash(["mergePolicy","mergeAllOptions","components","invokers","events","listeners","transformOptions"]);fluid.each(options.mergePolicy,function(value,key){if(fluid.mergePolicyIs(value,"noexpand")){preserveList[key]=true}});fluid.each(preserveList,function(xvalue,path){var pen=fluid.model.getPenultimate(options,path);var value=pen.root[pen.last];delete pen.root[pen.last];fluid.set(preserve,path,value)});return{restore:function(target){fluid.each(preserveList,function(xvalue,path){var preserved=fluid.get(preserve,path);if(preserved!==undefined){fluid.set(target,path,preserved)}})}}};fluid.expandOptions=function(args,that,localRecord,outerExpandOptions){if(!args){return args}return fluid.withInstantiator(that,function(instantiator){var expandOptions=makeStackResolverOptions(instantiator,that,localRecord,outerExpandOptions);expandOptions.noCopy=true;var pres;if(!fluid.isArrayable(args)&&!fluid.isPrimitive(args)){pres=fluid.expander.preserveFromExpansion(args)}var expanded=fluid.expander.expandLight(args,expandOptions);if(pres){pres.restore(expanded)}return expanded})};fluid.locateTransformationRecord=function(that){return fluid.withInstantiator(that,function(instantiator){var matches=fluid.locateAllDemands(instantiator,that,["fluid.transformOptions"]);return fluid.find(matches,function(match){return match.uncess===0&&fluid.contains(match.spec.contexts,that.typeName)?match.spec.spec:undefined})})};fluid.hashToArray=function(hash){var togo=[];fluid.each(hash,function(value,key){togo.push(key)});return togo};fluid.localRecordExpected=["type","options","arguments","mergeOptions","mergeAllOptions","createOnEvent","priority"];fluid.checkComponentRecord=function(defaults,localRecord){var expected=fluid.arrayToHash(fluid.localRecordExpected);fluid.each(defaults.argumentMap,function(value,key){expected[key]=true});fluid.each(localRecord,function(value,key){if(!expected[key]){fluid.fail('Probable error in subcomponent record - key "'+key+'" found, where the only legal options are '+fluid.hashToArray(expected).join(", "))}})};fluid.expandComponentOptions=function(defaults,userOptions,that){if(userOptions&&userOptions.localRecord){fluid.checkComponentRecord(defaults,userOptions.localRecord)}defaults=fluid.expandOptions(fluid.copy(defaults),that);var localRecord={};if(userOptions&&userOptions.marker===fluid.EXPAND){var localOptions=fluid.get(userOptions,"localRecord.options");if(localOptions){if(defaults&&defaults.mergePolicy){localOptions.mergePolicy=defaults.mergePolicy}localRecord.options=fluid.expandOptions(localOptions,that)}localRecord.arguments=fluid.get(userOptions,"localRecord.arguments");var toExpand=userOptions.value;userOptions=fluid.expandOptions(toExpand,that,localRecord,{direct:true})}localRecord.directOptions=userOptions;if(!localRecord.options){localRecord.options=userOptions}var mergeOptions=(userOptions&&userOptions.mergeAllOptions)||["{directOptions}"];var togo=fluid.transform(mergeOptions,function(path){return path==="{directOptions}"?localRecord.directOptions:fluid.expandOptions(path,that,localRecord,{direct:true})});var transRec=fluid.locateTransformationRecord(that);if(transRec){togo[0].transformOptions=transRec.options}return[defaults].concat(togo)};fluid.expandComponentOptions=fluid.wrapActivity(fluid.expandComponentOptions,["    while expanding component options ","arguments.1.value"," with record ","arguments.1"," for component ","arguments.2"]);fluid.initDependent=function(that,name,userInstantiator,directArgs){if(!that||that[name]){return }fluid.log('Beginning instantiation of component with name "'+name+'" as child of '+fluid.dumpThat(that));directArgs=directArgs||[];var root=fluid.threadLocal();if(userInstantiator){var existing=root["fluid.instantiator"];if(existing&&existing!==userInstantiator){fluid.fail("Error in initDependent: user instantiator supplied with id "+userInstantiator.id+" which differs from that for currently active instantiation with id "+existing.id)}else{root["fluid.instantiator"]=userInstantiator}}var component=that.options.components[name];fluid.withInstantiator(that,function(instantiator){if(typeof (component)==="string"){that[name]=fluid.expandOptions([component],that)[0]}else{if(component.type){var invokeSpec=fluid.resolveDemands(instantiator,that,[component.type,name],directArgs,{componentRecord:component});instantiator.pushUpcomingInstantiation(that,name);fluid.tryCatch(function(){that[inCreationMarker]=true;var instance=fluid.initSubcomponentImpl(that,{type:invokeSpec.funcName},invokeSpec.args);var path=fluid.composePath(instantiator.idToPath[that.id]||"",name);var existing=instantiator.pathToComponent[path];if(existing&&existing!==instance){instantiator.clearComponent(that,name,existing,null,true)}if(instance&&instance.typeName&&instance.id&&instance!==existing){instantiator.recordKnownComponent(that,instance,name)}that[name]=instance},null,function(){delete that[inCreationMarker];instantiator.pushUpcomingInstantiation()})}else{that[name]=component}}},['    while instantiating dependent component with name "'+name+'" with record ',component," as child of ",that]);fluid.log('Finished instantiation of component with name "'+name+'" as child of '+fluid.dumpThat(that))};fluid.withInstantiator=function(that,func,message){var root=fluid.threadLocal();var instantiator=root["fluid.instantiator"];if(!instantiator){instantiator=root["fluid.instantiator"]=fluid.instantiator()}return fluid.pushActivity(function(){return fluid.tryCatch(function(){if(that){instantiator.recordComponent(that)}instantiator.stack(1);return func(instantiator)},null,function(){var count=instantiator.stack(-1);if(count===0){delete root["fluid.instantiator"]}})},message)};fluid.bindDeferredComponent=function(that,componentName,component,instantiator){var events=fluid.makeArray(component.createOnEvent);fluid.each(events,function(eventName){that.events[eventName].addListener(function(){if(that[componentName]){instantiator.clearComponent(that,componentName)}fluid.initDependent(that,componentName,instantiator)},null,null,component.priority)})};fluid.priorityForComponent=function(component){return component.priority?component.priority:(component.type==="fluid.typeFount"||fluid.hasGrade(fluid.defaults(component.type),"fluid.typeFount"))?"first":undefined};fluid.initDependents=function(that){var options=that.options;var components=options.components||{};var componentSort={};fluid.withInstantiator(that,function(instantiator){fluid.each(components,function(component,name){if(!component.createOnEvent){var priority=fluid.priorityForComponent(component);componentSort[name]={key:name,priority:fluid.event.mapPriority(priority,0)}}else{fluid.bindDeferredComponent(that,name,component,instantiator)}});var componentList=fluid.event.sortListeners(componentSort);fluid.each(componentList,function(entry){fluid.initDependent(that,entry.key)});var invokers=options.invokers||{};for(var name in invokers){var invokerec=invokers[name];var funcName=typeof (invokerec)==="string"?invokerec:null;that[name]=fluid.withInstantiator(that,function(instantiator){fluid.log('Beginning instantiation of invoker with name "'+name+'" as child of '+fluid.dumpThat(that));return fluid.makeInvoker(instantiator,that,funcName?null:invokerec,funcName)},['    while instantiating invoker with name "'+name+'" with record ',invokerec," as child of ",that]);fluid.log('Finished instantiation of invoker with name "'+name+'" as child of '+fluid.dumpThat(that))}})};fluid.staticEnvironment=fluid.typeTag("fluid.staticEnvironment");fluid.staticEnvironment.environmentClass=fluid.typeTag("fluid.browser");fluid.demands("fluid.threadLocal","fluid.browser",{funcName:"fluid.singleThreadLocal"});var singleThreadLocal=fluid.typeTag("fluid.dynamicEnvironment");fluid.singleThreadLocal=function(){return singleThreadLocal};fluid.threadLocal=function(){var demands=fluid.locateDemands(fluid.freeInstantiator,null,["fluid.threadLocal"]);return fluid.invokeGlobalFunction(demands.funcName,arguments)};function applyLocalChange(applier,type,path,value){var change={type:type,path:path,value:value};applier.fireChangeRequest(change)}fluid.withEnvironment=function(envAdd,func,prefix){prefix=prefix||"";var root=fluid.threadLocal();var applier=fluid.makeChangeApplier(root,{thin:true});return fluid.tryCatch(function(){for(var key in envAdd){applyLocalChange(applier,"ADD",fluid.model.composePath(prefix,key),envAdd[key])}$.extend(root,envAdd);return func()},null,function(){for(var key in envAdd){applyLocalChange(applier,"DELETE",fluid.model.composePath(prefix,key))}})};fluid.makeEnvironmentFetcher=function(prefix,directModel){return function(parsed){var env=fluid.get(fluid.threadLocal(),prefix);return fluid.fetchContextReference(parsed,directModel,env)}};fluid.extractEL=function(string,options){if(options.ELstyle==="ALL"){return string}else{if(options.ELstyle.length===1){if(string.charAt(0)===options.ELstyle){return string.substring(1)}}else{if(options.ELstyle==="${}"){var i1=string.indexOf("${");var i2=string.lastIndexOf("}");if(i1===0&&i2!==-1){return string.substring(2,i2)}}}}};fluid.extractELWithContext=function(string,options){var EL=fluid.extractEL(string,options);if(EL&&EL.charAt(0)==="{"){return fluid.parseContextReference(EL,0)}return EL?{path:EL}:EL};fluid.parseContextReference=function(reference,index,delimiter){var endcpos=reference.indexOf("}",index+1);if(endcpos===-1){fluid.fail('Cannot parse context reference "'+reference+'": Malformed context reference without }')}var context=reference.substring(index+1,endcpos);var endpos=delimiter?reference.indexOf(delimiter,endcpos+1):reference.length;var path=reference.substring(endcpos+1,endpos);if(path.charAt(0)==="."){path=path.substring(1)}return{context:context,path:path,endpos:endpos}};fluid.renderContextReference=function(parsed){return"{"+parsed.context+"}"+parsed.path};fluid.fetchContextReference=function(parsed,directModel,env){var base=parsed.context?env[parsed.context]:directModel;if(!base){return base}return fluid.get(base,parsed.path)};fluid.resolveContextValue=function(string,options){if(options.bareContextRefs&&string.charAt(0)==="{"){var parsed=fluid.parseContextReference(string,0);return options.fetcher(parsed)}else{if(options.ELstyle&&options.ELstyle!=="${}"){var parsed=fluid.extractELWithContext(string,options);if(parsed){return options.fetcher(parsed)}}}while(typeof (string)==="string"){var i1=string.indexOf("${");var i2=string.indexOf("}",i1+2);if(i1!==-1&&i2!==-1){var parsed;if(string.charAt(i1+2)==="{"){parsed=fluid.parseContextReference(string,i1+2,"}");i2=parsed.endpos}else{parsed={path:string.substring(i1+2,i2)}}var subs=options.fetcher(parsed);var all=(i1===0&&i2===string.length-1);if(subs===undefined||subs===null){return subs}string=all?subs:string.substring(0,i1)+subs+string.substring(i2+1)}else{break}}return string};fluid.resolveContextValue=fluid.wrapActivity(fluid.resolveContextValue,["    while resolving context value ","arguments.0"]);function resolveEnvironmentImpl(obj,options){fluid.guardCircularity(options.seenIds,obj,"expansion",' - please ensure options are not circularly connected, or protect from expansion using the "noexpand" policy or expander');function recurse(arg){return resolveEnvironmentImpl(arg,options)}if(typeof (obj)==="string"&&!options.noValue){return fluid.resolveContextValue(obj,options)}else{if(fluid.isPrimitive(obj)||obj.nodeType!==undefined||obj.jquery){return obj}else{if(options.filter){return options.filter(obj,recurse,options)}else{return(options.noCopy?fluid.each:fluid.transform)(obj,function(value,key){return resolveEnvironmentImpl(value,options)})}}}}fluid.defaults("fluid.resolveEnvironment",{ELstyle:"${}",seenIds:{},bareContextRefs:true});fluid.resolveEnvironment=function(obj,options){options=$.extend(true,{},fluid.rawDefaults("fluid.resolveEnvironment"),options);return resolveEnvironmentImpl(obj,options)};fluid.expander.deferredCall=function(target,source,recurse){var expander=source.expander;var args=(!expander.args||fluid.isArrayable(expander.args))?expander.args:$.makeArray(expander.args);args=recurse(args);return fluid.invokeGlobalFunction(expander.func,args)};fluid.deferredCall=fluid.expander.deferredCall;fluid.deferredInvokeCall=function(target,source,recurse){var expander=source.expander;var args=(!expander.args||fluid.isArrayable(expander.args))?expander.args:$.makeArray(expander.args);args=recurse(args);return fluid.invoke(expander.func,args)};fluid.expander.noexpand=function(target,source){return $.extend(target,source.expander.tree)};fluid.noexpand=fluid.expander.noexpand;fluid.expander.lightFilter=function(obj,recurse,options){var togo;if(fluid.isArrayable(obj)){togo=options.noCopy?obj:[];fluid.each(obj,function(value,key){togo[key]=recurse(value)})}else{togo=options.noCopy?obj:{};for(var key in obj){var value=obj[key];var expander;if(key==="expander"&&!(options.expandOnly&&options.expandOnly[value.type])){expander=fluid.getGlobalValue(value.type);if(expander){return expander.call(null,togo,obj,recurse,options)}}if(key!=="expander"||!expander){togo[key]=recurse(value)}}}return options.noCopy?obj:togo};fluid.expander.expandLight=function(source,expandOptions){var options=$.extend({},expandOptions);options.filter=fluid.expander.lightFilter;return fluid.resolveEnvironment(source,options)}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){var resourceCache={};var pendingClass={};fluid.fetchResources=function(resourceSpecs,callback,options){var that=fluid.initLittleComponent("fluid.fetchResources",options);that.resourceSpecs=resourceSpecs;that.callback=callback;that.operate=function(){fluid.fetchResources.fetchResourcesImpl(that)};fluid.each(resourceSpecs,function(resourceSpec){resourceSpec.recurseFirer=fluid.event.getEventFirer();resourceSpec.recurseFirer.addListener(that.operate);if(resourceSpec.url&&!resourceSpec.href){resourceSpec.href=resourceSpec.url}});if(that.options.amalgamateClasses){fluid.fetchResources.amalgamateClasses(resourceSpecs,that.options.amalgamateClasses,that.operate)}that.operate();return that};fluid.fetchResources.amalgamateClasses=function(specs,classes,operator){fluid.each(classes,function(clazz){var pending=pendingClass[clazz];fluid.each(pending,function(pendingrec,canon){specs[clazz+"!"+canon]=pendingrec;pendingrec.recurseFirer.addListener(operator)})})};fluid.fetchResources.timeSuccessCallback=function(resourceSpec){if(resourceSpec.timeSuccess&&resourceSpec.options&&resourceSpec.options.success){var success=resourceSpec.options.success;resourceSpec.options.success=function(){var startTime=new Date();var ret=success.apply(null,arguments);fluid.log("External callback for URL "+resourceSpec.href+" completed - callback time: "+(new Date().getTime()-startTime.getTime())+"ms");return ret}}};function canonUrl(url){return url}fluid.fetchResources.clearResourceCache=function(url){if(url){delete resourceCache[canonUrl(url)]}else{fluid.clear(resourceCache)}};fluid.fetchResources.handleCachedRequest=function(resourceSpec,response){var canon=canonUrl(resourceSpec.href);var cached=resourceCache[canon];if(cached.$$firer$$){fluid.log("Handling request for "+canon+" from cache");var fetchClass=resourceSpec.fetchClass;if(fetchClass&&pendingClass[fetchClass]){fluid.log("Clearing pendingClass entry for class "+fetchClass);delete pendingClass[fetchClass][canon]}resourceCache[canon]=response;cached.fire(response)}};fluid.fetchResources.completeRequest=function(thisSpec,recurseCall){thisSpec.queued=false;thisSpec.completeTime=new Date();fluid.log("Request to URL "+thisSpec.href+" completed - total elapsed time: "+(thisSpec.completeTime.getTime()-thisSpec.initTime.getTime())+"ms");thisSpec.recurseFirer.fire()};fluid.fetchResources.makeResourceCallback=function(thisSpec){return{success:function(response){thisSpec.resourceText=response;thisSpec.resourceKey=thisSpec.href;if(thisSpec.forceCache){fluid.fetchResources.handleCachedRequest(thisSpec,response)}fluid.fetchResources.completeRequest(thisSpec)},error:function(response,textStatus,errorThrown){thisSpec.fetchError={status:response.status,textStatus:response.textStatus,errorThrown:errorThrown};fluid.fetchResources.completeRequest(thisSpec)}}};fluid.fetchResources.issueCachedRequest=function(resourceSpec,options){var canon=canonUrl(resourceSpec.href);var cached=resourceCache[canon];if(!cached){fluid.log("First request for cached resource with url "+canon);cached=fluid.event.getEventFirer();cached.$$firer$$=true;resourceCache[canon]=cached;var fetchClass=resourceSpec.fetchClass;if(fetchClass){if(!pendingClass[fetchClass]){pendingClass[fetchClass]={}}pendingClass[fetchClass][canon]=resourceSpec}options.cache=false;$.ajax(options)}else{if(!cached.$$firer$$){options.success(cached)}else{fluid.log("Request for cached resource which is in flight: url "+canon);cached.addListener(function(response){options.success(response)})}}};fluid.fetchResources.composeCallbacks=function(internal,external){return external?function(){try{external.apply(null,arguments)}catch(e){fluid.log("Exception applying external fetchResources callback: "+e)}internal.apply(null,arguments)}:internal};fluid.fetchResources.composePolicy=function(target,source,key){return fluid.fetchResources.composeCallbacks(target,source)};fluid.defaults("fluid.fetchResources.issueRequest",{mergePolicy:{success:fluid.fetchResources.composePolicy,error:fluid.fetchResources.composePolicy,url:"reverse"}});fluid.fetchResources.issueRequest=function(resourceSpec,key){var thisCallback=fluid.fetchResources.makeResourceCallback(resourceSpec);var options={url:resourceSpec.href,success:thisCallback.success,error:thisCallback.error,dataType:"text"};fluid.fetchResources.timeSuccessCallback(resourceSpec);fluid.merge(fluid.defaults("fluid.fetchResources.issueRequest").mergePolicy,options,resourceSpec.options);resourceSpec.queued=true;resourceSpec.initTime=new Date();fluid.log("Request with key "+key+" queued for "+resourceSpec.href);if(resourceSpec.forceCache){fluid.fetchResources.issueCachedRequest(resourceSpec,options)}else{$.ajax(options)}};fluid.fetchResources.fetchResourcesImpl=function(that){var complete=true;var allSync=true;var resourceSpecs=that.resourceSpecs;for(var key in resourceSpecs){var resourceSpec=resourceSpecs[key];if(!resourceSpec.options||resourceSpec.options.async){allSync=false}if(resourceSpec.href&&!resourceSpec.completeTime){if(!resourceSpec.queued){fluid.fetchResources.issueRequest(resourceSpec,key)}if(resourceSpec.queued){complete=false}}else{if(resourceSpec.nodeId&&!resourceSpec.resourceText){var node=document.getElementById(resourceSpec.nodeId);resourceSpec.resourceText=fluid.dom.getElementText(node);resourceSpec.resourceKey=resourceSpec.nodeId}}}if(complete&&that.callback&&!that.callbackCalled){that.callbackCalled=true;if($.browser.mozilla&&!allSync){setTimeout(function(){that.callback(resourceSpecs)},1)}else{that.callback(resourceSpecs)}}};fluid.fetchResources.primeCacheFromResources=function(componentName){var resources=fluid.defaults(componentName).resources;var that={typeName:"fluid.fetchResources.primeCacheFromResources"};var expanded=(fluid.expandOptions?fluid.expandOptions:fluid.identity)(fluid.copy(resources),that);fluid.fetchResources(expanded)};fluid.registerNamespace("fluid.expander");fluid.expander.makeDefaultFetchOptions=function(successdisposer,failid,options){return $.extend(true,{dataType:"text"},options,{success:function(response,environmentdisposer){var json=JSON.parse(response);environmentdisposer(successdisposer(json))},error:function(response,textStatus){fluid.log("Error fetching "+failid+": "+textStatus)}})};fluid.expander.makeFetchExpander=function(options){return{expander:{type:"fluid.expander.deferredFetcher",href:options.url,options:fluid.expander.makeDefaultFetchOptions(options.disposer,options.url,options.options),resourceSpecCollector:"{resourceSpecCollector}",fetchKey:options.fetchKey}}};fluid.expander.deferredFetcher=function(target,source,recurse,expandOptions){var expander=source.expander;var spec=fluid.copy(expander);var collector=fluid.resolveEnvironment(expander.resourceSpecCollector,expandOptions);delete spec.type;delete spec.resourceSpecCollector;delete spec.fetchKey;var environmentdisposer=function(disposed){$.extend(target,disposed)};spec.options.success=function(response){expander.options.success(response,environmentdisposer)};var key=expander.fetchKey||fluid.allocateGuid();collector[key]=spec;return target}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.XMLP=function(strXML){return fluid.XMLP.XMLPImpl(strXML)};fluid.XMLP.closedTags={abbr:true,br:true,col:true,img:true,input:true,link:true,meta:true,param:true,hr:true,area:true,embed:true};fluid.XMLP._NONE=0;fluid.XMLP._ELM_B=1;fluid.XMLP._ELM_E=2;fluid.XMLP._ELM_EMP=3;fluid.XMLP._ATT=4;fluid.XMLP._TEXT=5;fluid.XMLP._ENTITY=6;fluid.XMLP._PI=7;fluid.XMLP._CDATA=8;fluid.XMLP._COMMENT=9;fluid.XMLP._DTD=10;fluid.XMLP._ERROR=11;fluid.XMLP._CONT_XML=0;fluid.XMLP._CONT_ALT=1;fluid.XMLP._ATT_NAME=0;fluid.XMLP._ATT_VAL=1;fluid.XMLP._STATE_PROLOG=1;fluid.XMLP._STATE_DOCUMENT=2;fluid.XMLP._STATE_MISC=3;fluid.XMLP._errs=[];fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_PI=0]="PI: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_DTD=1]="DTD: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_COMMENT=2]="Comment: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_CDATA=3]="CDATA: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_ELM=4]="Element: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_ENTITY=5]="Entity: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_PI_TARGET=6]="PI: target is required";fluid.XMLP._errs[fluid.XMLP.ERR_ELM_EMPTY=7]="Element: cannot be both empty and closing";fluid.XMLP._errs[fluid.XMLP.ERR_ELM_NAME=8]='Element: name must immediatly follow "<"';fluid.XMLP._errs[fluid.XMLP.ERR_ELM_LT_NAME=9]='Element: "<" not allowed in element names';fluid.XMLP._errs[fluid.XMLP.ERR_ATT_VALUES=10]="Attribute: values are required and must be in quotes";fluid.XMLP._errs[fluid.XMLP.ERR_ATT_LT_NAME=11]='Element: "<" not allowed in attribute names';fluid.XMLP._errs[fluid.XMLP.ERR_ATT_LT_VALUE=12]='Attribute: "<" not allowed in attribute values';fluid.XMLP._errs[fluid.XMLP.ERR_ATT_DUP=13]="Attribute: duplicate attributes not allowed";fluid.XMLP._errs[fluid.XMLP.ERR_ENTITY_UNKNOWN=14]="Entity: unknown entity";fluid.XMLP._errs[fluid.XMLP.ERR_INFINITELOOP=15]="Infinite loop";fluid.XMLP._errs[fluid.XMLP.ERR_DOC_STRUCTURE=16]="Document: only comments, processing instructions, or whitespace allowed outside of document element";fluid.XMLP._errs[fluid.XMLP.ERR_ELM_NESTING=17]="Element: must be nested correctly";fluid.XMLP._checkStructure=function(that,iEvent){var stack=that.m_stack;if(fluid.XMLP._STATE_PROLOG==that.m_iState){that.m_iState=fluid.XMLP._STATE_DOCUMENT}if(fluid.XMLP._STATE_DOCUMENT===that.m_iState){if((fluid.XMLP._ELM_B==iEvent)||(fluid.XMLP._ELM_EMP==iEvent)){that.m_stack[stack.length]=that.getName()}if((fluid.XMLP._ELM_E==iEvent)||(fluid.XMLP._ELM_EMP==iEvent)){if(stack.length===0){return fluid.XMLP._NONE}var strTop=stack[stack.length-1];that.m_stack.length--;if(strTop===null||strTop!==that.getName()){return that._setErr(that,fluid.XMLP.ERR_ELM_NESTING)}}}return iEvent};fluid.XMLP._parseCDATA=function(that,iB){var iE=that.m_xml.indexOf("]]>",iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_CDATA)}fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iB,iE);that.m_iP=iE+3;return fluid.XMLP._CDATA};fluid.XMLP._parseComment=function(that,iB){var iE=that.m_xml.indexOf("-->",iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_COMMENT)}fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iB-4,iE+3);that.m_iP=iE+3;return fluid.XMLP._COMMENT};fluid.XMLP._parseDTD=function(that,iB){var iE,strClose,iInt,iLast;iE=that.m_xml.indexOf(">",iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_DTD)}iInt=that.m_xml.indexOf("[",iB);strClose=((iInt!=-1)&&(iInt<iE))?"]>":">";while(true){if(iE==iLast){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_INFINITELOOP)}iLast=iE;iE=that.m_xml.indexOf(strClose,iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_DTD)}if(that.m_xml.substring(iE-1,iE+2)!="]]>"){break}}that.m_iP=iE+strClose.length;return fluid.XMLP._DTD};fluid.XMLP._parsePI=function(that,iB){var iE,iTB,iTE,iCB,iCE;iE=that.m_xml.indexOf("?>",iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_PI)}iTB=fluid.SAXStrings.indexOfNonWhitespace(that.m_xml,iB,iE);if(iTB==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_PI_TARGET)}iTE=fluid.SAXStrings.indexOfWhitespace(that.m_xml,iTB,iE);if(iTE==-1){iTE=iE}iCB=fluid.SAXStrings.indexOfNonWhitespace(that.m_xml,iTE,iE);if(iCB==-1){iCB=iE}iCE=fluid.SAXStrings.lastIndexOfNonWhitespace(that.m_xml,iCB,iE);if(iCE==-1){iCE=iE-1}that.m_name=that.m_xml.substring(iTB,iTE);fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iCB,iCE+1);that.m_iP=iE+2;return fluid.XMLP._PI};fluid.XMLP._parseText=function(that,iB){var iE=that.m_xml.indexOf("<",iB);if(iE==-1){iE=that.m_xml.length}fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iB,iE);that.m_iP=iE;return fluid.XMLP._TEXT};fluid.XMLP._setContent=function(that,iSrc){var args=arguments;if(fluid.XMLP._CONT_XML==iSrc){that.m_cAlt=null;that.m_cB=args[2];that.m_cE=args[3]}else{that.m_cAlt=args[2];that.m_cB=0;that.m_cE=args[2].length}that.m_cSrc=iSrc};fluid.XMLP._setErr=function(that,iErr){var strErr=fluid.XMLP._errs[iErr];that.m_cAlt=strErr;that.m_cB=0;that.m_cE=strErr.length;that.m_cSrc=fluid.XMLP._CONT_ALT;return fluid.XMLP._ERROR};fluid.XMLP._parseElement=function(that,iB){var iE,iDE,iRet;var iType,strN,iLast;iDE=iE=that.m_xml.indexOf(">",iB);if(iE==-1){return that._setErr(that,fluid.XMLP.ERR_CLOSE_ELM)}if(that.m_xml.charAt(iB)=="/"){iType=fluid.XMLP._ELM_E;iB++}else{iType=fluid.XMLP._ELM_B}if(that.m_xml.charAt(iE-1)=="/"){if(iType==fluid.XMLP._ELM_E){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_EMPTY)}iType=fluid.XMLP._ELM_EMP;iDE--}that.nameRegex.lastIndex=iB;var nameMatch=that.nameRegex.exec(that.m_xml);if(!nameMatch){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_NAME)}strN=nameMatch[1].toLowerCase();if("li"===strN&&iType!==fluid.XMLP._ELM_E&&that.m_stack.length>0&&that.m_stack[that.m_stack.length-1]==="li"&&!that.m_emitSynthetic){that.m_name="li";that.m_emitSynthetic=true;return fluid.XMLP._ELM_E}that.m_attributes={};that.m_cAlt="";if(that.nameRegex.lastIndex<iDE){that.m_iP=that.nameRegex.lastIndex;while(that.m_iP<iDE){that.attrStartRegex.lastIndex=that.m_iP;var attrMatch=that.attrStartRegex.exec(that.m_xml);if(!attrMatch){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ATT_VALUES)}var attrname=attrMatch[1].toLowerCase();var attrval;if(that.m_xml.charCodeAt(that.attrStartRegex.lastIndex)===61){var valRegex=that.m_xml.charCodeAt(that.attrStartRegex.lastIndex+1)===34?that.attrValRegex:that.attrValIERegex;valRegex.lastIndex=that.attrStartRegex.lastIndex+1;attrMatch=valRegex.exec(that.m_xml);if(!attrMatch){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ATT_VALUES)}attrval=attrMatch[1]}else{attrval=attrname;valRegex=that.attrStartRegex}if(!that.m_attributes[attrname]){that.m_attributes[attrname]=attrval}else{return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ATT_DUP)}that.m_iP=valRegex.lastIndex}}if(strN.indexOf("<")!=-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_LT_NAME)}that.m_name=strN;that.m_iP=iE+1;if(fluid.XMLP.closedTags[strN]){that.closeRegex.lastIndex=iE+1;var closeMatch=that.closeRegex.exec;if(closeMatch){var matchclose=that.m_xml.indexOf(strN,closeMatch.lastIndex);if(matchclose===closeMatch.lastIndex){return iType}else{return fluid.XMLP._ELM_EMP}}}that.m_emitSynthetic=false;return iType};fluid.XMLP._parse=function(that){var iP=that.m_iP;var xml=that.m_xml;if(iP===xml.length){return fluid.XMLP._NONE}var c=xml.charAt(iP);if(c==="<"){var c2=xml.charAt(iP+1);if(c2==="?"){return fluid.XMLP._parsePI(that,iP+2)}else{if(c2==="!"){if(iP===xml.indexOf("<!DOCTYPE",iP)){return fluid.XMLP._parseDTD(that,iP+9)}else{if(iP===xml.indexOf("<!--",iP)){return fluid.XMLP._parseComment(that,iP+4)}else{if(iP===xml.indexOf("<![CDATA[",iP)){return fluid.XMLP._parseCDATA(that,iP+9)}}}}else{return fluid.XMLP._parseElement(that,iP+1)}}}else{return fluid.XMLP._parseText(that,iP)}};fluid.XMLP.XMLPImpl=function(strXML){var that={};that.m_xml=strXML;that.m_iP=0;that.m_iState=fluid.XMLP._STATE_PROLOG;that.m_stack=[];that.m_attributes={};that.m_emitSynthetic=false;that.getColumnNumber=function(){return fluid.SAXStrings.getColumnNumber(that.m_xml,that.m_iP)};that.getContent=function(){return(that.m_cSrc==fluid.XMLP._CONT_XML)?that.m_xml:that.m_cAlt};that.getContentBegin=function(){return that.m_cB};that.getContentEnd=function(){return that.m_cE};that.getLineNumber=function(){return fluid.SAXStrings.getLineNumber(that.m_xml,that.m_iP)};that.getName=function(){return that.m_name};that.next=function(){return fluid.XMLP._checkStructure(that,fluid.XMLP._parse(that))};that.nameRegex=/([^\s\/>]+)/g;that.attrStartRegex=/\s*([\w:_][\w:_\-\.]*)/gm;that.attrValRegex=/\"([^\"]*)\"\s*/gm;that.attrValIERegex=/([^\>\s]+)\s*/gm;that.closeRegex=/\s*<\//g;return that};fluid.SAXStrings={};fluid.SAXStrings.WHITESPACE=" \t\n\r";fluid.SAXStrings.QUOTES="\"'";fluid.SAXStrings.getColumnNumber=function(strD,iP){if(!strD){return -1}iP=iP||strD.length;var arrD=strD.substring(0,iP).split("\n");arrD.length--;var iLinePos=arrD.join("\n").length;return iP-iLinePos};fluid.SAXStrings.getLineNumber=function(strD,iP){if(!strD){return -1}iP=iP||strD.length;return strD.substring(0,iP).split("\n").length};fluid.SAXStrings.indexOfNonWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;++i){var c=strD.charAt(i);if(c!==" "&&c!=="\t"&&c!=="\n"&&c!=="\r"){return i}}return -1};fluid.SAXStrings.indexOfWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;i++){if(fluid.SAXStrings.WHITESPACE.indexOf(strD.charAt(i))!=-1){return i}}return -1};fluid.SAXStrings.lastIndexOfNonWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iE-1;i>=iB;i--){if(fluid.SAXStrings.WHITESPACE.indexOf(strD.charAt(i))==-1){return i}}return -1};fluid.SAXStrings.replace=function(strD,iB,iE,strF,strR){if(!strD){return""}iB=iB||0;iE=iE||strD.length;return strD.substring(iB,iE).split(strF).join(strR)}})(jQuery,fluid_1_4);fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.parseTemplate=function(template,baseURL,scanStart,cutpoints_in,opts){opts=opts||{};if(!template){fluid.fail("empty template supplied to fluid.parseTemplate")}var t;var parser;var tagstack;var lumpindex=0;var nestingdepth=0;var justended=false;var defstart=-1;var defend=-1;var debugMode=false;var cutpoints=[];var simpleClassCutpoints={};var cutstatus=[];var XMLLump=function(lumpindex,nestingdepth){return{nestingdepth:nestingdepth,lumpindex:lumpindex,parent:t}};function isSimpleClassCutpoint(tree){return tree.length===1&&tree[0].predList.length===1&&tree[0].predList[0].clazz}function init(baseURLin,debugModeIn,cutpointsIn){t.rootlump=XMLLump(0,-1);tagstack=[t.rootlump];lumpindex=0;nestingdepth=0;justended=false;defstart=-1;defend=-1;baseURL=baseURLin;debugMode=debugModeIn;if(cutpointsIn){for(var i=0;i<cutpointsIn.length;++i){var tree=fluid.parseSelector(cutpointsIn[i].selector);var clazz=isSimpleClassCutpoint(tree);if(clazz){simpleClassCutpoints[clazz]=cutpointsIn[i].id}else{cutstatus.push([]);cutpoints.push($.extend({},cutpointsIn[i],{tree:tree}))}}}}function findTopContainer(){for(var i=tagstack.length-1;i>=0;--i){var lump=tagstack[i];if(lump.rsfID!==undefined){return lump}}return t.rootlump}function newLump(){var togo=XMLLump(lumpindex,nestingdepth);if(debugMode){togo.line=parser.getLineNumber();togo.column=parser.getColumnNumber()}t.lumps[lumpindex]=togo;++lumpindex;return togo}function addLump(mmap,ID,lump){var list=mmap[ID];if(!list){list=[];mmap[ID]=list}list[list.length]=lump}function checkContribute(ID,lump){if(ID.indexOf("scr=contribute-")!==-1){var scr=ID.substring("scr=contribute-".length);addLump(t.collectmap,scr,lump)}}function debugLump(lump){return"<"+lump.tagname+">"}function hasCssClass(clazz,totest){if(!totest){return false}return(" "+totest+" ").indexOf(" "+clazz+" ")!==-1}function matchNode(term,headlump,headclazz){if(term.predList){for(var i=0;i<term.predList.length;++i){var pred=term.predList[i];if(pred.id&&headlump.attributemap.id!==pred.id){return false}if(pred.clazz&&!hasCssClass(pred.clazz,headclazz)){return false}if(pred.tag&&headlump.tagname!==pred.tag){return false}}return true}}function tagStartCut(headlump){var togo;var headclazz=headlump.attributemap["class"];if(headclazz){var split=headclazz.split(" ");for(var i=0;i<split.length;++i){var simpleCut=simpleClassCutpoints[$.trim(split[i])];if(simpleCut){return simpleCut}}}for(var i=0;i<cutpoints.length;++i){var cut=cutpoints[i];var cutstat=cutstatus[i];var nextterm=cutstat.length;if(nextterm<cut.tree.length){var term=cut.tree[nextterm];if(nextterm>0){if(cut.tree[nextterm-1].child&&cutstat[nextterm-1]!==headlump.nestingdepth-1){continue}}var isMatch=matchNode(term,headlump,headclazz);if(isMatch){cutstat[cutstat.length]=headlump.nestingdepth;if(cutstat.length===cut.tree.length){if(togo!==undefined){fluid.fail("Cutpoint specification error - node "+debugLump(headlump)+" has already matched with rsf:id of "+togo)}if(cut.id===undefined||cut.id===null){fluid.fail("Error in cutpoints list - entry at position "+i+" does not have an id set")}togo=cut.id}}}}return togo}function tagEndCut(){if(cutpoints){for(var i=0;i<cutpoints.length;++i){var cutstat=cutstatus[i];if(cutstat.length>0&&cutstat[cutstat.length-1]===nestingdepth){cutstat.length--}}}}function processTagEnd(){tagEndCut();var endlump=newLump();--nestingdepth;endlump.text="</"+parser.getName()+">";var oldtop=tagstack[tagstack.length-1];oldtop.close_tag=t.lumps[lumpindex-1];tagstack.length--;justended=true}function processTagStart(isempty,text){++nestingdepth;if(justended){justended=false;var backlump=newLump();backlump.nestingdepth--}if(t.firstdocumentindex===-1){t.firstdocumentindex=lumpindex}var headlump=newLump();var stacktop=tagstack[tagstack.length-1];headlump.uplump=stacktop;var tagname=parser.getName();headlump.tagname=tagname;var attrs=headlump.attributemap=parser.m_attributes;var ID=attrs[fluid.ID_ATTRIBUTE];if(ID===undefined){ID=tagStartCut(headlump)}for(var attrname in attrs){if(ID===undefined){if(/href|src|codebase|action/.test(attrname)){ID="scr=rewrite-url"}else{if(ID===undefined&&/for|headers/.test(attrname)){ID="scr=null"}}}}if(ID){if(ID.charCodeAt(0)===126){ID=ID.substring(1);headlump.elide=true}checkContribute(ID,headlump);headlump.rsfID=ID;var downreg=findTopContainer();if(!downreg.downmap){downreg.downmap={}}while(downreg){if(downreg.downmap){addLump(downreg.downmap,ID,headlump)}downreg=downreg.uplump}addLump(t.globalmap,ID,headlump);var colpos=ID.indexOf(":");if(colpos!==-1){var prefix=ID.substring(0,colpos);if(!stacktop.finallump){stacktop.finallump={}}stacktop.finallump[prefix]=headlump}}headlump.text="<"+tagname+fluid.dumpAttributes(attrs)+(isempty&&!ID?"/>":">");tagstack[tagstack.length]=headlump;if(isempty){if(ID){processTagEnd()}else{--nestingdepth;tagstack.length--}}}function processDefaultTag(){if(defstart!==-1){if(t.firstdocumentindex===-1){t.firstdocumentindex=lumpindex}var text=parser.getContent().substr(defstart,defend-defstart);justended=false;var newlump=newLump();newlump.text=text;defstart=-1}}t=fluid.XMLViewTemplate();init(baseURL,opts.debugMode,cutpoints_in);var idpos=template.indexOf(fluid.ID_ATTRIBUTE);if(scanStart){var brackpos=template.indexOf(">",idpos);parser=fluid.XMLP(template.substring(brackpos+1))}else{parser=fluid.XMLP(template)}parseloop:while(true){var iEvent=parser.next();switch(iEvent){case fluid.XMLP._ELM_B:processDefaultTag();processTagStart(false,"");break;case fluid.XMLP._ELM_E:processDefaultTag();processTagEnd();break;case fluid.XMLP._ELM_EMP:processDefaultTag();processTagStart(true,"");break;case fluid.XMLP._PI:case fluid.XMLP._DTD:defstart=-1;continue;case fluid.XMLP._TEXT:case fluid.XMLP._ENTITY:case fluid.XMLP._CDATA:case fluid.XMLP._COMMENT:if(defstart===-1){defstart=parser.m_cB}defend=parser.m_cE;break;case fluid.XMLP._ERROR:fluid.setLogging(true);var message="Error parsing template: "+parser.m_cAlt+" at line "+parser.getLineNumber();fluid.log(message);fluid.log("Just read: "+parser.m_xml.substring(parser.m_iP-30,parser.m_iP));fluid.log("Still to read: "+parser.m_xml.substring(parser.m_iP,parser.m_iP+30));fluid.fail(message);break parseloop;case fluid.XMLP._NONE:break parseloop}}processDefaultTag();var excess=tagstack.length-1;if(excess){fluid.fail("Error parsing template - unclosed tag(s) of depth "+(excess)+": "+fluid.transform(tagstack.splice(1,excess),function(lump){return debugLump(lump)}).join(", "))}return t};fluid.debugLump=function(lump){var togo=lump.text;togo+=" at ";togo+="lump line "+lump.line+" column "+lump.column+" index "+lump.lumpindex;togo+=lump.parent.href===null?"":" in file "+lump.parent.href;return togo};fluid.ID_ATTRIBUTE="rsf:id";fluid.getPrefix=function(id){var colpos=id.indexOf(":");return colpos===-1?id:id.substring(0,colpos)};fluid.SplitID=function(id){var that={};var colpos=id.indexOf(":");if(colpos===-1){that.prefix=id}else{that.prefix=id.substring(0,colpos);that.suffix=id.substring(colpos+1)}return that};fluid.XMLViewTemplate=function(){return{globalmap:{},collectmap:{},lumps:[],firstdocumentindex:-1}};fluid.XMLEncode=function(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;")};fluid.dumpAttributes=function(attrcopy){var togo="";for(var attrname in attrcopy){var attrvalue=attrcopy[attrname];if(attrvalue!==null&&attrvalue!==undefined){togo+=" "+attrname+'="'+attrvalue+'"'}}return togo};fluid.aggregateMMap=function(target,source){for(var key in source){var targhas=target[key];if(!targhas){target[key]=[]}target[key]=target[key].concat(source[key])}};fluid.parseTemplates=function(resourceSpec,templateList,opts){var togo=[];opts=opts||{};togo.globalmap={};for(var i=0;i<templateList.length;++i){var resource=resourceSpec[templateList[i]];var lastslash=resource.href.lastIndexOf("/");var baseURL=lastslash===-1?"":resource.href.substring(0,lastslash+1);var template=fluid.parseTemplate(resource.resourceText,baseURL,opts.scanStart&&i===0,resource.cutpoints,opts);if(i===0){fluid.aggregateMMap(togo.globalmap,template.globalmap)}template.href=resource.href;template.baseURL=baseURL;template.resourceKey=resource.resourceKey;togo[i]=template;fluid.aggregateMMap(togo.globalmap,template.rootlump.downmap)}return togo};var chars="(?:[\\w\u0128-\uFFFF*_-]|\\\\.)";var quickClass=new RegExp("([#.]?)("+chars+"+)","g");var childSeg=new RegExp("\\s*(>)?\\s*","g");fluid.parseSelector=function(selstring){var togo=[];selstring=$.trim(selstring);quickClass.lastIndex=0;var lastIndex=0;while(true){var atNode=[];while(true){var segMatch=quickClass.exec(selstring);if(!segMatch||segMatch.index!==lastIndex){break}var thisNode={};var text=segMatch[2];if(segMatch[1]===""){thisNode.tag=text}else{if(segMatch[1]==="#"){thisNode.id=text}else{if(segMatch[1]==="."){thisNode.clazz=text}}}atNode[atNode.length]=thisNode;lastIndex=quickClass.lastIndex}childSeg.lastIndex=lastIndex;var fullAtNode={predList:atNode};var childMatch=childSeg.exec(selstring);if(!childMatch||childMatch.index!==lastIndex){var remainder=selstring.substring(lastIndex);fluid.fail("Error in selector string - can not match child selector expression at "+remainder)}if(childMatch[1]===">"){fullAtNode.child=true}togo[togo.length]=fullAtNode;if(childSeg.lastIndex>=selstring.length){break}lastIndex=childSeg.lastIndex;quickClass.lastIndex=childSeg.lastIndex}return togo}})(jQuery,fluid_1_4);fluid_1_4=fluid_1_4||{};(function($,fluid){function debugPosition(component){return"as child of "+(component.parent.fullID?"component with full ID "+component.parent.fullID:"root")}function computeFullID(component){var togo="";var move=component;if(component.children===undefined){togo=component.ID+(component.localID!==undefined?component.localID:"");move=component.parent}while(move.parent){var parent=move.parent;if(move.fullID!==undefined){togo=move.fullID+togo;return togo}if(move.noID===undefined){var ID=move.ID;if(ID===undefined){fluid.fail("Error in component tree - component found with no ID "+debugPosition(parent)+": please check structure")}var colpos=ID.indexOf(":");var prefix=colpos===-1?ID:ID.substring(0,colpos);togo=prefix+":"+(move.localID===undefined?"":move.localID)+":"+togo}move=parent}return togo}var renderer={};renderer.isBoundPrimitive=function(value){return fluid.isPrimitive(value)||value instanceof Array&&(value.length===0||typeof (value[0])==="string")};var unzipComponent;function processChild(value,key){if(renderer.isBoundPrimitive(value)){return{componentType:"UIBound",value:value,ID:key}}else{var unzip=unzipComponent(value);if(unzip.ID){return{ID:key,componentType:"UIContainer",children:[unzip]}}else{unzip.ID=key;return unzip}}}function fixChildren(children){if(!(children instanceof Array)){var togo=[];for(var key in children){var value=children[key];if(value instanceof Array){for(var i=0;i<value.length;++i){var processed=processChild(value[i],key);togo[togo.length]=processed}}else{togo[togo.length]=processChild(value,key)}}return togo}else{return children}}function fixupValue(uibound,model,resolverGetConfig){if(uibound.value===undefined&&uibound.valuebinding!==undefined){if(!model){fluid.fail("Cannot perform value fixup for valuebinding "+uibound.valuebinding+" since no model was supplied to rendering")}uibound.value=fluid.get(model,uibound.valuebinding,resolverGetConfig)}}function upgradeBound(holder,property,model,resolverGetConfig){if(holder[property]!==undefined){if(renderer.isBoundPrimitive(holder[property])){holder[property]={value:holder[property]}}else{if(holder[property].messagekey){holder[property].componentType="UIMessage"}}}else{holder[property]={value:null}}fixupValue(holder[property],model,resolverGetConfig)}renderer.duckMap={children:"UIContainer",value:"UIBound",valuebinding:"UIBound",messagekey:"UIMessage",markup:"UIVerbatim",selection:"UISelect",target:"UILink",choiceindex:"UISelectChoice",functionname:"UIInitBlock"};var boundMap={UISelect:["selection","optionlist","optionnames"],UILink:["target","linktext"],UIVerbatim:["markup"],UIMessage:["messagekey"]};renderer.boundMap=fluid.transform(boundMap,fluid.arrayToHash);renderer.inferComponentType=function(component){for(var key in renderer.duckMap){if(component[key]!==undefined){return renderer.duckMap[key]}}};renderer.applyComponentType=function(component){component.componentType=renderer.inferComponentType(component);if(component.componentType===undefined&&component.ID!==undefined){component.componentType="UIBound"}};unzipComponent=function(component,model,resolverGetConfig){if(component){renderer.applyComponentType(component)}if(!component||component.componentType===undefined){var decorators=component.decorators;if(decorators){delete component.decorators}component={componentType:"UIContainer",children:component};component.decorators=decorators}var cType=component.componentType;if(cType==="UIContainer"){component.children=fixChildren(component.children)}else{var map=renderer.boundMap[cType];if(map){fluid.each(map,function(value,key){upgradeBound(component,key,model,resolverGetConfig)})}}return component};function fixupTree(tree,model,resolverGetConfig){if(tree.componentType===undefined){tree=unzipComponent(tree,model,resolverGetConfig)}if(tree.componentType!=="UIContainer"&&!tree.parent){tree={children:[tree]}}if(tree.children){tree.childmap={};for(var i=0;i<tree.children.length;++i){var child=tree.children[i];if(child.componentType===undefined){child=unzipComponent(child,model,resolverGetConfig);tree.children[i]=child}child.parent=tree;if(child.ID===undefined){fluid.fail("Error in component tree: component found with no ID "+debugPosition(child))}tree.childmap[child.ID]=child;var colpos=child.ID.indexOf(":");if(colpos===-1){}else{var prefix=child.ID.substring(0,colpos);var childlist=tree.childmap[prefix];if(!childlist){childlist=[];tree.childmap[prefix]=childlist}if(child.localID===undefined&&childlist.length!==0){child.localID=childlist.length}childlist[childlist.length]=child}child.fullID=computeFullID(child);var componentType=child.componentType;if(componentType==="UISelect"){child.selection.fullID=child.fullID+"-selection"}else{if(componentType==="UIInitBlock"){var call=child.functionname+"(";for(var j=0;j<child.arguments.length;++j){if(child.arguments[j] instanceof fluid.ComponentReference){child.arguments[j]=child.parent.fullID+child.arguments[j].reference}call+=JSON.stringify(child.arguments[j]);if(j<child.arguments.length-1){call+=", "}}child.markup={value:call+")\n"};child.componentType="UIVerbatim"}else{if(componentType==="UIBound"){fixupValue(child,model,resolverGetConfig)}}}fixupTree(child,model,resolverGetConfig)}}return tree}fluid.NULL_STRING="\u25a9null\u25a9";var LINK_ATTRIBUTES={a:"href",link:"href",img:"src",frame:"src",script:"src",style:"src",input:"src",embed:"src",form:"action",applet:"codebase",object:"codebase"};renderer.decoratorComponentPrefix="**-renderer-";renderer.IDtoComponentName=function(ID,num){return renderer.decoratorComponentPrefix+ID.replace(/\./g,"")+"-"+num};renderer.invokeFluidDecorator=function(func,args,ID,num,options){var that;if(options.instantiator&&options.parentComponent){var parent=options.parentComponent;var name=renderer.IDtoComponentName(ID,num);fluid.set(parent,fluid.path("options","components",name),{type:func});that=fluid.initDependent(options.parentComponent,name,options.instantiator,args)}else{that=fluid.invokeGlobalFunction(func,args)}return that};fluid.renderer=function(templates,tree,options,fossilsIn){options=options||{};tree=tree||{};var debugMode=options.debugMode;if(!options.messageLocator&&options.messageSource){options.messageLocator=fluid.resolveMessageSource(options.messageSource)}options.document=options.document||document;var directFossils=fossilsIn||{};var globalmap={};var branchmap={};var rewritemap={};var seenset={};var collected={};var out="";var renderOptions=options;var decoratorQueue=[];var renderedbindings={};var usedIDs={};var that={};function getRewriteKey(template,parent,id){return template.resourceKey+parent.fullID+id}function resolveInScope(searchID,defprefix,scope,child){var deflump;var scopelook=scope?scope[searchID]:null;if(scopelook){for(var i=0;i<scopelook.length;++i){var scopelump=scopelook[i];if(!deflump&&scopelump.rsfID===defprefix){deflump=scopelump}if(scopelump.rsfID===searchID){return scopelump}}}return deflump}function resolveCall(sourcescope,child){var searchID=child.jointID?child.jointID:child.ID;var split=fluid.SplitID(searchID);var defprefix=split.prefix+":";var match=resolveInScope(searchID,defprefix,sourcescope.downmap,child);if(match){return match}if(child.children){match=resolveInScope(searchID,defprefix,globalmap,child);if(match){return match}}return null}function noteCollected(template){if(!seenset[template.href]){fluid.aggregateMMap(collected,template.collectmap);seenset[template.href]=true}}var fetchComponent;function resolveRecurse(basecontainer,parentlump){for(var i=0;i<basecontainer.children.length;++i){var branch=basecontainer.children[i];if(branch.children){var resolved=resolveCall(parentlump,branch);if(resolved){branchmap[branch.fullID]=resolved;var id=resolved.attributemap.id;if(id!==undefined){rewritemap[getRewriteKey(parentlump.parent,basecontainer,id)]=branch.fullID}noteCollected(resolved.parent);resolveRecurse(branch,resolved)}}}if(parentlump.downmap){for(var id in parentlump.downmap){var lumps=parentlump.downmap[id];for(var i=0;i<lumps.length;++i){var lump=lumps[i];var lumpid=lump.attributemap.id;if(lumpid!==undefined&&lump.rsfID!==undefined){var resolved=fetchComponent(basecontainer,lump.rsfID);if(resolved!==null){var resolveID=resolved.fullID;if(resolved.componentType==="UISelect"){resolveID=resolveID+"-selection"}rewritemap[getRewriteKey(parentlump.parent,basecontainer,lumpid)]=resolveID}}}}}}function resolveBranches(globalmapp,basecontainer,parentlump){branchmap={};rewritemap={};seenset={};collected={};globalmap=globalmapp;branchmap[basecontainer.fullID]=parentlump;resolveRecurse(basecontainer,parentlump)}function dumpTillLump(lumps,start,limit){for(;start<limit;++start){var text=lumps[start].text;if(text){out+=lumps[start].text}}}function dumpScan(lumps,renderindex,basedepth,closeparent,insideleaf){var start=renderindex;while(true){if(renderindex===lumps.length){break}var lump=lumps[renderindex];if(lump.nestingdepth<basedepth){break}if(lump.rsfID!==undefined){if(!insideleaf){break}if(insideleaf&&lump.nestingdepth>basedepth+(closeparent?0:1)){fluid.log("Error in component tree - leaf component found to contain further components - at "+lump.toString())}else{break}}++renderindex}if(!closeparent&&(renderindex===lumps.length||!lumps[renderindex].rsfID)){--renderindex}dumpTillLump(lumps,start,renderindex);return renderindex}function isPlaceholder(value){return false}function isValue(value){return value!==null&&value!==undefined&&!isPlaceholder(value)}var trc={};function openTag(){if(!trc.iselide){out+="<"+trc.uselump.tagname}}function closeTag(){if(!trc.iselide){out+="</"+trc.uselump.tagname+">"}}function renderUnchanged(){dumpTillLump(trc.uselump.parent.lumps,trc.uselump.lumpindex+1,trc.close.lumpindex+(trc.iselide?0:1))}function isSelfClose(){return trc.endopen.lumpindex===trc.close.lumpindex&&fluid.XMLP.closedTags[trc.uselump.tagname]}function dumpTemplateBody(){if(isSelfClose()){if(!trc.iselide){out+="/>"}}else{if(!trc.iselide){out+=">"}dumpTillLump(trc.uselump.parent.lumps,trc.endopen.lumpindex,trc.close.lumpindex+(trc.iselide?0:1))}}function replaceAttributes(){if(!trc.iselide){out+=fluid.dumpAttributes(trc.attrcopy)}dumpTemplateBody()}function replaceAttributesOpen(){if(trc.iselide){replaceAttributes()}else{out+=fluid.dumpAttributes(trc.attrcopy);var selfClose=isSelfClose();out+=selfClose?"/>":">";trc.nextpos=selfClose?trc.close.lumpindex+1:trc.endopen.lumpindex}}function replaceBody(value){out+=fluid.dumpAttributes(trc.attrcopy);if(!trc.iselide){out+=">"}out+=fluid.XMLEncode(value.toString());closeTag()}function rewriteLeaf(value){if(isValue(value)){replaceBody(value)}else{replaceAttributes()}}function rewriteLeafOpen(value){if(trc.iselide){rewriteLeaf(trc.value)}else{if(isValue(value)){replaceBody(value)}else{replaceAttributesOpen()}}}function rewriteUrl(template,url){if(renderOptions.urlRewriter){var rewritten=renderOptions.urlRewriter(url);if(rewritten){return rewritten}}if(!renderOptions.rebaseURLs){return url}var protpos=url.indexOf(":/");if(url.charAt(0)==="/"||protpos!==-1&&protpos<7){return url}else{return renderOptions.baseURL+url}}function dumpHiddenField(todump){out+='<input type="hidden" ';var isvirtual=todump.virtual;var outattrs={};outattrs[isvirtual?"id":"name"]=todump.name;outattrs.value=todump.value;out+=fluid.dumpAttributes(outattrs);out+=" />\n"}var outDecoratorsImpl;function applyAutoBind(torender,finalID){if(!finalID){return }var tagname=trc.uselump.tagname;var applier=renderOptions.applier;function applyFunc(){fluid.applyChange(fluid.byId(finalID),undefined,applier)}if(renderOptions.autoBind&&/input|select|textarea/.test(tagname)&&!renderedbindings[finalID]){var decorators=[{jQuery:["change",applyFunc]}];if($.browser.msie&&tagname==="input"&&/radio|checkbox/.test(trc.attrcopy.type)){decorators.push({jQuery:["click",applyFunc]})}if($.browser.safari&&tagname==="input"&&trc.attrcopy.type==="radio"){decorators.push({jQuery:["keyup",applyFunc]})}outDecoratorsImpl(torender,decorators,trc.attrcopy,finalID)}}function dumpBoundFields(torender,parent){if(torender){var holder=parent?parent:torender;if(directFossils&&holder.valuebinding){var fossilKey=holder.submittingname||torender.finalID;directFossils[fossilKey]={name:fossilKey,EL:holder.valuebinding,oldvalue:holder.value};applyAutoBind(torender,torender.finalID)}if(torender.fossilizedbinding){dumpHiddenField(torender.fossilizedbinding)}if(torender.fossilizedshaper){dumpHiddenField(torender.fossilizedshaper)}}}function dumpSelectionBindings(uiselect){if(!renderedbindings[uiselect.selection.fullID]){renderedbindings[uiselect.selection.fullID]=true;dumpBoundFields(uiselect.selection);dumpBoundFields(uiselect.optionlist);dumpBoundFields(uiselect.optionnames)}}function isSelectedValue(torender,value){var selection=torender.selection;return selection.value&&typeof (selection.value)!=="string"&&typeof (selection.value.length)==="number"?$.inArray(value,selection.value,value)!==-1:selection.value===value}function getRelativeComponent(component,relativeID){component=component.parent;while(relativeID.indexOf("..::")===0){relativeID=relativeID.substring(4);component=component.parent}return component.childmap[relativeID]}function adjustForID(attrcopy,component,late,forceID){if(!late){delete attrcopy["rsf:id"]}if(component.finalID!==undefined){attrcopy.id=component.finalID}else{if(forceID!==undefined){attrcopy.id=forceID}else{if(attrcopy.id||late){attrcopy.id=component.fullID}}}var count=1;var baseid=attrcopy.id;while(renderOptions.document.getElementById(attrcopy.id)||usedIDs[attrcopy.id]){attrcopy.id=baseid+"-"+(count++)}component.finalID=attrcopy.id;return attrcopy.id}function assignSubmittingName(attrcopy,component,parent){var submitting=parent||component;adjustForID(attrcopy,component,true,component.fullID);if(submitting.submittingname===undefined&&submitting.willinput!==false){submitting.submittingname=submitting.finalID||submitting.fullID}return submitting.submittingname}function explodeDecorators(decorators){var togo=[];if(decorators.type){togo[0]=decorators}else{for(var key in decorators){if(key==="$"){key="jQuery"}var value=decorators[key];var decorator={type:key};if(key==="jQuery"){decorator.func=value[0];decorator.args=value.slice(1)}else{if(key==="addClass"||key==="removeClass"){decorator.classes=value}else{if(key==="attrs"){decorator.attributes=value}else{if(key==="identify"){decorator.key=value}}}}togo[togo.length]=decorator}}return togo}outDecoratorsImpl=function(torender,decorators,attrcopy,finalID){renderOptions.idMap=renderOptions.idMap||{};for(var i=0;i<decorators.length;++i){var decorator=decorators[i];var type=decorator.type;if(!type){var explodedDecorators=explodeDecorators(decorator);outDecoratorsImpl(torender,explodedDecorators,attrcopy,finalID);continue}if(type==="$"){type=decorator.type="jQuery"}if(type==="jQuery"||type==="event"||type==="fluid"){var id=adjustForID(attrcopy,torender,true,finalID);if(decorator.ids===undefined){decorator.ids=[];decoratorQueue[decoratorQueue.length]=decorator}decorator.ids.push(id)}else{if(type==="attrs"){fluid.each(decorator.attributes,function(value,key){if(value===null||value===undefined){delete attrcopy[key]}else{attrcopy[key]=fluid.XMLEncode(value)}})}else{if(type==="addClass"||type==="removeClass"){var fakeNode={nodeType:1,className:attrcopy["class"]||""};$(fakeNode)[type](decorator.classes);attrcopy["class"]=fakeNode.className}else{if(type==="identify"){var id=adjustForID(attrcopy,torender,true,finalID);renderOptions.idMap[decorator.key]=id}else{if(type!=="null"){fluid.log("Unrecognised decorator of type "+type+" found at component of ID "+finalID)}}}}}}};function outDecorators(torender,attrcopy){if(!torender.decorators){return }if(torender.decorators.length===undefined){torender.decorators=explodeDecorators(torender.decorators)}outDecoratorsImpl(torender,torender.decorators,attrcopy)}function dumpBranchHead(branch,targetlump){if(targetlump.elide){return }var attrcopy={};$.extend(true,attrcopy,targetlump.attributemap);adjustForID(attrcopy,branch);outDecorators(branch,attrcopy);out+="<"+targetlump.tagname+" ";out+=fluid.dumpAttributes(attrcopy);out+=">"}function resolveArgs(args){if(!args){return args}return fluid.transform(args,function(arg,index){upgradeBound(args,index,renderOptions.model,renderOptions.resolverGetConfig);return args[index].value})}function degradeMessage(torender){if(torender.componentType==="UIMessage"){torender.componentType="UIBound";if(!renderOptions.messageLocator){torender.value="[No messageLocator is configured in options - please consult documentation on options.messageSource]"}else{upgradeBound(torender,"messagekey",renderOptions.model,renderOptions.resolverGetConfig);var resArgs=resolveArgs(torender.args);torender.value=renderOptions.messageLocator(torender.messagekey.value,resArgs)}}}function renderComponent(torender){var attrcopy=trc.attrcopy;degradeMessage(torender);var componentType=torender.componentType;var tagname=trc.uselump.tagname;outDecorators(torender,attrcopy);function makeFail(torender,end){fluid.fail("Error in component tree - UISelectChoice with id "+torender.fullID+end)}if(componentType==="UIBound"||componentType==="UISelectChoice"){var parent;if(torender.choiceindex!==undefined){if(torender.parentRelativeID!==undefined){parent=getRelativeComponent(torender,torender.parentRelativeID);if(!parent){makeFail(torender," has parentRelativeID of "+torender.parentRelativeID+" which cannot be resolved")}}else{makeFail(torender," does not have parentRelativeID set")}assignSubmittingName(attrcopy,torender,parent.selection);dumpSelectionBindings(parent)}var submittingname=parent?parent.selection.submittingname:torender.submittingname;if(!parent&&torender.valuebinding){submittingname=assignSubmittingName(attrcopy,torender)}if(tagname==="input"||tagname==="textarea"){if(submittingname!==undefined){attrcopy.name=submittingname}}dumpBoundFields(torender,parent?parent.selection:null);if(typeof (torender.value)==="boolean"||attrcopy.type==="radio"||attrcopy.type==="checkbox"){var underlyingValue;var directValue=torender.value;if(torender.choiceindex!==undefined){if(!parent.optionlist.value){fluid.fail("Error in component tree - selection control with full ID "+parent.fullID+" has no values")}underlyingValue=parent.optionlist.value[torender.choiceindex];directValue=isSelectedValue(parent,underlyingValue)}if(isValue(directValue)){if(directValue){attrcopy.checked="checked"}else{delete attrcopy.checked}}attrcopy.value=fluid.XMLEncode(underlyingValue?underlyingValue:"true");rewriteLeaf(null)}else{if(torender.value instanceof Array){renderUnchanged()}else{var value=parent?parent[tagname==="textarea"||tagname==="input"?"optionlist":"optionnames"].value[torender.choiceindex]:torender.value;if(tagname==="textarea"){if(isPlaceholder(value)&&torender.willinput){value=""}rewriteLeaf(value)}else{if(tagname==="input"){if(torender.willinput||isValue(value)){attrcopy.value=fluid.XMLEncode(String(value))}rewriteLeaf(null)}else{delete attrcopy.name;rewriteLeafOpen(value)}}}}}else{if(componentType==="UISelect"){var ishtmlselect=tagname==="select";var ismultiple=false;if(torender.selection.value instanceof Array){ismultiple=true;if(ishtmlselect){attrcopy.multiple="multiple"}}var oldid=attrcopy.id;assignSubmittingName(attrcopy,torender.selection);if(oldid!==undefined){attrcopy.id=oldid}if(ishtmlselect){if(torender.selection.willinput!==false){attrcopy.name=torender.selection.submittingname}applyAutoBind(torender,attrcopy.id)}out+=fluid.dumpAttributes(attrcopy);if(ishtmlselect){out+=">";var values=torender.optionlist.value;var names=torender.optionnames===null||torender.optionnames===undefined||!torender.optionnames.value?values:torender.optionnames.value;if(!names||!names.length){fluid.fail("Error in component tree - UISelect component with fullID "+torender.fullID+" does not have optionnames set")}for(var i=0;i<names.length;++i){out+='<option value="';var value=values[i];if(value===null){value=fluid.NULL_STRING}out+=fluid.XMLEncode(value);if(isSelectedValue(torender,value)){out+='" selected="selected'}out+='">';out+=fluid.XMLEncode(names[i]);out+="</option>\n"}closeTag()}else{dumpTemplateBody()}dumpSelectionBindings(torender)}else{if(componentType==="UILink"){var attrname=LINK_ATTRIBUTES[tagname];if(attrname){degradeMessage(torender.target);var target=torender.target.value;if(!isValue(target)){target=attrcopy[attrname]}target=rewriteUrl(trc.uselump.parent,target);attrcopy[attrname]=fluid.XMLEncode(target)}var value;if(torender.linktext){degradeMessage(torender.linktext);value=torender.linktext.value}if(!isValue(value)){replaceAttributesOpen()}else{rewriteLeaf(value)}}else{if(torender.markup!==undefined){degradeMessage(torender.markup);var rendered=torender.markup.value;if(rendered===null){out+=fluid.dumpAttributes(attrcopy);out+=">";renderUnchanged()}else{if(!trc.iselide){out+=fluid.dumpAttributes(attrcopy);out+=">"}out+=rendered;closeTag()}}}}}if(attrcopy.id!==undefined){usedIDs[attrcopy.id]=true}}function rewriteIDRelation(context){var attrname;var attrval=trc.attrcopy["for"];if(attrval!==undefined){attrname="for"}else{attrval=trc.attrcopy.headers;if(attrval!==undefined){attrname="headers"}}if(!attrname){return }var tagname=trc.uselump.tagname;if(attrname==="for"&&tagname!=="label"){return }if(attrname==="headers"&&tagname!=="td"&&tagname!=="th"){return }var rewritten=rewritemap[getRewriteKey(trc.uselump.parent,context,attrval)];if(rewritten!==undefined){trc.attrcopy[attrname]=rewritten}}function renderComment(message){out+=("<!-- "+fluid.XMLEncode(message)+"-->")}function renderDebugMessage(message){out+='<span style="background-color:#FF466B;color:white;padding:1px;">';out+=message;out+="</span><br/>"}function reportPath(branch){var path=branch.fullID;return !path?"component tree root":"full path "+path}function renderComponentSystem(context,torendero,lump){var lumpindex=lump.lumpindex;var lumps=lump.parent.lumps;var nextpos=-1;var outerendopen=lumps[lumpindex+1];var outerclose=lump.close_tag;nextpos=outerclose.lumpindex+1;var payloadlist=lump.downmap?lump.downmap["payload-component"]:null;var payload=payloadlist?payloadlist[0]:null;var iselide=lump.rsfID.charCodeAt(0)===126;var endopen=outerendopen;var close=outerclose;var uselump=lump;var attrcopy={};$.extend(true,attrcopy,(payload===null?lump:payload).attributemap);trc.attrcopy=attrcopy;trc.uselump=uselump;trc.endopen=endopen;trc.close=close;trc.nextpos=nextpos;trc.iselide=iselide;rewriteIDRelation(context);if(torendero===null){if(lump.rsfID.indexOf("scr=")===(iselide?1:0)){var scrname=lump.rsfID.substring(4+(iselide?1:0));if(scrname==="ignore"){nextpos=trc.close.lumpindex+1}else{if(scrname==="rewrite-url"){torendero={componentType:"UILink",target:{}}}else{openTag();replaceAttributesOpen();nextpos=trc.endopen.lumpindex}}}}if(torendero!==null){if(payload){trc.endopen=lumps[payload.lumpindex+1];trc.close=payload.close_tag;trc.uselump=payload;dumpTillLump(lumps,lumpindex,payload.lumpindex);lumpindex=payload.lumpindex}adjustForID(attrcopy,torendero);openTag();renderComponent(torendero);if(payload!==null){if(trc.nextpos===nextpos){dumpTillLump(lumps,trc.close.lumpindex+1,outerclose.lumpindex+1)}}nextpos=trc.nextpos}return nextpos}var renderRecurse;function renderContainer(child,targetlump){var t2=targetlump.parent;var firstchild=t2.lumps[targetlump.lumpindex+1];if(child.children!==undefined){dumpBranchHead(child,targetlump)}else{renderComponentSystem(child.parent,child,targetlump)}renderRecurse(child,targetlump,firstchild)}fetchComponent=function(basecontainer,id,lump){if(id.indexOf("msg=")===0){var key=id.substring(4);return{componentType:"UIMessage",messagekey:key}}while(basecontainer){var togo=basecontainer.childmap[id];if(togo){return togo}basecontainer=basecontainer.parent}return null};function fetchComponents(basecontainer,id){var togo;while(basecontainer){togo=basecontainer.childmap[id];if(togo){break}basecontainer=basecontainer.parent}return togo}function findChild(sourcescope,child){var split=fluid.SplitID(child.ID);var headlumps=sourcescope.downmap[child.ID];if(!headlumps){headlumps=sourcescope.downmap[split.prefix+":"]}return headlumps?headlumps[0]:null}renderRecurse=function(basecontainer,parentlump,baselump){var renderindex=baselump.lumpindex;var basedepth=parentlump.nestingdepth;var t1=parentlump.parent;var rendered;if(debugMode){rendered={}}while(true){renderindex=dumpScan(t1.lumps,renderindex,basedepth,!parentlump.elide,false);if(renderindex===t1.lumps.length){break}var lump=t1.lumps[renderindex];var id=lump.rsfID;if(lump.nestingdepth<basedepth||id===undefined){break}if(id.charCodeAt(0)===126){id=id.substring(1)}if(id.indexOf(":")!==-1){var prefix=fluid.getPrefix(id);var children=fetchComponents(basecontainer,prefix);var finallump=lump.uplump.finallump[prefix];var closefinal=finallump.close_tag;if(children){for(var i=0;i<children.length;++i){var child=children[i];if(child.children){if(debugMode){rendered[child.fullID]=true}var targetlump=branchmap[child.fullID];if(targetlump){if(debugMode){renderComment("Branching for "+child.fullID+" from "+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump))}renderContainer(child,targetlump);if(debugMode){renderComment("Branch returned for "+child.fullID+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump))}}else{if(debugMode){renderDebugMessage("No matching template branch found for branch container with full ID "+child.fullID+" rendering from parent template branch "+fluid.debugLump(baselump))}}}else{var targetlump=findChild(parentlump,child);if(!targetlump){if(debugMode){renderDebugMessage("Repetitive leaf with full ID "+child.fullID+" could not be rendered from parent template branch "+fluid.debugLump(baselump))}continue}var renderend=renderComponentSystem(basecontainer,child,targetlump);var wasopentag=renderend<t1.lumps.lengtn&&t1.lumps[renderend].nestingdepth>=targetlump.nestingdepth;var newbase=child.children?child:basecontainer;if(wasopentag){renderRecurse(newbase,targetlump,t1.lumps[renderend]);renderend=targetlump.close_tag.lumpindex+1}if(i!==children.length-1){if(renderend<closefinal.lumpindex){dumpScan(t1.lumps,renderend,targetlump.nestingdepth-1,false,false)}}else{dumpScan(t1.lumps,renderend,targetlump.nestingdepth,true,false)}}}}else{if(debugMode){renderDebugMessage("No branch container with prefix "+prefix+": found in container "+reportPath(basecontainer)+" rendering at template position "+fluid.debugLump(baselump)+", skipping")}}renderindex=closefinal.lumpindex+1;if(debugMode){renderComment("Stack returned from branch for ID "+id+" to "+fluid.debugLump(baselump)+": skipping from "+fluid.debugLump(lump)+" to "+fluid.debugLump(closefinal))}}else{var component;if(id){component=fetchComponent(basecontainer,id,lump);if(debugMode&&component){rendered[component.fullID]=true}}if(component&&component.children!==undefined){renderContainer(component);renderindex=lump.close_tag.lumpindex+1}else{renderindex=renderComponentSystem(basecontainer,component,lump)}}if(renderindex===t1.lumps.length){break}}if(debugMode){var children=basecontainer.children;for(var key=0;key<children.length;++key){var child=children[key];if(!rendered[child.fullID]){renderDebugMessage("Component "+child.componentType+" with full ID "+child.fullID+" could not be found within template "+fluid.debugLump(baselump))}}}};function renderCollect(collump){dumpTillLump(collump.parent.lumps,collump.lumpindex,collump.close_tag.lumpindex+1)}function renderCollects(){for(var key in collected){var collist=collected[key];for(var i=0;i<collist.length;++i){renderCollect(collist[i])}}}function processDecoratorQueue(){for(var i=0;i<decoratorQueue.length;++i){var decorator=decoratorQueue[i];for(var j=0;j<decorator.ids.length;++j){var id=decorator.ids[j];var node=fluid.byId(id,renderOptions.document);if(!node){fluid.fail("Error during rendering - component with id "+id+" which has a queued decorator was not found in the output markup")}if(decorator.type==="jQuery"){var jnode=$(node);jnode[decorator.func].apply(jnode,$.makeArray(decorator.args))}else{if(decorator.type==="fluid"){var args=decorator.args;if(!args){if(!decorator.container){decorator.container=$(node)}else{decorator.container.push(node)}args=[node,decorator.options]}var that=renderer.invokeFluidDecorator(decorator.func,args,id,i,options);decorator.that=that}else{if(decorator.type==="event"){node[decorator.event]=decorator.handler}}}}}}that.renderTemplates=function(){tree=fixupTree(tree,options.model,options.resolverGetConfig);var template=templates[0];resolveBranches(templates.globalmap,tree,template.rootlump);renderedbindings={};renderCollects();renderRecurse(tree,template.rootlump,template.lumps[template.firstdocumentindex]);return out};that.processDecoratorQueue=function(){processDecoratorQueue()};return that};jQuery.extend(true,fluid.renderer,renderer);fluid.ComponentReference=function(reference){this.reference=reference};fluid.explode=function(hash,basepath){var togo=[];for(var key in hash){var binding=basepath===undefined?key:basepath+"."+key;togo[togo.length]={ID:key,value:hash[key],valuebinding:binding}}return togo};fluid.explodeSelectionToInputs=function(optionlist,opts){return fluid.transform(optionlist,function(option,index){return{ID:opts.rowID,children:[{ID:opts.inputID,parentRelativeID:"..::"+opts.selectID,choiceindex:index},{ID:opts.labelID,parentRelativeID:"..::"+opts.selectID,choiceindex:index}]}})};fluid.resolveMessageSource=function(messageSource){if(messageSource.type==="data"){if(messageSource.url===undefined){return fluid.messageLocator(messageSource.messages,messageSource.resolveFunc)}else{}}else{if(messageSource.type==="resolver"){return messageSource.resolver.resolve}}};fluid.renderTemplates=function(templates,tree,options,fossilsIn){var renderer=fluid.renderer(templates,tree,options,fossilsIn);var rendered=renderer.renderTemplates();return rendered};fluid.reRender=function(templates,node,tree,options){options=options||{};node=fluid.unwrap(node);var lastFocusedElement=fluid.getLastFocusedElement?fluid.getLastFocusedElement():null;var lastId;if(lastFocusedElement&&fluid.dom.isContainer(node,lastFocusedElement)){lastId=lastFocusedElement.id}if($.browser.msie){$(node).empty()}else{node.innerHTML=""}var fossils=options.fossils||{};var renderer=fluid.renderer(templates,tree,options,fossils);var rendered=renderer.renderTemplates();if(options.renderRaw){rendered=fluid.XMLEncode(rendered);rendered=rendered.replace(/\n/g,"<br/>")}if(options.model){fluid.bindFossils(node,options.model,fossils)}if($.browser.msie){$(node).html(rendered)}else{node.innerHTML=rendered}renderer.processDecoratorQueue();if(lastId){var element=fluid.byId(lastId);if(element){$(element).focus()}}return templates};function findNodeValue(rootNode){var node=fluid.dom.iterateDom(rootNode,function(node){return node.nodeType===8||node.nodeType===4?"stop":null},true);var value=node.nodeValue;if(value.indexOf("[CDATA[")===0){return value.substring(6,value.length-2)}else{return value}}fluid.extractTemplate=function(node,armouring){if(!armouring){return node.innerHTML}else{return findNodeValue(node)}};fluid.render=function(source,target,tree,options){options=options||{};var template=source;if(typeof (source)==="object"){template=fluid.extractTemplate(fluid.unwrap(source.node),source.armouring)}target=fluid.unwrap(target);var resourceSpec={base:{resourceText:template,href:".",resourceKey:".",cutpoints:options.cutpoints}};var templates=fluid.parseTemplates(resourceSpec,["base"],options);return fluid.reRender(templates,target,tree,options)};fluid.selfRender=function(node,tree,options){options=options||{};return fluid.render({node:node,armouring:options.armouring},node,tree,options)}})(jQuery,fluid_1_4);fluid_1_4=fluid_1_4||{};(function($,fluid){if(!fluid.renderer){fluid.fail("fluidRenderer.js is a necessary dependency of RendererUtilities")}fluid.iota=function(count,first){first=first||0;var togo=[];for(var i=0;i<count;++i){togo[togo.length]=first++}return togo};fluid.renderer.visitDecorators=function(that,visitor){fluid.visitComponentChildren(that,function(component,name){if(name.indexOf(fluid.renderer.decoratorComponentPrefix)===0){visitor(component,name)}},{flat:true})};fluid.renderer.clearDecorators=function(instantiator,that){fluid.renderer.visitDecorators(that,function(component,name){instantiator.clearComponent(that,name)})};fluid.renderer.getDecoratorComponents=function(that){var togo={};fluid.renderer.visitDecorators(that,function(component,name){togo[name]=component});return togo};fluid.renderer.modeliseOptions=function(options,defaults,baseOptions){return $.extend({},defaults,options,fluid.filterKeys(baseOptions,["model","applier"]))};fluid.renderer.reverseMerge=function(target,source,names){names=fluid.makeArray(names);fluid.each(names,function(name){if(target[name]===undefined&&source[name]!==undefined){target[name]=source[name]}})};fluid.renderer.createRendererSubcomponent=function(container,selectors,options,baseObject,fossils){options=options||{};var source=options.templateSource?options.templateSource:{node:$(container)};var rendererOptions=fluid.renderer.modeliseOptions(options.rendererOptions,null,baseObject);rendererOptions.fossils=fossils||{};var expanderOptions=fluid.renderer.modeliseOptions(options.expanderOptions,{ELstyle:"${}"},baseObject);fluid.renderer.reverseMerge(expanderOptions,options,["resolverGetConfig","resolverSetConfig"]);var that={};if(!options.noexpand){that.expander=fluid.renderer.makeProtoExpander(expanderOptions)}var templates=null;that.render=function(tree){var cutpointFn=options.cutpointGenerator||"fluid.renderer.selectorsToCutpoints";rendererOptions.cutpoints=rendererOptions.cutpoints||fluid.invokeGlobalFunction(cutpointFn,[selectors,options]);container=typeof (container)==="function"?container():$(container);if(templates){fluid.clear(rendererOptions.fossils);fluid.reRender(templates,container,tree,rendererOptions)}else{if(typeof (source)==="function"){source=source()}templates=fluid.render(source,container,tree,rendererOptions)}};return that};fluid.defaults("fluid.rendererComponent",{gradeNames:["fluid.viewComponent"],initFunction:"fluid.initRendererComponent",mergePolicy:{protoTree:"noexpand, replace"},rendererOptions:{autoBind:true},events:{prepareModelForRender:null,onRenderTree:null,afterRender:null,produceTree:"unicast"}});fluid.initRendererComponent=function(componentName,container,options){var that=fluid.initView(componentName,container,options,{gradeNames:["fluid.rendererComponent"]});fluid.fetchResources(that.options.resources);var rendererOptions=fluid.renderer.modeliseOptions(that.options.rendererOptions,null,that);if(!that.options.noUpgradeDecorators){fluid.withInstantiator(that,function(currentInst){rendererOptions.instantiator=currentInst;rendererOptions.parentComponent=that})}var messageResolver;if(!rendererOptions.messageSource&&that.options.strings){messageResolver=fluid.messageResolver({messageBase:that.options.strings,resolveFunc:that.options.messageResolverFunction,parents:fluid.makeArray(that.options.parentBundle)});rendererOptions.messageSource={type:"resolver",resolver:messageResolver}}fluid.renderer.reverseMerge(rendererOptions,that.options,["resolverGetConfig","resolverSetConfig"]);var rendererFnOptions=$.extend({},that.options.rendererFnOptions,{rendererOptions:rendererOptions,repeatingSelectors:that.options.repeatingSelectors,selectorsToIgnore:that.options.selectorsToIgnore,expanderOptions:{envAdd:{styles:that.options.styles}}});if(that.options.resources&&that.options.resources.template){rendererFnOptions.templateSource=function(){return that.options.resources.template.resourceText}}var produceTree=that.events.produceTree;produceTree.addListener(function(){return that.options.protoTree});if(that.options.produceTree){produceTree.addListener(that.options.produceTree)}fluid.renderer.reverseMerge(rendererFnOptions,that.options,["resolverGetConfig","resolverSetConfig"]);if(rendererFnOptions.rendererTargetSelector){container=function(){return that.dom.locate(rendererFnOptions.rendererTargetSelector)}}var renderer={fossils:{},boundPathForNode:function(node){return fluid.boundPathForNode(node,renderer.fossils)}};var rendererSub=fluid.renderer.createRendererSubcomponent(container,that.options.selectors,rendererFnOptions,that,renderer.fossils);that.renderer=$.extend(renderer,rendererSub);if(messageResolver){that.messageResolver=messageResolver}that.refreshView=renderer.refreshView=function(){if(rendererOptions.instantiator&&rendererOptions.parentComponent){fluid.renderer.clearDecorators(rendererOptions.instantiator,rendererOptions.parentComponent)}that.events.prepareModelForRender.fire(that.model,that.applier,that);var tree=produceTree.fire(that);if(that.renderer.expander){tree=that.renderer.expander(tree)}that.events.onRenderTree.fire(that,tree);that.renderer.render(tree);that.events.afterRender.fire(that)};if(that.options.renderOnInit){that.refreshView()}return that};var removeSelectors=function(selectors,selectorsToIgnore){fluid.each(fluid.makeArray(selectorsToIgnore),function(selectorToIgnore){delete selectors[selectorToIgnore]});return selectors};var markRepeated=function(selectorKey,repeatingSelectors){if(repeatingSelectors){fluid.each(repeatingSelectors,function(repeatingSelector){if(selectorKey===repeatingSelector){selectorKey=selectorKey+":"}})}return selectorKey};fluid.renderer.selectorsToCutpoints=function(selectors,options){var togo=[];options=options||{};selectors=fluid.copy(selectors);if(options.selectorsToIgnore){selectors=removeSelectors(selectors,options.selectorsToIgnore)}for(var selectorKey in selectors){togo.push({id:markRepeated(selectorKey,options.repeatingSelectors),selector:selectors[selectorKey]})}return togo};fluid.renderer.NO_COMPONENT={};fluid.renderer.mergeComponents=function(target,source){for(var key in source){target[key]=source[key]}return target};fluid.registerNamespace("fluid.renderer.selection");fluid.renderer.selection.inputs=function(options,container,key,config){fluid.expect("Selection to inputs expander",["selectID","inputID","labelID","rowID"],options);var selection=config.expander(options.tree);var rows=fluid.transform(selection.optionlist.value,function(option,index){var togo={};var element={parentRelativeID:"..::"+options.selectID,choiceindex:index};togo[options.inputID]=element;togo[options.labelID]=fluid.copy(element);return togo});var togo={};togo[options.selectID]=selection;togo[options.rowID]={children:rows};togo=config.expander(togo);return togo};fluid.renderer.repeat=function(options,container,key,config){fluid.expect("Repetition expander",["controlledBy","tree"],options);var path=fluid.extractContextualPath(options.controlledBy,{ELstyle:"ALL"},fluid.threadLocal());var list=fluid.get(config.model,path,config.resolverGetConfig);var togo={};if(!list||list.length===0){return options.ifEmpty?config.expander(options.ifEmpty):togo}var expanded=[];fluid.each(list,function(element,i){var EL=fluid.model.composePath(path,i);var envAdd={};if(options.pathAs){envAdd[options.pathAs]=EL}if(options.valueAs){envAdd[options.valueAs]=fluid.get(config.model,EL,config.resolverGetConfig)}var expandrow=fluid.withEnvironment(envAdd,function(){return config.expander(options.tree)},"rendererEnvironment");if(fluid.isArrayable(expandrow)){if(expandrow.length>0){expanded.push({children:expandrow})}}else{if(expandrow!==fluid.renderer.NO_COMPONENT){expanded.push(expandrow)}}});var repeatID=options.repeatID;if(repeatID.indexOf(":")===-1){repeatID=repeatID+":"}fluid.each(expanded,function(entry){entry.ID=repeatID});return expanded};fluid.renderer.condition=function(options,container,key,config){fluid.expect("Selection to condition expander",["condition"],options);var condition;if(options.condition.funcName){var args=config.expandLight(options.condition.args);condition=fluid.invoke(options.condition.funcName,args)}else{if(options.condition.expander){condition=config.expander(options.condition)}else{condition=config.expandLight(options.condition)}}var tree=(condition?options.trueTree:options.falseTree);if(!tree){tree=fluid.renderer.NO_COMPONENT}return config.expander(tree)};fluid.extractContextualPath=function(string,options,env){var parsed=fluid.extractELWithContext(string,options);if(parsed){if(parsed.context){var fetched=env[parsed.context];if(typeof (fetched)!=="string"){fluid.fail("Could not look up context path named "+parsed.context+" to string value")}return fluid.model.composePath(fetched,parsed.path)}else{return parsed.path}}};fluid.renderer.makeProtoExpander=function(expandOptions){var options=$.extend({ELstyle:"${}"},expandOptions);options.fetcher=fluid.makeEnvironmentFetcher("rendererEnvironment",options.model);var IDescape=options.IDescape||"\\";function fetchEL(string){var env=fluid.threadLocal().rendererEnvironment;return fluid.extractContextualPath(string,options,env)}var expandLight=function(source){return fluid.resolveEnvironment(source,options)};var expandBound=function(value,concrete){if(value.messagekey!==undefined){return{componentType:"UIMessage",messagekey:expandBound(value.messagekey),args:expandLight(value.args)}}var proto;if(!fluid.isPrimitive(value)&&!fluid.isArrayable(value)){proto=$.extend({},value);if(proto.decorators){proto.decorators=expandLight(proto.decorators)}value=proto.value;delete proto.value}else{proto={}}var EL=typeof (value)==="string"?fetchEL(value):null;if(EL){proto.valuebinding=EL}else{if(value!==undefined){proto.value=value}}if(options.model&&proto.valuebinding&&proto.value===undefined){proto.value=fluid.get(options.model,proto.valuebinding,options.resolverGetConfig)}if(concrete){proto.componentType="UIBound"}return proto};options.filter=fluid.expander.lightFilter;var expandCond;var expandLeafOrCond;var expandEntry=function(entry){var comp=[];expandCond(entry,comp);return{children:comp}};var expandExternal=function(entry){if(entry===fluid.renderer.NO_COMPONENT){return entry}var singleTarget;var target=[];var pusher=function(comp){singleTarget=comp};expandLeafOrCond(entry,target,pusher);return singleTarget||target};var expandConfig={model:options.model,resolverGetConfig:options.resolverGetConfig,resolverSetConfig:options.resolverSetConfig,expander:expandExternal,expandLight:expandLight};var expandLeaf=function(leaf,componentType){var togo={componentType:componentType};var map=fluid.renderer.boundMap[componentType]||{};for(var key in leaf){if(/decorators|args/.test(key)){togo[key]=expandLight(leaf[key]);continue}else{if(map[key]){togo[key]=expandBound(leaf[key])}else{togo[key]=leaf[key]}}}return togo};var expandChildren=function(entry,pusher){var children=entry.children;for(var i=0;i<children.length;++i){var target=[];var comp={children:target};var child=children[i];var childPusher=function(comp){target[target.length]=comp};expandLeafOrCond(child,target,childPusher);if(comp.children.length===1&&!comp.children[0].ID){comp=comp.children[0]}pusher(comp)}};function detectBareBound(entry){return fluid.find(entry,function(value,key){return key==="decorators"})!==false}var expandLeafOrCond=function(entry,target,pusher){var componentType=fluid.renderer.inferComponentType(entry);if(!componentType&&(fluid.isPrimitive(entry)||detectBareBound(entry))){componentType="UIBound"}if(componentType){pusher(componentType==="UIBound"?expandBound(entry,true):expandLeaf(entry,componentType))}else{if(!target){fluid.fail("Illegal cond->cond transition")}expandCond(entry,target)}};expandCond=function(proto,target){for(var key in proto){var entry=proto[key];if(key.charAt(0)===IDescape){key=key.substring(1)}if(key==="expander"){var expanders=fluid.makeArray(entry);fluid.each(expanders,function(expander){var expanded=fluid.invokeGlobalFunction(expander.type,[expander,proto,key,expandConfig]);if(expanded!==fluid.renderer.NO_COMPONENT){fluid.each(expanded,function(el){target[target.length]=el})}})}else{if(entry){var condPusher=function(comp){comp.ID=key;target[target.length]=comp};if(entry.children){if(key.indexOf(":")===-1){key=key+":"}expandChildren(entry,condPusher)}else{if(fluid.renderer.isBoundPrimitive(entry)){condPusher(expandBound(entry,true))}else{expandLeafOrCond(entry,null,condPusher)}}}}}};return function(entry){var initEnvironment=$.extend({},options.envAdd);return fluid.withEnvironment({rendererEnvironment:initEnvironment},function(){return expandEntry(entry)})}}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.browser");fluid.browser.binaryXHR=function(){var canSendBinary=window.FormData||(window.XMLHttpRequest&&window.XMLHttpRequest.prototype&&window.XMLHttpRequest.prototype.sendAsBinary);return canSendBinary?fluid.typeTag("fluid.browser.supportsBinaryXHR"):undefined};fluid.browser.formData=function(){return window.FormData?fluid.typeTag("fluid.browser.supportsFormData"):undefined};fluid.browser.flash=function(){var hasModernFlash=(typeof (swfobject)!=="undefined")&&(swfobject.getFlashPlayerVersion().major>8);return hasModernFlash?fluid.typeTag("fluid.browser.supportsFlash"):undefined};fluid.progressiveChecker=function(options){var that=fluid.initLittleComponent("fluid.progressiveChecker",options);return fluid.typeTag(fluid.find(that.options.checks,function(check){if(check.feature){return check.contextName}},that.options.defaultContextName))};fluid.defaults("fluid.progressiveChecker",{gradeNames:"fluid.typeFount",checks:[],defaultContextName:undefined});fluid.progressiveCheckerForComponent=function(options){var that=fluid.initLittleComponent("fluid.progressiveCheckerForComponent",options);var defaults=fluid.defaults(that.options.componentName);return fluid.progressiveChecker(fluid.expandOptions(defaults.progressiveCheckerOptions,that))};fluid.defaults("fluid.progressiveCheckerForComponent",{gradeNames:"fluid.typeFount"});$("head").append("<style type='text/css'>.fl-progEnhance-basic, .fl-ProgEnhance-basic { display: none; } .fl-progEnhance-enhanced, .fl-ProgEnhance-enhanced { display: block; }</style>");var features={supportsBinaryXHR:fluid.browser.binaryXHR(),supportsFormData:fluid.browser.formData(),supportsFlash:fluid.browser.flash()};fluid.merge(null,fluid.staticEnvironment,features)})(jQuery,fluid_1_4);(function($){var increments=0;$.widget("ui.tooltip",{options:{items:"[title]",content:function(){return $(this).attr("title")},position:{my:"left center",at:"right center",offset:"15 0"}},_create:function(){var self=this;this.tooltip=$("<div></div>").attr("id","ui-tooltip-"+increments++).attr("role","tooltip").attr("aria-hidden","true").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content").appendTo(document.body).hide();this.tooltipContent=$("<div></div>").addClass("ui-tooltip-content").appendTo(this.tooltip);this.opacity=this.tooltip.css("opacity");this.element.bind("focus.tooltip mouseover.tooltip",function(event){self.open(event)}).bind("blur.tooltip mouseout.tooltip",function(event){self.close(event)})},enable:function(){this.options.disabled=false},disable:function(){this.options.disabled=true},destroy:function(){this.tooltip.remove();$.Widget.prototype.destroy.apply(this,arguments)},widget:function(){return this.element.pushStack(this.tooltip.get())},open:function(event){var target=$(event&&event.target||this.element).closest(this.options.items);if(this.current&&this.current[0]==target[0]){return }var self=this;this.current=target;this.currentTitle=target.attr("title");var content=this.options.content.call(target[0],function(response){setTimeout(function(){if(self.current==target){self._show(event,target,response)}},13)});if(content){self._show(event,target,content)}},_show:function(event,target,content){if(!content){return }target.attr("title","");if(this.options.disabled){return }this.tooltipContent.html(content);this.tooltip.css({top:0,left:0}).show().position($.extend({of:target},this.options.position)).hide();this.tooltip.attr("aria-hidden","false");target.attr("aria-describedby",this.tooltip.attr("id"));this.tooltip.stop(false,true).fadeIn();this._trigger("open",event)},close:function(event){if(!this.current){return }var current=this.current;this.current=null;current.attr("title",this.currentTitle);if(this.options.disabled){return }current.removeAttr("aria-describedby");this.tooltip.attr("aria-hidden","true");this.tooltip.stop(false,true).fadeOut();this._trigger("close",event)}})})(jQuery);var fluid_1_4=fluid_1_4||{};(function($,fluid){var STATE_INITIAL="state_initial",STATE_CHANGED="state_changed",STATE_REVERTED="state_reverted";function defaultRenderer(that,targetContainer){var str=that.options.strings;var markup="<span class='flc-undo'><a href='#' class='flc-undo-undoControl'>"+str.undo+"</a><a href='#' class='flc-undo-redoControl'>"+str.redo+"</a></span>";var markupNode=$(markup).attr({role:"region","aria-live":"polite","aria-relevant":"all"});targetContainer.append(markupNode);return markupNode}function refreshView(that){if(that.state===STATE_INITIAL){that.locate("undoContainer").hide();that.locate("redoContainer").hide()}else{if(that.state===STATE_CHANGED){that.locate("undoContainer").show();that.locate("redoContainer").hide()}else{if(that.state===STATE_REVERTED){that.locate("undoContainer").hide();that.locate("redoContainer").show()}}}}var bindHandlers=function(that){that.locate("undoControl").click(function(){if(that.state!==STATE_REVERTED){fluid.model.copyModel(that.extremalModel,that.component.model);that.component.updateModel(that.initialModel,that);that.state=STATE_REVERTED;refreshView(that);that.locate("redoControl").focus()}return false});that.locate("redoControl").click(function(){if(that.state!==STATE_CHANGED){that.component.updateModel(that.extremalModel,that);that.state=STATE_CHANGED;refreshView(that);that.locate("undoControl").focus()}return false});return{modelChanged:function(newModel,oldModel,source){if(source!==that){that.state=STATE_CHANGED;fluid.model.copyModel(that.initialModel,oldModel);refreshView(that)}}}};fluid.undoDecorator=function(component,userOptions){var that=fluid.initLittleComponent("undo",userOptions);that.container=that.options.renderer(that,component.container);fluid.initDomBinder(that);fluid.tabindex(that.locate("undoControl"),0);fluid.tabindex(that.locate("redoControl"),0);that.component=component;that.initialModel={};that.extremalModel={};fluid.model.copyModel(that.initialModel,component.model);fluid.model.copyModel(that.extremalModel,component.model);that.state=STATE_INITIAL;refreshView(that);var listeners=bindHandlers(that);that.returnedOptions={listeners:listeners};return that};fluid.defaults("undo",{selectors:{undoContainer:".flc-undo-undoControl",undoControl:".flc-undo-undoControl",redoContainer:".flc-undo-redoControl",redoControl:".flc-undo-redoControl"},strings:{undo:"undo edit",redo:"redo edit"},renderer:defaultRenderer})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){var createContentFunc=function(content){return typeof content==="function"?content:function(){return content}};var setup=function(that){that.container.tooltip({content:createContentFunc(that.options.content),position:that.options.position,items:that.options.items,open:function(event){var tt=$(event.target).tooltip("widget");tt.stop(false,true);tt.hide();if(that.options.delay){tt.delay(that.options.delay).fadeIn("default",that.events.afterOpen.fire())}else{tt.show();that.events.afterOpen.fire()}},close:function(event){var tt=$(event.target).tooltip("widget");tt.stop(false,true);tt.hide();tt.clearQueue();that.events.afterClose.fire()}});that.elm=that.container.tooltip("widget");that.elm.addClass(that.options.styles.tooltip)};fluid.tooltip=function(container,options){var that=fluid.initView("fluid.tooltip",container,options);that.updateContent=function(content){that.container.tooltip("option","content",createContentFunc(content))};that.destroy=function(){that.container.tooltip("destroy")};that.open=function(){that.container.tooltip("open")};that.close=function(){that.container.tooltip("close")};setup(that);return that};fluid.defaults("fluid.tooltip",{styles:{tooltip:""},events:{afterOpen:null,afterClose:null},content:"",position:{my:"left top",at:"left bottom",offset:"0 5"},items:"*",delay:300})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){function sendKey(control,event,virtualCode,charCode){var kE=document.createEvent("KeyEvents");kE.initKeyEvent(event,1,1,null,0,0,0,0,virtualCode,charCode);control.dispatchEvent(kE)}fluid.setCaretToEnd=function(control,value){var pos=value?value.length:0;try{control.focus();if(control.setSelectionRange){control.setSelectionRange(pos,pos);if($.browser.mozilla&&pos>0){sendKey(control,"keypress",92,92);sendKey(control,"keydown",8,0);sendKey(control,"keypress",8,0)}}else{if(control.createTextRange){var range=control.createTextRange();range.move("character",pos);range.select()}}}catch(e){}};var switchToViewMode=function(that){that.editContainer.hide();that.displayModeRenderer.show()};var cancel=function(that){if(that.isEditing()){setTimeout(function(){that.editView.value(that.model.value)},1);switchToViewMode(that);that.events.afterFinishEdit.fire(that.model.value,that.model.value,that.editField[0],that.viewEl[0])}};var finish=function(that){var newValue=that.editView.value();var oldValue=that.model.value;var viewNode=that.viewEl[0];var editNode=that.editField[0];var ret=that.events.onFinishEdit.fire(newValue,oldValue,editNode,viewNode);if(ret===false){return }that.updateModelValue(newValue);that.events.afterFinishEdit.fire(newValue,oldValue,editNode,viewNode);switchToViewMode(that)};var bindEditFinish=function(that){if(that.options.submitOnEnter===undefined){that.options.submitOnEnter="textarea"!==fluid.unwrap(that.editField).nodeName.toLowerCase()}function keyCode(evt){return evt.keyCode?evt.keyCode:(evt.which?evt.which:0)}var escHandler=function(evt){var code=keyCode(evt);if(code===$.ui.keyCode.ESCAPE){that.textEditButton.focus(0);cancel(that);return false}};var finishHandler=function(evt){var code=keyCode(evt);if(code!==$.ui.keyCode.ENTER){that.textEditButton.blur();return true}else{finish(that);that.textEditButton.focus(0)}return false};if(that.options.submitOnEnter){that.editContainer.keypress(finishHandler)}that.editContainer.keydown(escHandler)};var bindBlurHandler=function(that){if(that.options.blurHandlerBinder){that.options.blurHandlerBinder(that)}else{var blurHandler=function(evt){if(that.isEditing()){finish(that)}return false};that.editField.blur(blurHandler)}};var initializeEditView=function(that,initial){if(!that.editInitialized){fluid.inlineEdit.renderEditContainer(that,!that.options.lazyEditView||!initial);if(!that.options.lazyEditView||!initial){that.editView=fluid.initSubcomponent(that,"editView",that.editField);$.extend(true,that.editView,fluid.initSubcomponent(that,"editAccessor",that.editField));bindEditFinish(that);bindBlurHandler(that);that.editView.refreshView(that);that.editInitialized=true}}};var edit=function(that){initializeEditView(that,false);var viewEl=that.viewEl;var displayText=that.displayView.value();that.updateModelValue(that.model.value===""?"":displayText);if(that.options.applyEditPadding){that.editField.width(Math.max(viewEl.width()+that.options.paddings.edit,that.options.paddings.minimumEdit))}that.displayModeRenderer.hide();that.editContainer.show();setTimeout(function(){fluid.setCaretToEnd(that.editField[0],that.editView.value());if(that.options.selectOnEdit){that.editField[0].select()}},0);that.events.afterBeginEdit.fire()};var clearEmptyViewStyles=function(textEl,styles,originalViewPadding){textEl.removeClass(styles.defaultViewStyle);textEl.css("padding-right",originalViewPadding);textEl.removeClass(styles.emptyDefaultViewText)};var showDefaultViewText=function(that){that.displayView.value(that.options.defaultViewText);that.viewEl.css("padding-right",that.existingPadding);that.viewEl.addClass(that.options.styles.defaultViewStyle)};var showNothing=function(that){that.displayView.value("");if($.browser.msie){if(that.viewEl.css("display")==="inline"){that.viewEl.css("display","inline-block")}}};var showEditedText=function(that){that.displayView.value(that.model.value);clearEmptyViewStyles(that.viewEl,that.options.styles,that.existingPadding)};var refreshView=function(that,source){that.displayView.refreshView(that,source);if(that.editView){that.editView.refreshView(that,source)}};var initModel=function(that,value){that.model.value=value;that.refreshView()};var updateModelValue=function(that,newValue,source){var comparator=that.options.modelComparator;var unchanged=comparator?comparator(that.model.value,newValue):that.model.value===newValue;if(!unchanged){var oldModel=$.extend(true,{},that.model);that.model.value=newValue;that.events.modelChanged.fire(that.model,oldModel,source);that.refreshView(source)}};var makeIsEditing=function(that){var isEditing=false;that.events.onBeginEdit.addListener(function(){isEditing=true});that.events.afterFinishEdit.addListener(function(){isEditing=false});return function(){return isEditing}};var makeEditHandler=function(that){return function(){var prevent=that.events.onBeginEdit.fire();if(prevent===false){return false}edit(that);return true}};var initTooltips=function(that){var tooltipOptions={content:that.options.tooltipText,position:{my:"left top",at:"left bottom",offset:"0 5"},target:"*",delay:that.options.tooltipDelay,styles:{tooltip:that.options.styles.tooltip}};fluid.tooltip(that.viewEl,tooltipOptions);if(that.textEditButton){fluid.tooltip(that.textEditButton,tooltipOptions)}};var calculateInitialPadding=function(viewEl){var padding=viewEl.css("padding-right");return padding?parseFloat(padding):0};var setupInlineEdit=function(componentContainer,that){if(that.editContainer){that.editContainer.hide()}if(that.tooltipEnabled()){initTooltips(that)}that.decorators=fluid.initSubcomponents(that,"componentDecorators",[that,fluid.COMPONENT_OPTIONS])};var setupInlineEdits=function(editables,options){var editors=[];editables.each(function(idx,editable){editors.push(fluid.inlineEdit($(editable),options))});return editors};fluid.inlineEdit=function(componentContainer,userOptions){var that=fluid.initView("inlineEdit",componentContainer,userOptions);that.viewEl=fluid.inlineEdit.setupDisplayText(that);that.displayView=fluid.initSubcomponent(that,"displayView",that.viewEl);$.extend(true,that.displayView,fluid.initSubcomponent(that,"displayAccessor",that.viewEl));that.model={value:""};that.edit=makeEditHandler(that);that.isEditing=makeIsEditing(that);that.finish=function(){finish(that)};that.cancel=function(){cancel(that)};that.tooltipEnabled=function(){return that.options.useTooltip&&$.fn.tooltip};that.refreshView=function(source){refreshView(that,source)};that.updateModelValue=function(newValue,source){updateModelValue(that,newValue,source)};that.updateModel=function(newModel,source){updateModelValue(that,newModel.value,source)};that.existingPadding=calculateInitialPadding(that.viewEl);initModel(that,that.displayView.value());that.displayModeRenderer=that.options.displayModeRenderer(that);initializeEditView(that,true);setupInlineEdit(componentContainer,that);return that};fluid.inlineEdit.setupEditField=function(editStyle,editField){var eField=$(editField);eField=eField.length?eField:$("<input type='text' class='flc-inlineEdit-edit'/>");eField.addClass(editStyle);return eField};fluid.inlineEdit.setupEditContainer=function(displayContainer,editField,editContainer){var eContainer=$(editContainer);eContainer=eContainer.length?eContainer:$("<span></span>");displayContainer.after(eContainer);eContainer.append(editField);return eContainer};fluid.inlineEdit.defaultEditModeRenderer=function(that){var editField=fluid.inlineEdit.setupEditField(that.options.styles.edit,that.editField);var editContainer=fluid.inlineEdit.setupEditContainer(that.displayModeRenderer,editField,that.editContainer);var editModeInstruction=fluid.inlineEdit.setupEditModeInstruction(that.options.styles.editModeInstruction,that.options.strings.editModeInstruction);var id=fluid.allocateSimpleId(editModeInstruction);editField.attr("aria-describedby",id);fluid.inlineEdit.positionEditModeInstruction(editModeInstruction,editContainer,editField);return{container:editContainer,field:editField}};fluid.inlineEdit.renderEditContainer=function(that,lazyEditView){that.editContainer=that.locate("editContainer");that.editField=that.locate("edit");if(that.editContainer.length!==1){if(that.editContainer.length>1){fluid.fail("InlineEdit did not find a unique container for selector "+that.options.selectors.editContainer+": "+fluid.dumpEl(that.editContainer))}}if(!lazyEditView){return }var editElms=that.options.editModeRenderer(that);if(editElms){that.editContainer=editElms.container;that.editField=editElms.field}};fluid.inlineEdit.setupEditModeInstruction=function(editModeInstructionStyle,editModeInstructionText){var editModeInstruction=$("<p></p>");editModeInstruction.addClass(editModeInstructionStyle);editModeInstruction.text(editModeInstructionText);return editModeInstruction};fluid.inlineEdit.positionEditModeInstruction=function(editModeInstruction,editContainer,editField){editContainer.append(editModeInstruction);editField.focus(function(){editModeInstruction.show();var editFieldPosition=editField.offset();editModeInstruction.css({left:editFieldPosition.left});editModeInstruction.css({top:editFieldPosition.top+editField.height()+5})})};fluid.inlineEdit.setupDisplayModeContainer=function(styles,displayModeWrapper){var displayModeContainer=$(displayModeWrapper);displayModeContainer=displayModeContainer.length?displayModeContainer:$("<span></span>");displayModeContainer.addClass(styles.displayView);return displayModeContainer};fluid.inlineEdit.setupDisplayText=function(that){var viewEl=that.locate("text");viewEl.attr("tabindex","-1");viewEl.addClass(that.options.styles.text);return viewEl};fluid.inlineEdit.setupTextEditButton=function(that){var opts=that.options;var textEditButton=that.locate("textEditButton");if(textEditButton.length===0){var markup=$("<a href='#_' class='flc-inlineEdit-textEditButton'></a>");markup.addClass(opts.styles.textEditButton);markup.text(opts.tooltipText);fluid.inlineEdit.updateTextEditButton(markup,that.model.value||opts.defaultViewText,opts.strings.textEditButton);that.events.modelChanged.addListener(function(){fluid.inlineEdit.updateTextEditButton(markup,that.model.value||opts.defaultViewText,opts.strings.textEditButton)});that.locate("text").after(markup);textEditButton=that.locate("textEditButton")}return textEditButton};fluid.inlineEdit.updateTextEditButton=function(textEditButton,value,stringTemplate){var buttonText=fluid.stringTemplate(stringTemplate,{text:value});textEditButton.text(buttonText)};fluid.inlineEdit.bindHoverHandlers=function(displayModeRenderer,invitationStyle){var over=function(evt){displayModeRenderer.addClass(invitationStyle)};var out=function(evt){displayModeRenderer.removeClass(invitationStyle)};displayModeRenderer.hover(over,out)};fluid.inlineEdit.bindHighlightHandler=function(element,displayModeRenderer,styles){element=$(element);var focusOn=function(){displayModeRenderer.addClass(styles.focus);displayModeRenderer.addClass(styles.invitation)};var focusOff=function(){displayModeRenderer.removeClass(styles.focus);displayModeRenderer.removeClass(styles.invitation)};element.focus(focusOn);element.blur(focusOff)};fluid.inlineEdit.bindMouseHandlers=function(element,edit){element=$(element);var triggerGuard=fluid.inlineEdit.makeEditTriggerGuard(element,edit);element.click(function(e){triggerGuard(e);return false})};fluid.inlineEdit.bindKeyboardHandlers=function(element,edit){element=$(element);element.attr("role","button");var guard=fluid.inlineEdit.makeEditTriggerGuard(element,edit);fluid.activatable(element,function(event){return guard(event)})};fluid.inlineEdit.makeEditTriggerGuard=function(element,edit){var selector=fluid.unwrap(element);return function(event){var outer=fluid.findAncestor(event.target,function(elem){if(/input|select|textarea|button|a/i.test(elem.nodeName)||elem===selector){return true}});if(outer===selector){edit();return false}}};fluid.inlineEdit.defaultDisplayModeRenderer=function(that){var styles=that.options.styles;var displayModeWrapper=fluid.inlineEdit.setupDisplayModeContainer(styles);var displayModeRenderer=that.viewEl.wrap(displayModeWrapper).parent();that.textEditButton=fluid.inlineEdit.setupTextEditButton(that);displayModeRenderer.append(that.textEditButton);fluid.inlineEdit.bindHoverHandlers(displayModeRenderer,styles.invitation);fluid.inlineEdit.bindMouseHandlers(that.viewEl,that.edit);fluid.inlineEdit.bindMouseHandlers(that.textEditButton,that.edit);fluid.inlineEdit.bindKeyboardHandlers(that.textEditButton,that.edit);fluid.inlineEdit.bindHighlightHandler(that.viewEl,displayModeRenderer,styles);fluid.inlineEdit.bindHighlightHandler(that.textEditButton,displayModeRenderer,styles);return displayModeRenderer};fluid.inlineEdit.standardAccessor=function(element){var nodeName=element.nodeName.toLowerCase();return{value:function(newValue){return"input"===nodeName||"textarea"===nodeName?fluid.value($(element),newValue):$(element).text(newValue)}}};fluid.inlineEdit.standardDisplayView=function(viewEl){var that={refreshView:function(componentThat,source){if(componentThat.model.value){showEditedText(componentThat)}else{if(componentThat.options.defaultViewText){showDefaultViewText(componentThat)}else{showNothing(componentThat)}}if($.trim(componentThat.viewEl.text()).length===0){componentThat.viewEl.addClass(componentThat.options.styles.emptyDefaultViewText);if(componentThat.existingPadding<componentThat.options.paddings.minimumView){componentThat.viewEl.css("padding-right",componentThat.options.paddings.minimumView)}}}};return that};fluid.inlineEdit.standardEditView=function(editField){var that={refreshView:function(componentThat,source){if(!source||(componentThat.editField&&componentThat.editField.index(source)===-1)){componentThat.editView.value(componentThat.model.value)}}};$.extend(true,that,fluid.inlineEdit.standardAccessor(editField));return that};fluid.inlineEdits=function(componentContainer,options){options=options||{};var selectors=$.extend({},fluid.defaults("inlineEdits").selectors,options.selectors);var container=fluid.container(componentContainer);var editables=$(selectors.editables,container);return setupInlineEdits(editables,options)};fluid.defaults("inlineEdit",{selectors:{text:".flc-inlineEdit-text",editContainer:".flc-inlineEdit-editContainer",edit:".flc-inlineEdit-edit",textEditButton:".flc-inlineEdit-textEditButton"},styles:{text:"fl-inlineEdit-text",edit:"fl-inlineEdit-edit",invitation:"fl-inlineEdit-invitation",defaultViewStyle:"fl-inlineEdit-emptyText-invitation",emptyDefaultViewText:"fl-inlineEdit-emptyDefaultViewText",focus:"fl-inlineEdit-focus",tooltip:"fl-inlineEdit-tooltip",editModeInstruction:"fl-inlineEdit-editModeInstruction",displayView:"fl-inlineEdit-simple-editableText fl-inlineEdit-textContainer",textEditButton:"fl-offScreen-hidden"},events:{modelChanged:null,onBeginEdit:"preventable",afterBeginEdit:null,onFinishEdit:"preventable",afterFinishEdit:null,afterInitEdit:null},strings:{textEditButton:"Edit text %text",editModeInstruction:"Escape to cancel, Enter or Tab when finished"},paddings:{edit:10,minimumEdit:80,minimumView:60},applyEditPadding:true,blurHandlerBinder:null,submitOnEnter:undefined,modelComparator:null,displayAccessor:{type:"fluid.inlineEdit.standardAccessor"},displayView:{type:"fluid.inlineEdit.standardDisplayView"},editAccessor:{type:"fluid.inlineEdit.standardAccessor"},editView:{type:"fluid.inlineEdit.standardEditView"},displayModeRenderer:fluid.inlineEdit.defaultDisplayModeRenderer,editModeRenderer:fluid.inlineEdit.defaultEditModeRenderer,lazyEditView:false,defaultViewText:"Click here to edit",useTooltip:true,tooltipText:"Select or press Enter to edit",tooltipDelay:1000,selectOnEdit:false});fluid.defaults("inlineEdits",{selectors:{editables:".flc-inlineEditable"}})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.inlineEdit.makeViewAccessor=function(editorGetFn,setValueFn,getValueFn){return function(editField){return{value:function(newValue){var editor=editorGetFn(editField);if(!editor){if(newValue){$(editField).val(newValue)}return""}if(newValue){setValueFn(editField,editor,newValue)}else{return getValueFn(editor)}}}}};fluid.inlineEdit.richTextViewAccessor=function(element){return{value:function(newValue){return $(element).html(newValue)}}};var configureInlineEdit=function(configurationName,container,options){var defaults=fluid.defaults(configurationName);var assembleOptions=fluid.merge(defaults?defaults.mergePolicy:null,{},defaults,options);return fluid.inlineEdit(container,assembleOptions)};fluid.inlineEdit.normalizeHTML=function(value){var togo=$.trim(value.replace(/\s+/g," "));togo=togo.replace(/\s+<\//g,"</");togo=togo.replace(/\<([a-z0-9A-Z\/]+)\>/g,function(match){return match.toLowerCase()});return togo};fluid.inlineEdit.htmlComparator=function(el1,el2){return fluid.inlineEdit.normalizeHTML(el1)===fluid.inlineEdit.normalizeHTML(el2)};fluid.inlineEdit.bindRichTextHighlightHandler=function(element,displayModeRenderer,invitationStyle){element=$(element);var focusOn=function(){displayModeRenderer.addClass(invitationStyle)};var focusOff=function(){displayModeRenderer.removeClass(invitationStyle)};element.focus(focusOn);element.blur(focusOff)};fluid.inlineEdit.setupRichTextEditButton=function(that){var opts=that.options;var textEditButton=that.locate("textEditButton");if(textEditButton.length===0){var markup=$("<a href='#_' class='flc-inlineEdit-textEditButton'></a>");markup.text(opts.strings.textEditButton);that.locate("text").after(markup);textEditButton=that.locate("textEditButton")}return textEditButton};fluid.inlineEdit.richTextDisplayModeRenderer=function(that){var styles=that.options.styles;var displayModeWrapper=fluid.inlineEdit.setupDisplayModeContainer(styles);var displayModeRenderer=that.viewEl.wrap(displayModeWrapper).parent();that.textEditButton=fluid.inlineEdit.setupRichTextEditButton(that);displayModeRenderer.append(that.textEditButton);displayModeRenderer.addClass(styles.focus);fluid.inlineEdit.bindHoverHandlers(displayModeRenderer,styles.invitation);fluid.inlineEdit.bindMouseHandlers(that.textEditButton,that.edit);fluid.inlineEdit.bindKeyboardHandlers(that.textEditButton,that.edit);fluid.inlineEdit.bindRichTextHighlightHandler(that.viewEl,displayModeRenderer,styles.invitation);fluid.inlineEdit.bindRichTextHighlightHandler(that.textEditButton,displayModeRenderer,styles.invitation);return displayModeRenderer};fluid.inlineEdit.tinyMCE=function(container,options){var inlineEditor=configureInlineEdit("fluid.inlineEdit.tinyMCE",container,options);tinyMCE.init(inlineEditor.options.tinyMCE);return inlineEditor};fluid.inlineEdit.tinyMCE.getEditor=function(editField){return tinyMCE.get(editField.id)};fluid.inlineEdit.tinyMCE.setValue=function(editField,editor,value){$(editField).val(value);editor.setContent(value,{format:"raw"})};fluid.inlineEdit.tinyMCE.getValue=function(editor){return editor.getContent()};var flTinyMCE=fluid.inlineEdit.tinyMCE;flTinyMCE.viewAccessor=fluid.inlineEdit.makeViewAccessor(flTinyMCE.getEditor,flTinyMCE.setValue,flTinyMCE.getValue);fluid.inlineEdit.tinyMCE.blurHandlerBinder=function(that){function focusEditor(editor){setTimeout(function(){tinyMCE.execCommand("mceFocus",false,that.editField[0].id);if($.browser.mozilla&&$.browser.version.substring(0,3)==="1.8"){return }editor.selection.select(editor.getBody(),1);editor.selection.collapse(0)},10)}that.events.afterInitEdit.addListener(function(editor){focusEditor(editor);var editorBody=editor.getBody();fluid.deadMansBlur(that.editField,{exclusions:{body:$(editorBody)},handler:function(){that.cancel()}})});that.events.afterBeginEdit.addListener(function(){var editor=tinyMCE.get(that.editField[0].id);if(editor){focusEditor(editor)}})};fluid.inlineEdit.tinyMCE.editModeRenderer=function(that){var options=that.options.tinyMCE;options.elements=fluid.allocateSimpleId(that.editField);var oldinit=options.init_instance_callback;options.init_instance_callback=function(instance){that.events.afterInitEdit.fire(instance);if(oldinit){oldinit()}};tinyMCE.init(options)};fluid.defaults("fluid.inlineEdit.tinyMCE",{tinyMCE:{mode:"exact",theme:"simple"},useTooltip:true,selectors:{edit:"textarea"},styles:{invitation:"fl-inlineEdit-richText-invitation",displayView:"fl-inlineEdit-textContainer",text:""},strings:{textEditButton:"Edit"},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.tinyMCE.viewAccessor"},lazyEditView:true,defaultViewText:"Click Edit",modelComparator:fluid.inlineEdit.htmlComparator,blurHandlerBinder:fluid.inlineEdit.tinyMCE.blurHandlerBinder,displayModeRenderer:fluid.inlineEdit.richTextDisplayModeRenderer,editModeRenderer:fluid.inlineEdit.tinyMCE.editModeRenderer});fluid.inlineEdit.CKEditor=function(container,options){return configureInlineEdit("fluid.inlineEdit.CKEditor",container,options)};fluid.inlineEdit.CKEditor.getEditor=function(editField){return CKEDITOR.instances[editField.id]};fluid.inlineEdit.CKEditor.setValue=function(editField,editor,value){editor.setData(value)};fluid.inlineEdit.CKEditor.getValue=function(editor){return editor.getData()};var flCKEditor=fluid.inlineEdit.CKEditor;flCKEditor.viewAccessor=fluid.inlineEdit.makeViewAccessor(flCKEditor.getEditor,flCKEditor.setValue,flCKEditor.getValue);fluid.inlineEdit.CKEditor.focus=function(editor){setTimeout(function(){editor.focus()},0)};fluid.inlineEdit.CKEditor.normalizeHTML=function(value){var togo=fluid.inlineEdit.normalizeHTML(value);var angpos=togo.indexOf(">");if(angpos!==-1&&angpos<togo.length-1){if(togo.charAt(angpos+1)!==" "){togo=togo.substring(0,angpos+1)+" "+togo.substring(angpos+1)}}return togo};fluid.inlineEdit.CKEditor.htmlComparator=function(el1,el2){return fluid.inlineEdit.CKEditor.normalizeHTML(el1)===fluid.inlineEdit.CKEditor.normalizeHTML(el2)};fluid.inlineEdit.CKEditor.blurHandlerBinder=function(that){that.events.afterInitEdit.addListener(fluid.inlineEdit.CKEditor.focus);that.events.afterBeginEdit.addListener(function(){var editor=fluid.inlineEdit.CKEditor.getEditor(that.editField[0]);if(editor){fluid.inlineEdit.CKEditor.focus(editor)}})};fluid.inlineEdit.CKEditor.editModeRenderer=function(that){var id=fluid.allocateSimpleId(that.editField);$.data(fluid.unwrap(that.editField),"fluid.inlineEdit.CKEditor",that);var editor=CKEDITOR.replace(id,that.options.CKEditor);editor.on("instanceReady",function(e){fluid.inlineEdit.CKEditor.focus(e.editor);that.events.afterInitEdit.fire(e.editor)})};fluid.defaults("fluid.inlineEdit.CKEditor",{selectors:{edit:"textarea"},styles:{invitation:"fl-inlineEdit-richText-invitation",displayView:"fl-inlineEdit-textContainer",text:""},strings:{textEditButton:"Edit"},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.CKEditor.viewAccessor"},lazyEditView:true,defaultViewText:"Click Edit",modelComparator:fluid.inlineEdit.CKEditor.htmlComparator,blurHandlerBinder:fluid.inlineEdit.CKEditor.blurHandlerBinder,displayModeRenderer:fluid.inlineEdit.richTextDisplayModeRenderer,editModeRenderer:fluid.inlineEdit.CKEditor.editModeRenderer,CKEditor:{}});fluid.inlineEdit.dropdown=function(container,options){return configureInlineEdit("fluid.inlineEdit.dropdown",container,options)};fluid.inlineEdit.dropdown.editModeRenderer=function(that){var id=fluid.allocateSimpleId(that.editField);that.editField.selectbox({finishHandler:function(){that.finish()}});return{container:that.editContainer,field:$("input.selectbox",that.editContainer)}};fluid.inlineEdit.dropdown.blurHandlerBinder=function(that){fluid.deadMansBlur(that.editField,{exclusions:{selectBox:$("div.selectbox-wrapper",that.editContainer)},handler:function(){that.cancel()}})};fluid.defaults("fluid.inlineEdit.dropdown",{applyEditPadding:false,blurHandlerBinder:fluid.inlineEdit.dropdown.blurHandlerBinder,editModeRenderer:fluid.inlineEdit.dropdown.editModeRenderer})})(jQuery,fluid_1_4);(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&parseInt($.browser.version)<=6){s=$.extend({top:"auto",left:"auto",width:"auto",height:"auto",opacity:true,src:"javascript:false;"},s||{});var prop=function(n){return n&&n.constructor==Number?n+"px":n},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?"filter:Alpha(Opacity='0');":"")+"top:"+(s.top=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+'px')":prop(s.top))+";left:"+(s.left=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+'px')":prop(s.left))+";width:"+(s.width=="auto"?"expression(this.parentNode.offsetWidth+'px')":prop(s.width))+";height:"+(s.height=="auto"?"expression(this.parentNode.offsetHeight+'px')":prop(s.height))+';"/>';return this.each(function(){if($("> iframe.bgiframe",this).length==0){this.insertBefore(document.createElement(html),this.firstChild)}})}return this};if(!$.browser.version){$.browser.version=navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)[1]}})(jQuery);var fluid_1_4=fluid_1_4||{};(function($,fluid){function updateStyles(pageListThat,newModel,oldModel){if(!pageListThat.pageLinks){return }if(oldModel.pageIndex!==undefined){var oldLink=pageListThat.pageLinks.eq(oldModel.pageIndex);oldLink.removeClass(pageListThat.options.styles.currentPage)}var pageLink=pageListThat.pageLinks.eq(newModel.pageIndex);pageLink.addClass(pageListThat.options.styles.currentPage)}function bindLinkClick(link,events,eventArg){link.unbind("click.fluid.pager");link.bind("click.fluid.pager",function(){events.initiatePageChange.fire(eventArg)})}function computePageCount(model){model.pageCount=Math.max(1,Math.floor((model.totalRange-1)/model.pageSize)+1)}fluid.pager=function(){return fluid.pagerImpl.apply(null,arguments)};fluid.pager.computePageLimit=function(model){return Math.min(model.totalRange,(model.pageIndex+1)*model.pageSize)};fluid.pager.directPageList=function(container,events,options){var that=fluid.initView("fluid.pager.directPageList",container,options);that.pageLinks=that.locate("pageLinks");for(var i=0;i<that.pageLinks.length;++i){var pageLink=that.pageLinks.eq(i);bindLinkClick(pageLink,events,{pageIndex:i})}events.onModelChange.addListener(function(newModel,oldModel){updateStyles(that,newModel,oldModel)});that.defaultModel={pageIndex:undefined,pageSize:1,totalRange:that.pageLinks.length};return that};fluid.iota=function(count,first){first=first||0;var togo=[];for(var i=0;i<count;++i){togo[togo.length]=first++}return togo};fluid.pager.everyPageStrategy=fluid.iota;fluid.pager.gappedPageStrategy=function(locality,midLocality){if(!locality){locality=3}if(!midLocality){midLocality=locality}return function(count,first,mid){var togo=[];var j=0;var lastSkip=false;for(var i=0;i<count;++i){if(i<locality||(count-i-1)<locality||(i>=mid-midLocality&&i<=mid+midLocality)){togo[j++]=i;lastSkip=false}else{if(!lastSkip){togo[j++]=-1;lastSkip=true}}}return togo}};fluid.pager.consistentGappedPageStrategy=function(endLinkCount,midLinkCount){if(!endLinkCount){endLinkCount=1}if(!midLinkCount){midLinkCount=endLinkCount}var endWidth=endLinkCount+2+midLinkCount;return function(count,first,mid){var pages=[];var anchoredLeft=mid<endWidth;var anchoredRight=mid>=count-endWidth;var anchoredEndWidth=endWidth+midLinkCount;var midStart=mid-midLinkCount;var midEnd=mid+midLinkCount;var lastSkip=false;for(var page=0;page<count;page++){if(page<endLinkCount||count-page<=endLinkCount||(anchoredLeft&&page<anchoredEndWidth)||(anchoredRight&&page>=count-anchoredEndWidth)||(page>=midStart&&page<=midEnd)){pages.push(page);lastSkip=false}else{if(!lastSkip){pages.push(-1);lastSkip=true}}}return pages}};fluid.pager.renderedPageList=function(container,events,pagerBarOptions,options,strings){options=$.extend(true,pagerBarOptions,options);var that=fluid.initView("fluid.pager.renderedPageList",container,options);options=that.options;var idMap={};var renderOptions={cutpoints:[{id:"page-link:link",selector:pagerBarOptions.selectors.pageLinks},{id:"page-link:skip",selector:pagerBarOptions.selectors.pageLinkSkip}],idMap:idMap};if(options.linkBody){renderOptions.cutpoints[renderOptions.cutpoints.length]={id:"payload-component",selector:options.linkBody}}var assembleComponent=function(page,isCurrent){var obj={ID:"page-link:link",localID:page+1,value:page+1,pageIndex:page,decorators:[{type:"jQuery",func:"click",args:function(event){events.initiatePageChange.fire({pageIndex:page});event.preventDefault()}}]};if(isCurrent){obj.current=true;obj.decorators=obj.decorators.concat([{type:"addClass",classes:that.options.styles.currentPage},{type:"jQuery",func:"attr",args:["aria-label",that.options.strings.currentPageIndexMsg]}])}return obj};function pageToComponent(current){return function(page){return page===-1?{ID:"page-link:skip"}:assembleComponent(page,page===current)}}var root=that.locate("root");fluid.expectFilledSelector(root,"Error finding root template for fluid.pager.renderedPageList");var template=fluid.selfRender(root,{},renderOptions);events.onModelChange.addListener(function(newModel,oldModel){var pages=that.options.pageStrategy(newModel.pageCount,0,newModel.pageIndex);var pageTree=fluid.transform(pages,pageToComponent(newModel.pageIndex));if(pageTree.length>1){pageTree[pageTree.length-1].value=pageTree[pageTree.length-1].value+strings.last}events.onRenderPageLinks.fire(pageTree,newModel);$.each(idMap,function(key,id){var pageLink=fluid.jById(id);if(pageLink.tooltip){pageLink.tooltip("destroy")}});fluid.reRender(template,root,pageTree,renderOptions);updateStyles(that,newModel,oldModel)});return that};fluid.defaults("fluid.pager.renderedPageList",{selectors:{root:".flc-pager-links"},linkBody:"a",pageStrategy:fluid.pager.everyPageStrategy});var updatePreviousNext=function(that,options,newModel){if(newModel.pageIndex===0){that.previous.addClass(options.styles.disabled)}else{that.previous.removeClass(options.styles.disabled)}if(newModel.pageIndex===newModel.pageCount-1){that.next.addClass(options.styles.disabled)}else{that.next.removeClass(options.styles.disabled)}};fluid.pager.previousNext=function(container,events,options){var that=fluid.initView("fluid.pager.previousNext",container,options);that.previous=that.locate("previous");bindLinkClick(that.previous,events,{relativePage:-1});that.next=that.locate("next");bindLinkClick(that.next,events,{relativePage:+1});events.onModelChange.addListener(function(newModel,oldModel,overallThat){updatePreviousNext(that,options,newModel)});return that};fluid.pager.pagerBar=function(events,container,options,strings){var that=fluid.initView("fluid.pager.pagerBar",container,options);that.pageList=fluid.initSubcomponent(that,"pageList",[container,events,that.options,fluid.COMPONENT_OPTIONS,strings]);that.previousNext=fluid.initSubcomponent(that,"previousNext",[container,events,that.options,fluid.COMPONENT_OPTIONS,strings]);return that};fluid.defaults("fluid.pager.pagerBar",{previousNext:{type:"fluid.pager.previousNext"},pageList:{type:"fluid.pager.renderedPageList",options:{pageStrategy:fluid.pager.gappedPageStrategy(3,1)}},selectors:{pageLinks:".flc-pager-pageLink",pageLinkSkip:".flc-pager-pageLink-skip",previous:".flc-pager-previous",next:".flc-pager-next"},styles:{currentPage:"fl-pager-currentPage",disabled:"fl-pager-disabled"},strings:{currentPageIndexMsg:"Current page"}});function getColumnDefs(that){return that.options.columnDefs}fluid.pager.findColumnDef=function(columnDefs,key){var columnDef=$.grep(columnDefs,function(def){return def.key===key})[0];return columnDef};function getRoots(target,overallThat,index){var cellRoot=(overallThat.options.dataOffset?overallThat.options.dataOffset+".":"");target.shortRoot=index;target.longRoot=cellRoot+target.shortRoot}function expandPath(EL,shortRoot,longRoot){if(EL.charAt(0)==="*"){return longRoot+EL.substring(1)}else{return EL.replace("*",shortRoot)}}fluid.pager.fetchValue=function(that,dataModel,index,valuebinding,roots){getRoots(roots,that,index);var path=expandPath(valuebinding,roots.shortRoot,roots.longRoot);return fluid.get(dataModel,path)};fluid.pager.basicSorter=function(overallThat,model){var dataModel=overallThat.options.dataModel;var roots={};var columnDefs=getColumnDefs(overallThat);var columnDef=fluid.pager.findColumnDef(columnDefs,model.sortKey);var sortrecs=[];for(var i=0;i<model.totalRange;++i){sortrecs[i]={index:i,value:fluid.pager.fetchValue(overallThat,dataModel,i,columnDef.valuebinding,roots)}}function sortfunc(arec,brec){var a=arec.value;var b=brec.value;return a===b?0:(a>b?model.sortDir:-model.sortDir)}sortrecs.sort(sortfunc);return fluid.transform(sortrecs,function(row){return row.index})};fluid.pager.directModelFilter=function(model,pagerModel,perm){var togo=[];var limit=fluid.pager.computePageLimit(pagerModel);for(var i=pagerModel.pageIndex*pagerModel.pageSize;i<limit;++i){var index=perm?perm[i]:i;togo[togo.length]={index:index,row:model[index]}}return togo};function expandVariables(value,opts){var togo="";var index=0;while(true){var nextindex=value.indexOf("${",index);if(nextindex===-1){togo+=value.substring(index);break}else{togo+=value.substring(index,nextindex);var endi=value.indexOf("}",nextindex+2);var EL=value.substring(nextindex+2,endi);if(EL==="VALUE"){EL=opts.EL}else{EL=expandPath(EL,opts.shortRoot,opts.longRoot)}var val=fluid.get(opts.dataModel,EL);togo+=val;index=endi+1}}return togo}function expandPaths(target,tree,opts){for(var i in tree){var val=tree[i];if(val===fluid.VALUE){if(i==="valuebinding"){target[i]=opts.EL}else{target[i]={valuebinding:opts.EL}}}else{if(i==="valuebinding"){target[i]=expandPath(tree[i],opts)}else{if(typeof (val)==="object"){target[i]=val.length!==undefined?[]:{};expandPaths(target[i],val,opts)}else{if(typeof (val)==="string"){target[i]=expandVariables(val,opts)}else{target[i]=tree[i]}}}}}return target}function iDforColumn(columnDef,opts){var options=opts.options;var EL=columnDef.valuebinding;var key=columnDef.key;if(!EL){fluid.fail("Error in definition for column with key "+key+": valuebinding is not set")}opts.EL=expandPath(EL,opts.shortRoot,opts.longRoot);if(!key){var segs=fluid.model.parseEL(EL);key=segs[segs.length-1]}var ID=(options.keyPrefix?options.keyPrefix:"")+key;return ID}function expandColumnDefs(filteredRow,opts){var tree=fluid.transform(opts.columnDefs,function(columnDef){var ID=iDforColumn(columnDef,opts);var togo;if(!columnDef.components){return{ID:ID,valuebinding:opts.EL}}else{if(typeof columnDef.components==="function"){togo=columnDef.components(filteredRow.row,filteredRow.index)}else{togo=columnDef.components}}togo=expandPaths({},togo,opts);togo.ID=ID;return togo});return tree}function fetchModel(overallThat){return fluid.get(overallThat.options.dataModel,overallThat.options.dataOffset)}function bigHeaderForKey(key,opts){var id=opts.options.renderOptions.idMap["header:"+key];var smallHeader=fluid.jById(id);if(smallHeader.length===0){return null}var headerSortStylisticOffset=opts.overallOptions.selectors.headerSortStylisticOffset;var bigHeader=fluid.findAncestor(smallHeader,function(element){return $(element).is(headerSortStylisticOffset)});return bigHeader}function setSortHeaderClass(styles,element,sort){element=$(element);element.removeClass(styles.ascendingHeader);element.removeClass(styles.descendingHeader);if(sort!==0){element.addClass(sort===1?styles.ascendingHeader:styles.descendingHeader);element.attr("aria-sort",sort===1?"ascending":"descending")}}function isCurrentColumnSortable(columnDefs,model){var columnDef=model.sortKey?fluid.pager.findColumnDef(columnDefs,model.sortKey):null;return columnDef?columnDef.sortable:false}function setModelSortHeaderClass(newModel,opts){var styles=opts.overallOptions.styles;var sort=isCurrentColumnSortable(opts.columnDefs,newModel)?newModel.sortDir:0;setSortHeaderClass(styles,bigHeaderForKey(newModel.sortKey,opts),sort)}function fireModelChange(that,newModel,forceUpdate){computePageCount(newModel);if(newModel.pageIndex>=newModel.pageCount){newModel.pageIndex=newModel.pageCount-1}if(forceUpdate||newModel.pageIndex!==that.model.pageIndex||newModel.pageSize!==that.model.pageSize||newModel.sortKey!==that.model.sortKey||newModel.sortDir!==that.model.sortDir){var sorted=isCurrentColumnSortable(getColumnDefs(that),newModel)?that.options.sorter(that,newModel):null;that.permutation=sorted;that.events.onModelChange.fire(newModel,that.model,that);fluid.model.copyModel(that.model,newModel)}}function generateColumnClick(overallThat,columnDef,opts){return function(){if(columnDef.sortable===true){var model=overallThat.model;var newModel=fluid.copy(model);var styles=overallThat.options.styles;var oldKey=model.sortKey;if(columnDef.key!==model.sortKey){newModel.sortKey=columnDef.key;newModel.sortDir=1;var oldBig=bigHeaderForKey(oldKey,opts);if(oldBig){setSortHeaderClass(styles,oldBig,0)}}else{if(newModel.sortKey===columnDef.key){newModel.sortDir=-1*newModel.sortDir}else{return false}}newModel.pageIndex=0;fireModelChange(overallThat,newModel,true);setModelSortHeaderClass(newModel,opts)}return false}}function fetchHeaderDecorators(decorators,columnDef){return decorators[columnDef.sortable?"sortableHeader":"unsortableHeader"]}function generateHeader(overallThat,newModel,columnDefs,opts){var sortableColumnTxt=opts.options.strings.sortableColumnText;if(newModel.sortDir===1){sortableColumnTxt=opts.options.strings.sortableColumnTextAsc}else{if(newModel.sortDir===-1){sortableColumnTxt=opts.options.strings.sortableColumnTextDesc}}return{children:fluid.transform(columnDefs,function(columnDef){return{ID:iDforColumn(columnDef,opts),value:columnDef.label,decorators:[{jQuery:["click",generateColumnClick(overallThat,columnDef,opts)]},{identify:"header:"+columnDef.key},{type:"attrs",attributes:{title:(columnDef.key===newModel.sortKey)?sortableColumnTxt:opts.options.strings.sortableColumnText}}].concat(fetchHeaderDecorators(opts.overallOptions.decorators,columnDef))}})}}fluid.pager.selfRender=function(overallThat,inOptions){var that=fluid.initView("fluid.pager.selfRender",overallThat.container,inOptions);var options=that.options;options.renderOptions.idMap=options.renderOptions.idMap||{};var idMap=options.renderOptions.idMap;var root=that.locate("root");var template=fluid.selfRender(root,{},options.renderOptions);root.addClass(options.styles.root);var columnDefs=getColumnDefs(overallThat);var expOpts={options:options,columnDefs:columnDefs,overallOptions:overallThat.options,dataModel:overallThat.options.dataModel,idMap:idMap};var directModel=fetchModel(overallThat);return{returnedOptions:{listeners:{onModelChange:function(newModel,oldModel){var filtered=overallThat.options.modelFilter(directModel,newModel,overallThat.permutation);var tree=fluid.transform(filtered,function(filteredRow){getRoots(expOpts,overallThat,filteredRow.index);if(columnDefs==="explode"){return fluid.explode(filteredRow.row,expOpts.longRoot)}else{if(columnDefs.length){return expandColumnDefs(filteredRow,expOpts)}}});var fullTree={};fullTree[options.row]=tree;if(typeof (columnDefs)==="object"){fullTree[options.header]=generateHeader(overallThat,newModel,columnDefs,expOpts)}options.renderOptions=options.renderOptions||{};options.renderOptions.model=expOpts.dataModel;fluid.reRender(template,root,fullTree,options.renderOptions);overallThat.events.afterRender.fire(overallThat);setModelSortHeaderClass(newModel,expOpts)}}}}};fluid.defaults("fluid.pager.selfRender",{selectors:{root:".flc-pager-body-template"},styles:{root:"fl-pager"},keyStrategy:"id",keyPrefix:"",row:"row:",header:"header:",strings:{sortableColumnText:"Select to sort",sortableColumnTextDesc:"Select to sort in ascending, currently in descending order.",sortableColumnTextAsc:"Select to sort in descending, currently in ascending order."},renderOptions:{}});fluid.pager.summaryAria=function(element){element.attr({"aria-relevant":"all","aria-atomic":"false","aria-live":"assertive",role:"status"})};fluid.pager.summary=function(dom,options){var node=dom.locate("summary");fluid.pager.summaryAria(node);return{returnedOptions:{listeners:{onModelChange:function(newModel,oldModel){var text=fluid.stringTemplate(options.message,{first:newModel.pageIndex*newModel.pageSize+1,last:fluid.pager.computePageLimit(newModel),total:newModel.totalRange,currentPage:newModel.pageIndex+1});if(node.length>0){node.text(text)}}}}}};fluid.pager.directPageSize=function(that){var node=that.locate("pageSize");if(node.length>0){that.events.onModelChange.addListener(function(newModel,oldModel){if(node.val()!==newModel.pageSize){node.val(newModel.pageSize)}});node.change(function(){that.events.initiatePageSizeChange.fire(node.val())})}};fluid.pager.rangeAnnotator=function(that,options){var roots={};that.events.onRenderPageLinks.addListener(function(tree,newModel){var column=that.options.annotateColumnRange;var dataModel=that.options.dataModel;var columnDefs=getColumnDefs(that);if(!column||!dataModel||!columnDefs){return }var columnDef=fluid.pager.findColumnDef(columnDefs,column);function fetchValue(index){index=that.permutation?that.permutation[index]:index;return fluid.pager.fetchValue(that,dataModel,index,columnDef.valuebinding,roots)}var tModel={};fluid.model.copyModel(tModel,newModel);fluid.transform(tree,function(cell){if(cell.ID==="page-link:link"){var page=cell.pageIndex;var start=page*tModel.pageSize;tModel.pageIndex=page;var limit=fluid.pager.computePageLimit(tModel);var iValue=fetchValue(start);var lValue=fetchValue(limit-1);var tooltipOpts=fluid.copy(that.options.tooltip.options)||{};if(!tooltipOpts.content){tooltipOpts.content=function(){return fluid.stringTemplate(that.options.markup.rangeAnnotation,{first:iValue,last:lValue})}}if(!cell.current){var decorators=[{type:"fluid",func:that.options.tooltip.type,options:tooltipOpts},{identify:page}];cell.decorators=cell.decorators.concat(decorators)}}})})};fluid.pagerImpl=function(container,options){var that=fluid.initView("fluid.pager",container,options);that.container.attr("role","application");that.events.initiatePageChange.addListener(function(arg){var newModel=fluid.copy(that.model);if(arg.relativePage!==undefined){newModel.pageIndex=that.model.pageIndex+arg.relativePage}else{newModel.pageIndex=arg.pageIndex}if(newModel.pageIndex===undefined||newModel.pageIndex<0){newModel.pageIndex=0}fireModelChange(that,newModel,arg.forceUpdate)});that.events.initiatePageSizeChange.addListener(function(arg){var newModel=fluid.copy(that.model);newModel.pageSize=arg;fireModelChange(that,newModel)});var pagerBarElement=that.locate("pagerBar");if(pagerBarElement.length>0){that.pagerBar=fluid.initSubcomponent(that,"pagerBar",[that.events,pagerBarElement,fluid.COMPONENT_OPTIONS,that.options.strings])}var pagerBarSecondaryElement=that.locate("pagerBarSecondary");if(pagerBarSecondaryElement.length>0){that.pagerBarSecondary=fluid.initSubcomponent(that,"pagerBar",[that.events,pagerBarSecondaryElement,fluid.COMPONENT_OPTIONS,that.options.strings])}that.bodyRenderer=fluid.initSubcomponent(that,"bodyRenderer",[that,fluid.COMPONENT_OPTIONS]);that.summary=fluid.initSubcomponent(that,"summary",[that.dom,fluid.COMPONENT_OPTIONS]);that.pageSize=fluid.initSubcomponent(that,"pageSize",[that]);that.rangeAnnotator=fluid.initSubcomponent(that,"rangeAnnotator",[that,fluid.COMPONENT_OPTIONS]);that.model=fluid.copy(that.options.model);var dataModel=fetchModel(that);if(dataModel){that.model.totalRange=dataModel.length}if(that.model.totalRange===undefined){if(!that.pagerBar){fluid.fail("Error in Pager configuration - cannot determine total range,  since not configured in model.totalRange and no PagerBar is configured")}that.model=that.pagerBar.pageList.defaultModel}that.applier=fluid.makeChangeApplier(that.model);that.events.initiatePageChange.fire({pageIndex:that.model.pageIndex?that.model.pageIndex:0,forceUpdate:true});return that};fluid.defaults("fluid.pager",{mergePolicy:{dataModel:"preserve",model:"preserve"},pagerBar:{type:"fluid.pager.pagerBar"},summary:{type:"fluid.pager.summary",options:{message:"Viewing page %currentPage. Showing records %first - %last of %total items."}},pageSize:{type:"fluid.pager.directPageSize"},modelFilter:fluid.pager.directModelFilter,sorter:fluid.pager.basicSorter,bodyRenderer:{type:"fluid.pager.selfRender"},model:{pageIndex:undefined,pageSize:10,totalRange:undefined},dataModel:undefined,dataOffset:"",columnDefs:[],annotateColumnRange:undefined,tooltip:{type:"fluid.tooltip"},rangeAnnotator:{type:"fluid.pager.rangeAnnotator"},selectors:{pagerBar:".flc-pager-top",pagerBarSecondary:".flc-pager-bottom",summary:".flc-pager-summary",pageSize:".flc-pager-page-size",headerSortStylisticOffset:".flc-pager-sort-header"},styles:{ascendingHeader:"fl-pager-asc",descendingHeader:"fl-pager-desc"},decorators:{sortableHeader:[],unsortableHeader:[]},strings:{last:" (last)"},events:{initiatePageChange:null,initiatePageSizeChange:null,onModelChange:null,onRenderPageLinks:null,afterRender:null},markup:{rangeAnnotation:"<b> %first </b><br/>&mdash;<br/><b> %last </b>"}})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){var animateDisplay=function(elm,animation,defaultAnimation){animation=(animation)?animation:defaultAnimation;elm.animate(animation.params,animation.duration,animation.callback)};var animateProgress=function(elm,width,speed){elm.queue("fx",[]);elm.animate({width:width,queue:false},speed)};var showProgress=function(that,animation){if(animation===false){that.displayElement.show()}else{animateDisplay(that.displayElement,animation,that.options.showAnimation)}};var hideProgress=function(that,delay,animation){delay=(delay===null||isNaN(delay))?that.options.delay:delay;if(delay){var timeOut=setTimeout(function(){hideProgress(that,0,animation)},delay)}else{if(animation===false){that.displayElement.hide()}else{animateDisplay(that.displayElement,animation,that.options.hideAnimation)}}};var updateWidth=function(that,newWidth,dontAnimate){dontAnimate=dontAnimate||false;var currWidth=that.indicator.width();var direction=that.options.animate;if((newWidth>currWidth)&&(direction==="both"||direction==="forward")&&!dontAnimate){animateProgress(that.indicator,newWidth,that.options.speed)}else{if((newWidth<currWidth)&&(direction==="both"||direction==="backward")&&!dontAnimate){animateProgress(that.indicator,newWidth,that.options.speed)}else{that.indicator.width(newWidth)}}};var percentToPixels=function(that,percent){return Math.round((Math.min(percent,100)*that.progressBar.innerWidth())/100)};var refreshRelativeWidth=function(that){var pixels=Math.max(percentToPixels(that,parseFloat(that.storedPercent)),that.options.minWidth);updateWidth(that,pixels,true)};var initARIA=function(ariaElement,ariaBusyText){ariaElement.attr("role","progressbar");ariaElement.attr("aria-valuemin","0");ariaElement.attr("aria-valuemax","100");ariaElement.attr("aria-valuenow","0");if(ariaBusyText){ariaElement.attr("aria-valuetext","")}ariaElement.attr("aria-busy","false")};var updateARIA=function(that,percent){var str=that.options.strings;var busy=percent<100&&percent>0;that.ariaElement.attr("aria-busy",busy);that.ariaElement.attr("aria-valuenow",percent);if(str.ariaBusyText){if(busy){var busyString=fluid.stringTemplate(str.ariaBusyText,{percentComplete:percent});that.ariaElement.attr("aria-valuetext",busyString)}else{if(percent===100){that.ariaElement.attr("aria-valuetext",str.ariaDoneText)}}}};var updateText=function(label,value){label.html(value)};var repositionIndicator=function(that){that.indicator.css("top",that.progressBar.position().top).css("left",0).height(that.progressBar.height());refreshRelativeWidth(that)};var updateProgress=function(that,percent,labelText,animationForShow){showProgress(that,animationForShow);if(percent!==null){that.storedPercent=percent;var pixels=Math.max(percentToPixels(that,parseFloat(percent)),that.options.minWidth);updateWidth(that,pixels)}if(labelText!==null){updateText(that.label,labelText)}if(that.ariaElement){updateARIA(that,percent)}};var setupProgress=function(that){that.displayElement=that.locate("displayElement");if(that.options.initiallyHidden){that.displayElement.hide()}that.progressBar=that.locate("progressBar");that.label=that.locate("label");that.indicator=that.locate("indicator");that.ariaElement=that.locate("ariaElement");that.indicator.width(that.options.minWidth);that.storedPercent=0;if(that.ariaElement){initARIA(that.ariaElement,that.options.strings.ariaBusyText)}if(that.options.hideAnimation.callback){that.events.afterProgressHidden.addListener(that.options.hideAnimation.callback)}that.options.hideAnimation.callback=that.events.afterProgressHidden.fire;if(that.options.showAnimation.callback){that.events.onProgressBegin.addListener(that.options.showAnimation.callback)}that.options.showAnimation.callback=that.events.onProgressBegin.fire};fluid.progress=function(container,options){var that=fluid.initView("fluid.progress",container,options);setupProgress(that);that.show=function(animation){showProgress(that,animation)};that.hide=function(delay,animation){hideProgress(that,delay,animation)};that.update=function(percentage,labelValue,animationForShow){updateProgress(that,percentage,labelValue,animationForShow)};that.refreshView=function(){repositionIndicator(that)};return that};fluid.defaults("fluid.progress",{gradeNames:"fluid.viewComponent",selectors:{displayElement:".flc-progress",progressBar:".flc-progress-bar",indicator:".flc-progress-indicator",label:".flc-progress-label",ariaElement:".flc-progress-bar"},strings:{ariaBusyText:"Progress is %percentComplete percent complete",ariaDoneText:"Progress is complete."},showAnimation:{params:{opacity:"show"},duration:"slow",callback:null},hideAnimation:{params:{opacity:"hide"},duration:"slow",callback:null},events:{onProgressBegin:null,afterProgressHidden:null},minWidth:5,delay:0,speed:200,animate:"forward",initiallyHidden:true,updatePosition:false})})(jQuery,fluid_1_4);(function($,undefined){$.widget("ui.draggable",$.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")){return }this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this},_mouseCapture:function(event){var o=this.options;if(this.helper||o.disabled||$(event.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(event);if(!this.handle){return false}return true},_mouseStart:function(event){var o=this.options;this.helper=this._createHelper(event);this._cacheHelperProportions();if($.ui.ddmanager){$.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};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;(o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt));if(o.containment){this._setContainment()}if(this._trigger("start",event)===false){this._clear();return false}this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(event,true);return true},_mouseDrag:function(event,noPropagation){this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===false){this._mouseUp({});return false}this.position=ui.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if($.ui.ddmanager){$.ui.ddmanager.drag(this,event)}return false},_mouseStop:function(event){var dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour){dropped=$.ui.ddmanager.drop(this,event)}if(this.dropped){dropped=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original"){return false}if((this.options.revert=="invalid"&&!dropped)||(this.options.revert=="valid"&&dropped)||this.options.revert===true||($.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped))){var self=this;$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(self._trigger("stop",event)!==false){self._clear()}})}else{if(this._trigger("stop",event)!==false){this._clear()}}return false},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp({})}else{this._clear()}return this},_getHandle:function(event){var handle=!this.options.handle||!$(this.options.handle,this.element).length?true:false;$(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==event.target){handle=true}});return handle},_createHelper:function(event){var o=this.options;var helper=$.isFunction(o.helper)?$(o.helper.apply(this.element[0],[event])):(o.helper=="clone"?this.element.clone():this.element);if(!helper.parents("body").length){helper.appendTo((o.appendTo=="parent"?this.element[0].parentNode:o.appendTo))}if(helper[0]!=this.element[0]&&!(/(fixed|absolute)/).test(helper.css("position"))){helper.css("position","absolute")}return helper},_adjustOffsetFromHelper:function(obj){if(typeof obj=="string"){obj=obj.split(" ")}if($.isArray(obj)){obj={left:+obj[0],top:+obj[1]||0}}if("left" in obj){this.offset.click.left=obj.left+this.margins.left}if("right" in obj){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left}if("top" in obj){this.offset.click.top=obj.top+this.margins.top}if("bottom" in obj){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var po=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&$.ui.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&$.browser.msie)){po={top:0,left:0}}return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var p=this.element.position();return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:p.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 o=this.options;if(o.containment=="parent"){o.containment=this.helper[0].parentNode}if(o.containment=="document"||o.containment=="window"){this.containment=[(o.containment=="document"?0:$(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(o.containment=="document"?0:$(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(o.containment=="document"?0:$(window).scrollLeft())+$(o.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(o.containment=="document"?0:$(window).scrollTop())+($(o.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(o.containment)&&o.containment.constructor!=Array){var ce=$(o.containment)[0];if(!ce){return }var co=$(o.containment).offset();var over=($(ce).css("overflow")!="hidden");this.containment=[co.left+(parseInt($(ce).css("borderLeftWidth"),10)||0)+(parseInt($(ce).css("paddingLeft"),10)||0),co.top+(parseInt($(ce).css("borderTopWidth"),10)||0)+(parseInt($(ce).css("paddingTop"),10)||0),co.left+(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt($(ce).css("borderLeftWidth"),10)||0)-(parseInt($(ce).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,co.top+(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt($(ce).css("borderTopWidth"),10)||0)-(parseInt($(ce).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom]}else{if(o.containment.constructor==Array){this.containment=o.containment}}},_convertPositionTo:function(d,pos){if(!pos){pos=this.position}var mod=d=="absolute"?1:-1;var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName);return{top:(pos.top+this.offset.relative.top*mod+this.offset.parent.top*mod-($.browser.safari&&$.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(scrollIsRootNode?0:scroll.scrollTop()))*mod)),left:(pos.left+this.offset.relative.left*mod+this.offset.parent.left*mod-($.browser.safari&&$.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())*mod))}},_generatePosition:function(event){var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName);var pageX=event.pageX;var pageY=event.pageY;if(this.originalPosition){if(this.containment){if(event.pageX-this.offset.click.left<this.containment[0]){pageX=this.containment[0]+this.offset.click.left}if(event.pageY-this.offset.click.top<this.containment[1]){pageY=this.containment[1]+this.offset.click.top}if(event.pageX-this.offset.click.left>this.containment[2]){pageX=this.containment[2]+this.offset.click.left}if(event.pageY-this.offset.click.top>this.containment[3]){pageY=this.containment[3]+this.offset.click.top}}if(o.grid){var top=this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1];pageY=this.containment?(!(top-this.offset.click.top<this.containment[1]||top-this.offset.click.top>this.containment[3])?top:(!(top-this.offset.click.top<this.containment[1])?top-o.grid[1]:top+o.grid[1])):top;var left=this.originalPageX+Math.round((pageX-this.originalPageX)/o.grid[0])*o.grid[0];pageX=this.containment?(!(left-this.offset.click.left<this.containment[0]||left-this.offset.click.left>this.containment[2])?left:(!(left-this.offset.click.left<this.containment[0])?left-o.grid[0]:left+o.grid[0])):left}}return{top:(pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+($.browser.safari&&$.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(scrollIsRootNode?0:scroll.scrollTop())))),left:(pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+($.browser.safari&&$.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(type,event,ui){ui=ui||this._uiHash();$.ui.plugin.call(this,type,[event,ui]);if(type=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return $.Widget.prototype._trigger.call(this,type,event,ui)},plugins:{},_uiHash:function(event){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});$.extend($.ui.draggable,{version:"1.8.12"});$.ui.plugin.add("draggable","connectToSortable",{start:function(event,ui){var inst=$(this).data("draggable"),o=inst.options,uiSortable=$.extend({},ui,{item:inst.element});inst.sortables=[];$(o.connectToSortable).each(function(){var sortable=$.data(this,"sortable");if(sortable&&!sortable.options.disabled){inst.sortables.push({instance:sortable,shouldRevert:sortable.options.revert});sortable.refreshPositions();sortable._trigger("activate",event,uiSortable)}})},stop:function(event,ui){var inst=$(this).data("draggable"),uiSortable=$.extend({},ui,{item:inst.element});$.each(inst.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;inst.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(event);this.instance.options.helper=this.instance.options._helper;if(inst.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",event,uiSortable)}})},drag:function(event,ui){var inst=$(this).data("draggable"),self=this;var checkPos=function(o){var dyClick=this.offset.click.top,dxClick=this.offset.click.left;var helperTop=this.positionAbs.top,helperLeft=this.positionAbs.left;var itemHeight=o.height,itemWidth=o.width;var itemTop=o.top,itemLeft=o.left;return $.ui.isOver(helperTop+dyClick,helperLeft+dxClick,itemTop,itemLeft,itemHeight,itemWidth)};$.each(inst.sortables,function(i){this.instance.positionAbs=inst.positionAbs;this.instance.helperProportions=inst.helperProportions;this.instance.offset.click=inst.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=$(self).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return ui.helper[0]};event.target=this.instance.currentItem[0];this.instance._mouseCapture(event,true);this.instance._mouseStart(event,true,true);this.instance.offset.click.top=inst.offset.click.top;this.instance.offset.click.left=inst.offset.click.left;this.instance.offset.parent.left-=inst.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=inst.offset.parent.top-this.instance.offset.parent.top;inst._trigger("toSortable",event);inst.dropped=this.instance.element;inst.currentItem=inst.element;this.instance.fromOutside=inst}if(this.instance.currentItem){this.instance._mouseDrag(event)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",event,this.instance._uiHash(this.instance));this.instance._mouseStop(event,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}inst._trigger("fromSortable",event);inst.dropped=false}}})}});$.ui.plugin.add("draggable","cursor",{start:function(event,ui){var t=$("body"),o=$(this).data("draggable").options;if(t.css("cursor")){o._cursor=t.css("cursor")}t.css("cursor",o.cursor)},stop:function(event,ui){var o=$(this).data("draggable").options;if(o._cursor){$("body").css("cursor",o._cursor)}}});$.ui.plugin.add("draggable","iframeFix",{start:function(event,ui){var o=$(this).data("draggable").options;$(o.iframeFix===true?"iframe":o.iframeFix).each(function(){$('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css($(this).offset()).appendTo("body")})},stop:function(event,ui){$("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});$.ui.plugin.add("draggable","opacity",{start:function(event,ui){var t=$(ui.helper),o=$(this).data("draggable").options;if(t.css("opacity")){o._opacity=t.css("opacity")}t.css("opacity",o.opacity)},stop:function(event,ui){var o=$(this).data("draggable").options;if(o._opacity){$(ui.helper).css("opacity",o._opacity)}}});$.ui.plugin.add("draggable","scroll",{start:function(event,ui){var i=$(this).data("draggable");if(i.scrollParent[0]!=document&&i.scrollParent[0].tagName!="HTML"){i.overflowOffset=i.scrollParent.offset()}},drag:function(event,ui){var i=$(this).data("draggable"),o=i.options,scrolled=false;if(i.scrollParent[0]!=document&&i.scrollParent[0].tagName!="HTML"){if(!o.axis||o.axis!="x"){if((i.overflowOffset.top+i.scrollParent[0].offsetHeight)-event.pageY<o.scrollSensitivity){i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop+o.scrollSpeed}else{if(event.pageY-i.overflowOffset.top<o.scrollSensitivity){i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop-o.scrollSpeed}}}if(!o.axis||o.axis!="y"){if((i.overflowOffset.left+i.scrollParent[0].offsetWidth)-event.pageX<o.scrollSensitivity){i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft+o.scrollSpeed}else{if(event.pageX-i.overflowOffset.left<o.scrollSensitivity){i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft-o.scrollSpeed}}}}else{if(!o.axis||o.axis!="x"){if(event.pageY-$(document).scrollTop()<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()-o.scrollSpeed)}else{if($(window).height()-(event.pageY-$(document).scrollTop())<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()+o.scrollSpeed)}}}if(!o.axis||o.axis!="y"){if(event.pageX-$(document).scrollLeft()<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed)}else{if($(window).width()-(event.pageX-$(document).scrollLeft())<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed)}}}}if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(i,event)}}});$.ui.plugin.add("draggable","snap",{start:function(event,ui){var i=$(this).data("draggable"),o=i.options;i.snapElements=[];$(o.snap.constructor!=String?(o.snap.items||":data(draggable)"):o.snap).each(function(){var $t=$(this);var $o=$t.offset();if(this!=i.element[0]){i.snapElements.push({item:this,width:$t.outerWidth(),height:$t.outerHeight(),top:$o.top,left:$o.left})}})},drag:function(event,ui){var inst=$(this).data("draggable"),o=inst.options;var d=o.snapTolerance;var x1=ui.offset.left,x2=x1+inst.helperProportions.width,y1=ui.offset.top,y2=y1+inst.helperProportions.height;for(var i=inst.snapElements.length-1;i>=0;i--){var l=inst.snapElements[i].left,r=l+inst.snapElements[i].width,t=inst.snapElements[i].top,b=t+inst.snapElements[i].height;if(!((l-d<x1&&x1<r+d&&t-d<y1&&y1<b+d)||(l-d<x1&&x1<r+d&&t-d<y2&&y2<b+d)||(l-d<x2&&x2<r+d&&t-d<y1&&y1<b+d)||(l-d<x2&&x2<r+d&&t-d<y2&&y2<b+d))){if(inst.snapElements[i].snapping){(inst.options.snap.release&&inst.options.snap.release.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})))}inst.snapElements[i].snapping=false;continue}if(o.snapMode!="inner"){var ts=Math.abs(t-y2)<=d;var bs=Math.abs(b-y1)<=d;var ls=Math.abs(l-x2)<=d;var rs=Math.abs(r-x1)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top-inst.margins.top}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top-inst.margins.top}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left-inst.margins.left}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left-inst.margins.left}}var first=(ts||bs||ls||rs);if(o.snapMode!="outer"){var ts=Math.abs(t-y1)<=d;var bs=Math.abs(b-y2)<=d;var ls=Math.abs(l-x1)<=d;var rs=Math.abs(r-x2)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top-inst.margins.top}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top-inst.margins.top}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left-inst.margins.left}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left-inst.margins.left}}if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first)){(inst.options.snap.snap&&inst.options.snap.snap.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})))}inst.snapElements[i].snapping=(ts||bs||ls||rs||first)}}});$.ui.plugin.add("draggable","stack",{start:function(event,ui){var o=$(this).data("draggable").options;var group=$.makeArray($(o.stack)).sort(function(a,b){return(parseInt($(a).css("zIndex"),10)||0)-(parseInt($(b).css("zIndex"),10)||0)});if(!group.length){return }var min=parseInt(group[0].style.zIndex)||0;$(group).each(function(i){this.style.zIndex=min+i});this[0].style.zIndex=min+group.length}});$.ui.plugin.add("draggable","zIndex",{start:function(event,ui){var t=$(ui.helper),o=$(this).data("draggable").options;if(t.css("zIndex")){o._zIndex=t.css("zIndex")}t.css("zIndex",o.zIndex)},stop:function(event,ui){var o=$(this).data("draggable").options;if(o._zIndex){$(ui.helper).css("zIndex",o._zIndex)}}})})(jQuery);(function($,undefined){var uiDialogClasses="ui-dialog ui-widget ui-widget-content ui-corner-all ",sizeRelatedOptions={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},resizableRelatedOptions={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},attrFn=$.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};$.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(pos){var topOffset=$(this).css(pos).offset().top;if(topOffset<0){$(this).css("top",pos.top-topOffset)}}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string"){this.originalTitle=""}this.options.title=this.options.title||this.originalTitle;var self=this,options=self.options,title=options.title||"&#160;",titleId=$.ui.dialog.getTitleId(self.element),uiDialog=(self.uiDialog=$("<div></div>")).appendTo(document.body).hide().addClass(uiDialogClasses+options.dialogClass).css({zIndex:options.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(event){if(options.closeOnEscape&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){self.close(event);event.preventDefault()}}).attr({role:"dialog","aria-labelledby":titleId}).mousedown(function(event){self.moveToTop(false,event)}),uiDialogContent=self.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(uiDialog),uiDialogTitlebar=(self.uiDialogTitlebar=$("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(uiDialog),uiDialogTitlebarClose=$('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){uiDialogTitlebarClose.addClass("ui-state-hover")},function(){uiDialogTitlebarClose.removeClass("ui-state-hover")}).focus(function(){uiDialogTitlebarClose.addClass("ui-state-focus")}).blur(function(){uiDialogTitlebarClose.removeClass("ui-state-focus")}).click(function(event){self.close(event);return false}).appendTo(uiDialogTitlebar),uiDialogTitlebarCloseText=(self.uiDialogTitlebarCloseText=$("<span></span>")).addClass("ui-icon ui-icon-closethick").text(options.closeText).appendTo(uiDialogTitlebarClose),uiDialogTitle=$("<span></span>").addClass("ui-dialog-title").attr("id",titleId).html(title).prependTo(uiDialogTitlebar);if($.isFunction(options.beforeclose)&&!$.isFunction(options.beforeClose)){options.beforeClose=options.beforeclose}uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();if(options.draggable&&$.fn.draggable){self._makeDraggable()}if(options.resizable&&$.fn.resizable){self._makeResizable()}self._createButtons(options.buttons);self._isOpen=false;if($.fn.bgiframe){uiDialog.bgiframe()}},_init:function(){if(this.options.autoOpen){this.open()}},destroy:function(){var self=this;if(self.overlay){self.overlay.destroy()}self.uiDialog.hide();self.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");self.uiDialog.remove();if(self.originalTitle){self.element.attr("title",self.originalTitle)}return self},widget:function(){return this.uiDialog},close:function(event){var self=this,maxZ,thisZ;if(false===self._trigger("beforeClose",event)){return }if(self.overlay){self.overlay.destroy()}self.uiDialog.unbind("keypress.ui-dialog");self._isOpen=false;if(self.options.hide){self.uiDialog.hide(self.options.hide,function(){self._trigger("close",event)})}else{self.uiDialog.hide();self._trigger("close",event)}$.ui.dialog.overlay.resize();if(self.options.modal){maxZ=0;$(".ui-dialog").each(function(){if(this!==self.uiDialog[0]){thisZ=$(this).css("z-index");if(!isNaN(thisZ)){maxZ=Math.max(maxZ,thisZ)}}});$.ui.dialog.maxZ=maxZ}return self},isOpen:function(){return this._isOpen},moveToTop:function(force,event){var self=this,options=self.options,saveScroll;if((options.modal&&!force)||(!options.stack&&!options.modal)){return self._trigger("focus",event)}if(options.zIndex>$.ui.dialog.maxZ){$.ui.dialog.maxZ=options.zIndex}if(self.overlay){$.ui.dialog.maxZ+=1;self.overlay.$el.css("z-index",$.ui.dialog.overlay.maxZ=$.ui.dialog.maxZ)}saveScroll={scrollTop:self.element.attr("scrollTop"),scrollLeft:self.element.attr("scrollLeft")};$.ui.dialog.maxZ+=1;self.uiDialog.css("z-index",$.ui.dialog.maxZ);self.element.attr(saveScroll);self._trigger("focus",event);return self},open:function(){if(this._isOpen){return }var self=this,options=self.options,uiDialog=self.uiDialog;self.overlay=options.modal?new $.ui.dialog.overlay(self):null;self._size();self._position(options.position);uiDialog.show(options.show);self.moveToTop(true);if(options.modal){uiDialog.bind("keypress.ui-dialog",function(event){if(event.keyCode!==$.ui.keyCode.TAB){return }var tabbables=$(":tabbable",this),first=tabbables.filter(":first"),last=tabbables.filter(":last");if(event.target===last[0]&&!event.shiftKey){first.focus(1);return false}else{if(event.target===first[0]&&event.shiftKey){last.focus(1);return false}}})}$(self.element.find(":tabbable").get().concat(uiDialog.find(".ui-dialog-buttonpane :tabbable").get().concat(uiDialog.get()))).eq(0).focus();self._isOpen=true;self._trigger("open");return self},_createButtons:function(buttons){var self=this,hasButtons=false,uiDialogButtonPane=$("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),uiButtonSet=$("<div></div>").addClass("ui-dialog-buttonset").appendTo(uiDialogButtonPane);self.uiDialog.find(".ui-dialog-buttonpane").remove();if(typeof buttons==="object"&&buttons!==null){$.each(buttons,function(){return !(hasButtons=true)})}if(hasButtons){$.each(buttons,function(name,props){props=$.isFunction(props)?{click:props,text:name}:props;var button=$('<button type="button"></button>').click(function(){props.click.apply(self.element[0],arguments)}).appendTo(uiButtonSet);$.each(props,function(key,value){if(key==="click"){return }if(key in attrFn){button[key](value)}else{button.attr(key,value)}});if($.fn.button){button.button()}});uiDialogButtonPane.appendTo(self.uiDialog)}},_makeDraggable:function(){var self=this,options=self.options,doc=$(document),heightBeforeDrag;function filteredUi(ui){return{position:ui.position,offset:ui.offset}}self.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(event,ui){heightBeforeDrag=options.height==="auto"?"auto":$(this).height();$(this).height($(this).height()).addClass("ui-dialog-dragging");self._trigger("dragStart",event,filteredUi(ui))},drag:function(event,ui){self._trigger("drag",event,filteredUi(ui))},stop:function(event,ui){options.position=[ui.position.left-doc.scrollLeft(),ui.position.top-doc.scrollTop()];$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);self._trigger("dragStop",event,filteredUi(ui));$.ui.dialog.overlay.resize()}})},_makeResizable:function(handles){handles=(handles===undefined?this.options.resizable:handles);var self=this,options=self.options,position=self.uiDialog.css("position"),resizeHandles=(typeof handles==="string"?handles:"n,e,s,w,se,sw,ne,nw");function filteredUi(ui){return{originalPosition:ui.originalPosition,originalSize:ui.originalSize,position:ui.position,size:ui.size}}self.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:self.element,maxWidth:options.maxWidth,maxHeight:options.maxHeight,minWidth:options.minWidth,minHeight:self._minHeight(),handles:resizeHandles,start:function(event,ui){$(this).addClass("ui-dialog-resizing");self._trigger("resizeStart",event,filteredUi(ui))},resize:function(event,ui){self._trigger("resize",event,filteredUi(ui))},stop:function(event,ui){$(this).removeClass("ui-dialog-resizing");options.height=$(this).height();options.width=$(this).width();self._trigger("resizeStop",event,filteredUi(ui));$.ui.dialog.overlay.resize()}}).css("position",position).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var options=this.options;if(options.height==="auto"){return options.minHeight}else{return Math.min(options.minHeight,options.height)}},_position:function(position){var myAt=[],offset=[0,0],isVisible;if(position){if(typeof position==="string"||(typeof position==="object"&&"0" in position)){myAt=position.split?position.split(" "):[position[0],position[1]];if(myAt.length===1){myAt[1]=myAt[0]}$.each(["left","top"],function(i,offsetPosition){if(+myAt[i]===myAt[i]){offset[i]=myAt[i];myAt[i]=offsetPosition}});position={my:myAt.join(" "),at:myAt.join(" "),offset:offset.join(" ")}}position=$.extend({},$.ui.dialog.prototype.options.position,position)}else{position=$.ui.dialog.prototype.options.position}isVisible=this.uiDialog.is(":visible");if(!isVisible){this.uiDialog.show()}this.uiDialog.css({top:0,left:0}).position($.extend({of:window},position));if(!isVisible){this.uiDialog.hide()}},_setOptions:function(options){var self=this,resizableOptions={},resize=false;$.each(options,function(key,value){self._setOption(key,value);if(key in sizeRelatedOptions){resize=true}if(key in resizableRelatedOptions){resizableOptions[key]=value}});if(resize){this._size()}if(this.uiDialog.is(":data(resizable)")){this.uiDialog.resizable("option",resizableOptions)}},_setOption:function(key,value){var self=this,uiDialog=self.uiDialog;switch(key){case"beforeclose":key="beforeClose";break;case"buttons":self._createButtons(value);break;case"closeText":self.uiDialogTitlebarCloseText.text(""+value);break;case"dialogClass":uiDialog.removeClass(self.options.dialogClass).addClass(uiDialogClasses+value);break;case"disabled":if(value){uiDialog.addClass("ui-dialog-disabled")}else{uiDialog.removeClass("ui-dialog-disabled")}break;case"draggable":var isDraggable=uiDialog.is(":data(draggable)");if(isDraggable&&!value){uiDialog.draggable("destroy")}if(!isDraggable&&value){self._makeDraggable()}break;case"position":self._position(value);break;case"resizable":var isResizable=uiDialog.is(":data(resizable)");if(isResizable&&!value){uiDialog.resizable("destroy")}if(isResizable&&typeof value==="string"){uiDialog.resizable("option","handles",value)}if(!isResizable&&value!==false){self._makeResizable(value)}break;case"title":$(".ui-dialog-title",self.uiDialogTitlebar).html(""+(value||"&#160;"));break}$.Widget.prototype._setOption.apply(self,arguments)},_size:function(){var options=this.options,nonContentHeight,minContentHeight,isVisible=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(options.minWidth>options.width){options.width=options.minWidth}nonContentHeight=this.uiDialog.css({height:"auto",width:options.width}).height();minContentHeight=Math.max(0,options.minHeight-nonContentHeight);if(options.height==="auto"){if($.support.minHeight){this.element.css({minHeight:minContentHeight,height:"auto"})}else{this.uiDialog.show();var autoHeight=this.element.css("height","auto").height();if(!isVisible){this.uiDialog.hide()}this.element.height(Math.max(autoHeight,minContentHeight))}}else{this.element.height(Math.max(options.height-nonContentHeight,0))}if(this.uiDialog.is(":data(resizable)")){this.uiDialog.resizable("option","minHeight",this._minHeight())}}});$.extend($.ui.dialog,{version:"1.8.12",uuid:0,maxZ:0,getTitleId:function($el){var id=$el.attr("id");if(!id){this.uuid+=1;id=this.uuid}return"ui-dialog-title-"+id},overlay:function(dialog){this.$el=$.ui.dialog.overlay.create(dialog)}});$.extend($.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:$.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(event){return event+".dialog-overlay"}).join(" "),create:function(dialog){if(this.instances.length===0){setTimeout(function(){if($.ui.dialog.overlay.instances.length){$(document).bind($.ui.dialog.overlay.events,function(event){if($(event.target).zIndex()<$.ui.dialog.overlay.maxZ){return false}})}},1);$(document).bind("keydown.dialog-overlay",function(event){if(dialog.options.closeOnEscape&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){dialog.close(event);event.preventDefault()}});$(window).bind("resize.dialog-overlay",$.ui.dialog.overlay.resize)}var $el=(this.oldInstances.pop()||$("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});if($.fn.bgiframe){$el.bgiframe()}this.instances.push($el);return $el},destroy:function($el){var indexOf=$.inArray($el,this.instances);if(indexOf!=-1){this.oldInstances.push(this.instances.splice(indexOf,1)[0])}if(this.instances.length===0){$([document,window]).unbind(".dialog-overlay")}$el.remove();var maxZ=0;$.each(this.instances,function(){maxZ=Math.max(maxZ,this.css("z-index"))});this.maxZ=maxZ},height:function(){var scrollHeight,offsetHeight;if($.browser.msie&&$.browser.version<7){scrollHeight=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);offsetHeight=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(scrollHeight<offsetHeight){return $(window).height()+"px"}else{return scrollHeight+"px"}}else{return $(document).height()+"px"}},width:function(){var scrollWidth,offsetWidth;if($.browser.msie&&$.browser.version<7){scrollWidth=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);offsetWidth=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(scrollWidth<offsetWidth){return $(window).width()+"px"}else{return scrollWidth+"px"}}else{return $(document).width()+"px"}},resize:function(){var $overlays=$([]);$.each($.ui.dialog.overlay.instances,function(){$overlays=$overlays.add(this)});$overlays.css({width:0,height:0}).css({width:$.ui.dialog.overlay.width(),height:$.ui.dialog.overlay.height()})}});$.extend($.ui.dialog.overlay.prototype,{destroy:function(){$.ui.dialog.overlay.destroy(this.$el)}})}(jQuery));(function($,undefined){var numPages=5;$.widget("ui.slider",$.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 self=this,o=this.options;this._keySliding=false;this._mouseSliding=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");if(o.disabled){this.element.addClass("ui-slider-disabled ui-disabled")}this.range=$([]);if(o.range){if(o.range===true){this.range=$("<div></div>");if(!o.values){o.values=[this._valueMin(),this._valueMin()]}if(o.values.length&&o.values.length!==2){o.values=[o.values[0],o.values[0]]}}else{this.range=$("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(o.range==="min"||o.range==="max"){this.range.addClass("ui-slider-range-"+o.range)}this.range.addClass("ui-widget-header")}if($(".ui-slider-handle",this.element).length===0){$("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle")}if(o.values&&o.values.length){while($(".ui-slider-handle",this.element).length<o.values.length){$("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle")}}this.handles=$(".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(event){event.preventDefault()}).hover(function(){if(!o.disabled){$(this).addClass("ui-state-hover")}},function(){$(this).removeClass("ui-state-hover")}).focus(function(){if(!o.disabled){$(".ui-slider .ui-state-focus").removeClass("ui-state-focus");$(this).addClass("ui-state-focus")}else{$(this).blur()}}).blur(function(){$(this).removeClass("ui-state-focus")});this.handles.each(function(i){$(this).data("index.ui-slider-handle",i)});this.handles.keydown(function(event){var ret=true,index=$(this).data("index.ui-slider-handle"),allowed,curVal,newVal,step;if(self.options.disabled){return }switch(event.keyCode){case $.ui.keyCode.HOME:case $.ui.keyCode.END:case $.ui.keyCode.PAGE_UP:case $.ui.keyCode.PAGE_DOWN:case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:ret=false;if(!self._keySliding){self._keySliding=true;$(this).addClass("ui-state-active");allowed=self._start(event,index);if(allowed===false){return }}break}step=self.options.step;if(self.options.values&&self.options.values.length){curVal=newVal=self.values(index)}else{curVal=newVal=self.value()}switch(event.keyCode){case $.ui.keyCode.HOME:newVal=self._valueMin();break;case $.ui.keyCode.END:newVal=self._valueMax();break;case $.ui.keyCode.PAGE_UP:newVal=self._trimAlignValue(curVal+((self._valueMax()-self._valueMin())/numPages));break;case $.ui.keyCode.PAGE_DOWN:newVal=self._trimAlignValue(curVal-((self._valueMax()-self._valueMin())/numPages));break;case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:if(curVal===self._valueMax()){return }newVal=self._trimAlignValue(curVal+step);break;case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:if(curVal===self._valueMin()){return }newVal=self._trimAlignValue(curVal-step);break}self._slide(event,index,newVal);return ret}).keyup(function(event){var index=$(this).data("index.ui-slider-handle");if(self._keySliding){self._keySliding=false;self._stop(event,index);self._change(event,index);$(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(event){var o=this.options,position,normValue,distance,closestHandle,self,index,allowed,offset,mouseOverHandle;if(o.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();position={x:event.pageX,y:event.pageY};normValue=this._normValueFromMouse(position);distance=this._valueMax()-this._valueMin()+1;self=this;this.handles.each(function(i){var thisDistance=Math.abs(normValue-self.values(i));if(distance>thisDistance){distance=thisDistance;closestHandle=$(this);index=i}});if(o.range===true&&this.values(1)===o.min){index+=1;closestHandle=$(this.handles[index])}allowed=this._start(event,index);if(allowed===false){return false}this._mouseSliding=true;self._handleIndex=index;closestHandle.addClass("ui-state-active").focus();offset=closestHandle.offset();mouseOverHandle=!$(event.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=mouseOverHandle?{left:0,top:0}:{left:event.pageX-offset.left-(closestHandle.width()/2),top:event.pageY-offset.top-(closestHandle.height()/2)-(parseInt(closestHandle.css("borderTopWidth"),10)||0)-(parseInt(closestHandle.css("borderBottomWidth"),10)||0)+(parseInt(closestHandle.css("marginTop"),10)||0)};if(!this.handles.hasClass("ui-state-hover")){this._slide(event,index,normValue)}this._animateOff=true;return true},_mouseStart:function(event){return true},_mouseDrag:function(event){var position={x:event.pageX,y:event.pageY},normValue=this._normValueFromMouse(position);this._slide(event,this._handleIndex,normValue);return false},_mouseStop:function(event){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(event,this._handleIndex);this._change(event,this._handleIndex);this._handleIndex=null;this._clickOffset=null;this._animateOff=false;return false},_detectOrientation:function(){this.orientation=(this.options.orientation==="vertical")?"vertical":"horizontal"},_normValueFromMouse:function(position){var pixelTotal,pixelMouse,percentMouse,valueTotal,valueMouse;if(this.orientation==="horizontal"){pixelTotal=this.elementSize.width;pixelMouse=position.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{pixelTotal=this.elementSize.height;pixelMouse=position.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}percentMouse=(pixelMouse/pixelTotal);if(percentMouse>1){percentMouse=1}if(percentMouse<0){percentMouse=0}if(this.orientation==="vertical"){percentMouse=1-percentMouse}valueTotal=this._valueMax()-this._valueMin();valueMouse=this._valueMin()+percentMouse*valueTotal;return this._trimAlignValue(valueMouse)},_start:function(event,index){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}return this._trigger("start",event,uiHash)},_slide:function(event,index,newVal){var otherVal,newValues,allowed;if(this.options.values&&this.options.values.length){otherVal=this.values(index?0:1);if((this.options.values.length===2&&this.options.range===true)&&((index===0&&newVal>otherVal)||(index===1&&newVal<otherVal))){newVal=otherVal}if(newVal!==this.values(index)){newValues=this.values();newValues[index]=newVal;allowed=this._trigger("slide",event,{handle:this.handles[index],value:newVal,values:newValues});otherVal=this.values(index?0:1);if(allowed!==false){this.values(index,newVal,true)}}}else{if(newVal!==this.value()){allowed=this._trigger("slide",event,{handle:this.handles[index],value:newVal});if(allowed!==false){this.value(newVal)}}}},_stop:function(event,index){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}this._trigger("stop",event,uiHash)},_change:function(event,index){if(!this._keySliding&&!this._mouseSliding){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}this._trigger("change",event,uiHash)}},value:function(newValue){if(arguments.length){this.options.value=this._trimAlignValue(newValue);this._refreshValue();this._change(null,0);return }return this._value()},values:function(index,newValue){var vals,newValues,i;if(arguments.length>1){this.options.values[index]=this._trimAlignValue(newValue);this._refreshValue();this._change(null,index);return }if(arguments.length){if($.isArray(arguments[0])){vals=this.options.values;newValues=arguments[0];for(i=0;i<vals.length;i+=1){vals[i]=this._trimAlignValue(newValues[i]);this._change(null,i)}this._refreshValue()}else{if(this.options.values&&this.options.values.length){return this._values(index)}else{return this.value()}}}else{return this._values()}},_setOption:function(key,value){var i,valsLength=0;if($.isArray(this.options.values)){valsLength=this.options.values.length}$.Widget.prototype._setOption.apply(this,arguments);switch(key){case"disabled":if(value){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case"value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case"values":this._animateOff=true;this._refreshValue();for(i=0;i<valsLength;i+=1){this._change(null,i)}this._animateOff=false;break}},_value:function(){var val=this.options.value;val=this._trimAlignValue(val);return val},_values:function(index){var val,vals,i;if(arguments.length){val=this.options.values[index];val=this._trimAlignValue(val);return val}else{vals=this.options.values.slice();for(i=0;i<vals.length;i+=1){vals[i]=this._trimAlignValue(vals[i])}return vals}},_trimAlignValue:function(val){if(val<=this._valueMin()){return this._valueMin()}if(val>=this._valueMax()){return this._valueMax()}var step=(this.options.step>0)?this.options.step:1,valModStep=(val-this._valueMin())%step;alignValue=val-valModStep;if(Math.abs(valModStep)*2>=step){alignValue+=(valModStep>0)?step:(-step)}return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var oRange=this.options.range,o=this.options,self=this,animate=(!this._animateOff)?o.animate:false,valPercent,_set={},lastValPercent,value,valueMin,valueMax;if(this.options.values&&this.options.values.length){this.handles.each(function(i,j){valPercent=(self.values(i)-self._valueMin())/(self._valueMax()-self._valueMin())*100;_set[self.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";$(this).stop(1,1)[animate?"animate":"css"](_set,o.animate);if(self.options.range===true){if(self.orientation==="horizontal"){if(i===0){self.range.stop(1,1)[animate?"animate":"css"]({left:valPercent+"%"},o.animate)}if(i===1){self.range[animate?"animate":"css"]({width:(valPercent-lastValPercent)+"%"},{queue:false,duration:o.animate})}}else{if(i===0){self.range.stop(1,1)[animate?"animate":"css"]({bottom:(valPercent)+"%"},o.animate)}if(i===1){self.range[animate?"animate":"css"]({height:(valPercent-lastValPercent)+"%"},{queue:false,duration:o.animate})}}}lastValPercent=valPercent})}else{value=this.value();valueMin=this._valueMin();valueMax=this._valueMax();valPercent=(valueMax!==valueMin)?(value-valueMin)/(valueMax-valueMin)*100:0;_set[self.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";this.handle.stop(1,1)[animate?"animate":"css"](_set,o.animate);if(oRange==="min"&&this.orientation==="horizontal"){this.range.stop(1,1)[animate?"animate":"css"]({width:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="horizontal"){this.range[animate?"animate":"css"]({width:(100-valPercent)+"%"},{queue:false,duration:o.animate})}if(oRange==="min"&&this.orientation==="vertical"){this.range.stop(1,1)[animate?"animate":"css"]({height:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="vertical"){this.range[animate?"animate":"css"]({height:(100-valPercent)+"%"},{queue:false,duration:o.animate})}}}});$.extend($.ui.slider,{version:"1.8.12"})}(jQuery));(function($,undefined){var tabId=0,listId=0;function getNextTabId(){return ++tabId}function getNextListId(){return ++listId}$.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:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(key,value){if(key=="selected"){if(this.options.collapsible&&value==this.options.selected){return }this.select(value)}else{this.options[key]=value;this._tabify()}},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+getNextTabId()},_sanitizeSelector:function(hash){return hash.replace(/:/g,"\\:")},_cookie:function(){var cookie=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+getNextListId());return $.cookie.apply(null,[cookie].concat($.makeArray(arguments)))},_ui:function(tab,panel){return{tab:tab,panel:panel,index:this.anchors.index(tab)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var el=$(this);el.html(el.data("label.tabs")).removeData("label.tabs")})},_tabify:function(init){var self=this,o=this.options,fragmentId=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=$(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return $("a",this)[0]});this.panels=$([]);this.anchors.each(function(i,a){var href=$(a).attr("href");var hrefBase=href.split("#")[0],baseEl;if(hrefBase&&(hrefBase===location.toString().split("#")[0]||(baseEl=$("base")[0])&&hrefBase===baseEl.href)){href=a.hash;a.href=href}if(fragmentId.test(href)){self.panels=self.panels.add(self.element.find(self._sanitizeSelector(href)))}else{if(href&&href!=="#"){$.data(a,"href.tabs",href);$.data(a,"load.tabs",href.replace(/#.*$/,""));var id=self._tabId(a);a.href="#"+id;var $panel=self.element.find("#"+id);if(!$panel.length){$panel=$(o.panelTemplate).attr("id",id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(self.panels[i-1]||self.list);$panel.data("destroy.tabs",true)}self.panels=self.panels.add($panel)}else{o.disabled.push(i)}}});if(init){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(o.selected===undefined){if(location.hash){this.anchors.each(function(i,a){if(a.hash==location.hash){o.selected=i;return false}})}if(typeof o.selected!=="number"&&o.cookie){o.selected=parseInt(self._cookie(),10)}if(typeof o.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length){o.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}o.selected=o.selected||(this.lis.length?0:-1)}else{if(o.selected===null){o.selected=-1}}o.selected=((o.selected>=0&&this.anchors[o.selected])||o.selected<0)?o.selected:0;o.disabled=$.unique(o.disabled.concat($.map(this.lis.filter(".ui-state-disabled"),function(n,i){return self.lis.index(n)}))).sort();if($.inArray(o.selected,o.disabled)!=-1){o.disabled.splice($.inArray(o.selected,o.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(o.selected>=0&&this.anchors.length){self.element.find(self._sanitizeSelector(self.anchors[o.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(o.selected).addClass("ui-tabs-selected ui-state-active");self.element.queue("tabs",function(){self._trigger("show",null,self._ui(self.anchors[o.selected],self.element.find(self._sanitizeSelector(self.anchors[o.selected].hash))[0]))});this.load(o.selected)}$(window).bind("unload",function(){self.lis.add(self.anchors).unbind(".tabs");self.lis=self.anchors=self.panels=null})}else{o.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[o.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(o.cookie){this._cookie(o.selected,o.cookie)}for(var i=0,li;(li=this.lis[i]);i++){$(li)[$.inArray(i,o.disabled)!=-1&&!$(li).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(o.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(o.event!=="mouseover"){var addState=function(state,el){if(el.is(":not(.ui-state-disabled)")){el.addClass("ui-state-"+state)}};var removeState=function(state,el){el.removeClass("ui-state-"+state)};this.lis.bind("mouseover.tabs",function(){addState("hover",$(this))});this.lis.bind("mouseout.tabs",function(){removeState("hover",$(this))});this.anchors.bind("focus.tabs",function(){addState("focus",$(this).closest("li"))});this.anchors.bind("blur.tabs",function(){removeState("focus",$(this).closest("li"))})}var hideFx,showFx;if(o.fx){if($.isArray(o.fx)){hideFx=o.fx[0];showFx=o.fx[1]}else{hideFx=showFx=o.fx}}function resetStyle($el,fx){$el.css("display","");if(!$.support.opacity&&fx.opacity){$el[0].style.removeAttribute("filter")}}var showTab=showFx?function(clicked,$show){$(clicked).closest("li").addClass("ui-tabs-selected ui-state-active");$show.hide().removeClass("ui-tabs-hide").animate(showFx,showFx.duration||"normal",function(){resetStyle($show,showFx);self._trigger("show",null,self._ui(clicked,$show[0]))})}:function(clicked,$show){$(clicked).closest("li").addClass("ui-tabs-selected ui-state-active");$show.removeClass("ui-tabs-hide");self._trigger("show",null,self._ui(clicked,$show[0]))};var hideTab=hideFx?function(clicked,$hide){$hide.animate(hideFx,hideFx.duration||"normal",function(){self.lis.removeClass("ui-tabs-selected ui-state-active");$hide.addClass("ui-tabs-hide");resetStyle($hide,hideFx);self.element.dequeue("tabs")})}:function(clicked,$hide,$show){self.lis.removeClass("ui-tabs-selected ui-state-active");$hide.addClass("ui-tabs-hide");self.element.dequeue("tabs")};this.anchors.bind(o.event+".tabs",function(){var el=this,$li=$(el).closest("li"),$hide=self.panels.filter(":not(.ui-tabs-hide)"),$show=self.element.find(self._sanitizeSelector(el.hash));if(($li.hasClass("ui-tabs-selected")&&!o.collapsible)||$li.hasClass("ui-state-disabled")||$li.hasClass("ui-state-processing")||self.panels.filter(":animated").length||self._trigger("select",null,self._ui(this,$show[0]))===false){this.blur();return false}o.selected=self.anchors.index(this);self.abort();if(o.collapsible){if($li.hasClass("ui-tabs-selected")){o.selected=-1;if(o.cookie){self._cookie(o.selected,o.cookie)}self.element.queue("tabs",function(){hideTab(el,$hide)}).dequeue("tabs");this.blur();return false}else{if(!$hide.length){if(o.cookie){self._cookie(o.selected,o.cookie)}self.element.queue("tabs",function(){showTab(el,$show)});self.load(self.anchors.index(this));this.blur();return false}}}if(o.cookie){self._cookie(o.selected,o.cookie)}if($show.length){if($hide.length){self.element.queue("tabs",function(){hideTab(el,$hide)})}self.element.queue("tabs",function(){showTab(el,$show)});self.load(self.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if($.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(index){if(typeof index=="string"){index=this.anchors.index(this.anchors.filter("[href$="+index+"]"))}return index},destroy:function(){var o=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 href=$.data(this,"href.tabs");if(href){this.href=href}var $this=$(this).unbind(".tabs");$.each(["href","load","cache"],function(i,prefix){$this.removeData(prefix+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if($.data(this,"destroy.tabs")){$(this).remove()}else{$(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(o.cookie){this._cookie(null,o.cookie)}return this},add:function(url,label,index){if(index===undefined){index=this.anchors.length}var self=this,o=this.options,$li=$(o.tabTemplate.replace(/#\{href\}/g,url).replace(/#\{label\}/g,label)),id=!url.indexOf("#")?url.replace("#",""):this._tabId($("a",$li)[0]);$li.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var $panel=self.element.find("#"+id);if(!$panel.length){$panel=$(o.panelTemplate).attr("id",id).data("destroy.tabs",true)}$panel.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(index>=this.lis.length){$li.appendTo(this.list);$panel.appendTo(this.list[0].parentNode)}else{$li.insertBefore(this.lis[index]);$panel.insertBefore(this.panels[index])}o.disabled=$.map(o.disabled,function(n,i){return n>=index?++n:n});this._tabify();if(this.anchors.length==1){o.selected=0;$li.addClass("ui-tabs-selected ui-state-active");$panel.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){self._trigger("show",null,self._ui(self.anchors[0],self.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[index],this.panels[index]));return this},remove:function(index){index=this._getIndex(index);var o=this.options,$li=this.lis.eq(index).remove(),$panel=this.panels.eq(index).remove();if($li.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(index+(index+1<this.anchors.length?1:-1))}o.disabled=$.map($.grep(o.disabled,function(n,i){return n!=index}),function(n,i){return n>=index?--n:n});this._tabify();this._trigger("remove",null,this._ui($li.find("a")[0],$panel[0]));return this},enable:function(index){index=this._getIndex(index);var o=this.options;if($.inArray(index,o.disabled)==-1){return }this.lis.eq(index).removeClass("ui-state-disabled");o.disabled=$.grep(o.disabled,function(n,i){return n!=index});this._trigger("enable",null,this._ui(this.anchors[index],this.panels[index]));return this},disable:function(index){index=this._getIndex(index);var self=this,o=this.options;if(index!=o.selected){this.lis.eq(index).addClass("ui-state-disabled");o.disabled.push(index);o.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[index],this.panels[index]))}return this},select:function(index){index=this._getIndex(index);if(index==-1){if(this.options.collapsible&&this.options.selected!=-1){index=this.options.selected}else{return this}}this.anchors.eq(index).trigger(this.options.event+".tabs");return this},load:function(index){index=this._getIndex(index);var self=this,o=this.options,a=this.anchors.eq(index)[0],url=$.data(a,"load.tabs");this.abort();if(!url||this.element.queue("tabs").length!==0&&$.data(a,"cache.tabs")){this.element.dequeue("tabs");return }this.lis.eq(index).addClass("ui-state-processing");if(o.spinner){var span=$("span",a);span.data("label.tabs",span.html()).html(o.spinner)}this.xhr=$.ajax($.extend({},o.ajaxOptions,{url:url,success:function(r,s){self.element.find(self._sanitizeSelector(a.hash)).html(r);self._cleanup();if(o.cache){$.data(a,"cache.tabs",true)}self._trigger("load",null,self._ui(self.anchors[index],self.panels[index]));try{o.ajaxOptions.success(r,s)}catch(e){}},error:function(xhr,s,e){self._cleanup();self._trigger("load",null,self._ui(self.anchors[index],self.panels[index]));try{o.ajaxOptions.error(xhr,s,index,a)}catch(e){}}}));self.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(index,url){this.anchors.eq(index).removeData("cache.tabs").data("load.tabs",url);return this},length:function(){return this.anchors.length}});$.extend($.ui.tabs,{version:"1.8.12"});$.extend($.ui.tabs.prototype,{rotation:null,rotate:function(ms,continuing){var self=this,o=this.options;var rotate=self._rotate||(self._rotate=function(e){clearTimeout(self.rotation);self.rotation=setTimeout(function(){var t=o.selected;self.select(++t<self.anchors.length?t:0)},ms);if(e){e.stopPropagation()}});var stop=self._unrotate||(self._unrotate=!continuing?function(e){if(e.clientX){self.rotate(null)}}:function(e){t=o.selected;rotate()});if(ms){this.element.bind("tabsshow",rotate);this.anchors.bind(o.event+".tabs",stop);rotate()}else{clearTimeout(self.rotation);this.element.unbind("tabsshow",rotate);this.anchors.unbind(o.event+".tabs",stop);delete this._rotate;delete this._unrotate}return this}})})(jQuery);if(!this.JSON){JSON=function(){function f(n){return n<10?"0"+n:n}Date.prototype.toJSON=function(){return this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z"};var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function stringify(value,whitelist){var a,i,k,l,r=/["\\\x00-\x1f\x7f-\x9f]/g,v;switch(typeof value){case"string":return r.test(value)?'"'+value.replace(r,function(a){var c=m[a];if(c){return c}c=a.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})+'"':'"'+value+'"';case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}if(typeof value.toJSON==="function"){return stringify(value.toJSON())}a=[];if(typeof value.length==="number"&&!(value.propertyIsEnumerable("length"))){l=value.length;for(i=0;i<l;i+=1){a.push(stringify(value[i],whitelist)||"null")}return"["+a.join(",")+"]"}if(whitelist){l=whitelist.length;for(i=0;i<l;i+=1){k=whitelist[i];if(typeof k==="string"){v=stringify(value[k],whitelist);if(v){a.push(stringify(k)+":"+v)}}}}else{for(k in value){if(typeof k==="string"){v=stringify(value[k],whitelist);if(v){a.push(stringify(k)+":"+v)}}}}return"{"+a.join(",")+"}"}}return{stringify:stringify,parse:function(text,filter){var j;function walk(k,v){var i,n;if(v&&typeof v==="object"){for(i in v){if(Object.prototype.hasOwnProperty.apply(v,[i])){n=walk(i,v[i]);if(n!==undefined){v[i]=n}}}}return filter(k,v)}if(/^[\],:{}\s]*$/.test(text.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof filter==="function"?walk("",j):j}throw new SyntaxError("parseJSON")}}}()};var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.dom.computeAbsolutePosition=function(element){var curleft=0,curtop=0;if(element.offsetParent){do{curleft+=element.offsetLeft;curtop+=element.offsetTop;element=element.offsetParent}while(element);return[curleft,curtop]}};fluid.dom.cleanseScripts=function(element){var cleansed=$.data(element,fluid.dom.cleanseScripts.MARKER);if(!cleansed){fluid.dom.iterateDom(element,function(node){return node.tagName.toLowerCase()==="script"?"delete":null});$.data(element,fluid.dom.cleanseScripts.MARKER,true)}};fluid.dom.cleanseScripts.MARKER="fluid-scripts-cleansed";fluid.dom.insertAfter=function(newChild,refChild){var nextSib=refChild.nextSibling;if(!nextSib){refChild.parentNode.appendChild(newChild)}else{refChild.parentNode.insertBefore(newChild,nextSib)}};fluid.dom.isWhitespaceNode=function(node){return !(/[^\t\n\r ]/.test(node.data))};fluid.dom.isIgnorableNode=function(node){return(node.nodeType===8)||((node.nodeType===3)&&fluid.dom.isWhitespaceNode(node))}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.orientation={HORIZONTAL:4,VERTICAL:1};fluid.rectSides={4:["left","right"],1:["top","bottom"],8:"top",12:"bottom",2:"left",3:"right"};fluid.position={BEFORE:-1,AFTER:1,INSIDE:2,REPLACE:3};fluid.direction={NEXT:1,PREVIOUS:-1,UP:8,DOWN:12,LEFT:2,RIGHT:3};fluid.directionSign=function(direction){return direction===fluid.direction.UP||direction===fluid.direction.LEFT?fluid.direction.PREVIOUS:fluid.direction.NEXT};fluid.directionAxis=function(direction){return direction===fluid.direction.LEFT||direction===fluid.direction.RIGHT?0:1};fluid.directionOrientation=function(direction){return fluid.directionAxis(direction)?fluid.orientation.VERTICAL:fluid.orientation.HORIZONTAL};fluid.keycodeDirection={up:fluid.direction.UP,down:fluid.direction.DOWN,left:fluid.direction.LEFT,right:fluid.direction.RIGHT};fluid.moveDom=function(source,target,position){source=fluid.unwrap(source);target=fluid.unwrap(target);var scan;if(position===fluid.position.INSIDE){target.appendChild(source)}else{if(position===fluid.position.BEFORE){for(scan=target.previousSibling;;scan=scan.previousSibling){if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);target.parentNode.insertBefore(source,target)}break}}}else{if(position===fluid.position.AFTER){for(scan=target.nextSibling;;scan=scan.nextSibling){if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);fluid.dom.insertAfter(source,target)}break}}}else{fluid.fail("Unrecognised position supplied to fluid.moveDom: "+position)}}}};fluid.normalisePosition=function(position,samespan,targeti,sourcei){if(position===fluid.position.REPLACE){position=samespan&&targeti>=sourcei?fluid.position.AFTER:fluid.position.BEFORE}return position};fluid.permuteDom=function(element,target,position,sourceelements,targetelements){element=fluid.unwrap(element);target=fluid.unwrap(target);var sourcei=$.inArray(element,sourceelements);if(sourcei===-1){fluid.fail("Error in permuteDom: source element "+fluid.dumpEl(element)+" not found in source list "+fluid.dumpEl(sourceelements))}var targeti=$.inArray(target,targetelements);if(targeti===-1){fluid.fail("Error in permuteDom: target element "+fluid.dumpEl(target)+" not found in source list "+fluid.dumpEl(targetelements))}var samespan=sourceelements===targetelements;position=fluid.normalisePosition(position,samespan,targeti,sourcei);var oldn={};oldn[fluid.position.AFTER]=element.nextSibling;oldn[fluid.position.BEFORE]=element.previousSibling;fluid.moveDom(sourceelements[sourcei],targetelements[targeti],position);var frontlimit=samespan?targeti-1:sourceelements.length-2;var i;if(position===fluid.position.BEFORE&&samespan){frontlimit--}if(!samespan||targeti>sourcei){for(i=frontlimit;i>sourcei;--i){fluid.moveDom(sourceelements[i+1],sourceelements[i],fluid.position.AFTER)}if(sourcei+1<sourceelements.length){fluid.moveDom(sourceelements[sourcei+1],oldn[fluid.position.AFTER],fluid.position.BEFORE)}}var backlimit=samespan?sourcei-1:targetelements.length-1;if(position===fluid.position.AFTER){targeti++}if(!samespan||targeti<sourcei){for(i=targeti;i<backlimit;++i){fluid.moveDom(targetelements[i],targetelements[i+1],fluid.position.BEFORE)}if(backlimit>=0&&backlimit<targetelements.length-1){fluid.moveDom(targetelements[backlimit],oldn[fluid.position.BEFORE],fluid.position.AFTER)}}};var curCss=function(a,name){return window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(name):a.currentStyle[name]};var isAttached=function(node){while(node&&node.nodeName){if(node.nodeName==="BODY"){return true}node=node.parentNode}return false};var generalHidden=function(a){return"hidden"===a.type||curCss(a,"display")==="none"||curCss(a,"visibility")==="hidden"||!isAttached(a)};var computeGeometry=function(element,orientation,disposition){var elem={};elem.element=element;elem.orientation=orientation;if(disposition===fluid.position.INSIDE){elem.position=disposition}if(generalHidden(element)){elem.clazz="hidden"}var pos=fluid.dom.computeAbsolutePosition(element)||[0,0];var width=element.offsetWidth;var height=element.offsetHeight;elem.rect={left:pos[0],top:pos[1]};elem.rect.right=pos[0]+width;elem.rect.bottom=pos[1]+height;return elem};var SENTINEL_DIMENSION=10000;function dumprect(rect){return"Rect top: "+rect.top+" left: "+rect.left+" bottom: "+rect.bottom+" right: "+rect.right}function dumpelem(cacheelem){if(!cacheelem||!cacheelem.rect){return"null"}else{return dumprect(cacheelem.rect)+" position: "+cacheelem.position+" for "+fluid.dumpEl(cacheelem.element)}}fluid.dropManager=function(){var targets=[];var cache={};var that={};var lastClosest;var lastGeometry;var displacementX,displacementY;that.updateGeometry=function(geometricInfo){lastGeometry=geometricInfo;targets=[];cache={};var mapper=geometricInfo.elementMapper;for(var i=0;i<geometricInfo.extents.length;++i){var thisInfo=geometricInfo.extents[i];var orientation=thisInfo.orientation;var sides=fluid.rectSides[orientation];var processElement=function(element,sentB,sentF,disposition,j){var cacheelem=computeGeometry(element,orientation,disposition);cacheelem.owner=thisInfo;if(cacheelem.clazz!=="hidden"&&mapper){cacheelem.clazz=mapper(element)}cache[fluid.dropManager.cacheKey(element)]=cacheelem;var backClass=fluid.dropManager.getRelativeClass(thisInfo.elements,j,fluid.position.BEFORE,cacheelem.clazz,mapper);var frontClass=fluid.dropManager.getRelativeClass(thisInfo.elements,j,fluid.position.AFTER,cacheelem.clazz,mapper);if(disposition===fluid.position.INSIDE){targets[targets.length]=cacheelem}else{fluid.dropManager.splitElement(targets,sides,cacheelem,disposition,backClass,frontClass)}if(sentB&&geometricInfo.sentinelize){fluid.dropManager.sentinelizeElement(targets,sides,cacheelem,1,disposition,backClass)}if(sentF&&geometricInfo.sentinelize){fluid.dropManager.sentinelizeElement(targets,sides,cacheelem,0,disposition,frontClass)}return cacheelem};var allHidden=true;for(var j=0;j<thisInfo.elements.length;++j){var element=thisInfo.elements[j];var cacheelem=processElement(element,j===0,j===thisInfo.elements.length-1,fluid.position.INTERLEAVED,j);if(cacheelem.clazz!=="hidden"){allHidden=false}}if(allHidden&&thisInfo.parentElement){processElement(thisInfo.parentElement,true,true,fluid.position.INSIDE)}}};that.startDrag=function(event,handlePos,handleWidth,handleHeight){var handleMidX=handlePos[0]+handleWidth/2;var handleMidY=handlePos[1]+handleHeight/2;var dX=handleMidX-event.pageX;var dY=handleMidY-event.pageY;that.updateGeometry(lastGeometry);lastClosest=null;displacementX=dX;displacementY=dY;$("body").bind("mousemove.fluid-dropManager",that.mouseMove)};that.lastPosition=function(){return lastClosest};that.endDrag=function(){$("body").unbind("mousemove.fluid-dropManager")};that.mouseMove=function(evt){var x=evt.pageX+displacementX;var y=evt.pageY+displacementY;var closestTarget=that.closestTarget(x,y,lastClosest);if(closestTarget&&closestTarget!==fluid.dropManager.NO_CHANGE){lastClosest=closestTarget;that.dropChangeFirer.fire(closestTarget)}};that.dropChangeFirer=fluid.event.getEventFirer();var blankHolder={element:null};that.closestTarget=function(x,y,lastClosest){var mindistance=Number.MAX_VALUE;var minelem=blankHolder;var minlockeddistance=Number.MAX_VALUE;var minlockedelem=blankHolder;for(var i=0;i<targets.length;++i){var cacheelem=targets[i];if(cacheelem.clazz==="hidden"){continue}var distance=fluid.geom.minPointRectangle(x,y,cacheelem.rect);if(cacheelem.clazz==="locked"){if(distance<minlockeddistance){minlockeddistance=distance;minlockedelem=cacheelem}}else{if(distance<mindistance){mindistance=distance;minelem=cacheelem}if(distance===0){break}}}if(!minelem){return minelem}if(minlockeddistance>=mindistance){minlockedelem=blankHolder}if(lastClosest&&lastClosest.position===minelem.position&&fluid.unwrap(lastClosest.element)===fluid.unwrap(minelem.element)&&fluid.unwrap(lastClosest.lockedelem)===fluid.unwrap(minlockedelem.element)){return fluid.dropManager.NO_CHANGE}return{position:minelem.position,element:minelem.element,lockedelem:minlockedelem.element}};that.shuffleProjectFrom=function(element,direction,includeLocked,disableWrap){var togo=that.projectFrom(element,direction,includeLocked,disableWrap);if(togo){togo.position=fluid.position.REPLACE}return togo};that.projectFrom=function(element,direction,includeLocked,disableWrap){that.updateGeometry(lastGeometry);var cacheelem=cache[fluid.dropManager.cacheKey(element)];var projected=fluid.geom.projectFrom(cacheelem.rect,direction,targets,includeLocked,disableWrap);if(!projected.cacheelem){return null}var retpos=projected.cacheelem.position;return{element:projected.cacheelem.element,position:retpos?retpos:fluid.position.BEFORE}};that.logicalFrom=function(element,direction,includeLocked,disableWrap){var orderables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);return{element:fluid.dropManager.getRelativeElement(element,direction,orderables,disableWrap),position:fluid.position.REPLACE}};that.lockedWrapFrom=function(element,direction,includeLocked,disableWrap){var base=that.logicalFrom(element,direction,includeLocked,disableWrap);var selectables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);var allElements=cache[fluid.dropManager.cacheKey(element)].owner.elements;if(includeLocked||selectables[0]===allElements[0]){return base}var directElement=fluid.dropManager.getRelativeElement(element,direction,allElements,disableWrap);if(lastGeometry.elementMapper(directElement)==="locked"){base.element=null;base.clazz="locked"}return base};that.getOwningSpan=function(element,position,includeLocked){var owner=cache[fluid.dropManager.cacheKey(element)].owner;var elements=position===fluid.position.INSIDE?[owner.parentElement]:owner.elements;if(!includeLocked&&lastGeometry.elementMapper){elements=$.makeArray(elements);fluid.remove_if(elements,function(element){return lastGeometry.elementMapper(element)==="locked"})}return elements};that.geometricMove=function(element,target,position){var sourceElements=that.getOwningSpan(element,null,true);var targetElements=that.getOwningSpan(target,position,true);fluid.permuteDom(element,target,position,sourceElements,targetElements)};return that};fluid.dropManager.NO_CHANGE="no change";fluid.dropManager.cacheKey=function(element){return fluid.allocateSimpleId(element)};fluid.dropManager.sentinelizeElement=function(targets,sides,cacheelem,fc,disposition,clazz){var elemCopy=$.extend(true,{},cacheelem);elemCopy.rect[sides[fc]]=elemCopy.rect[sides[1-fc]]+(fc?1:-1);elemCopy.rect[sides[1-fc]]=(fc?-1:1)*SENTINEL_DIMENSION;elemCopy.position=disposition===fluid.position.INSIDE?disposition:(fc?fluid.position.BEFORE:fluid.position.AFTER);elemCopy.clazz=clazz;targets[targets.length]=elemCopy};fluid.dropManager.splitElement=function(targets,sides,cacheelem,disposition,clazz1,clazz2){var elem1=$.extend(true,{},cacheelem);var elem2=$.extend(true,{},cacheelem);var midpoint=(elem1.rect[sides[0]]+elem1.rect[sides[1]])/2;elem1.rect[sides[1]]=midpoint;elem1.position=fluid.position.BEFORE;elem2.rect[sides[0]]=midpoint;elem2.position=fluid.position.AFTER;elem1.clazz=clazz1;elem2.clazz=clazz2;targets[targets.length]=elem1;targets[targets.length]=elem2};fluid.dropManager.getRelativeClass=function(thisElements,index,relative,thisclazz,mapper){index+=relative;if(index<0&&thisclazz==="locked"){return"locked"}if(index>=thisElements.length||mapper===null){return null}else{relative=thisElements[index];return mapper(relative)==="locked"&&thisclazz==="locked"?"locked":null}};fluid.dropManager.getRelativeElement=function(element,direction,elements,disableWrap){var folded=fluid.directionSign(direction);var index=$(elements).index(element)+folded;if(index<0){index+=elements.length}if(disableWrap){if(index===elements.length||index===(elements.length+folded)){return element}}index%=elements.length;return elements[index]};fluid.geom=fluid.geom||{};fluid.geom.minPointRectangle=function(x,y,rectangle){var dx=x<rectangle.left?(rectangle.left-x):(x>rectangle.right?(x-rectangle.right):0);var dy=y<rectangle.top?(rectangle.top-y):(y>rectangle.bottom?(y-rectangle.bottom):0);return dx*dx+dy*dy};fluid.geom.minRectRect=function(rect1,rect2){var dx=rect1.right<rect2.left?rect2.left-rect1.right:rect2.right<rect1.left?rect1.left-rect2.right:0;var dy=rect1.bottom<rect2.top?rect2.top-rect1.bottom:rect2.bottom<rect1.top?rect1.top-rect2.bottom:0;return dx*dx+dy*dy};var makePenCollect=function(){return{mindist:Number.MAX_VALUE,minrdist:Number.MAX_VALUE}};fluid.geom.projectFrom=function(baserect,direction,targets,forSelection,disableWrap){var axis=fluid.directionAxis(direction);var frontSide=fluid.rectSides[direction];var backSide=fluid.rectSides[axis*15+5-direction];var dirSign=fluid.directionSign(direction);var penrect={left:(7*baserect.left+1*baserect.right)/8,right:(5*baserect.left+3*baserect.right)/8,top:(7*baserect.top+1*baserect.bottom)/8,bottom:(5*baserect.top+3*baserect.bottom)/8};penrect[frontSide]=dirSign*SENTINEL_DIMENSION;penrect[backSide]=-penrect[frontSide];function accPen(collect,cacheelem,backSign){var thisrect=cacheelem.rect;var pdist=fluid.geom.minRectRect(penrect,thisrect);var rdist=-dirSign*backSign*(baserect[backSign===1?frontSide:backSide]-thisrect[backSign===1?backSide:frontSide]);if(pdist<=collect.mindist&&rdist>=0){if(pdist===collect.mindist&&rdist*backSign>collect.minrdist){return }collect.minrdist=rdist*backSign;collect.mindist=pdist;collect.minelem=cacheelem}}var collect=makePenCollect();var backcollect=makePenCollect();var lockedcollect=makePenCollect();for(var i=0;i<targets.length;++i){var elem=targets[i];var isPure=elem.owner&&elem.element===elem.owner.parentElement;if(elem.clazz==="hidden"||(forSelection&&isPure)){continue}else{if(!forSelection&&elem.clazz==="locked"){accPen(lockedcollect,elem,1)}else{accPen(collect,elem,1);accPen(backcollect,elem,-1)}}}var wrap=!collect.minelem||backcollect.mindist<collect.mindist;wrap=wrap&&!disableWrap;var mincollect=wrap?backcollect:collect;var togo={wrapped:wrap,cacheelem:mincollect.minelem};if(lockedcollect.mindist<mincollect.mindist){togo.lockedelem=lockedcollect.minelem}return togo}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){var defaultAvatarCreator=function(item,cssClass,dropWarning){fluid.dom.cleanseScripts(fluid.unwrap(item));var avatar=$(item).clone();fluid.dom.iterateDom(avatar.get(0),function(node){node.removeAttribute("id");if(node.tagName.toLowerCase()==="input"){node.setAttribute("disabled","disabled")}});avatar.removeProp("id");avatar.removeClass("ui-droppable");avatar.addClass(cssClass);if(dropWarning){var avatarContainer=$(document.createElement("div"));avatarContainer.append(avatar);avatarContainer.append(dropWarning);avatar=avatarContainer}$("body").append(avatar);if(!$.browser.safari){avatar.css("display","block").width(item.offsetWidth).height(item.offsetHeight)}if($.browser.opera){avatar.hide()}return avatar};function bindHandlersToContainer(container,keyDownHandler,keyUpHandler,mouseMoveHandler){var actualKeyDown=keyDownHandler;var advancedPrevention=false;if($.browser.opera){container.keypress(function(evt){if(advancedPrevention){advancedPrevention=false;evt.preventDefault();return false}});actualKeyDown=function(evt){var oldret=keyDownHandler(evt);if(oldret===false){advancedPrevention=true}}}container.keydown(actualKeyDown);container.keyup(keyUpHandler)}function addRolesToContainer(that){that.container.attr("role",that.options.containerRole.container);that.container.attr("aria-multiselectable","false");that.container.attr("aria-readonly","false");that.container.attr("aria-disabled","false")}function createAvatarId(parentId){return parentId+"_avatar"}var adaptKeysets=function(options){if(options.keysets&&!(options.keysets instanceof Array)){options.keysets=[options.keysets]}};fluid.reorderer=function(container,options){if(!container){fluid.fail("Reorderer initialised with no container")}var thatReorderer=fluid.initView("fluid.reorderer",container,options);options=thatReorderer.options;var dropManager=fluid.dropManager();thatReorderer.layoutHandler=fluid.initSubcomponent(thatReorderer,"layoutHandler",[thatReorderer.container,options,dropManager,thatReorderer.dom]);thatReorderer.activeItem=undefined;adaptKeysets(options);var kbDropWarning=thatReorderer.locate("dropWarning");var mouseDropWarning;if(kbDropWarning){mouseDropWarning=kbDropWarning.clone()}var isMove=function(evt){var keysets=options.keysets;for(var i=0;i<keysets.length;i++){if(keysets[i].modifier(evt)){return true}}return false};var isActiveItemMovable=function(){return $.inArray(thatReorderer.activeItem,thatReorderer.dom.fastLocate("movables"))>=0};var setDropEffects=function(value){thatReorderer.dom.fastLocate("dropTargets").attr("aria-dropeffect",value)};var styles=options.styles;var noModifier=function(evt){return(!evt.ctrlKey&&!evt.altKey&&!evt.shiftKey&&!evt.metaKey)};var handleDirectionKeyDown=function(evt){var item=thatReorderer.activeItem;if(!item){return true}var keysets=options.keysets;for(var i=0;i<keysets.length;i++){var keyset=keysets[i];var keydir=fluid.keyForValue(keyset,evt.keyCode);if(!keydir){continue}var isMovement=keyset.modifier(evt);var dirnum=fluid.keycodeDirection[keydir];var relativeItem=thatReorderer.layoutHandler.getRelativePosition(item,dirnum,!isMovement);if(!relativeItem){continue}if(isMovement){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false){return false}if(kbDropWarning.length>0){if(relativeItem.clazz==="locked"){thatReorderer.events.onShowKeyboardDropWarning.fire(item,kbDropWarning);kbDropWarning.show()}else{kbDropWarning.hide()}}if(relativeItem.element){thatReorderer.requestMovement(relativeItem,item)}}else{if(noModifier(evt)){item.blur();$(relativeItem.element).focus()}}return false}return true};thatReorderer.handleKeyDown=function(evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target){return true}var jActiveItem=$(thatReorderer.activeItem);if(!jActiveItem.hasClass(styles.dragging)&&isMove(evt)){if(isActiveItemMovable()){jActiveItem.removeClass(styles.selected);jActiveItem.addClass(styles.dragging);jActiveItem.attr("aria-grabbed","true");setDropEffects("move")}return false}return handleDirectionKeyDown(evt)};thatReorderer.handleKeyUp=function(evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target){return true}var jActiveItem=$(thatReorderer.activeItem);if(jActiveItem.hasClass(styles.dragging)&&!isMove(evt)){if(kbDropWarning){kbDropWarning.hide()}jActiveItem.removeClass(styles.dragging);jActiveItem.addClass(styles.selected);jActiveItem.attr("aria-grabbed","false");setDropEffects("none");return false}return false};var dropMarker;var createDropMarker=function(tagName){var dropMarker=$(document.createElement(tagName));dropMarker.addClass(options.styles.dropMarker);dropMarker.hide();return dropMarker};thatReorderer.requestMovement=function(requestedPosition,item){item=fluid.unwrap(item);if(!requestedPosition||fluid.unwrap(requestedPosition.element)===item){return }var activeItem=$(thatReorderer.activeItem);activeItem.unbind("blur.fluid.reorderer");thatReorderer.events.onMove.fire(item,requestedPosition);dropManager.geometricMove(item,requestedPosition.element,requestedPosition.position);activeItem.focus();thatReorderer.refresh();dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());thatReorderer.events.afterMove.fire(item,requestedPosition,thatReorderer.dom.fastLocate("movables"))};var hoverStyleHandler=function(item,state){thatReorderer.dom.fastLocate("grabHandle",item)[state?"addClass":"removeClass"](styles.hover)};function initMovable(item){var styles=options.styles;item.attr("aria-grabbed","false");item.mouseover(function(){thatReorderer.events.onHover.fire(item,true)});item.mouseout(function(){thatReorderer.events.onHover.fire(item,false)});var avatar;thatReorderer.dom.fastLocate("grabHandle",item).draggable({refreshPositions:false,scroll:true,helper:function(){var dropWarningEl;if(mouseDropWarning){dropWarningEl=mouseDropWarning[0]}avatar=$(options.avatarCreator(item[0],styles.avatar,dropWarningEl));avatar.prop("id",createAvatarId(thatReorderer.container.id));return avatar},start:function(e,ui){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false){return false}var handle=thatReorderer.dom.fastLocate("grabHandle",item)[0];var handlePos=fluid.dom.computeAbsolutePosition(handle);var handleWidth=handle.offsetWidth;var handleHeight=handle.offsetHeight;item.focus();item.removeClass(options.styles.selected);item.addClass(options.styles.mouseDrag);item.attr("aria-grabbed","true");setDropEffects("move");dropManager.startDrag(e,handlePos,handleWidth,handleHeight);avatar.show()},stop:function(e,ui){item.removeClass(options.styles.mouseDrag);item.addClass(options.styles.selected);$(thatReorderer.activeItem).attr("aria-grabbed","false");var markerNode=fluid.unwrap(dropMarker);if(markerNode.parentNode){markerNode.parentNode.removeChild(markerNode)}avatar.hide();ui.helper=null;setDropEffects("none");dropManager.endDrag();thatReorderer.requestMovement(dropManager.lastPosition(),item);thatReorderer.activeItem.focus()},handle:thatReorderer.dom.fastLocate("grabHandle",item)})}function changeSelectedToDefault(jItem,styles){jItem.removeClass(styles.selected);jItem.removeClass(styles.dragging);jItem.addClass(styles.defaultStyle);jItem.attr("aria-selected","false")}var selectItem=function(anItem){thatReorderer.events.onSelect.fire(anItem);var styles=options.styles;if(thatReorderer.activeItem&&thatReorderer.activeItem!==anItem){changeSelectedToDefault($(thatReorderer.activeItem),styles)}thatReorderer.activeItem=anItem;var jItem=$(anItem);jItem.removeClass(styles.defaultStyle);jItem.addClass(styles.selected);jItem.attr("aria-selected","true")};var initSelectables=function(){var handleBlur=function(evt){changeSelectedToDefault($(this),options.styles);return evt.stopPropagation()};var handleFocus=function(evt){selectItem(this);return evt.stopPropagation()};var selectables=thatReorderer.dom.fastLocate("selectables");for(var i=0;i<selectables.length;++i){var selectable=$(selectables[i]);if(!$.data(selectable[0],"fluid.reorderer.selectable-initialised")){selectable.addClass(styles.defaultStyle);selectable.bind("blur.fluid.reorderer",handleBlur);selectable.focus(handleFocus);selectable.click(function(evt){var handle=fluid.unwrap(thatReorderer.dom.fastLocate("grabHandle",this));if(fluid.dom.isContainer(handle,evt.target)){$(this).focus()}});selectable.attr("role",options.containerRole.item);selectable.attr("aria-selected","false");selectable.attr("aria-disabled","false");$.data(selectable[0],"fluid.reorderer.selectable-initialised",true)}}if(!thatReorderer.selectableContext){thatReorderer.selectableContext=fluid.selectable(thatReorderer.container,{selectableElements:selectables,selectablesTabindex:thatReorderer.options.selectablesTabindex,direction:null})}};var dropChangeListener=function(dropTarget){fluid.moveDom(dropMarker,dropTarget.element,dropTarget.position);dropMarker.css("display","");if(mouseDropWarning){if(dropTarget.lockedelem){mouseDropWarning.show()}else{mouseDropWarning.hide()}}};var initItems=function(){var movables=thatReorderer.dom.fastLocate("movables");var dropTargets=thatReorderer.dom.fastLocate("dropTargets");initSelectables();for(var i=0;i<movables.length;i++){var item=movables[i];if(!$.data(item,"fluid.reorderer.movable-initialised")){initMovable($(item));$.data(item,"fluid.reorderer.movable-initialised",true)}}if(movables.length>0&&!dropMarker){dropMarker=createDropMarker(movables[0].tagName)}dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());dropManager.dropChangeFirer.addListener(dropChangeListener,"fluid.Reorderer");dropTargets.attr("aria-dropeffect","none")};if(thatReorderer.container){bindHandlersToContainer(thatReorderer.container,thatReorderer.handleKeyDown,thatReorderer.handleKeyUp);addRolesToContainer(thatReorderer);fluid.tabbable(thatReorderer.container);initItems()}if(options.afterMoveCallbackUrl){thatReorderer.events.afterMove.addListener(function(){var layoutHandler=thatReorderer.layoutHandler;var model=layoutHandler.getModel?layoutHandler.getModel():options.acquireModel(thatReorderer);$.post(options.afterMoveCallbackUrl,JSON.stringify(model))},"postModel")}thatReorderer.events.onHover.addListener(hoverStyleHandler,"style");thatReorderer.refresh=function(){thatReorderer.dom.refresh("movables");thatReorderer.dom.refresh("selectables");thatReorderer.dom.refresh("grabHandle",thatReorderer.dom.fastLocate("movables"));thatReorderer.dom.refresh("stylisticOffset",thatReorderer.dom.fastLocate("movables"));thatReorderer.dom.refresh("dropTargets");thatReorderer.events.onRefresh.fire();initItems();thatReorderer.selectableContext.selectables=thatReorderer.dom.fastLocate("selectables");thatReorderer.selectableContext.selectablesUpdated(thatReorderer.activeItem)};fluid.initDependents(thatReorderer);thatReorderer.refresh();return thatReorderer};fluid.reorderer.keys={TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:19,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,i:73,j:74,k:75,m:77};fluid.reorderer.defaultKeysets=[{modifier:function(evt){return evt.ctrlKey},up:fluid.reorderer.keys.UP,down:fluid.reorderer.keys.DOWN,right:fluid.reorderer.keys.RIGHT,left:fluid.reorderer.keys.LEFT},{modifier:function(evt){return evt.ctrlKey},up:fluid.reorderer.keys.i,down:fluid.reorderer.keys.m,right:fluid.reorderer.keys.k,left:fluid.reorderer.keys.j}];fluid.reorderer.roles={GRID:{container:"grid",item:"gridcell"},LIST:{container:"list",item:"listitem"},REGIONS:{container:"main",item:"article"}};var simpleInit=function(container,layoutHandler,options){options=options||{};options.layoutHandler=layoutHandler;return fluid.reorderer(container,options)};fluid.reorderList=function(container,options){return simpleInit(container,"fluid.listLayoutHandler",options)};fluid.reorderGrid=function(container,options){return simpleInit(container,"fluid.gridLayoutHandler",options)};fluid.reorderer.SHUFFLE_GEOMETRIC_STRATEGY="shuffleProjectFrom";fluid.reorderer.GEOMETRIC_STRATEGY="projectFrom";fluid.reorderer.LOGICAL_STRATEGY="logicalFrom";fluid.reorderer.WRAP_LOCKED_STRATEGY="lockedWrapFrom";fluid.reorderer.NO_STRATEGY=null;fluid.reorderer.relativeInfoGetter=function(orientation,coStrategy,contraStrategy,dropManager,dom,disableWrap){return function(item,direction,forSelection){var dirorient=fluid.directionOrientation(direction);var strategy=dirorient===orientation?coStrategy:contraStrategy;return strategy!==null?dropManager[strategy](item,direction,forSelection,disableWrap):null}};fluid.defaults("fluid.reorderer",{styles:{defaultStyle:"fl-reorderer-movable-default",selected:"fl-reorderer-movable-selected",dragging:"fl-reorderer-movable-dragging",mouseDrag:"fl-reorderer-movable-dragging",hover:"fl-reorderer-movable-hover",dropMarker:"fl-reorderer-dropMarker",avatar:"fl-reorderer-avatar"},selectors:{dropWarning:".flc-reorderer-dropWarning",movables:".flc-reorderer-movable",grabHandle:"",stylisticOffset:""},avatarCreator:defaultAvatarCreator,keysets:fluid.reorderer.defaultKeysets,layoutHandler:{type:"fluid.listLayoutHandler"},events:{onShowKeyboardDropWarning:null,onSelect:null,onBeginMove:"preventable",onMove:null,afterMove:null,onHover:null,onRefresh:null},mergePolicy:{keysets:"replace","selectors.labelSource":"selectors.grabHandle","selectors.selectables":"selectors.movables","selectors.dropTargets":"selectors.movables"},components:{labeller:{type:"fluid.reorderer.labeller",options:{dom:"{reorderer}.dom",getGeometricInfo:"{reorderer}.layoutHandler.getGeometricInfo",orientation:"{reorderer}.options.orientation",layoutType:"{reorderer}.options.layoutHandler"}}},disableWrap:false});fluid.reorderer.makeGeometricInfoGetter=function(orientation,sentinelize,dom){return function(){var that={sentinelize:sentinelize,extents:[{orientation:orientation,elements:dom.fastLocate("dropTargets")}],elementMapper:function(element){return $.inArray(element,dom.fastLocate("movables"))===-1?"locked":null},elementIndexer:function(element){var selectables=dom.fastLocate("selectables");return{elementClass:that.elementMapper(element),index:$.inArray(element,selectables),length:selectables.length}}};return that}};fluid.defaults(true,"fluid.listLayoutHandler",{orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.LIST,selectablesTabindex:-1,sentinelize:true});fluid.listLayoutHandler=function(container,options,dropManager,dom){var that={};that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.LOGICAL_STRATEGY,null,dropManager,dom,options.disableWrap);that.getGeometricInfo=fluid.reorderer.makeGeometricInfoGetter(options.orientation,options.sentinelize,dom);return that};fluid.defaults(true,"fluid.gridLayoutHandler",{orientation:fluid.orientation.HORIZONTAL,containerRole:fluid.reorderer.roles.GRID,selectablesTabindex:-1,sentinelize:false});fluid.gridLayoutHandler=function(container,options,dropManager,dom){var that={};that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,options.disableWrap?fluid.reorderer.SHUFFLE_GEOMETRIC_STRATEGY:fluid.reorderer.LOGICAL_STRATEGY,fluid.reorderer.SHUFFLE_GEOMETRIC_STRATEGY,dropManager,dom,options.disableWrap);that.getGeometricInfo=fluid.reorderer.makeGeometricInfoGetter(options.orientation,options.sentinelize,dom);return that};fluid.defaults("fluid.reorderer.labeller",{strings:{overallTemplate:"%recentStatus %item %position %movable",position:"%index of %length",position_moduleLayoutHandler:"%index of %length in %moduleCell %moduleIndex of %moduleLength",moduleCell_0:"row",moduleCell_1:"column",movable:"movable",fixed:"fixed",recentStatus:"moved from position %position"},components:{resolver:{type:"fluid.messageResolver",options:{messageBase:"{labeller}.options.strings"}}},invokers:{renderLabel:{funcName:"fluid.reorderer.labeller.renderLabel",args:["{labeller}","@0","@1"]}}});fluid.reorderer.indexRebaser=function(indices){indices.index++;if(indices.moduleIndex!==undefined){indices.moduleIndex++}return indices};fluid.reorderer.labeller=function(options){var that=fluid.initLittleComponent("fluid.reorderer.labeller",options);fluid.initDependents(that);that.dom=that.options.dom;that.moduleCell=that.resolver.resolve("moduleCell_"+that.options.orientation);var layoutType=fluid.computeNickName(that.options.layoutType);that.positionTemplate=that.resolver.lookup(["position_"+layoutType,"position"]);var movedMap={};that.returnedOptions={listeners:{onRefresh:function(){var selectables=that.dom.locate("selectables");fluid.each(selectables,function(selectable){var labelOptions={};var id=fluid.allocateSimpleId(selectable);var moved=movedMap[id];var label=that.renderLabel(selectable);var plainLabel=label;if(moved){moved.newRender=plainLabel;label=that.renderLabel(selectable,moved.oldRender.position);$(selectable).one("focusout",function(){if(movedMap[id]){var oldLabel=movedMap[id].newRender.label;delete movedMap[id];fluid.updateAriaLabel(selectable,oldLabel)}});labelOptions.dynamicLabel=true}fluid.updateAriaLabel(selectable,label.label,labelOptions)})},onMove:function(item,newPosition){fluid.clear(movedMap);var movingId=fluid.allocateSimpleId(item);movedMap[movingId]={oldRender:that.renderLabel(item)}}}};return that};fluid.reorderer.labeller.renderLabel=function(that,selectable,recentPosition){var geom=that.options.getGeometricInfo();var indices=fluid.reorderer.indexRebaser(geom.elementIndexer(selectable));indices.moduleCell=that.moduleCell;var elementClass=geom.elementMapper(selectable);var labelSource=that.dom.locate("labelSource",selectable);var recentStatus;if(recentPosition){recentStatus=that.resolver.resolve("recentStatus",{position:recentPosition})}var topModel={item:typeof (labelSource)==="string"?labelSource:fluid.dom.getElementText(fluid.unwrap(labelSource)),position:that.positionTemplate.resolveFunc(that.positionTemplate.template,indices),movable:that.resolver.resolve(elementClass==="locked"?"fixed":"movable"),recentStatus:recentStatus||""};var template=that.resolver.lookup(["overallTemplate"]);var label=template.resolveFunc(template.template,topModel);return{position:topModel.position,label:label}}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){var deriveLightboxCellBase=function(namebase,index){return namebase+"lightbox-cell:"+index+":"};var addThumbnailActivateHandler=function(container){var enterKeyHandler=function(evt){if(evt.which===fluid.reorderer.keys.ENTER){var thumbnailAnchors=$("a",evt.target);document.location=thumbnailAnchors.attr("href")}};container.keypress(enterKeyHandler)};var seekNodesById=function(rootnode,tagname,idmatch){var inputs=rootnode.getElementsByTagName(tagname);var togo=[];for(var i=0;i<inputs.length;i+=1){var input=inputs[i];var id=input.id;if(id&&id.match(idmatch)){togo.push(input)}}return togo};var createImageCellFinder=function(parentNode,containerId){parentNode=fluid.unwrap(parentNode);var lightboxCellNamePattern="^"+deriveLightboxCellBase(containerId,"[0-9]+")+"$";return function(){return seekNodesById(parentNode,"div",lightboxCellNamePattern)}};var seekForm=function(container){return fluid.findAncestor(container,function(element){return $(element).is("form")})};var seekInputs=function(container,reorderform){return seekNodesById(reorderform,"input","^"+deriveLightboxCellBase(container.prop("id"),"[^:]*")+"reorder-index$")};var mapIdsToNames=function(container,reorderform){var inputs=seekInputs(container,reorderform);for(var i=0;i<inputs.length;i++){var input=inputs[i];var name=input.name;input.name=name||input.id}};var createIDAfterMoveListener=function(container){var reorderform=seekForm(container);mapIdsToNames(container,reorderform);return function(){var inputs,i;inputs=seekInputs(container,reorderform);for(i=0;i<inputs.length;i+=1){inputs[i].value=i}if(reorderform&&reorderform.action){var order=$(reorderform).serialize();$.post(reorderform.action,order,function(type,data,evt){})}}};var setDefaultValue=function(target,path,value){var previousValue=fluid.get(target,path);var valueToSet=previousValue||value;fluid.set(target,path,valueToSet)};fluid.reorderImages=function(container,options){var defaults=fluid.defaults("fluid.reorderImages");var mergedOptions=fluid.merge(defaults.mergePolicy,{},defaults,options);container=fluid.container(container);setDefaultValue(mergedOptions,"listeners.afterMove",mergedOptions.afterMoveCallback||createIDAfterMoveListener(container));setDefaultValue(mergedOptions,"selectors.movables",createImageCellFinder(container,container.prop("id")));var reorderer=fluid.reorderer(container,mergedOptions);fluid.tabindex($("a",container),-1);addThumbnailActivateHandler(container);return reorderer};fluid.lightbox=fluid.reorderImages;fluid.defaults("fluid.reorderImages",{layoutHandler:"fluid.gridLayoutHandler",selectors:{labelSource:".flc-reorderer-imageTitle"}})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.moduleLayout");fluid.moduleLayout.findColumnAndItemIndices=function(item,layout){return fluid.find(layout.columns,function(column,colIndex){var index=$.inArray(item,column.elements);return index===-1?undefined:{columnIndex:colIndex,itemIndex:index}},{columnIndex:-1,itemIndex:-1})};fluid.moduleLayout.findColIndex=function(item,layout){return fluid.find(layout.columns,function(column,colIndex){return item===column.container?colIndex:undefined},-1)};fluid.moduleLayout.updateLayout=function(item,target,position,layout){item=fluid.unwrap(item);target=fluid.unwrap(target);var itemIndices=fluid.moduleLayout.findColumnAndItemIndices(item,layout);layout.columns[itemIndices.columnIndex].elements.splice(itemIndices.itemIndex,1);var targetCol;if(position===fluid.position.INSIDE){targetCol=layout.columns[fluid.moduleLayout.findColIndex(target,layout)].elements;targetCol.splice(targetCol.length,0,item)}else{var relativeItemIndices=fluid.moduleLayout.findColumnAndItemIndices(target,layout);targetCol=layout.columns[relativeItemIndices.columnIndex].elements;position=fluid.normalisePosition(position,itemIndices.columnIndex===relativeItemIndices.columnIndex,relativeItemIndices.itemIndex,itemIndices.itemIndex);var relative=position===fluid.position.BEFORE?0:1;targetCol.splice(relativeItemIndices.itemIndex+relative,0,item)}};fluid.moduleLayout.layoutFromFlat=function(container,columns,portlets){var layout={};layout.container=container;layout.columns=fluid.transform(columns,function(column){return{container:column,elements:$.makeArray(portlets.filter(function(){return fluid.dom.isContainer(column,this)}))}});return layout};fluid.moduleLayout.layoutFromIds=function(idLayout){return{container:fluid.byId(idLayout.id),columns:fluid.transform(idLayout.columns,function(column){return{container:fluid.byId(column.id),elements:fluid.transform(column.children,fluid.byId)}})}};fluid.moduleLayout.layoutToIds=function(idLayout){return{id:fluid.getId(idLayout.container),columns:fluid.transform(idLayout.columns,function(column){return{id:fluid.getId(column.container),children:fluid.transform(column.elements,fluid.getId)}})}};var defaultOnShowKeyboardDropWarning=function(item,dropWarning){if(dropWarning){var offset=$(item).offset();dropWarning=$(dropWarning);dropWarning.css("position","absolute");dropWarning.css("top",offset.top);dropWarning.css("left",offset.left)}};fluid.defaults(true,"fluid.moduleLayoutHandler",{orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.REGIONS,selectablesTabindex:-1,sentinelize:true});fluid.moduleLayoutHandler=function(container,options,dropManager,dom){var that={};function computeLayout(){var togo;if(options.selectors.modules){togo=fluid.moduleLayout.layoutFromFlat(container,dom.locate("columns"),dom.locate("modules"))}if(!togo){var idLayout=fluid.get(options,"moduleLayout.layout");fluid.moduleLayout.layoutFromIds(idLayout)}return togo}var layout=computeLayout();that.layout=layout;function isLocked(item){var lockedModules=options.selectors.lockedModules?dom.fastLocate("lockedModules"):[];return $.inArray(item,lockedModules)!==-1}that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.WRAP_LOCKED_STRATEGY,fluid.reorderer.GEOMETRIC_STRATEGY,dropManager,dom,options.disableWrap);that.getGeometricInfo=function(){var extents=[];var togo={extents:extents,sentinelize:options.sentinelize};togo.elementMapper=function(element){return isLocked(element)?"locked":null};togo.elementIndexer=function(element){var indices=fluid.moduleLayout.findColumnAndItemIndices(element,that.layout);return{index:indices.itemIndex,length:layout.columns[indices.columnIndex].elements.length,moduleIndex:indices.columnIndex,moduleLength:layout.columns.length}};for(var col=0;col<layout.columns.length;col++){var column=layout.columns[col];var thisEls={orientation:options.orientation,elements:$.makeArray(column.elements),parentElement:column.container};extents.push(thisEls)}return togo};function computeModules(all){return function(){var modules=fluid.accumulate(layout.columns,function(column,list){return list.concat(column.elements)},[]);if(!all){fluid.remove_if(modules,isLocked)}return modules}}that.returnedOptions={selectors:{movables:computeModules(false),dropTargets:computeModules(false),selectables:computeModules(true)},listeners:{onMove:{priority:"last",listener:function(item,requestedPosition){fluid.moduleLayout.updateLayout(item,requestedPosition.element,requestedPosition.position,layout)}},onRefresh:function(){layout=computeLayout();that.layout=layout},"onShowKeyboardDropWarning.setPosition":defaultOnShowKeyboardDropWarning}};that.getModel=function(){return fluid.moduleLayout.layoutToIds(layout)};return that}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.reorderLayout=function(container,userOptions){var assembleOptions={layoutHandler:"fluid.moduleLayoutHandler",selectors:{columns:".flc-reorderer-column",modules:".flc-reorderer-module"}};var options=$.extend(true,assembleOptions,userOptions);return fluid.reorderer(container,options)}})(jQuery,fluid_1_4);/*
+ * jQuery UI AriaTabs (12.07.10)
+ * http://github.com/fnagel/jQuery-Accessible-RIA
+ *
+ * Copyright (c) 2009 Felix Nagel for Namics (Deustchland) GmbH
+ * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+ *
+ * Depends: ui.core.js 1.8
+ *             ui.tabs.js
+ */
+(function($){$.fn.extend($.ui.tabs.prototype,{_create:function(){var self=this,options=this.options;if($.address){var jqAddressDefOpt={enable:true,title:{enable:true,split:" | "}};if(!$.isEmptyObject(options.jqAddress)){$.extend(true,jqAddressDefOpt,options.jqAddress)}else{options.jqAddress={}}$.extend(true,options.jqAddress,jqAddressDefOpt)}if($.address&&options.jqAddress.enable){var anchorId="#"+$.address.value().replace("/","")}self._tabify(true);this.anchors.bind(options.event+".tabs-accessibility",function(){this.focus()});self.list.attr("role","tablist");for(var x=0;x<self.anchors.length;x++){if($.address&&options.jqAddress.enable&&anchorId!="#"&&$(self.anchors[x]).attr("href")==anchorId){self.select(x)}self._ariaInit(x)}self.list.keydown(function(event){switch(event.keyCode){case $.ui.keyCode.RIGHT:self.select(options.selected+1);return false;break;case $.ui.keyCode.DOWN:self.select(options.selected+1);break;case $.ui.keyCode.UP:self.select(options.selected-1);return false;break;case $.ui.keyCode.LEFT:self.select(options.selected-1);return false;break;case $.ui.keyCode.END:self.select(self.anchors.length-1);return false;break;case $.ui.keyCode.HOME:self.select(0);return false;break}});if($.address&&this.options.jqAddress.enable){$.address.externalChange(function(event){var anchorId="#"+event.value.replace("/","");var x=0;while(x<self.anchors.length){if($(self.anchors[x]).attr("href")==anchorId){self.select(x);return }x++}})}},_original_load:$.ui.tabs.prototype.load,load:function(index){if($.address&&this.options.jqAddress.enable){if($(this.anchors[0]).attr("aria-selected")!==undefined){if(this.options.forceFirst===0&&index!==0){if($.address.value()==""){$.address.history(false)}$.address.value($(this.anchors[0]).attr("href").replace(/^#/,""));$.address.history(true);this.options.forceFirst=false}if(this.options.jqAddress.title.enable){$.address.title($.address.title().split(this.options.jqAddress.title.split)[0]+this.options.jqAddress.title.split+$(this.anchors[index]).text())}$.address.value($(this.anchors[index]).attr("href").replace(/^#/,""))}else{this.options.forceFirst=index}}for(var x=0;x<this.anchors.length;x++){this._ariaSet(x,false);if($.data(this.anchors[x],"href.tabs")){$(this.panels[x]).removeAttr("aria-live").removeAttr("aria-busy")}}if($.data(this.anchors[index],"href.tabs")){$(this.panels[index]).attr("aria-live","polite").attr("aria-busy","true")}this._original_load(index);if($.data(this.anchors[index],"href.tabs")){$(this.panels[index]).attr("aria-busy","false")}this._ariaSet(index,true)},_ariaSet:function(index,state){var tabindex=(state)?0:-1;var anchor=$(this.anchors[index]);anchor.attr("tabindex",tabindex).attr("aria-selected",state);if(state){if(!$.browser.msie){anchor.focus()}}else{anchor.closest("li").removeClass("ui-state-focus")}$(this.panels[index]).attr("aria-hidden",!state).attr("aria-expanded",state);if($.browser.msie){this.options.timeout=window.setTimeout(function(){anchor.focus()},100)}if(state){this._updateVirtualBuffer()}},_ariaInit:function(index){var self=this;var panelId=$(this.panels[index]).attr("id");$(this.anchors[index]).attr("role","tab").attr("aria-controls",panelId).attr("id",panelId+"-tab").parent().attr("role","presentation");$(this.panels[index]).attr("role","tabpanel").attr("tabindex",0).attr("aria-labelledby",panelId+"-tab");if(this.options.collapsible){$(this.anchors[index]).bind(this.options.event,function(event){self._ariaSet(index,!$(self.panels[index]).hasClass("ui-tabs-hide"))})}},_original_add:$.ui.tabs.prototype.add,add:function(url,label,index){this._original_add(url,label,index);this.element.attr("aria-live","polite").attr("aria-relevant","additions");if(index){this._ariaInit(index);this._ariaSet(index,false)}else{this._ariaInit(this.anchors.length-1);this._ariaSet(this.anchors.length-1,false)}},_original_remove:$.ui.tabs.prototype.remove,remove:function(index){this._original_remove(index);this.element.attr("aria-live","polite").attr("aria-relevant","removals")},_original_destroy:$.ui.tabs.prototype.destroy,destroy:function(){var self=this,options=this.options;self.element.removeAttr("role").removeAttr("aria-live").removeAttr("aria-relevant");self.list.removeAttr("role");for(var x=0;x<self.anchors.length;x++){$(self.anchors[x]).removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("role").removeAttr("id").removeAttr("tabindex").parent().removeAttr("role");$(self.panels[x]).removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("aria-labelledby").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-relevant").removeAttr("role")}$("body>form #virtualBufferForm").parent().remove();this._original_destroy()},_updateVirtualBuffer:function(){var form=$("body>form #virtualBufferForm");if(form.length){if(form.val()=="1"){form.val("0")}else{form.val("1")}if(form.hasClass("ui-accessibility-odd")){form.addClass("ui-accessibility-even").removeClass("ui-accessibility-odd")}else{form.addClass("ui-accessibility-odd").removeClass("ui-accessibility-even")}}else{$("body").append('<form><input id="virtualBufferForm" type="hidden" value="1" /></form>')}}})})(jQuery);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.tabs",{gradeNames:["fluid.viewComponent","autoInit"],tabOptions:{},events:{tabsselect:"preventable",tabsload:null,tabsshow:null},finalInitFunction:"fluid.tabs.finalInit"});fluid.tabs.finalInit=function(that){that.container.tabs(that.options.tabOptions);fluid.each(that.options.events,function(value,eventName){that.container.bind(eventName,function(event,ui){return that.events[eventName].fire(that,event,ui)})})}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.tableOfContents");fluid.tableOfContents.insertAnchor=function(name,element){$("<a></a>",{name:name,id:name}).insertBefore(element)};fluid.tableOfContents.generateGUID=function(){return fluid.allocateSimpleId()};fluid.tableOfContents.filterHeadings=function(headings){return headings.filter(":visible")};fluid.tableOfContents.finalInit=function(that){var headings=that.filterHeadings(that.locate("headings"));that.headingTextToAnchor=function(heading){var guid=that.generateGUID();var anchorInfo={id:guid,url:"#"+guid};that.insertAnchor(anchorInfo.id,heading);return anchorInfo};that.anchorInfo=fluid.transform(headings,function(heading){return that.headingTextToAnchor(heading)});that.hide=function(){that.locate("tocContainer").hide()};that.show=function(){that.locate("tocContainer").show()};that.model=that.modelBuilder.assembleModel(headings,that.anchorInfo);that.events.onReady.fire()};fluid.defaults("fluid.tableOfContents",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.tableOfContents.finalInit",components:{levels:{type:"fluid.tableOfContents.levels",container:"{tableOfContents}.dom.tocContainer",createOnEvent:"onReady",options:{model:{headings:"{tableOfContents}.model"},events:{afterRender:"{tableOfContents}.events.afterRender"}}},modelBuilder:{type:"fluid.tableOfContents.modelBuilder"}},invokers:{insertAnchor:"fluid.tableOfContents.insertAnchor",generateGUID:"fluid.tableOfContents.generateGUID",filterHeadings:"fluid.tableOfContents.filterHeadings"},selectors:{headings:":header",tocContainer:".flc-toc-tocContainer"},events:{onReady:null,afterRender:null}});fluid.registerNamespace("fluid.tableOfContents.modelBuilder");fluid.tableOfContents.modelBuilder.toModel=function(headingInfo,modelLevelFn){var headings=fluid.copy(headingInfo);var buildModelLevel=function(headings,level){var modelLevel=[];while(headings.length>0){var heading=headings[0];if(heading.level<level){break}if(heading.level>level){var subHeadings=buildModelLevel(headings,level+1);if(modelLevel.length>0){modelLevel[modelLevel.length-1].headings=subHeadings}else{modelLevel=modelLevelFn(modelLevel,subHeadings)}}if(heading.level===level){modelLevel.push(heading);headings.shift()}}return modelLevel};return buildModelLevel(headings,1)};fluid.tableOfContents.modelBuilder.gradualModelLevelFn=function(modelLevel,subHeadings){var subHeadingsClone=fluid.copy(subHeadings);subHeadingsClone[0].level--;return subHeadingsClone};fluid.tableOfContents.modelBuilder.skippedModelLevelFn=function(modelLevel,subHeadings){modelLevel.push({headings:subHeadings});return modelLevel};fluid.tableOfContents.modelBuilder.finalInit=function(that){that.convertToHeadingObjects=function(headings,anchorInfo){headings=$(headings);return fluid.transform(headings,function(heading,index){return{level:that.headingCalculator.getHeadingLevel(heading),text:$(heading).text(),url:anchorInfo[index].url}})};that.assembleModel=function(headings,anchorInfo){var headingInfo=that.convertToHeadingObjects(headings,anchorInfo);return that.toModel(headingInfo)}};fluid.defaults("fluid.tableOfContents.modelBuilder",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.tableOfContents.modelBuilder.finalInit",components:{headingCalculator:{type:"fluid.tableOfContents.modelBuilder.headingCalculator"}},invokers:{toModel:{funcName:"fluid.tableOfContents.modelBuilder.toModel",args:["{arguments}.0","{modelBuilder}.modelLevelFn"]},modelLevelFn:"fluid.tableOfContents.modelBuilder.gradualModelLevelFn"}});fluid.registerNamespace("fluid.tableOfContents.modelBuilder.headingCalculator");fluid.tableOfContents.modelBuilder.headingCalculator.finalInit=function(that){that.getHeadingLevel=function(heading){return $.inArray(heading.tagName,that.options.levels)+1}};fluid.defaults("fluid.tableOfContents.modelBuilder.headingCalculator",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.tableOfContents.modelBuilder.headingCalculator.finalInit",levels:["H1","H2","H3","H4","H5","H6"]});fluid.registerNamespace("fluid.tableOfContents.levels");fluid.tableOfContents.levels.finalInit=function(that){fluid.fetchResources(that.options.resources,function(){that.container.append(that.options.resources.template.resourceText);that.refreshView()})};fluid.tableOfContents.levels.objModel=function(type,ID){var objModel={ID:type+ID+":",children:[]};return objModel};fluid.tableOfContents.levels.handleEmptyItemObj=function(itemObj){itemObj.decorators=[{type:"addClass",classes:"fl-tableOfContents-hide-bullet"}]};fluid.tableOfContents.levels.generateTree=function(headingsModel,currentLevel){currentLevel=currentLevel||0;var levelObj=fluid.tableOfContents.levels.objModel("level",currentLevel);if(headingsModel.headings.length===0){return[]}if(currentLevel===0){var tree={children:[fluid.tableOfContents.levels.generateTree(headingsModel,currentLevel+1)]};return tree}$.each(headingsModel.headings,function(index,model){var itemObj=fluid.tableOfContents.levels.objModel("items",currentLevel);var linkObj={ID:"link"+currentLevel,target:model.url,linktext:model.text};if(!model.level){fluid.tableOfContents.levels.handleEmptyItemObj(itemObj)}else{itemObj.children.push(linkObj)}if(model.headings){itemObj.children.push(fluid.tableOfContents.levels.generateTree(model,currentLevel+1))}levelObj.children.push(itemObj)});return levelObj};fluid.tableOfContents.levels.produceTree=function(that){return fluid.tableOfContents.levels.generateTree(that.model)};fluid.defaults("fluid.tableOfContents.levels",{gradeNames:["fluid.rendererComponent","autoInit"],finalInitFunction:"fluid.tableOfContents.levels.finalInit",produceTree:"fluid.tableOfContents.levels.produceTree",selectors:{level1:".flc-toc-levels-level1",level2:".flc-toc-levels-level2",level3:".flc-toc-levels-level3",level4:".flc-toc-levels-level4",level5:".flc-toc-levels-level5",level6:".flc-toc-levels-level6",items1:".flc-toc-levels-items1",items2:".flc-toc-levels-items2",items3:".flc-toc-levels-items3",items4:".flc-toc-levels-items4",items5:".flc-toc-levels-items5",items6:".flc-toc-levels-items6",link1:".flc-toc-levels-link1",link2:".flc-toc-levels-link2",link3:".flc-toc-levels-link3",link4:".flc-toc-levels-link4",link5:".flc-toc-levels-link5",link6:".flc-toc-levels-link6"},repeatingSelectors:["level1","level2","level3","level4","level5","level6","items1","items2","items3","items4","items5","items6"],model:{headings:[]},resources:{template:{forceCache:true,url:"../html/TableOfContents.html"}},rendererFnOptions:{noexpand:true},rendererOptions:{debugMode:false}})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.generate=function(n,generator){var togo=[];for(var i=0;i<n;++i){togo[i]=typeof (generator)==="function"?generator.call(null,i):generator}return togo};fluid.registerNamespace("fluid.url");fluid.url.generateDepth=function(depth){return fluid.generate(depth,"../").join("")};fluid.url.parsePathInfo=function(pathInfo){var togo={};var segs=pathInfo.split("/");if(segs.length>0){var top=segs.length-1;var dotpos=segs[top].indexOf(".");if(dotpos!==-1){togo.extension=segs[top].substring(dotpos+1);segs[top]=segs[top].substring(0,dotpos)}}togo.pathInfo=segs;return togo};fluid.url.parsePathInfoTrim=function(pathInfo){var togo=fluid.url.parsePathInfo(pathInfo);if(togo.pathInfo[togo.pathInfo.length-1]===""){togo.pathInfo.length--}return togo};fluid.url.collapseSegs=function(segs,from,to){var togo="";if(from===undefined){from=0}if(to===undefined){to=segs.length}for(var i=from;i<to-1;++i){togo+=segs[i]+"/"}if(to>from){togo+=segs[to-1]}return togo};fluid.url.makeRelPath=function(parsed,index){var togo=fluid.kettle.collapseSegs(parsed.pathInfo,index);if(parsed.extension){togo+="."+parsed.extension}return togo};fluid.url.cononocolosePath=function(pathInfo){var consume=0;for(var i=0;i<pathInfo.length;++i){if(pathInfo[i]===".."){++consume}else{if(consume!==0){pathInfo.splice(i-consume*2,consume*2);i-=consume*2;consume=0}}}return pathInfo};fluid.url.parseUri=function(str){var o=fluid.url.parseUri.options,m=o.parser[o.strictMode?"strict":"loose"].exec(str),uri={},i=14;while(i--){uri[o.key[i]]=m[i]||""}uri[o.q.name]={};uri[o.key[12]].replace(o.q.parser,function($0,$1,$2){if($1){uri[o.q.name][$1]=$2}});return uri};fluid.url.parseUri.options={strictMode:true,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}};fluid.url.parseSegs=function(url){var parsed=fluid.url.parseUri(url);var parsedSegs=fluid.url.parsePathInfoTrim(parsed.directory);return parsedSegs.pathInfo};fluid.url.isAbsoluteUrl=function(url){var parseRel=fluid.url.parseUri(url);return(parseRel.host||parseRel.protocol||parseRel.directory.charAt(0)==="/")};fluid.url.computeRelativePrefix=function(outerLocation,iframeLocation,relPath){if(fluid.url.isAbsoluteUrl(relPath)){return relPath}var relSegs=fluid.url.parsePathInfo(relPath).pathInfo;var parsedOuter=fluid.url.parseSegs(outerLocation);var parsedRel=parsedOuter.concat(relSegs);fluid.url.cononocolosePath(parsedRel);var parsedInner=fluid.url.parseSegs(iframeLocation);var seg=0;for(;seg<parsedRel.length;++seg){if(parsedRel[seg]!=parsedInner[seg]){break}}var excess=parsedInner.length-seg;var back=fluid.url.generateDepth(excess);var front=fluid.url.collapseSegs(parsedRel,seg);return back+front}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.uiOptions.store",{gradeNames:["fluid.littleComponent","autoInit"],defaultSiteSettings:{textFont:"default",theme:"default",textSize:1,lineSpacing:1,layout:false,toc:false,links:false,inputsLarger:false}});fluid.defaults("fluid.cookieStore",{gradeNames:["fluid.uiOptions.store","autoInit"],invokers:{fetch:{funcName:"fluid.cookieStore.fetch",args:["{cookieStore}.options.cookie.name","{cookieStore}.options.defaultSiteSettings"]},save:{funcName:"fluid.cookieStore.save",args:["{arguments}.0","{cookieStore}.options.cookie"]}},cookie:{name:"fluid-ui-settings",path:"/",expires:""}});fluid.cookieStore.fetch=function(cookieName,defaults){var cookie=document.cookie;var cookiePrefix=cookieName+"=";var retObj,startIndex,endIndex;if(cookie.length>0){startIndex=cookie.indexOf(cookiePrefix);if(startIndex>-1){startIndex=startIndex+cookiePrefix.length;endIndex=cookie.indexOf(";",startIndex);if(endIndex<startIndex){endIndex=cookie.length}retObj=JSON.parse(decodeURIComponent(cookie.substring(startIndex,endIndex)))}}return retObj||defaults};fluid.cookieStore.assembleCookie=function(cookieOptions){var cookieStr=cookieOptions.name+"="+cookieOptions.data;if(cookieOptions.expires){cookieStr+="; expires="+cookieOptions.expires}if(cookieOptions.path){cookieStr+="; path="+cookieOptions.path}return cookieStr};fluid.cookieStore.save=function(settings,cookieOptions){cookieOptions.data=encodeURIComponent(JSON.stringify(settings));document.cookie=fluid.cookieStore.assembleCookie(cookieOptions)};fluid.defaults("fluid.tempStore",{gradeNames:["fluid.uiOptions.store","autoInit"],invokers:{fetch:{funcName:"fluid.tempStore.fetch",args:["{tempStore}"]},save:{funcName:"fluid.tempStore.save",args:["{arguments}.0","{tempStore}"]}},finalInitFunction:"fluid.tempStore.finalInit"});fluid.tempStore.finalInit=function(that){that.model=that.options.defaultSiteSettings};fluid.tempStore.fetch=function(that){return that.model};fluid.tempStore.save=function(settings,that){that.model=settings}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.browser.version");fluid.browser.msie=function(){var isIE=($.browser.msie);return isIE?fluid.typeTag("fluid.browser.msie"):undefined};fluid.browser.majorVersion=function(){var version=$.browser.version;var dotpos=version.indexOf(".");var majorVersion=version.substring(0,dotpos);return fluid.typeTag("fluid.browser.majorVersion."+majorVersion)};var features={browserIE:fluid.browser.msie(),browserMajorVersion:fluid.browser.majorVersion()};fluid.merge(null,fluid.staticEnvironment,features);fluid.hasFeature=function(tagName){return fluid.find(fluid.staticEnvironment,function(value){return value&&value.typeName===tagName?true:undefined})};var isTrue=function(val){return val&&(val===true||val==="true")};var setToc=function(that,tocSetting){if(isTrue(tocSetting)){if(that.tableOfContents){that.tableOfContents.show()}else{$(document).ready(that.events.onCreateTOCReady.fire)}}else{if(that.tableOfContents){that.tableOfContents.hide()}}};fluid.defaults("fluid.uiEnhancer",{gradeNames:["fluid.viewComponent","autoInit"],components:{textSize:{type:"fluid.uiEnhancer.textSizer",container:"{uiEnhancer}.container",options:{invokers:{calcInitSize:{funcName:"fluid.uiEnhancer.textSizer.calcInitSize",args:["{textSizer}","{uiEnhancer}.options.fontSizeMap","{uiEnhancer}.options.px2emFactor"]}}}},tableOfContents:{type:"fluid.tableOfContents",container:"{uiEnhancer}.container",createOnEvent:"onCreateTOCReady",options:{components:{levels:{type:"fluid.tableOfContents.levels",options:{resources:{template:{forceCache:true,url:"{uiEnhancer}.options.tocTemplate"}}}}}}},textFont:{type:"fluid.uiEnhancer.classSwapper",container:"{uiEnhancer}.container",options:{classes:"{uiEnhancer}.options.classnameMap.textFont"}},lineSpacing:{type:"fluid.uiEnhancer.lineSpacer",container:"{uiEnhancer}.container",options:{invokers:{calcInitSize:{funcName:"fluid.uiEnhancer.lineSpacer.calcInitSize",args:["{lineSpacer}","{uiEnhancer}.options.fontSizeMap"]}}}},theme:{type:"fluid.uiEnhancer.classSwapper",container:"{uiEnhancer}.container",options:{classes:"{uiEnhancer}.options.classnameMap.theme"}},settingsStore:{type:"fluid.uiOptions.store",options:{defaultSiteSettings:"{uiEnhancer}.options.defaultSiteSettings"}}},invokers:{updateModel:{funcName:"fluid.uiEnhancer.updateModel",args:["@0","{uiEnhancer}.applier"]},updateFromSettingsStore:{funcName:"fluid.uiEnhancer.updateFromSettingsStore",args:["{uiEnhancer}"]},refreshView:{funcName:"fluid.uiEnhancer.refreshView",args:["{uiEnhancer}"]},styleElements:"fluid.uiEnhancer.styleElements",setLayout:"fluid.uiEnhancer.setLayout",styleLinks:"fluid.uiEnhancer.styleLinks",styleInputs:"fluid.uiEnhancer.styleInputs",setIE6ColorInversion:"fluid.uiEnhancer.setIE6ColorInversion"},events:{onCreateTOCReady:null,modelChanged:null},classnameMap:{textFont:{"default":"",times:"fl-font-uio-times",comic:"fl-font-uio-comic-sans",arial:"fl-font-uio-arial",verdana:"fl-font-uio-verdana"},theme:{"default":"fl-uio-default-theme",bw:"fl-theme-uio-bw fl-theme-bw",wb:"fl-theme-uio-wb fl-theme-wb",by:"fl-theme-uio-by fl-theme-by",yb:"fl-theme-uio-yb fl-theme-yb"},layout:"fl-layout-linear",links:"fl-text-underline fl-text-bold fl-text-larger",inputsLarger:"fl-text-larger"},fontSizeMap:{"xx-small":"9px","x-small":"11px",small:"13px",medium:"15px",large:"18px","x-large":"23px","xx-large":"30px"},px2emFactor:"16",selectors:{colorInversion:".fl-inverted-color"},styles:{colorInversionClass:"fl-inverted-color"},finalInitFunction:"fluid.uiEnhancer.finalInit"});fluid.uiEnhancer.finalInit=function(that){that.applier.modelChanged.addListener("",function(newModel,oldModel,changeRequest){that.events.modelChanged.fire(newModel,oldModel,changeRequest);that.refreshView()});that.updateFromSettingsStore();return that};fluid.uiEnhancer.updateFromSettingsStore=function(that){that.updateModel(that.settingsStore.fetch())};fluid.uiEnhancer.updateModel=function(newModel,applier){applier.requestChange("",newModel)};fluid.uiEnhancer.refreshView=function(that){that.textSize.set(that.model.textSize);that.textFont.swap(that.model.textFont);that.lineSpacing.set(that.model.lineSpacing);that.theme.swap(that.model.theme);that.setLayout(that);setToc(that,that.model.toc);that.styleLinks(that);that.styleInputs(that);that.setIE6ColorInversion(that)};fluid.uiEnhancer.styleElements=function(elements,setting,classname){if(setting){elements.addClass(classname)}else{$("."+classname,elements).andSelf().removeClass(classname)}};fluid.uiEnhancer.setLayout=function(that){that.styleElements(that.container,that.model.layout,that.options.classnameMap.layout)};fluid.uiEnhancer.styleLinks=function(that){var links=$("a",that.container);that.styleElements(links,that.model.links,that.options.classnameMap.links)};fluid.uiEnhancer.styleInputs=function(that){that.styleElements($("input, button",that.container),that.model.inputsLarger,that.options.classnameMap.inputsLarger)};fluid.uiEnhancer.setIE6ColorInversion=function(that){if(fluid.hasFeature("fluid.browser.msie")&&fluid.hasFeature("fluid.browser.majorVersion.6")&&that.model.theme==="default"){that.locate("colorInversion").removeClass(that.options.styles.colorInversionClass)}};fluid.uiEnhancer.getTextSizeInPx=function(container,fontSizeMap){var fontSize=container.css("font-size");if(fontSizeMap[fontSize]){fontSize=fontSizeMap[fontSize]}return parseFloat(fontSize)};fluid.uiEnhancer.getTextSizeInEm=function(container,fontSizeMap,px2emFactor){return Math.round(fluid.uiEnhancer.getTextSizeInPx(container,fontSizeMap)/px2emFactor*10000)/10000};fluid.defaults("fluid.uiEnhancer.textSizer",{gradeNames:["fluid.viewComponent","autoInit"],invokers:{set:{funcName:"fluid.uiEnhancer.textSizer.set",args:["@0","{textSizer}"]}}});fluid.uiEnhancer.textSizer.set=function(times,that){if(!that.initialSize){that.calcInitSize()}if(times===1){that.container.css("font-size","")}else{if(times&&times>0){var targetSize=that.initialSize*times+"em";that.container.css("font-size",targetSize)}}};fluid.uiEnhancer.textSizer.calcInitSize=function(that,fontSizeMap,px2emFactor){that.initialSize=fluid.uiEnhancer.getTextSizeInEm(that.container,fontSizeMap,px2emFactor)};fluid.defaults("fluid.uiEnhancer.classSwapper",{gradeNames:["fluid.viewComponent","autoInit"],invokers:{clearClasses:{funcName:"fluid.uiEnhancer.classSwapper.clearClasses",args:["{classSwapper}"]},swap:{funcName:"fluid.uiEnhancer.classSwapper.swap",args:["@0","{classSwapper}"]}},classes:{},finalInitFunction:"fluid.uiEnhancer.classSwapper.finalInit"});fluid.uiEnhancer.classSwapper.finalInit=function(that){that.classSelector="";that.classStr="";fluid.each(that.options.classes,function(className){if(className){that.classSelector+=that.classSelector?", ."+className:"."+className;that.classStr+=that.classStr?" "+className:className}})};fluid.uiEnhancer.classSwapper.clearClasses=function(that){that.container.removeClass(that.classStr)};fluid.uiEnhancer.classSwapper.swap=function(classname,that){that.clearClasses(that);that.container.addClass(that.options.classes[classname])};fluid.defaults("fluid.uiEnhancer.lineSpacer",{gradeNames:["fluid.viewComponent","autoInit"],invokers:{set:{funcName:"fluid.uiEnhancer.lineSpacer.set",args:["@0","{lineSpacer}"]}}});fluid.uiEnhancer.lineSpacer.set=function(times,that){if(!that.initialSize){that.calcInitSize()}var newLineSpacing=times===""||times===1?that.initialSize:times*that.initialSize;that.container.css("line-height",newLineSpacing+"em")};fluid.uiEnhancer.lineSpacer.calcInitSize=function(that,fontSizeMap){var lineHeight=that.container.css("lineHeight");if(lineHeight==="normal"){return 1}if($.browser.msie){var lineHeightInIE;lineHeightInIE=that.container[0].currentStyle.lineHeight;if(lineHeightInIE.match(/[0-9]$/)){that.initialSize=lineHeightInIE;return }}that.initialSize=Math.round(parseFloat(lineHeight)/fluid.uiEnhancer.getTextSizeInPx(that.container,fontSizeMap)*100)/100};fluid.pageEnhancer=function(uiEnhancerOptions){var that=fluid.initLittleComponent("fluid.pageEnhancer");uiEnhancerOptions=fluid.copy(uiEnhancerOptions);uiEnhancerOptions.originalUserOptions=fluid.copy(uiEnhancerOptions);that.uiEnhancerOptions=uiEnhancerOptions;fluid.initDependents(that);fluid.staticEnvironment.uiEnhancer=that.uiEnhancer;return that};fluid.defaults("fluid.pageEnhancer",{gradeNames:["fluid.littleComponent"],components:{uiEnhancer:{type:"fluid.uiEnhancer",container:"body",options:"{pageEnhancer}.uiEnhancerOptions"}}});fluid.demands("fluid.uiOptions.store",["fluid.uiEnhancer"],{funcName:"fluid.cookieStore"})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.textfieldSlider",{gradeNames:["fluid.viewComponent","autoInit"],components:{textfield:{type:"fluid.textfieldSlider.textfield",container:"{textfieldSlider}.dom.textfield",options:{model:"{textfieldSlider}.model",applier:"{textfieldSlider}.applier"}},slider:{type:"fluid.textfieldSlider.slider",container:"{textfieldSlider}.dom.slider",options:{model:"{textfieldSlider}.model",applier:"{textfieldSlider}.applier"}}},selectors:{textfield:".flc-textfieldSlider-field",slider:".flc-textfieldSlider-slider"},events:{modelChanged:null},model:{value:null,min:0,max:100},sliderOptions:{orientation:"horizontal",step:0.1},finalInitFunction:"fluid.textfieldSlider.finalInit"});fluid.textfieldSlider.finalInit=function(that){var sliderOptions=$.extend(true,{},that.options.sliderOptions,that.model);that.slider.initSlider(sliderOptions);that.refreshView=function(){var val=that.model.value;that.textfield.container.val(val);that.slider.setSliderValue(val);that.slider.setSliderAria(val)};that.applier.modelChanged.addListener("value",function(newModel){that.events.modelChanged.fire(newModel.value)});that.events.modelChanged.addListener(that.refreshView);that.refreshView()};fluid.defaults("fluid.textfieldSlider.textfield",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.textfieldSlider.textfield.finalInit"});fluid.textfieldSlider.validateValue=function(model,changeRequest,applier){var oldValue=model.value;var newValue=changeRequest.value;var isValidNum=!isNaN(parseInt(newValue,10));if(isValidNum){if(newValue<model.min){newValue=model.min}else{if(newValue>model.max){newValue=model.max}}changeRequest.value=newValue}else{changeRequest.value=oldValue}};fluid.textfieldSlider.textfield.finalInit=function(that){that.applier.guards.addListener({path:"value",transactional:true},fluid.textfieldSlider.validateValue);that.container.change(function(source){that.applier.requestChange("value",source.target.value)})};fluid.defaults("fluid.textfieldSlider.slider",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.textfieldSlider.slider.finalInit",selectors:{thumb:".ui-slider-handle"}});var initSliderAria=function(thumb,opts){var ariaDefaults={role:"slider","aria-valuenow":opts.value,"aria-valuemin":opts.min,"aria-valuemax":opts.max};thumb.attr(ariaDefaults)};fluid.textfieldSlider.slider.finalInit=function(that){that.slider=that.container.slider(that.model);that.initSlider=function(sliderOptions){var slider=that.slider.slider(sliderOptions);initSliderAria(that.locate("thumb"),sliderOptions)};that.setSliderValue=function(value){that.slider.slider("value",value)};that.setSliderAria=function(value){that.locate("thumb").attr("aria-valuenow",value)};that.slider.bind("slide",function(e,ui){that.applier.requestChange("value",ui.value)})}})(jQuery,fluid_1_4);(function($,fluid){fluid.registerNamespace("fluid.uiOptions.inline");fluid.defaults("fluid.uiOptions.inline",{gradeNames:["fluid.viewComponent"],mergePolicy:{uiOptionsTransform:"noexpand",derivedDefaults:"noexpand"},components:{uiOptionsLoader:{type:"fluid.uiOptions.loader"},templateLoader:{priority:"first",type:"fluid.uiOptions.templateLoader"}},uiOptionsTransform:{transformer:"fluid.uiOptions.mapOptions",config:{"*.templateLoader":"templateLoader","*.templateLoader.*.templatePath.options.value":"prefix","*.uiOptionsLoader":"uiOptionsLoader","*.uiOptionsLoader.container":"container","*.uiOptionsLoader.*.uiOptions":"uiOptions","*.uiOptionsLoader.*.uiOptions.*.textControls":"textControls","*.uiOptionsLoader.*.uiOptions.*.layoutControls":"layoutControls","*.uiOptionsLoader.*.uiOptions.*.linksControls":"linksControls","*.uiOptionsLoader.*.uiOptions.*.preview":"preview","*.uiOptionsLoader.*.uiOptions.*.preview.*.enhancer":"previewEnhancer"}}});fluid.uiOptions.inline.makeCreator=function(componentName,processor){fluid.setGlobalValue(componentName,function(container,options){var defaults=fluid.defaults(componentName);options.container=container;options=processor(options);var mappedOptions=fluid.uiOptions.mapOptions(options,defaults.uiOptionsTransform.config,defaults.mergePolicy,fluid.copy(defaults.derivedDefaults));var that=fluid.initView(componentName,container,mappedOptions);fluid.initDependents(that);return that})};fluid.uiOptions.sortByKeyLength=function(inObject){var keys=[];for(var k in inObject){keys.push(k)}keys.sort(function(a,b){return a.length-b.length});return keys};fluid.uiOptions.mapOptionsRecord=function(options,sortedConfigKeys,config){var opRecs=[{},{},options||{}];var appliers=fluid.transform(opRecs,function(opRec){return fluid.makeChangeApplier(opRec)});fluid.each(sortedConfigKeys,function(origDest){var source=config[origDest];var dest=fluid.uiOptions.expandShortPath(origDest);var applier=appliers[origDest.charAt(0)==="!"?0:1];var value=fluid.get(options,source);if(value){applier.requestChange(dest,value,"ADD");appliers[2].requestChange(source,value,"DELETE")}});return opRecs};fluid.uiOptions.mapOptions=function(options,config,mergePolicy,derivedDefaults){var sortedConfigKeys=fluid.uiOptions.sortByKeyLength(config);var optrecs=fluid.uiOptions.mapOptionsRecord(options,sortedConfigKeys,config);var devrecs=fluid.uiOptions.mapOptionsRecord(derivedDefaults,sortedConfigKeys,config);var mergeOpts=[mergePolicy].concat(devrecs).concat(optrecs);return fluid.merge.apply(null,mergeOpts)};fluid.uiOptions.expandShortPath=function(path){if(path.charAt(0)==="!"){path=path.substring(1)}var strToreplaceFirst="components";var strToreplaceRest="options.components";var newPath=(path.charAt(0)==="*")?path.replace("*",strToreplaceFirst):path;newPath=newPath.replace(/\*/g,strToreplaceRest);return newPath};fluid.defaults("fluid.uiOptions.templateLoader",{gradeNames:["fluid.eventedComponent","autoInit"],finalInitFunction:"fluid.uiOptions.templateLoader.resolveTemplates",templates:{uiOptions:"%prefix/FatPanelUIOptions.html",textControls:"%prefix/UIOptionsTemplate-text.html",layoutControls:"%prefix/UIOptionsTemplate-layout.html",linksControls:"%prefix/UIOptionsTemplate-links.html"},components:{templatePath:{type:"fluid.uiOptions.templatePath"}}});fluid.uiOptions.transformUrls=function(toTransform,prefix){return fluid.transform(toTransform,function(item){return fluid.stringTemplate(item,{"prefix/":prefix})})};fluid.uiOptions.templateLoader.resolveTemplates=function(that){var mapped=fluid.uiOptions.transformUrls(that.options.templates,that.templatePath.options.value);that.resources=fluid.transform(mapped,function(url){return{url:url,forceCache:true}})};fluid.defaults("fluid.uiOptions.templatePath",{gradeNames:["fluid.littleComponent","autoInit"],value:"../html/"});fluid.demands("fluid.uiOptions.textControls",["fluid.uiOptions"],{options:{classnameMap:"{uiEnhancer}.options.classnameMap"}});fluid.demands("fluid.uiOptions.layoutControls",["fluid.uiOptions"],{options:{classnameMap:"{uiEnhancer}.options.classnameMap"}});fluid.demands("fluid.uiOptions.linksControls",["fluid.uiOptions"],{options:{classnameMap:"{uiEnhancer}.options.classnameMap"}});fluid.uiOptions.onReadyFirer=function(uiOptionsLoader,uiOptions){uiOptionsLoader.events.onReady.fire(uiOptionsLoader,uiOptions)};fluid.defaults("fluid.uiOptions.loader",{gradeNames:["fluid.viewComponent","autoInit"],resources:"{templateLoader}.resources",finalInitFunction:"fluid.uiOptions.loader.finalInit",events:{onUIOptionsTemplateReady:null,onUIOptionsComponentReady:null,onUIOptionsReadyBridge:{event:"onUIOptionsComponentReady",args:["{fluid.uiOptions.loader}","{arguments}.0"]},onReady:null},listeners:{onUIOptionsReadyBridge:{listener:fluid.uiOptions.onReadyFirer,priority:"last"}},components:{uiOptions:{type:"fluid.uiOptions",container:"{loader}.container",createOnEvent:"onUIOptionsTemplateReady",options:{events:{onUIOptionsComponentReady:"{loader}.events.onUIOptionsComponentReady"}}}}});fluid.uiOptions.loader.finalInit=function(that){fluid.fetchResources(that.options.resources,function(){that.events.onUIOptionsTemplateReady.fire()})};fluid.defaults("fluid.uiOptions",{gradeNames:["fluid.viewComponent","autoInit"],components:{textControls:{type:"fluid.uiOptions.textControls",container:"{uiOptions}.dom.textControls",createOnEvent:"onUIOptionsComponentReady",options:{model:"{uiOptions}.model",applier:"{uiOptions}.applier",events:{onUIOptionsRefresh:"{uiOptions}.events.onUIOptionsRefresh"}}},layoutControls:{type:"fluid.uiOptions.layoutControls",container:"{uiOptions}.dom.layoutControls",createOnEvent:"onUIOptionsComponentReady",options:{model:"{uiOptions}.model",applier:"{uiOptions}.applier",events:{onUIOptionsRefresh:"{uiOptions}.events.onUIOptionsRefresh"}}},linksControls:{type:"fluid.uiOptions.linksControls",container:"{uiOptions}.dom.linksControls",createOnEvent:"onUIOptionsComponentReady",options:{model:"{uiOptions}.model",applier:"{uiOptions}.applier",events:{onUIOptionsRefresh:"{uiOptions}.events.onUIOptionsRefresh"}}},preview:{type:"fluid.uiOptions.preview",createOnEvent:"onUIOptionsComponentReady",container:"{uiOptions}.dom.previewFrame"},eventBinder:{type:"fluid.uiOptions.eventBinder"}},selectors:{textControls:".flc-uiOptions-text-controls",layoutControls:".flc-uiOptions-layout-controls",linksControls:".flc-uiOptions-links-controls",cancel:".flc-uiOptions-cancel",reset:".flc-uiOptions-reset",save:".flc-uiOptions-save",previewFrame:".flc-uiOptions-preview-frame"},events:{onSave:null,onCancel:null,onReset:null,onAutoSave:null,modelChanged:null,onUIOptionsRefresh:null,onUIOptionsComponentReady:null},finalInitFunction:"fluid.uiOptions.finalInit",resources:{template:"{templateLoader}.resources.uiOptions"},autoSave:false});fluid.uiOptions.finalInit=function(that){that.applier.requestChange("selections",fluid.copy(that.settingsStore.fetch()));that.save=function(){that.events.onSave.fire(that.model.selections);var savedSelections=fluid.copy(that.model.selections);that.settingsStore.save(savedSelections)};that.saveAndApply=function(){that.save();that.events.onUIOptionsRefresh.fire()};that.reset=function(){that.updateModel(fluid.copy(that.settingsStore.options.defaultSiteSettings));that.events.onReset.fire(that);that.events.onUIOptionsRefresh.fire()};that.cancel=function(){that.events.onCancel.fire();that.updateModel(that.settingsStore.fetch());that.events.onUIOptionsRefresh.fire()};that.updateModel=function(newModel){that.applier.requestChange("selections",newModel)};that.applier.modelChanged.addListener("selections",function(newModel,oldModel,changeRequest){that.events.modelChanged.fire(newModel,oldModel,changeRequest.source);if(that.options.autoSave){that.events.onAutoSave.fire()}});var bindHandlers=function(that){var saveButton=that.locate("save");if(saveButton.length>0){saveButton.click(that.saveAndApply);var form=fluid.findForm(saveButton);$(form).submit(function(){that.saveAndApply()})}that.locate("reset").click(that.reset);that.locate("cancel").click(that.cancel)};var bindEventHandlers=function(that){that.events.onAutoSave.addListener(function(){that.save()})};fluid.fetchResources(that.options.resources,function(){that.container.append(that.options.resources.template.resourceText);bindHandlers(that);bindEventHandlers(that);that.events.onUIOptionsComponentReady.fire(that)})};fluid.defaults("fluid.uiOptions.eventBinder",{gradeNames:["fluid.eventedComponent","autoInit"]});var initModel=function(that){fluid.each(that.options.controlValues,function(item,key){that.applier.requestChange("labelMap."+key,{values:that.options.controlValues[key],names:that.options.strings[key],classes:that.options.classnameMap[key]})})};var createSliderNode=function(that,item){return{decorators:{type:"fluid",func:"fluid.textfieldSlider",options:{listeners:{modelChanged:function(value){that.applier.requestChange("selections."+item,value)}},model:{min:that.options[item].min,max:that.options[item].max,value:that.model.selections[item]}}}}};fluid.uiOptions.controlsFinalInit=function(that){initModel(that);that.refreshView()};fluid.uiOptions.lateRefreshViewBinder=function(that){that.refreshView=function(){that.renderer.refreshView()}};fluid.defaults("fluid.uiOptions.textControls",{gradeNames:["fluid.rendererComponent","autoInit"],strings:{textFont:["Default","Times New Roman","Comic Sans","Arial","Verdana"],theme:["Default","Black on white","White on black","Black on yellow","Yellow on black"]},controlValues:{textFont:["default","times","comic","arial","verdana"],theme:["default","bw","wb","by","yb"]},textSize:{min:1,max:2},lineSpacing:{min:1,max:2},selectors:{textFont:".flc-uiOptions-text-font",theme:".flc-uiOptions-theme",textSize:".flc-uiOptions-min-text-size",lineSpacing:".flc-uiOptions-line-spacing"},events:{onUIOptionsRefresh:null},listeners:{onUIOptionsRefresh:"{textControls}.refreshView"},preInitFunction:"fluid.uiOptions.lateRefreshViewBinder",finalInitFunction:"fluid.uiOptions.controlsFinalInit",produceTree:"fluid.uiOptions.textControls.produceTree",resources:{template:"{templateLoader}.resources.textControls"}});fluid.uiOptions.textControls.produceTree=function(that){var tree={};for(var item in that.model.selections){if(item==="textFont"||item==="theme"){tree[item]={optionnames:"${labelMap."+item+".names}",optionlist:"${labelMap."+item+".values}",selection:"${selections."+item+"}",decorators:{type:"fluid",func:"fluid.uiOptions.selectDecorator",options:{styles:that.options.classnameMap[item]}}}}else{if(item==="textSize"||item==="lineSpacing"){tree[item]=createSliderNode(that,item)}}}return tree};fluid.demands("fluid.uiOptions.selectDecorator","fluid.uiOptions",{container:"{arguments}.0"});fluid.defaults("fluid.uiOptions.selectDecorator",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.uiOptions.selectDecorator.finalInit",styles:{preview:"fl-preview-theme"}});fluid.uiOptions.selectDecorator.finalInit=function(that){fluid.each($("option",that.container),function(option){var styles=that.options.styles;$(option).addClass(styles.preview+" "+styles[fluid.value(option)])})};fluid.defaults("fluid.uiOptions.layoutControls",{gradeNames:["fluid.rendererComponent","autoInit"],selectors:{layout:".flc-uiOptions-layout",toc:".flc-uiOptions-toc"},events:{onUIOptionsRefresh:null},listeners:{onUIOptionsRefresh:"{layoutControls}.refreshView"},preInitFunction:"fluid.uiOptions.lateRefreshViewBinder",finalInitFunction:"fluid.uiOptions.controlsFinalInit",produceTree:"fluid.uiOptions.layoutControls.produceTree",resources:{template:"{templateLoader}.resources.layoutControls"}});fluid.uiOptions.layoutControls.produceTree=function(that){var tree={};for(var item in that.model.selections){if(item==="layout"||item==="toc"){tree[item]="${selections."+item+"}"}}return tree};fluid.defaults("fluid.uiOptions.linksControls",{gradeNames:["fluid.rendererComponent","autoInit"],selectors:{links:".flc-uiOptions-links",inputsLarger:".flc-uiOptions-inputs-larger"},events:{onUIOptionsRefresh:null},listeners:{onUIOptionsRefresh:"{linksControls}.refreshView"},preInitFunction:"fluid.uiOptions.lateRefreshViewBinder",finalInitFunction:"fluid.uiOptions.controlsFinalInit",produceTree:"fluid.uiOptions.linksControls.produceTree",resources:{template:"{templateLoader}.resources.linksControls"}});fluid.uiOptions.linksControls.produceTree=function(that){var tree={};for(var item in that.model.selections){if(item==="links"||item==="inputsLarger"){tree[item]="${selections."+item+"}"}}return tree};fluid.defaults("fluid.uiOptions.preview",{gradeNames:["fluid.viewComponent","autoInit"],components:{enhancer:{type:"fluid.uiEnhancer",createOnEvent:"onReady",options:{settingsStore:{type:"fluid.uiEnhancer.tempStore"}}},eventBinder:{type:"fluid.uiOptions.preview.eventBinder",createOnEvent:"onReady"}},invokers:{updateModel:{funcName:"fluid.uiOptions.preview.updateModel",args:["{preview}","{uiOptions}.model.selections"]}},finalInitFunction:"fluid.uiOptions.preview.finalInit",events:{onReady:null},templateUrl:"UIOptionsPreview.html"});fluid.uiOptions.preview.updateModel=function(that,selections){setTimeout(function(){if(that.enhancer){that.enhancer.updateModel(selections)}},0)};fluid.uiOptions.preview.finalInit=function(that){that.container.attr("src",that.options.templateUrl);that.container.load(function(){that.enhancerContainer=$("body",that.container.contents());that.events.onReady.fire()})};fluid.demands("fluid.uiEnhancer","fluid.uiOptions.preview",{funcName:"fluid.uiEnhancer",args:["{preview}.enhancerContainer","{options}"]});fluid.defaults("fluid.uiOptions.preview.eventBinder",{gradeNames:["fluid.eventedComponent","autoInit"]});fluid.demands("fluid.uiOptions.preview.eventBinder",["fluid.uiOptions.preview","fluid.uiOptions"],{options:{listeners:{"{uiOptions}.events.modelChanged":"{preview}.updateModel"}}})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.uiOptions.fatPanelEventBinder",{gradeNames:["fluid.eventedComponent","autoInit"],finalInitFunction:"fluid.uiOptions.fatPanelEventBinder.finalInit",components:{uiOptionsLoader:{type:"fluid.uiOptions.loader"},slidingPanel:{type:"fluid.slidingPanel"}}});fluid.defaults("fluid.uiOptions.fatPanelEventBinder.binder",{gradeNames:["fluid.eventedComponent","autoInit"]});fluid.registerNamespace("fluid.dom");fluid.dom.getDocumentHeight=function(dokkument){var body=$("body",dokkument)[0];return body.offsetHeight};fluid.uiOptions.fatPanelEventBinder.updateView=function(uiOptions){uiOptions.uiEnhancer.updateFromSettingsStore();uiOptions.events.onSignificantDOMChange.fire()};fluid.uiOptions.fatPanelEventBinder.bindLateEvents=function(uiOptions,eventBinder,fatPanel){eventBinder.uiOptions=uiOptions;uiOptions.events.modelChanged.addListener(function(model){eventBinder.uiEnhancer.updateModel(model.selections);uiOptions.save()});uiOptions.events.onReset.addListener(function(uiOptions){fluid.uiOptions.fatPanelEventBinder.updateView(uiOptions)});uiOptions.events.onSignificantDOMChange.addListener(function(){var dokkument=uiOptions.container[0].ownerDocument;var height=fluid.dom.getDocumentHeight(dokkument);var iframe=fatPanel.markupRenderer.iframe;var attrs={height:height+15};iframe.animate(attrs,400)});fatPanel.slidingPanel.events.afterPanelHide.addListener(function(){fatPanel.markupRenderer.iframe.height(0)})};fluid.uiOptions.fatPanelEventBinder.finalInit=function(that){that.slidingPanel.events.afterPanelShow.addListener(function(){fluid.uiOptions.fatPanelEventBinder.updateView(that.uiOptions)})};fluid.uiOptions.fatPanelEventBinder.showPanel=function(panel,callback){panel.show();setTimeout(callback,1)};fluid.defaults("fluid.uiOptions.fatPanel",{gradeNames:["fluid.viewComponent"],selectors:{iframe:".flc-uiOptions-iframe"},relativePrefix:"./",components:{slidingPanel:{type:"fluid.slidingPanel",container:"{fatPanel}.container",options:{invokers:{operateShow:{funcName:"fluid.uiOptions.fatPanelEventBinder.showPanel"}}},createOnEvent:"afterRender"},markupRenderer:{type:"fluid.uiOptions.renderIframe",container:"{fatPanel}.dom.iframe",options:{markupProps:{src:"%prefix/FatPanelUIOptionsFrame.html"},events:{afterRender:"{fatPanel}.events.afterRender"}}},uiEnhancer:"{uiEnhancer}",eventBinder:{type:"fluid.uiOptions.fatPanelEventBinder",options:{components:{uiEnhancer:"{fatPanel}.uiEnhancer",uiOptionsLoader:"{fatPanel}.bridge.uiOptionsLoader",slidingPanel:"{fatPanel}.slidingPanel",binder:{type:"fluid.uiOptions.fatPanelEventBinder.binder",priority:"last",options:{events:{onUIOptionsComponentReady:{event:"{uiOptionsLoader}.events.onUIOptionsComponentReady",args:["{arguments}.0","{fluid.uiOptions.fatPanelEventBinder}","{fatPanel}"]}},listeners:{onUIOptionsComponentReady:fluid.uiOptions.fatPanelEventBinder.bindLateEvents}}}}},createOnEvent:"afterRender",priority:"last"},bridge:{type:"fluid.uiOptions.bridge",createOnEvent:"afterRender",priority:"first",options:{components:{uiEnhancer:"{fatPanel}.uiEnhancer",markupRenderer:"{fatPanel}.markupRenderer"}}}},uiOptionsTransform:{transformer:"fluid.uiOptions.mapOptions",config:{"*.slidingPanel":"slidingPanel","*.markupRenderer":"markupRenderer","*.markupRenderer.options.prefix":"prefix","*.eventBinder":"eventBinder","selectors.iframe":"iframe","*.bridge.options.templateLoader":"templateLoader","*.bridge.options.prefix":"relativePrefix","*.bridge.options.uiOptionsLoader":"uiOptionsLoader","*.bridge.options.uiOptions":"uiOptions","*.bridge.options.textControls":"textControls","*.bridge.options.layoutControls":"layoutControls","*.bridge.options.linksControls":"linksControls","*.bridge.options.uiEnhancer":"uiEnhancer"}},events:{afterRender:null}});fluid.defaults("fluid.uiOptions.renderIframe",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.uiOptions.renderIframe.finalInit",events:{afterRender:null},styles:{containerFlex:"fl-container-flex",container:"fl-uiOptions-fatPanel-iframe"},prefix:"./",markupProps:{style:"overflow-x:hidden; overflow-y:auto;","class":"flc-iframe",src:"%prefix/uiOptionsIframe.html"}});fluid.uiOptions.renderIframe.finalInit=function(that){var styles=that.options.styles;that.options.markupProps=fluid.uiOptions.transformUrls(that.options.markupProps,that.options.prefix);that.iframeSrc=that.options.markupProps.src;that.iframe=$("<iframe/>",that.options.markupProps).appendTo(that.container);that.iframe.addClass(styles.containerFlex);that.iframe.addClass(styles.container);that.iframe.load(that.events.afterRender.fire)};fluid.defaults("fluid.uiOptions.bridge",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.uiOptions.bridge.finalInit",iframe:null});fluid.uiOptions.tabSelectRelay=function(uiOptions){uiOptions.events.onSignificantDOMChange.fire()};fluid.defaults("fluid.uiOptions.FatPanelOtherWorldLoader",{gradeNames:["fluid.uiOptions.inline","autoInit"],derivedDefaults:{uiOptions:{options:{events:{onSignificantDOMChange:null},components:{uiEnhancer:{type:"fluid.uiEnhancer",container:"body",priority:"first",options:{tocTemplate:"../../tableOfContents/html/TableOfContents.html"}},settingsStore:"{uiEnhancer}.settingsStore",preview:{type:"fluid.emptySubcomponent"},tabs:{type:"fluid.tabs",container:"body",createOnEvent:"onUIOptionsComponentReady",options:{events:{boiledTabShow:{event:"tabsshow",args:["{uiOptions}"]}},listeners:{boiledTabShow:fluid.uiOptions.tabSelectRelay}}}}}}},uiOptionsTransform:{config:{"!*.uiOptionsLoader.*.uiOptions.*.uiEnhancer.options":"uiEnhancer.options"}}});fluid.uiOptions.bridge.finalInit=function(that){var iframe=that.markupRenderer.iframe;var origPrefix=that.markupRenderer.options.prefix;var iframeDoc=iframe.contents();var iframeWin=iframe[0].contentWindow;var innerFluid=iframeWin.fluid;var container=$("body",iframeDoc);var outerLocation=window.location.href;var iframeLocation=iframeWin.location.href;var relativePrefix=fluid.url.computeRelativePrefix(outerLocation,iframeLocation,origPrefix);that.options.relativePrefix=relativePrefix;var overallOptions={};overallOptions.container=container;var bridgeMapping=fluid.defaults("fluid.uiOptions.fatPanel").uiOptionsTransform.config;var swappedBridgeMapping={};fluid.each(bridgeMapping,function(value,key){swappedBridgeMapping[value]=key});var bridgeSymbol="*.bridge.options";fluid.each(swappedBridgeMapping,function(value,key){if(value.indexOf(bridgeSymbol)===0&&that.options[key]){var keyInOtherWorld=value.substring(bridgeSymbol.length+1);fluid.set(overallOptions,keyInOtherWorld,that.options[key])}});var defaults=fluid.defaults("fluid.uiOptions.FatPanelOtherWorldLoader");fluid.set(overallOptions,"uiEnhancer.options",that.uiEnhancer.options.originalUserOptions);var mappedOptions=fluid.uiOptions.mapOptions(overallOptions,defaults.uiOptionsTransform.config,defaults.mergePolicy,fluid.copy(defaults.derivedDefaults));var component=innerFluid.invokeGlobalFunction("fluid.uiOptions.FatPanelOtherWorldLoader",[container,mappedOptions]);that.uiOptionsLoader=component.uiOptionsLoader};fluid.uiOptions.fatPanel=function(container,options){var defaults=fluid.defaults("fluid.uiOptions.fatPanel");var config=defaults.uiOptionsTransform.config;var mappedOptions=fluid.uiOptions.mapOptions(options,config,defaults.mergePolicy);var that=fluid.initView("fluid.uiOptions.fatPanel",container,mappedOptions);fluid.initDependents(that);return that}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.uiOptions.fullNoPreview",{gradeNames:["fluid.uiOptions.inline"],container:"{fullNoPreview}.container",derivedDefaults:{templateLoader:{options:{templates:{uiOptions:"%prefix/FullNoPreviewUIOptions.html"}}},uiOptions:{options:{components:{preview:{type:"fluid.emptySubcomponent"},settingsStore:"{uiEnhancer}.settingsStore"},listeners:{onReset:function(uiOptions){uiOptions.save()},onUIOptionsRefresh:"{uiEnhancer}.updateFromSettingsStore"}}}}});fluid.uiOptions.inline.makeCreator("fluid.uiOptions.fullNoPreview",fluid.identity)})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.uiOptions.fullPreview",{gradeNames:["fluid.uiOptions.inline"],container:"{fullPreview}.container",uiOptionsTransform:{config:{"!*.uiOptionsLoader.*.uiOptions.*.preview.*.enhancer.options":"outerPreviewEnhancerOptions"}},derivedDefaults:{templateLoader:{options:{templates:{uiOptions:"%prefix/FullPreviewUIOptions.html"}}},uiOptions:{options:{components:{settingsStore:"{uiEnhancer}.settingsStore"},listeners:{onUIOptionsRefresh:"{uiEnhancer}.updateFromSettingsStore"}}}}});fluid.uiOptions.inline.makeCreator("fluid.uiOptions.fullPreview",function(options){var enhancerOptions=fluid.get(fluid,"staticEnvironment.uiEnhancer.options.originalUserOptions");options.outerPreviewEnhancerOptions=enhancerOptions;return options})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.slidingPanel",{gradeNames:["fluid.viewComponent","autoInit"],selectors:{panel:".flc-slidingPanel-panel",toggleButton:".flc-slidingPanel-toggleButton"},strings:{showText:"+ Show Display Preferences",hideText:"- Hide"},events:{onPanelHide:null,onPanelShow:null,afterPanelHide:null,afterPanelShow:null},finalInitFunction:"fluid.slidingPanel.finalInit",invokers:{operateHide:"fluid.slidingPanel.slideUp",operateShow:"fluid.slidingPanel.slideDown"},hideByDefault:true});fluid.slidingPanel.slideUp=function(element,callback,duration){$(element).slideUp(duration||"400",callback)};fluid.slidingPanel.slideDown=function(element,callback,duration){$(element).slideDown(duration||"400",callback)};fluid.slidingPanel.finalInit=function(that){that.showPanel=function(){that.events.onPanelShow.fire(that);that.locate("toggleButton").text(that.options.strings.hideText);that.operateShow(that.locate("panel"),that.events.afterPanelShow.fire)};that.hidePanel=function(){that.events.onPanelHide.fire(that);that.locate("toggleButton").text(that.options.strings.showText);that.operateHide(that.locate("panel"),that.events.afterPanelHide.fire)};that.togglePanel=function(){if(that.locate("panel").is(":hidden")){that.showPanel()}else{that.hidePanel()}};that.setPanelHeight=function(newHeight){that.locate("panel").height(newHeight)};that.locate("toggleButton").click(that.togglePanel);if(that.options.hideByDefault){that.locate("toggleButton").text(that.options.strings.showText);that.locate("panel").hide()}}})(jQuery,fluid_1_4);(function($){var $scrollTo=$.scrollTo=function(target,duration,settings){$(window).scrollTo(target,duration,settings)};$scrollTo.defaults={axis:"xy",duration:parseFloat($.fn.jquery)>=1.3?0:1};$scrollTo.window=function(scope){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var elem=this,isWin=!elem.nodeName||$.inArray(elem.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!isWin){return elem}var doc=(elem.contentWindow||elem).document||elem.ownerDocument||elem;return $.browser.safari||doc.compatMode=="BackCompat"?doc.body:doc.documentElement})};$.fn.scrollTo=function(target,duration,settings){if(typeof duration=="object"){settings=duration;duration=0}if(typeof settings=="function"){settings={onAfter:settings}}if(target=="max"){target=9000000000}settings=$.extend({},$scrollTo.defaults,settings);duration=duration||settings.speed||settings.duration;settings.queue=settings.queue&&settings.axis.length>1;if(settings.queue){duration/=2}settings.offset=both(settings.offset);settings.over=both(settings.over);return this._scrollable().each(function(){var elem=this,$elem=$(elem),targ=target,toff,attr={},win=$elem.is("html,body");switch(typeof targ){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);case"object":if(targ.is||targ.style){toff=(targ=$(targ)).offset()}}$.each(settings.axis.split(""),function(i,axis){var Pos=axis=="x"?"Left":"Top",pos=Pos.toLowerCase(),key="scroll"+Pos,old=elem[key],max=$scrollTo.max(elem,axis);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(settings.margin){attr[key]-=parseInt(targ.css("margin"+Pos))||0;attr[key]-=parseInt(targ.css("border"+Pos+"Width"))||0}attr[key]+=settings.offset[pos]||0;if(settings.over[pos]){attr[key]+=targ[axis=="x"?"width":"height"]()*settings.over[pos]}}else{var val=targ[pos];attr[key]=val.slice&&val.slice(-1)=="%"?parseFloat(val)/100*max:val}if(/^\d+$/.test(attr[key])){attr[key]=attr[key]<=0?0:Math.min(attr[key],max)}if(!i&&settings.queue){if(old!=attr[key]){animate(settings.onAfterFirst)}delete attr[key]}});animate(settings.onAfter);function animate(callback){$elem.animate(attr,duration,settings.easing,callback&&function(){callback.call(this,target,settings)})}}).end()};$scrollTo.max=function(elem,axis){var Dim=axis=="x"?"Width":"Height",scroll="scroll"+Dim;if(!$(elem).is("html,body")){return elem[scroll]-$(elem)[Dim.toLowerCase()]()}var size="client"+Dim,html=elem.ownerDocument.documentElement,body=elem.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[size],body[size])};function both(val){return typeof val=="object"?val:{top:val,left:val}}})(jQuery);/*   SWFObject v2.2 <http://code.google.com/p/swfobject/> 
+       is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
 */
-var swfobject=function(){var UNDEF="undefined",OBJECT="object",SHOCKWAVE_FLASH="Shockwave Flash",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE="application/x-shockwave-flash",EXPRESS_INSTALL_ID="SWFObjectExprInst",win=window,doc=document,nav=navigator,domLoadFnArr=[],regObjArr=[],objIdArr=[],listenersArr=[],script,timer=null,storedAltContent=null,storedAltContentId=null,isDomLoaded=false,isExpressInstallActive=false;var ua=function(){var w3cdom=typeof doc.getElementById!=UNDEF&&typeof doc.getElementsByTagName!=UNDEF&&typeof doc.createElement!=UNDEF,playerVersion=[0,0,0],d=null;if(typeof nav.plugins!=UNDEF&&typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){d=nav.plugins[SHOCKWAVE_FLASH].description;if(d&&!(typeof nav.mimeTypes!=UNDEF&&nav.mimeTypes[FLASH_MIME_TYPE]&&!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);playerVersion[2]=/r/.test(d)?parseInt(d.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof win.ActiveXObject!=UNDEF){var a=null,fp6Crash=false;try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".7")}catch(e){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".6");playerVersion=[6,0,21];a.AllowScriptAccess="always"}catch(e){if(playerVersion[0]==6){fp6Crash=true}}if(!fp6Crash){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX)}catch(e){}}}if(!fp6Crash&&a){try{d=a.GetVariable("$version");if(d){d=d.split(" ")[1].split(",");playerVersion=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}catch(e){}}}}var u=nav.userAgent.toLowerCase(),p=nav.platform.toLowerCase(),webkit=/webkit/.test(u)?parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,ie=false,windows=p?/win/.test(p):/win/.test(u),mac=p?/mac/.test(p):/mac/.test(u);
-/*@cc_on
-                       ie = true;
-                       @if (@_win32)
-                               windows = true;
-                       @elif (@_mac)
-                               mac = true;
-                       @end
-               @*/
-return{w3cdom:w3cdom,pv:playerVersion,webkit:webkit,ie:ie,win:windows,mac:mac}}();var onDomLoad=function(){if(!ua.w3cdom){return }addDomLoadEvent(main);if(ua.ie&&ua.win){try{doc.write("<script id=__ie_ondomload defer=true src=//:><\/script>");script=getElementById("__ie_ondomload");if(script){addListener(script,"onreadystatechange",checkReadyState)}}catch(e){}}if(ua.webkit&&typeof doc.readyState!=UNDEF){timer=setInterval(function(){if(/loaded|complete/.test(doc.readyState)){callDomLoadFunctions()}},10)}if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("DOMContentLoaded",callDomLoadFunctions,null)}addLoadEvent(callDomLoadFunctions)}();function checkReadyState(){if(script.readyState=="complete"){script.parentNode.removeChild(script);callDomLoadFunctions()}}function callDomLoadFunctions(){if(isDomLoaded){return }if(ua.ie&&ua.win){var s=createElement("span");try{var t=doc.getElementsByTagName("body")[0].appendChild(s);t.parentNode.removeChild(t)}catch(e){return }}isDomLoaded=true;if(timer){clearInterval(timer);timer=null}var dl=domLoadFnArr.length;for(var i=0;i<dl;i++){domLoadFnArr[i]()}}function addDomLoadEvent(fn){if(isDomLoaded){fn()}else{domLoadFnArr[domLoadFnArr.length]=fn}}function addLoadEvent(fn){if(typeof win.addEventListener!=UNDEF){win.addEventListener("load",fn,false)}else{if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("load",fn,false)}else{if(typeof win.attachEvent!=UNDEF){addListener(win,"onload",fn)}else{if(typeof win.onload=="function"){var fnOld=win.onload;win.onload=function(){fnOld();fn()}}else{win.onload=fn}}}}}function main(){var rl=regObjArr.length;for(var i=0;i<rl;i++){var id=regObjArr[i].id;if(ua.pv[0]>0){var obj=getElementById(id);if(obj){regObjArr[i].width=obj.getAttribute("width")?obj.getAttribute("width"):"0";regObjArr[i].height=obj.getAttribute("height")?obj.getAttribute("height"):"0";if(hasPlayerVersion(regObjArr[i].swfVersion)){if(ua.webkit&&ua.webkit<312){fixParams(obj)}setVisibility(id,true)}else{if(regObjArr[i].expressInstall&&!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)){showExpressInstall(regObjArr[i])}else{displayAltContent(obj)}}}}else{setVisibility(id,true)}}}function fixParams(obj){var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var e=createElement("embed"),a=nestedObj.attributes;if(a){var al=a.length;for(var i=0;i<al;i++){if(a[i].nodeName=="DATA"){e.setAttribute("src",a[i].nodeValue)}else{e.setAttribute(a[i].nodeName,a[i].nodeValue)}}}var c=nestedObj.childNodes;if(c){var cl=c.length;for(var j=0;j<cl;j++){if(c[j].nodeType==1&&c[j].nodeName=="PARAM"){e.setAttribute(c[j].getAttribute("name"),c[j].getAttribute("value"))}}}obj.parentNode.replaceChild(e,obj)}}function showExpressInstall(regObj){isExpressInstallActive=true;var obj=getElementById(regObj.id);if(obj){if(regObj.altContentId){var ac=getElementById(regObj.altContentId);if(ac){storedAltContent=ac;storedAltContentId=regObj.altContentId}}else{storedAltContent=abstractAltContent(obj)}if(!(/%$/.test(regObj.width))&&parseInt(regObj.width,10)<310){regObj.width="310"}if(!(/%$/.test(regObj.height))&&parseInt(regObj.height,10)<137){regObj.height="137"}doc.title=doc.title.slice(0,47)+" - Flash Player Installation";var pt=ua.ie&&ua.win?"ActiveX":"PlugIn",dt=doc.title,fv="MMredirectURL="+win.location+"&MMplayerType="+pt+"&MMdoctitle="+dt,replaceId=regObj.id;if(ua.ie&&ua.win&&obj.readyState!=4){var newObj=createElement("div");replaceId+="SWFObjectNew";newObj.setAttribute("id",replaceId);obj.parentNode.insertBefore(newObj,obj);obj.style.display="none";var fn=function(){obj.parentNode.removeChild(obj)};addListener(win,"onload",fn)}createSWF({data:regObj.expressInstall,id:EXPRESS_INSTALL_ID,width:regObj.width,height:regObj.height},{flashvars:fv},replaceId)}}function displayAltContent(obj){if(ua.ie&&ua.win&&obj.readyState!=4){var el=createElement("div");obj.parentNode.insertBefore(el,obj);el.parentNode.replaceChild(abstractAltContent(obj),el);obj.style.display="none";var fn=function(){obj.parentNode.removeChild(obj)};addListener(win,"onload",fn)}else{obj.parentNode.replaceChild(abstractAltContent(obj),obj)}}function abstractAltContent(obj){var ac=createElement("div");if(ua.win&&ua.ie){ac.innerHTML=obj.innerHTML}else{var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var c=nestedObj.childNodes;if(c){var cl=c.length;for(var i=0;i<cl;i++){if(!(c[i].nodeType==1&&c[i].nodeName=="PARAM")&&!(c[i].nodeType==8)){ac.appendChild(c[i].cloneNode(true))}}}}}return ac}function createSWF(attObj,parObj,id){var r,el=getElementById(id);if(el){if(typeof attObj.id==UNDEF){attObj.id=id}if(ua.ie&&ua.win){var att="";for(var i in attObj){if(attObj[i]!=Object.prototype[i]){if(i.toLowerCase()=="data"){parObj.movie=attObj[i]}else{if(i.toLowerCase()=="styleclass"){att+=' class="'+attObj[i]+'"'}else{if(i.toLowerCase()!="classid"){att+=" "+i+'="'+attObj[i]+'"'}}}}}var par="";for(var j in parObj){if(parObj[j]!=Object.prototype[j]){par+='<param name="'+j+'" value="'+parObj[j]+'" />'}}el.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+att+">"+par+"</object>";objIdArr[objIdArr.length]=attObj.id;r=getElementById(attObj.id)}else{if(ua.webkit&&ua.webkit<312){var e=createElement("embed");e.setAttribute("type",FLASH_MIME_TYPE);for(var k in attObj){if(attObj[k]!=Object.prototype[k]){if(k.toLowerCase()=="data"){e.setAttribute("src",attObj[k])}else{if(k.toLowerCase()=="styleclass"){e.setAttribute("class",attObj[k])}else{if(k.toLowerCase()!="classid"){e.setAttribute(k,attObj[k])}}}}}for(var l in parObj){if(parObj[l]!=Object.prototype[l]){if(l.toLowerCase()!="movie"){e.setAttribute(l,parObj[l])}}}el.parentNode.replaceChild(e,el);r=e}else{var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);for(var m in attObj){if(attObj[m]!=Object.prototype[m]){if(m.toLowerCase()=="styleclass"){o.setAttribute("class",attObj[m])}else{if(m.toLowerCase()!="classid"){o.setAttribute(m,attObj[m])}}}}for(var n in parObj){if(parObj[n]!=Object.prototype[n]&&n.toLowerCase()!="movie"){createObjParam(o,n,parObj[n])}}el.parentNode.replaceChild(o,el);r=o}}}return r}function createObjParam(el,pName,pValue){var p=createElement("param");p.setAttribute("name",pName);p.setAttribute("value",pValue);el.appendChild(p)}function removeSWF(id){var obj=getElementById(id);if(obj&&(obj.nodeName=="OBJECT"||obj.nodeName=="EMBED")){if(ua.ie&&ua.win){if(obj.readyState==4){removeObjectInIE(id)}else{win.attachEvent("onload",function(){removeObjectInIE(id)})}}else{obj.parentNode.removeChild(obj)}}}function removeObjectInIE(id){var obj=getElementById(id);if(obj){for(var i in obj){if(typeof obj[i]=="function"){obj[i]=null}}obj.parentNode.removeChild(obj)}}function getElementById(id){var el=null;try{el=doc.getElementById(id)}catch(e){}return el}function createElement(el){return doc.createElement(el)}function addListener(target,eventType,fn){target.attachEvent(eventType,fn);listenersArr[listenersArr.length]=[target,eventType,fn]}function hasPlayerVersion(rv){var pv=ua.pv,v=rv.split(".");v[0]=parseInt(v[0],10);v[1]=parseInt(v[1],10)||0;v[2]=parseInt(v[2],10)||0;return(pv[0]>v[0]||(pv[0]==v[0]&&pv[1]>v[1])||(pv[0]==v[0]&&pv[1]==v[1]&&pv[2]>=v[2]))?true:false}function createCSS(sel,decl){if(ua.ie&&ua.mac){return }var h=doc.getElementsByTagName("head")[0],s=createElement("style");s.setAttribute("type","text/css");s.setAttribute("media","screen");if(!(ua.ie&&ua.win)&&typeof doc.createTextNode!=UNDEF){s.appendChild(doc.createTextNode(sel+" {"+decl+"}"))}h.appendChild(s);if(ua.ie&&ua.win&&typeof doc.styleSheets!=UNDEF&&doc.styleSheets.length>0){var ls=doc.styleSheets[doc.styleSheets.length-1];if(typeof ls.addRule==OBJECT){ls.addRule(sel,decl)}}}function setVisibility(id,isVisible){var v=isVisible?"visible":"hidden";if(isDomLoaded&&getElementById(id)){getElementById(id).style.visibility=v}else{createCSS("#"+id,"visibility:"+v)}}function urlEncodeIfNecessary(s){var regex=/[\\\"<>\.;]/;var hasBadChars=regex.exec(s)!=null;return hasBadChars?encodeURIComponent(s):s}var cleanup=function(){if(ua.ie&&ua.win){window.attachEvent("onunload",function(){var ll=listenersArr.length;for(var i=0;i<ll;i++){listenersArr[i][0].detachEvent(listenersArr[i][1],listenersArr[i][2])}var il=objIdArr.length;for(var j=0;j<il;j++){removeSWF(objIdArr[j])}for(var k in ua){ua[k]=null}ua=null;for(var l in swfobject){swfobject[l]=null}swfobject=null})}}();return{registerObject:function(objectIdStr,swfVersionStr,xiSwfUrlStr){if(!ua.w3cdom||!objectIdStr||!swfVersionStr){return }var regObj={};regObj.id=objectIdStr;regObj.swfVersion=swfVersionStr;regObj.expressInstall=xiSwfUrlStr?xiSwfUrlStr:false;regObjArr[regObjArr.length]=regObj;setVisibility(objectIdStr,false)},getObjectById:function(objectIdStr){var r=null;if(ua.w3cdom){var o=getElementById(objectIdStr);if(o){var n=o.getElementsByTagName(OBJECT)[0];if(!n||(n&&typeof o.SetVariable!=UNDEF)){r=o}else{if(typeof n.SetVariable!=UNDEF){r=n}}}}return r},embedSWF:function(swfUrlStr,replaceElemIdStr,widthStr,heightStr,swfVersionStr,xiSwfUrlStr,flashvarsObj,parObj,attObj){if(!ua.w3cdom||!swfUrlStr||!replaceElemIdStr||!widthStr||!heightStr||!swfVersionStr){return }widthStr+="";heightStr+="";if(hasPlayerVersion(swfVersionStr)){setVisibility(replaceElemIdStr,false);var att={};if(attObj&&typeof attObj===OBJECT){for(var i in attObj){if(attObj[i]!=Object.prototype[i]){att[i]=attObj[i]}}}att.data=swfUrlStr;att.width=widthStr;att.height=heightStr;var par={};if(parObj&&typeof parObj===OBJECT){for(var j in parObj){if(parObj[j]!=Object.prototype[j]){par[j]=parObj[j]}}}if(flashvarsObj&&typeof flashvarsObj===OBJECT){for(var k in flashvarsObj){if(flashvarsObj[k]!=Object.prototype[k]){if(typeof par.flashvars!=UNDEF){par.flashvars+="&"+k+"="+flashvarsObj[k]}else{par.flashvars=k+"="+flashvarsObj[k]}}}}addDomLoadEvent(function(){createSWF(att,par,replaceElemIdStr);if(att.id==replaceElemIdStr){setVisibility(replaceElemIdStr,true)}})}else{if(xiSwfUrlStr&&!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)){isExpressInstallActive=true;setVisibility(replaceElemIdStr,false);addDomLoadEvent(function(){var regObj={};regObj.id=regObj.altContentId=replaceElemIdStr;regObj.width=widthStr;regObj.height=heightStr;regObj.expressInstall=xiSwfUrlStr;showExpressInstall(regObj)})}}},getFlashPlayerVersion:function(){return{major:ua.pv[0],minor:ua.pv[1],release:ua.pv[2]}},hasFlashPlayerVersion:hasPlayerVersion,createSWF:function(attObj,parObj,replaceElemIdStr){if(ua.w3cdom){return createSWF(attObj,parObj,replaceElemIdStr)}else{return undefined}},removeSWF:function(objElemIdStr){if(ua.w3cdom){removeSWF(objElemIdStr)}},createCSS:function(sel,decl){if(ua.w3cdom){createCSS(sel,decl)}},addDomLoadEvent:addDomLoadEvent,addLoadEvent:addLoadEvent,getQueryParamValue:function(param){var q=doc.location.search||doc.location.hash;if(param==null){return urlEncodeIfNecessary(q)}if(q){var pairs=q.substring(1).split("&");for(var i=0;i<pairs.length;i++){if(pairs[i].substring(0,pairs[i].indexOf("="))==param){return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(isExpressInstallActive&&storedAltContent){var obj=getElementById(EXPRESS_INSTALL_ID);if(obj){obj.parentNode.replaceChild(storedAltContent,obj);if(storedAltContentId){setVisibility(storedAltContentId,true);if(ua.ie&&ua.win){storedAltContent.style.display="block"}}storedAltContent=null;storedAltContentId=null;isExpressInstallActive=false}}}}}();var SWFUpload;if(SWFUpload==undefined){SWFUpload=function(settings){this.initSWFUpload(settings)}}SWFUpload.prototype.initSWFUpload=function(settings){try{this.customSettings={};this.settings=settings;this.eventQueue=[];this.movieName="SWFUpload_"+SWFUpload.movieCount++;this.movieElement=null;SWFUpload.instances[this.movieName]=this;this.initSettings();this.loadFlash();this.displayDebugInfo()}catch(ex){delete SWFUpload.instances[this.movieName];throw ex}};SWFUpload.instances={};SWFUpload.movieCount=0;SWFUpload.version="2.2.0 2009-03-25";SWFUpload.QUEUE_ERROR={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130};SWFUpload.UPLOAD_ERROR={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290};SWFUpload.FILE_STATUS={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5};SWFUpload.BUTTON_ACTION={SELECT_FILE:-100,SELECT_FILES:-110,START_UPLOAD:-120};SWFUpload.CURSOR={ARROW:-1,HAND:-2};SWFUpload.WINDOW_MODE={WINDOW:"window",TRANSPARENT:"transparent",OPAQUE:"opaque"};SWFUpload.completeURL=function(url){if(typeof (url)!=="string"||url.match(/^https?:\/\//i)||url.match(/^\//)){return url}var currentURL=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"");var indexSlash=window.location.pathname.lastIndexOf("/");if(indexSlash<=0){path="/"}else{path=window.location.pathname.substr(0,indexSlash)+"/"}return path+url};SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(settingName,defaultValue){this.settings[settingName]=(this.settings[settingName]==undefined)?defaultValue:this.settings[settingName]};this.ensureDefault("upload_url","");this.ensureDefault("preserve_relative_urls",false);this.ensureDefault("file_post_name","Filedata");this.ensureDefault("post_params",{});this.ensureDefault("use_query_string",false);this.ensureDefault("requeue_on_error",false);this.ensureDefault("http_success",[]);this.ensureDefault("assume_success_timeout",0);this.ensureDefault("file_types","*.*");this.ensureDefault("file_types_description","All Files");this.ensureDefault("file_size_limit",0);this.ensureDefault("file_upload_limit",0);this.ensureDefault("file_queue_limit",0);this.ensureDefault("flash_url","swfupload.swf");this.ensureDefault("prevent_swf_caching",true);this.ensureDefault("button_image_url","");this.ensureDefault("button_width",1);this.ensureDefault("button_height",1);this.ensureDefault("button_text","");this.ensureDefault("button_text_style","color: #000000; font-size: 16pt;");this.ensureDefault("button_text_top_padding",0);this.ensureDefault("button_text_left_padding",0);this.ensureDefault("button_action",SWFUpload.BUTTON_ACTION.SELECT_FILES);this.ensureDefault("button_disabled",false);this.ensureDefault("button_placeholder_id","");this.ensureDefault("button_placeholder",null);this.ensureDefault("button_cursor",SWFUpload.CURSOR.ARROW);this.ensureDefault("button_window_mode",SWFUpload.WINDOW_MODE.WINDOW);this.ensureDefault("debug",false);this.settings.debug_enabled=this.settings.debug;this.settings.return_upload_start_handler=this.returnUploadStart;this.ensureDefault("swfupload_loaded_handler",null);this.ensureDefault("file_dialog_start_handler",null);this.ensureDefault("file_queued_handler",null);this.ensureDefault("file_queue_error_handler",null);this.ensureDefault("file_dialog_complete_handler",null);this.ensureDefault("upload_start_handler",null);this.ensureDefault("upload_progress_handler",null);this.ensureDefault("upload_error_handler",null);this.ensureDefault("upload_success_handler",null);this.ensureDefault("upload_complete_handler",null);this.ensureDefault("debug_handler",this.debugMessage);this.ensureDefault("custom_settings",{});this.customSettings=this.settings.custom_settings;if(!!this.settings.prevent_swf_caching){this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+new Date().getTime()}if(!this.settings.preserve_relative_urls){this.settings.upload_url=SWFUpload.completeURL(this.settings.upload_url);this.settings.button_image_url=SWFUpload.completeURL(this.settings.button_image_url)}delete this.ensureDefault};SWFUpload.prototype.loadFlash=function(){var targetElement,tempParent;if(document.getElementById(this.movieName)!==null){throw"ID "+this.movieName+" is already in use. The Flash Object could not be added"}targetElement=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder;if(targetElement==undefined){throw"Could not find the placeholder element: "+this.settings.button_placeholder_id}tempParent=document.createElement("div");tempParent.innerHTML=this.getFlashHTML();targetElement.parentNode.replaceChild(tempParent.firstChild,targetElement);if(window[this.movieName]==undefined){window[this.movieName]=this.getMovieElement()}};SWFUpload.prototype.getFlashHTML=function(){return['<object id="',this.movieName,'" type="application/x-shockwave-flash" data="',this.settings.flash_url,'" width="',this.settings.button_width,'" height="',this.settings.button_height,'" class="swfupload">','<param name="wmode" value="',this.settings.button_window_mode,'" />','<param name="movie" value="',this.settings.flash_url,'" />','<param name="quality" value="high" />','<param name="menu" value="false" />','<param name="allowScriptAccess" value="always" />','<param name="flashvars" value="'+this.getFlashVars()+'" />',"</object>"].join("")};SWFUpload.prototype.getFlashVars=function(){var paramString=this.buildParamString();var httpSuccessString=this.settings.http_success.join(",");return["movieName=",encodeURIComponent(this.movieName),"&amp;uploadURL=",encodeURIComponent(this.settings.upload_url),"&amp;useQueryString=",encodeURIComponent(this.settings.use_query_string),"&amp;requeueOnError=",encodeURIComponent(this.settings.requeue_on_error),"&amp;httpSuccess=",encodeURIComponent(httpSuccessString),"&amp;assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&amp;params=",encodeURIComponent(paramString),"&amp;filePostName=",encodeURIComponent(this.settings.file_post_name),"&amp;fileTypes=",encodeURIComponent(this.settings.file_types),"&amp;fileTypesDescription=",encodeURIComponent(this.settings.file_types_description),"&amp;fileSizeLimit=",encodeURIComponent(this.settings.file_size_limit),"&amp;fileUploadLimit=",encodeURIComponent(this.settings.file_upload_limit),"&amp;fileQueueLimit=",encodeURIComponent(this.settings.file_queue_limit),"&amp;debugEnabled=",encodeURIComponent(this.settings.debug_enabled),"&amp;buttonImageURL=",encodeURIComponent(this.settings.button_image_url),"&amp;buttonWidth=",encodeURIComponent(this.settings.button_width),"&amp;buttonHeight=",encodeURIComponent(this.settings.button_height),"&amp;buttonText=",encodeURIComponent(this.settings.button_text),"&amp;buttonTextTopPadding=",encodeURIComponent(this.settings.button_text_top_padding),"&amp;buttonTextLeftPadding=",encodeURIComponent(this.settings.button_text_left_padding),"&amp;buttonTextStyle=",encodeURIComponent(this.settings.button_text_style),"&amp;buttonAction=",encodeURIComponent(this.settings.button_action),"&amp;buttonDisabled=",encodeURIComponent(this.settings.button_disabled),"&amp;buttonCursor=",encodeURIComponent(this.settings.button_cursor)].join("")};SWFUpload.prototype.getMovieElement=function(){if(this.movieElement==undefined){this.movieElement=document.getElementById(this.movieName)}if(this.movieElement===null){throw"Could not find Flash element"}return this.movieElement};SWFUpload.prototype.buildParamString=function(){var postParams=this.settings.post_params;var paramStringPairs=[];if(typeof (postParams)==="object"){for(var name in postParams){if(postParams.hasOwnProperty(name)){paramStringPairs.push(encodeURIComponent(name.toString())+"="+encodeURIComponent(postParams[name].toString()))}}}return paramStringPairs.join("&amp;")};SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,false);var movieElement=null;movieElement=this.getMovieElement();if(movieElement&&typeof (movieElement.CallFunction)==="unknown"){for(var i in movieElement){try{if(typeof (movieElement[i])==="function"){movieElement[i]=null}}catch(ex1){}}try{movieElement.parentNode.removeChild(movieElement)}catch(ex){}}window[this.movieName]=null;SWFUpload.instances[this.movieName]=null;delete SWFUpload.instances[this.movieName];this.movieElement=null;this.settings=null;this.customSettings=null;this.eventQueue=null;this.movieName=null;return true}catch(ex2){return false}};SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n","\t","upload_url:               ",this.settings.upload_url,"\n","\t","flash_url:                ",this.settings.flash_url,"\n","\t","use_query_string:         ",this.settings.use_query_string.toString(),"\n","\t","requeue_on_error:         ",this.settings.requeue_on_error.toString(),"\n","\t","http_success:             ",this.settings.http_success.join(", "),"\n","\t","assume_success_timeout:   ",this.settings.assume_success_timeout,"\n","\t","file_post_name:           ",this.settings.file_post_name,"\n","\t","post_params:              ",this.settings.post_params.toString(),"\n","\t","file_types:               ",this.settings.file_types,"\n","\t","file_types_description:   ",this.settings.file_types_description,"\n","\t","file_size_limit:          ",this.settings.file_size_limit,"\n","\t","file_upload_limit:        ",this.settings.file_upload_limit,"\n","\t","file_queue_limit:         ",this.settings.file_queue_limit,"\n","\t","debug:                    ",this.settings.debug.toString(),"\n","\t","prevent_swf_caching:      ",this.settings.prevent_swf_caching.toString(),"\n","\t","button_placeholder_id:    ",this.settings.button_placeholder_id.toString(),"\n","\t","button_placeholder:       ",(this.settings.button_placeholder?"Set":"Not Set"),"\n","\t","button_image_url:         ",this.settings.button_image_url.toString(),"\n","\t","button_width:             ",this.settings.button_width.toString(),"\n","\t","button_height:            ",this.settings.button_height.toString(),"\n","\t","button_text:              ",this.settings.button_text.toString(),"\n","\t","button_text_style:        ",this.settings.button_text_style.toString(),"\n","\t","button_text_top_padding:  ",this.settings.button_text_top_padding.toString(),"\n","\t","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n","\t","button_action:            ",this.settings.button_action.toString(),"\n","\t","button_disabled:          ",this.settings.button_disabled.toString(),"\n","\t","custom_settings:          ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n","\t","swfupload_loaded_handler assigned:  ",(typeof this.settings.swfupload_loaded_handler==="function").toString(),"\n","\t","file_dialog_start_handler assigned: ",(typeof this.settings.file_dialog_start_handler==="function").toString(),"\n","\t","file_queued_handler assigned:       ",(typeof this.settings.file_queued_handler==="function").toString(),"\n","\t","file_queue_error_handler assigned:  ",(typeof this.settings.file_queue_error_handler==="function").toString(),"\n","\t","upload_start_handler assigned:      ",(typeof this.settings.upload_start_handler==="function").toString(),"\n","\t","upload_progress_handler assigned:   ",(typeof this.settings.upload_progress_handler==="function").toString(),"\n","\t","upload_error_handler assigned:      ",(typeof this.settings.upload_error_handler==="function").toString(),"\n","\t","upload_success_handler assigned:    ",(typeof this.settings.upload_success_handler==="function").toString(),"\n","\t","upload_complete_handler assigned:   ",(typeof this.settings.upload_complete_handler==="function").toString(),"\n","\t","debug_handler assigned:             ",(typeof this.settings.debug_handler==="function").toString(),"\n"].join(""))};SWFUpload.prototype.addSetting=function(name,value,default_value){if(value==undefined){return(this.settings[name]=default_value)}else{return(this.settings[name]=value)}};SWFUpload.prototype.getSetting=function(name){if(this.settings[name]!=undefined){return this.settings[name]}return""};SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement();var returnValue,returnString;try{returnString=movieElement.CallFunction('<invoke name="'+functionName+'" returntype="javascript">'+__flash__argumentsToXML(argumentArray,0)+"</invoke>");returnValue=eval(returnString)}catch(ex){throw"Call to "+functionName+" failed"}if(returnValue!=undefined&&typeof returnValue.post==="object"){returnValue=this.unescapeFilePostParams(returnValue)}return returnValue};SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")};SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")};SWFUpload.prototype.startUpload=function(fileID){this.callFlash("StartUpload",[fileID])};SWFUpload.prototype.cancelUpload=function(fileID,triggerErrorEvent){if(triggerErrorEvent!==false){triggerErrorEvent=true}this.callFlash("CancelUpload",[fileID,triggerErrorEvent])};SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")};SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")};SWFUpload.prototype.setStats=function(statsObject){this.callFlash("SetStats",[statsObject])};SWFUpload.prototype.getFile=function(fileID){if(typeof (fileID)==="number"){return this.callFlash("GetFileByIndex",[fileID])}else{return this.callFlash("GetFile",[fileID])}};SWFUpload.prototype.addFileParam=function(fileID,name,value){return this.callFlash("AddFileParam",[fileID,name,value])};SWFUpload.prototype.removeFileParam=function(fileID,name){this.callFlash("RemoveFileParam",[fileID,name])};SWFUpload.prototype.setUploadURL=function(url){this.settings.upload_url=url.toString();this.callFlash("SetUploadURL",[url])};SWFUpload.prototype.setPostParams=function(paramsObject){this.settings.post_params=paramsObject;this.callFlash("SetPostParams",[paramsObject])};SWFUpload.prototype.addPostParam=function(name,value){this.settings.post_params[name]=value;this.callFlash("SetPostParams",[this.settings.post_params])};SWFUpload.prototype.removePostParam=function(name){delete this.settings.post_params[name];this.callFlash("SetPostParams",[this.settings.post_params])};SWFUpload.prototype.setFileTypes=function(types,description){this.settings.file_types=types;this.settings.file_types_description=description;this.callFlash("SetFileTypes",[types,description])};SWFUpload.prototype.setFileSizeLimit=function(fileSizeLimit){this.settings.file_size_limit=fileSizeLimit;this.callFlash("SetFileSizeLimit",[fileSizeLimit])};SWFUpload.prototype.setFileUploadLimit=function(fileUploadLimit){this.settings.file_upload_limit=fileUploadLimit;this.callFlash("SetFileUploadLimit",[fileUploadLimit])};SWFUpload.prototype.setFileQueueLimit=function(fileQueueLimit){this.settings.file_queue_limit=fileQueueLimit;this.callFlash("SetFileQueueLimit",[fileQueueLimit])};SWFUpload.prototype.setFilePostName=function(filePostName){this.settings.file_post_name=filePostName;this.callFlash("SetFilePostName",[filePostName])};SWFUpload.prototype.setUseQueryString=function(useQueryString){this.settings.use_query_string=useQueryString;this.callFlash("SetUseQueryString",[useQueryString])};SWFUpload.prototype.setRequeueOnError=function(requeueOnError){this.settings.requeue_on_error=requeueOnError;this.callFlash("SetRequeueOnError",[requeueOnError])};SWFUpload.prototype.setHTTPSuccess=function(http_status_codes){if(typeof http_status_codes==="string"){http_status_codes=http_status_codes.replace(" ","").split(",")}this.settings.http_success=http_status_codes;this.callFlash("SetHTTPSuccess",[http_status_codes])};SWFUpload.prototype.setAssumeSuccessTimeout=function(timeout_seconds){this.settings.assume_success_timeout=timeout_seconds;this.callFlash("SetAssumeSuccessTimeout",[timeout_seconds])};SWFUpload.prototype.setDebugEnabled=function(debugEnabled){this.settings.debug_enabled=debugEnabled;this.callFlash("SetDebugEnabled",[debugEnabled])};SWFUpload.prototype.setButtonImageURL=function(buttonImageURL){if(buttonImageURL==undefined){buttonImageURL=""}this.settings.button_image_url=buttonImageURL;this.callFlash("SetButtonImageURL",[buttonImageURL])};SWFUpload.prototype.setButtonDimensions=function(width,height){this.settings.button_width=width;this.settings.button_height=height;var movie=this.getMovieElement();if(movie!=undefined){movie.style.width=width+"px";movie.style.height=height+"px"}this.callFlash("SetButtonDimensions",[width,height])};SWFUpload.prototype.setButtonText=function(html){this.settings.button_text=html;this.callFlash("SetButtonText",[html])};SWFUpload.prototype.setButtonTextPadding=function(left,top){this.settings.button_text_top_padding=top;this.settings.button_text_left_padding=left;this.callFlash("SetButtonTextPadding",[left,top])};SWFUpload.prototype.setButtonTextStyle=function(css){this.settings.button_text_style=css;this.callFlash("SetButtonTextStyle",[css])};SWFUpload.prototype.setButtonDisabled=function(isDisabled){this.settings.button_disabled=isDisabled;this.callFlash("SetButtonDisabled",[isDisabled])};SWFUpload.prototype.setButtonAction=function(buttonAction){this.settings.button_action=buttonAction;this.callFlash("SetButtonAction",[buttonAction])};SWFUpload.prototype.setButtonCursor=function(cursor){this.settings.button_cursor=cursor;this.callFlash("SetButtonCursor",[cursor])};SWFUpload.prototype.queueEvent=function(handlerName,argumentArray){if(argumentArray==undefined){argumentArray=[]}else{if(!(argumentArray instanceof Array)){argumentArray=[argumentArray]}}var self=this;if(typeof this.settings[handlerName]==="function"){this.eventQueue.push(function(){this.settings[handlerName].apply(this,argumentArray)});setTimeout(function(){self.executeNextEvent()},0)}else{if(this.settings[handlerName]!==null){throw"Event handler "+handlerName+" is unknown or is not a function"}}};SWFUpload.prototype.executeNextEvent=function(){var f=this.eventQueue?this.eventQueue.shift():null;if(typeof (f)==="function"){f.apply(this)}};SWFUpload.prototype.unescapeFilePostParams=function(file){var reg=/[$]([0-9a-f]{4})/i;var unescapedPost={};var uk;if(file!=undefined){for(var k in file.post){if(file.post.hasOwnProperty(k)){uk=k;var match;while((match=reg.exec(uk))!==null){uk=uk.replace(match[0],String.fromCharCode(parseInt("0x"+match[1],16)))}unescapedPost[uk]=file.post[k]}}file.post=unescapedPost}return file};SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface")}catch(ex){return false}};SWFUpload.prototype.flashReady=function(){var movieElement=this.getMovieElement();if(!movieElement){this.debug("Flash called back ready but the flash movie can't be found.");return }this.cleanUp(movieElement);this.queueEvent("swfupload_loaded_handler")};SWFUpload.prototype.cleanUp=function(movieElement){try{if(this.movieElement&&typeof (movieElement.CallFunction)==="unknown"){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var key in movieElement){try{if(typeof (movieElement[key])==="function"){movieElement[key]=null}}catch(ex){}}}}catch(ex1){}window.__flash__removeCallback=function(instance,name){try{if(instance){instance[name]=null}}catch(flashEx){}}};SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")};SWFUpload.prototype.fileQueued=function(file){file=this.unescapeFilePostParams(file);this.queueEvent("file_queued_handler",file)};SWFUpload.prototype.fileQueueError=function(file,errorCode,message){file=this.unescapeFilePostParams(file);this.queueEvent("file_queue_error_handler",[file,errorCode,message])};SWFUpload.prototype.fileDialogComplete=function(numFilesSelected,numFilesQueued,numFilesInQueue){this.queueEvent("file_dialog_complete_handler",[numFilesSelected,numFilesQueued,numFilesInQueue])};SWFUpload.prototype.uploadStart=function(file){file=this.unescapeFilePostParams(file);this.queueEvent("return_upload_start_handler",file)};SWFUpload.prototype.returnUploadStart=function(file){var returnValue;if(typeof this.settings.upload_start_handler==="function"){file=this.unescapeFilePostParams(file);returnValue=this.settings.upload_start_handler.call(this,file)}else{if(this.settings.upload_start_handler!=undefined){throw"upload_start_handler must be a function"}}if(returnValue===undefined){returnValue=true}returnValue=!!returnValue;this.callFlash("ReturnUploadStart",[returnValue])};SWFUpload.prototype.uploadProgress=function(file,bytesComplete,bytesTotal){file=this.unescapeFilePostParams(file);this.queueEvent("upload_progress_handler",[file,bytesComplete,bytesTotal])};SWFUpload.prototype.uploadError=function(file,errorCode,message){file=this.unescapeFilePostParams(file);this.queueEvent("upload_error_handler",[file,errorCode,message])};SWFUpload.prototype.uploadSuccess=function(file,serverData,responseReceived){file=this.unescapeFilePostParams(file);this.queueEvent("upload_success_handler",[file,serverData,responseReceived])};SWFUpload.prototype.uploadComplete=function(file){file=this.unescapeFilePostParams(file);this.queueEvent("upload_complete_handler",file)};SWFUpload.prototype.debug=function(message){this.queueEvent("debug_handler",message)};SWFUpload.prototype.debugMessage=function(message){if(this.settings.debug){var exceptionMessage,exceptionValues=[];if(typeof message==="object"&&typeof message.name==="string"&&typeof message.message==="string"){for(var key in message){if(message.hasOwnProperty(key)){exceptionValues.push(key+": "+message[key])}}exceptionMessage=exceptionValues.join("\n")||"";exceptionValues=exceptionMessage.split("\n");exceptionMessage="EXCEPTION: "+exceptionValues.join("\nEXCEPTION: ");SWFUpload.Console.writeLine(exceptionMessage)}else{SWFUpload.Console.writeLine(message)}}};SWFUpload.Console={};SWFUpload.Console.writeLine=function(message){var console,documentForm;try{console=document.getElementById("SWFUpload_Console");if(!console){documentForm=document.createElement("form");document.getElementsByTagName("body")[0].appendChild(documentForm);console=document.createElement("textarea");console.id="SWFUpload_Console";console.style.fontFamily="monospace";console.setAttribute("wrap","off");console.wrap="off";console.style.overflow="auto";console.style.width="700px";console.style.height="350px";console.style.margin="5px";documentForm.appendChild(console)}console.value+=message+"\n";console.scrollTop=console.scrollHeight-console.clientHeight}catch(ex){alert("Exception: "+ex.name+" Message: "+ex.message)}};fluid_1_1=fluid_1_1||{};(function($,fluid){var animateDisplay=function(elm,animation,defaultAnimation){animation=(animation)?animation:defaultAnimation;elm.animate(animation.params,animation.duration,animation.callback)};var animateProgress=function(elm,width,speed){elm.queue("fx",[]);elm.animate({width:width,queue:false},speed)};var showProgress=function(that,animation){if(animation===false){that.displayElement.show()}else{animateDisplay(that.displayElement,animation,that.options.showAnimation)}};var hideProgress=function(that,delay,animation){delay=(delay===null||isNaN(delay))?that.options.delay:delay;if(delay){var timeOut=setTimeout(function(){hideProgress(that,0,animation)},delay)}else{if(animation===false){that.displayElement.hide()}else{animateDisplay(that.displayElement,animation,that.options.hideAnimation)}}};var updateWidth=function(that,newWidth,dontAnimate){dontAnimate=dontAnimate||false;var currWidth=that.indicator.width();var direction=that.options.animate;if((newWidth>currWidth)&&(direction==="both"||direction==="forward")&&!dontAnimate){animateProgress(that.indicator,newWidth,that.options.speed)}else{if((newWidth<currWidth)&&(direction==="both"||direction==="backward")&&!dontAnimate){animateProgress(that.indicator,newWidth,that.options.speed)}else{that.indicator.width(newWidth)}}};var percentToPixels=function(that,percent){return Math.round((Math.min(percent,100)*that.progressBar.width())/100)};var refreshRelativeWidth=function(that){var pixels=Math.max(percentToPixels(that,parseFloat(that.storedPercent)),that.options.minWidth);updateWidth(that,pixels,true)};var initARIA=function(ariaElement){ariaElement.attr("role","progressbar");ariaElement.attr("aria-valuemin","0");ariaElement.attr("aria-valuemax","100");ariaElement.attr("aria-live","assertive");ariaElement.attr("aria-busy","false");ariaElement.attr("aria-valuenow","0");ariaElement.attr("aria-valuetext","")};var updateARIA=function(that,percent){var busy=percent<100&&percent>0;that.ariaElement.attr("aria-busy",busy);that.ariaElement.attr("aria-valuenow",percent);if(busy){var busyString=fluid.stringTemplate(that.options.ariaBusyText,{percentComplete:percent});that.ariaElement.attr("aria-valuetext",busyString)}else{if(percent===100){that.ariaElement.attr("aria-valuetext",that.options.ariaDoneText)}}};var updateText=function(label,value){label.html(value)};var repositionIndicator=function(that){that.indicator.css("top",that.progressBar.position().top).css("left",0).height(that.progressBar.height());refreshRelativeWidth(that)};var updateProgress=function(that,percent,labelText,animationForShow){showProgress(that,animationForShow);if(percent!==null){that.storedPercent=percent;var pixels=Math.max(percentToPixels(that,parseFloat(percent)),that.options.minWidth);updateWidth(that,pixels)}if(labelText!==null){updateText(that.label,labelText)}if(that.ariaElement){updateARIA(that,percent)}};var setupProgress=function(that){that.displayElement=that.locate("displayElement");if(that.options.initiallyHidden){that.displayElement.hide()}that.progressBar=that.locate("progressBar");that.label=that.locate("label");that.indicator=that.locate("indicator");that.ariaElement=that.locate("ariaElement");that.indicator.width(that.options.minWidth);that.storedPercent=0;if(that.ariaElement){initARIA(that.ariaElement)}};fluid.progress=function(container,options){var that=fluid.initView("fluid.progress",container,options);setupProgress(that);that.show=function(animation){showProgress(that,animation)};that.hide=function(delay,animation){hideProgress(that,delay,animation)};that.update=function(percentage,labelValue,animationForShow){updateProgress(that,percentage,labelValue,animationForShow)};that.refreshView=function(){repositionIndicator(that)};return that};fluid.defaults("fluid.progress",{selectors:{displayElement:".flc-progress",progressBar:".flc-progress-bar",indicator:".flc-progress-indicator",label:".flc-progress-label",ariaElement:".flc-progress-bar"},showAnimation:{params:{opacity:"show"},duration:"slow",callback:null},hideAnimation:{params:{opacity:"hide"},duration:"slow",callback:null},minWidth:5,delay:0,speed:200,animate:"forward",initiallyHidden:true,updatePosition:false,ariaBusyText:"Progress is %percentComplete percent complete",ariaDoneText:"Progress is complete."})})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){var updateProgress=function(file,events,demoState,isUploading){if(!isUploading){return }var chunk=Math.min(demoState.chunkSize,file.size);demoState.bytesUploaded=Math.min(demoState.bytesUploaded+chunk,file.size);events.onFileProgress.fire(file,demoState.bytesUploaded,file.size)};var fireAfterFileComplete=function(that,file){if(that.swfUploadSettings){that.swfUploadSettings.upload_complete_handler(file)}else{that.events.afterFileComplete.fire(file)}};var finishAndContinueOrCleanup=function(that,file){that.queueManager.finishFile(file);if(that.queueManager.shouldUploadNextFile()){startUploading(that)}else{that.queueManager.complete()}};var finishUploading=function(that){if(!that.queue.isUploading){return }var file=that.demoState.currentFile;file.filestatus=fluid.uploader.fileStatusConstants.COMPLETE;that.events.onFileSuccess.fire(file);that.demoState.fileIdx++;finishAndContinueOrCleanup(that,file)};var simulateUpload=function(that){if(!that.queue.isUploading){return }var file=that.demoState.currentFile;if(that.demoState.bytesUploaded<file.size){that.invokeAfterRandomDelay(function(){updateProgress(file,that.events,that.demoState,that.queue.isUploading);simulateUpload(that)})}else{finishUploading(that)}};var startUploading=function(that){that.demoState.currentFile=that.queue.files[that.demoState.fileIdx];that.demoState.chunksForCurrentFile=Math.ceil(that.demoState.currentFile/that.demoState.chunkSize);that.demoState.bytesUploaded=0;that.queue.isUploading=true;that.events.onFileStart.fire(that.demoState.currentFile);that.demoState.currentFile.filestatus=fluid.uploader.fileStatusConstants.IN_PROGRESS;simulateUpload(that)};var stopDemo=function(that){var file=that.demoState.currentFile;file.filestatus=fluid.uploader.fileStatusConstants.CANCELLED;that.queue.shouldStop=true;that.events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_STOPPED,"The demo upload was paused by the user.");finishAndContinueOrCleanup(that,file);that.events.onUploadStop.fire()};var setupDemoUploadManager=function(that){if(that.options.simulateDelay===undefined||that.options.simulateDelay===null){that.options.simulateDelay=true}that.demoState={fileIdx:0,chunkSize:200000};return that};fluid.demoUploadManager=function(uploadManager){var that=uploadManager;that.start=function(){that.queueManager.start();startUploading(that)};that.stop=function(){stopDemo(that)};that.invokeAfterRandomDelay=function(fn){var delay;if(that.options.simulateDelay){delay=Math.floor(Math.random()*1000+100);setTimeout(fn,delay)}else{fn()}};setupDemoUploadManager(that);return that}})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){var filterFiles=function(files,filterFn){var filteredFiles=[];for(var i=0;i<files.length;i++){var file=files[i];if(filterFn(file)===true){filteredFiles.push(file)}}return filteredFiles};var getUploadedFiles=function(that){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE)})};var getReadyFiles=function(that){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.QUEUED||file.filestatus===fluid.uploader.fileStatusConstants.CANCELLED)})};var getErroredFiles=function(that){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.ERROR)})};var removeFile=function(that,file){var idx=$.inArray(file,that.files);that.files.splice(idx,1)};var clearCurrentBatch=function(that){that.currentBatch={fileIdx:-1,files:[],totalBytes:0,numFilesCompleted:0,numFilesErrored:0,bytesUploadedForFile:0,previousBytesUploadedForFile:0,totalBytesUploaded:0}};var updateCurrentBatch=function(that){var readyFiles=that.getReadyFiles();that.currentBatch.files=readyFiles;that.currentBatch.totalBytes=fluid.fileQueue.sizeOfFiles(readyFiles)};var setupCurrentBatch=function(that){clearCurrentBatch(that);updateCurrentBatch(that)};fluid.fileQueue=function(){var that={};that.files=[];that.isUploading=false;that.addFile=function(file){that.files.push(file)};that.removeFile=function(file){removeFile(that,file)};that.totalBytes=function(){return fluid.fileQueue.sizeOfFiles(that.files)};that.getReadyFiles=function(){return getReadyFiles(that)};that.getErroredFiles=function(){return getErroredFiles(that)};that.sizeOfReadyFiles=function(){return fluid.fileQueue.sizeOfFiles(that.getReadyFiles())};that.getUploadedFiles=function(){return getUploadedFiles(that)};that.sizeOfUploadedFiles=function(){return fluid.fileQueue.sizeOfFiles(that.getUploadedFiles())};that.setupCurrentBatch=function(){setupCurrentBatch(that)};that.clearCurrentBatch=function(){clearCurrentBatch(that)};that.updateCurrentBatch=function(){updateCurrentBatch(that)};return that};fluid.fileQueue.sizeOfFiles=function(files){var totalBytes=0;for(var i=0;i<files.length;i++){var file=files[i];totalBytes+=file.size}return totalBytes};fluid.fileQueue.manager=function(queue,events){var that={};that.queue=queue;that.events=events;that.start=function(){that.queue.setupCurrentBatch();that.queue.isUploading=true;that.queue.shouldStop=false;that.events.onUploadStart.fire(that.queue.currentBatch.files)};that.startFile=function(){that.queue.currentBatch.fileIdx++;that.queue.currentBatch.bytesUploadedForFile=0;that.queue.currentBatch.previousBytesUploadedForFile=0};that.finishFile=function(file){var batch=that.queue.currentBatch;batch.numFilesCompleted++;that.events.afterFileComplete.fire(file)};that.shouldUploadNextFile=function(){return !that.queue.shouldStop&&that.queue.isUploading&&that.queue.currentBatch.numFilesCompleted<that.queue.currentBatch.files.length};that.complete=function(){that.events.afterUploadComplete.fire(that.queue.currentBatch.files);that.queue.clearCurrentBatch()};return that}})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){var refreshView=function(that){var maxHeight=that.options.maxHeight;var isOverMaxHeight=(that.scrollingElm.children().eq(0).height()>maxHeight);var setHeight=(isOverMaxHeight)?maxHeight:"";that.scrollingElm.height(setHeight)};var scrollBottom=function(that){that.scrollingElm[0].scrollTop=that.scrollingElm[0].scrollHeight};var scrollTo=function(that,element){if(!element||element.length<1){return }var padTop=0;var padBottom=0;var elmPosTop=element[0].offsetTop;var elmHeight=element.height();var containerScrollTop=that.scrollingElm[0].scrollTop;var containerHeight=that.scrollingElm.height();if(that.options.padScroll){var prevElmHeight=element.prev().height();padTop=(prevElmHeight+elmHeight<=containerHeight)?prevElmHeight:0;var nextElmHeight=element.next().height();padBottom=(nextElmHeight+elmHeight<=containerHeight)?nextElmHeight:0}if((elmPosTop-padTop)<containerScrollTop){that.scrollingElm[0].scrollTop=elmPosTop-padTop}if(((elmPosTop+elmHeight)+padBottom)>(containerScrollTop+containerHeight)){elmHeight=(elmHeight<containerHeight)?elmHeight:containerHeight;that.scrollingElm[0].scrollTop=(elmPosTop-containerHeight+elmHeight+padBottom)}};var setupScroller=function(that){that.scrollingElm=that.container.parents(that.options.selectors.wrapper);if(!that.scrollingElm.length){fluid.fail({name:"Missing Scroller",message:"The scroller wrapper element was not found."})}if(!$.browser.msie||$.browser.version>6){that.scrollingElm.css("max-height",that.options.maxHeight)}};fluid.scroller=function(container,options){var that=fluid.initView("fluid.scroller",container,options);setupScroller(that);that.scrollTo=function(element){scrollTo(that,element)};that.scrollBottom=function(){scrollBottom(that)};that.refreshView=function(){if($.browser.msie&&$.browser.version<7){refreshView(that)}};that.refreshView();return that};fluid.defaults("fluid.scroller",{selectors:{wrapper:".flc-scroller"},maxHeight:180,padScroll:true})})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){var unbindSelectFiles=function(){var emptyFunction=function(){};SWFUpload.prototype.selectFile=emptyFunction;SWFUpload.prototype.selectFiles=emptyFunction};var prepareUpstreamOptions=function(that,uploader){that.returnedOptions={uploadManager:{type:uploader.options.uploadManager.type||uploader.options.uploadManager}}};var createAfterReadyHandler=function(that,uploader){return function(){var flashMovie=$("#"+uploader.uploadManager.swfUploader.movieName,uploader.container);var browseButton=uploader.locate("browseButton");fluid.tabindex(flashMovie,0);flashMovie.attr("role","button");flashMovie.attr("alt","Browse files button");if(that.isTransparent){flashMovie.addClass(that.options.styles.browseButtonOverlay);flashMovie.css("top",browseButton.position().top);flashMovie.css("left",browseButton.position().left)}}};var createFlash9MovieContainer=function(){var container=$("<div class='fl-uploader-flash9-container'></div>");var placeholder=$("<span></span>");var placeholderId=fluid.allocateSimpleId(placeholder);container.append(placeholder);$("body").append(container);return placeholderId};var setupForFlash9=function(that,uploader){that.returnedOptions.uploadManager.options={flashURL:that.options.flash9URL||undefined,flashButtonPeerId:createFlash9MovieContainer()}};var createEmptyPlaceholder=function(){var placeholder=$("<span></span>");fluid.allocateSimpleId(placeholder);return placeholder};var createButtonPlaceholder=function(browseButton){var placeholder=$("<span></span>");var placeholderId=fluid.allocateSimpleId(placeholder);browseButton.before(placeholder);unbindSelectFiles();return placeholderId};var setupForFlash10=function(that,uploader){var browseButton=uploader.locate("browseButton");fluid.tabindex(browseButton,-1);that.isTransparent=that.options.flashButtonAlwaysVisible?false:(!$.browser.msie||that.options.transparentEvenInIE);var peerId=that.isTransparent?createButtonPlaceholder(browseButton):fluid.allocateSimpleId(browseButton);that.returnedOptions.uploadManager.options={flashURL:that.options.flash10URL||undefined,flashButtonImageURL:that.isTransparent?undefined:that.options.flashButtonImageURL,flashButtonPeerId:peerId,flashButtonHeight:that.isTransparent?browseButton.outerHeight():that.options.flashButtonHeight,flashButtonWidth:that.isTransparent?browseButton.outerWidth():that.options.flashButtonWidth,flashButtonWindowMode:that.isTransparent?SWFUpload.WINDOW_MODE.TRANSPARENT:SWFUpload.WINDOW_MODE.OPAQUE,flashButtonCursorEffect:SWFUpload.CURSOR.HAND,listeners:{afterReady:createAfterReadyHandler(that,uploader),onUploadStart:function(){uploader.uploadManager.swfUploader.setButtonDisabled(true)},afterUploadComplete:function(){uploader.uploadManager.swfUploader.setButtonDisabled(false)}}}};fluid.swfUploadSetupDecorator=function(uploader,options){var that={};fluid.mergeComponentOptions(that,"fluid.swfUploadSetupDecorator",options);that.flashVersion=swfobject.getFlashPlayerVersion().major;prepareUpstreamOptions(that,uploader);if(that.flashVersion===9){setupForFlash9(that,uploader)}else{setupForFlash10(that,uploader)}return that};fluid.defaults("fluid.swfUploadSetupDecorator",{flashButtonAlwaysVisible:true,transparentEvenInIE:false,flashButtonImageURL:"../images/browse.png",flashButtonHeight:22,flashButtonWidth:106,styles:{browseButtonOverlay:"fl-uploader-browse-overlay"}});var swfUploadOptionsMap={uploadURL:"upload_url",flashURL:"flash_url",postParams:"post_params",fileSizeLimit:"file_size_limit",fileTypes:"file_types",fileTypesDescription:"file_types_description",fileUploadLimit:"file_upload_limit",fileQueueLimit:"file_queue_limit",flashButtonPeerId:"button_placeholder_id",flashButtonImageURL:"button_image_url",flashButtonHeight:"button_height",flashButtonWidth:"button_width",flashButtonWindowMode:"button_window_mode",flashButtonCursorEffect:"button_cursor",debug:"debug"};var swfUploadEventMap={afterReady:"swfupload_loaded_handler",onFileDialog:"file_dialog_start_handler",afterFileQueued:"file_queued_handler",onQueueError:"file_queue_error_handler",afterFileDialog:"file_dialog_complete_handler",onFileStart:"upload_start_handler",onFileProgress:"upload_progress_handler",onFileError:"upload_error_handler",onFileSuccess:"upload_success_handler"};var mapNames=function(nameMap,source,target){var result=target||{};for(var key in source){var mappedKey=nameMap[key];if(mappedKey){result[mappedKey]=source[key]}}return result};var mapEvents=function(that,nameMap,target){var result=target||{};for(var eventType in that.events){var fireFn=that.events[eventType].fire;var mappedName=nameMap[eventType];if(mappedName){result[mappedName]=fireFn}}result.upload_complete_handler=function(file){that.queueManager.finishFile(file);if(that.queueManager.shouldUploadNextFile()){that.swfUploader.startUpload()}else{if(that.queueManager.queue.shouldStop){that.swfUploader.stopUpload()}that.queueManager.complete()}};return result};var browse=function(that){if(that.queue.isUploading){return }if(that.options.fileQueueLimit===1){that.swfUploader.selectFile()}else{that.swfUploader.selectFiles()}};var stopUpload=function(that){that.queue.shouldStop=true;that.events.onUploadStop.fire()};var bindEvents=function(that){var fileStatusUpdater=function(file){fluid.find(that.queue.files,function(potentialMatch){if(potentialMatch.id===file.id){potentialMatch.filestatus=file.filestatus;return true}})};that.events.afterFileQueued.addListener(function(file){that.queue.addFile(file)});that.events.onFileStart.addListener(function(file){that.queueManager.startFile();fileStatusUpdater(file)});that.events.onFileProgress.addListener(function(file,currentBytes,totalBytes){var currentBatch=that.queue.currentBatch;var byteIncrement=currentBytes-currentBatch.previousBytesUploadedForFile;currentBatch.totalBytesUploaded+=byteIncrement;currentBatch.bytesUploadedForFile+=byteIncrement;currentBatch.previousBytesUploadedForFile=currentBytes;fileStatusUpdater(file)});that.events.onFileError.addListener(function(file,error){if(error===fluid.uploader.errorConstants.UPLOAD_STOPPED){that.queue.isUploading=false}else{if(that.queue.isUploading){that.queue.currentBatch.totalBytesUploaded+=file.size;that.queue.currentBatch.numFilesErrored++}}fileStatusUpdater(file)});that.events.onFileSuccess.addListener(function(file){if(that.queue.currentBatch.bytesUploadedForFile===0){that.queue.currentBatch.totalBytesUploaded+=file.size}fileStatusUpdater(file)});that.events.afterUploadComplete.addListener(function(){that.queue.isUploading=false})};var removeFile=function(that,file){that.queue.removeFile(file);that.swfUploader.cancelUpload(file.id);that.events.afterFileRemoved.fire(file)};var setupSwfUploadManager=function(that,events){that.events=events;that.queue=fluid.fileQueue();that.queueManager=fluid.fileQueue.manager(that.queue,that.events);that.swfUploadSettings=mapNames(swfUploadOptionsMap,that.options);mapEvents(that,swfUploadEventMap,that.swfUploadSettings);that.swfUploader=new SWFUpload(that.swfUploadSettings);bindEvents(that)};fluid.swfUploadManager=function(events,options){var that={};fluid.mergeComponentOptions(that,"fluid.swfUploadManager",options);fluid.mergeListeners(events,that.options.listeners);that.browseForFiles=function(){browse(that)};that.removeFile=function(file){removeFile(that,file)};that.start=function(){that.queueManager.start();that.swfUploader.startUpload()};that.stop=function(){stopUpload(that)};setupSwfUploadManager(that,events);return that};fluid.defaults("fluid.swfUploadManager",{uploadURL:"",flashURL:"../../../lib/swfupload/flash/swfupload.swf",flashButtonPeerId:"",postParams:{},fileSizeLimit:"20480",fileTypes:"*",fileTypesDescription:null,fileUploadLimit:0,fileQueueLimit:0,debug:false})})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){var rowForFile=function(that,file){return that.locate("fileQueue").find("#"+file.id)};var errorRowForFile=function(that,file){return $("#"+file.id+"_error",that.container)};var fileForRow=function(that,row){var files=that.uploadManager.queue.files;for(var i=0;i<files.length;i++){var file=files[i];if(file.id.toString()===row.attr("id")){return file}}return null};var progressorForFile=function(that,file){var progressId=file.id+"_progress";return that.fileProgressors[progressId]};var startFileProgress=function(that,file){var fileRowElm=rowForFile(that,file);that.scroller.scrollTo(fileRowElm);var fileProgressor=progressorForFile(that,file);fileProgressor.refreshView();fileProgressor.show()};var updateFileProgress=function(that,file,fileBytesComplete,fileTotalBytes){var filePercent=fluid.uploader.derivePercent(fileBytesComplete,fileTotalBytes);var filePercentStr=filePercent+"%";progressorForFile(that,file).update(filePercent,filePercentStr)};var hideFileProgress=function(that,file){var fileRowElm=rowForFile(that,file);progressorForFile(that,file).hide();if(file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE){that.locate("fileIconBtn",fileRowElm).removeClass(that.options.styles.dim)}};var removeFileProgress=function(that,file){var fileProgressor=progressorForFile(that,file);if(!fileProgressor){return }var rowProgressor=fileProgressor.displayElement;rowProgressor.remove()};var animateRowRemoval=function(that,row){row.fadeOut("fast",function(){row.remove();that.refreshView()})};var removeFileErrorRow=function(that,file){if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR){animateRowRemoval(that,errorRowForFile(that,file))}};var removeFileAndRow=function(that,file,row){removeFileProgress(that,file);removeFileErrorRow(that,file);that.uploadManager.removeFile(file);animateRowRemoval(that,row)};var removeFileForRow=function(that,row){var file=fileForRow(that,row);if(!file||file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE){return }removeFileAndRow(that,file,row)};var removeRowForFile=function(that,file){var row=rowForFile(that,file);removeFileAndRow(that,file,row)};var bindHover=function(row,styles){var over=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading)){row.addClass(styles.hover)}};var out=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading)){row.removeClass(styles.hover)}};row.hover(over,out)};var bindDeleteKey=function(that,row){var deleteHandler=function(){removeFileForRow(that,row)};fluid.activatable(row,null,{additionalBindings:[{key:$.ui.keyCode.DELETE,activateHandler:deleteHandler}]})};var bindRowHandlers=function(that,row){if($.browser.msie&&$.browser.version<7){bindHover(row,that.options.styles)}that.locate("fileIconBtn",row).click(function(){removeFileForRow(that,row)});bindDeleteKey(that,row)};var renderRowFromTemplate=function(that,file){var row=that.rowTemplate.clone();that.locate("fileName",row).text(file.name);that.locate("fileSize",row).text(fluid.uploader.formatFileSize(file.size));that.locate("fileIconBtn",row).addClass(that.options.styles.remove);row.attr("id",file.id);row.addClass(that.options.styles.ready);bindRowHandlers(that,row);return row};var createProgressorFromTemplate=function(that,row){var rowProgressor=that.rowProgressorTemplate.clone();var rowId=row.attr("id");var progressId=rowId+"_progress";rowProgressor.attr("id",progressId);rowProgressor.css("top",row.position().top);rowProgressor.height(row.height()).width(5);that.container.after(rowProgressor);that.fileProgressors[progressId]=fluid.progress(that.uploadContainer,{selectors:{progressBar:"#"+rowId,displayElement:"#"+progressId,label:"#"+progressId+" .fl-uploader-file-progress-text",indicator:"#"+progressId}})};var addFile=function(that,file){var row=renderRowFromTemplate(that,file);if(!($.browser.msie&&($.browser.version>=8))){row.hide()}that.container.append(row);row.fadeIn("slow");that.scroller.scrollBottom();createProgressorFromTemplate(that,row);that.refreshView()};var prepareForUpload=function(that){var rowButtons=that.locate("fileIconBtn",that.locate("fileRows"));rowButtons.attr("disabled","disabled");rowButtons.addClass(that.options.styles.dim)};var refreshAfterUpload=function(that){var rowButtons=that.locate("fileIconBtn",that.locate("fileRows"));rowButtons.removeAttr("disabled");rowButtons.removeClass(that.options.styles.dim)};var changeRowState=function(that,row,newState){row.removeClass(that.options.styles.ready).removeClass(that.options.styles.error).addClass(newState)};var markRowAsComplete=function(that,file){var row=rowForFile(that,file);changeRowState(that,row,that.options.styles.uploaded);row.attr("title",that.options.strings.status.success);fluid.enabled(row,false);var removeRowBtn=that.locate("fileIconBtn",row);removeRowBtn.unbind("click");removeRowBtn.removeClass(that.options.styles.remove);removeRowBtn.attr("title",that.options.strings.status.success)};var renderErrorInfoRowFromTemplate=function(that,fileRow,error){var errorRow=that.errorInfoRowTemplate.clone();errorRow.attr("id",fileRow.attr("id")+"_error");var errorType=fluid.keyForValue(fluid.uploader.errorConstants,error);var errorMsg=that.options.strings.errors[errorType];that.locate("errorText",errorRow).text(errorMsg);fileRow.after(errorRow);that.scroller.scrollTo(errorRow)};var showErrorForFile=function(that,file,error){hideFileProgress(that,file);if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR){var fileRowElm=rowForFile(that,file);changeRowState(that,fileRowElm,that.options.styles.error);renderErrorInfoRowFromTemplate(that,fileRowElm,error)}};var bindModelEvents=function(that){that.returnedOptions={listeners:{afterFileQueued:that.addFile,onUploadStart:that.prepareForUpload,onFileStart:that.showFileProgress,onFileProgress:that.updateFileProgress,onFileSuccess:that.markFileComplete,onFileError:that.showErrorForFile,afterFileComplete:that.hideFileProgress,afterUploadComplete:that.refreshAfterUpload}}};var addKeyboardNavigation=function(that){fluid.tabbable(that.container);that.selectableContext=fluid.selectable(that.container,{selectableSelector:that.options.selectors.fileRows,onSelect:function(itemToSelect){$(itemToSelect).addClass(that.options.styles.selected)},onUnselect:function(selectedItem){$(selectedItem).removeClass(that.options.styles.selected)}})};var prepareTemplateElements=function(that){that.rowTemplate=that.locate("rowTemplate").remove();if($.browser.msie&&($.browser.version>=8)){that.rowTemplate.removeClass(that.options.styles.hiddenTemplate)}that.errorInfoRowTemplate=that.locate("errorInfoRowTemplate").remove();that.errorInfoRowTemplate.removeClass(that.options.styles.hiddenTemplate);that.rowProgressorTemplate=that.locate("rowProgressorTemplate",that.uploadContainer).remove()};var setupFileQueue=function(that,uploadManager){that.uploadManager=uploadManager;that.scroller=fluid.scroller(that.container);prepareTemplateElements(that);addKeyboardNavigation(that);bindModelEvents(that)};fluid.fileQueueView=function(container,parentContainer,uploadManager,options){var that=fluid.initView("fluid.fileQueueView",container,options);that.uploadContainer=parentContainer;that.fileProgressors={};that.addFile=function(file){addFile(that,file)};that.removeFile=function(file){removeRowForFile(that,file)};that.prepareForUpload=function(){prepareForUpload(that)};that.refreshAfterUpload=function(){refreshAfterUpload(that)};that.showFileProgress=function(file){startFileProgress(that,file)};that.updateFileProgress=function(file,fileBytesComplete,fileTotalBytes){updateFileProgress(that,file,fileBytesComplete,fileTotalBytes)};that.markFileComplete=function(file){progressorForFile(that,file).update(100,"100%");markRowAsComplete(that,file)};that.showErrorForFile=function(file,error){showErrorForFile(that,file,error)};that.hideFileProgress=function(file){hideFileProgress(that,file)};that.refreshView=function(){that.scroller.refreshView();that.selectableContext.refresh()};setupFileQueue(that,uploadManager);return that};fluid.defaults("fluid.fileQueueView",{selectors:{fileRows:".flc-uploader-file",fileName:".flc-uploader-file-name",fileSize:".flc-uploader-file-size",fileIconBtn:".flc-uploader-file-action",errorText:".flc-uploader-file-error",rowTemplate:".flc-uploader-file-tmplt",errorInfoRowTemplate:".flc-uploader-file-error-tmplt",rowProgressorTemplate:".flc-uploader-file-progressor-tmplt"},styles:{hover:"fl-uploader-file-hover",selected:"fl-uploader-file-focus",ready:"fl-uploader-file-state-ready",uploading:"fl-uploader-file-state-uploading",uploaded:"fl-uploader-file-state-uploaded",error:"fl-uploader-file-state-error",remove:"fl-uploader-file-action-remove",dim:"fl-uploader-dim",hiddenTemplate:"fl-uploader-hidden-templates"},strings:{progress:{toUploadLabel:"To upload: %fileCount %fileLabel (%totalBytes)",singleFile:"file",pluralFiles:"files"},status:{success:"File Uploaded",error:"File Upload Error"},errors:{HTTP_ERROR:"File upload error: a network error occured or the file was rejected (reason unknown).",IO_ERROR:"File upload error: a network error occured.",UPLOAD_LIMIT_EXCEEDED:"File upload error: you have uploaded as many files as you are allowed during this session",UPLOAD_FAILED:"File upload error: the upload failed for an unknown reason.",QUEUE_LIMIT_EXCEEDED:"You have as many files in the queue as can be added at one time. Removing files from the queue may allow you to add different files.",FILE_EXCEEDS_SIZE_LIMIT:"One or more of the files that you attempted to add to the queue exceeded the limit of %fileSizeLimit.",ZERO_BYTE_FILE:"One or more of the files that you attempted to add contained no data.",INVALID_FILETYPE:"One or more files were not added to the queue because they were of the wrong type."}}})})(jQuery,fluid_1_1);(function($,fluid){var fileOrFiles=function(that,numFiles){return(numFiles===1)?that.options.strings.progress.singleFile:that.options.strings.progress.pluralFiles};var enableElement=function(that,elm){elm.removeAttr("disabled");elm.removeClass(that.options.styles.dim)};var disableElement=function(that,elm){elm.attr("disabled","disabled");elm.addClass(that.options.styles.dim)};var showElement=function(that,elm){elm.removeClass(that.options.styles.hidden)};var hideElement=function(that,elm){elm.addClass(that.options.styles.hidden)};var setTotalProgressStyle=function(that,didError){didError=didError||false;var indicator=that.totalProgress.indicator;indicator.toggleClass(that.options.styles.totalProgress,!didError);indicator.toggleClass(that.options.styles.totalProgressError,didError)};var setStateEmpty=function(that){disableElement(that,that.locate("uploadButton"));if(that.uploadManager.queue.files.length===0){that.locate("browseButton").text(that.options.strings.buttons.browse);showElement(that,that.locate("instructions"))}};var setStateDone=function(that){disableElement(that,that.locate("uploadButton"));enableElement(that,that.locate("browseButton"));hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"))};var setStateLoaded=function(that){that.locate("browseButton").text(that.options.strings.buttons.addMore);hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"));enableElement(that,that.locate("uploadButton"));enableElement(that,that.locate("browseButton"));hideElement(that,that.locate("instructions"));that.totalProgress.hide()};var setStateUploading=function(that){that.totalProgress.hide(false,false);setTotalProgressStyle(that);hideElement(that,that.locate("uploadButton"));disableElement(that,that.locate("browseButton"));enableElement(that,that.locate("pauseButton"));showElement(that,that.locate("pauseButton"));that.locate(that.options.focusWithEvent.afterUploadStart).focus()};var renderUploadTotalMessage=function(that){var numReadyFiles=that.uploadManager.queue.getReadyFiles().length;var bytesReadyFiles=that.uploadManager.queue.sizeOfReadyFiles();var fileLabelStr=fileOrFiles(that,numReadyFiles);var totalStateStr=fluid.stringTemplate(that.options.strings.progress.toUploadLabel,{fileCount:numReadyFiles,fileLabel:fileLabelStr,totalBytes:fluid.uploader.formatFileSize(bytesReadyFiles)});that.locate("totalFileStatusText").html(totalStateStr)};var updateTotalProgress=function(that){var batch=that.uploadManager.queue.currentBatch;var totalPercent=fluid.uploader.derivePercent(batch.totalBytesUploaded,batch.totalBytes);var numFilesInBatch=batch.files.length;var fileLabelStr=fileOrFiles(that,numFilesInBatch);var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.totalProgressLabel,{curFileN:batch.fileIdx+1,totalFilesN:numFilesInBatch,fileLabel:fileLabelStr,currBytes:fluid.uploader.formatFileSize(batch.totalBytesUploaded),totalBytes:fluid.uploader.formatFileSize(batch.totalBytes)});that.totalProgress.update(totalPercent,totalProgressStr)};var updateTotalAtCompletion=function(that){var numErroredFiles=that.uploadManager.queue.getErroredFiles().length;var numTotalFiles=that.uploadManager.queue.files.length;var fileLabelStr=fileOrFiles(that,numTotalFiles);var errorStr="";if(numErroredFiles>0){var errorLabelString=(numErroredFiles===1)?that.options.strings.progress.singleError:that.options.strings.progress.pluralErrors;setTotalProgressStyle(that,true);errorStr=fluid.stringTemplate(that.options.strings.progress.numberOfErrors,{errorsN:numErroredFiles,errorLabel:errorLabelString})}var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.completedLabel,{curFileN:that.uploadManager.queue.getUploadedFiles().length,totalFilesN:numTotalFiles,errorString:errorStr,fileLabel:fileLabelStr,totalCurrBytes:fluid.uploader.formatFileSize(that.uploadManager.queue.sizeOfUploadedFiles())});that.totalProgress.update(100,totalProgressStr)};var bindDOMEvents=function(that){that.locate("browseButton").click(function(evnt){that.uploadManager.browseForFiles();evnt.preventDefault()});that.locate("uploadButton").click(function(){that.uploadManager.start()});that.locate("pauseButton").click(function(){that.uploadManager.stop()})};var updateStateAfterFileDialog=function(that){if(that.uploadManager.queue.getReadyFiles().length>0){setStateLoaded(that);renderUploadTotalMessage(that);that.locate(that.options.focusWithEvent.afterFileDialog).focus()}};var updateStateAfterFileRemoval=function(that){if(that.uploadManager.queue.getReadyFiles().length===0){setStateEmpty(that)}renderUploadTotalMessage(that)};var updateStateAfterPause=function(that){};var updateStateAfterCompletion=function(that){var userPaused=that.uploadManager.queue.shouldStop;if(that.uploadManager.queue.getReadyFiles().length===0){setStateDone(that)}else{setStateLoaded(that)}updateTotalAtCompletion(that)};var bindModelEvents=function(that){that.events.afterFileDialog.addListener(function(){updateStateAfterFileDialog(that)});that.events.afterFileRemoved.addListener(function(){updateStateAfterFileRemoval(that)});that.events.onUploadStart.addListener(function(){setStateUploading(that)});that.events.onUploadStop.addListener(function(){that.locate(that.options.focusWithEvent.afterUploadStop).focus()});that.events.onFileProgress.addListener(function(){updateTotalProgress(that)});that.events.onFileSuccess.addListener(function(){updateTotalProgress(that)});that.events.onFileError.addListener(function(file,error,message){if(error===fluid.uploader.errorConstants.UPLOAD_STOPPED){updateStateAfterPause(that)}});that.events.afterUploadComplete.addListener(function(){updateStateAfterCompletion(that)})};var initUploadManager=function(that){var manager=fluid.initSubcomponent(that,"uploadManager",[that.events,fluid.COMPONENT_OPTIONS]);return that.options.demo?fluid.demoUploadManager(manager):manager};var setupUploader=function(that){that.decorators=fluid.initSubcomponents(that,"decorators",[that,fluid.COMPONENT_OPTIONS]);that.uploadManager=initUploadManager(that);that.fileQueueView=fluid.initSubcomponent(that,"fileQueueView",[that.locate("fileQueue"),that.container,that.uploadManager,fluid.COMPONENT_OPTIONS]);that.totalProgress=fluid.initSubcomponent(that,"totalProgressBar",[that.container,fluid.COMPONENT_OPTIONS]);disableElement(that,that.locate("uploadButton"));bindDOMEvents(that);bindModelEvents(that)};fluid.uploader=function(container,options){var that=fluid.initView("fluid.uploader",container,options);setupUploader(that);return that};fluid.progressiveEnhanceableUploader=function(container,enhanceable,options){enhanceable=fluid.container(enhanceable);container=fluid.container(container);if(swfobject.getFlashPlayerVersion().major<9){enhanceable.show()}else{container.show();return fluid.uploader(container,options)}};fluid.uploader.formatFileSize=function(bytes){if(typeof bytes==="number"){if(bytes===0){return"0.0 KB"}else{if(bytes>0){if(bytes<1048576){return(Math.ceil(bytes/1024*10)/10).toFixed(1)+" KB"}else{return(Math.ceil(bytes/1048576*10)/10).toFixed(1)+" MB"}}}}return""};fluid.uploader.derivePercent=function(num,total){return Math.round((num*100)/total)};fluid.defaults("fluid.uploader",{demo:false,decorators:[{type:"fluid.swfUploadSetupDecorator"},{type:"fluid.manuallyDegrade",options:{selectors:{enhanceable:".fl-uploader.fl-progEnhance-basic"}}}],uploadManager:{type:"fluid.swfUploadManager"},fileQueueView:{type:"fluid.fileQueueView"},totalProgressBar:{type:"fluid.progress",options:{selectors:{progressBar:".flc-uploader-queue-footer",displayElement:".flc-uploader-total-progress",label:".flc-uploader-total-progress-text",indicator:".flc-uploader-total-progress",ariaElement:".flc-uploader-total-progress"}}},selectors:{fileQueue:".flc-uploader-queue",browseButton:".flc-uploader-button-browse",uploadButton:".flc-uploader-button-upload",pauseButton:".flc-uploader-button-pause",totalFileStatusText:".flc-uploader-total-progress-text",instructions:".flc-uploader-browse-instructions"},focusWithEvent:{afterFileDialog:"uploadButton",afterUploadStart:"pauseButton",afterUploadStop:"uploadButton"},styles:{disabled:"fl-uploader-disabled",hidden:"fl-uploader-hidden",dim:"fl-uploader-dim",totalProgress:"fl-uploader-total-progress-okay",totalProgressError:"fl-uploader-total-progress-errored"},events:{afterReady:null,onFileDialog:null,afterFileQueued:null,afterFileRemoved:null,onQueueError:null,afterFileDialog:null,onUploadStart:null,onUploadStop:null,onFileStart:null,onFileProgress:null,onFileError:null,onFileSuccess:null,afterFileComplete:null,afterUploadComplete:null},strings:{progress:{toUploadLabel:"To upload: %fileCount %fileLabel (%totalBytes)",totalProgressLabel:"Uploading: %curFileN of %totalFilesN %fileLabel (%currBytes of %totalBytes)",completedLabel:"Uploaded: %curFileN of %totalFilesN %fileLabel (%totalCurrBytes)%errorString",numberOfErrors:", %errorsN %errorLabel",singleFile:"file",pluralFiles:"files",singleError:"error",pluralErrors:"errors"},buttons:{browse:"Browse Files",addMore:"Add More",stopUpload:"Stop Upload",cancelRemaning:"Cancel remaining Uploads",resumeUpload:"Resume Upload"}}});fluid.uploader.errorConstants={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290};fluid.uploader.fileStatusConstants={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5};var renderLink=function(renderLocation,text,classes,appendBeside){var link=$("<a href='#'>"+text+"</a>");link.addClass(classes);if(renderLocation==="before"){appendBeside.before(link)}else{appendBeside.after(link)}return link};var toggleVisibility=function(toShow,toHide){if(window.opera){toShow.show().removeClass("hideUploaderForOpera");toHide.show().addClass("hideUploaderForOpera")}else{toShow.show();toHide.hide()}};var defaultControlRenderer=function(that){var degradeLink=renderLink(that.options.defaultRenderLocation,that.options.strings.degradeLinkText,that.options.styles.degradeLinkClass,that.enhancedContainer);degradeLink.addClass("flc-manuallyDegrade-degrade");var enhanceLink=renderLink(that.options.defaultRenderLocation,that.options.strings.enhanceLinkText,that.options.styles.enhanceLinkClass,that.degradedContainer);enhanceLink.addClass("flc-manuallyDegrade-enhance")};var fetchControls=function(that){that.degradeControl=that.locate("degradeControl");that.enhanceControl=that.locate("enhanceControl")};var setupManuallyDegrade=function(that){if(!that.degradedContainer.length){return }fetchControls(that);if(!that.degradeControl.length&&!that.enhanceControl.length){that.options.controlRenderer(that);fetchControls(that)}that.degradeControl.click(that.degrade);that.enhanceControl.click(that.enhance);that.enhanceControl.hide()};var determineContainer=function(options){var defaults=fluid.defaults("fluid.manuallyDegrade");return(options&&options.container)?options.container:defaults.container};fluid.manuallyDegrade=function(component,options){var container=determineContainer(options);var that=fluid.initView("fluid.manuallyDegrade",container,options);var isDegraded=false;that.enhancedContainer=component.container;that.degradedContainer=that.locate("enhanceable");that.degrade=function(){toggleVisibility(that.enhanceControl,that.degradeControl);toggleVisibility(that.degradedContainer,that.enhancedContainer);isDegraded=true};that.enhance=function(){toggleVisibility(that.degradeControl,that.enhanceControl);toggleVisibility(that.enhancedContainer,that.degradedContainer);isDegraded=false};that.isDegraded=function(){return isDegraded};setupManuallyDegrade(that);return that};fluid.defaults("fluid.manuallyDegrade",{container:"body",controlRenderer:defaultControlRenderer,defaultRenderLocation:"before",strings:{degradeLinkText:"Switch to the standard single-file Uploader",enhanceLinkText:"Switch to the Flash-based multi-file Uploader"},selectors:{enhanceable:".fl-ProgEnhance-basic",degradeControl:".flc-manuallyDegrade-degrade",enhanceControl:".flc-manuallyDegrade-enhance"},styles:{degradeLinkClass:"fl-uploader-manually-degrade",enhanceLinkClass:"fl-uploader-manually-enhance"}})})(jQuery,fluid_1_1);var whitespace="\n\r\t ";var closedTags={abbr:true,br:true,col:true,img:true,input:true,link:true,meta:true,param:true,hr:true,area:true,embed:true};XMLP=function(strXML){this.m_xml=strXML;this.m_iP=0;this.m_iState=XMLP._STATE_PROLOG;this.m_stack=[];this.m_attributes={};this.m_emitSynthetic=false};XMLP._NONE=0;XMLP._ELM_B=1;XMLP._ELM_E=2;XMLP._ELM_EMP=3;XMLP._ATT=4;XMLP._TEXT=5;XMLP._ENTITY=6;XMLP._PI=7;XMLP._CDATA=8;XMLP._COMMENT=9;XMLP._DTD=10;XMLP._ERROR=11;XMLP._CONT_XML=0;XMLP._CONT_ALT=1;XMLP._ATT_NAME=0;XMLP._ATT_VAL=1;XMLP._STATE_PROLOG=1;XMLP._STATE_DOCUMENT=2;XMLP._STATE_MISC=3;XMLP._errs=[];XMLP._errs[XMLP.ERR_CLOSE_PI=0]="PI: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_DTD=1]="DTD: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_COMMENT=2]="Comment: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_CDATA=3]="CDATA: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_ELM=4]="Element: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_ENTITY=5]="Entity: missing closing sequence";XMLP._errs[XMLP.ERR_PI_TARGET=6]="PI: target is required";XMLP._errs[XMLP.ERR_ELM_EMPTY=7]="Element: cannot be both empty and closing";XMLP._errs[XMLP.ERR_ELM_NAME=8]='Element: name must immediatly follow "<"';XMLP._errs[XMLP.ERR_ELM_LT_NAME=9]='Element: "<" not allowed in element names';XMLP._errs[XMLP.ERR_ATT_VALUES=10]="Attribute: values are required and must be in quotes";XMLP._errs[XMLP.ERR_ATT_LT_NAME=11]='Element: "<" not allowed in attribute names';XMLP._errs[XMLP.ERR_ATT_LT_VALUE=12]='Attribute: "<" not allowed in attribute values';XMLP._errs[XMLP.ERR_ATT_DUP=13]="Attribute: duplicate attributes not allowed";XMLP._errs[XMLP.ERR_ENTITY_UNKNOWN=14]="Entity: unknown entity";XMLP._errs[XMLP.ERR_INFINITELOOP=15]="Infinite loop";XMLP._errs[XMLP.ERR_DOC_STRUCTURE=16]="Document: only comments, processing instructions, or whitespace allowed outside of document element";XMLP._errs[XMLP.ERR_ELM_NESTING=17]="Element: must be nested correctly";XMLP.prototype._checkStructure=function(iEvent){var stack=this.m_stack;if(XMLP._STATE_PROLOG==this.m_iState){this.m_iState=XMLP._STATE_DOCUMENT}if(XMLP._STATE_DOCUMENT===this.m_iState){if((XMLP._ELM_B==iEvent)||(XMLP._ELM_EMP==iEvent)){this.m_stack[stack.length]=this.getName()}if((XMLP._ELM_E==iEvent)||(XMLP._ELM_EMP==iEvent)){if(stack.length===0){return XMLP._NONE}var strTop=stack[stack.length-1];this.m_stack.length--;if(strTop===null||strTop!==this.getName()){return this._setErr(XMLP.ERR_ELM_NESTING)}}}return iEvent};XMLP.prototype.getColumnNumber=function(){return SAXStrings.getColumnNumber(this.m_xml,this.m_iP)};XMLP.prototype.getContent=function(){return(this.m_cSrc==XMLP._CONT_XML)?this.m_xml:this.m_cAlt};XMLP.prototype.getContentBegin=function(){return this.m_cB};XMLP.prototype.getContentEnd=function(){return this.m_cE};XMLP.prototype.getLineNumber=function(){return SAXStrings.getLineNumber(this.m_xml,this.m_iP)};XMLP.prototype.getName=function(){return this.m_name};XMLP.prototype.next=function(){return this._checkStructure(this._parse())};XMLP.prototype._parse=function(){var iP=this.m_iP;var xml=this.m_xml;if(iP===xml.length){return XMLP._NONE}var c=xml.charAt(iP);if(c==="<"){var c2=xml.charAt(iP+1);if(c2==="?"){return this._parsePI(iP+2)}else{if(c2==="!"){if(iP===xml.indexOf("<!DOCTYPE",iP)){return this._parseDTD(iP+9)}else{if(iP===xml.indexOf("<!--",iP)){return this._parseComment(iP+4)}else{if(iP===xml.indexOf("<![CDATA[",iP)){return this._parseCDATA(iP+9)}}}}else{return this._parseElement(iP+1)}}}else{return this._parseText(iP)}};var nameRegex=/([^\s>]+)/g;var attrStartRegex=/\s*([\w:]+)/gm;var attrValRegex=/\"([^\"]*)\"\s*/gm;var attrValIERegex=/([^\>\s]+)\s*/gm;var closeRegex=/\s*<\//g;XMLP.prototype._parseElement=function(iB){var iE,iDE,iRet;var iType,strN,iLast;iDE=iE=this.m_xml.indexOf(">",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_ELM)}if(this.m_xml.charAt(iB)=="/"){iType=XMLP._ELM_E;iB++}else{iType=XMLP._ELM_B}if(this.m_xml.charAt(iE-1)=="/"){if(iType==XMLP._ELM_E){return this._setErr(XMLP.ERR_ELM_EMPTY)}iType=XMLP._ELM_EMP;iDE--}nameRegex.lastIndex=iB;var nameMatch=nameRegex.exec(this.m_xml);if(!nameMatch){return this._setErr(XMLP.ERR_ELM_NAME)}strN=nameMatch[1].toLowerCase();if("li"===strN&&iType!==XMLP._ELM_E&&this.m_stack.length>0&&this.m_stack[this.m_stack.length-1]==="li"&&!this.m_emitSynthetic){this.m_name="li";this.m_emitSynthetic=true;return XMLP._ELM_E}this.m_attributes={};this.m_cAlt="";if(nameRegex.lastIndex<iDE){this.m_iP=nameRegex.lastIndex;while(this.m_iP<iDE){attrStartRegex.lastIndex=this.m_iP;var attrMatch=attrStartRegex.exec(this.m_xml);if(!attrMatch){return this._setErr(XMLP.ERR_ATT_VALUES)}var attrname=attrMatch[1].toLowerCase();var attrval;if(this.m_xml.charCodeAt(attrStartRegex.lastIndex)===61){var valRegex=this.m_xml.charCodeAt(attrStartRegex.lastIndex+1)===34?attrValRegex:attrValIERegex;valRegex.lastIndex=attrStartRegex.lastIndex+1;attrMatch=valRegex.exec(this.m_xml);if(!attrMatch){return this._setErr(XMLP.ERR_ATT_VALUES)}attrval=attrMatch[1]}else{attrval=attrname;valRegex=attrStartRegex}if(!this.m_attributes[attrname]){this.m_attributes[attrname]=attrval}else{return this._setErr(XMLP.ERR_ATT_DUP)}this.m_iP=valRegex.lastIndex}}if(strN.indexOf("<")!=-1){return this._setErr(XMLP.ERR_ELM_LT_NAME)}this.m_name=strN;this.m_iP=iE+1;if(closedTags[strN]){closeRegex.lastIndex=iE+1;var closeMatch=closeRegex.exec;if(closeMatch){var matchclose=this.m_xml.indexOf(strN,closeMatch.lastIndex);if(matchclose===closeMatch.lastIndex){return iType}else{return XMLP._ELM_EMP}}}this.m_emitSynthetic=false;return iType};XMLP.prototype._parseCDATA=function(iB){var iE=this.m_xml.indexOf("]]>",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_CDATA)}this._setContent(XMLP._CONT_XML,iB,iE);this.m_iP=iE+3;return XMLP._CDATA};XMLP.prototype._parseComment=function(iB){var iE=this.m_xml.indexOf("-->",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_COMMENT)}this._setContent(XMLP._CONT_XML,iB-4,iE+3);this.m_iP=iE+3;return XMLP._COMMENT};XMLP.prototype._parseDTD=function(iB){var iE,strClose,iInt,iLast;iE=this.m_xml.indexOf(">",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_DTD)}iInt=this.m_xml.indexOf("[",iB);strClose=((iInt!=-1)&&(iInt<iE))?"]>":">";while(true){if(iE==iLast){return this._setErr(XMLP.ERR_INFINITELOOP)}iLast=iE;iE=this.m_xml.indexOf(strClose,iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_DTD)}if(this.m_xml.substring(iE-1,iE+2)!="]]>"){break}}this.m_iP=iE+strClose.length;return XMLP._DTD};XMLP.prototype._parsePI=function(iB){var iE,iTB,iTE,iCB,iCE;iE=this.m_xml.indexOf("?>",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_PI)}iTB=SAXStrings.indexOfNonWhitespace(this.m_xml,iB,iE);if(iTB==-1){return this._setErr(XMLP.ERR_PI_TARGET)}iTE=SAXStrings.indexOfWhitespace(this.m_xml,iTB,iE);if(iTE==-1){iTE=iE}iCB=SAXStrings.indexOfNonWhitespace(this.m_xml,iTE,iE);if(iCB==-1){iCB=iE}iCE=SAXStrings.lastIndexOfNonWhitespace(this.m_xml,iCB,iE);if(iCE==-1){iCE=iE-1}this.m_name=this.m_xml.substring(iTB,iTE);this._setContent(XMLP._CONT_XML,iCB,iCE+1);this.m_iP=iE+2;return XMLP._PI};XMLP.prototype._parseText=function(iB){var iE=this.m_xml.indexOf("<",iB);if(iE==-1){iE=this.m_xml.length}this._setContent(XMLP._CONT_XML,iB,iE);this.m_iP=iE;return XMLP._TEXT};XMLP.prototype._setContent=function(iSrc){var args=arguments;if(XMLP._CONT_XML==iSrc){this.m_cAlt=null;this.m_cB=args[1];this.m_cE=args[2]}else{this.m_cAlt=args[1];this.m_cB=0;this.m_cE=args[1].length}this.m_cSrc=iSrc};XMLP.prototype._setErr=function(iErr){var strErr=XMLP._errs[iErr];this.m_cAlt=strErr;this.m_cB=0;this.m_cE=strErr.length;this.m_cSrc=XMLP._CONT_ALT;return XMLP._ERROR};SAXStrings={};SAXStrings.WHITESPACE=" \t\n\r";SAXStrings.QUOTES="\"'";SAXStrings.getColumnNumber=function(strD,iP){if(!strD){return -1}iP=iP||strD.length;var arrD=strD.substring(0,iP).split("\n");arrD.length--;var iLinePos=arrD.join("\n").length;return iP-iLinePos};SAXStrings.getLineNumber=function(strD,iP){if(!strD){return -1}iP=iP||strD.length;return strD.substring(0,iP).split("\n").length};SAXStrings.indexOfNonWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;++i){var c=strD.charAt(i);if(c!==" "&&c!=="\t"&&c!=="\n"&&c!=="\r"){return i}}return -1};SAXStrings.indexOfWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;i++){if(SAXStrings.WHITESPACE.indexOf(strD.charAt(i))!=-1){return i}}return -1};SAXStrings.lastIndexOfNonWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iE-1;i>=iB;i--){if(SAXStrings.WHITESPACE.indexOf(strD.charAt(i))==-1){return i}}return -1};SAXStrings.replace=function(strD,iB,iE,strF,strR){if(!strD){return""}iB=iB||0;iE=iE||strD.length;return strD.substring(iB,iE).split(strF).join(strR)};function __unescapeString(str){return str.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&apos;/g,"'")}function __escapeString(str){var escAmpRegEx=/&/g;var escLtRegEx=/</g;var escGtRegEx=/>/g;var quotRegEx=/"/g;var aposRegEx=/'/g;str=str.replace(escAmpRegEx,"&amp;");str=str.replace(escLtRegEx,"&lt;");str=str.replace(escGtRegEx,"&gt;");str=str.replace(quotRegEx,"&quot;");str=str.replace(aposRegEx,"&apos;");return str}fluid_1_1=fluid_1_1||{};(function($,fluid){var t;var parser;var tagstack;var lumpindex=0;var nestingdepth=0;var justended=false;var defstart=-1;var defend=-1;var baseURL;var debugMode=false;var cutpoints=[];var cutstatus=[];function init(baseURLin,debugModeIn,cutpointsIn){t.rootlump=fluid.XMLLump(0,-1);tagstack=[t.rootlump];lumpindex=0;nestingdepth=0;justended=false;defstart=-1;defend=-1;baseURL=baseURLin;debugMode=debugModeIn;cutpoints=cutpointsIn;if(cutpoints){for(var i=0;i<cutpoints.length;++i){cutstatus[i]=[];cutpoints[i].tree=fluid.parseSelector(cutpoints[i].selector)}}}function findTopContainer(){for(var i=tagstack.length-1;i>=0;--i){var lump=tagstack[i];if(lump.rsfID!==undefined){return lump}}return t.rootlump}function newLump(){var togo=fluid.XMLLump(lumpindex,nestingdepth);if(debugMode){togo.line=parser.getLineNumber();togo.column=parser.getColumnNumber()}t.lumps[lumpindex]=togo;++lumpindex;return togo}function addLump(mmap,ID,lump){var list=mmap[ID];if(!list){list=[];mmap[ID]=list}list[list.length]=lump}function checkContribute(ID,lump){if(ID.indexOf("scr=contribute-")!==-1){var scr=ID.substring("scr=contribute-".length);addLump(t.collectmap,scr,lump)}}var parseUri=function(source){var o=parseUri.options,value=o.parser[o.strictMode?"strict":"loose"].exec(source);for(var i=0,uri={};i<14;i++){uri[o.key[i]]=value[i]||""}uri[o.q.name]={};uri[o.key[12]].replace(o.q.parser,function($0,$1,$2){if($1){uri[o.q.name][$1]=$2}});return uri};parseUri.options={strictMode:false,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}};function rewriteUrl(url){var po=parseUri(url);if(po.protocol||url.charAt(0)==="/"){return url}else{return baseURL+url}}fluid.debugLump=function(lump){var togo=lump.text;togo+=" at ";togo+="lump line "+lump.line+" column "+lump.column+" index "+lump.lumpindex;togo+=parent.href===null?"":" in file "+parent.href;return togo};function debugLump(lump){return"<"+lump.tagname+">"}function hasCssClass(clazz,totest){if(!totest){return false}return(" "+totest+" ").indexOf(" "+clazz+" ")!==-1}function matchNode(term,headlump){if(term.predList){for(var i=0;i<term.predList.length;++i){var pred=term.predList[i];if(pred.id&&headlump.attributemap.id!==pred.id){return false}if(pred.clazz&&!hasCssClass(pred.clazz,headlump.attributemap["class"])){return false}if(pred.tag&&headlump.tagname!==pred.tag){return false}}return true}}function tagStartCut(headlump){var togo=undefined;if(cutpoints){for(var i=0;i<cutpoints.length;++i){var cut=cutpoints[i];var cutstat=cutstatus[i];var nextterm=cutstat.length;if(nextterm<cut.tree.length){var term=cut.tree[nextterm];if(nextterm>0){if(cut.tree[nextterm-1].child&&cutstat[nextterm-1]!==headlump.nestingdepth-1){continue}}var isMatch=matchNode(term,headlump);if(isMatch){cutstat[cutstat.length]=headlump.nestingdepth;if(cutstat.length===cut.tree.length){if(togo!==undefined){fluid.fail("Cutpoint specification error - node "+debugLump(headlump)+" has already matched with rsf:id of "+togo)}if(cut.id===undefined||cut.id===null){fluid.fail("Error in cutpoints list - entry at position "+i+" does not have an id set")}togo=cut.id}}}}}return togo}function tagEndCut(){if(cutpoints){for(var i=0;i<cutpoints.length;++i){var cutstat=cutstatus[i];if(cutstat.length>0&&cutstat[cutstat.length-1]===nestingdepth){cutstat.length--}}}}function processTagStart(isempty,text){++nestingdepth;if(justended){justended=false;var backlump=newLump();backlump.nestingdepth--}if(t.firstdocumentindex===-1){t.firstdocumentindex=lumpindex}var headlump=newLump();var stacktop=tagstack[tagstack.length-1];headlump.uplump=stacktop;var tagname=parser.getName();headlump.tagname=tagname;var attrs=headlump.attributemap=parser.m_attributes;var ID=attrs[fluid.ID_ATTRIBUTE];if(ID===undefined){ID=tagStartCut(headlump)}for(var attrname in attrs){var attrval=attrs[attrname];if(/href|src|codebase|action/.test(attrname)){attrval=rewriteUrl(attrval);attrs[attrname]=attrval}else{if(ID===undefined&&/for|headers/.test(attrname)){ID=attrs[fluid.ID_ATTRIBUTE]="scr=null"}}}if(ID){if(ID.charCodeAt(0)===126){ID=ID.substring(1);headlump.elide=true}checkContribute(ID,headlump);headlump.rsfID=ID;var downreg=findTopContainer();if(!downreg.downmap){downreg.downmap={}}addLump(downreg.downmap,ID,headlump);addLump(t.globalmap,ID,headlump);var colpos=ID.indexOf(":");if(colpos!==-1){var prefix=ID.substring(0,colpos);if(!stacktop.finallump){stacktop.finallump={}}stacktop.finallump[prefix]=headlump}}headlump.text="<"+tagname+fluid.dumpAttributes(attrs)+">";tagstack[tagstack.length]=headlump;if(isempty){processTagEnd()}}function processTagEnd(){tagEndCut();var endlump=newLump();--nestingdepth;endlump.text="</"+parser.getName()+">";var oldtop=tagstack[tagstack.length-1];oldtop.close_tag=t.lumps[lumpindex-1];tagstack.length--;justended=true}function processDefaultTag(){if(defstart!==-1){if(t.firstdocumentindex===-1){t.firstdocumentindex=lumpindex}var text=parser.getContent().substr(defstart,defend-defstart);justended=false;var newlump=newLump();newlump.text=text;defstart=-1}}fluid.ID_ATTRIBUTE="rsf:id";fluid.getPrefix=function(id){var colpos=id.indexOf(":");return colpos===-1?id:id.substring(0,colpos)};fluid.SplitID=function(id){var that={};var colpos=id.indexOf(":");if(colpos===-1){that.prefix=id}else{that.prefix=id.substring(0,colpos);that.suffix=id.substring(colpos+1)}return that};fluid.XMLLump=function(lumpindex,nestingdepth){return{nestingdepth:nestingdepth,lumpindex:lumpindex,parent:t}};fluid.XMLViewTemplate=function(){return{globalmap:{},collectmap:{},lumps:[],firstdocumentindex:-1}};fluid.fetchResources=function(resourceSpecs,callback){var resourceCallback=function(thisSpec){return{success:function(response){thisSpec.resourceText=response;thisSpec.resourceKey=thisSpec.href;thisSpec.queued=false;fluid.fetchResources(resourceSpecs,callback)},error:function(response,textStatus,errorThrown){thisSpec.fetchError={status:response.status,textStatus:textStatus,errorThrown:errorThrown}}}};var complete=true;for(var key in resourceSpecs){var resourceSpec=resourceSpecs[key];if(resourceSpec.href&&!resourceSpec.resourceText){if(!resourceSpec.queued){var thisCallback=resourceCallback(resourceSpec);$.ajax({url:resourceSpec.href,success:thisCallback.success,error:thisCallback.error});resourceSpec.queued=true}complete=false}else{if(resourceSpec.nodeId&&!resourceSpec.resourceText){var node=document.getElementById(resourceSpec.nodeId);resourceSpec.resourceText=fluid.dom.getElementText(node);resourceSpec.resourceKey=resourceSpec.nodeId}}}if(complete){if($.browser.mozilla){setTimeout(function(){callback(resourceSpecs)},1)}else{callback(resourceSpecs)}}};fluid.XMLEncode=function(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};fluid.dumpAttributes=function(attrcopy){var togo="";for(var attrname in attrcopy){var attrvalue=attrcopy[attrname];if(attrvalue!==null&&attrvalue!==undefined){togo+=" "+attrname+'="'+attrvalue+'"'}}return togo};fluid.aggregateMMap=function(target,source){for(var key in source){var targhas=target[key];if(!targhas){target[key]=[]}target[key]=target[key].concat(source[key])}};var unUnicode=/(\\u[\dabcdef]{4}|\\x[\dabcdef]{2})/g;fluid.unescapeProperties=function(string){string=string.replace(unUnicode,function(match){var code=match.substring(2);var parsed=parseInt(code,16);return String.fromCharCode(parsed)});var pos=0;while(true){var backpos=string.indexOf("\\",pos);if(backpos===-1){break}if(backpos===string.length-1){return[string.substring(0,string.length-1),true]}var replace=string.charAt(backpos+1);if(replace==="n"){replace="\n"}if(replace==="r"){replace="\r"}if(replace==="t"){replace="\t"}string=string.substring(0,backpos)+replace+string.substring(backpos+2);pos=backpos+1}return[string,false]};var breakPos=/[^\\][\s:=]/;fluid.parseJavaProperties=function(text){var togo={};text=text.replace(/\r\n/g,"\n");text=text.replace(/\r/g,"\n");lines=text.split("\n");var contin,key,valueComp,valueRaw,valueEsc;for(var i=0;i<lines.length;++i){var line=$.trim(lines[i]);if(!line||line.charAt(0)==="#"||line.charAt(0)==="!"){continue}if(!contin){valueComp="";var breakpos=line.search(breakPos);if(breakpos===-1){key=line;valueRaw=""}else{key=$.trim(line.substring(0,breakpos+1));valueRaw=$.trim(line.substring(breakpos+2));if(valueRaw.charAt(0)===":"||valueRaw.charAt(0)==="="){valueRaw=$.trim(valueRaw.substring(1))}}key=fluid.unescapeProperties(key)[0];valueEsc=fluid.unescapeProperties(valueRaw)}else{valueEsc=fluid.unescapeProperties(line)}contin=valueEsc[1];if(!valueEsc[1]){togo[key]=valueComp+valueEsc[0]}else{valueComp+=valueEsc[0]}}return togo};fluid.parseTemplates=function(resourceSpec,templateList,opts){var togo=[];togo.globalmap={};for(var i=0;i<templateList.length;++i){var resource=resourceSpec[templateList[i]];var lastslash=resource.href.lastIndexOf("/");var baseURL=lastslash===-1?"":resource.href.substring(0,lastslash+1);var template=fluid.parseTemplate(resource.resourceText,baseURL,opts.scanStart&&i===0,resource.cutpoints,opts);if(i===0){fluid.aggregateMMap(togo.globalmap,template.globalmap)}template.href=resource.href;template.baseURL=baseURL;template.resourceKey=resource.resourceKey;togo[i]=template;fluid.aggregateMMap(togo.globalmap,template.rootlump.downmap)}return togo};fluid.parseTemplate=function(template,baseURL,scanStart,cutpoints_in,opts){t=fluid.XMLViewTemplate();opts=opts||{};init(baseURL,opts.debugMode,cutpoints_in);var idpos=template.indexOf(fluid.ID_ATTRIBUTE);if(scanStart){var brackpos=template.indexOf(">",idpos);parser=new XMLP(template.substring(brackpos+1))}else{parser=new XMLP(template)}parseloop:while(true){var iEvent=parser.next();switch(iEvent){case XMLP._ELM_B:processDefaultTag();processTagStart(false,"");break;case XMLP._ELM_E:processDefaultTag();processTagEnd();break;case XMLP._ELM_EMP:processDefaultTag();processTagStart(true,"");break;case XMLP._PI:case XMLP._DTD:defstart=-1;continue;case XMLP._TEXT:case XMLP._ENTITY:case XMLP._CDATA:case XMLP._COMMENT:if(defstart===-1){defstart=parser.m_cB}defend=parser.m_cE;break;case XMLP._ERROR:fluid.setLogging(true);var message="Error parsing template: "+parser.m_cAlt+" at line "+parser.getLineNumber();fluid.log(message);fluid.log("Just read: "+parser.m_xml.substring(parser.m_iP-30,parser.m_iP));fluid.log("Still to read: "+parser.m_xml.substring(parser.m_iP,parser.m_iP+30));fluid.fail(message);break parseloop;case XMLP._NONE:break parseloop}}return t};var chars="(?:[\\w\u0128-\uFFFF*_-]|\\\\.)";var quickChild=new RegExp("^>\\s*("+chars+"+)");var quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)");var selSeg=new RegExp("^s*([#.]?)("+chars+"*)");var quickClass=new RegExp("([#.]?)("+chars+"+)","g");var childSeg=new RegExp("\\s*(>)?\\s*","g");var whiteSpace=new RegExp("^\\w*$");fluid.parseSelector=function(selstring){var togo=[];selstring=$.trim(selstring);quickClass.lastIndex=0;var lastIndex=0;while(true){var atNode=[];while(true){var segMatch=quickClass.exec(selstring);if(!segMatch||segMatch.index!==lastIndex){break}var thisNode={};var text=segMatch[2];if(segMatch[1]===""){thisNode.tag=text}else{if(segMatch[1]==="#"){thisNode.id=text}else{if(segMatch[1]==="."){thisNode.clazz=text}}}atNode[atNode.length]=thisNode;lastIndex=quickClass.lastIndex}childSeg.lastIndex=lastIndex;var fullAtNode={predList:atNode};var childMatch=childSeg.exec(selstring);if(!childMatch||childMatch.index!==lastIndex){var remainder=selstring.substring(lastIndex);fluid.fail("Error in selector string - can not match child selector expression at "+remainder)}if(childMatch[1]===">"){fullAtNode.child=true}togo[togo.length]=fullAtNode;if(childSeg.lastIndex>=selstring.length){break}lastIndex=childSeg.lastIndex;quickClass.lastIndex=childSeg.lastIndex}return togo}})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){function debugPosition(component){return"as child of "+(component.parent.fullID?"component with full ID "+component.parent.fullID:"root")}function computeFullID(component){var togo="";var move=component;if(component.children===undefined){togo=component.ID+(component.localID!==undefined?component.localID:"");move=component.parent}while(move.parent){var parent=move.parent;if(move.fullID!==undefined){togo=move.fullID+togo;return togo}if(move.noID===undefined){var ID=move.ID;if(ID===undefined){fluid.fail("Error in component tree - component found with no ID "+debugPosition(parent)+": please check structure")}var colpos=ID.indexOf(":");var prefix=colpos===-1?ID:ID.substring(0,colpos);togo=prefix+":"+(move.localID===undefined?"":move.localID)+":"+togo}move=parent}return togo}function isBoundPrimitive(value){return fluid.isPrimitive(value)||value instanceof Array&&(value.length===0||typeof (value[0])==="string")}function processChild(value,key){if(isBoundPrimitive(value)){return{componentType:"UIBound",value:value,ID:key}}else{var unzip=unzipComponent(value);if(unzip.ID){return{ID:key,componentType:"UIContainer",children:[unzip]}}else{unzip.ID=key;return unzip}}}function fixChildren(children){if(!(children instanceof Array)){var togo=[];for(var key in children){var value=children[key];if(value instanceof Array){for(var i=0;i<value.length;++i){var processed=processChild(value[i],key);togo[togo.length]=processed}}else{togo[togo.length]=processChild(value,key)}}return togo}else{return children}}function fixupValue(uibound,model){if(uibound.value===undefined&&uibound.valuebinding!==undefined){if(!model){fluid.fail("Cannot perform value fixup for valuebinding "+uibound.valuebinding+" since no model was supplied to rendering")}uibound.value=fluid.model.getBeanValue(model,uibound.valuebinding)}}function upgradeBound(holder,property,model){if(holder[property]!==undefined){if(isBoundPrimitive(holder[property])){holder[property]={value:holder[property]}}}else{holder[property]={value:null}}fixupValue(holder[property],model)}var duckMap={children:"UIContainer",value:"UIBound",valuebinding:"UIBound",messagekey:"UIMessage",markup:"UIVerbatim",selection:"UISelect",target:"UILink",choiceindex:"UISelectChoice",functionname:"UIInitBlock"};function unzipComponent(component,model){if(component){for(var key in duckMap){if(component[key]!==undefined){component.componentType=duckMap[key];break}}if(component.componentType===undefined&&component.ID!==undefined){component.componentType="UIBound"}}if(!component||component.componentType===undefined){var decorators=component.decorators;if(decorators){delete component.decorators}component={componentType:"UIContainer",children:component};component.decorators=decorators}var cType=component.componentType;if(cType==="UIContainer"){component.children=fixChildren(component.children)}else{if(cType==="UISelect"){upgradeBound(component,"selection",model);upgradeBound(component,"optionlist",model);upgradeBound(component,"optionnames",model)}else{if(cType==="UILink"){upgradeBound(component,"target",model);upgradeBound(component,"linktext",model)}}}return component}function assignSubmittingName(component,defaultname){if(component.submittingname===undefined&&component.willinput!==false){component.submittingname=defaultname?defaultname:component.fullID}return component.submittingname}function fixupTree(tree,model){if(tree.componentType===undefined){tree=unzipComponent(tree,model)}if(tree.componentType!=="UIContainer"&&!tree.parent){tree={children:[tree]}}if(tree.children){tree.childmap={};for(var i=0;i<tree.children.length;++i){var child=tree.children[i];if(child.componentType===undefined){child=unzipComponent(child,model);tree.children[i]=child}child.parent=tree;if(child.ID===undefined){fluid.fail("Error in component tree: component found with no ID "+debugPosition(child))}tree.childmap[child.ID]=child;var colpos=child.ID.indexOf(":");if(colpos===-1){}else{var prefix=child.ID.substring(0,colpos);var childlist=tree.childmap[prefix];if(!childlist){childlist=[];tree.childmap[prefix]=childlist}if(child.localID===undefined&&childlist.length!==0){child.localID=childlist.length}childlist[childlist.length]=child}child.fullID=computeFullID(child);var componentType=child.componentType;if(componentType=="UISelect"){child.selection.fullID=child.fullID+"-selection"}else{if(componentType=="UIInitBlock"){var call=child.functionname+"(";for(var j=0;j<child.arguments.length;++j){if(child.arguments[j] instanceof fluid.ComponentReference){child.arguments[j]=child.parent.fullID+child.arguments[j].reference}call+='"'+child.arguments[j]+'"';if(j<child.arguments.length-1){call+=", "}}child.markup=call+")\n";child.componentType="UIVerbatim"}else{if(componentType=="UIBound"){fixupValue(child,model)}}}fixupTree(child,model)}}return tree}var globalmap={};var branchmap={};var rewritemap={};var seenset={};var collected={};var out="";var debugMode=false;var directFossils={};var renderOptions={};var decoratorQueue=[];var renderedbindings={};function getRewriteKey(template,parent,id){return template.resourceKey+parent.fullID+id}function resolveInScope(searchID,defprefix,scope,child){var deflump;var scopelook=scope?scope[searchID]:null;if(scopelook){for(var i=0;i<scopelook.length;++i){var scopelump=scopelook[i];if(!deflump&&scopelump.rsfID==defprefix){deflump=scopelump}if(scopelump.rsfID==searchID){return scopelump}}}return deflump}function resolveCall(sourcescope,child){var searchID=child.jointID?child.jointID:child.ID;var split=fluid.SplitID(searchID);var defprefix=split.prefix+":";var match=resolveInScope(searchID,defprefix,sourcescope.downmap,child);if(match){return match}if(child.children){match=resolveInScope(searchID,defprefix,globalmap,child);if(match){return match}}return null}function noteCollected(template){if(!seenset[template.href]){fluid.aggregateMMap(collected,template.collectmap);seenset[template.href]=true}}function resolveRecurse(basecontainer,parentlump){for(var i=0;i<basecontainer.children.length;++i){var branch=basecontainer.children[i];if(branch.children){var resolved=resolveCall(parentlump,branch);if(resolved){branchmap[branch.fullID]=resolved;var id=resolved.attributemap.id;if(id!==undefined){rewritemap[getRewriteKey(parentlump.parent,basecontainer,id)]=branch.fullID}noteCollected(resolved.parent);resolveRecurse(branch,resolved)}}}if(parentlump.downmap){for(var id in parentlump.downmap){var lumps=parentlump.downmap[id];for(var i=0;i<lumps.length;++i){var lump=lumps[i];var lumpid=lump.attributemap.id;if(lumpid!==undefined&&lump.rsfID!==undefined){var resolved=fetchComponent(basecontainer,lump.rsfID);if(resolved!==null){var resolveID=resolved.fullID;if(resolved.componentType==="UISelect"){resolveID=resolveID+"-selection"}rewritemap[getRewriteKey(parentlump.parent,basecontainer,lumpid)]=resolveID}}}}}}function resolveBranches(globalmapp,basecontainer,parentlump){branchmap={};rewritemap={};seenset={};collected={};globalmap=globalmapp;branchmap[basecontainer.fullID]=parentlump;resolveRecurse(basecontainer,parentlump)}function dumpBranchHead(branch,targetlump){if(targetlump.elide){return }var attrcopy={};$.extend(true,attrcopy,targetlump.attributemap);adjustForID(attrcopy,branch);outDecorators(branch,attrcopy);out+="<"+targetlump.tagname+" ";out+=fluid.dumpAttributes(attrcopy);out+=">"}function dumpTillLump(lumps,start,limit){for(;start<limit;++start){var text=lumps[start].text;if(text){out+=lumps[start].text}}}function dumpScan(lumps,renderindex,basedepth,closeparent,insideleaf){var start=renderindex;while(true){if(renderindex===lumps.length){break}var lump=lumps[renderindex];if(lump.nestingdepth<basedepth){break}if(lump.rsfID!==undefined){if(!insideleaf){break}if(insideleaf&&lump.nestingdepth>basedepth+(closeparent?0:1)){fluid.log("Error in component tree - leaf component found to contain further components - at "+lump.toString())}else{break}}++renderindex}if(!closeparent&&(renderindex==lumps.length||!lumps[renderindex].rsfID)){--renderindex}dumpTillLump(lumps,start,renderindex);return renderindex}var trc={};function openTag(){if(!trc.iselide){out+="<"+trc.uselump.tagname}}function closeTag(){if(!trc.iselide){out+="</"+trc.uselump.tagname+">"}}function renderUnchanged(){dumpTillLump(trc.uselump.parent.lumps,trc.uselump.lumpindex+1,trc.close.lumpindex+(trc.iselide?0:1))}function replaceAttributes(){if(!trc.iselide){out+=fluid.dumpAttributes(trc.attrcopy)}dumpTemplateBody()}function replaceAttributesOpen(){if(trc.iselide){replaceAttributes()}else{out+=fluid.dumpAttributes(trc.attrcopy);out+=">";trc.nextpos=trc.endopen.lumpindex}}function dumpTemplateBody(){if(trc.endopen.lumpindex===trc.close.lumpindex){if(!trc.iselide){out+="/>"}}else{if(!trc.iselide){out+=">"}dumpTillLump(trc.uselump.parent.lumps,trc.endopen.lumpindex,trc.close.lumpindex+(trc.iselide?0:1))}}function rewriteLeaf(value){if(isValue(value)){replaceBody(value)}else{replaceAttributes()}}function rewriteLeafOpen(value){if(trc.iselide){rewriteLeaf(trc.value)}else{if(isValue(value)){replaceBody(value)}else{replaceAttributesOpen()}}}function replaceBody(value){out+=fluid.dumpAttributes(trc.attrcopy);if(!trc.iselide){out+=">"}out+=fluid.XMLEncode(value.toString());closeTag()}function isValue(value){return value!==null&&value!==undefined&&!isPlaceholder(value)}function isPlaceholder(value){return false}function rewriteURL(template,URL){return URL}function dumpHiddenField(todump){out+='<input type="hidden" ';var isvirtual=todump.virtual;var outattrs={};outattrs[isvirtual?"id":"name"]=todump.name;outattrs.value=todump.value;out+=fluid.dumpAttributes(outattrs);out+=" />\n"}function applyAutoBind(torender,finalID){var tagname=trc.uselump.tagname;var applier=renderOptions.applier;function applyFunc(){fluid.applyChange(fluid.byId(finalID),undefined,applier)}if(renderOptions.autoBind&&/input|select|textarea/.test(tagname)&&!renderedbindings[finalID]){var decorators=[{jQuery:["change",applyFunc]}];if($.browser.msie&&tagname==="input"&&/radio|checkbox/.test(trc.attrcopy.type)){decorators.push({jQuery:["click",applyFunc]})}outDecoratorsImpl(torender,decorators,trc.attrcopy,finalID)}}function dumpBoundFields(torender,parent){if(torender){var holder=parent?parent:torender;if(directFossils&&holder.submittingname&&holder.valuebinding){directFossils[holder.submittingname]={name:holder.submittingname,EL:holder.valuebinding,oldvalue:holder.value};applyAutoBind(torender,torender.fullID)}if(torender.fossilizedbinding){dumpHiddenField(torender.fossilizedbinding)}if(torender.fossilizedshaper){dumpHiddenField(torender.fossilizedshaper)}}}function dumpSelectionBindings(uiselect){if(!renderedbindings[uiselect.selection.fullID]){renderedbindings[uiselect.selection.fullID]=true;dumpBoundFields(uiselect.selection);dumpBoundFields(uiselect.optionlist);dumpBoundFields(uiselect.optionnames)}}fluid.NULL_STRING="\u25a9null\u25a9";var LINK_ATTRIBUTES={a:"href",link:"href",img:"src",frame:"src",script:"src",style:"src",input:"src",embed:"src",form:"action",applet:"codebase",object:"codebase"};function isSelectedValue(torender,value){var selection=torender.selection;return selection.value&&typeof (selection.value)!=="string"&&typeof (selection.value.length)==="number"?$.inArray(value,selection.value,value)!==-1:selection.value===value}function getRelativeComponent(component,relativeID){component=component.parent;if(relativeID.indexOf("..::")===0){relativeID=relativeID.substring(4);component=component.parent}return component.childmap[relativeID]}function explodeDecorators(decorators){var togo=[];if(decorators.type){togo[0]=decorators}else{for(var key in decorators){if(key==="$"){key="jQuery"}var value=decorators[key];var decorator={type:key};if(key==="jQuery"){decorator.func=value[0];decorator.args=value.slice(1)}else{if(key==="addClass"||key==="removeClass"){decorator.classes=value}else{if(key==="attrs"){decorator.attributes=value}else{if(key==="identify"){decorator.key=value}}}}togo[togo.length]=decorator}}return togo}function outDecoratorsImpl(torender,decorators,attrcopy,finalID){renderOptions.idMap=renderOptions.idMap||{};for(var i=0;i<decorators.length;++i){var decorator=decorators[i];var type=decorator.type;if(!type){var explodedDecorators=explodeDecorators(decorator);outDecoratorsImpl(torender,explodedDecorators,attrcopy,finalID);continue}if(type==="$"){type=decorator.type="jQuery"}if(type==="jQuery"||type==="event"||type==="fluid"){var id=adjustForID(attrcopy,torender,true,finalID);decorator.id=id;decoratorQueue[decoratorQueue.length]=decorator}else{if(type==="attrs"){$.extend(true,attrcopy,decorator.attributes)}else{if(type==="addClass"||type==="removeClass"){var fakeNode={nodeType:1,className:attrcopy["class"]||""};$(fakeNode)[type](decorator.classes);attrcopy["class"]=fakeNode.className}else{if(type==="identify"){var id=adjustForID(attrcopy,torender,true,finalID);renderOptions.idMap[decorator.key]=id}}}}}}function outDecorators(torender,attrcopy){if(!torender.decorators){return }if(torender.decorators.length===undefined){torender.decorators=explodeDecorators(torender.decorators)}outDecoratorsImpl(torender,torender.decorators,attrcopy)}function renderComponent(torender){var attrcopy=trc.attrcopy;var lumps=trc.uselump.parent.lumps;var lumpindex=trc.uselump.lumpindex;var componentType=torender.componentType;var tagname=trc.uselump.tagname;outDecorators(torender,attrcopy);if(componentType==="UIMessage"){componentType="UIBound";if(!renderOptions.messageLocator){torender.value="[No messageLocator is configured in options - please consult documentation on options.messageSource]"}else{torender.value=renderOptions.messageLocator(torender.messagekey,torender.args)}}function makeFail(torender,end){fluid.fail("Error in component tree - UISelectChoice with id "+torender.fullID+end)}if(componentType==="UIBound"||componentType==="UISelectChoice"){var parent;if(torender.choiceindex!==undefined){if(torender.parentFullID){parent=getAbsoluteComponent(view,torender.parentFullID);if(!parent){makeFail(torender," has parentFullID of "+torender.parentFullID+" which cannot be resolved")}}else{if(torender.parentRelativeID!==undefined){parent=getRelativeComponent(torender,torender.parentRelativeID);if(!parent){makeFail(torender," has parentRelativeID of "+torender.parentRelativeID+" which cannot be resolved")}}else{makeFail(torender," does not have either parentFullID or parentRelativeID set")}}assignSubmittingName(parent.selection);dumpSelectionBindings(parent)}var submittingname=parent?parent.selection.submittingname:torender.submittingname;if(tagname==="input"||tagname==="textarea"){if(!parent){submittingname=assignSubmittingName(torender)}if(submittingname!==undefined){attrcopy.name=submittingname}}dumpBoundFields(torender,parent?parent.selection:null);if(typeof (torender.value)==="boolean"||attrcopy.type==="radio"||attrcopy.type==="checkbox"){var underlyingValue;var directValue=torender.value;if(torender.choiceindex!==undefined){if(!parent.optionlist.value){fluid.fail("Error in component tree - selection control with full ID "+parent.fullID+" has no values")}underlyingValue=parent.optionlist.value[torender.choiceindex];directValue=isSelectedValue(parent,underlyingValue)}if(isValue(directValue)){if(directValue){attrcopy.checked="checked"}else{delete attrcopy.checked}}attrcopy.value=underlyingValue?underlyingValue:"true";rewriteLeaf(null)}else{if(torender.value instanceof Array){renderUnchanged()}else{var value=parent?parent[tagname==="textarea"||tagname==="input"?"optionlist":"optionnames"].value[torender.choiceindex]:torender.value;if(tagname==="textarea"){if(isPlaceholder(value)&&torender.willinput){value=""}rewriteLeaf(value)}else{if(tagname==="input"){if(torender.willinput||isValue(value)){attrcopy.value=value}rewriteLeaf(null)}else{delete attrcopy.name;rewriteLeafOpen(value)}}}}}else{if(componentType==="UISelect"){applyAutoBind(torender,torender.selection.fullID);var ishtmlselect=tagname==="select";var ismultiple=false;if(torender.selection.value instanceof Array){ismultiple=true;if(ishtmlselect){attrcopy.multiple="multiple"}}assignSubmittingName(torender.selection,attrcopy.id);if(ishtmlselect){if(torender.selection.willinput!==false){attrcopy.name=torender.selection.submittingname}}out+=fluid.dumpAttributes(attrcopy);if(ishtmlselect){out+=">";var values=torender.optionlist.value;var names=torender.optionnames===null||torender.optionnames===undefined||!torender.optionnames.value?values:torender.optionnames.value;if(!names||!names.length){fluid.fail("Error in component tree - UISelect component with fullID "+torender.fullID+" does not have optionnames set")}for(var i=0;i<names.length;++i){out+='<option value="';var value=values[i];if(value===null){value=fluid.NULL_STRING}out+=fluid.XMLEncode(value);if(isSelectedValue(torender,value)){out+='" selected="selected'}out+='">';out+=fluid.XMLEncode(names[i]);out+="</option>\n"}closeTag()}else{dumpTemplateBody()}dumpSelectionBindings(torender)}else{if(componentType==="UILink"){var attrname=LINK_ATTRIBUTES[tagname];if(attrname){var target=torender.target.value;if(!isValue(target)){target=attrcopy[attname]}else{target=rewriteURL(trc.uselump.parent,target)}attrcopy[attrname]=target}var value=torender.linktext.value;if(!isValue(value)){replaceAttributesOpen()}else{rewriteLeaf(value)}}else{if(torender.markup!==undefined){var rendered=torender.markup;if(rendered===null){out+=fluid.dumpAttributes(attrcopy);out+=">";renderUnchanged()}else{if(!trc.iselide){out+=fluid.dumpAttributes(attrcopy);out+=">"}out+=rendered;closeTag()}}else{}}}}}function adjustForID(attrcopy,component,late,forceID){if(!late){delete attrcopy["rsf:id"]}if(forceID!==undefined){attrcopy.id=forceID}else{if(attrcopy.id||late){attrcopy.id=component.fullID}}var count=1;var baseid=attrcopy.id;while(renderOptions.document.getElementById(attrcopy.id)){attrcopy.id=baseid+"-"+(count++)}return attrcopy.id}function rewriteIDRelation(context){var attrname;var attrval=trc.attrcopy["for"];if(attrval!==undefined){attrname="for"}else{attrval=trc.attrcopy.headers;if(attrval!==undefined){attrname="headers"}}if(!attrname){return }var tagname=trc.uselump.tagname;if(attrname==="for"&&tagname!=="label"){return }if(attrname==="headers"&&tagname!=="td"&&tagname!=="th"){return }var rewritten=rewritemap[getRewriteKey(trc.uselump.parent,context,attrval)];if(rewritten!==undefined){trc.attrcopy[attrname]=rewritten}}function renderComment(message){out+=("<!-- "+fluid.XMLEncode(message)+"-->")}function renderDebugMessage(message){out+='<span style="background-color:#FF466B;color:white;padding:1px;">';out+=message;out+="</span><br/>"}function reportPath(branch){var path=branch.fullID;return !path?"component tree root":"full path "+path}function renderComponentSystem(context,torendero,lump){var lumpindex=lump.lumpindex;var lumps=lump.parent.lumps;var nextpos=-1;var outerendopen=lumps[lumpindex+1];var outerclose=lump.close_tag;nextpos=outerclose.lumpindex+1;var payloadlist=lump.downmap?lump.downmap["payload-component"]:null;var payload=payloadlist?payloadlist[0]:null;var iselide=lump.rsfID.charCodeAt(0)===126;var endopen=outerendopen;var close=outerclose;var uselump=lump;var attrcopy={};$.extend(true,attrcopy,(payload===null?lump:payload).attributemap);trc.attrcopy=attrcopy;trc.uselump=uselump;trc.endopen=endopen;trc.close=close;trc.nextpos=nextpos;trc.iselide=iselide;rewriteIDRelation(context);if(torendero===null){if(lump.rsfID.indexOf("scr=")===(iselide?1:0)){var scrname=lump.rsfID.substring(4+(iselide?1:0));if(scrname==="ignore"){nextpos=trc.close.lumpindex+1}else{openTag();replaceAttributesOpen();nextpos=trc.endopen.lumpindex}}}else{if(payload){trc.endopen=lumps[payload.lumpindex+1];trc.close=payload.close_tag;trc.uselump=payload;dumpTillLump(lumps,lumpindex,payload.lumpindex);lumpindex=payload.lumpindex}adjustForID(attrcopy,torendero);openTag();renderComponent(torendero);if(payload!==null){if(trc.nextpos===nextpos){dumpTillLump(lumps,trc.close.lumpindex+1,outerclose.lumpindex+1)}}nextpos=trc.nextpos}return nextpos}function renderContainer(child,targetlump){var t2=targetlump.parent;var firstchild=t2.lumps[targetlump.lumpindex+1];if(child.children!==undefined){dumpBranchHead(child,targetlump)}else{renderComponentSystem(child.parent,child,targetlump)}renderRecurse(child,targetlump,firstchild)}function fetchComponent(basecontainer,id,lump){if(id.indexOf("msg=")===0){var key=id.substring(4);return{componentType:"UIMessage",messagekey:key}}while(basecontainer){var togo=basecontainer.childmap[id];if(togo){return togo}basecontainer=basecontainer.parent}return null}function fetchComponents(basecontainer,id){var togo;while(basecontainer){togo=basecontainer.childmap[id];if(togo){break}basecontainer=basecontainer.parent}return togo}function findChild(sourcescope,child){var split=fluid.SplitID(child.ID);var headlumps=sourcescope.downmap[child.ID];if(headlumps===null){headlumps=sourcescope.downmap[split.prefix+":"]}return headlumps===null?null:headlumps[0]}function renderRecurse(basecontainer,parentlump,baselump){var renderindex=baselump.lumpindex;var basedepth=parentlump.nestingdepth;var t1=parentlump.parent;if(debugMode){var rendered={}}while(true){renderindex=dumpScan(t1.lumps,renderindex,basedepth,!parentlump.elide,false);if(renderindex===t1.lumps.length){break}var lump=t1.lumps[renderindex];var id=lump.rsfID;if(lump.nestingdepth<basedepth||id===undefined){break}if(id.charCodeAt(0)===126){id=id.substring(1)}if(id.indexOf(":")!==-1){var prefix=fluid.getPrefix(id);var children=fetchComponents(basecontainer,prefix);var finallump=lump.uplump.finallump[prefix];var closefinal=finallump.close_tag;if(children){for(var i=0;i<children.length;++i){var child=children[i];if(child.children){var targetlump=branchmap[child.fullID];if(targetlump){if(debugMode){renderComment("Branching for "+child.fullID+" from "+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump))}renderContainer(child,targetlump);if(debugMode){renderComment("Branch returned for "+child.fullID+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump))}}else{if(debugMode){renderDebugMessage("No matching template branch found for branch container with full ID "+child.fullID+" rendering from parent template branch "+fluid.debugLump(baselump))}}}else{var targetlump=findChild(parentlump,child);if(!targetlump){if(debugMode){renderDebugMessage("Repetitive leaf with full ID "+child.fullID+" could not be rendered from parent template branch "+fluid.debugLump(baselump))}continue}var renderend=renderComponentSystem(basecontainer,child,targetlump);var wasopentag=renderend<t1.lumps.lengtn&&t1.lumps[renderend].nestingdepth>=targetlump.nestingdepth;var newbase=child.children?child:basecontainer;if(wasopentag){renderRecurse(newbase,targetlump,t1.lumps[renderend]);renderend=targetlump.close_tag.lumpindex+1}if(i!==children.length-1){if(renderend<closefinal.lumpindex){dumpScan(t1.lumps,renderend,targetlump.nestingdepth-1,false,false)}}else{dumpScan(t1.lumps,renderend,targetlump.nestingdepth,true,false)}}}}else{if(debugMode){renderDebugMessage("No branch container with prefix "+prefix+": found in container "+reportPath(basecontainer)+" rendering at template position "+fluid.debugLump(baselump)+", skipping")}}renderindex=closefinal.lumpindex+1;if(debugMode){renderComment("Stack returned from branch for ID "+id+" to "+fluid.debugLump(baselump)+": skipping from "+fluid.debugLump(lump)+" to "+fluid.debugLump(closefinal))}}else{var component;if(id){if(debugMode){rendered[id]=true}component=fetchComponent(basecontainer,id,lump)}if(component&&component.children!==undefined){renderContainer(component);renderindex=lump.close_tag.lumpindex+1}else{renderindex=renderComponentSystem(basecontainer,component,lump)}}if(renderindex===t1.lumps.length){break}}if(debugMode){var children=basecontainer.children;for(var key=0;key<children.length;++key){var child=children[key];if(!(child.ID.indexOf(":")!==-1)&&!rendered[child.ID]){renderDebugMessage("Leaf child component "+child.componentType+" with full ID "+child.fullID+" could not be found within template "+fluid.debugLump(baselump))}}}}function renderCollect(collump){dumpTillLump(collump.parent.lumps,collump.lumpindex,collump.close_tag.lumpindex+1)}function renderCollects(){for(var key in collected){var collist=collected[key];for(var i=0;i<collist.length;++i){renderCollect(collist[i])}}}function processDecoratorQueue(){for(var i=0;i<decoratorQueue.length;++i){var decorator=decoratorQueue[i];var node=fluid.byId(decorator.id);if(!node){fluid.fail("Error during rendering - component with id "+decorator.id+" which has a queued decorator was not found in the output markup")}if(decorator.type==="jQuery"){var jnode=$(node);jnode[decorator.func].apply(jnode,$.makeArray(decorator.args))}else{if(decorator.type==="fluid"){var args=decorator.args;if(!args){if(!decorator.container){decorator.container=node}args=[decorator.container,decorator.options]}var that=fluid.invokeGlobalFunction(decorator.func,args,fluid);decorator.that=that}else{if(decorator.type==="event"){node[decorator.event]=decorator.handler}}}}}fluid.ComponentReference=function(reference){this.reference=reference};fluid.explode=function(hash,basepath){var togo=[];for(var key in hash){var binding=basepath===undefined?key:basepath+"."+key;togo[togo.length]={ID:key,value:hash[key],valuebinding:binding}}return togo};fluid.explodeSelectionToInputs=function(optionlist,opts){return fluid.transform(optionlist,function(option,index){return{ID:opts.rowID,children:[{ID:opts.inputID,parentRelativeID:"..::"+opts.selectID,choiceindex:index},{ID:opts.labelID,parentRelativeID:"..::"+opts.selectID,choiceindex:index}]}})};fluid.resolveMessageSource=function(messageSource){if(messageSource.type==="data"){if(messageSource.url===undefined){return fluid.messageLocator(messageSource.messages)}else{}}};fluid.makeBranches=function(){var firstBranch;var thisBranch;for(var i=0;i<arguments.length;++i){var thisarg=arguments[i];var nextBranch;if(typeof (thisarg)==="string"){nextBranch={ID:thisarg}}else{if(thisarg instanceof Array){nextBranch={ID:thisarg[0],jointID:thisarg[1]}}else{$.extend(true,thisBranch,thisarg);nextBranch=thisBranch}}if(thisBranch&&nextBranch!==thisBranch){if(!thisBranch.children){thisBranch.children=[]}thisBranch.children[thisBranch.children.length]=nextBranch}thisBranch=nextBranch;if(!firstBranch){firstBranch=nextBranch}}return firstBranch};fluid.renderTemplates=function(templates,tree,options,fossilsIn){options=options||{};tree=tree||{};debugMode=options.debugMode;if(!options.messageLocator&&options.messageSource){options.messageLocator=fluid.resolveMessageSource(options.messageSource)}options.document=options.document||document;directFossils=fossilsIn;decoratorQueue=[];tree=fixupTree(tree,options.model);var template=templates[0];resolveBranches(templates.globalmap,tree,template.rootlump);out="";renderedbindings={};renderOptions=options;renderCollects();renderRecurse(tree,template.rootlump,template.lumps[template.firstdocumentindex]);return out};fluid.reRender=function(templates,node,tree,options){options=options||{};node=fluid.unwrap(node);var lastFocusedElement=fluid.getLastFocusedElement?fluid.getLastFocusedElement():null;var lastId;if(lastFocusedElement&&fluid.dom.isContainer(node,lastFocusedElement)){lastId=lastFocusedElement.id}if($.browser.msie){$(node).empty()}else{node.innerHTML=""}var fossils={};var rendered=fluid.renderTemplates(templates,tree,options,fossils);if(options.renderRaw){rendered=fluid.XMLEncode(rendered);rendered=rendered.replace(/\n/g,"<br/>")}if(options.model){fluid.bindFossils(node,options.model,fossils)}if($.browser.msie){$(node).html(rendered)}else{node.innerHTML=rendered}processDecoratorQueue();if(lastId){var element=fluid.byId(lastId);if(element){$(element).focus()}}return templates};function findNodeValue(rootNode){var node=fluid.dom.iterateDom(rootNode,function(node){return node.nodeType===8||node.nodeType===4?"stop":null},true);var value=node.nodeValue;if(value.indexOf("[CDATA[")===0){return value.substring(6,value.length-2)}else{return value}}fluid.extractTemplate=function(node,armouring){if(!armouring){return node.innerHTML}else{return findNodeValue(node)}};fluid.selfRender=function(node,tree,options){options=options||{};node=fluid.unwrap(node);var resourceSpec={base:{resourceText:fluid.extractTemplate(node,options.armouring),href:".",resourceKey:".",cutpoints:options.cutpoints}};var templates=fluid.parseTemplates(resourceSpec,["base"],options);return fluid.reRender(templates,node,tree,options)}})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){var insertAnchor=function(el){var a=$("<a name='"+el.text()+"' />",el[0].ownerDocument);el.before(a)};var createNode=function(id){var node={ID:id,children:[]};return node};var createTree=function(headings,levels){var generateTree=function(nodes,items,level){if(items.length===0){return }var item=items[0];if(level===item.level){nodes[nodes.length-1].push(item.leaf);items.shift();return generateTree(nodes,items,level)}if(level<item.level){var prefix=level>-1?"level"+(level+1)+":":"";var postfix=level===-1?"s:":"s";var name=prefix+"level"+(level+2)+postfix;var myNode=createNode(name);nodes[nodes.length-1].push(myNode);nodes.push(myNode.children);return generateTree(nodes,items,level+1)}if(level>item.level){nodes.pop();return generateTree(nodes,items,level-1)}};var tree={children:[]};var items=fluid.transform(headings,function(heading){var level=$.inArray(heading.tagName,levels);var text=$(heading).text();return{level:level,leaf:{ID:"level"+(level+1)+":item",children:[{ID:"link",linktext:text,target:"#"+text}]}}});generateTree([tree.children],items,-1);return tree};var buildTOC=function(container,headings,levels,templateURL,afterRender){headings.each(function(i,el){insertAnchor($(el))});var resources={toc:{href:templateURL}};fluid.fetchResources(resources,function(){var templates=fluid.parseTemplates(resources,["toc"],{});var node=$("<div></div>",container[0].ownerDocument);fluid.reRender(templates,node,createTree(headings,levels),{});container.prepend(node);afterRender.fire(node)})};fluid.tableOfContents=function(container,options){var that=fluid.initView("fluid.tableOfContents",container,options);that.events.afterRender.addListener(function(node){that.tocNode=$(node)});buildTOC(that.container,that.locate("headings"),that.options.levels,that.options.templateUrl,that.events.afterRender);that.hide=function(){if(that.tocNode){that.tocNode.hide()}};that.show=function(){if(that.tocNode){that.tocNode.show()}};return that};fluid.defaults("fluid.tableOfContents",{selectors:{headings:":header"},events:{afterRender:null},templateUrl:"../html/TableOfContents.html",levels:["H1","H2","H3","H4","H5","H6"]})})(jQuery,fluid_1_1);(function($){var helper={},current,title,tID,IE=$.browser.msie&&/MSIE\s(5\.5|6\.)/.test(navigator.userAgent),track=false;$.tooltip={blocked:false,defaults:{delay:200,showURL:true,extraClass:"",top:15,left:15,id:"tooltip"},block:function(){$.tooltip.blocked=!$.tooltip.blocked}};$.fn.extend({tooltip:function(settings){settings=$.extend({},$.tooltip.defaults,settings);createHelper(settings);return this.each(function(){$.data(this,"tooltip-settings",settings);this.tooltipText=this.title;$(this).removeAttr("title");this.alt=""}).hover(save,hide).click(hide)},fixPNG:IE?function(){return this.each(function(){var image=$(this).css("backgroundImage");if(image.match(/^url\(["']?(.*\.png)["']?\)$/i)){image=RegExp.$1;$(this).css({backgroundImage:"none",filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='"+image+"')"}).each(function(){var position=$(this).css("position");if(position!="absolute"&&position!="relative"){$(this).css("position","relative")}})}})}:function(){return this},unfixPNG:IE?function(){return this.each(function(){$(this).css({filter:"",backgroundImage:""})})}:function(){return this},hideWhenEmpty:function(){return this.each(function(){$(this)[$(this).html()?"show":"hide"]()})},url:function(){return this.attr("href")||this.attr("src")}});function createHelper(settings){if(helper.parent){return }helper.parent=$('<div id="'+settings.id+'"><h3></h3><div class="body"></div><div class="url"></div></div>').appendTo(document.body).hide();if($.fn.bgiframe){helper.parent.bgiframe()}helper.title=$("h3",helper.parent);helper.body=$("div.body",helper.parent);helper.url=$("div.url",helper.parent)}function settings(element){return $.data(element,"tooltip-settings")}function handle(event){if(settings(this).delay){tID=setTimeout(show,settings(this).delay)}else{show()}track=!!settings(this).track;$(document.body).bind("mousemove",update);update(event)}function save(){if($.tooltip.blocked||this==current||(!this.tooltipText&&!settings(this).bodyHandler)){return }current=this;title=this.tooltipText;if(settings(this).bodyHandler){helper.title.hide();var bodyContent=settings(this).bodyHandler.call(this);if(bodyContent.nodeType||bodyContent.jquery){helper.body.empty().append(bodyContent)}else{helper.body.html(bodyContent)}helper.body.show()}else{if(settings(this).showBody){var parts=title.split(settings(this).showBody);helper.title.html(parts.shift()).show();helper.body.empty();for(var i=0,part;part=parts[i];i++){if(i>0){helper.body.append("<br/>")}helper.body.append(part)}helper.body.hideWhenEmpty()}else{helper.title.html(title).show();helper.body.hide()}}if(settings(this).showURL&&$(this).url()){helper.url.html($(this).url().replace("http://","")).show()}else{helper.url.hide()}helper.parent.addClass(settings(this).extraClass);if(settings(this).fixPNG){helper.parent.fixPNG()}handle.apply(this,arguments)}function show(){tID=null;helper.parent.show();update()}function update(event){if($.tooltip.blocked){return }if(!track&&helper.parent.is(":visible")){$(document.body).unbind("mousemove",update)}if(current==null||!settings(current)){return }helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");var left=helper.parent[0].offsetLeft;var top=helper.parent[0].offsetTop;if(event){left=event.pageX+settings(current).left;top=event.pageY+settings(current).top;helper.parent.css({left:left+"px",top:top+"px"})}var v=viewport(),h=helper.parent[0];if(v.x+v.cx<h.offsetLeft+h.offsetWidth){left-=h.offsetWidth+20+settings(current).left;helper.parent.css({left:left+"px"}).addClass("viewport-right")}if(v.y+v.cy<h.offsetTop+h.offsetHeight){top-=h.offsetHeight+20+settings(current).top;helper.parent.css({top:top+"px"}).addClass("viewport-bottom")}}function viewport(){return{x:$(window).scrollLeft(),y:$(window).scrollTop(),cx:$(window).width(),cy:$(window).height()}}function hide(event){if($.tooltip.blocked){return }if(tID){clearTimeout(tID)}current=null;helper.parent.hide().removeClass(settings(this).extraClass);if(settings(this).fixPNG){helper.parent.unfixPNG()}}$.fn.Tooltip=$.fn.tooltip})(jQuery);fluid_1_1=fluid_1_1||{};(function($,fluid){var STATE_INITIAL="state_initial",STATE_CHANGED="state_changed",STATE_REVERTED="state_reverted";function defaultRenderer(that,targetContainer){var markup="<span class='flc-undo'><span class='flc-undo-undoContainer'>[<a href='#' class='flc-undo-undoControl'>undo</a>]</span><span class='flc-undo-redoContainer'>[<a href='#' class='flc-undo-redoControl'>redo</a>]</span></span>";var markupNode=$(markup);targetContainer.append(markupNode);return markupNode}function refreshView(that){if(that.state===STATE_INITIAL){that.locate("undoContainer").hide();that.locate("redoContainer").hide()}else{if(that.state===STATE_CHANGED){that.locate("undoContainer").show();that.locate("redoContainer").hide()}else{if(that.state===STATE_REVERTED){that.locate("undoContainer").hide();that.locate("redoContainer").show()}}}}var bindHandlers=function(that){that.locate("undoControl").click(function(){if(that.state!==STATE_REVERTED){fluid.model.copyModel(that.extremalModel,that.component.model);that.component.updateModel(that.initialModel,that);that.state=STATE_REVERTED;refreshView(that);that.locate("redoControl").focus()}return false});that.locate("redoControl").click(function(){if(that.state!==STATE_CHANGED){that.component.updateModel(that.extremalModel,that);that.state=STATE_CHANGED;refreshView(that);that.locate("undoControl").focus()}return false});return{modelChanged:function(newModel,oldModel,source){if(source!==that){that.state=STATE_CHANGED;fluid.model.copyModel(that.initialModel,oldModel);refreshView(that)}}}};fluid.undoDecorator=function(component,userOptions){var that=fluid.initView("undo",null,userOptions);that.container=that.options.renderer(that,component.container);fluid.initDomBinder(that);fluid.tabindex(that.locate("undoControl"),0);fluid.tabindex(that.locate("redoControl"),0);that.component=component;that.initialModel={};that.extremalModel={};fluid.model.copyModel(that.initialModel,component.model);fluid.model.copyModel(that.extremalModel,component.model);that.state=STATE_INITIAL;refreshView(that);var listeners=bindHandlers(that);that.returnedOptions={listeners:listeners};return that};fluid.defaults("undo",{selectors:{undoContainer:".flc-undo-undoContainer",undoControl:".flc-undo-undoControl",redoContainer:".flc-undo-redoContainer",redoControl:".flc-undo-redoControl"},renderer:defaultRenderer})})(jQuery,fluid_1_1);if(!this.JSON){JSON=function(){function f(n){return n<10?"0"+n:n}Date.prototype.toJSON=function(){return this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z"};var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function stringify(value,whitelist){var a,i,k,l,r=/["\\\x00-\x1f\x7f-\x9f]/g,v;switch(typeof value){case"string":return r.test(value)?'"'+value.replace(r,function(a){var c=m[a];if(c){return c}c=a.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})+'"':'"'+value+'"';case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}if(typeof value.toJSON==="function"){return stringify(value.toJSON())}a=[];if(typeof value.length==="number"&&!(value.propertyIsEnumerable("length"))){l=value.length;for(i=0;i<l;i+=1){a.push(stringify(value[i],whitelist)||"null")}return"["+a.join(",")+"]"}if(whitelist){l=whitelist.length;for(i=0;i<l;i+=1){k=whitelist[i];if(typeof k==="string"){v=stringify(value[k],whitelist);if(v){a.push(stringify(k)+":"+v)}}}}else{for(k in value){if(typeof k==="string"){v=stringify(value[k],whitelist);if(v){a.push(stringify(k)+":"+v)}}}}return"{"+a.join(",")+"}"}}return{stringify:stringify,parse:function(text,filter){var j;function walk(k,v){var i,n;if(v&&typeof v==="object"){for(i in v){if(Object.prototype.hasOwnProperty.apply(v,[i])){n=walk(i,v[i]);if(n!==undefined){v[i]=n}}}}return filter(k,v)}if(/^[\],:{}\s]*$/.test(text.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof filter==="function"?walk("",j):j}throw new SyntaxError("parseJSON")}}}()}fluid_1_1=fluid_1_1||{};(function($,fluid){var replaceClass=function(container,selector,regExp,newVal){newVal=newVal||"";$(selector,container).andSelf().each(function(i){var attr=($.browser.msie===false)?"class":"className";if(this.getAttribute(attr)){this.setAttribute(attr,this.getAttribute(attr).replace(regExp,newVal))}})};var addClassForSetting=function(element,settingName,value,classnameMap){var settingValues=classnameMap[settingName]||{};var className=settingValues[value];if(className){element.addClass(className)}};var isTrue=function(val){return val&&(val===true||val==="true")};var setToc=function(that,tocSetting){if(isTrue(tocSetting)){if(that.tableOfContents){that.tableOfContents.show()}else{that.tableOfContents=fluid.initSubcomponent(that,"tableOfContents",[that.container,fluid.COMPONENT_OPTIONS])}}else{if(that.tableOfContents){that.tableOfContents.hide()}}};var setLineSpacing=function(container,spacing){spacing=spacing&&spacing>0?spacing:1;container.css("line-height",spacing+"em")};var setMinSize=function(container,size){if(size&&size>0){container.css("font-size",size+"pt");replaceClass(container,"[class*=fl-font-size-]",/\bfl-font-size-[0-9]{1,2}\s+/g,"fl-font-size-100")}else{container.css("font-size","")}};var addStyles=function(container,settings,classnameMap){addClassForSetting(container,"textFont",settings.textFont,classnameMap);addClassForSetting(container,"textSpacing",settings.textSpacing,classnameMap);addClassForSetting(container,"theme",settings.theme,classnameMap);addClassForSetting(container,"layout",settings.layout,classnameMap)};var styleElements=function(elements,setting,classname){if(setting){elements.addClass(classname)}else{elements.removeClass(classname)}};var styleLinks=function(container,settings,classnameMap){var links=$("a",container);styleElements(links,settings.linksUnderline,classnameMap.linksUnderline);styleElements(links,settings.linksBold,classnameMap.linksBold);styleElements(links,settings.linksLarger,classnameMap.linksLarger)};var styleInputs=function(container,settings,classnameMap){styleElements($("input",container),settings.inputsLarger,classnameMap.inputsLarger)};var initModel=function(that){if(that.options.savedSettings){that.model=that.options.savedSettings;return }that.model=that.settingsStore.fetch()||fluid.copy(that.defaultSiteSettings)};var clearClashingClasses=function(container,classnameMap){var settingsWhichMayClash=["textFont","textSpacing","theme","layout"];var classesToRemove="fl-noBackgroundImages";var selector=".fl-noBackgroundImages";for(var i=0;i<settingsWhichMayClash.length;i++){var settingValues=classnameMap[settingsWhichMayClash[i]];for(var val in settingValues){var classname=settingValues[val];if(classname){classesToRemove=classesToRemove+" "+classname;selector=selector+",."+classname}}}$(selector,container).removeClass(classesToRemove);return classesToRemove};var setupUIEnhancer=function(that){that.settingsStore=fluid.initSubcomponent(that,"settingsStore",[fluid.COMPONENT_OPTIONS]);initModel(that);that.refreshView()};fluid.uiEnhancer=function(doc,options){doc=doc||document;var that=fluid.initView("fluid.uiEnhancer",doc,options);$(doc).data("uiEnhancer",that);that.container=$("body",doc);that.defaultSiteSettings=that.options.defaultSiteSettings;var clashingClassnames;that.refreshView=function(){that.container.removeClass(clashingClassnames);addStyles(that.container,that.model,that.options.classnameMap);styleElements(that.container,!isTrue(that.model.backgroundImages),that.options.classnameMap.noBackgroundImages);setMinSize(that.container,that.model.textSize);setLineSpacing(that.container,that.model.lineSpacing);setToc(that,that.model.toc);styleLinks(that.container,that.model,that.options.classnameMap);styleInputs(that.container,that.model,that.options.classnameMap)};that.updateModel=function(newModel,source){that.events.modelChanged.fire(newModel,that.model,source);fluid.clear(that.model);fluid.model.copyModel(that.model,newModel);that.settingsStore.save(that.model);that.refreshView()};clashingClassnames=clearClashingClasses(that.container,that.options.classnameMap);setupUIEnhancer(that);return that};fluid.defaults("fluid.uiEnhancer",{tableOfContents:{type:"fluid.tableOfContents",options:{templateUrl:"../../tableOfContents/html/TableOfContents.html"}},settingsStore:{type:"fluid.uiEnhancer.cookieStore"},events:{modelChanged:null},classnameMap:{textFont:{serif:"fl-font-serif",sansSerif:"fl-font-sans",arial:"fl-font-arial",verdana:"fl-font-verdana",monospace:"fl-font-monospace",courier:"fl-font-courier",times:"fl-font-times"},textSpacing:{"default":"",wide0:"fl-font-spacing-0",wide1:"fl-font-spacing-1",wide2:"fl-font-spacing-2",wide3:"fl-font-spacing-3",wide4:"fl-font-spacing-4",wide5:"fl-font-spacing-5",wide6:"fl-font-spacing-6"},theme:{mist:"fl-theme-mist",rust:"fl-theme-rust",highContrast:"fl-theme-hc",highContrastInverted:"fl-theme-hci",lowContrast:"fl-theme-slate",mediumContrast:"fl-theme-coal","default":""},layout:{simple:"fl-layout-linear","default":""},noBackgroundImages:"fl-noBackgroundImages",linksUnderline:"fl-text-underline",linksBold:"fl-text-bold",linksLarger:"fl-text-larger",inputsLarger:"fl-text-larger"},defaultSiteSettings:{textFont:"",textSpacing:"",theme:"default",layout:"default",textSize:"",lineSpacing:"",backgroundImages:true,toc:false,linksUnderline:false,linksBold:false,linksLarger:false,inputsLarger:false}});fluid.uiEnhancer.cookieStore=function(options){var that={};fluid.mergeComponentOptions(that,"fluid.uiEnhancer.cookieStore",options);that.fetch=function(){var cookie=document.cookie;var cookiePrefix=that.options.cookieName+"=";var retObj,startIndex,endIndex;if(cookie.length>0){startIndex=cookie.indexOf(cookiePrefix);if(startIndex>-1){startIndex=startIndex+cookiePrefix.length;endIndex=cookie.indexOf(";",startIndex);if(endIndex<startIndex){endIndex=cookie.length}retObj=JSON.parse(decodeURIComponent(cookie.substring(startIndex,endIndex)))}}return retObj};that.save=function(settings){document.cookie=that.options.cookieName+"="+encodeURIComponent(JSON.stringify(settings))};return that};fluid.defaults("fluid.uiEnhancer.cookieStore",{cookieName:"fluid-ui-settings"});fluid.uiEnhancer.tempStore=function(options){var that={};that.model=null;that.fetch=function(){return that.model};that.save=function(settings){that.model=settings};return that}})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){var initSliderAria=function(thumb,opts){var ariaDefaults={role:"slider","aria-valuenow":opts.value,"aria-valuemin":opts.min,"aria-valuemax":opts.max};thumb.attr(ariaDefaults)};var initTextfieldSlider=function(that){var textfield=that.locate("textfield");textfield.val(that.model);var sliderOptions=that.options.sliderOptions;sliderOptions.value=that.model;sliderOptions.min=that.options.min;sliderOptions.max=that.options.max;var slider=that.locate("slider").slider(sliderOptions);initSliderAria(that.locate("thumb"),sliderOptions);textfield.change(function(){if(that.isValid(this.value)){if(!that.isInRange(this.value)){this.value=(this.value<that.min)?that.min:that.max}slider.slider("value",this.value);that.updateModel(this.value,this)}else{this.value=that.model}});textfield.keypress(function(evt){if(evt.keyCode!==$.ui.keyCode.ENTER){return true}else{$(evt.target).change();$(fluid.findForm(evt.target)).submit();return false}});slider.bind("slide",function(e,ui){textfield.val(ui.value);that.updateModel(ui.value,slider)})};fluid.textfieldSlider=function(container,options){var that=fluid.initView("fluid.textfieldSlider",container,options);that.model=that.options.value||that.locate("textfield").val();that.min=that.options.min;that.max=that.options.max;initTextfieldSlider(that);that.isInRange=function(value){return(value>=that.min&&value<=that.max)};that.isValid=function(value){return !(isNaN(parseInt(value,10))||isNaN(value))};that.updateModel=function(model,source){if(that.isInRange(model)){that.events.modelChanged.fire(model,that.model,source);that.model=model;that.locate("thumb").attr("aria-valuenow",that.model)}};return that};fluid.defaults("fluid.textfieldSlider",{selectors:{textfield:".flc-textfieldSlider-field",slider:".flc-textfieldSlider-slider",thumb:".ui-slider-handle"},events:{modelChanged:null},sliderOptions:{orientation:"horizontal"},min:0,max:100,value:null})})(jQuery,fluid_1_1);(function($,fluid){var createSelectNode=function(id,selection,list,names){return{ID:id,selection:{valuebinding:selection},optionlist:{valuebinding:list},optionnames:{valuebinding:names}}};var createSimpleBindingNode=function(id,binding){return{ID:id,valuebinding:binding}};var generateTree=function(that,rendererModel){var children=[];children.push(createSelectNode("text-font","selections.textFont","labelMap.textFont.values","labelMap.textFont.names"));children.push(createSelectNode("text-spacing","selections.textSpacing","labelMap.textSpacing.values","labelMap.textSpacing.names"));children.push(createSelectNode("theme","selections.theme","labelMap.theme.values","labelMap.theme.names"));var bgiExplodeOpts={selectID:"background-images",rowID:"background-images-row:",inputID:"background-images-choice",labelID:"background-images-label"};children.push(createSelectNode("background-images","selections.backgroundImages","labelMap.backgroundImages.values","labelMap.backgroundImages.names"));children=children.concat(fluid.explodeSelectionToInputs(that.options.controlValues.backgroundImages,bgiExplodeOpts));var layoutExplodeOpts={selectID:"layout",rowID:"layout-row:",inputID:"layout-choice",labelID:"layout-label"};children.push(createSelectNode("layout","selections.layout","labelMap.layout.values","labelMap.layout.names"));children=children.concat(fluid.explodeSelectionToInputs(that.options.controlValues.layout,layoutExplodeOpts));var tocExplodeOpts={selectID:"toc",rowID:"toc-row:",inputID:"toc-choice",labelID:"toc-label"};children.push(createSelectNode("toc","selections.toc","labelMap.toc.values","labelMap.toc.names"));children=children.concat(fluid.explodeSelectionToInputs(that.options.controlValues.layout,tocExplodeOpts));children.push(createSimpleBindingNode("links-underline","selections.linksUnderline"));children.push(createSimpleBindingNode("links-bold","selections.linksBold"));children.push(createSimpleBindingNode("links-larger","selections.linksLarger"));children.push(createSimpleBindingNode("inputs-larger","selections.inputsLarger"));return{children:children}};var bindHandlers=function(that){var saveButton=that.locate("save");saveButton.click(that.save);that.locate("reset").click(that.reset);that.locate("cancel").click(that.cancel);var form=fluid.findForm(saveButton);$(form).submit(function(){that.save()})};var initPreview=function(that){var previewFrame=that.locate("previewFrame");var previewEnhancer;that.events.modelChanged.addListener(function(model){setTimeout(function(){if(previewEnhancer){previewEnhancer.updateModel(model)}},0)});previewFrame.load(function(){var previewFrameContents=previewFrame.contents();var options={savedSettings:that.model,tableOfContents:that.uiEnhancer.options.tableOfContents,settingsStore:{type:"fluid.uiEnhancer.tempStore"}};previewEnhancer=fluid.uiEnhancer(previewFrameContents,options)})};var createLabelMap=function(options){var labelMap={};for(var item in options.controlValues){labelMap[item]={names:options.strings[item],values:options.controlValues[item]}}return labelMap};var createRenderOptions=function(that){that.model.toc=String(that.model.toc);that.model.backgroundImages=String(that.model.backgroundImages);var aggregateModel=fluid.assembleModel({selections:{model:that.model,applier:that.applier},labelMap:{model:createLabelMap(that.options)}});return{model:aggregateModel.model,applier:aggregateModel.applier,autoBind:true}};var initSliders=function(that){var createOptions=function(settingName){return{listeners:{modelChanged:function(value){that.applier.requestChange(settingName,value)}},value:that.model[settingName]}};var options=createOptions("textSize");fluid.merge(null,options,that.options.textMinSize.options);fluid.initSubcomponents(that,"textMinSize",[that.options.selectors.textMinSizeCtrl,options]);options=createOptions("lineSpacing");fluid.merge(null,options,that.options.lineSpacing.options);fluid.initSubcomponents(that,"lineSpacing",[that.options.selectors.lineSpacingCtrl,options])};var mergeSiteDefaults=function(options,siteDefaults){for(var settingName in options.controlValues){var setting=String(siteDefaults[settingName]);var settingValues=options.controlValues[settingName];if(setting){var index=$.inArray(setting,settingValues);if(index===-1){var defaultIndex=$.inArray("default",settingValues);if(defaultIndex===-1){settingValues.push(setting)}else{settingValues[defaultIndex]=setting}}}}};var setupUIOptions=function(that){that.applier.modelChanged.addListener("*",function(newModel,oldModel,changeRequest){that.events.modelChanged.fire(newModel,oldModel,changeRequest.source)});mergeSiteDefaults(that.options,that.uiEnhancer.defaultSiteSettings);that.events.afterRender.addListener(function(){initSliders(that);bindHandlers(that);initPreview(that)});var rendererOptions=createRenderOptions(that);var template=fluid.selfRender(that.container,generateTree(that,rendererOptions.model),rendererOptions);that.events.afterRender.fire();return template};fluid.uiOptions=function(container,options){var that=fluid.initView("fluid.uiOptions",container,options);that.uiEnhancer=$(document).data("uiEnhancer");that.model=fluid.copy(that.uiEnhancer.model);that.applier=fluid.makeChangeApplier(that.model);var savedModel=that.uiEnhancer.model;var template;that.save=function(){that.events.onSave.fire(that.model);savedModel=fluid.copy(that.model);that.uiEnhancer.updateModel(savedModel)};that.reset=function(){that.events.onReset.fire();that.updateModel(fluid.copy(that.uiEnhancer.defaultSiteSettings),that);that.refreshView()};that.cancel=function(){that.events.onCancel.fire();that.updateModel(fluid.copy(savedModel),that);that.refreshView()};that.refreshView=function(){var rendererOptions=createRenderOptions(that);fluid.reRender(template,that.container,generateTree(that,rendererOptions.model),rendererOptions);that.events.afterRender.fire()};that.updateModel=function(newModel,source){that.events.modelChanged.fire(newModel,that.model,source);fluid.clear(that.model);fluid.model.copyModel(that.model,newModel)};template=setupUIOptions(that);return that};fluid.defaults("fluid.uiOptions",{textMinSize:{type:"fluid.textfieldSlider",options:{min:6,max:30}},lineSpacing:{type:"fluid.textfieldSlider",options:{min:1,max:10}},selectors:{controls:".flc-uiOptions-control",textMinSizeCtrl:".flc-uiOptions-min-text-size",lineSpacingCtrl:".flc-uiOptions-line-spacing",cancel:".flc-uiOptions-cancel",reset:".flc-uiOptions-reset",save:".flc-uiOptions-save",previewFrame:".flc-uiOptions-preview-frame"},events:{modelChanged:null,onSave:null,onCancel:null,onReset:null,afterRender:null},strings:{textFont:["Serif","Sans-Serif","Arial","Verdana","Courier","Times"],textSpacing:["Regular","Wide","Wider","Widest"],theme:["Low Contrast","Medium Contrast","Medium Contrast Grey Scale","High Contrast","High Contrast Inverted"],backgroundImages:["Yes","No"],layout:["Yes","No"],toc:["Yes","No"]},controlValues:{textFont:["serif","sansSerif","arial","verdana","courier","times"],textSpacing:["default","wide1","wide2","wide3"],theme:["lowContrast","default","mediumContrast","highContrast","highContrastInverted"],backgroundImages:["true","false"],layout:["simple","default"],toc:["true","false"]}})})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){function updateStyles(pageListThat,newModel,oldModel){if(!pageListThat.pageLinks){return }if(oldModel.pageIndex!==undefined){var oldLink=pageListThat.pageLinks.eq(oldModel.pageIndex);oldLink.removeClass(pageListThat.options.styles.currentPage)}var pageLink=pageListThat.pageLinks.eq(newModel.pageIndex);pageLink.addClass(pageListThat.options.styles.currentPage)}function bindLinkClick(link,events,eventArg){link.unbind("click.fluid.pager");link.bind("click.fluid.pager",function(){events.initiatePageChange.fire(eventArg)})}function computePageCount(model){model.pageCount=Math.max(1,Math.floor((model.totalRange-1)/model.pageSize)+1)}function computePageLimit(model){return Math.min(model.totalRange,(model.pageIndex+1)*model.pageSize)}fluid.pager=function(){return fluid.pagerImpl.apply(null,arguments)};fluid.pager.directPageList=function(container,events,options){var that=fluid.initView("fluid.pager.directPageList",container,options);that.pageLinks=that.locate("pageLinks");for(var i=0;i<that.pageLinks.length;++i){var pageLink=that.pageLinks.eq(i);bindLinkClick(pageLink,events,{pageIndex:i})}events.onModelChange.addListener(function(newModel,oldModel){updateStyles(that,newModel,oldModel)});that.defaultModel={pageIndex:undefined,pageSize:1,totalRange:that.pageLinks.length};return that};fluid.iota=function(count,first){first=first||0;var togo=[];for(var i=0;i<count;++i){togo[togo.length]=first++}return togo};fluid.pager.everyPageStrategy=fluid.iota;fluid.pager.gappedPageStrategy=function(locality,midLocality){if(!locality){locality=3}if(!midLocality){midLocality=locality}return function(count,first,mid){var togo=[];var j=0;var lastSkip=false;for(var i=0;i<count;++i){if(i<locality||(count-i-1)<locality||(i>=mid-midLocality&&i<=mid+midLocality)){togo[j++]=i;lastSkip=false}else{if(!lastSkip){togo[j++]=-1;lastSkip=true}}}return togo}};fluid.pager.renderedPageList=function(container,events,pagerBarOptions,options,strings){options=$.extend(true,pagerBarOptions,options);var that=fluid.initView("fluid.pager.renderedPageList",container,options);options=that.options;var renderOptions={cutpoints:[{id:"page-link:link",selector:pagerBarOptions.selectors.pageLinks},{id:"page-link:skip",selector:pagerBarOptions.selectors.pageLinkSkip},{id:"page-link:disabled",selector:pagerBarOptions.selectors.pageLinkDisabled}]};if(options.linkBody){renderOptions.cutpoints[renderOptions.cutpoints.length]={id:"payload-component",selector:options.linkBody}}function pageToComponent(current){return function(page){return page===-1?{ID:"page-link:skip"}:{ID:page===current?"page-link:link":"page-link:link",localID:page+1,value:page+1,pageIndex:page,decorators:[{type:"jQuery",func:"click",args:function(){events.initiatePageChange.fire({pageIndex:page})}},{type:page===current?"addClass":"",classes:that.options.styles.currentPage}]}}}var root=that.locate("root");fluid.expectFilledSelector(root,"Error finding root template for fluid.pager.renderedPageList");var template=fluid.selfRender(root,{},renderOptions);events.onModelChange.addListener(function(newModel,oldModel){var pages=that.options.pageStrategy(newModel.pageCount,0,newModel.pageIndex);var pageTree=fluid.transform(pages,pageToComponent(newModel.pageIndex));pageTree[pageTree.length-1].value=pageTree[pageTree.length-1].value+strings.last;events.onRenderPageLinks.fire(pageTree,newModel);fluid.reRender(template,root,pageTree,renderOptions);updateStyles(that,newModel,oldModel)});return that};fluid.defaults("fluid.pager.renderedPageList",{selectors:{root:".flc-pager-links"},linkBody:"a",pageStrategy:fluid.pager.everyPageStrategy});var updatePreviousNext=function(that,options,newModel){if(newModel.pageIndex===0){that.previous.addClass(options.styles.disabled)}else{that.previous.removeClass(options.styles.disabled)}if(newModel.pageIndex===newModel.pageCount-1){that.next.addClass(options.styles.disabled)}else{that.next.removeClass(options.styles.disabled)}};fluid.pager.previousNext=function(container,events,options){var that=fluid.initView("fluid.pager.previousNext",container,options);that.previous=that.locate("previous");bindLinkClick(that.previous,events,{relativePage:-1});that.next=that.locate("next");bindLinkClick(that.next,events,{relativePage:+1});events.onModelChange.addListener(function(newModel,oldModel,overallThat){updatePreviousNext(that,options,newModel)});return that};fluid.pager.pagerBar=function(events,container,options,strings){var that=fluid.initView("fluid.pager.pagerBar",container,options);that.pageList=fluid.initSubcomponent(that,"pageList",[container,events,that.options,fluid.COMPONENT_OPTIONS,strings]);that.previousNext=fluid.initSubcomponent(that,"previousNext",[container,events,that.options,fluid.COMPONENT_OPTIONS,strings]);return that};fluid.defaults("fluid.pager.pagerBar",{previousNext:{type:"fluid.pager.previousNext"},pageList:{type:"fluid.pager.directPageList"},selectors:{pageLinks:".flc-pager-pageLink",pageLinkSkip:".flc-pager-pageLink-skip",pageLinkDisabled:".flc-pager-pageLink-disabled",previous:".flc-pager-previous",next:".flc-pager-next"},styles:{currentPage:"fl-pager-currentPage",disabled:"fl-pager-disabled"}});function getColumnDefs(that){return that.options.columnDefs}fluid.pager.findColumnDef=function(columnDefs,key){var columnDef=$.grep(columnDefs,function(def){return def.key===key})[0];return columnDef};function getRoots(target,overallThat,index){var cellRoot=(overallThat.options.dataOffset?overallThat.options.dataOffset+".":"");target.shortRoot=index;target.longRoot=cellRoot+target.shortRoot}function expandPath(EL,shortRoot,longRoot){if(EL.charAt(0)==="*"){return longRoot+EL.substring(1)}else{return EL.replace("*",shortRoot)}}fluid.pager.fetchValue=function(that,dataModel,index,valuebinding,roots){getRoots(roots,that,index);var path=expandPath(valuebinding,roots.shortRoot,roots.longRoot);return fluid.model.getBeanValue(dataModel,path)};fluid.pager.basicSorter=function(overallThat,model){var dataModel=overallThat.options.dataModel;var roots={};var columnDefs=getColumnDefs(overallThat);var columnDef=fluid.pager.findColumnDef(columnDefs,model.sortKey);var sortrecs=[];for(var i=0;i<model.totalRange;++i){sortrecs[i]={index:i,value:fluid.pager.fetchValue(overallThat,dataModel,i,columnDef.valuebinding,roots)}}var columnType=typeof sortrecs[0].value;function sortfunc(arec,brec){var a=arec.value;var b=brec.value;return a===b?0:(a>b?model.sortDir:-model.sortDir)}sortrecs.sort(sortfunc);return fluid.transform(sortrecs,function(row){return row.index})};fluid.pager.directModelFilter=function(model,pagerModel,perm){var togo=[];var limit=computePageLimit(pagerModel);for(var i=pagerModel.pageIndex*pagerModel.pageSize;i<limit;++i){var index=perm?perm[i]:i;togo[togo.length]={index:index,row:model[index]}}return togo};function expandVariables(value,opts){var togo="";var index=0;while(true){var nextindex=value.indexOf("${",index);if(nextindex===-1){togo+=value.substring(index);break}else{togo+=value.substring(index,nextindex);var endi=value.indexOf("}",nextindex+2);var EL=value.substring(nextindex+2,endi);if(EL==="VALUE"){EL=opts.EL}else{EL=expandPath(EL,opts.shortRoot,opts.longRoot)}var val=fluid.model.getBeanValue(opts.dataModel,EL);togo+=val;index=endi+1}}return togo}function expandPaths(target,tree,opts){for(var i in tree){var val=tree[i];if(val===fluid.VALUE){if(i==="valuebinding"){target[i]=opts.EL}else{target[i]={valuebinding:opts.EL}}}else{if(i==="valuebinding"){target[i]=expandPath(tree[i],opts)}else{if(typeof (val)==="object"){target[i]=val.length!==undefined?[]:{};expandPaths(target[i],val,opts)}else{if(typeof (val)==="string"){target[i]=expandVariables(val,opts)}else{target[i]=tree[i]}}}}}return target}function iDforColumn(columnDef,opts){var options=opts.options;var EL=columnDef.valuebinding;var key=columnDef.key;if(!EL){fluid.fail("Error in definition for column with key "+key+": valuebinding is not set")}opts.EL=expandPath(EL,opts.shortRoot,opts.longRoot);if(!key){var segs=fluid.model.parseEL(EL);key=segs[segs.length-1]}var ID=(options.keyPrefix?options.keyPrefix:"")+key;return ID}function expandColumnDefs(filteredRow,opts){var tree=fluid.transform(opts.columnDefs,function(columnDef){var ID=iDforColumn(columnDef,opts);var togo;if(!columnDef.components){return{ID:ID,valuebinding:opts.EL}}else{if(typeof columnDef.components==="function"){togo=columnDef.components(filteredRow.row,filteredRow.index)}else{togo=columnDef.components}}togo=expandPaths({},togo,opts);togo.ID=ID;return togo});return tree}function fetchModel(overallThat){return fluid.model.getBeanValue(overallThat.options.dataModel,overallThat.options.dataOffset)}function bigHeaderForKey(key,opts){var id=opts.options.renderOptions.idMap["header:"+key];var smallHeader=fluid.jById(id);if(smallHeader.length===0){return null}var headerSortStylisticOffset=opts.overallOptions.selectors.headerSortStylisticOffset;var bigHeader=fluid.findAncestor(smallHeader,function(element){return $(element).is(headerSortStylisticOffset)});return bigHeader}function setSortHeaderClass(styles,element,sort){element=$(element);element.removeClass(styles.ascendingHeader);element.removeClass(styles.descendingHeader);if(sort!==0){element.addClass(sort===1?styles.ascendingHeader:styles.descendingHeader)}}function isCurrentColumnSortable(columnDefs,model){var columnDef=model.sortKey?fluid.pager.findColumnDef(columnDefs,model.sortKey):null;return columnDef?columnDef.sortable:false}function setModelSortHeaderClass(newModel,opts){var styles=opts.overallOptions.styles;var sort=isCurrentColumnSortable(opts.columnDefs,newModel)?newModel.sortDir:0;setSortHeaderClass(styles,bigHeaderForKey(newModel.sortKey,opts),sort)}function fireModelChange(that,newModel,forceUpdate){computePageCount(newModel);if(newModel.pageIndex>=newModel.pageCount){newModel.pageIndex=newModel.pageCount-1}if(forceUpdate||newModel.pageIndex!==that.model.pageIndex||newModel.pageSize!==that.model.pageSize||newModel.sortKey!==that.model.sortKey||newModel.sortDir!==that.model.sortDir){var sorted=isCurrentColumnSortable(getColumnDefs(that),newModel)?that.options.sorter(that,newModel):null;that.permutation=sorted;that.events.onModelChange.fire(newModel,that.model,that);fluid.model.copyModel(that.model,newModel)}}function generateColumnClick(overallThat,columnDef,opts){return function(){if(columnDef.sortable===true){var model=overallThat.model;var newModel=fluid.copy(model);var styles=overallThat.options.styles;var oldKey=model.sortKey;if(columnDef.key!==model.sortKey){newModel.sortKey=columnDef.key;newModel.sortDir=1;var oldBig=bigHeaderForKey(oldKey,opts);if(oldBig){setSortHeaderClass(styles,oldBig,0)}}else{if(newModel.sortKey===columnDef.key){newModel.sortDir=-1*newModel.sortDir}else{return false}}newModel.pageIndex=0;fireModelChange(overallThat,newModel,true);setModelSortHeaderClass(newModel,opts)}return false}}function fetchHeaderDecorators(decorators,columnDef){return decorators[columnDef.sortable?"sortableHeader":"unsortableHeader"]}function generateHeader(overallThat,newModel,columnDefs,opts){return{children:fluid.transform(columnDefs,function(columnDef){return{ID:iDforColumn(columnDef,opts),value:columnDef.label,decorators:[{jQuery:["click",generateColumnClick(overallThat,columnDef,opts)]},{identify:"header:"+columnDef.key}].concat(fetchHeaderDecorators(opts.overallOptions.decorators,columnDef))}})}}fluid.pager.selfRender=function(overallThat,inOptions){var that=fluid.initView("fluid.pager.selfRender",overallThat.container,inOptions);var options=that.options;options.renderOptions.idMap=options.renderOptions.idMap||{};var idMap=options.renderOptions.idMap;var root=that.locate("root");var template=fluid.selfRender(root,{},options.renderOptions);root.addClass(options.styles.root);var columnDefs=getColumnDefs(overallThat);var expOpts={options:options,columnDefs:columnDefs,overallOptions:overallThat.options,dataModel:overallThat.options.dataModel,idMap:idMap};var directModel=fetchModel(overallThat);return{returnedOptions:{listeners:{onModelChange:function(newModel,oldModel){var filtered=overallThat.options.modelFilter(directModel,newModel,overallThat.permutation);var tree=fluid.transform(filtered,function(filteredRow){var roots=getRoots(expOpts,overallThat,filteredRow.index);if(columnDefs==="explode"){return fluid.explode(filteredRow.row,root)}else{if(columnDefs.length){return expandColumnDefs(filteredRow,expOpts)}}});var fullTree={};fullTree[options.row]=tree;if(typeof (columnDefs)==="object"){fullTree[options.header]=generateHeader(overallThat,newModel,columnDefs,expOpts)}options.renderOptions=options.renderOptions||{};options.renderOptions.model=expOpts.dataModel;fluid.reRender(template,root,fullTree,options.renderOptions);setModelSortHeaderClass(newModel,expOpts)}}}}};fluid.defaults("fluid.pager.selfRender",{selectors:{root:".flc-pager-body-template"},styles:{root:"fl-pager"},keyStrategy:"id",keyPrefix:"",row:"row:",header:"header:",renderOptions:{}});fluid.pager.summary=function(dom,options){var node=dom.locate("summary");return{returnedOptions:{listeners:{onModelChange:function(newModel,oldModel){var text=fluid.stringTemplate(options.message,{first:newModel.pageIndex*newModel.pageSize+1,last:computePageLimit(newModel),total:newModel.totalRange});if(node.length>0){node.text(text)}}}}}};fluid.pager.directPageSize=function(that){var node=that.locate("pageSize");if(node.length>0){that.events.onModelChange.addListener(function(newModel,oldModel){if(node.val()!==newModel.pageSize){node.val(newModel.pageSize)}});node.change(function(){that.events.initiatePageSizeChange.fire(node.val())})}return that};fluid.pager.rangeAnnotator=function(that,options){var roots={};that.events.onRenderPageLinks.addListener(function(tree,newModel){var column=that.options.annotateColumnRange;var dataModel=that.options.dataModel;var columnDefs=getColumnDefs(that);if(!column||!dataModel||!columnDefs){return }var columnDef=fluid.pager.findColumnDef(columnDefs,column);function fetchValue(index){index=that.permutation?that.permutation[index]:index;return fluid.pager.fetchValue(that,dataModel,index,columnDef.valuebinding,roots)}var tModel={};fluid.model.copyModel(tModel,newModel);fluid.transform(tree,function(cell){if(cell.ID==="page-link:link"){var page=cell.pageIndex;var start=page*tModel.pageSize;tModel.pageIndex=page;var limit=computePageLimit(tModel);var iValue=fetchValue(start);var lValue=fetchValue(limit-1);var text="<b>"+iValue+"</b><br/>&mdash;<br/><b>"+lValue+"</b>";var decorator={type:"jQuery",func:"tooltip",args:{delay:that.options.tooltipDelay,extraClass:that.options.styles.tooltip,bodyHandler:function(){return text},showURL:false,id:that.options.tooltipId}};cell.decorators.push(decorator)}})})};fluid.pagerImpl=function(container,options){var that=fluid.initView("fluid.pager",container,options);var pageIndexConformer=function(model,changeRequest){if(changeRequest.value<0){changeRequest.value=0}};that.events.initiatePageChange.addListener(function(arg){var newModel=fluid.copy(that.model);if(arg.relativePage!==undefined){newModel.pageIndex=that.model.pageIndex+arg.relativePage}else{newModel.pageIndex=arg.pageIndex}if(newModel.pageIndex===undefined||newModel.pageIndex<0){newModel.pageIndex=0}fireModelChange(that,newModel,arg.forceUpdate)});that.events.initiatePageSizeChange.addListener(function(arg){var newModel=fluid.copy(that.model);newModel.pageSize=arg;fireModelChange(that,newModel)});var pagerBarElement=that.locate("pagerBar");if(pagerBarElement.length>0){that.pagerBar=fluid.initSubcomponent(that,"pagerBar",[that.events,pagerBarElement,fluid.COMPONENT_OPTIONS,that.options.strings])}var pagerBarSecondaryElement=that.locate("pagerBarSecondary");if(pagerBarSecondaryElement.length>0){that.pagerBarSecondary=fluid.initSubcomponent(that,"pagerBar",[that.events,pagerBarSecondaryElement,fluid.COMPONENT_OPTIONS,that.options.strings])}that.bodyRenderer=fluid.initSubcomponent(that,"bodyRenderer",[that,fluid.COMPONENT_OPTIONS]);that.summary=fluid.initSubcomponent(that,"summary",[that.dom,fluid.COMPONENT_OPTIONS]);that.pageSize=fluid.initSubcomponent(that,"pageSize",[that]);that.rangeAnnotator=fluid.initSubcomponent(that,"rangeAnnotator",[that,fluid.COMPONENT_OPTIONS]);that.model=fluid.copy(that.options.model);var dataModel=fetchModel(that);if(dataModel){that.model.totalRange=dataModel.length}if(that.model.totalRange===undefined){if(!that.pagerBar){fluid.fail("Error in Pager configuration - cannot determine total range,  since not configured in model.totalRange and no PagerBar is configured")}that.model=that.pagerBar.pageList.defaultModel}that.applier=fluid.makeChangeApplier(that.model);that.events.initiatePageChange.fire({pageIndex:that.model.pageIndex?that.model.pageIndex:0,forceUpdate:true});return that};fluid.defaults("fluid.pager",{pagerBar:{type:"fluid.pager.pagerBar",options:null},summary:{type:"fluid.pager.summary",options:{message:"%first-%last of %total items"}},pageSize:{type:"fluid.pager.directPageSize"},modelFilter:fluid.pager.directModelFilter,sorter:fluid.pager.basicSorter,bodyRenderer:{type:"fluid.emptySubcomponent"},model:{pageIndex:undefined,pageSize:10,totalRange:undefined},dataModel:undefined,dataOffset:"",columnDefs:"explode",annotateColumnRange:undefined,tooltipDelay:300,tooltipId:"tooltip",rangeAnnotator:{type:"fluid.pager.rangeAnnotator"},selectors:{pagerBar:".flc-pager-top",pagerBarSecondary:".flc-pager-bottom",summary:".flc-pager-summary",pageSize:".flc-pager-page-size",headerSortStylisticOffset:".flc-pager-sort-header"},styles:{tooltip:"fl-pager-tooltip",ascendingHeader:"fl-pager-asc",descendingHeader:"fl-pager-desc"},decorators:{sortableHeader:[],unsortableHeader:[]},strings:{last:" (last)"},events:{initiatePageChange:null,initiatePageSizeChange:null,onModelChange:null,onRenderPageLinks:null}})})(jQuery,fluid_1_1);fluid_1_1=fluid_1_1||{};(function($,fluid){function sendKey(control,event,virtualCode,charCode){var kE=document.createEvent("KeyEvents");kE.initKeyEvent(event,1,1,null,0,0,0,0,virtualCode,charCode);control.dispatchEvent(kE)}fluid.setCaretToEnd=function(control,value){var pos=value?value.length:0;try{control.focus();if(control.setSelectionRange){control.setSelectionRange(pos,pos);if($.browser.mozilla&&pos>0){sendKey(control,"keypress",92,92);sendKey(control,"keydown",8,0);sendKey(control,"keypress",8,0)}}else{if(control.createTextRange){var range=control.createTextRange();range.move("character",pos);range.select()}}}catch(e){}};fluid.deadMansBlur=function(control,exclusions,handler){var blurPending=false;$(control).blur(function(){blurPending=true;setTimeout(function(){if(blurPending){handler(control)}},150)});var canceller=function(){blurPending=false};exclusions.focus(canceller);exclusions.click(canceller)};var renderEditContainer=function(that,really){that.editContainer=that.locate("editContainer");that.editField=that.locate("edit");if(that.editContainer.length!==1){if(that.editField.length===1){that.editContainer=that.editField}else{if(that.editContainer.length>1){fluid.fail("InlineEdit did not find a unique container for selector "+that.options.selectors.editContainer+": "+fluid.dumpEl(that.editContainer))}}}if(that.editContainer.length===1&&!that.editField){that.editField=that.locate("edit",that.editContainer)}if(!really){return }var editElms=that.options.editModeRenderer(that);if(editElms){that.editContainer=editElms.container;that.editField=editElms.field}if(that.editField.length===0){fluid.fail("InlineEdit improperly initialised - editField could not be located (selector "+that.options.selectors.edit+")")}};var switchToViewMode=function(that){that.editContainer.hide();that.viewEl.show()};var cancel=function(that){if(that.isEditing()){that.editView.value(that.model.value);switchToViewMode(that)}};var finish=function(that){var newValue=that.editView.value();var oldValue=that.model.value;var viewNode=that.viewEl[0];var editNode=that.editField[0];var ret=that.events.onFinishEdit.fire(newValue,oldValue,editNode,viewNode);if(ret===false){return }that.updateModelValue(newValue);that.events.afterFinishEdit.fire(newValue,oldValue,editNode,viewNode);switchToViewMode(that)};var bindEditFinish=function(that){if(that.options.submitOnEnter===undefined){that.options.submitOnEnter="textarea"!==fluid.unwrap(that.editField).nodeName.toLowerCase()}function keyCode(evt){return evt.keyCode?evt.keyCode:(evt.which?evt.which:0)}var escHandler=function(evt){var code=keyCode(evt);if(code===$.ui.keyCode.ESCAPE){cancel(that);return false}};var finishHandler=function(evt){var code=keyCode(evt);if(code!==$.ui.keyCode.ENTER){return true}finish(that);that.viewEl.focus();return false};if(that.options.submitOnEnter){that.editContainer.keypress(finishHandler)}that.editContainer.keydown(escHandler)};var bindBlurHandler=function(that){if(that.options.blurHandlerBinder){that.options.blurHandlerBinder(that)}else{var blurHandler=function(evt){finish(that);return false};that.editField.blur(blurHandler)}};var initializeEditView=function(that,initial){if(!that.editInitialized){renderEditContainer(that,!that.options.lazyEditView||!initial);if(!that.options.lazyEditView||!initial){that.editView=fluid.initSubcomponent(that,"editView",that.editField);$.extend(true,that.editView,fluid.initSubcomponent(that,"editAccessor",that.editField));bindEditFinish(that);bindBlurHandler(that);that.editView.refreshView(that);that.editInitialized=true}}};var edit=function(that){initializeEditView(that,false);var viewEl=that.viewEl;var displayText=that.displayView.value();that.updateModelValue(displayText===that.options.defaultViewText?"":displayText);if(that.options.applyEditPadding){that.editField.width(Math.max(viewEl.width()+that.options.paddings.edit,that.options.paddings.minimumEdit))}viewEl.removeClass(that.options.styles.invitation);viewEl.removeClass(that.options.styles.focus);viewEl.hide();that.editContainer.show();if(that.tooltipEnabled()){$("#"+that.options.tooltipId).hide()}setTimeout(function(){that.editField.focus();fluid.setCaretToEnd(that.editField[0],that.editView.value());if(that.options.selectOnEdit){that.editField[0].select()}},0);that.events.afterBeginEdit.fire()};var clearEmptyViewStyles=function(textEl,defaultViewStyle,originalViewPadding){textEl.removeClass(defaultViewStyle);textEl.css("padding-right",originalViewPadding)};var showDefaultViewText=function(that){that.displayView.value(that.options.defaultViewText);that.viewEl.css("padding-right",that.existingPadding);that.viewEl.addClass(that.options.styles.defaultViewStyle)};var showNothing=function(that){that.displayView.value("");if($.browser.msie){if(that.viewEl.css("display")==="inline"){that.viewEl.css("display","inline-block")}}};var showEditedText=function(that){that.displayView.value(that.model.value);clearEmptyViewStyles(that.viewEl,that.options.styles.defaultViewStyle,that.existingPadding)};var refreshView=function(that,source){that.displayView.refreshView(that,source);if(that.editView){that.editView.refreshView(that,source)}};var initModel=function(that,value){that.model.value=value;that.refreshView()};var updateModelValue=function(that,newValue,source){if(that.model.value!==newValue){var oldModel=$.extend(true,{},that.model);that.model.value=newValue;that.events.modelChanged.fire(that.model,oldModel,source);that.refreshView(source)}};var bindHoverHandlers=function(viewEl,invitationStyle){var over=function(evt){viewEl.addClass(invitationStyle)};var out=function(evt){viewEl.removeClass(invitationStyle)};viewEl.hover(over,out)};var makeEditHandler=function(that){return function(){var prevent=that.events.onBeginEdit.fire();if(prevent===false){return false}edit(that);return true}};function makeEditTriggerGuard(that){var viewEl=fluid.unwrap(that.viewEl);return function(event){var outer=fluid.findAncestor(event.target,function(elem){if(/input|select|textarea|button|a/i.test(elem.nodeName)||elem===viewEl){return true}});if(outer===viewEl){that.edit();return false}}}var bindMouseHandlers=function(that){bindHoverHandlers(that.viewEl,that.options.styles.invitation);that.viewEl.click(makeEditTriggerGuard(that))};var bindHighlightHandler=function(viewEl,focusStyle,invitationStyle){var focusOn=function(){viewEl.addClass(focusStyle);viewEl.addClass(invitationStyle)};var focusOff=function(){viewEl.removeClass(focusStyle);viewEl.removeClass(invitationStyle)};viewEl.focus(focusOn);viewEl.blur(focusOff)};var bindKeyboardHandlers=function(that){fluid.tabbable(that.viewEl);var guard=makeEditTriggerGuard(that);fluid.activatable(that.viewEl,function(event){return guard(event)})};var aria=function(viewEl,editContainer){viewEl.attr("role","button")};var defaultEditModeRenderer=function(that){if(that.editContainer.length>0&&that.editField.length>0){return{container:that.editContainer,field:that.editField}}var editModeTemplate="<span><input type='text' class='flc-inlineEdit-edit fl-inlineEdit-edit'/></span>";var editContainer=$(editModeTemplate);var editField=$("input",editContainer);var componentContainerId=that.container.attr("id");if(componentContainerId){var editContainerId=componentContainerId+"-edit-container";var editFieldId=componentContainerId+"-edit";editContainer.attr("id",editContainerId);editField.attr("id",editFieldId)}that.viewEl.after(editContainer);return{container:editContainer,field:editField}};var makeIsEditing=function(that){var isEditing=false;that.events.onBeginEdit.addListener(function(){isEditing=true});that.events.afterFinishEdit.addListener(function(){isEditing=false});return function(){return isEditing}};var setupInlineEdit=function(componentContainer,that){var padding=that.viewEl.css("padding-right");that.existingPadding=padding?parseFloat(padding):0;initModel(that,that.displayView.value());bindMouseHandlers(that);bindKeyboardHandlers(that);bindHighlightHandler(that.viewEl,that.options.styles.focus,that.options.styles.invitation);aria(that.viewEl);if(that.editContainer){that.editContainer.hide()}var initTooltip=function(){if(that.tooltipEnabled()){that.viewEl.tooltip({delay:that.options.tooltipDelay,extraClass:that.options.styles.tooltip,bodyHandler:function(){return that.options.tooltipText},id:that.options.tooltipId})}};$(initTooltip);that.decorators=fluid.initSubcomponents(that,"componentDecorators",[that,fluid.COMPONENT_OPTIONS])};var setupInlineEdits=function(editables,options){var editors=[];editables.each(function(idx,editable){editors.push(fluid.inlineEdit($(editable),options))});return editors};fluid.inlineEdit=function(componentContainer,userOptions){var that=fluid.initView("inlineEdit",componentContainer,userOptions);that.viewEl=that.locate("text");that.displayView=fluid.initSubcomponent(that,"displayView",that.viewEl);$.extend(true,that.displayView,fluid.initSubcomponent(that,"displayAccessor",that.viewEl));that.model={value:""};that.edit=makeEditHandler(that);that.isEditing=makeIsEditing(that);that.finish=function(){finish(that)};that.cancel=function(){cancel(that)};that.tooltipEnabled=function(){return that.options.useTooltip&&$.fn.tooltip};that.refreshView=function(source){refreshView(that,source)};that.updateModelValue=function(newValue,source){updateModelValue(that,newValue,source)};that.updateModel=function(newModel,source){updateModelValue(that,newModel.value,source)};initializeEditView(that,true);setupInlineEdit(componentContainer,that);return that};fluid.inlineEdit.standardAccessor=function(element){var nodeName=element.nodeName.toLowerCase();var func="input"===nodeName||"textarea"===nodeName?"val":"text";return{value:function(newValue){return $(element)[func](newValue)}}};fluid.inlineEdit.richTextViewAccessor=function(element){return{value:function(newValue){return $(element).html(newValue)}}};fluid.inlineEdit.standardDisplayView=function(viewEl){var that={refreshView:function(componentThat,source){if(componentThat.model.value){showEditedText(componentThat)}else{if(componentThat.options.defaultViewText){showDefaultViewText(componentThat)}else{showNothing(componentThat)}}if(($.trim(componentThat.viewEl.text()).length===0)&&(componentThat.existingPadding<componentThat.options.paddings.minimumView)){componentThat.viewEl.css("padding-right",componentThat.options.paddings.minimumView)}}};return that};fluid.inlineEdit.standardEditView=function(editField){var that={refreshView:function(componentThat,source){if(componentThat.editField&&componentThat.editField.index(source)===-1){componentThat.editView.value(componentThat.model.value)}}};$.extend(true,that,fluid.inlineEdit.standardAccessor(editField));return that};fluid.inlineEdits=function(componentContainer,options){options=options||{};var selectors=$.extend({},fluid.defaults("inlineEdits").selectors,options.selectors);var container=fluid.container(componentContainer);var editables=$(selectors.editables,container);return setupInlineEdits(editables,options)};fluid.defaults("inlineEdit",{selectors:{text:".flc-inlineEdit-text",editContainer:".flc-inlineEdit-editContainer",edit:".flc-inlineEdit-edit"},styles:{text:"fl-inlineEdit-text",edit:"fl-inlineEdit-edit",invitation:"fl-inlineEdit-invitation",defaultViewStyle:"fl-inlineEdit-invitation-text",tooltip:"fl-inlineEdit-tooltip",focus:"fl-inlineEdit-focus"},events:{modelChanged:null,onBeginEdit:"preventable",afterBeginEdit:null,onFinishEdit:"preventable",afterFinishEdit:null,afterInitEdit:null},paddings:{edit:10,minimumEdit:80,minimumView:60},applyEditPadding:true,blurHandlerBinder:null,submitOnEnter:undefined,displayAccessor:{type:"fluid.inlineEdit.standardAccessor"},displayView:{type:"fluid.inlineEdit.standardDisplayView"},editAccessor:{type:"fluid.inlineEdit.standardAccessor"},editView:{type:"fluid.inlineEdit.standardEditView"},editModeRenderer:defaultEditModeRenderer,lazyEditView:false,defaultViewText:"Click here to edit",tooltipText:"Click item to edit",tooltipId:"tooltip",useTooltip:false,tooltipDelay:1000,selectOnEdit:false});fluid.defaults("inlineEdits",{selectors:{editables:".flc-inlineEditable"}})})(jQuery,fluid_1_1);(function($){if(typeof (tinyMCE)!=="undefined"){tinyMCE.init({mode:"none",theme:"simple"})}$.fn.tinymce=function(){this.each(function(){tinyMCE.execCommand("mceAddControl",false,this.id)});return this}})(jQuery);fluid_1_1=fluid_1_1||{};(function($,fluid){var configureInlineEdit=function(configurationName,container,options){var assembleOptions=$.extend({},fluid.defaults(configurationName),options);return fluid.inlineEdit(container,assembleOptions)};fluid.inlineEdit.tinyMCE=function(container,options){return configureInlineEdit("fluid.inlineEdit.tinyMCE",container,options)};fluid.inlineEdit.tinyMCE.viewAccessor=function(editField){return{value:function(newValue){var editor=tinyMCE.get(editField.id);if(!editor){return""}if(newValue){$(editField).val(newValue);editor.setContent(newValue,{format:"raw"})}else{return editor.getContent()}}}};fluid.inlineEdit.tinyMCE.blurHandlerBinder=function(that){function focusEditor(editor){setTimeout(function(){tinyMCE.execCommand("mceFocus",false,that.editField[0].id);if($.browser.mozilla&&$.browser.version.substring(0,3)==="1.8"){return }editor.selection.select(editor.getBody(),1);editor.selection.collapse(0)},10)}that.events.afterInitEdit.addListener(function(editor){focusEditor(editor);var editorBody=editor.getBody();fluid.deadMansBlur(that.editField,$(editorBody),function(){that.cancel()})});that.events.afterBeginEdit.addListener(function(){var editor=tinyMCE.get(that.editField[0].id);if(editor){focusEditor(editor)}})};fluid.inlineEdit.tinyMCE.editModeRenderer=function(that){var defaultOptions={mode:"exact",theme:"simple"};var options=$.extend(true,defaultOptions,that.options.tinyMCE);options.elements=fluid.allocateSimpleId(that.editField);var oldinit=options.init_instance_callback;options.init_instance_callback=function(instance){that.events.afterInitEdit.fire(instance);if(oldinit){oldinit()}};tinyMCE.init(options)};fluid.defaults("fluid.inlineEdit.tinyMCE",{useTooltip:true,selectors:{edit:"textarea"},styles:{invitation:null},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.tinyMCE.viewAccessor"},lazyEditView:true,blurHandlerBinder:fluid.inlineEdit.tinyMCE.blurHandlerBinder,editModeRenderer:fluid.inlineEdit.tinyMCE.editModeRenderer});fluid.inlineEdit.FCKEditor=function(container,options){return configureInlineEdit("fluid.inlineEdit.FCKEditor",container,options)};fluid.inlineEdit.FCKEditor.complete=fluid.event.getEventFirer();fluid.inlineEdit.FCKEditor.complete.addListener(function(editor){var editField=editor.LinkedField;var that=$.data(editField,"fluid.inlineEdit.FCKEditor");that.events.afterInitEdit.fire(editor)});fluid.inlineEdit.FCKEditor.blurHandlerBinder=function(that){function focusEditor(editor){editor.Focus()}that.events.afterInitEdit.addListener(function(editor){focusEditor(editor);var editorBody=editor.EditingArea.TargetElement});that.events.afterBeginEdit.addListener(function(){var editor=fluid.inlineEdit.FCKEditor.byId(that.editField[0].id);if(editor){focusEditor(editor)}})};fluid.inlineEdit.FCKEditor.byId=function(id){var editor=typeof (FCKeditorAPI)==="undefined"?null:FCKeditorAPI.GetInstance(id);return editor};fluid.inlineEdit.FCKEditor.editModeRenderer=function(that){var id=fluid.allocateSimpleId(that.editField);$.data(fluid.unwrap(that.editField),"fluid.inlineEdit.FCKEditor",that);var oFCKeditor=new FCKeditor(id);var opcopy=fluid.copy(that.options.FCKEditor);opcopy.BasePath=opcopy.BasePath+"editor/";$.extend(true,oFCKeditor.Config,opcopy);$.extend(true,oFCKeditor,that.options.FCKEditor);oFCKeditor.Config.fluidInstance=that;oFCKeditor.ReplaceTextarea()};fluid.inlineEdit.FCKEditor.viewAccessor=function(editField){return{value:function(newValue){var editor=fluid.inlineEdit.FCKEditor.byId(editField.id);if(!editor){if(newValue){$(editField).val(newValue)}return""}if(newValue){editor.SetHTML(newValue)}else{return editor.GetHTML()}}}};fluid.defaults("fluid.inlineEdit.FCKEditor",{selectors:{edit:"textarea"},styles:{invitation:null},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.FCKEditor.viewAccessor"},lazyEditView:true,blurHandlerBinder:fluid.inlineEdit.FCKEditor.blurHandlerBinder,editModeRenderer:fluid.inlineEdit.FCKEditor.editModeRenderer,FCKEditor:{BasePath:"fckeditor/"}});fluid.inlineEdit.dropdown=function(container,options){return configureInlineEdit("fluid.inlineEdit.dropdown",container,options)};fluid.inlineEdit.dropdown.editModeRenderer=function(that){var id=fluid.allocateSimpleId(that.editField);that.editField.selectbox({finishHandler:function(){that.finish()}});return{container:that.editContainer,field:$("input.selectbox",that.editContainer)}};fluid.inlineEdit.dropdown.blurHandlerBinder=function(that){fluid.deadMansBlur(that.editField,$("div.selectbox-wrapper li",that.editContainer),function(){that.cancel()})};fluid.defaults("fluid.inlineEdit.dropdown",{applyEditPadding:false,blurHandlerBinder:fluid.inlineEdit.dropdown.blurHandlerBinder,editModeRenderer:fluid.inlineEdit.dropdown.editModeRenderer})})(jQuery,fluid_1_1);function FCKeditor_OnComplete(editorInstance){fluid.inlineEdit.FCKEditor.complete.fire(editorInstance)};
\ No newline at end of file
+var swfobject=function(){var UNDEF="undefined",OBJECT="object",SHOCKWAVE_FLASH="Shockwave Flash",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE="application/x-shockwave-flash",EXPRESS_INSTALL_ID="SWFObjectExprInst",ON_READY_STATE_CHANGE="onreadystatechange",win=window,doc=document,nav=navigator,plugin=false,domLoadFnArr=[main],regObjArr=[],objIdArr=[],listenersArr=[],storedAltContent,storedAltContentId,storedCallbackFn,storedCallbackObj,isDomLoaded=false,isExpressInstallActive=false,dynamicStylesheet,dynamicStylesheetMedia,autoHideShow=true,ua=function(){var w3cdom=typeof doc.getElementById!=UNDEF&&typeof doc.getElementsByTagName!=UNDEF&&typeof doc.createElement!=UNDEF,u=nav.userAgent.toLowerCase(),p=nav.platform.toLowerCase(),windows=p?/win/.test(p):/win/.test(u),mac=p?/mac/.test(p):/mac/.test(u),webkit=/webkit/.test(u)?parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,ie=!+"\v1",playerVersion=[0,0,0],d=null;if(typeof nav.plugins!=UNDEF&&typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){d=nav.plugins[SHOCKWAVE_FLASH].description;if(d&&!(typeof nav.mimeTypes!=UNDEF&&nav.mimeTypes[FLASH_MIME_TYPE]&&!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){plugin=true;ie=false;d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);playerVersion[2]=/[a-zA-Z]/.test(d)?parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof win.ActiveXObject!=UNDEF){try{var a=new ActiveXObject(SHOCKWAVE_FLASH_AX);if(a){d=a.GetVariable("$version");if(d){ie=true;d=d.split(" ")[1].split(",");playerVersion=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}}catch(e){}}}return{w3:w3cdom,pv:playerVersion,wk:webkit,ie:ie,win:windows,mac:mac}}(),onDomLoad=function(){if(!ua.w3){return }if((typeof doc.readyState!=UNDEF&&doc.readyState=="complete")||(typeof doc.readyState==UNDEF&&(doc.getElementsByTagName("body")[0]||doc.body))){callDomLoadFunctions()}if(!isDomLoaded){if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("DOMContentLoaded",callDomLoadFunctions,false)}if(ua.ie&&ua.win){doc.attachEvent(ON_READY_STATE_CHANGE,function(){if(doc.readyState=="complete"){doc.detachEvent(ON_READY_STATE_CHANGE,arguments.callee);callDomLoadFunctions()}});if(win==top){(function(){if(isDomLoaded){return }try{doc.documentElement.doScroll("left")}catch(e){setTimeout(arguments.callee,0);return }callDomLoadFunctions()})()}}if(ua.wk){(function(){if(isDomLoaded){return }if(!/loaded|complete/.test(doc.readyState)){setTimeout(arguments.callee,0);return }callDomLoadFunctions()})()}addLoadEvent(callDomLoadFunctions)}}();function callDomLoadFunctions(){if(isDomLoaded){return }try{var t=doc.getElementsByTagName("body")[0].appendChild(createElement("span"));t.parentNode.removeChild(t)}catch(e){return }isDomLoaded=true;var dl=domLoadFnArr.length;for(var i=0;i<dl;i++){domLoadFnArr[i]()}}function addDomLoadEvent(fn){if(isDomLoaded){fn()}else{domLoadFnArr[domLoadFnArr.length]=fn}}function addLoadEvent(fn){if(typeof win.addEventListener!=UNDEF){win.addEventListener("load",fn,false)}else{if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("load",fn,false)}else{if(typeof win.attachEvent!=UNDEF){addListener(win,"onload",fn)}else{if(typeof win.onload=="function"){var fnOld=win.onload;win.onload=function(){fnOld();fn()}}else{win.onload=fn}}}}}function main(){if(plugin){testPlayerVersion()}else{matchVersions()}}function testPlayerVersion(){var b=doc.getElementsByTagName("body")[0];var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);var t=b.appendChild(o);if(t){var counter=0;(function(){if(typeof t.GetVariable!=UNDEF){var d=t.GetVariable("$version");if(d){d=d.split(" ")[1].split(",");ua.pv=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}else{if(counter<10){counter++;setTimeout(arguments.callee,10);return }}b.removeChild(o);t=null;matchVersions()})()}else{matchVersions()}}function matchVersions(){var rl=regObjArr.length;if(rl>0){for(var i=0;i<rl;i++){var id=regObjArr[i].id;var cb=regObjArr[i].callbackFn;var cbObj={success:false,id:id};if(ua.pv[0]>0){var obj=getElementById(id);if(obj){if(hasPlayerVersion(regObjArr[i].swfVersion)&&!(ua.wk&&ua.wk<312)){setVisibility(id,true);if(cb){cbObj.success=true;cbObj.ref=getObjectById(id);cb(cbObj)}}else{if(regObjArr[i].expressInstall&&canExpressInstall()){var att={};att.data=regObjArr[i].expressInstall;att.width=obj.getAttribute("width")||"0";att.height=obj.getAttribute("height")||"0";if(obj.getAttribute("class")){att.styleclass=obj.getAttribute("class")}if(obj.getAttribute("align")){att.align=obj.getAttribute("align")}var par={};var p=obj.getElementsByTagName("param");var pl=p.length;for(var j=0;j<pl;j++){if(p[j].getAttribute("name").toLowerCase()!="movie"){par[p[j].getAttribute("name")]=p[j].getAttribute("value")}}showExpressInstall(att,par,id,cb)}else{displayAltContent(obj);if(cb){cb(cbObj)}}}}}else{setVisibility(id,true);if(cb){var o=getObjectById(id);if(o&&typeof o.SetVariable!=UNDEF){cbObj.success=true;cbObj.ref=o}cb(cbObj)}}}}}function getObjectById(objectIdStr){var r=null;var o=getElementById(objectIdStr);if(o&&o.nodeName=="OBJECT"){if(typeof o.SetVariable!=UNDEF){r=o}else{var n=o.getElementsByTagName(OBJECT)[0];if(n){r=n}}}return r}function canExpressInstall(){return !isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)&&!(ua.wk&&ua.wk<312)}function showExpressInstall(att,par,replaceElemIdStr,callbackFn){isExpressInstallActive=true;storedCallbackFn=callbackFn||null;storedCallbackObj={success:false,id:replaceElemIdStr};var obj=getElementById(replaceElemIdStr);if(obj){if(obj.nodeName=="OBJECT"){storedAltContent=abstractAltContent(obj);storedAltContentId=null}else{storedAltContent=obj;storedAltContentId=replaceElemIdStr}att.id=EXPRESS_INSTALL_ID;if(typeof att.width==UNDEF||(!/%$/.test(att.width)&&parseInt(att.width,10)<310)){att.width="310"}if(typeof att.height==UNDEF||(!/%$/.test(att.height)&&parseInt(att.height,10)<137)){att.height="137"}doc.title=doc.title.slice(0,47)+" - Flash Player Installation";var pt=ua.ie&&ua.win?"ActiveX":"PlugIn",fv="MMredirectURL="+win.location.toString().replace(/&/g,"%26")+"&MMplayerType="+pt+"&MMdoctitle="+doc.title;if(typeof par.flashvars!=UNDEF){par.flashvars+="&"+fv}else{par.flashvars=fv}if(ua.ie&&ua.win&&obj.readyState!=4){var newObj=createElement("div");replaceElemIdStr+="SWFObjectNew";newObj.setAttribute("id",replaceElemIdStr);obj.parentNode.insertBefore(newObj,obj);obj.style.display="none";(function(){if(obj.readyState==4){obj.parentNode.removeChild(obj)}else{setTimeout(arguments.callee,10)}})()}createSWF(att,par,replaceElemIdStr)}}function displayAltContent(obj){if(ua.ie&&ua.win&&obj.readyState!=4){var el=createElement("div");obj.parentNode.insertBefore(el,obj);el.parentNode.replaceChild(abstractAltContent(obj),el);obj.style.display="none";(function(){if(obj.readyState==4){obj.parentNode.removeChild(obj)}else{setTimeout(arguments.callee,10)}})()}else{obj.parentNode.replaceChild(abstractAltContent(obj),obj)}}function abstractAltContent(obj){var ac=createElement("div");if(ua.win&&ua.ie){ac.innerHTML=obj.innerHTML}else{var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var c=nestedObj.childNodes;if(c){var cl=c.length;for(var i=0;i<cl;i++){if(!(c[i].nodeType==1&&c[i].nodeName=="PARAM")&&!(c[i].nodeType==8)){ac.appendChild(c[i].cloneNode(true))}}}}}return ac}function createSWF(attObj,parObj,id){var r,el=getElementById(id);if(ua.wk&&ua.wk<312){return r}if(el){if(typeof attObj.id==UNDEF){attObj.id=id}if(ua.ie&&ua.win){var att="";for(var i in attObj){if(attObj[i]!=Object.prototype[i]){if(i.toLowerCase()=="data"){parObj.movie=attObj[i]}else{if(i.toLowerCase()=="styleclass"){att+=' class="'+attObj[i]+'"'}else{if(i.toLowerCase()!="classid"){att+=" "+i+'="'+attObj[i]+'"'}}}}}var par="";for(var j in parObj){if(parObj[j]!=Object.prototype[j]){par+='<param name="'+j+'" value="'+parObj[j]+'" />'}}el.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+att+">"+par+"</object>";objIdArr[objIdArr.length]=attObj.id;r=getElementById(attObj.id)}else{var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);for(var m in attObj){if(attObj[m]!=Object.prototype[m]){if(m.toLowerCase()=="styleclass"){o.setAttribute("class",attObj[m])}else{if(m.toLowerCase()!="classid"){o.setAttribute(m,attObj[m])}}}}for(var n in parObj){if(parObj[n]!=Object.prototype[n]&&n.toLowerCase()!="movie"){createObjParam(o,n,parObj[n])}}el.parentNode.replaceChild(o,el);r=o}}return r}function createObjParam(el,pName,pValue){var p=createElement("param");p.setAttribute("name",pName);p.setAttribute("value",pValue);el.appendChild(p)}function removeSWF(id){var obj=getElementById(id);if(obj&&obj.nodeName=="OBJECT"){if(ua.ie&&ua.win){obj.style.display="none";(function(){if(obj.readyState==4){removeObjectInIE(id)}else{setTimeout(arguments.callee,10)}})()}else{obj.parentNode.removeChild(obj)}}}function removeObjectInIE(id){var obj=getElementById(id);if(obj){for(var i in obj){if(typeof obj[i]=="function"){obj[i]=null}}obj.parentNode.removeChild(obj)}}function getElementById(id){var el=null;try{el=doc.getElementById(id)}catch(e){}return el}function createElement(el){return doc.createElement(el)}function addListener(target,eventType,fn){target.attachEvent(eventType,fn);listenersArr[listenersArr.length]=[target,eventType,fn]}function hasPlayerVersion(rv){var pv=ua.pv,v=rv.split(".");v[0]=parseInt(v[0],10);v[1]=parseInt(v[1],10)||0;v[2]=parseInt(v[2],10)||0;return(pv[0]>v[0]||(pv[0]==v[0]&&pv[1]>v[1])||(pv[0]==v[0]&&pv[1]==v[1]&&pv[2]>=v[2]))?true:false}function createCSS(sel,decl,media,newStyle){if(ua.ie&&ua.mac){return }var h=doc.getElementsByTagName("head")[0];if(!h){return }var m=(media&&typeof media=="string")?media:"screen";if(newStyle){dynamicStylesheet=null;dynamicStylesheetMedia=null}if(!dynamicStylesheet||dynamicStylesheetMedia!=m){var s=createElement("style");s.setAttribute("type","text/css");s.setAttribute("media",m);dynamicStylesheet=h.appendChild(s);if(ua.ie&&ua.win&&typeof doc.styleSheets!=UNDEF&&doc.styleSheets.length>0){dynamicStylesheet=doc.styleSheets[doc.styleSheets.length-1]}dynamicStylesheetMedia=m}if(ua.ie&&ua.win){if(dynamicStylesheet&&typeof dynamicStylesheet.addRule==OBJECT){dynamicStylesheet.addRule(sel,decl)}}else{if(dynamicStylesheet&&typeof doc.createTextNode!=UNDEF){dynamicStylesheet.appendChild(doc.createTextNode(sel+" {"+decl+"}"))}}}function setVisibility(id,isVisible){if(!autoHideShow){return }var v=isVisible?"visible":"hidden";if(isDomLoaded&&getElementById(id)){getElementById(id).style.visibility=v}else{createCSS("#"+id,"visibility:"+v)}}function urlEncodeIfNecessary(s){var regex=/[\\\"<>\.;]/;var hasBadChars=regex.exec(s)!=null;return hasBadChars&&typeof encodeURIComponent!=UNDEF?encodeURIComponent(s):s}var cleanup=function(){if(ua.ie&&ua.win){window.attachEvent("onunload",function(){var ll=listenersArr.length;for(var i=0;i<ll;i++){listenersArr[i][0].detachEvent(listenersArr[i][1],listenersArr[i][2])}var il=objIdArr.length;for(var j=0;j<il;j++){removeSWF(objIdArr[j])}for(var k in ua){ua[k]=null}ua=null;for(var l in swfobject){swfobject[l]=null}swfobject=null})}}();return{registerObject:function(objectIdStr,swfVersionStr,xiSwfUrlStr,callbackFn){if(ua.w3&&objectIdStr&&swfVersionStr){var regObj={};regObj.id=objectIdStr;regObj.swfVersion=swfVersionStr;regObj.expressInstall=xiSwfUrlStr;regObj.callbackFn=callbackFn;regObjArr[regObjArr.length]=regObj;setVisibility(objectIdStr,false)}else{if(callbackFn){callbackFn({success:false,id:objectIdStr})}}},getObjectById:function(objectIdStr){if(ua.w3){return getObjectById(objectIdStr)}},embedSWF:function(swfUrlStr,replaceElemIdStr,widthStr,heightStr,swfVersionStr,xiSwfUrlStr,flashvarsObj,parObj,attObj,callbackFn){var callbackObj={success:false,id:replaceElemIdStr};if(ua.w3&&!(ua.wk&&ua.wk<312)&&swfUrlStr&&replaceElemIdStr&&widthStr&&heightStr&&swfVersionStr){setVisibility(replaceElemIdStr,false);addDomLoadEvent(function(){widthStr+="";heightStr+="";var att={};if(attObj&&typeof attObj===OBJECT){for(var i in attObj){att[i]=attObj[i]}}att.data=swfUrlStr;att.width=widthStr;att.height=heightStr;var par={};if(parObj&&typeof parObj===OBJECT){for(var j in parObj){par[j]=parObj[j]}}if(flashvarsObj&&typeof flashvarsObj===OBJECT){for(var k in flashvarsObj){if(typeof par.flashvars!=UNDEF){par.flashvars+="&"+k+"="+flashvarsObj[k]}else{par.flashvars=k+"="+flashvarsObj[k]}}}if(hasPlayerVersion(swfVersionStr)){var obj=createSWF(att,par,replaceElemIdStr);if(att.id==replaceElemIdStr){setVisibility(replaceElemIdStr,true)}callbackObj.success=true;callbackObj.ref=obj}else{if(xiSwfUrlStr&&canExpressInstall()){att.data=xiSwfUrlStr;showExpressInstall(att,par,replaceElemIdStr,callbackFn);return }else{setVisibility(replaceElemIdStr,true)}}if(callbackFn){callbackFn(callbackObj)}})}else{if(callbackFn){callbackFn(callbackObj)}}},switchOffAutoHideShow:function(){autoHideShow=false},ua:ua,getFlashPlayerVersion:function(){return{major:ua.pv[0],minor:ua.pv[1],release:ua.pv[2]}},hasFlashPlayerVersion:hasPlayerVersion,createSWF:function(attObj,parObj,replaceElemIdStr){if(ua.w3){return createSWF(attObj,parObj,replaceElemIdStr)}else{return undefined}},showExpressInstall:function(att,par,replaceElemIdStr,callbackFn){if(ua.w3&&canExpressInstall()){showExpressInstall(att,par,replaceElemIdStr,callbackFn)}},removeSWF:function(objElemIdStr){if(ua.w3){removeSWF(objElemIdStr)}},createCSS:function(selStr,declStr,mediaStr,newStyleBoolean){if(ua.w3){createCSS(selStr,declStr,mediaStr,newStyleBoolean)}},addDomLoadEvent:addDomLoadEvent,addLoadEvent:addLoadEvent,getQueryParamValue:function(param){var q=doc.location.search||doc.location.hash;if(q){if(/\?/.test(q)){q=q.split("?")[1]}if(param==null){return urlEncodeIfNecessary(q)}var pairs=q.split("&");for(var i=0;i<pairs.length;i++){if(pairs[i].substring(0,pairs[i].indexOf("="))==param){return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(isExpressInstallActive){var obj=getElementById(EXPRESS_INSTALL_ID);if(obj&&storedAltContent){obj.parentNode.replaceChild(storedAltContent,obj);if(storedAltContentId){setVisibility(storedAltContentId,true);if(ua.ie&&ua.win){storedAltContent.style.display="block"}}if(storedCallbackFn){storedCallbackFn(storedCallbackObj)}}isExpressInstallActive=false}}}}();var SWFUpload;if(SWFUpload==undefined){SWFUpload=function(settings){this.initSWFUpload(settings)}}SWFUpload.prototype.initSWFUpload=function(settings){try{this.customSettings={};this.settings=settings;this.eventQueue=[];this.movieName="SWFUpload_"+SWFUpload.movieCount++;this.movieElement=null;SWFUpload.instances[this.movieName]=this;this.initSettings();this.loadFlash();this.displayDebugInfo()}catch(ex){delete SWFUpload.instances[this.movieName];throw ex}};SWFUpload.instances={};SWFUpload.movieCount=0;SWFUpload.version="2.2.0 2009-03-25";SWFUpload.QUEUE_ERROR={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130};SWFUpload.UPLOAD_ERROR={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290};SWFUpload.FILE_STATUS={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5};SWFUpload.BUTTON_ACTION={SELECT_FILE:-100,SELECT_FILES:-110,START_UPLOAD:-120};SWFUpload.CURSOR={ARROW:-1,HAND:-2};SWFUpload.WINDOW_MODE={WINDOW:"window",TRANSPARENT:"transparent",OPAQUE:"opaque"};SWFUpload.completeURL=function(url){if(typeof (url)!=="string"||url.match(/^https?:\/\//i)||url.match(/^\//)){return url}var currentURL=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"");var indexSlash=window.location.pathname.lastIndexOf("/");if(indexSlash<=0){path="/"}else{path=window.location.pathname.substr(0,indexSlash)+"/"}return path+url};SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(settingName,defaultValue){this.settings[settingName]=(this.settings[settingName]==undefined)?defaultValue:this.settings[settingName]};this.ensureDefault("upload_url","");this.ensureDefault("preserve_relative_urls",false);this.ensureDefault("file_post_name","Filedata");this.ensureDefault("post_params",{});this.ensureDefault("use_query_string",false);this.ensureDefault("requeue_on_error",false);this.ensureDefault("http_success",[]);this.ensureDefault("assume_success_timeout",0);this.ensureDefault("file_types","*.*");this.ensureDefault("file_types_description","All Files");this.ensureDefault("file_size_limit",0);this.ensureDefault("file_upload_limit",0);this.ensureDefault("file_queue_limit",0);this.ensureDefault("flash_url","swfupload.swf");this.ensureDefault("prevent_swf_caching",true);this.ensureDefault("button_image_url","");this.ensureDefault("button_width",1);this.ensureDefault("button_height",1);this.ensureDefault("button_text","");this.ensureDefault("button_text_style","color: #000000; font-size: 16pt;");this.ensureDefault("button_text_top_padding",0);this.ensureDefault("button_text_left_padding",0);this.ensureDefault("button_action",SWFUpload.BUTTON_ACTION.SELECT_FILES);this.ensureDefault("button_disabled",false);this.ensureDefault("button_placeholder_id","");this.ensureDefault("button_placeholder",null);this.ensureDefault("button_cursor",SWFUpload.CURSOR.ARROW);this.ensureDefault("button_window_mode",SWFUpload.WINDOW_MODE.WINDOW);this.ensureDefault("debug",false);this.settings.debug_enabled=this.settings.debug;this.settings.return_upload_start_handler=this.returnUploadStart;this.ensureDefault("swfupload_loaded_handler",null);this.ensureDefault("file_dialog_start_handler",null);this.ensureDefault("file_queued_handler",null);this.ensureDefault("file_queue_error_handler",null);this.ensureDefault("file_dialog_complete_handler",null);this.ensureDefault("upload_start_handler",null);this.ensureDefault("upload_progress_handler",null);this.ensureDefault("upload_error_handler",null);this.ensureDefault("upload_success_handler",null);this.ensureDefault("upload_complete_handler",null);this.ensureDefault("debug_handler",this.debugMessage);this.ensureDefault("custom_settings",{});this.customSettings=this.settings.custom_settings;if(!!this.settings.prevent_swf_caching){this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+new Date().getTime()}if(!this.settings.preserve_relative_urls){this.settings.upload_url=SWFUpload.completeURL(this.settings.upload_url);this.settings.button_image_url=SWFUpload.completeURL(this.settings.button_image_url)}delete this.ensureDefault};SWFUpload.prototype.loadFlash=function(){var targetElement,tempParent;if(document.getElementById(this.movieName)!==null){throw"ID "+this.movieName+" is already in use. The Flash Object could not be added"}targetElement=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder;if(targetElement==undefined){throw"Could not find the placeholder element: "+this.settings.button_placeholder_id}tempParent=document.createElement("div");tempParent.innerHTML=this.getFlashHTML();targetElement.parentNode.replaceChild(tempParent.firstChild,targetElement);if(window[this.movieName]==undefined){window[this.movieName]=this.getMovieElement()}};SWFUpload.prototype.getFlashHTML=function(){return['<object id="',this.movieName,'" type="application/x-shockwave-flash" data="',this.settings.flash_url,'" width="',this.settings.button_width,'" height="',this.settings.button_height,'" class="swfupload">','<param name="wmode" value="',this.settings.button_window_mode,'" />','<param name="movie" value="',this.settings.flash_url,'" />','<param name="quality" value="high" />','<param name="menu" value="false" />','<param name="allowScriptAccess" value="always" />','<param name="flashvars" value="'+this.getFlashVars()+'" />',"</object>"].join("")};SWFUpload.prototype.getFlashVars=function(){var paramString=this.buildParamString();var httpSuccessString=this.settings.http_success.join(",");return["movieName=",encodeURIComponent(this.movieName),"&amp;uploadURL=",encodeURIComponent(this.settings.upload_url),"&amp;useQueryString=",encodeURIComponent(this.settings.use_query_string),"&amp;requeueOnError=",encodeURIComponent(this.settings.requeue_on_error),"&amp;httpSuccess=",encodeURIComponent(httpSuccessString),"&amp;assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&amp;params=",encodeURIComponent(paramString),"&amp;filePostName=",encodeURIComponent(this.settings.file_post_name),"&amp;fileTypes=",encodeURIComponent(this.settings.file_types),"&amp;fileTypesDescription=",encodeURIComponent(this.settings.file_types_description),"&amp;fileSizeLimit=",encodeURIComponent(this.settings.file_size_limit),"&amp;fileUploadLimit=",encodeURIComponent(this.settings.file_upload_limit),"&amp;fileQueueLimit=",encodeURIComponent(this.settings.file_queue_limit),"&amp;debugEnabled=",encodeURIComponent(this.settings.debug_enabled),"&amp;buttonImageURL=",encodeURIComponent(this.settings.button_image_url),"&amp;buttonWidth=",encodeURIComponent(this.settings.button_width),"&amp;buttonHeight=",encodeURIComponent(this.settings.button_height),"&amp;buttonText=",encodeURIComponent(this.settings.button_text),"&amp;buttonTextTopPadding=",encodeURIComponent(this.settings.button_text_top_padding),"&amp;buttonTextLeftPadding=",encodeURIComponent(this.settings.button_text_left_padding),"&amp;buttonTextStyle=",encodeURIComponent(this.settings.button_text_style),"&amp;buttonAction=",encodeURIComponent(this.settings.button_action),"&amp;buttonDisabled=",encodeURIComponent(this.settings.button_disabled),"&amp;buttonCursor=",encodeURIComponent(this.settings.button_cursor)].join("")};SWFUpload.prototype.getMovieElement=function(){if(this.movieElement==undefined){this.movieElement=document.getElementById(this.movieName)}if(this.movieElement===null){throw"Could not find Flash element"}return this.movieElement};SWFUpload.prototype.buildParamString=function(){var postParams=this.settings.post_params;var paramStringPairs=[];if(typeof (postParams)==="object"){for(var name in postParams){if(postParams.hasOwnProperty(name)){paramStringPairs.push(encodeURIComponent(name.toString())+"="+encodeURIComponent(postParams[name].toString()))}}}return paramStringPairs.join("&amp;")};SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,false);var movieElement=null;movieElement=this.getMovieElement();if(movieElement&&typeof (movieElement.CallFunction)==="unknown"){for(var i in movieElement){try{if(typeof (movieElement[i])==="function"){movieElement[i]=null}}catch(ex1){}}try{movieElement.parentNode.removeChild(movieElement)}catch(ex){}}window[this.movieName]=null;SWFUpload.instances[this.movieName]=null;delete SWFUpload.instances[this.movieName];this.movieElement=null;this.settings=null;this.customSettings=null;this.eventQueue=null;this.movieName=null;return true}catch(ex2){return false}};SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n","\t","upload_url:               ",this.settings.upload_url,"\n","\t","flash_url:                ",this.settings.flash_url,"\n","\t","use_query_string:         ",this.settings.use_query_string.toString(),"\n","\t","requeue_on_error:         ",this.settings.requeue_on_error.toString(),"\n","\t","http_success:             ",this.settings.http_success.join(", "),"\n","\t","assume_success_timeout:   ",this.settings.assume_success_timeout,"\n","\t","file_post_name:           ",this.settings.file_post_name,"\n","\t","post_params:              ",this.settings.post_params.toString(),"\n","\t","file_types:               ",this.settings.file_types,"\n","\t","file_types_description:   ",this.settings.file_types_description,"\n","\t","file_size_limit:          ",this.settings.file_size_limit,"\n","\t","file_upload_limit:        ",this.settings.file_upload_limit,"\n","\t","file_queue_limit:         ",this.settings.file_queue_limit,"\n","\t","debug:                    ",this.settings.debug.toString(),"\n","\t","prevent_swf_caching:      ",this.settings.prevent_swf_caching.toString(),"\n","\t","button_placeholder_id:    ",this.settings.button_placeholder_id.toString(),"\n","\t","button_placeholder:       ",(this.settings.button_placeholder?"Set":"Not Set"),"\n","\t","button_image_url:         ",this.settings.button_image_url.toString(),"\n","\t","button_width:             ",this.settings.button_width.toString(),"\n","\t","button_height:            ",this.settings.button_height.toString(),"\n","\t","button_text:              ",this.settings.button_text.toString(),"\n","\t","button_text_style:        ",this.settings.button_text_style.toString(),"\n","\t","button_text_top_padding:  ",this.settings.button_text_top_padding.toString(),"\n","\t","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n","\t","button_action:            ",this.settings.button_action.toString(),"\n","\t","button_disabled:          ",this.settings.button_disabled.toString(),"\n","\t","custom_settings:          ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n","\t","swfupload_loaded_handler assigned:  ",(typeof this.settings.swfupload_loaded_handler==="function").toString(),"\n","\t","file_dialog_start_handler assigned: ",(typeof this.settings.file_dialog_start_handler==="function").toString(),"\n","\t","file_queued_handler assigned:       ",(typeof this.settings.file_queued_handler==="function").toString(),"\n","\t","file_queue_error_handler assigned:  ",(typeof this.settings.file_queue_error_handler==="function").toString(),"\n","\t","upload_start_handler assigned:      ",(typeof this.settings.upload_start_handler==="function").toString(),"\n","\t","upload_progress_handler assigned:   ",(typeof this.settings.upload_progress_handler==="function").toString(),"\n","\t","upload_error_handler assigned:      ",(typeof this.settings.upload_error_handler==="function").toString(),"\n","\t","upload_success_handler assigned:    ",(typeof this.settings.upload_success_handler==="function").toString(),"\n","\t","upload_complete_handler assigned:   ",(typeof this.settings.upload_complete_handler==="function").toString(),"\n","\t","debug_handler assigned:             ",(typeof this.settings.debug_handler==="function").toString(),"\n"].join(""))};SWFUpload.prototype.addSetting=function(name,value,default_value){if(value==undefined){return(this.settings[name]=default_value)}else{return(this.settings[name]=value)}};SWFUpload.prototype.getSetting=function(name){if(this.settings[name]!=undefined){return this.settings[name]}return""};SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement();var returnValue,returnString;try{returnString=movieElement.CallFunction('<invoke name="'+functionName+'" returntype="javascript">'+__flash__argumentsToXML(argumentArray,0)+"</invoke>");returnValue=eval(returnString)}catch(ex){throw"Call to "+functionName+" failed"}if(returnValue!=undefined&&typeof returnValue.post==="object"){returnValue=this.unescapeFilePostParams(returnValue)}return returnValue};SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")};SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")};SWFUpload.prototype.startUpload=function(fileID){this.callFlash("StartUpload",[fileID])};SWFUpload.prototype.cancelUpload=function(fileID,triggerErrorEvent){if(triggerErrorEvent!==false){triggerErrorEvent=true}this.callFlash("CancelUpload",[fileID,triggerErrorEvent])};SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")};SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")};SWFUpload.prototype.setStats=function(statsObject){this.callFlash("SetStats",[statsObject])};SWFUpload.prototype.getFile=function(fileID){if(typeof (fileID)==="number"){return this.callFlash("GetFileByIndex",[fileID])}else{return this.callFlash("GetFile",[fileID])}};SWFUpload.prototype.addFileParam=function(fileID,name,value){return this.callFlash("AddFileParam",[fileID,name,value])};SWFUpload.prototype.removeFileParam=function(fileID,name){this.callFlash("RemoveFileParam",[fileID,name])};SWFUpload.prototype.setUploadURL=function(url){this.settings.upload_url=url.toString();this.callFlash("SetUploadURL",[url])};SWFUpload.prototype.setPostParams=function(paramsObject){this.settings.post_params=paramsObject;this.callFlash("SetPostParams",[paramsObject])};SWFUpload.prototype.addPostParam=function(name,value){this.settings.post_params[name]=value;this.callFlash("SetPostParams",[this.settings.post_params])};SWFUpload.prototype.removePostParam=function(name){delete this.settings.post_params[name];this.callFlash("SetPostParams",[this.settings.post_params])};SWFUpload.prototype.setFileTypes=function(types,description){this.settings.file_types=types;this.settings.file_types_description=description;this.callFlash("SetFileTypes",[types,description])};SWFUpload.prototype.setFileSizeLimit=function(fileSizeLimit){this.settings.file_size_limit=fileSizeLimit;this.callFlash("SetFileSizeLimit",[fileSizeLimit])};SWFUpload.prototype.setFileUploadLimit=function(fileUploadLimit){this.settings.file_upload_limit=fileUploadLimit;this.callFlash("SetFileUploadLimit",[fileUploadLimit])};SWFUpload.prototype.setFileQueueLimit=function(fileQueueLimit){this.settings.file_queue_limit=fileQueueLimit;this.callFlash("SetFileQueueLimit",[fileQueueLimit])};SWFUpload.prototype.setFilePostName=function(filePostName){this.settings.file_post_name=filePostName;this.callFlash("SetFilePostName",[filePostName])};SWFUpload.prototype.setUseQueryString=function(useQueryString){this.settings.use_query_string=useQueryString;this.callFlash("SetUseQueryString",[useQueryString])};SWFUpload.prototype.setRequeueOnError=function(requeueOnError){this.settings.requeue_on_error=requeueOnError;this.callFlash("SetRequeueOnError",[requeueOnError])};SWFUpload.prototype.setHTTPSuccess=function(http_status_codes){if(typeof http_status_codes==="string"){http_status_codes=http_status_codes.replace(" ","").split(",")}this.settings.http_success=http_status_codes;this.callFlash("SetHTTPSuccess",[http_status_codes])};SWFUpload.prototype.setAssumeSuccessTimeout=function(timeout_seconds){this.settings.assume_success_timeout=timeout_seconds;this.callFlash("SetAssumeSuccessTimeout",[timeout_seconds])};SWFUpload.prototype.setDebugEnabled=function(debugEnabled){this.settings.debug_enabled=debugEnabled;this.callFlash("SetDebugEnabled",[debugEnabled])};SWFUpload.prototype.setButtonImageURL=function(buttonImageURL){if(buttonImageURL==undefined){buttonImageURL=""}this.settings.button_image_url=buttonImageURL;this.callFlash("SetButtonImageURL",[buttonImageURL])};SWFUpload.prototype.setButtonDimensions=function(width,height){this.settings.button_width=width;this.settings.button_height=height;var movie=this.getMovieElement();if(movie!=undefined){movie.style.width=width+"px";movie.style.height=height+"px"}this.callFlash("SetButtonDimensions",[width,height])};SWFUpload.prototype.setButtonText=function(html){this.settings.button_text=html;this.callFlash("SetButtonText",[html])};SWFUpload.prototype.setButtonTextPadding=function(left,top){this.settings.button_text_top_padding=top;this.settings.button_text_left_padding=left;this.callFlash("SetButtonTextPadding",[left,top])};SWFUpload.prototype.setButtonTextStyle=function(css){this.settings.button_text_style=css;this.callFlash("SetButtonTextStyle",[css])};SWFUpload.prototype.setButtonDisabled=function(isDisabled){this.settings.button_disabled=isDisabled;this.callFlash("SetButtonDisabled",[isDisabled])};SWFUpload.prototype.setButtonAction=function(buttonAction){this.settings.button_action=buttonAction;this.callFlash("SetButtonAction",[buttonAction])};SWFUpload.prototype.setButtonCursor=function(cursor){this.settings.button_cursor=cursor;this.callFlash("SetButtonCursor",[cursor])};SWFUpload.prototype.queueEvent=function(handlerName,argumentArray){if(argumentArray==undefined){argumentArray=[]}else{if(!(argumentArray instanceof Array)){argumentArray=[argumentArray]}}var self=this;if(typeof this.settings[handlerName]==="function"){this.eventQueue.push(function(){this.settings[handlerName].apply(this,argumentArray)});setTimeout(function(){self.executeNextEvent()},0)}else{if(this.settings[handlerName]!==null){throw"Event handler "+handlerName+" is unknown or is not a function"}}};SWFUpload.prototype.executeNextEvent=function(){var f=this.eventQueue?this.eventQueue.shift():null;if(typeof (f)==="function"){f.apply(this)}};SWFUpload.prototype.unescapeFilePostParams=function(file){var reg=/[$]([0-9a-f]{4})/i;var unescapedPost={};var uk;if(file!=undefined){for(var k in file.post){if(file.post.hasOwnProperty(k)){uk=k;var match;while((match=reg.exec(uk))!==null){uk=uk.replace(match[0],String.fromCharCode(parseInt("0x"+match[1],16)))}unescapedPost[uk]=file.post[k]}}file.post=unescapedPost}return file};SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface")}catch(ex){return false}};SWFUpload.prototype.flashReady=function(){var movieElement=this.getMovieElement();if(!movieElement){this.debug("Flash called back ready but the flash movie can't be found.");return }this.cleanUp(movieElement);this.queueEvent("swfupload_loaded_handler")};SWFUpload.prototype.cleanUp=function(movieElement){try{if(this.movieElement&&typeof (movieElement.CallFunction)==="unknown"){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var key in movieElement){try{if(typeof (movieElement[key])==="function"){movieElement[key]=null}}catch(ex){}}}}catch(ex1){}window.__flash__removeCallback=function(instance,name){try{if(instance){instance[name]=null}}catch(flashEx){}}};SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")};SWFUpload.prototype.fileQueued=function(file){file=this.unescapeFilePostParams(file);this.queueEvent("file_queued_handler",file)};SWFUpload.prototype.fileQueueError=function(file,errorCode,message){file=this.unescapeFilePostParams(file);this.queueEvent("file_queue_error_handler",[file,errorCode,message])};SWFUpload.prototype.fileDialogComplete=function(numFilesSelected,numFilesQueued,numFilesInQueue){this.queueEvent("file_dialog_complete_handler",[numFilesSelected,numFilesQueued,numFilesInQueue])};SWFUpload.prototype.uploadStart=function(file){file=this.unescapeFilePostParams(file);this.queueEvent("return_upload_start_handler",file)};SWFUpload.prototype.returnUploadStart=function(file){var returnValue;if(typeof this.settings.upload_start_handler==="function"){file=this.unescapeFilePostParams(file);returnValue=this.settings.upload_start_handler.call(this,file)}else{if(this.settings.upload_start_handler!=undefined){throw"upload_start_handler must be a function"}}if(returnValue===undefined){returnValue=true}returnValue=!!returnValue;this.callFlash("ReturnUploadStart",[returnValue])};SWFUpload.prototype.uploadProgress=function(file,bytesComplete,bytesTotal){file=this.unescapeFilePostParams(file);this.queueEvent("upload_progress_handler",[file,bytesComplete,bytesTotal])};SWFUpload.prototype.uploadError=function(file,errorCode,message){file=this.unescapeFilePostParams(file);this.queueEvent("upload_error_handler",[file,errorCode,message])};SWFUpload.prototype.uploadSuccess=function(file,serverData,responseReceived){file=this.unescapeFilePostParams(file);this.queueEvent("upload_success_handler",[file,serverData,responseReceived])};SWFUpload.prototype.uploadComplete=function(file){file=this.unescapeFilePostParams(file);this.queueEvent("upload_complete_handler",file)};SWFUpload.prototype.debug=function(message){this.queueEvent("debug_handler",message)};SWFUpload.prototype.debugMessage=function(message){if(this.settings.debug){var exceptionMessage,exceptionValues=[];if(typeof message==="object"&&typeof message.name==="string"&&typeof message.message==="string"){for(var key in message){if(message.hasOwnProperty(key)){exceptionValues.push(key+": "+message[key])}}exceptionMessage=exceptionValues.join("\n")||"";exceptionValues=exceptionMessage.split("\n");exceptionMessage="EXCEPTION: "+exceptionValues.join("\nEXCEPTION: ");SWFUpload.Console.writeLine(exceptionMessage)}else{SWFUpload.Console.writeLine(message)}}};SWFUpload.Console={};SWFUpload.Console.writeLine=function(message){var console,documentForm;try{console=document.getElementById("SWFUpload_Console");if(!console){documentForm=document.createElement("form");document.getElementsByTagName("body")[0].appendChild(documentForm);console=document.createElement("textarea");console.id="SWFUpload_Console";console.style.fontFamily="monospace";console.setAttribute("wrap","off");console.wrap="off";console.style.overflow="auto";console.style.width="700px";console.style.height="350px";console.style.margin="5px";documentForm.appendChild(console)}console.value+=message+"\n";console.scrollTop=console.scrollHeight-console.clientHeight}catch(ex){alert("Exception: "+ex.name+" Message: "+ex.message)}};var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.setLogging(true);var fileOrFiles=function(that,numFiles){return(numFiles===1)?that.options.strings.progress.singleFile:that.options.strings.progress.pluralFiles};var enableElement=function(that,elm){elm.prop("disabled",false);elm.removeClass(that.options.styles.dim)};var disableElement=function(that,elm){elm.prop("disabled",true);elm.addClass(that.options.styles.dim)};var showElement=function(that,elm){elm.removeClass(that.options.styles.hidden)};var hideElement=function(that,elm){elm.addClass(that.options.styles.hidden)};var maxFilesUploaded=function(that){var fileUploadLimit=that.queue.getUploadedFiles().length+that.queue.getReadyFiles().length;return(fileUploadLimit===that.options.queueSettings.fileUploadLimit)};var setTotalProgressStyle=function(that,didError){didError=didError||false;var indicator=that.totalProgress.indicator;indicator.toggleClass(that.options.styles.totalProgress,!didError);indicator.toggleClass(that.options.styles.totalProgressError,didError)};var setStateEmpty=function(that){disableElement(that,that.locate("uploadButton"));if(that.queue.files.length===0){that.locate("browseButtonText").text(that.options.strings.buttons.browse);that.locate("browseButton").removeClass(that.options.styles.browseButton);showElement(that,that.locate("instructions"))}};var enableBrowseButton=function(that){if(!maxFilesUploaded(that)){enableElement(that,that.locate("browseButton"));that.strategy.local.enableBrowseButton()}};var setStateDone=function(that){disableElement(that,that.locate("uploadButton"));hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"));enableBrowseButton(that)};var setStateLoaded=function(that){that.locate("browseButtonText").text(that.options.strings.buttons.addMore);that.locate("browseButton").addClass(that.options.styles.browseButton);hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"));enableElement(that,that.locate("uploadButton"));hideElement(that,that.locate("instructions"));that.totalProgress.hide();enableBrowseButton(that)};var setStateUploading=function(that){that.totalProgress.hide(false,false);setTotalProgressStyle(that);hideElement(that,that.locate("uploadButton"));disableElement(that,that.locate("browseButton"));that.strategy.local.disableBrowseButton();enableElement(that,that.locate("pauseButton"));showElement(that,that.locate("pauseButton"));that.locate(that.options.focusWithEvent.afterUploadStart).focus()};var setStateFull=function(that){that.locate("browseButtonText").text(that.options.strings.buttons.addMore);that.locate("browseButton").addClass(that.options.styles.browseButton);hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"));enableElement(that,that.locate("uploadButton"));disableElement(that,that.locate("browseButton"));that.strategy.local.disableBrowseButton();hideElement(that,that.locate("instructions"));that.totalProgress.hide()};var renderUploadTotalMessage=function(that){var numReadyFiles=that.queue.getReadyFiles().length;var bytesReadyFiles=that.queue.sizeOfReadyFiles();var fileLabelStr=fileOrFiles(that,numReadyFiles);var totalStateStr=fluid.stringTemplate(that.options.strings.progress.toUploadLabel,{fileCount:numReadyFiles,fileLabel:fileLabelStr,totalBytes:fluid.uploader.formatFileSize(bytesReadyFiles)});that.locate("totalFileStatusText").html(totalStateStr)};var renderFileUploadLimit=function(that){if(that.options.queueSettings.fileUploadLimit>0){var fileUploadLimitText=fluid.stringTemplate(that.options.strings.progress.fileUploadLimitLabel,{fileUploadLimit:that.options.queueSettings.fileUploadLimit,fileLabel:fileOrFiles(that,that.options.queueSettings.fileUploadLimit)});that.locate("fileUploadLimitText").html(fileUploadLimitText)}};var updateTotalProgress=function(that){var batch=that.queue.currentBatch;var totalPercent=fluid.uploader.derivePercent(batch.totalBytesUploaded,batch.totalBytes);var numFilesInBatch=batch.files.length;var fileLabelStr=fileOrFiles(that,numFilesInBatch);var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.totalProgressLabel,{curFileN:batch.fileIdx,totalFilesN:numFilesInBatch,fileLabel:fileLabelStr,currBytes:fluid.uploader.formatFileSize(batch.totalBytesUploaded),totalBytes:fluid.uploader.formatFileSize(batch.totalBytes)});that.totalProgress.update(totalPercent,totalProgressStr)};var updateTotalAtCompletion=function(that){var numErroredFiles=that.queue.getErroredFiles().length;var numTotalFiles=that.queue.files.length;var fileLabelStr=fileOrFiles(that,numTotalFiles);var errorStr="";if(numErroredFiles>0){var errorLabelString=(numErroredFiles===1)?that.options.strings.progress.singleError:that.options.strings.progress.pluralErrors;setTotalProgressStyle(that,true);errorStr=fluid.stringTemplate(that.options.strings.progress.numberOfErrors,{errorsN:numErroredFiles,errorLabel:errorLabelString})}var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.completedLabel,{curFileN:that.queue.getUploadedFiles().length,totalFilesN:numTotalFiles,errorString:errorStr,fileLabel:fileLabelStr,totalCurrBytes:fluid.uploader.formatFileSize(that.queue.sizeOfUploadedFiles())});that.totalProgress.update(100,totalProgressStr)};var updateQueueSummaryText=function(that){var fileQueueTable=that.locate("fileQueue");if(that.queue.files.length===0){fileQueueTable.attr("summary",that.options.strings.queue.emptyQueue)}else{var queueSummary=fluid.stringTemplate(that.options.strings.queue.queueSummary,{totalUploaded:that.queue.getUploadedFiles().length,totalInUploadQueue:that.queue.files.length-that.queue.getUploadedFiles().length});fileQueueTable.attr("summary",queueSummary)}};var bindDOMEvents=function(that){that.locate("uploadButton").click(function(){that.start()});that.locate("pauseButton").click(function(){that.stop()})};var updateStateAfterFileDialog=function(that){var queueLength=that.queue.getReadyFiles().length;if(queueLength>0){if(queueLength===that.options.queueSettings.fileUploadLimit){setStateFull(that)}else{setStateLoaded(that)}renderUploadTotalMessage(that);that.locate(that.options.focusWithEvent.afterFileDialog).focus();updateQueueSummaryText(that)}};var updateStateAfterFileRemoval=function(that){if(that.queue.getReadyFiles().length===0){setStateEmpty(that)}else{setStateLoaded(that)}renderUploadTotalMessage(that);updateQueueSummaryText(that)};var updateStateAfterCompletion=function(that){if(that.queue.getReadyFiles().length===0){setStateDone(that)}else{setStateLoaded(that)}updateTotalAtCompletion(that);updateQueueSummaryText(that)};var bindEvents=function(that){that.events.afterFileDialog.addListener(function(){updateStateAfterFileDialog(that)});that.events.afterFileQueued.addListener(function(file){that.queue.addFile(file)});that.events.onFileRemoved.addListener(function(file){that.removeFile(file)});that.events.afterFileRemoved.addListener(function(){updateStateAfterFileRemoval(that)});that.events.onUploadStart.addListener(function(){setStateUploading(that)});that.events.onUploadStop.addListener(function(){that.locate(that.options.focusWithEvent.onUploadStop).focus()});that.events.onFileStart.addListener(function(file){file.filestatus=fluid.uploader.fileStatusConstants.IN_PROGRESS;that.queue.startFile()});that.events.onFileProgress.addListener(function(file,currentBytes,totalBytes){that.queue.updateBatchStatus(currentBytes);updateTotalProgress(that)});that.events.onFileComplete.addListener(function(file){that.queue.finishFile(file);that.events.afterFileComplete.fire(file);if(that.queue.shouldUploadNextFile()){that.strategy.remote.uploadNextFile()}else{that.events.afterUploadComplete.fire(that.queue.currentBatch.files);that.queue.clearCurrentBatch()}});that.events.onFileSuccess.addListener(function(file){file.filestatus=fluid.uploader.fileStatusConstants.COMPLETE;if(that.queue.currentBatch.bytesUploadedForFile===0){that.queue.currentBatch.totalBytesUploaded+=file.size}updateTotalProgress(that)});that.events.onFileError.addListener(function(file,error){if(error===fluid.uploader.errorConstants.UPLOAD_STOPPED){file.filestatus=fluid.uploader.fileStatusConstants.CANCELLED;return }else{file.filestatus=fluid.uploader.fileStatusConstants.ERROR;if(that.queue.isUploading){that.queue.currentBatch.totalBytesUploaded+=file.size;that.queue.currentBatch.numFilesErrored++}}});that.events.afterUploadComplete.addListener(function(){that.queue.isUploading=false;updateStateAfterCompletion(that)})};var setupUploader=function(that){that.demo=fluid.typeTag(that.options.demo?"fluid.uploader.demo":"fluid.uploader.live");fluid.initDependents(that);disableElement(that,that.locate("uploadButton"));bindDOMEvents(that);bindEvents(that);updateQueueSummaryText(that);that.statusUpdater();renderFileUploadLimit(that);that.container.attr("role","application")};fluid.uploader=function(container,uploaderOptions){var that=fluid.initView("fluid.uploader",container);if(fluid.uploader.transformOptions){uploaderOptions=fluid.uploader.transformOptions(uploaderOptions)}that.uploaderOptions=uploaderOptions;fluid.initDependents(that);return that.uploaderImpl};fluid.uploaderImpl=function(){fluid.fail('Error creating uploader component - please make sure that a progressiveCheckerForComponent for "fluid.uploader" is registered either in the static environment or else is visible in the current component tree')};fluid.defaults("fluid.uploader",{gradeNames:["fluid.viewComponent"],components:{uploaderContext:{type:"fluid.progressiveCheckerForComponent",options:{componentName:"fluid.uploader"}},uploaderImpl:{type:"fluid.uploaderImpl",container:"{uploader}.container",options:"{uploader}.uploaderOptions"}},progressiveCheckerOptions:{checks:[{feature:"{fluid.browser.supportsBinaryXHR}",contextName:"fluid.uploader.html5"},{feature:"{fluid.browser.supportsFlash}",contextName:"fluid.uploader.swfUpload"}],defaultContextName:"fluid.uploader.singleFile"}});fluid.alias("fluid.uploader","fluid.uploaderImpl");fluid.progressiveEnhanceableUploader=function(container,enhanceable,options){return fluid.uploader(container,options)};fluid.uploader.multiFileUploader=function(container,options){var that=fluid.initView("fluid.uploader.multiFileUploader",container,options);that.queue=fluid.uploader.fileQueue();that.browse=function(){if(!that.queue.isUploading){that.strategy.local.browse()}};that.removeFile=function(file){that.queue.removeFile(file);that.strategy.local.removeFile(file);that.events.afterFileRemoved.fire(file)};that.start=function(){that.queue.start();that.events.onUploadStart.fire(that.queue.currentBatch.files);that.strategy.remote.uploadNextFile()};that.stop=function(){that.events.onUploadStop.fire();that.strategy.remote.stop()};setupUploader(that);return that};fluid.defaults("fluid.uploader.multiFileUploader",{gradeNames:"fluid.viewComponent",components:{strategy:{type:"fluid.uploader.progressiveStrategy"},errorPanel:{type:"fluid.uploader.errorPanel"},fileQueueView:{type:"fluid.uploader.fileQueueView",options:{model:"{multiFileUploader}.queue.files",uploaderContainer:"{multiFileUploader}.container"}},totalProgress:{type:"fluid.uploader.totalProgressBar",options:{selectors:{progressBar:".flc-uploader-queue-footer",displayElement:".flc-uploader-total-progress",label:".flc-uploader-total-progress-text",indicator:".flc-uploader-total-progress",ariaElement:".flc-uploader-total-progress"}}}},invokers:{statusUpdater:"fluid.uploader.ariaLiveRegionUpdater"},queueSettings:{uploadURL:"",postParams:{},fileSizeLimit:"20480",fileTypes:null,fileTypesDescription:null,fileUploadLimit:0,fileQueueLimit:0},demo:false,selectors:{fileQueue:".flc-uploader-queue",browseButton:".flc-uploader-button-browse",browseButtonText:".flc-uploader-button-browse-text",uploadButton:".flc-uploader-button-upload",pauseButton:".flc-uploader-button-pause",totalFileStatusText:".flc-uploader-total-progress-text",fileUploadLimitText:".flc-uploader-upload-limit-text",instructions:".flc-uploader-browse-instructions",statusRegion:".flc-uploader-status-region",errorsPanel:".flc-uploader-errorsPanel"},focusWithEvent:{afterFileDialog:"uploadButton",afterUploadStart:"pauseButton",onUploadStop:"uploadButton"},styles:{disabled:"fl-uploader-disabled",hidden:"fl-uploader-hidden",dim:"fl-uploader-dim",totalProgress:"fl-uploader-total-progress-okay",totalProgressError:"fl-uploader-total-progress-errored",browseButton:"fl-uploader-browseMore"},events:{afterReady:null,onFileDialog:null,onFilesSelected:null,onFileQueued:null,afterFileQueued:null,onFileRemoved:null,afterFileRemoved:null,afterFileDialog:null,onUploadStart:null,onUploadStop:null,onFileStart:null,onFileProgress:null,onFileError:null,onQueueError:null,onFileSuccess:null,onFileComplete:null,afterFileComplete:null,afterUploadComplete:null},strings:{progress:{fileUploadLimitLabel:"%fileUploadLimit %fileLabel maximum",toUploadLabel:"To upload: %fileCount %fileLabel (%totalBytes)",totalProgressLabel:"Uploading: %curFileN of %totalFilesN %fileLabel (%currBytes of %totalBytes)",completedLabel:"Uploaded: %curFileN of %totalFilesN %fileLabel (%totalCurrBytes)%errorString",numberOfErrors:", %errorsN %errorLabel",singleFile:"file",pluralFiles:"files",singleError:"error",pluralErrors:"errors"},buttons:{browse:"Browse Files",addMore:"Add More",stopUpload:"Stop Upload",cancelRemaning:"Cancel remaining Uploads",resumeUpload:"Resume Upload"},queue:{emptyQueue:"File list: No files waiting to be uploaded.",queueSummary:"File list:  %totalUploaded files uploaded, %totalInUploadQueue file waiting to be uploaded."}},mergePolicy:{"fileQueueView.options.model":"preserve"}});fluid.demands("fluid.uploader.totalProgressBar","fluid.uploader.multiFileUploader",{funcName:"fluid.progress",container:"{multiFileUploader}.container"});fluid.demands("fluid.uploader.fileQueueView","fluid.uploader.multiFileUploader",{container:"{multiFileUploader}.dom.fileQueue",options:{events:{onFileRemoved:"{multiFileUploader}.events.onFileRemoved"}}});fluid.demands("fluid.uploader.fileQueueView.eventBinder",["fluid.uploader.multiFileUploader","fluid.uploader.fileQueueView"],{options:{listeners:{"{multiFileUploader}.events.afterFileQueued":"{fileQueueView}.addFile","{multiFileUploader}.events.onUploadStart":"{fileQueueView}.prepareForUpload","{multiFileUploader}.events.onFileStart":"{fileQueueView}.showFileProgress","{multiFileUploader}.events.onFileProgress":"{fileQueueView}.updateFileProgress","{multiFileUploader}.events.onFileSuccess":"{fileQueueView}.markFileComplete","{multiFileUploader}.events.onFileError":"{fileQueueView}.showErrorForFile","{multiFileUploader}.events.afterFileComplete":"{fileQueueView}.hideFileProgress","{multiFileUploader}.events.afterUploadComplete":"{fileQueueView}.refreshAfterUpload"}}});fluid.uploader.formatFileSize=function(bytes){if(typeof (bytes)==="number"){if(bytes===0){return"0.0 KB"}else{if(bytes>0){if(bytes<1048576){return(Math.ceil(bytes/1024*10)/10).toFixed(1)+" KB"}else{return(Math.ceil(bytes/1048576*10)/10).toFixed(1)+" MB"}}}}return""};fluid.uploader.derivePercent=function(num,total){return Math.round((num*100)/total)};fluid.uploader.ariaLiveRegionUpdater=function(statusRegion,totalFileStatusText,events){statusRegion.attr("role","log");statusRegion.attr("aria-live","assertive");statusRegion.attr("aria-relevant","text");statusRegion.attr("aria-atomic","true");var regionUpdater=function(){statusRegion.text(totalFileStatusText.text())};events.afterFileDialog.addListener(regionUpdater);events.afterFileRemoved.addListener(regionUpdater);events.afterUploadComplete.addListener(regionUpdater)};fluid.demands("fluid.uploader.ariaLiveRegionUpdater","fluid.uploader.multiFileUploader",{funcName:"fluid.uploader.ariaLiveRegionUpdater",args:["{multiFileUploader}.dom.statusRegion","{multiFileUploader}.dom.totalFileStatusText","{multiFileUploader}.events"]});fluid.uploader.queueErrorConstants={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130};fluid.uploader.errorConstants={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290};fluid.uploader.fileStatusConstants={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5};var toggleVisibility=function(toShow,toHide){if(window.opera){toShow.show().removeClass("hideUploaderForOpera");toHide.show().addClass("hideUploaderForOpera")}else{toShow.show();toHide.hide()}};fluid.uploader.singleFileUploader=function(container,options){var that=fluid.initView("fluid.uploader.singleFileUploader",container,options);toggleVisibility($(that.options.selectors.basicUpload),that.container);return that};fluid.defaults("fluid.uploader.singleFileUploader",{gradeNames:"fluid.viewComponent",selectors:{basicUpload:".fl-progEnhance-basic"}});fluid.demands("fluid.uploaderImpl","fluid.uploader.singleFile",{funcName:"fluid.uploader.singleFileUploader"})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.uploader=fluid.uploader||{};var filterFiles=function(files,filterFn){var filteredFiles=[];for(var i=0;i<files.length;i++){var file=files[i];if(filterFn(file)===true){filteredFiles.push(file)}}return filteredFiles};fluid.uploader.fileQueue=function(){var that={};that.files=[];that.isUploading=false;that.start=function(){that.setupCurrentBatch();that.isUploading=true;that.shouldStop=false};that.startFile=function(){that.currentBatch.fileIdx++;that.currentBatch.bytesUploadedForFile=0;that.currentBatch.previousBytesUploadedForFile=0};that.finishFile=function(file){that.currentBatch.numFilesCompleted++};that.shouldUploadNextFile=function(){return !that.shouldStop&&that.isUploading&&that.currentBatch.numFilesCompleted<that.currentBatch.files.length};that.addFile=function(file){that.files.push(file)};that.removeFile=function(file){var idx=$.inArray(file,that.files);that.files.splice(idx,1)};that.totalBytes=function(){return fluid.uploader.fileQueue.sizeOfFiles(that.files)};that.getReadyFiles=function(){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.QUEUED||file.filestatus===fluid.uploader.fileStatusConstants.CANCELLED)})};that.getErroredFiles=function(){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.ERROR)})};that.sizeOfReadyFiles=function(){return fluid.uploader.fileQueue.sizeOfFiles(that.getReadyFiles())};that.getUploadedFiles=function(){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE)})};that.sizeOfUploadedFiles=function(){return fluid.uploader.fileQueue.sizeOfFiles(that.getUploadedFiles())};that.setupCurrentBatch=function(){that.clearCurrentBatch();that.updateCurrentBatch()};that.clearCurrentBatch=function(){that.currentBatch={fileIdx:0,files:[],totalBytes:0,numFilesCompleted:0,numFilesErrored:0,bytesUploadedForFile:0,previousBytesUploadedForFile:0,totalBytesUploaded:0}};that.updateCurrentBatch=function(){var readyFiles=that.getReadyFiles();that.currentBatch.files=readyFiles;that.currentBatch.totalBytes=fluid.uploader.fileQueue.sizeOfFiles(readyFiles)};that.updateBatchStatus=function(currentBytes){var byteIncrement=currentBytes-that.currentBatch.previousBytesUploadedForFile;that.currentBatch.totalBytesUploaded+=byteIncrement;that.currentBatch.bytesUploadedForFile+=byteIncrement;that.currentBatch.previousBytesUploadedForFile=currentBytes};return that};fluid.uploader.fileQueue.sizeOfFiles=function(files){var totalBytes=0;for(var i=0;i<files.length;i++){var file=files[i];totalBytes+=file.size}return totalBytes}})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){var rowForFile=function(that,file){return that.locate("fileQueue").find("#"+file.id)};var errorRowForFile=function(that,file){return $("#"+file.id+"_error",that.container)};var fileForRow=function(that,row){var files=that.model;var i;for(i=0;i<files.length;i++){var file=files[i];if(file.id.toString()===row.prop("id")){return file}}return null};var progressorForFile=function(that,file){var progressId=file.id+"_progress";return that.fileProgressors[progressId]};var startFileProgress=function(that,file){var fileRowElm=rowForFile(that,file);that.scroller.scrollTo(fileRowElm);var fileProgressor=progressorForFile(that,file);fileProgressor.refreshView();fileProgressor.show()};var updateFileProgress=function(that,file,fileBytesComplete,fileTotalBytes){var filePercent=fluid.uploader.derivePercent(fileBytesComplete,fileTotalBytes);var filePercentStr=filePercent+"%";progressorForFile(that,file).update(filePercent,filePercentStr)};var hideFileProgress=function(that,file){var fileRowElm=rowForFile(that,file);progressorForFile(that,file).hide();if(file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE){that.locate("fileIconBtn",fileRowElm).removeClass(that.options.styles.dim)}};var removeFileProgress=function(that,file){var fileProgressor=progressorForFile(that,file);if(!fileProgressor){return }var rowProgressor=fileProgressor.displayElement;rowProgressor.remove()};var animateRowRemoval=function(that,row){row.fadeOut("fast",function(){row.remove();that.refreshView()})};var removeFileErrorRow=function(that,file){if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR){animateRowRemoval(that,errorRowForFile(that,file))}};var removeFileAndRow=function(that,file,row){removeFileProgress(that,file);removeFileErrorRow(that,file);that.events.onFileRemoved.fire(file);animateRowRemoval(that,row)};var removeFileForRow=function(that,row){var file=fileForRow(that,row);if(!file||file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE){return }removeFileAndRow(that,file,row)};var removeRowForFile=function(that,file){var row=rowForFile(that,file);removeFileAndRow(that,file,row)};var bindHover=function(row,styles){var over=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading)){row.addClass(styles.hover)}};var out=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading)){row.removeClass(styles.hover)}};row.hover(over,out)};var bindDeleteKey=function(that,row){var deleteHandler=function(){removeFileForRow(that,row)};fluid.activatable(row,null,{additionalBindings:[{key:$.ui.keyCode.DELETE,activateHandler:deleteHandler}]})};var bindRowHandlers=function(that,row){if($.browser.msie&&$.browser.version<7){bindHover(row,that.options.styles)}that.locate("fileIconBtn",row).click(function(){removeFileForRow(that,row)});bindDeleteKey(that,row)};var renderRowFromTemplate=function(that,file){var row=that.rowTemplate.clone(),fileName=file.name,fileSize=fluid.uploader.formatFileSize(file.size);row.removeClass(that.options.styles.hiddenTemplate);that.locate("fileName",row).text(fileName);that.locate("fileSize",row).text(fileSize);that.locate("fileIconBtn",row).addClass(that.options.styles.remove);row.prop("id",file.id);row.addClass(that.options.styles.ready);bindRowHandlers(that,row);fluid.updateAriaLabel(row,fileName+" "+fileSize);return row};var createProgressorFromTemplate=function(that,row){var rowProgressor=that.rowProgressorTemplate.clone();var rowId=row.prop("id");var progressId=rowId+"_progress";rowProgressor.prop("id",progressId);rowProgressor.css("top",row.position().top);rowProgressor.height(row.height()).width(5);that.container.after(rowProgressor);that.fileProgressors[progressId]=fluid.progress(that.options.uploaderContainer,{selectors:{progressBar:"#"+rowId,displayElement:"#"+progressId,label:"#"+progressId+" .fl-uploader-file-progress-text",indicator:"#"+progressId}})};var addFile=function(that,file){var row=renderRowFromTemplate(that,file);if(!($.browser.msie&&($.browser.version>=8))){row.hide()}that.container.append(row);row.attr("title",that.options.strings.status.remove);row.fadeIn("slow");createProgressorFromTemplate(that,row);that.refreshView();that.scroller.scrollTo("100%")};var enableRows=function(rows,state){var i;for(i=0;i<rows.length;i++){fluid.enabled(rows[i],state)}};var prepareForUpload=function(that){var rowButtons=that.locate("fileIconBtn",that.locate("fileRows"));rowButtons.prop("disabled",true);rowButtons.addClass(that.options.styles.dim);enableRows(that.locate("fileRows"),false)};var refreshAfterUpload=function(that){var rowButtons=that.locate("fileIconBtn",that.locate("fileRows"));rowButtons.prop("disabled",false);rowButtons.removeClass(that.options.styles.dim);enableRows(that.locate("fileRows"),true)};var changeRowState=function(that,row,newState){row.removeClass(that.options.styles.ready).removeClass(that.options.styles.error).addClass(newState)};var markRowAsComplete=function(that,file){var row=rowForFile(that,file);changeRowState(that,row,that.options.styles.uploaded);row.attr("title",that.options.strings.status.success);fluid.enabled(row,false);var removeRowBtn=that.locate("fileIconBtn",row);removeRowBtn.unbind("click");removeRowBtn.removeClass(that.options.styles.remove);removeRowBtn.attr("title",that.options.strings.status.success)};var renderErrorInfoRowFromTemplate=function(that,fileRow,error){var errorRow=that.errorInfoRowTemplate.clone();errorRow.prop("id",fileRow.prop("id")+"_error");var errorType=fluid.keyForValue(fluid.uploader.errorConstants,error);var errorMsg=that.options.strings.errors[errorType];that.locate("errorText",errorRow).text(errorMsg);fileRow.after(errorRow);that.scroller.scrollTo(errorRow)};var showErrorForFile=function(that,file,error){hideFileProgress(that,file);if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR){var fileRowElm=rowForFile(that,file);changeRowState(that,fileRowElm,that.options.styles.error);renderErrorInfoRowFromTemplate(that,fileRowElm,error)}};var addKeyboardNavigation=function(that){fluid.tabbable(that.container);that.selectableContext=fluid.selectable(that.container,{selectableSelector:that.options.selectors.fileRows,onSelect:function(itemToSelect){$(itemToSelect).addClass(that.options.styles.selected)},onUnselect:function(selectedItem){$(selectedItem).removeClass(that.options.styles.selected)}})};var prepareTemplateElements=function(that){that.rowTemplate=that.locate("rowTemplate").remove();that.errorInfoRowTemplate=that.locate("errorInfoRowTemplate").remove();that.errorInfoRowTemplate.removeClass(that.options.styles.hiddenTemplate);that.rowProgressorTemplate=that.locate("rowProgressorTemplate",that.options.uploaderContainer).remove()};fluid.registerNamespace("fluid.uploader.fileQueueView");fluid.uploader.fileQueueView.finalInit=function(that){prepareTemplateElements(that);addKeyboardNavigation(that)};fluid.uploader.fileQueueView.preInit=function(that){that.fileProgressors={};that.addFile=function(file){addFile(that,file)};that.removeFile=function(file){removeRowForFile(that,file)};that.prepareForUpload=function(){prepareForUpload(that)};that.refreshAfterUpload=function(){refreshAfterUpload(that)};that.showFileProgress=function(file){startFileProgress(that,file)};that.updateFileProgress=function(file,fileBytesComplete,fileTotalBytes){updateFileProgress(that,file,fileBytesComplete,fileTotalBytes)};that.markFileComplete=function(file){progressorForFile(that,file).update(100,"100%");markRowAsComplete(that,file)};that.showErrorForFile=function(file,error){showErrorForFile(that,file,error)};that.hideFileProgress=function(file){hideFileProgress(that,file)};that.refreshView=function(){that.selectableContext.refresh();that.scroller.refreshView()}};fluid.defaults("fluid.uploader.fileQueueView",{gradeNames:["fluid.viewComponent","autoInit"],preInitFunction:"fluid.uploader.fileQueueView.preInit",finalInitFunction:"fluid.uploader.fileQueueView.finalInit",components:{scroller:{type:"fluid.scrollableTable"},eventBinder:{type:"fluid.uploader.fileQueueView.eventBinder"}},selectors:{fileRows:".flc-uploader-file",fileName:".flc-uploader-file-name",fileSize:".flc-uploader-file-size",fileIconBtn:".flc-uploader-file-action",errorText:".flc-uploader-file-error",rowTemplate:".flc-uploader-file-tmplt",errorInfoRowTemplate:".flc-uploader-file-error-tmplt",rowProgressorTemplate:".flc-uploader-file-progressor-tmplt"},styles:{hover:"fl-uploader-file-hover",selected:"fl-uploader-file-focus",ready:"fl-uploader-file-state-ready",uploading:"fl-uploader-file-state-uploading",uploaded:"fl-uploader-file-state-uploaded",error:"fl-uploader-file-state-error",remove:"fl-uploader-file-action-remove",dim:"fl-uploader-dim",hiddenTemplate:"fl-uploader-hidden-templates"},strings:{progress:{toUploadLabel:"To upload: %fileCount %fileLabel (%totalBytes)",singleFile:"file",pluralFiles:"files"},status:{success:"File Uploaded",error:"File Upload Error",remove:"Press Delete key to remove file"},errors:{HTTP_ERROR:"File upload error: a network error occured or the file was rejected (reason unknown).",IO_ERROR:"File upload error: a network error occured.",UPLOAD_LIMIT_EXCEEDED:"File upload error: you have uploaded as many files as you are allowed during this session",UPLOAD_FAILED:"File upload error: the upload failed for an unknown reason.",QUEUE_LIMIT_EXCEEDED:"You have as many files in the queue as can be added at one time. Removing files from the queue may allow you to add different files.",FILE_EXCEEDS_SIZE_LIMIT:"One or more of the files that you attempted to add to the queue exceeded the limit of %fileSizeLimit.",ZERO_BYTE_FILE:"One or more of the files that you attempted to add contained no data.",INVALID_FILETYPE:"One or more files were not added to the queue because they were of the wrong type."}},events:{onFileRemoved:null},mergePolicy:{model:"preserve"}});fluid.defaults("fluid.uploader.fileQueueView.eventBinder",{gradeNames:["fluid.eventedComponent","autoInit"]});fluid.demands("fluid.uploader.fileQueueView.eventBinder",[],{});fluid.scrollable=function(element,options){var that=fluid.initView("fluid.scrollable",element,options);that.scrollable=that.options.makeScrollableFn(that.container,that.options);that.maxHeight=that.scrollable.css("max-height");that.scrollTo=function(){that.scrollable.scrollTo.apply(that.scrollable,arguments)};that.refreshView=function(){if($.browser.msie&&$.browser.version==="6.0"){that.scrollable.css("height","");if(that.scrollable.height()>=parseInt(that.maxHeight,10)){that.scrollable.css("height",that.maxHeight)}}};that.refreshView();return that};fluid.scrollable.makeSimple=function(element,options){return fluid.container(element)};fluid.scrollable.makeTable=function(table,options){table.wrap(options.wrapperMarkup);return table.closest(".fl-scrollable-scroller")};fluid.defaults("fluid.scrollable",{makeScrollableFn:fluid.scrollable.makeSimple});fluid.scrollableTable=function(table,options){options=$.extend({},fluid.defaults("fluid.scrollableTable"),options);return fluid.scrollable(table,options)};fluid.defaults("fluid.scrollableTable",{gradeNames:"fluid.viewComponent",makeScrollableFn:fluid.scrollable.makeTable,wrapperMarkup:"<div class='fl-scrollable-scroller'><div class='fl-scrollable-inner'></div></div>"});fluid.demands("fluid.scrollableTable","fluid.uploader.fileQueueView",{funcName:"fluid.scrollableTable",args:["{fileQueueView}.container"]})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.uploader=fluid.uploader||{};fluid.defaults("fluid.uploader.errorPanel",{gradeNames:["fluid.viewComponent","autoInit"],preInitFunction:"fluid.uploader.errorPanel.preInit",postInitFunction:"fluid.uploader.errorPanel.renderSectionTemplates",finalInitFunction:"fluid.uploader.errorPanel.finalInit",components:{fileSizeErrorSection:{type:"fluid.uploader.errorPanel.section",container:"{errorPanel}.dom.fileSizeErrorSection",options:{model:{errorCode:fluid.uploader.queueErrorConstants.FILE_EXCEEDS_SIZE_LIMIT},strings:{header:"{errorPanel}.options.strings.exceedsFileSize"}}},numFilesErrorSection:{type:"fluid.uploader.errorPanel.section",container:"{errorPanel}.dom.numFilesErrorSection",options:{model:{errorCode:fluid.uploader.queueErrorConstants.QUEUE_LIMIT_EXCEEDED},strings:{header:"{errorPanel}.options.strings.exceedsNumFilesLimit"}}}},selectors:{header:".flc-uploader-errorPanel-header",sectionTemplate:".flc-uploader-errorPanel-section-tmplt",fileSizeErrorSection:".flc-uploader-errorPanel-section-fileSize",numFilesErrorSection:".flc-uploader-errorPanel-section-numFiles"},strings:{headerText:"Warning(s)",exceedsNumFilesLimit:"Too many files were selected. %numFiles were not added to the queue.",exceedsFileSize:"%numFiles files were too large and were not added to the queue."},styles:{hiddenTemplate:"fl-hidden-templates"}});fluid.uploader.errorPanel.preInit=function(that){that.refreshView=function(){for(var i=0;i<that.sections.length;i++){if(that.sections[i].model.files.length>0){that.container.show();return }}that.container.hide()}};fluid.uploader.errorPanel.renderSectionTemplates=function(that){var sectionTmpl=that.locate("sectionTemplate").remove().removeClass(that.options.styles.hiddenTemplate);that.locate("fileSizeErrorSection").append(sectionTmpl.clone());that.locate("numFilesErrorSection").append(sectionTmpl.clone())};fluid.uploader.errorPanel.finalInit=function(that){that.sections=[that.fileSizeErrorSection,that.numFilesErrorSection];that.locate("header").text(that.options.strings.headerText);that.container.hide()};fluid.demands("fluid.uploader.errorPanel","fluid.uploader.multiFileUploader",{container:"{multiFileUploader}.dom.errorsPanel",options:{listeners:{"{multiFileUploader}.events.afterFileDialog":"{errorPanel}.refreshView"}}});fluid.defaults("fluid.uploader.errorPanel.section",{gradeNames:["fluid.viewComponent","autoInit"],preInitFunction:"fluid.uploader.errorPanel.section.preInit",finalInitFunction:"fluid.uploader.errorPanel.section.finalInit",model:{errorCode:undefined,files:[],showingDetails:false},events:{afterErrorsCleared:null},selectors:{errorTitle:".fl-uploader-errorPanel-section-title",deleteErrorButton:".flc-uploader-errorPanel-section-removeButton",errorDetails:".flc-uploader-errorPanel-section-details",erroredFiles:".flc-uploader-errorPanel-section-files",showHideFilesToggle:".flc-uploader-errorPanel-section-toggleDetails"},strings:{hideFiles:"Hide files",showFiles:"Show files",fileListDelimiter:", "}});fluid.uploader.errorPanel.section.preInit=function(that){that.toggleDetails=function(){var detailsAction=that.model.showingDetails?that.hideDetails:that.showDetails;detailsAction()};that.showDetails=function(){that.locate("errorDetails").show();that.locate("showHideFilesToggle").text(that.options.strings.hideFiles);that.model.showingDetails=true};that.hideDetails=function(){that.locate("errorDetails").hide();that.locate("showHideFilesToggle").text(that.options.strings.showFiles);that.model.showingDetails=false};that.addFile=function(file,errorCode){if(errorCode===that.model.errorCode){that.model.files.push(file.name);that.refreshView()}};that.clear=function(){that.model.files=[];that.refreshView();that.events.afterErrorsCleared.fire()};that.refreshView=function(){fluid.uploader.errorPanel.section.renderHeader(that);fluid.uploader.errorPanel.section.renderErrorDetails(that);that.hideDetails();if(that.model.files.length<=0){that.container.hide()}else{that.container.show()}}};fluid.uploader.errorPanel.section.finalInit=function(that){that.locate("deleteErrorButton").click(that.clear);that.locate("showHideFilesToggle").click(that.toggleDetails);that.refreshView()};fluid.uploader.errorPanel.section.renderHeader=function(that){var errorTitle=fluid.stringTemplate(that.options.strings.header,{numFiles:that.model.files.length});that.locate("errorTitle").text(errorTitle)};fluid.uploader.errorPanel.section.renderErrorDetails=function(that){var files=that.model.files;var filesList=files.length>0?files.join(that.options.strings.fileListDelimiter):"";that.locate("erroredFiles").text(filesList)};fluid.demands("fluid.uploader.errorPanel.section",["fluid.uploader.errorPanel","fluid.uploader.multiFileUploader"],{options:{listeners:{"{multiFileUploader}.events.onQueueError":"{section}.addFile","{multiFileUploader}.events.onFilesSelected":"{section}.clear","{multiFileUploader}.events.onUploadStart":"{section}.clear","{section}.events.afterErrorsCleared":"{errorPanel}.refreshView"}}})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.uploader=fluid.uploader||{};fluid.demands("fluid.uploaderImpl","fluid.uploader.swfUpload",{funcName:"fluid.uploader.multiFileUploader"});fluid.uploader.swfUploadStrategy=function(options){var that=fluid.initLittleComponent("fluid.uploader.swfUploadStrategy",options);fluid.initDependents(that);return that};fluid.defaults("fluid.uploader.swfUploadStrategy",{components:{engine:{type:"fluid.uploader.swfUploadStrategy.engine",options:{queueSettings:"{multiFileUploader}.options.queueSettings",flashMovieSettings:"{swfUploadStrategy}.options.flashMovieSettings"}},local:{type:"fluid.uploader.local",options:{errorHandler:"{multiFileUploader}.dom.errorHandler"}},remote:{type:"fluid.uploader.remote"}},flashMovieSettings:{flashURL:"../../../lib/swfupload/flash/swfupload.swf",flashButtonPeerId:"",flashButtonAlwaysVisible:false,flashButtonTransparentEvenInIE:true,flashButtonImageURL:"../images/browse.png",flashButtonCursorEffect:SWFUpload.CURSOR.HAND,debug:false},styles:{browseButtonOverlay:"fl-uploader-browse-overlay",flash9Container:"fl-uploader-flash9-container",uploaderWrapperFlash10:"fl-uploader-flash10-wrapper"}});fluid.demands("fluid.uploader.progressiveStrategy","fluid.uploader.swfUpload",{funcName:"fluid.uploader.swfUploadStrategy"});fluid.uploader.swfUploadStrategy.remote=function(swfUpload,queue,options){var that=fluid.initLittleComponent("fluid.uploader.swfUploadStrategy.remote",options);that.swfUpload=swfUpload;that.queue=queue;that.uploadNextFile=function(){that.swfUpload.startUpload()};that.stop=function(){that.queue.shouldStop=true};return that};fluid.demands("fluid.uploader.remote","fluid.uploader.swfUploadStrategy",{funcName:"fluid.uploader.swfUploadStrategy.remote",args:["{engine}.swfUpload","{multiFileUploader}.queue","{options}"]});fluid.uploader.swfUploadStrategy.local=function(swfUpload,options){var that=fluid.initLittleComponent("fluid.uploader.swfUploadStrategy.local",options);that.swfUpload=swfUpload;that.browse=function(){if(that.options.file_queue_limit===1){that.swfUpload.selectFile()}else{that.swfUpload.selectFiles()}};that.removeFile=function(file){that.swfUpload.cancelUpload(file.id)};that.enableBrowseButton=function(){that.swfUpload.setButtonDisabled(false)};that.disableBrowseButton=function(){that.swfUpload.setButtonDisabled(true)};return that};fluid.demands("fluid.uploader.local","fluid.uploader.swfUploadStrategy",{funcName:"fluid.uploader.swfUploadStrategy.local",args:["{engine}.swfUpload","{options}"]});fluid.uploader.swfUploadStrategy.engine=function(options){var that=fluid.initLittleComponent("fluid.uploader.swfUploadStrategy.engine",options);var flashVersion=swfobject.getFlashPlayerVersion().major;that.flashVersionContext=fluid.typeTag("fluid.uploader.flash."+flashVersion);that.config=$.extend({},that.options.queueSettings,that.options.flashMovieSettings);fluid.initDependents(that);that.flashContainer=that.setupDOM();that.swfUploadConfig=that.setupConfig();that.swfUpload=new SWFUpload(that.swfUploadConfig);that.bindEvents();return that};fluid.defaults("fluid.uploader.swfUploadStrategy.engine",{invokers:{setupDOM:"fluid.uploader.swfUploadStrategy.setupDOM",setupConfig:"fluid.uploader.swfUploadStrategy.setupConfig",bindEvents:"fluid.uploader.swfUploadStrategy.eventBinder"}});fluid.demands("fluid.uploader.swfUploadStrategy.engine","fluid.uploader.swfUploadStrategy",{funcName:"fluid.uploader.swfUploadStrategy.engine",args:[fluid.COMPONENT_OPTIONS]});fluid.uploader.swfUploadStrategy.fileTypeTransformer=function(model,expandSpec){var fileExts="";var mimeTypes=fluid.get(model,expandSpec.path);var mimeTypesMap=fluid.uploader.mimeTypeRegistry;if(!mimeTypes){return"*"}else{if(typeof (mimeTypes)==="string"){return mimeTypes}}fluid.each(mimeTypes,function(mimeType){fluid.each(mimeTypesMap,function(mimeTypeForExt,ext){if(mimeTypeForExt===mimeType){fileExts+="*."+ext+";"}})});return fileExts.length===0?"*":fileExts.substring(0,fileExts.length-1)};fluid.uploader.swfUploadStrategy.flash10SetupDOM=function(uploaderContainer,browseButton,progressBar,styles){uploaderContainer.wrap("<div class='"+styles.uploaderWrapperFlash10+"'></div>");var flashContainer=$("<div><span></span></div>");flashContainer.addClass(styles.browseButtonOverlay);uploaderContainer.after(flashContainer);progressBar.append(flashContainer);browseButton.attr("tabindex",-1);return flashContainer};fluid.demands("fluid.uploader.swfUploadStrategy.setupDOM",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.10"],{funcName:"fluid.uploader.swfUploadStrategy.flash10SetupDOM",args:["{multiFileUploader}.container","{multiFileUploader}.dom.browseButton","{totalProgress}.dom.progressBar","{swfUploadStrategy}.options.styles"]});var swfUploadOptionsMap={uploadURL:"upload_url",flashURL:"flash_url",postParams:"post_params",fileSizeLimit:"file_size_limit",fileTypes:"file_types",fileUploadLimit:"file_upload_limit",fileQueueLimit:"file_queue_limit",flashButtonPeerId:"button_placeholder_id",flashButtonImageURL:"button_image_url",flashButtonHeight:"button_height",flashButtonWidth:"button_width",flashButtonWindowMode:"button_window_mode",flashButtonCursorEffect:"button_cursor",debug:"debug"};var swfUploadEventMap={afterReady:"swfupload_loaded_handler",onFileDialog:"file_dialog_start_handler",onFileQueued:"file_queued_handler",onQueueError:"file_queue_error_handler",afterFileDialog:"file_dialog_complete_handler",onFileStart:"upload_start_handler",onFileProgress:"upload_progress_handler",onFileComplete:"upload_complete_handler",onFileError:"upload_error_handler",onFileSuccess:"upload_success_handler"};var mapNames=function(nameMap,source,target){var result=target||{};for(var key in source){var mappedKey=nameMap[key];if(mappedKey){result[mappedKey]=source[key]}}return result};var mapSWFUploadEvents=function(nameMap,events,target){var result=target||{};for(var eventType in events){var fireFn=events[eventType].fire;var mappedName=nameMap[eventType];if(mappedName){result[mappedName]=fireFn}}return result};fluid.uploader.swfUploadStrategy.convertConfigForSWFUpload=function(flashContainer,config,events,queueSettings){config.flashButtonPeerId=fluid.allocateSimpleId(flashContainer.children().eq(0));config.fileTypes=fluid.uploader.swfUploadStrategy.fileTypeTransformer(queueSettings,{path:"fileTypes"});var convertedConfig=mapNames(swfUploadOptionsMap,config);convertedConfig.file_upload_limit=0;convertedConfig.file_size_limit=0;return mapSWFUploadEvents(swfUploadEventMap,events,convertedConfig)};fluid.uploader.swfUploadStrategy.flash10SetupConfig=function(config,events,flashContainer,browseButton,queueSettings){var isTransparent=config.flashButtonAlwaysVisible?false:(!$.browser.msie||config.flashButtonTransparentEvenInIE);config.flashButtonImageURL=isTransparent?undefined:config.flashButtonImageURL;config.flashButtonHeight=config.flashButtonHeight||browseButton.outerHeight();config.flashButtonWidth=config.flashButtonWidth||browseButton.outerWidth();config.flashButtonWindowMode=isTransparent?SWFUpload.WINDOW_MODE.TRANSPARENT:SWFUpload.WINDOW_MODE.OPAQUE;return fluid.uploader.swfUploadStrategy.convertConfigForSWFUpload(flashContainer,config,events,queueSettings)};fluid.demands("fluid.uploader.swfUploadStrategy.setupConfig",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.10"],{funcName:"fluid.uploader.swfUploadStrategy.flash10SetupConfig",args:["{engine}.config","{multiFileUploader}.events","{engine}.flashContainer","{multiFileUploader}.dom.browseButton","{multiFileUploader}.options.queueSettings"]});var unbindSWFUploadSelectFiles=function(){var emptyFunction=function(){};SWFUpload.prototype.selectFile=emptyFunction;SWFUpload.prototype.selectFiles=emptyFunction};fluid.uploader.swfUploadStrategy.bindFileEventListeners=function(model,events){var manualModelUpdater=function(file){fluid.find(model,function(potentialMatch){if(potentialMatch.id===file.id){potentialMatch.filestatus=file.filestatus;return true}})};events.onFileStart.addListener(manualModelUpdater);events.onFileProgress.addListener(manualModelUpdater);events.onFileError.addListener(manualModelUpdater);events.onFileSuccess.addListener(manualModelUpdater)};var filterErroredFiles=function(file,events,queue,queueSettings){var fileSizeLimit=queueSettings.fileSizeLimit*1000;var fileUploadLimit=queueSettings.fileUploadLimit;var processedFiles=queue.getReadyFiles().length+queue.getUploadedFiles().length;if(file.size>fileSizeLimit){file.filestatus=fluid.uploader.fileStatusConstants.ERROR;events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.FILE_EXCEEDS_SIZE_LIMIT)}else{if(processedFiles>=fileUploadLimit){events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.QUEUE_LIMIT_EXCEEDED)}else{events.afterFileQueued.fire(file)}}};fluid.uploader.swfUploadStrategy.flash10EventBinder=function(queue,queueSettings,events){var model=queue.files;unbindSWFUploadSelectFiles();events.onFileQueued.addListener(function(file){filterErroredFiles(file,events,queue,queueSettings)});fluid.uploader.swfUploadStrategy.bindFileEventListeners(model,events)};fluid.demands("fluid.uploader.swfUploadStrategy.eventBinder",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.10"],{funcName:"fluid.uploader.swfUploadStrategy.flash10EventBinder",args:["{multiFileUploader}.queue","{multiFileUploader}.queue.files","{multiFileUploader}.events"]})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.uploader.swfUploadStrategy");fluid.uploader.swfUploadStrategy.flash9SetupDOM=function(styles){var container=$("<div><span></span></div>");container.addClass(styles.flash9Container);$("body").append(container);return container};fluid.demands("fluid.uploader.swfUploadStrategy.setupDOM",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.9"],{funcName:"fluid.uploader.swfUploadStrategy.flash9SetupDOM",args:["{swfUploadStrategy}.options.styles"]});fluid.uploader.swfUploadStrategy.flash9SetupConfig=function(flashContainer,config,events){return fluid.uploader.swfUploadStrategy.convertConfigForSWFUpload(flashContainer,config,events)};fluid.demands("fluid.uploader.swfUploadStrategy.setupConfig",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.9"],{funcName:"fluid.uploader.swfUploadStrategy.flash9SetupConfig",args:["{engine}.flashContainer","{engine}.config","{multiFileUploader}.events"]});fluid.uploader.swfUploadStrategy.flash9EventBinder=function(model,events,local,browseButton){browseButton.click(function(e){local.browse();e.preventDefault()});fluid.uploader.swfUploadStrategy.bindFileEventListeners(model,events)};fluid.demands("fluid.uploader.swfUploadStrategy.eventBinder",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.9"],{funcName:"fluid.uploader.swfUploadStrategy.flash9EventBinder",args:["{multiFileUploader}.queue.files","{multiFileUploader}.events","{local}","{multiFileUploader}.dom.browseButton"]})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.demands("fluid.uploaderImpl","fluid.uploader.html5",{funcName:"fluid.uploader.multiFileUploader"});fluid.demands("fluid.uploader.progressiveStrategy","fluid.uploader.html5",{funcName:"fluid.uploader.html5Strategy"});fluid.defaults("fluid.uploader.html5Strategy",{gradeNames:["fluid.littleComponent","autoInit"],components:{local:{type:"fluid.uploader.local",options:{queueSettings:"{multiFileUploader}.options.queueSettings",events:{onFileDialog:"{multiFileUploader}.events.onFileDialog",onFilesSelected:"{multiFileUploader}.events.onFilesSelected",afterFileDialog:"{multiFileUploader}.events.afterFileDialog",afterFileQueued:"{multiFileUploader}.events.afterFileQueued",onQueueError:"{multiFileUploader}.events.onQueueError"}}},remote:{type:"fluid.uploader.remote",options:{queueSettings:"{multiFileUploader}.options.queueSettings",events:{afterReady:"{multiFileUploader}.events.afterReady",onFileStart:"{multiFileUploader}.events.onFileStart",onFileProgress:"{multiFileUploader}.events.onFileProgress",onFileSuccess:"{multiFileUploader}.events.onFileSuccess",onFileError:"{multiFileUploader}.events.onFileError",onFileComplete:"{multiFileUploader}.events.onFileComplete"}}}},legacyBrowserFileLimit:100000});fluid.uploader.html5Strategy.fileSuccessHandler=function(file,events,xhr){events.onFileSuccess.fire(file,xhr.responseText,xhr);events.onFileComplete.fire(file)};fluid.uploader.html5Strategy.fileErrorHandler=function(file,events,xhr){events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_FAILED,xhr.status,xhr);events.onFileComplete.fire(file)};fluid.uploader.html5Strategy.fileStopHandler=function(file,events,xhr){events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_STOPPED,xhr.status,xhr);events.onFileComplete.fire(file)};fluid.uploader.html5Strategy.progressTracker=function(){var that={previousBytesLoaded:0};that.getChunkSize=function(bytesLoaded){var chunkSize=bytesLoaded-that.previousBytesLoaded;that.previousBytesLoaded=bytesLoaded;return chunkSize};return that};fluid.uploader.html5Strategy.monitorFileUploadXHR=function(file,events,xhr){xhr.onreadystatechange=function(){if(xhr.readyState===4){var status=xhr.status;if(status===200){fluid.uploader.html5Strategy.fileSuccessHandler(file,events,xhr)}else{if(status===0){fluid.uploader.html5Strategy.fileStopHandler(file,events,xhr)}else{fluid.uploader.html5Strategy.fileErrorHandler(file,events,xhr)}}}};var progressTracker=fluid.uploader.html5Strategy.progressTracker();xhr.upload.onprogress=function(pe){events.onFileProgress.fire(file,progressTracker.getChunkSize(pe.loaded),pe.total)}};fluid.uploader.html5Strategy.remote=function(queue,options){var that=fluid.initLittleComponent("fluid.uploader.html5Strategy.remote",options);that.queue=queue;that.queueSettings=that.options.queueSettings;that.uploadNextFile=function(){var batch=that.queue.currentBatch;var file=batch.files[batch.fileIdx];that.uploadFile(file)};that.uploadFile=function(file){that.events.onFileStart.fire(file);that.currentXHR=that.createXHR();fluid.uploader.html5Strategy.monitorFileUploadXHR(file,that.events,that.currentXHR);that.fileSender.send(file,that.queueSettings,that.currentXHR)};that.stop=function(){that.queue.isUploading=false;that.currentXHR.abort()};fluid.initDependents(that);that.events.afterReady.fire();return that};fluid.defaults("fluid.uploader.html5Strategy.remote",{gradeNames:["fluid.eventedComponent"],argumentMap:{options:1},components:{fileSender:{type:"fluid.uploader.html5Strategy.fileSender"}},invokers:{createXHR:"fluid.uploader.html5Strategy.createXHR"}});fluid.demands("fluid.uploader.remote",["fluid.uploader.html5Strategy","fluid.uploader.live"],{funcName:"fluid.uploader.html5Strategy.remote",args:["{multiFileUploader}.queue",fluid.COMPONENT_OPTIONS]});fluid.uploader.html5Strategy.createXHR=function(){return new XMLHttpRequest()};fluid.uploader.html5Strategy.createFormData=function(){return new FormData()};var setPostParams=function(formData,postParams){$.each(postParams,function(key,value){formData.append(key,value)})};fluid.defaults("fluid.uploader.html5Strategy.formDataSender",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.uploader.html5Strategy.formDataSender.init",invokers:{createFormData:"fluid.uploader.html5Strategy.createFormData"}});fluid.uploader.html5Strategy.formDataSender.init=function(that){that.send=function(file,queueSettings,xhr){var formData=that.createFormData();formData.append("file",file);setPostParams(formData,queueSettings.postParams);xhr.open("POST",queueSettings.uploadURL,true);xhr.send(formData);return formData}};fluid.demands("fluid.uploader.html5Strategy.fileSender",["fluid.uploader.html5Strategy.remote","fluid.browser.supportsFormData"],{funcName:"fluid.uploader.html5Strategy.formDataSender"});fluid.uploader.html5Strategy.generateMultipartBoundary=function(){var boundary="---------------------------";boundary+=Math.floor(Math.random()*32768);boundary+=Math.floor(Math.random()*32768);boundary+=Math.floor(Math.random()*32768);return boundary};fluid.uploader.html5Strategy.generateMultiPartContent=function(boundary,file){var CRLF="\r\n";var multipart="";multipart+="--"+boundary+CRLF;multipart+='Content-Disposition: form-data; name="fileData"; filename="'+file.name+'"'+CRLF;multipart+="Content-Type: "+file.type+CRLF+CRLF;multipart+=file.getAsBinary();multipart+=CRLF+"--"+boundary+"--"+CRLF;return multipart};fluid.defaults("fluid.uploader.html5Strategy.rawMIMESender",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.uploader.html5Strategy.rawMIMESender.init"});fluid.uploader.html5Strategy.rawMIMESender.init=function(that){that.send=function(file,queueSettings,xhr){var boundary=fluid.uploader.html5Strategy.generateMultipartBoundary();var multipart=fluid.uploader.html5Strategy.generateMultiPartContent(boundary,file);xhr.open("POST",queueSettings.uploadURL,true);xhr.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);xhr.sendAsBinary(multipart);return multipart}};fluid.demands("fluid.uploader.html5Strategy.fileSender","fluid.uploader.html5Strategy.remote",{funcName:"fluid.uploader.html5Strategy.rawMIMESender"});fluid.uploader.html5Strategy.local=function(queue,legacyBrowserFileLimit,options){var that=fluid.initLittleComponent("fluid.uploader.html5Strategy.local",options);that.queue=queue;that.queueSettings=that.options.queueSettings;that.addFiles=function(files){var sizeLimit=(legacyBrowserFileLimit||that.queueSettings.fileSizeLimit)*1024;var fileLimit=that.queueSettings.fileUploadLimit;var uploaded=that.queue.getUploadedFiles().length;var queued=that.queue.getReadyFiles().length;var remainingUploadLimit=fileLimit-uploaded-queued;that.events.onFilesSelected.fire(files.length);var numFilesAdded=0;for(var i=0;i<files.length;i++){var file=files[i];if(fileLimit&&remainingUploadLimit===0){that.events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.QUEUE_LIMIT_EXCEEDED)}else{if(file.size>=sizeLimit){file.filestatus=fluid.uploader.fileStatusConstants.ERROR;that.events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.FILE_EXCEEDS_SIZE_LIMIT)}else{if(!fileLimit||remainingUploadLimit>0){file.id="file-"+fluid.allocateGuid();file.filestatus=fluid.uploader.fileStatusConstants.QUEUED;that.events.afterFileQueued.fire(file);remainingUploadLimit--;numFilesAdded++}}}}that.events.afterFileDialog.fire(numFilesAdded)};that.removeFile=function(file){};that.enableBrowseButton=function(){that.browseButtonView.enable()};that.disableBrowseButton=function(){that.browseButtonView.disable()};fluid.initDependents(that);return that};fluid.defaults("fluid.uploader.html5Strategy.local",{argumentMap:{options:2},gradeNames:["fluid.eventedComponent"],components:{browseButtonView:{type:"fluid.uploader.html5Strategy.browseButtonView",options:{queueSettings:"{multiFileUploader}.options.queueSettings",selectors:{browseButton:"{multiFileUploader}.selectors.browseButton"},listeners:{onFilesQueued:"{local}.addFiles"}}}}});fluid.demands("fluid.uploader.local","fluid.uploader.html5Strategy",{funcName:"fluid.uploader.html5Strategy.local",args:["{multiFileUploader}.queue","{html5Strategy}.options.legacyBrowserFileLimit","{options}"]});fluid.demands("fluid.uploader.local",["fluid.uploader.html5Strategy","fluid.browser.supportsFormData"],{funcName:"fluid.uploader.html5Strategy.local",args:["{multiFileUploader}.queue",undefined,"{options}"]});var bindEventsToFileInput=function(that,fileInput){fileInput.click(function(){that.events.onBrowse.fire()});fileInput.change(function(){var files=fileInput[0].files;that.renderFreshMultiFileInput();that.events.onFilesQueued.fire(files)});fileInput.focus(function(){that.browseButton.addClass("focus")});fileInput.blur(function(){that.browseButton.removeClass("focus")})};var renderMultiFileInput=function(that){var multiFileInput=$(that.options.multiFileInputMarkup);var fileTypes=that.options.queueSettings.fileTypes;if(fluid.isArrayable(fileTypes)){fileTypes=fileTypes.join();multiFileInput.attr("accept",fileTypes)}bindEventsToFileInput(that,multiFileInput);return multiFileInput};var setupBrowseButtonView=function(that){var multiFileInput=renderMultiFileInput(that);that.browseButton.append(multiFileInput);that.browseButton.attr("tabindex",-1)};fluid.uploader.html5Strategy.browseButtonView=function(container,options){var that=fluid.initView("fluid.uploader.html5Strategy.browseButtonView",container,options);that.browseButton=that.locate("browseButton");that.renderFreshMultiFileInput=function(){var previousInput=that.locate("fileInputs").last();previousInput.hide();previousInput.attr("tabindex",-1);var newInput=renderMultiFileInput(that);previousInput.after(newInput)};that.enable=function(){that.locate("fileInputs").prop("disabled",false)};that.disable=function(){that.locate("fileInputs").prop("disabled",true)};setupBrowseButtonView(that);return that};fluid.defaults("fluid.uploader.html5Strategy.browseButtonView",{gradeNames:"fluid.viewComponent",multiFileInputMarkup:"<input type='file' multiple='' class='flc-uploader-html5-input' />",queueSettings:{},selectors:{browseButton:".flc-uploader-button-browse",fileInputs:".flc-uploader-html5-input"},events:{onBrowse:null,onFilesQueued:null}});fluid.demands("fluid.uploader.html5Strategy.browseButtonView","fluid.uploader.html5Strategy.local",{container:"{multiFileUploader}.container",mergeOptions:{events:{onBrowse:"{local}.events.onFileDialog"}}})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.uploader=fluid.uploader||{};var startUploading;var updateProgress=function(file,events,demoState,isUploading){if(!isUploading){return }var chunk=Math.min(demoState.chunkSize,file.size);demoState.bytesUploaded=Math.min(demoState.bytesUploaded+chunk,file.size);events.onFileProgress.fire(file,demoState.bytesUploaded,file.size)};var finishAndContinueOrCleanup=function(that,file){that.queue.finishFile(file);that.events.afterFileComplete.fire(file);if(that.queue.shouldUploadNextFile()){startUploading(that)}else{that.events.afterUploadComplete.fire(that.queue.currentBatch.files);if(file.status!==fluid.uploader.fileStatusConstants.CANCELLED){that.queue.clearCurrentBatch()}}};var finishUploading=function(that){if(!that.queue.isUploading){return }var file=that.demoState.currentFile;that.events.onFileSuccess.fire(file);that.demoState.fileIdx++;finishAndContinueOrCleanup(that,file)};var simulateUpload=function(that){if(!that.queue.isUploading){return }var file=that.demoState.currentFile;if(that.demoState.bytesUploaded<file.size){fluid.invokeAfterRandomDelay(function(){updateProgress(file,that.events,that.demoState,that.queue.isUploading);simulateUpload(that)})}else{finishUploading(that)}};startUploading=function(that){that.demoState.currentFile=that.queue.files[that.demoState.fileIdx];that.demoState.chunksForCurrentFile=Math.ceil(that.demoState.currentFile/that.demoState.chunkSize);that.demoState.bytesUploaded=0;that.queue.isUploading=true;that.events.onFileStart.fire(that.demoState.currentFile);simulateUpload(that)};var stopDemo=function(that){var file=that.demoState.currentFile;file.filestatus=fluid.uploader.fileStatusConstants.CANCELLED;that.queue.shouldStop=true;that.events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_STOPPED,"The demo upload was paused by the user.");finishAndContinueOrCleanup(that,file);that.events.onUploadStop.fire()};var setupDemo=function(that){if(that.simulateDelay===undefined||that.simulateDelay===null){that.simulateDelay=true}that.demoState={fileIdx:0,chunkSize:200000};return that};fluid.uploader.demoRemote=function(queue,options){var that=fluid.initLittleComponent("fluid.uploader.demoRemote",options);that.queue=queue;that.uploadNextFile=function(){startUploading(that)};that.stop=function(){stopDemo(that)};setupDemo(that);return that};fluid.invokeAfterRandomDelay=function(fn){var delay=Math.floor(Math.random()*1000+100);setTimeout(fn,delay)};fluid.defaults("fluid.uploader.demoRemote",{gradeNames:["fluid.eventedComponent"],argumentMap:{options:1},events:{onFileProgress:"{multiFileUploader}.events.onFileProgress",afterFileComplete:"{multiFileUploader}.events.afterFileComplete",afterUploadComplete:"{multiFileUploader}.events.afterUploadComplete",onFileSuccess:"{multiFileUploader}.events.onFileSuccess",onFileStart:"{multiFileUploader}.events.onFileStart",onFileError:"{multiFileUploader}.events.onFileError",onUploadStop:"{multiFileUploader}.events.onUploadStop"}});fluid.demands("fluid.uploader.remote",["fluid.uploader.multiFileUploader","fluid.uploader.demo"],{funcName:"fluid.uploader.demoRemote",args:["{multiFileUploader}.queue","{multiFileUploader}.events",fluid.COMPONENT_OPTIONS]})})(jQuery,fluid_1_4);var fluid_1_4=fluid_1_4||{};(function(fluid){fluid.uploader=fluid.uploader||{};fluid.uploader.mimeTypeRegistry={jpg:"image/jpeg",jpeg:"image/jpeg",bmp:"image/bmp",png:"image/png",tif:"image/tiff",tiff:"image/tiff",mp3:"audio/mpeg",m4a:"audio/mp4a-latm",ogg:"audio/ogg",wav:"audio/x-wav",aiff:"audio/x-aiff",mpg:"video/mpeg",mpeg:"video/mpeg",m4v:"video/x-m4v",ogv:"video/ogg",mov:"video/quicktime",avi:"video/x-msvideo",html:"text/html",htm:"text/html",text:"text/plain",doc:"application/msword",docx:"application/msword",xls:"application/vnd.ms-excel",xlsx:"application/vnd.ms-excel",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.ms-powerpoint"}})(fluid_1_4);
\ No newline at end of file
index d289047..6d93fbc 100644 (file)
-Fluid Infusion 1.1
-==================
-Main Project Site:  http://fluidproject.org
-Documentation:      http://wiki.fluidproject.org/display/fluid/Infusion+Documentation
 
-What's New in 1.1
+What Is Infusion?
 =================
+Infusion is a different kind of JavaScript framework. Our approach is to leave you in control-- 
+it's your interface, using your markup, your way. Infusion is accessible and very, very configurable.
 
-This release:
+Infusion includes:
+    * an application framework for developing flexible stuff with JavaScript and jQuery
+    * a collection of accessible UI components
+    * a lightweight CSS framework
 
-    * Updates our supported browsers to include the latest from Yahoo's A-grade browser list
-      * see http://wiki.fluidproject.org/display/fluid/Browser+Support
-    * Provides the ability to create custom builds:
-      * see http://wiki.fluidproject.org/display/fluid/Custom+Build
-    * Adds jQuery UI Themes for working with FSS themes
-    * Adds new and powerful decorators for the Renderer:
-      * The "fluid" decorator instantiates any Fluid Infusion component bound to the markup
-      * New support for removing arbitrary attributes and CSS classes
-    * Updates the Pager:
-      * Improved handing of column sorting
-      * Fixed persistence of focus
-    * Updates the Uploader:
-      * User can manually switch to the standard non-Flash http file uploader
-      * Uploader Browse button now respects DOM z-index in Flash 10
-    * Updates the User Interface Options:
-      * Better cross browser support
-      * Better keyboard and screen reader accessibility
-    * Changes some class names in the FSS and components:
-         * see http://wiki.fluidproject.org/display/fluid/Upgrading+to+Infusion+1.1
-       * Changes some Framework API:
-         * see http://wiki.fluidproject.org/display/fluid/Upgrading+to+Infusion+1.1
-    * Fixes many bugs
 
-What's in this Release
-======================
-
-This release is available in two forms:
-    Deployment Bundle - infusion-1.1.zip 
-    Source Code Bundle - infusion-1.1-src.zip
-
-In addition to source code, samples and tests, both bundles include at the top level a single JavaScript file
-
-    InfusionAll.js
-
-that is a combination of all other source files. Developers can include this single file in their
-pages to provide all the necessary support for the Infusion component Library. In the Deployment Bundle,
-this script is compressed and suitable for production use.
-
-The Deployment Bundle also includes a WAR file suitable for deployment in Java-based containers: 
-        fluid-components-1.1.war
-
-Source Code
------------
-The organization of the full source code for the Infusion library is as follows:
-
-        components/
-             inlineEdit/
-             pager/
-             progress/
-             reorderer/
-             tableOfContents/
-             uiOptions/
-             undo/
-             uploader/
-        framework/
-             core/
-             fss/
-             renderer/
-        lib/
-             fastXmlPull/
-             jquery/
-             json/
-             swfobject/
-             swfupload/
-
-In the Deployment Bundle, the JavaScript source has been minified: comments and whitespace have
-been removed. 
-
-Developers wishing to learn about the Fluid Infusion code, or debug their applications, should use
-the Source Code Bundle.
-
-Examples and Sample Code
-------------------------
-Sample code illustrating how Infusion components can be used:
-
-        integration-demos/
-             bspace/    (showcases: Inline Edit)
-             sakai/     (showcases: Inline Edit, Pager, UI Options, FSS)
-             uportal/   (showcases: Reorderer, UI Options, FSS)
-        standalone-demos/
-             keyboard-a11y/
-             lib/
-             pager/
-             progress/
-             quick-start-examples/
-                  fss/
-                  inlineEdit/
-                  reorderer/
-             renderer/
-             reorderer/
-             table-of-contents/
-
-Tests
------
-        tests/
-            component-tests/
-            escalated-tests/
-            framework-tests/
-            lib/
-            manual-tests/
-            test-core/
-
-License
--------
-Fluid Infusion code is licensed under a dual ECL 2.0 / BSD license. The specific licenses can be
-found in the license file:
-        licenses/Infusion-LICENSE.txt
-
-Infusion also depends upon some third party open source modules. These are contained in their own
-folders, and their licenses are also present in
-        licenses/
-
-Third Party Software in Infusion
---------------------------------
-This is a list of publicly available software that is included in the Fluid Infusion bundle, along
-with their licensing terms.
-
-    * jQuery javascript library v1.3.2: http://jquery.com/ (MIT and GPL licensed http://docs.jquery.com/Licensing)
-    * jQuery UI javascript widget library v1.7: http://ui.jquery.com/ (MIT and GPL licensed http://docs.jquery.com/Licensing)
-    * jQuery QUnit testrunner r6173: http://docs.jquery.com/QUnit (MIT and GPL licensed http://docs.jquery.com/Licensing)
-    * Douglas Crockford's JSON parsing and stringifying methods (from 2007-11-06): http://www.json.org/ (Public Domain)
-    * SWFUpload v2.2.0.1: http://swfupload.org/ (MIT licensed http://www.opensource.org/licenses/mit-license.php)
-    * SWFObject v2.1: http://code.google.com/p/swfobject/ (MIT licensed http://www.opensource.org/licenses/mit-license.php)
-    * Sample markup and stylesheets from Sakai v2.5 (http://sakaiproject.org) and uPortal v2.6 (http://www.uportal.org/)
-    * FCKeditor v2.6, HTML text editor (LGPL licensed http://www.fckeditor.net/license)
-    
-Other third party software
+Where Can I See Infusion Components?
+====================================
 
-    * fastXmlPull is based on XML for Script's Fast Pull Parser v3.1
-      (see: http://wiki.fluidproject.org/display/fluid/Licensing+for+fastXmlPull.js )
-    * fluid.reset.css is based on YUI's CSS reset styling v2.5.2
-      see: http://developer.yahoo.com/yui/reset/ (BSD licensed http://developer.yahoo.com/yui/license.html)
-    
-Readme
-------
-This file.
-        README.txt
+    http://fluidproject.org/products/infusion/infusion-demos/
 
 
-Documentation
-=============
-
-    http://wiki.fluidproject.org/display/fluid/Infusion+Documentation
-
-The Fluid Project uses a wiki for documentation and project collaboration: http://wiki.fluidproject.org.
-
-The documentation for Infusion consists of a number of information pages stored in the Fluid Wiki.
-The pages include tutorials, API descriptions, testing procedures, and data-gathering approaches. To make the 
-manual pages easy to navigate we have added the following guides:
-
-    * A landing page is provided for the reader, with links to all of our documenation.
-    * A link to the documentation appears at the top of the left-side wiki navigation
-      bar with the name "Infusion Documentation".
-
-
-Supported Browsers
-==================
-Firefox 2.x, 3.x: full support
-Internet Explorer 6.x, 7.x: full support
-Safari 3.1, Opera 9.6: full support (except keyboard interaction, which is not supported by these browsers)
-
-Internet Explorer 8: preliminary support
-
-For more information on Fluid Infusion browser support, please see:
-    http://wiki.fluidproject.org/display/fluid/Browser+Support
-
-
-Status of Components and Framework Features
-===========================================
-
-Production: supports A-Grade browsers, stable for production usage across a wide range of
-applications and use cases
-    * Fluid Skinning System 
-    * Infusion Framework Core
-    * Inline Edit: Simple Text
-    * Reorderer: List, Grid, Layout, Image
-    * Undo
-
-Preview: still growing, but with broad browser support. Expect new features in upcoming releases
-    * Pager
-    * Progress
-    * UI Options
-    * Uploader
-    * Renderer
-
-Sneak Peek: in development; APIs will change. Share your feedback, ideas, and code
-    * Inline Edit: Dropdown
-    * Inline Edit: Rich Text
-    * Table of Contents
-
-
-Known Issues
-============
+How Do I Get Infusion?
+======================
 
-The Fluid Project uses a JIRA website to track bugs: http://issues.fluidproject.org.
-Some of the known issues in this release are described here:
+You can create your own custom build of Infusion using the Infusion Builder:
 
-FSS:
-    FLUID-2504: Flexible columns don't maintain proper alignment under certain conditions
-    FLUID-2434: In IE, major font size changes break text positioning within form controls
-    FLUID-2397: Opera doesn't seem to repaint certain css changes on the fly, requiring a refresh to see them
+    http://builder.fluidproject.org
 
-Framework:
-    FLUID-2577 Renderer performance can be slow on IE 6 and 7 in some contexts.
+Who Makes Infusion, and How Can I Help?
+=======================================
 
-Inline Edit: 
-    FLUID-1600 Pressing the "Tab" key to exit edit mode places focus on the wrong item
-    FLUID-2536 Inline Edit test fails using IE 8
-  
-Uploader: 
-    FLUID-2582 Uploader is dependent on ProgressiveEnhancement.js, which is not included in InfusionAll.js
-    FLUID-2895 The browse files button displays as a white box in IE 7 when running off the local system in Flash 10
-    FLUID-2052 Cannot tab away from the "Browse Files" button with Flash 10; using FF3*
-    FLUID-2032 Cannot Tab to the 'Browse More" button with Flash 10, using FF2*
-    * For information related to known issues with Flash 10 compatibility, 
-      see http://wiki.fluidproject.org/x/kwZo
+The Fluid community is an international group of designers, developers, and testers who focus on a 
+common mission: improving the user experience and accessibility of the open web.
 
-Layout Reorderer: 
-    FLUID-1540 Can't use keyboard reordering to move a nested reorderer to the right column, using IE6
-    FLUID-2171 In IE, can't reorderer portlets containing Google components
-    FLUID-858  Portlet Columns load with no padding between them in IE7
+The best way to join the Fluid Community is to jump in to any of our community activities.
+Visit our "Get Involved" page for links to our mailing lists, chat room, wiki, etc.:
 
-Pager:
-    FLUID-2880 The Pager will be refactored. Note that as a result of this, there will be significant changes to the Pager API
-    FLUID-2329 The self-rendering mode of the Pager is not the default mode
+    http://fluidproject.org/getinvolved/
 
-Reorderer: 
-    FLUID-539 Can't use the "Tab" key to navigate out of reorderable tabs
-    FLUID-148 Edge case: visual position of drop target when droppable is at beginning or end of a row
-    FLUID-118 Dragging an image offscreen or out of the frame has some unexpected results.
 
-UI Options: 
-    FLUID-2398 Minimum font size control changes the text size even when the base size is larger then the minimum.
-    FLUID-2481 "Links" selection does not work correctly in UIOptions
-    FLUID-2506 Keyboard navigation inside the dialog breaks in simple layout mode: using FF
-    FLUID-2524 scrolling the screen while the UI Options dialog is open, will cause it's contents to appear distorted: using IE
-    
index b2361a0..06e55db 100644 (file)
@@ -1,3 +1,11 @@
-.fl-inlineEdit-edit{margin:-2px;padding:0;}
-.fl-inlineEdit-tooltip{position:absolute;background:#CCC;border:1px solid #999;font:normal 75% sans-serif;padding:3px 5px;}
-.fl-inlineEdit-invitation{border:1px solid #999;background:lightyellow;cursor:pointer;}
\ No newline at end of file
+.fl-inlineEdit-edit{margin-left:-1px;border:2px solid #0085FF;}
+.fl-inlineEdit-simple-editableText{padding:2px 2px 1px 2px;border-bottom:1px dotted #0086D8;}
+.fl-inlineEdit-textContainer{display:inline-block;}
+.fl-inlineEdit-text{display:inline;padding-right:20px;background-image:url('../images/inline_edit_edit_button_16x16.png');background-repeat:no-repeat;background-position:right center;}
+.fl-inlineEdit-focus{border:1px solid #0085FF;padding:1px 0 0 1px;margin-bottom:1px;}
+.fl-inlineEdit-tooltip{position:absolute;background:#FFFABB;border:1px solid #C9B857;font:normal sans-serif;padding:3px 5px;}
+.fl-inlineEdit-editModeInstruction{position:absolute;background:#0081C1;font:normal sans-serif;color:#FFF;padding:3px 5px;max-width:310px;z-index:1;}
+.fl-inlineEdit-invitation{background:#E1EDF5;cursor:pointer;}
+.fl-inlineEdit-emptyText-invitation{font-style:italic;color:#9f9f9f;}
+.fl-inlineEdit-emptyDefaultViewText{padding-top:16px;}
+p{margin:0;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/inlineEdit/images/inline_edit_edit_button_16x16.png b/docs/jscripts/infusion/components/inlineEdit/images/inline_edit_edit_button_16x16.png
new file mode 100644 (file)
index 0000000..61d31a5
Binary files /dev/null and b/docs/jscripts/infusion/components/inlineEdit/images/inline_edit_edit_button_16x16.png differ
index b636a58..3686aa2 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){function sendKey(control,event,virtualCode,charCode){var kE=document.createEvent("KeyEvents");kE.initKeyEvent(event,1,1,null,0,0,0,0,virtualCode,charCode);control.dispatchEvent(kE)}fluid.setCaretToEnd=function(control,value){var pos=value?value.length:0;try{control.focus();if(control.setSelectionRange){control.setSelectionRange(pos,pos);if($.browser.mozilla&&pos>0){sendKey(control,"keypress",92,92);sendKey(control,"keydown",8,0);sendKey(control,"keypress",8,0)}}else{if(control.createTextRange){var range=control.createTextRange();range.move("character",pos);range.select()}}}catch(e){}};fluid.deadMansBlur=function(control,exclusions,handler){var blurPending=false;$(control).blur(function(){blurPending=true;setTimeout(function(){if(blurPending){handler(control)}},150)});var canceller=function(){blurPending=false};exclusions.focus(canceller);exclusions.click(canceller)};var renderEditContainer=function(that,really){that.editContainer=that.locate("editContainer");that.editField=that.locate("edit");if(that.editContainer.length!==1){if(that.editField.length===1){that.editContainer=that.editField}else{if(that.editContainer.length>1){fluid.fail("InlineEdit did not find a unique container for selector "+that.options.selectors.editContainer+": "+fluid.dumpEl(that.editContainer))}}}if(that.editContainer.length===1&&!that.editField){that.editField=that.locate("edit",that.editContainer)}if(!really){return }var editElms=that.options.editModeRenderer(that);if(editElms){that.editContainer=editElms.container;that.editField=editElms.field}if(that.editField.length===0){fluid.fail("InlineEdit improperly initialised - editField could not be located (selector "+that.options.selectors.edit+")")}};var switchToViewMode=function(that){that.editContainer.hide();that.viewEl.show()};var cancel=function(that){if(that.isEditing()){that.editView.value(that.model.value);switchToViewMode(that)}};var finish=function(that){var newValue=that.editView.value();var oldValue=that.model.value;var viewNode=that.viewEl[0];var editNode=that.editField[0];var ret=that.events.onFinishEdit.fire(newValue,oldValue,editNode,viewNode);if(ret===false){return }that.updateModelValue(newValue);that.events.afterFinishEdit.fire(newValue,oldValue,editNode,viewNode);switchToViewMode(that)};var bindEditFinish=function(that){if(that.options.submitOnEnter===undefined){that.options.submitOnEnter="textarea"!==fluid.unwrap(that.editField).nodeName.toLowerCase()}function keyCode(evt){return evt.keyCode?evt.keyCode:(evt.which?evt.which:0)}var escHandler=function(evt){var code=keyCode(evt);if(code===$.ui.keyCode.ESCAPE){cancel(that);return false}};var finishHandler=function(evt){var code=keyCode(evt);if(code!==$.ui.keyCode.ENTER){return true}finish(that);that.viewEl.focus();return false};if(that.options.submitOnEnter){that.editContainer.keypress(finishHandler)}that.editContainer.keydown(escHandler)};var bindBlurHandler=function(that){if(that.options.blurHandlerBinder){that.options.blurHandlerBinder(that)}else{var blurHandler=function(evt){finish(that);return false};that.editField.blur(blurHandler)}};var initializeEditView=function(that,initial){if(!that.editInitialized){renderEditContainer(that,!that.options.lazyEditView||!initial);if(!that.options.lazyEditView||!initial){that.editView=fluid.initSubcomponent(that,"editView",that.editField);$.extend(true,that.editView,fluid.initSubcomponent(that,"editAccessor",that.editField));bindEditFinish(that);bindBlurHandler(that);that.editView.refreshView(that);that.editInitialized=true}}};var edit=function(that){initializeEditView(that,false);var viewEl=that.viewEl;var displayText=that.displayView.value();that.updateModelValue(displayText===that.options.defaultViewText?"":displayText);if(that.options.applyEditPadding){that.editField.width(Math.max(viewEl.width()+that.options.paddings.edit,that.options.paddings.minimumEdit))}viewEl.removeClass(that.options.styles.invitation);viewEl.removeClass(that.options.styles.focus);viewEl.hide();that.editContainer.show();if(that.tooltipEnabled()){$("#"+that.options.tooltipId).hide()}setTimeout(function(){that.editField.focus();fluid.setCaretToEnd(that.editField[0],that.editView.value());if(that.options.selectOnEdit){that.editField[0].select()}},0);that.events.afterBeginEdit.fire()};var clearEmptyViewStyles=function(textEl,defaultViewStyle,originalViewPadding){textEl.removeClass(defaultViewStyle);textEl.css("padding-right",originalViewPadding)};var showDefaultViewText=function(that){that.displayView.value(that.options.defaultViewText);that.viewEl.css("padding-right",that.existingPadding);that.viewEl.addClass(that.options.styles.defaultViewStyle)};var showNothing=function(that){that.displayView.value("");if($.browser.msie){if(that.viewEl.css("display")==="inline"){that.viewEl.css("display","inline-block")}}};var showEditedText=function(that){that.displayView.value(that.model.value);clearEmptyViewStyles(that.viewEl,that.options.styles.defaultViewStyle,that.existingPadding)};var refreshView=function(that,source){that.displayView.refreshView(that,source);if(that.editView){that.editView.refreshView(that,source)}};var initModel=function(that,value){that.model.value=value;that.refreshView()};var updateModelValue=function(that,newValue,source){if(that.model.value!==newValue){var oldModel=$.extend(true,{},that.model);that.model.value=newValue;that.events.modelChanged.fire(that.model,oldModel,source);that.refreshView(source)}};var bindHoverHandlers=function(viewEl,invitationStyle){var over=function(evt){viewEl.addClass(invitationStyle)};var out=function(evt){viewEl.removeClass(invitationStyle)};viewEl.hover(over,out)};var makeEditHandler=function(that){return function(){var prevent=that.events.onBeginEdit.fire();if(prevent===false){return false}edit(that);return true}};function makeEditTriggerGuard(that){var viewEl=fluid.unwrap(that.viewEl);return function(event){var outer=fluid.findAncestor(event.target,function(elem){if(/input|select|textarea|button|a/i.test(elem.nodeName)||elem===viewEl){return true}});if(outer===viewEl){that.edit();return false}}}var bindMouseHandlers=function(that){bindHoverHandlers(that.viewEl,that.options.styles.invitation);that.viewEl.click(makeEditTriggerGuard(that))};var bindHighlightHandler=function(viewEl,focusStyle,invitationStyle){var focusOn=function(){viewEl.addClass(focusStyle);viewEl.addClass(invitationStyle)};var focusOff=function(){viewEl.removeClass(focusStyle);viewEl.removeClass(invitationStyle)};viewEl.focus(focusOn);viewEl.blur(focusOff)};var bindKeyboardHandlers=function(that){fluid.tabbable(that.viewEl);var guard=makeEditTriggerGuard(that);fluid.activatable(that.viewEl,function(event){return guard(event)})};var aria=function(viewEl,editContainer){viewEl.attr("role","button")};var defaultEditModeRenderer=function(that){if(that.editContainer.length>0&&that.editField.length>0){return{container:that.editContainer,field:that.editField}}var editModeTemplate="<span><input type='text' class='flc-inlineEdit-edit fl-inlineEdit-edit'/></span>";var editContainer=$(editModeTemplate);var editField=$("input",editContainer);var componentContainerId=that.container.attr("id");if(componentContainerId){var editContainerId=componentContainerId+"-edit-container";var editFieldId=componentContainerId+"-edit";editContainer.attr("id",editContainerId);editField.attr("id",editFieldId)}that.viewEl.after(editContainer);return{container:editContainer,field:editField}};var makeIsEditing=function(that){var isEditing=false;that.events.onBeginEdit.addListener(function(){isEditing=true});that.events.afterFinishEdit.addListener(function(){isEditing=false});return function(){return isEditing}};var setupInlineEdit=function(componentContainer,that){var padding=that.viewEl.css("padding-right");that.existingPadding=padding?parseFloat(padding):0;initModel(that,that.displayView.value());bindMouseHandlers(that);bindKeyboardHandlers(that);bindHighlightHandler(that.viewEl,that.options.styles.focus,that.options.styles.invitation);aria(that.viewEl);if(that.editContainer){that.editContainer.hide()}var initTooltip=function(){if(that.tooltipEnabled()){that.viewEl.tooltip({delay:that.options.tooltipDelay,extraClass:that.options.styles.tooltip,bodyHandler:function(){return that.options.tooltipText},id:that.options.tooltipId})}};$(initTooltip);that.decorators=fluid.initSubcomponents(that,"componentDecorators",[that,fluid.COMPONENT_OPTIONS])};var setupInlineEdits=function(editables,options){var editors=[];editables.each(function(idx,editable){editors.push(fluid.inlineEdit($(editable),options))});return editors};fluid.inlineEdit=function(componentContainer,userOptions){var that=fluid.initView("inlineEdit",componentContainer,userOptions);that.viewEl=that.locate("text");that.displayView=fluid.initSubcomponent(that,"displayView",that.viewEl);$.extend(true,that.displayView,fluid.initSubcomponent(that,"displayAccessor",that.viewEl));that.model={value:""};that.edit=makeEditHandler(that);that.isEditing=makeIsEditing(that);that.finish=function(){finish(that)};that.cancel=function(){cancel(that)};that.tooltipEnabled=function(){return that.options.useTooltip&&$.fn.tooltip};that.refreshView=function(source){refreshView(that,source)};that.updateModelValue=function(newValue,source){updateModelValue(that,newValue,source)};that.updateModel=function(newModel,source){updateModelValue(that,newModel.value,source)};initializeEditView(that,true);setupInlineEdit(componentContainer,that);return that};fluid.inlineEdit.standardAccessor=function(element){var nodeName=element.nodeName.toLowerCase();var func="input"===nodeName||"textarea"===nodeName?"val":"text";return{value:function(newValue){return $(element)[func](newValue)}}};fluid.inlineEdit.richTextViewAccessor=function(element){return{value:function(newValue){return $(element).html(newValue)}}};fluid.inlineEdit.standardDisplayView=function(viewEl){var that={refreshView:function(componentThat,source){if(componentThat.model.value){showEditedText(componentThat)}else{if(componentThat.options.defaultViewText){showDefaultViewText(componentThat)}else{showNothing(componentThat)}}if(($.trim(componentThat.viewEl.text()).length===0)&&(componentThat.existingPadding<componentThat.options.paddings.minimumView)){componentThat.viewEl.css("padding-right",componentThat.options.paddings.minimumView)}}};return that};fluid.inlineEdit.standardEditView=function(editField){var that={refreshView:function(componentThat,source){if(componentThat.editField&&componentThat.editField.index(source)===-1){componentThat.editView.value(componentThat.model.value)}}};$.extend(true,that,fluid.inlineEdit.standardAccessor(editField));return that};fluid.inlineEdits=function(componentContainer,options){options=options||{};var selectors=$.extend({},fluid.defaults("inlineEdits").selectors,options.selectors);var container=fluid.container(componentContainer);var editables=$(selectors.editables,container);return setupInlineEdits(editables,options)};fluid.defaults("inlineEdit",{selectors:{text:".flc-inlineEdit-text",editContainer:".flc-inlineEdit-editContainer",edit:".flc-inlineEdit-edit"},styles:{text:"fl-inlineEdit-text",edit:"fl-inlineEdit-edit",invitation:"fl-inlineEdit-invitation",defaultViewStyle:"fl-inlineEdit-invitation-text",tooltip:"fl-inlineEdit-tooltip",focus:"fl-inlineEdit-focus"},events:{modelChanged:null,onBeginEdit:"preventable",afterBeginEdit:null,onFinishEdit:"preventable",afterFinishEdit:null,afterInitEdit:null},paddings:{edit:10,minimumEdit:80,minimumView:60},applyEditPadding:true,blurHandlerBinder:null,submitOnEnter:undefined,displayAccessor:{type:"fluid.inlineEdit.standardAccessor"},displayView:{type:"fluid.inlineEdit.standardDisplayView"},editAccessor:{type:"fluid.inlineEdit.standardAccessor"},editView:{type:"fluid.inlineEdit.standardEditView"},editModeRenderer:defaultEditModeRenderer,lazyEditView:false,defaultViewText:"Click here to edit",tooltipText:"Click item to edit",tooltipId:"tooltip",useTooltip:false,tooltipDelay:1000,selectOnEdit:false});fluid.defaults("inlineEdits",{selectors:{editables:".flc-inlineEditable"}})})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){function sendKey(control,event,virtualCode,charCode){var kE=document.createEvent("KeyEvents");kE.initKeyEvent(event,1,1,null,0,0,0,0,virtualCode,charCode);control.dispatchEvent(kE)}fluid.setCaretToEnd=function(control,value){var pos=value?value.length:0;try{control.focus();if(control.setSelectionRange){control.setSelectionRange(pos,pos);if($.browser.mozilla&&pos>0){sendKey(control,"keypress",92,92);sendKey(control,"keydown",8,0);sendKey(control,"keypress",8,0)}}else{if(control.createTextRange){var range=control.createTextRange();range.move("character",pos);range.select()}}}catch(e){}};var switchToViewMode=function(that){that.editContainer.hide();that.displayModeRenderer.show()};var cancel=function(that){if(that.isEditing()){setTimeout(function(){that.editView.value(that.model.value)},1);switchToViewMode(that);that.events.afterFinishEdit.fire(that.model.value,that.model.value,that.editField[0],that.viewEl[0])}};var finish=function(that){var newValue=that.editView.value();var oldValue=that.model.value;var viewNode=that.viewEl[0];var editNode=that.editField[0];var ret=that.events.onFinishEdit.fire(newValue,oldValue,editNode,viewNode);if(ret===false){return }that.updateModelValue(newValue);that.events.afterFinishEdit.fire(newValue,oldValue,editNode,viewNode);switchToViewMode(that)};var bindEditFinish=function(that){if(that.options.submitOnEnter===undefined){that.options.submitOnEnter="textarea"!==fluid.unwrap(that.editField).nodeName.toLowerCase()}function keyCode(evt){return evt.keyCode?evt.keyCode:(evt.which?evt.which:0)}var escHandler=function(evt){var code=keyCode(evt);if(code===$.ui.keyCode.ESCAPE){that.textEditButton.focus(0);cancel(that);return false}};var finishHandler=function(evt){var code=keyCode(evt);if(code!==$.ui.keyCode.ENTER){that.textEditButton.blur();return true}else{finish(that);that.textEditButton.focus(0)}return false};if(that.options.submitOnEnter){that.editContainer.keypress(finishHandler)}that.editContainer.keydown(escHandler)};var bindBlurHandler=function(that){if(that.options.blurHandlerBinder){that.options.blurHandlerBinder(that)}else{var blurHandler=function(evt){if(that.isEditing()){finish(that)}return false};that.editField.blur(blurHandler)}};var initializeEditView=function(that,initial){if(!that.editInitialized){fluid.inlineEdit.renderEditContainer(that,!that.options.lazyEditView||!initial);if(!that.options.lazyEditView||!initial){that.editView=fluid.initSubcomponent(that,"editView",that.editField);$.extend(true,that.editView,fluid.initSubcomponent(that,"editAccessor",that.editField));bindEditFinish(that);bindBlurHandler(that);that.editView.refreshView(that);that.editInitialized=true}}};var edit=function(that){initializeEditView(that,false);var viewEl=that.viewEl;var displayText=that.displayView.value();that.updateModelValue(that.model.value===""?"":displayText);if(that.options.applyEditPadding){that.editField.width(Math.max(viewEl.width()+that.options.paddings.edit,that.options.paddings.minimumEdit))}that.displayModeRenderer.hide();that.editContainer.show();setTimeout(function(){fluid.setCaretToEnd(that.editField[0],that.editView.value());if(that.options.selectOnEdit){that.editField[0].select()}},0);that.events.afterBeginEdit.fire()};var clearEmptyViewStyles=function(textEl,styles,originalViewPadding){textEl.removeClass(styles.defaultViewStyle);textEl.css("padding-right",originalViewPadding);textEl.removeClass(styles.emptyDefaultViewText)};var showDefaultViewText=function(that){that.displayView.value(that.options.defaultViewText);that.viewEl.css("padding-right",that.existingPadding);that.viewEl.addClass(that.options.styles.defaultViewStyle)};var showNothing=function(that){that.displayView.value("");if($.browser.msie){if(that.viewEl.css("display")==="inline"){that.viewEl.css("display","inline-block")}}};var showEditedText=function(that){that.displayView.value(that.model.value);clearEmptyViewStyles(that.viewEl,that.options.styles,that.existingPadding)};var refreshView=function(that,source){that.displayView.refreshView(that,source);if(that.editView){that.editView.refreshView(that,source)}};var initModel=function(that,value){that.model.value=value;that.refreshView()};var updateModelValue=function(that,newValue,source){var comparator=that.options.modelComparator;var unchanged=comparator?comparator(that.model.value,newValue):that.model.value===newValue;if(!unchanged){var oldModel=$.extend(true,{},that.model);that.model.value=newValue;that.events.modelChanged.fire(that.model,oldModel,source);that.refreshView(source)}};var makeIsEditing=function(that){var isEditing=false;that.events.onBeginEdit.addListener(function(){isEditing=true});that.events.afterFinishEdit.addListener(function(){isEditing=false});return function(){return isEditing}};var makeEditHandler=function(that){return function(){var prevent=that.events.onBeginEdit.fire();if(prevent===false){return false}edit(that);return true}};var initTooltips=function(that){var tooltipOptions={content:that.options.tooltipText,position:{my:"left top",at:"left bottom",offset:"0 5"},target:"*",delay:that.options.tooltipDelay,styles:{tooltip:that.options.styles.tooltip}};fluid.tooltip(that.viewEl,tooltipOptions);if(that.textEditButton){fluid.tooltip(that.textEditButton,tooltipOptions)}};var calculateInitialPadding=function(viewEl){var padding=viewEl.css("padding-right");return padding?parseFloat(padding):0};var setupInlineEdit=function(componentContainer,that){if(that.editContainer){that.editContainer.hide()}if(that.tooltipEnabled()){initTooltips(that)}that.decorators=fluid.initSubcomponents(that,"componentDecorators",[that,fluid.COMPONENT_OPTIONS])};var setupInlineEdits=function(editables,options){var editors=[];editables.each(function(idx,editable){editors.push(fluid.inlineEdit($(editable),options))});return editors};fluid.inlineEdit=function(componentContainer,userOptions){var that=fluid.initView("inlineEdit",componentContainer,userOptions);that.viewEl=fluid.inlineEdit.setupDisplayText(that);that.displayView=fluid.initSubcomponent(that,"displayView",that.viewEl);$.extend(true,that.displayView,fluid.initSubcomponent(that,"displayAccessor",that.viewEl));that.model={value:""};that.edit=makeEditHandler(that);that.isEditing=makeIsEditing(that);that.finish=function(){finish(that)};that.cancel=function(){cancel(that)};that.tooltipEnabled=function(){return that.options.useTooltip&&$.fn.tooltip};that.refreshView=function(source){refreshView(that,source)};that.updateModelValue=function(newValue,source){updateModelValue(that,newValue,source)};that.updateModel=function(newModel,source){updateModelValue(that,newModel.value,source)};that.existingPadding=calculateInitialPadding(that.viewEl);initModel(that,that.displayView.value());that.displayModeRenderer=that.options.displayModeRenderer(that);initializeEditView(that,true);setupInlineEdit(componentContainer,that);return that};fluid.inlineEdit.setupEditField=function(editStyle,editField){var eField=$(editField);eField=eField.length?eField:$("<input type='text' class='flc-inlineEdit-edit'/>");eField.addClass(editStyle);return eField};fluid.inlineEdit.setupEditContainer=function(displayContainer,editField,editContainer){var eContainer=$(editContainer);eContainer=eContainer.length?eContainer:$("<span></span>");displayContainer.after(eContainer);eContainer.append(editField);return eContainer};fluid.inlineEdit.defaultEditModeRenderer=function(that){var editField=fluid.inlineEdit.setupEditField(that.options.styles.edit,that.editField);var editContainer=fluid.inlineEdit.setupEditContainer(that.displayModeRenderer,editField,that.editContainer);var editModeInstruction=fluid.inlineEdit.setupEditModeInstruction(that.options.styles.editModeInstruction,that.options.strings.editModeInstruction);var id=fluid.allocateSimpleId(editModeInstruction);editField.attr("aria-describedby",id);fluid.inlineEdit.positionEditModeInstruction(editModeInstruction,editContainer,editField);return{container:editContainer,field:editField}};fluid.inlineEdit.renderEditContainer=function(that,lazyEditView){that.editContainer=that.locate("editContainer");that.editField=that.locate("edit");if(that.editContainer.length!==1){if(that.editContainer.length>1){fluid.fail("InlineEdit did not find a unique container for selector "+that.options.selectors.editContainer+": "+fluid.dumpEl(that.editContainer))}}if(!lazyEditView){return }var editElms=that.options.editModeRenderer(that);if(editElms){that.editContainer=editElms.container;that.editField=editElms.field}};fluid.inlineEdit.setupEditModeInstruction=function(editModeInstructionStyle,editModeInstructionText){var editModeInstruction=$("<p></p>");editModeInstruction.addClass(editModeInstructionStyle);editModeInstruction.text(editModeInstructionText);return editModeInstruction};fluid.inlineEdit.positionEditModeInstruction=function(editModeInstruction,editContainer,editField){editContainer.append(editModeInstruction);editField.focus(function(){editModeInstruction.show();var editFieldPosition=editField.offset();editModeInstruction.css({left:editFieldPosition.left});editModeInstruction.css({top:editFieldPosition.top+editField.height()+5})})};fluid.inlineEdit.setupDisplayModeContainer=function(styles,displayModeWrapper){var displayModeContainer=$(displayModeWrapper);displayModeContainer=displayModeContainer.length?displayModeContainer:$("<span></span>");displayModeContainer.addClass(styles.displayView);return displayModeContainer};fluid.inlineEdit.setupDisplayText=function(that){var viewEl=that.locate("text");viewEl.attr("tabindex","-1");viewEl.addClass(that.options.styles.text);return viewEl};fluid.inlineEdit.setupTextEditButton=function(that){var opts=that.options;var textEditButton=that.locate("textEditButton");if(textEditButton.length===0){var markup=$("<a href='#_' class='flc-inlineEdit-textEditButton'></a>");markup.addClass(opts.styles.textEditButton);markup.text(opts.tooltipText);fluid.inlineEdit.updateTextEditButton(markup,that.model.value||opts.defaultViewText,opts.strings.textEditButton);that.events.modelChanged.addListener(function(){fluid.inlineEdit.updateTextEditButton(markup,that.model.value||opts.defaultViewText,opts.strings.textEditButton)});that.locate("text").after(markup);textEditButton=that.locate("textEditButton")}return textEditButton};fluid.inlineEdit.updateTextEditButton=function(textEditButton,value,stringTemplate){var buttonText=fluid.stringTemplate(stringTemplate,{text:value});textEditButton.text(buttonText)};fluid.inlineEdit.bindHoverHandlers=function(displayModeRenderer,invitationStyle){var over=function(evt){displayModeRenderer.addClass(invitationStyle)};var out=function(evt){displayModeRenderer.removeClass(invitationStyle)};displayModeRenderer.hover(over,out)};fluid.inlineEdit.bindHighlightHandler=function(element,displayModeRenderer,styles){element=$(element);var focusOn=function(){displayModeRenderer.addClass(styles.focus);displayModeRenderer.addClass(styles.invitation)};var focusOff=function(){displayModeRenderer.removeClass(styles.focus);displayModeRenderer.removeClass(styles.invitation)};element.focus(focusOn);element.blur(focusOff)};fluid.inlineEdit.bindMouseHandlers=function(element,edit){element=$(element);var triggerGuard=fluid.inlineEdit.makeEditTriggerGuard(element,edit);element.click(function(e){triggerGuard(e);return false})};fluid.inlineEdit.bindKeyboardHandlers=function(element,edit){element=$(element);element.attr("role","button");var guard=fluid.inlineEdit.makeEditTriggerGuard(element,edit);fluid.activatable(element,function(event){return guard(event)})};fluid.inlineEdit.makeEditTriggerGuard=function(element,edit){var selector=fluid.unwrap(element);return function(event){var outer=fluid.findAncestor(event.target,function(elem){if(/input|select|textarea|button|a/i.test(elem.nodeName)||elem===selector){return true}});if(outer===selector){edit();return false}}};fluid.inlineEdit.defaultDisplayModeRenderer=function(that){var styles=that.options.styles;var displayModeWrapper=fluid.inlineEdit.setupDisplayModeContainer(styles);var displayModeRenderer=that.viewEl.wrap(displayModeWrapper).parent();that.textEditButton=fluid.inlineEdit.setupTextEditButton(that);displayModeRenderer.append(that.textEditButton);fluid.inlineEdit.bindHoverHandlers(displayModeRenderer,styles.invitation);fluid.inlineEdit.bindMouseHandlers(that.viewEl,that.edit);fluid.inlineEdit.bindMouseHandlers(that.textEditButton,that.edit);fluid.inlineEdit.bindKeyboardHandlers(that.textEditButton,that.edit);fluid.inlineEdit.bindHighlightHandler(that.viewEl,displayModeRenderer,styles);fluid.inlineEdit.bindHighlightHandler(that.textEditButton,displayModeRenderer,styles);return displayModeRenderer};fluid.inlineEdit.standardAccessor=function(element){var nodeName=element.nodeName.toLowerCase();return{value:function(newValue){return"input"===nodeName||"textarea"===nodeName?fluid.value($(element),newValue):$(element).text(newValue)}}};fluid.inlineEdit.standardDisplayView=function(viewEl){var that={refreshView:function(componentThat,source){if(componentThat.model.value){showEditedText(componentThat)}else{if(componentThat.options.defaultViewText){showDefaultViewText(componentThat)}else{showNothing(componentThat)}}if($.trim(componentThat.viewEl.text()).length===0){componentThat.viewEl.addClass(componentThat.options.styles.emptyDefaultViewText);if(componentThat.existingPadding<componentThat.options.paddings.minimumView){componentThat.viewEl.css("padding-right",componentThat.options.paddings.minimumView)}}}};return that};fluid.inlineEdit.standardEditView=function(editField){var that={refreshView:function(componentThat,source){if(!source||(componentThat.editField&&componentThat.editField.index(source)===-1)){componentThat.editView.value(componentThat.model.value)}}};$.extend(true,that,fluid.inlineEdit.standardAccessor(editField));return that};fluid.inlineEdits=function(componentContainer,options){options=options||{};var selectors=$.extend({},fluid.defaults("inlineEdits").selectors,options.selectors);var container=fluid.container(componentContainer);var editables=$(selectors.editables,container);return setupInlineEdits(editables,options)};fluid.defaults("inlineEdit",{selectors:{text:".flc-inlineEdit-text",editContainer:".flc-inlineEdit-editContainer",edit:".flc-inlineEdit-edit",textEditButton:".flc-inlineEdit-textEditButton"},styles:{text:"fl-inlineEdit-text",edit:"fl-inlineEdit-edit",invitation:"fl-inlineEdit-invitation",defaultViewStyle:"fl-inlineEdit-emptyText-invitation",emptyDefaultViewText:"fl-inlineEdit-emptyDefaultViewText",focus:"fl-inlineEdit-focus",tooltip:"fl-inlineEdit-tooltip",editModeInstruction:"fl-inlineEdit-editModeInstruction",displayView:"fl-inlineEdit-simple-editableText fl-inlineEdit-textContainer",textEditButton:"fl-offScreen-hidden"},events:{modelChanged:null,onBeginEdit:"preventable",afterBeginEdit:null,onFinishEdit:"preventable",afterFinishEdit:null,afterInitEdit:null},strings:{textEditButton:"Edit text %text",editModeInstruction:"Escape to cancel, Enter or Tab when finished"},paddings:{edit:10,minimumEdit:80,minimumView:60},applyEditPadding:true,blurHandlerBinder:null,submitOnEnter:undefined,modelComparator:null,displayAccessor:{type:"fluid.inlineEdit.standardAccessor"},displayView:{type:"fluid.inlineEdit.standardDisplayView"},editAccessor:{type:"fluid.inlineEdit.standardAccessor"},editView:{type:"fluid.inlineEdit.standardEditView"},displayModeRenderer:fluid.inlineEdit.defaultDisplayModeRenderer,editModeRenderer:fluid.inlineEdit.defaultEditModeRenderer,lazyEditView:false,defaultViewText:"Click here to edit",useTooltip:true,tooltipText:"Select or press Enter to edit",tooltipDelay:1000,selectOnEdit:false});fluid.defaults("inlineEdits",{selectors:{editables:".flc-inlineEditable"}})})(jQuery,fluid_1_4);
\ No newline at end of file
index 1ee53a6..24786dc 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var configureInlineEdit=function(configurationName,container,options){var assembleOptions=$.extend({},fluid.defaults(configurationName),options);return fluid.inlineEdit(container,assembleOptions)};fluid.inlineEdit.tinyMCE=function(container,options){return configureInlineEdit("fluid.inlineEdit.tinyMCE",container,options)};fluid.inlineEdit.tinyMCE.viewAccessor=function(editField){return{value:function(newValue){var editor=tinyMCE.get(editField.id);if(!editor){return""}if(newValue){$(editField).val(newValue);editor.setContent(newValue,{format:"raw"})}else{return editor.getContent()}}}};fluid.inlineEdit.tinyMCE.blurHandlerBinder=function(that){function focusEditor(editor){setTimeout(function(){tinyMCE.execCommand("mceFocus",false,that.editField[0].id);if($.browser.mozilla&&$.browser.version.substring(0,3)==="1.8"){return }editor.selection.select(editor.getBody(),1);editor.selection.collapse(0)},10)}that.events.afterInitEdit.addListener(function(editor){focusEditor(editor);var editorBody=editor.getBody();fluid.deadMansBlur(that.editField,$(editorBody),function(){that.cancel()})});that.events.afterBeginEdit.addListener(function(){var editor=tinyMCE.get(that.editField[0].id);if(editor){focusEditor(editor)}})};fluid.inlineEdit.tinyMCE.editModeRenderer=function(that){var defaultOptions={mode:"exact",theme:"simple"};var options=$.extend(true,defaultOptions,that.options.tinyMCE);options.elements=fluid.allocateSimpleId(that.editField);var oldinit=options.init_instance_callback;options.init_instance_callback=function(instance){that.events.afterInitEdit.fire(instance);if(oldinit){oldinit()}};tinyMCE.init(options)};fluid.defaults("fluid.inlineEdit.tinyMCE",{useTooltip:true,selectors:{edit:"textarea"},styles:{invitation:null},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.tinyMCE.viewAccessor"},lazyEditView:true,blurHandlerBinder:fluid.inlineEdit.tinyMCE.blurHandlerBinder,editModeRenderer:fluid.inlineEdit.tinyMCE.editModeRenderer});fluid.inlineEdit.FCKEditor=function(container,options){return configureInlineEdit("fluid.inlineEdit.FCKEditor",container,options)};fluid.inlineEdit.FCKEditor.complete=fluid.event.getEventFirer();fluid.inlineEdit.FCKEditor.complete.addListener(function(editor){var editField=editor.LinkedField;var that=$.data(editField,"fluid.inlineEdit.FCKEditor");that.events.afterInitEdit.fire(editor)});fluid.inlineEdit.FCKEditor.blurHandlerBinder=function(that){function focusEditor(editor){editor.Focus()}that.events.afterInitEdit.addListener(function(editor){focusEditor(editor);var editorBody=editor.EditingArea.TargetElement});that.events.afterBeginEdit.addListener(function(){var editor=fluid.inlineEdit.FCKEditor.byId(that.editField[0].id);if(editor){focusEditor(editor)}})};fluid.inlineEdit.FCKEditor.byId=function(id){var editor=typeof (FCKeditorAPI)==="undefined"?null:FCKeditorAPI.GetInstance(id);return editor};fluid.inlineEdit.FCKEditor.editModeRenderer=function(that){var id=fluid.allocateSimpleId(that.editField);$.data(fluid.unwrap(that.editField),"fluid.inlineEdit.FCKEditor",that);var oFCKeditor=new FCKeditor(id);var opcopy=fluid.copy(that.options.FCKEditor);opcopy.BasePath=opcopy.BasePath+"editor/";$.extend(true,oFCKeditor.Config,opcopy);$.extend(true,oFCKeditor,that.options.FCKEditor);oFCKeditor.Config.fluidInstance=that;oFCKeditor.ReplaceTextarea()};fluid.inlineEdit.FCKEditor.viewAccessor=function(editField){return{value:function(newValue){var editor=fluid.inlineEdit.FCKEditor.byId(editField.id);if(!editor){if(newValue){$(editField).val(newValue)}return""}if(newValue){editor.SetHTML(newValue)}else{return editor.GetHTML()}}}};fluid.defaults("fluid.inlineEdit.FCKEditor",{selectors:{edit:"textarea"},styles:{invitation:null},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.FCKEditor.viewAccessor"},lazyEditView:true,blurHandlerBinder:fluid.inlineEdit.FCKEditor.blurHandlerBinder,editModeRenderer:fluid.inlineEdit.FCKEditor.editModeRenderer,FCKEditor:{BasePath:"fckeditor/"}});fluid.inlineEdit.dropdown=function(container,options){return configureInlineEdit("fluid.inlineEdit.dropdown",container,options)};fluid.inlineEdit.dropdown.editModeRenderer=function(that){var id=fluid.allocateSimpleId(that.editField);that.editField.selectbox({finishHandler:function(){that.finish()}});return{container:that.editContainer,field:$("input.selectbox",that.editContainer)}};fluid.inlineEdit.dropdown.blurHandlerBinder=function(that){fluid.deadMansBlur(that.editField,$("div.selectbox-wrapper li",that.editContainer),function(){that.cancel()})};fluid.defaults("fluid.inlineEdit.dropdown",{applyEditPadding:false,blurHandlerBinder:fluid.inlineEdit.dropdown.blurHandlerBinder,editModeRenderer:fluid.inlineEdit.dropdown.editModeRenderer})})(jQuery,fluid_1_1);function FCKeditor_OnComplete(editorInstance){fluid.inlineEdit.FCKEditor.complete.fire(editorInstance)};
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.inlineEdit.makeViewAccessor=function(editorGetFn,setValueFn,getValueFn){return function(editField){return{value:function(newValue){var editor=editorGetFn(editField);if(!editor){if(newValue){$(editField).val(newValue)}return""}if(newValue){setValueFn(editField,editor,newValue)}else{return getValueFn(editor)}}}}};fluid.inlineEdit.richTextViewAccessor=function(element){return{value:function(newValue){return $(element).html(newValue)}}};var configureInlineEdit=function(configurationName,container,options){var defaults=fluid.defaults(configurationName);var assembleOptions=fluid.merge(defaults?defaults.mergePolicy:null,{},defaults,options);return fluid.inlineEdit(container,assembleOptions)};fluid.inlineEdit.normalizeHTML=function(value){var togo=$.trim(value.replace(/\s+/g," "));togo=togo.replace(/\s+<\//g,"</");togo=togo.replace(/\<([a-z0-9A-Z\/]+)\>/g,function(match){return match.toLowerCase()});return togo};fluid.inlineEdit.htmlComparator=function(el1,el2){return fluid.inlineEdit.normalizeHTML(el1)===fluid.inlineEdit.normalizeHTML(el2)};fluid.inlineEdit.bindRichTextHighlightHandler=function(element,displayModeRenderer,invitationStyle){element=$(element);var focusOn=function(){displayModeRenderer.addClass(invitationStyle)};var focusOff=function(){displayModeRenderer.removeClass(invitationStyle)};element.focus(focusOn);element.blur(focusOff)};fluid.inlineEdit.setupRichTextEditButton=function(that){var opts=that.options;var textEditButton=that.locate("textEditButton");if(textEditButton.length===0){var markup=$("<a href='#_' class='flc-inlineEdit-textEditButton'></a>");markup.text(opts.strings.textEditButton);that.locate("text").after(markup);textEditButton=that.locate("textEditButton")}return textEditButton};fluid.inlineEdit.richTextDisplayModeRenderer=function(that){var styles=that.options.styles;var displayModeWrapper=fluid.inlineEdit.setupDisplayModeContainer(styles);var displayModeRenderer=that.viewEl.wrap(displayModeWrapper).parent();that.textEditButton=fluid.inlineEdit.setupRichTextEditButton(that);displayModeRenderer.append(that.textEditButton);displayModeRenderer.addClass(styles.focus);fluid.inlineEdit.bindHoverHandlers(displayModeRenderer,styles.invitation);fluid.inlineEdit.bindMouseHandlers(that.textEditButton,that.edit);fluid.inlineEdit.bindKeyboardHandlers(that.textEditButton,that.edit);fluid.inlineEdit.bindRichTextHighlightHandler(that.viewEl,displayModeRenderer,styles.invitation);fluid.inlineEdit.bindRichTextHighlightHandler(that.textEditButton,displayModeRenderer,styles.invitation);return displayModeRenderer};fluid.inlineEdit.tinyMCE=function(container,options){var inlineEditor=configureInlineEdit("fluid.inlineEdit.tinyMCE",container,options);tinyMCE.init(inlineEditor.options.tinyMCE);return inlineEditor};fluid.inlineEdit.tinyMCE.getEditor=function(editField){return tinyMCE.get(editField.id)};fluid.inlineEdit.tinyMCE.setValue=function(editField,editor,value){$(editField).val(value);editor.setContent(value,{format:"raw"})};fluid.inlineEdit.tinyMCE.getValue=function(editor){return editor.getContent()};var flTinyMCE=fluid.inlineEdit.tinyMCE;flTinyMCE.viewAccessor=fluid.inlineEdit.makeViewAccessor(flTinyMCE.getEditor,flTinyMCE.setValue,flTinyMCE.getValue);fluid.inlineEdit.tinyMCE.blurHandlerBinder=function(that){function focusEditor(editor){setTimeout(function(){tinyMCE.execCommand("mceFocus",false,that.editField[0].id);if($.browser.mozilla&&$.browser.version.substring(0,3)==="1.8"){return }editor.selection.select(editor.getBody(),1);editor.selection.collapse(0)},10)}that.events.afterInitEdit.addListener(function(editor){focusEditor(editor);var editorBody=editor.getBody();fluid.deadMansBlur(that.editField,{exclusions:{body:$(editorBody)},handler:function(){that.cancel()}})});that.events.afterBeginEdit.addListener(function(){var editor=tinyMCE.get(that.editField[0].id);if(editor){focusEditor(editor)}})};fluid.inlineEdit.tinyMCE.editModeRenderer=function(that){var options=that.options.tinyMCE;options.elements=fluid.allocateSimpleId(that.editField);var oldinit=options.init_instance_callback;options.init_instance_callback=function(instance){that.events.afterInitEdit.fire(instance);if(oldinit){oldinit()}};tinyMCE.init(options)};fluid.defaults("fluid.inlineEdit.tinyMCE",{tinyMCE:{mode:"exact",theme:"simple"},useTooltip:true,selectors:{edit:"textarea"},styles:{invitation:"fl-inlineEdit-richText-invitation",displayView:"fl-inlineEdit-textContainer",text:""},strings:{textEditButton:"Edit"},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.tinyMCE.viewAccessor"},lazyEditView:true,defaultViewText:"Click Edit",modelComparator:fluid.inlineEdit.htmlComparator,blurHandlerBinder:fluid.inlineEdit.tinyMCE.blurHandlerBinder,displayModeRenderer:fluid.inlineEdit.richTextDisplayModeRenderer,editModeRenderer:fluid.inlineEdit.tinyMCE.editModeRenderer});fluid.inlineEdit.CKEditor=function(container,options){return configureInlineEdit("fluid.inlineEdit.CKEditor",container,options)};fluid.inlineEdit.CKEditor.getEditor=function(editField){return CKEDITOR.instances[editField.id]};fluid.inlineEdit.CKEditor.setValue=function(editField,editor,value){editor.setData(value)};fluid.inlineEdit.CKEditor.getValue=function(editor){return editor.getData()};var flCKEditor=fluid.inlineEdit.CKEditor;flCKEditor.viewAccessor=fluid.inlineEdit.makeViewAccessor(flCKEditor.getEditor,flCKEditor.setValue,flCKEditor.getValue);fluid.inlineEdit.CKEditor.focus=function(editor){setTimeout(function(){editor.focus()},0)};fluid.inlineEdit.CKEditor.normalizeHTML=function(value){var togo=fluid.inlineEdit.normalizeHTML(value);var angpos=togo.indexOf(">");if(angpos!==-1&&angpos<togo.length-1){if(togo.charAt(angpos+1)!==" "){togo=togo.substring(0,angpos+1)+" "+togo.substring(angpos+1)}}return togo};fluid.inlineEdit.CKEditor.htmlComparator=function(el1,el2){return fluid.inlineEdit.CKEditor.normalizeHTML(el1)===fluid.inlineEdit.CKEditor.normalizeHTML(el2)};fluid.inlineEdit.CKEditor.blurHandlerBinder=function(that){that.events.afterInitEdit.addListener(fluid.inlineEdit.CKEditor.focus);that.events.afterBeginEdit.addListener(function(){var editor=fluid.inlineEdit.CKEditor.getEditor(that.editField[0]);if(editor){fluid.inlineEdit.CKEditor.focus(editor)}})};fluid.inlineEdit.CKEditor.editModeRenderer=function(that){var id=fluid.allocateSimpleId(that.editField);$.data(fluid.unwrap(that.editField),"fluid.inlineEdit.CKEditor",that);var editor=CKEDITOR.replace(id,that.options.CKEditor);editor.on("instanceReady",function(e){fluid.inlineEdit.CKEditor.focus(e.editor);that.events.afterInitEdit.fire(e.editor)})};fluid.defaults("fluid.inlineEdit.CKEditor",{selectors:{edit:"textarea"},styles:{invitation:"fl-inlineEdit-richText-invitation",displayView:"fl-inlineEdit-textContainer",text:""},strings:{textEditButton:"Edit"},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.CKEditor.viewAccessor"},lazyEditView:true,defaultViewText:"Click Edit",modelComparator:fluid.inlineEdit.CKEditor.htmlComparator,blurHandlerBinder:fluid.inlineEdit.CKEditor.blurHandlerBinder,displayModeRenderer:fluid.inlineEdit.richTextDisplayModeRenderer,editModeRenderer:fluid.inlineEdit.CKEditor.editModeRenderer,CKEditor:{}});fluid.inlineEdit.dropdown=function(container,options){return configureInlineEdit("fluid.inlineEdit.dropdown",container,options)};fluid.inlineEdit.dropdown.editModeRenderer=function(that){var id=fluid.allocateSimpleId(that.editField);that.editField.selectbox({finishHandler:function(){that.finish()}});return{container:that.editContainer,field:$("input.selectbox",that.editContainer)}};fluid.inlineEdit.dropdown.blurHandlerBinder=function(that){fluid.deadMansBlur(that.editField,{exclusions:{selectBox:$("div.selectbox-wrapper",that.editContainer)},handler:function(){that.cancel()}})};fluid.defaults("fluid.inlineEdit.dropdown",{applyEditPadding:false,blurHandlerBinder:fluid.inlineEdit.dropdown.blurHandlerBinder,editModeRenderer:fluid.inlineEdit.dropdown.editModeRenderer})})(jQuery,fluid_1_4);
\ No newline at end of file
index bb1bca8..0f6e93c 100644 (file)
@@ -7,5 +7,5 @@
 .fl-pager .fl-pager-ui .fl-pager-disabled,.fl-pager .fl-pager-ui .fl-pager-links .fl-pager-currentPage{color:#000;border:none;background-color:transparent;text-decoration:none;}
 .fl-pager .fl-pager-ui .fl-pager-links a:hover{background-color:#0287C5;color:#fff;text-decoration:none;}
 .fl-pager .fl-pager-ui .fl-pager-disabled:hover,.fl-pager .fl-pager-ui .fl-pager-links .fl-pager-currentPage:hover{background-color:transparent;color:#000;text-decoration:none;cursor:default;}
-.fl-theme-hc .fl-pager .fl-pager-data .fl-pager-desc{background:url(../images/arrow-up.png) no-repeat right;}
-.fl-theme-hc .fl-pager .fl-pager-data .fl-pager-asc{background:url(../images/arrow-dn.png) no-repeat right;}
\ No newline at end of file
+.fl-theme-bw .fl-pager .fl-pager-data .fl-pager-desc{background:url(../images/arrow-up.png) no-repeat right;}
+.fl-theme-bw .fl-pager .fl-pager-data .fl-pager-asc{background:url(../images/arrow-dn.png) no-repeat right;}
\ No newline at end of file
index e0010c9..a664c2a 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){function updateStyles(pageListThat,newModel,oldModel){if(!pageListThat.pageLinks){return }if(oldModel.pageIndex!==undefined){var oldLink=pageListThat.pageLinks.eq(oldModel.pageIndex);oldLink.removeClass(pageListThat.options.styles.currentPage)}var pageLink=pageListThat.pageLinks.eq(newModel.pageIndex);pageLink.addClass(pageListThat.options.styles.currentPage)}function bindLinkClick(link,events,eventArg){link.unbind("click.fluid.pager");link.bind("click.fluid.pager",function(){events.initiatePageChange.fire(eventArg)})}function computePageCount(model){model.pageCount=Math.max(1,Math.floor((model.totalRange-1)/model.pageSize)+1)}function computePageLimit(model){return Math.min(model.totalRange,(model.pageIndex+1)*model.pageSize)}fluid.pager=function(){return fluid.pagerImpl.apply(null,arguments)};fluid.pager.directPageList=function(container,events,options){var that=fluid.initView("fluid.pager.directPageList",container,options);that.pageLinks=that.locate("pageLinks");for(var i=0;i<that.pageLinks.length;++i){var pageLink=that.pageLinks.eq(i);bindLinkClick(pageLink,events,{pageIndex:i})}events.onModelChange.addListener(function(newModel,oldModel){updateStyles(that,newModel,oldModel)});that.defaultModel={pageIndex:undefined,pageSize:1,totalRange:that.pageLinks.length};return that};fluid.iota=function(count,first){first=first||0;var togo=[];for(var i=0;i<count;++i){togo[togo.length]=first++}return togo};fluid.pager.everyPageStrategy=fluid.iota;fluid.pager.gappedPageStrategy=function(locality,midLocality){if(!locality){locality=3}if(!midLocality){midLocality=locality}return function(count,first,mid){var togo=[];var j=0;var lastSkip=false;for(var i=0;i<count;++i){if(i<locality||(count-i-1)<locality||(i>=mid-midLocality&&i<=mid+midLocality)){togo[j++]=i;lastSkip=false}else{if(!lastSkip){togo[j++]=-1;lastSkip=true}}}return togo}};fluid.pager.renderedPageList=function(container,events,pagerBarOptions,options,strings){options=$.extend(true,pagerBarOptions,options);var that=fluid.initView("fluid.pager.renderedPageList",container,options);options=that.options;var renderOptions={cutpoints:[{id:"page-link:link",selector:pagerBarOptions.selectors.pageLinks},{id:"page-link:skip",selector:pagerBarOptions.selectors.pageLinkSkip},{id:"page-link:disabled",selector:pagerBarOptions.selectors.pageLinkDisabled}]};if(options.linkBody){renderOptions.cutpoints[renderOptions.cutpoints.length]={id:"payload-component",selector:options.linkBody}}function pageToComponent(current){return function(page){return page===-1?{ID:"page-link:skip"}:{ID:page===current?"page-link:link":"page-link:link",localID:page+1,value:page+1,pageIndex:page,decorators:[{type:"jQuery",func:"click",args:function(){events.initiatePageChange.fire({pageIndex:page})}},{type:page===current?"addClass":"",classes:that.options.styles.currentPage}]}}}var root=that.locate("root");fluid.expectFilledSelector(root,"Error finding root template for fluid.pager.renderedPageList");var template=fluid.selfRender(root,{},renderOptions);events.onModelChange.addListener(function(newModel,oldModel){var pages=that.options.pageStrategy(newModel.pageCount,0,newModel.pageIndex);var pageTree=fluid.transform(pages,pageToComponent(newModel.pageIndex));pageTree[pageTree.length-1].value=pageTree[pageTree.length-1].value+strings.last;events.onRenderPageLinks.fire(pageTree,newModel);fluid.reRender(template,root,pageTree,renderOptions);updateStyles(that,newModel,oldModel)});return that};fluid.defaults("fluid.pager.renderedPageList",{selectors:{root:".flc-pager-links"},linkBody:"a",pageStrategy:fluid.pager.everyPageStrategy});var updatePreviousNext=function(that,options,newModel){if(newModel.pageIndex===0){that.previous.addClass(options.styles.disabled)}else{that.previous.removeClass(options.styles.disabled)}if(newModel.pageIndex===newModel.pageCount-1){that.next.addClass(options.styles.disabled)}else{that.next.removeClass(options.styles.disabled)}};fluid.pager.previousNext=function(container,events,options){var that=fluid.initView("fluid.pager.previousNext",container,options);that.previous=that.locate("previous");bindLinkClick(that.previous,events,{relativePage:-1});that.next=that.locate("next");bindLinkClick(that.next,events,{relativePage:+1});events.onModelChange.addListener(function(newModel,oldModel,overallThat){updatePreviousNext(that,options,newModel)});return that};fluid.pager.pagerBar=function(events,container,options,strings){var that=fluid.initView("fluid.pager.pagerBar",container,options);that.pageList=fluid.initSubcomponent(that,"pageList",[container,events,that.options,fluid.COMPONENT_OPTIONS,strings]);that.previousNext=fluid.initSubcomponent(that,"previousNext",[container,events,that.options,fluid.COMPONENT_OPTIONS,strings]);return that};fluid.defaults("fluid.pager.pagerBar",{previousNext:{type:"fluid.pager.previousNext"},pageList:{type:"fluid.pager.directPageList"},selectors:{pageLinks:".flc-pager-pageLink",pageLinkSkip:".flc-pager-pageLink-skip",pageLinkDisabled:".flc-pager-pageLink-disabled",previous:".flc-pager-previous",next:".flc-pager-next"},styles:{currentPage:"fl-pager-currentPage",disabled:"fl-pager-disabled"}});function getColumnDefs(that){return that.options.columnDefs}fluid.pager.findColumnDef=function(columnDefs,key){var columnDef=$.grep(columnDefs,function(def){return def.key===key})[0];return columnDef};function getRoots(target,overallThat,index){var cellRoot=(overallThat.options.dataOffset?overallThat.options.dataOffset+".":"");target.shortRoot=index;target.longRoot=cellRoot+target.shortRoot}function expandPath(EL,shortRoot,longRoot){if(EL.charAt(0)==="*"){return longRoot+EL.substring(1)}else{return EL.replace("*",shortRoot)}}fluid.pager.fetchValue=function(that,dataModel,index,valuebinding,roots){getRoots(roots,that,index);var path=expandPath(valuebinding,roots.shortRoot,roots.longRoot);return fluid.model.getBeanValue(dataModel,path)};fluid.pager.basicSorter=function(overallThat,model){var dataModel=overallThat.options.dataModel;var roots={};var columnDefs=getColumnDefs(overallThat);var columnDef=fluid.pager.findColumnDef(columnDefs,model.sortKey);var sortrecs=[];for(var i=0;i<model.totalRange;++i){sortrecs[i]={index:i,value:fluid.pager.fetchValue(overallThat,dataModel,i,columnDef.valuebinding,roots)}}var columnType=typeof sortrecs[0].value;function sortfunc(arec,brec){var a=arec.value;var b=brec.value;return a===b?0:(a>b?model.sortDir:-model.sortDir)}sortrecs.sort(sortfunc);return fluid.transform(sortrecs,function(row){return row.index})};fluid.pager.directModelFilter=function(model,pagerModel,perm){var togo=[];var limit=computePageLimit(pagerModel);for(var i=pagerModel.pageIndex*pagerModel.pageSize;i<limit;++i){var index=perm?perm[i]:i;togo[togo.length]={index:index,row:model[index]}}return togo};function expandVariables(value,opts){var togo="";var index=0;while(true){var nextindex=value.indexOf("${",index);if(nextindex===-1){togo+=value.substring(index);break}else{togo+=value.substring(index,nextindex);var endi=value.indexOf("}",nextindex+2);var EL=value.substring(nextindex+2,endi);if(EL==="VALUE"){EL=opts.EL}else{EL=expandPath(EL,opts.shortRoot,opts.longRoot)}var val=fluid.model.getBeanValue(opts.dataModel,EL);togo+=val;index=endi+1}}return togo}function expandPaths(target,tree,opts){for(var i in tree){var val=tree[i];if(val===fluid.VALUE){if(i==="valuebinding"){target[i]=opts.EL}else{target[i]={valuebinding:opts.EL}}}else{if(i==="valuebinding"){target[i]=expandPath(tree[i],opts)}else{if(typeof (val)==="object"){target[i]=val.length!==undefined?[]:{};expandPaths(target[i],val,opts)}else{if(typeof (val)==="string"){target[i]=expandVariables(val,opts)}else{target[i]=tree[i]}}}}}return target}function iDforColumn(columnDef,opts){var options=opts.options;var EL=columnDef.valuebinding;var key=columnDef.key;if(!EL){fluid.fail("Error in definition for column with key "+key+": valuebinding is not set")}opts.EL=expandPath(EL,opts.shortRoot,opts.longRoot);if(!key){var segs=fluid.model.parseEL(EL);key=segs[segs.length-1]}var ID=(options.keyPrefix?options.keyPrefix:"")+key;return ID}function expandColumnDefs(filteredRow,opts){var tree=fluid.transform(opts.columnDefs,function(columnDef){var ID=iDforColumn(columnDef,opts);var togo;if(!columnDef.components){return{ID:ID,valuebinding:opts.EL}}else{if(typeof columnDef.components==="function"){togo=columnDef.components(filteredRow.row,filteredRow.index)}else{togo=columnDef.components}}togo=expandPaths({},togo,opts);togo.ID=ID;return togo});return tree}function fetchModel(overallThat){return fluid.model.getBeanValue(overallThat.options.dataModel,overallThat.options.dataOffset)}function bigHeaderForKey(key,opts){var id=opts.options.renderOptions.idMap["header:"+key];var smallHeader=fluid.jById(id);if(smallHeader.length===0){return null}var headerSortStylisticOffset=opts.overallOptions.selectors.headerSortStylisticOffset;var bigHeader=fluid.findAncestor(smallHeader,function(element){return $(element).is(headerSortStylisticOffset)});return bigHeader}function setSortHeaderClass(styles,element,sort){element=$(element);element.removeClass(styles.ascendingHeader);element.removeClass(styles.descendingHeader);if(sort!==0){element.addClass(sort===1?styles.ascendingHeader:styles.descendingHeader)}}function isCurrentColumnSortable(columnDefs,model){var columnDef=model.sortKey?fluid.pager.findColumnDef(columnDefs,model.sortKey):null;return columnDef?columnDef.sortable:false}function setModelSortHeaderClass(newModel,opts){var styles=opts.overallOptions.styles;var sort=isCurrentColumnSortable(opts.columnDefs,newModel)?newModel.sortDir:0;setSortHeaderClass(styles,bigHeaderForKey(newModel.sortKey,opts),sort)}function fireModelChange(that,newModel,forceUpdate){computePageCount(newModel);if(newModel.pageIndex>=newModel.pageCount){newModel.pageIndex=newModel.pageCount-1}if(forceUpdate||newModel.pageIndex!==that.model.pageIndex||newModel.pageSize!==that.model.pageSize||newModel.sortKey!==that.model.sortKey||newModel.sortDir!==that.model.sortDir){var sorted=isCurrentColumnSortable(getColumnDefs(that),newModel)?that.options.sorter(that,newModel):null;that.permutation=sorted;that.events.onModelChange.fire(newModel,that.model,that);fluid.model.copyModel(that.model,newModel)}}function generateColumnClick(overallThat,columnDef,opts){return function(){if(columnDef.sortable===true){var model=overallThat.model;var newModel=fluid.copy(model);var styles=overallThat.options.styles;var oldKey=model.sortKey;if(columnDef.key!==model.sortKey){newModel.sortKey=columnDef.key;newModel.sortDir=1;var oldBig=bigHeaderForKey(oldKey,opts);if(oldBig){setSortHeaderClass(styles,oldBig,0)}}else{if(newModel.sortKey===columnDef.key){newModel.sortDir=-1*newModel.sortDir}else{return false}}newModel.pageIndex=0;fireModelChange(overallThat,newModel,true);setModelSortHeaderClass(newModel,opts)}return false}}function fetchHeaderDecorators(decorators,columnDef){return decorators[columnDef.sortable?"sortableHeader":"unsortableHeader"]}function generateHeader(overallThat,newModel,columnDefs,opts){return{children:fluid.transform(columnDefs,function(columnDef){return{ID:iDforColumn(columnDef,opts),value:columnDef.label,decorators:[{jQuery:["click",generateColumnClick(overallThat,columnDef,opts)]},{identify:"header:"+columnDef.key}].concat(fetchHeaderDecorators(opts.overallOptions.decorators,columnDef))}})}}fluid.pager.selfRender=function(overallThat,inOptions){var that=fluid.initView("fluid.pager.selfRender",overallThat.container,inOptions);var options=that.options;options.renderOptions.idMap=options.renderOptions.idMap||{};var idMap=options.renderOptions.idMap;var root=that.locate("root");var template=fluid.selfRender(root,{},options.renderOptions);root.addClass(options.styles.root);var columnDefs=getColumnDefs(overallThat);var expOpts={options:options,columnDefs:columnDefs,overallOptions:overallThat.options,dataModel:overallThat.options.dataModel,idMap:idMap};var directModel=fetchModel(overallThat);return{returnedOptions:{listeners:{onModelChange:function(newModel,oldModel){var filtered=overallThat.options.modelFilter(directModel,newModel,overallThat.permutation);var tree=fluid.transform(filtered,function(filteredRow){var roots=getRoots(expOpts,overallThat,filteredRow.index);if(columnDefs==="explode"){return fluid.explode(filteredRow.row,root)}else{if(columnDefs.length){return expandColumnDefs(filteredRow,expOpts)}}});var fullTree={};fullTree[options.row]=tree;if(typeof (columnDefs)==="object"){fullTree[options.header]=generateHeader(overallThat,newModel,columnDefs,expOpts)}options.renderOptions=options.renderOptions||{};options.renderOptions.model=expOpts.dataModel;fluid.reRender(template,root,fullTree,options.renderOptions);setModelSortHeaderClass(newModel,expOpts)}}}}};fluid.defaults("fluid.pager.selfRender",{selectors:{root:".flc-pager-body-template"},styles:{root:"fl-pager"},keyStrategy:"id",keyPrefix:"",row:"row:",header:"header:",renderOptions:{}});fluid.pager.summary=function(dom,options){var node=dom.locate("summary");return{returnedOptions:{listeners:{onModelChange:function(newModel,oldModel){var text=fluid.stringTemplate(options.message,{first:newModel.pageIndex*newModel.pageSize+1,last:computePageLimit(newModel),total:newModel.totalRange});if(node.length>0){node.text(text)}}}}}};fluid.pager.directPageSize=function(that){var node=that.locate("pageSize");if(node.length>0){that.events.onModelChange.addListener(function(newModel,oldModel){if(node.val()!==newModel.pageSize){node.val(newModel.pageSize)}});node.change(function(){that.events.initiatePageSizeChange.fire(node.val())})}return that};fluid.pager.rangeAnnotator=function(that,options){var roots={};that.events.onRenderPageLinks.addListener(function(tree,newModel){var column=that.options.annotateColumnRange;var dataModel=that.options.dataModel;var columnDefs=getColumnDefs(that);if(!column||!dataModel||!columnDefs){return }var columnDef=fluid.pager.findColumnDef(columnDefs,column);function fetchValue(index){index=that.permutation?that.permutation[index]:index;return fluid.pager.fetchValue(that,dataModel,index,columnDef.valuebinding,roots)}var tModel={};fluid.model.copyModel(tModel,newModel);fluid.transform(tree,function(cell){if(cell.ID==="page-link:link"){var page=cell.pageIndex;var start=page*tModel.pageSize;tModel.pageIndex=page;var limit=computePageLimit(tModel);var iValue=fetchValue(start);var lValue=fetchValue(limit-1);var text="<b>"+iValue+"</b><br/>&mdash;<br/><b>"+lValue+"</b>";var decorator={type:"jQuery",func:"tooltip",args:{delay:that.options.tooltipDelay,extraClass:that.options.styles.tooltip,bodyHandler:function(){return text},showURL:false,id:that.options.tooltipId}};cell.decorators.push(decorator)}})})};fluid.pagerImpl=function(container,options){var that=fluid.initView("fluid.pager",container,options);var pageIndexConformer=function(model,changeRequest){if(changeRequest.value<0){changeRequest.value=0}};that.events.initiatePageChange.addListener(function(arg){var newModel=fluid.copy(that.model);if(arg.relativePage!==undefined){newModel.pageIndex=that.model.pageIndex+arg.relativePage}else{newModel.pageIndex=arg.pageIndex}if(newModel.pageIndex===undefined||newModel.pageIndex<0){newModel.pageIndex=0}fireModelChange(that,newModel,arg.forceUpdate)});that.events.initiatePageSizeChange.addListener(function(arg){var newModel=fluid.copy(that.model);newModel.pageSize=arg;fireModelChange(that,newModel)});var pagerBarElement=that.locate("pagerBar");if(pagerBarElement.length>0){that.pagerBar=fluid.initSubcomponent(that,"pagerBar",[that.events,pagerBarElement,fluid.COMPONENT_OPTIONS,that.options.strings])}var pagerBarSecondaryElement=that.locate("pagerBarSecondary");if(pagerBarSecondaryElement.length>0){that.pagerBarSecondary=fluid.initSubcomponent(that,"pagerBar",[that.events,pagerBarSecondaryElement,fluid.COMPONENT_OPTIONS,that.options.strings])}that.bodyRenderer=fluid.initSubcomponent(that,"bodyRenderer",[that,fluid.COMPONENT_OPTIONS]);that.summary=fluid.initSubcomponent(that,"summary",[that.dom,fluid.COMPONENT_OPTIONS]);that.pageSize=fluid.initSubcomponent(that,"pageSize",[that]);that.rangeAnnotator=fluid.initSubcomponent(that,"rangeAnnotator",[that,fluid.COMPONENT_OPTIONS]);that.model=fluid.copy(that.options.model);var dataModel=fetchModel(that);if(dataModel){that.model.totalRange=dataModel.length}if(that.model.totalRange===undefined){if(!that.pagerBar){fluid.fail("Error in Pager configuration - cannot determine total range,  since not configured in model.totalRange and no PagerBar is configured")}that.model=that.pagerBar.pageList.defaultModel}that.applier=fluid.makeChangeApplier(that.model);that.events.initiatePageChange.fire({pageIndex:that.model.pageIndex?that.model.pageIndex:0,forceUpdate:true});return that};fluid.defaults("fluid.pager",{pagerBar:{type:"fluid.pager.pagerBar",options:null},summary:{type:"fluid.pager.summary",options:{message:"%first-%last of %total items"}},pageSize:{type:"fluid.pager.directPageSize"},modelFilter:fluid.pager.directModelFilter,sorter:fluid.pager.basicSorter,bodyRenderer:{type:"fluid.emptySubcomponent"},model:{pageIndex:undefined,pageSize:10,totalRange:undefined},dataModel:undefined,dataOffset:"",columnDefs:"explode",annotateColumnRange:undefined,tooltipDelay:300,tooltipId:"tooltip",rangeAnnotator:{type:"fluid.pager.rangeAnnotator"},selectors:{pagerBar:".flc-pager-top",pagerBarSecondary:".flc-pager-bottom",summary:".flc-pager-summary",pageSize:".flc-pager-page-size",headerSortStylisticOffset:".flc-pager-sort-header"},styles:{tooltip:"fl-pager-tooltip",ascendingHeader:"fl-pager-asc",descendingHeader:"fl-pager-desc"},decorators:{sortableHeader:[],unsortableHeader:[]},strings:{last:" (last)"},events:{initiatePageChange:null,initiatePageSizeChange:null,onModelChange:null,onRenderPageLinks:null}})})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){function updateStyles(pageListThat,newModel,oldModel){if(!pageListThat.pageLinks){return }if(oldModel.pageIndex!==undefined){var oldLink=pageListThat.pageLinks.eq(oldModel.pageIndex);oldLink.removeClass(pageListThat.options.styles.currentPage)}var pageLink=pageListThat.pageLinks.eq(newModel.pageIndex);pageLink.addClass(pageListThat.options.styles.currentPage)}function bindLinkClick(link,events,eventArg){link.unbind("click.fluid.pager");link.bind("click.fluid.pager",function(){events.initiatePageChange.fire(eventArg)})}function computePageCount(model){model.pageCount=Math.max(1,Math.floor((model.totalRange-1)/model.pageSize)+1)}fluid.pager=function(){return fluid.pagerImpl.apply(null,arguments)};fluid.pager.computePageLimit=function(model){return Math.min(model.totalRange,(model.pageIndex+1)*model.pageSize)};fluid.pager.directPageList=function(container,events,options){var that=fluid.initView("fluid.pager.directPageList",container,options);that.pageLinks=that.locate("pageLinks");for(var i=0;i<that.pageLinks.length;++i){var pageLink=that.pageLinks.eq(i);bindLinkClick(pageLink,events,{pageIndex:i})}events.onModelChange.addListener(function(newModel,oldModel){updateStyles(that,newModel,oldModel)});that.defaultModel={pageIndex:undefined,pageSize:1,totalRange:that.pageLinks.length};return that};fluid.iota=function(count,first){first=first||0;var togo=[];for(var i=0;i<count;++i){togo[togo.length]=first++}return togo};fluid.pager.everyPageStrategy=fluid.iota;fluid.pager.gappedPageStrategy=function(locality,midLocality){if(!locality){locality=3}if(!midLocality){midLocality=locality}return function(count,first,mid){var togo=[];var j=0;var lastSkip=false;for(var i=0;i<count;++i){if(i<locality||(count-i-1)<locality||(i>=mid-midLocality&&i<=mid+midLocality)){togo[j++]=i;lastSkip=false}else{if(!lastSkip){togo[j++]=-1;lastSkip=true}}}return togo}};fluid.pager.consistentGappedPageStrategy=function(endLinkCount,midLinkCount){if(!endLinkCount){endLinkCount=1}if(!midLinkCount){midLinkCount=endLinkCount}var endWidth=endLinkCount+2+midLinkCount;return function(count,first,mid){var pages=[];var anchoredLeft=mid<endWidth;var anchoredRight=mid>=count-endWidth;var anchoredEndWidth=endWidth+midLinkCount;var midStart=mid-midLinkCount;var midEnd=mid+midLinkCount;var lastSkip=false;for(var page=0;page<count;page++){if(page<endLinkCount||count-page<=endLinkCount||(anchoredLeft&&page<anchoredEndWidth)||(anchoredRight&&page>=count-anchoredEndWidth)||(page>=midStart&&page<=midEnd)){pages.push(page);lastSkip=false}else{if(!lastSkip){pages.push(-1);lastSkip=true}}}return pages}};fluid.pager.renderedPageList=function(container,events,pagerBarOptions,options,strings){options=$.extend(true,pagerBarOptions,options);var that=fluid.initView("fluid.pager.renderedPageList",container,options);options=that.options;var idMap={};var renderOptions={cutpoints:[{id:"page-link:link",selector:pagerBarOptions.selectors.pageLinks},{id:"page-link:skip",selector:pagerBarOptions.selectors.pageLinkSkip}],idMap:idMap};if(options.linkBody){renderOptions.cutpoints[renderOptions.cutpoints.length]={id:"payload-component",selector:options.linkBody}}var assembleComponent=function(page,isCurrent){var obj={ID:"page-link:link",localID:page+1,value:page+1,pageIndex:page,decorators:[{type:"jQuery",func:"click",args:function(event){events.initiatePageChange.fire({pageIndex:page});event.preventDefault()}}]};if(isCurrent){obj.current=true;obj.decorators=obj.decorators.concat([{type:"addClass",classes:that.options.styles.currentPage},{type:"jQuery",func:"attr",args:["aria-label",that.options.strings.currentPageIndexMsg]}])}return obj};function pageToComponent(current){return function(page){return page===-1?{ID:"page-link:skip"}:assembleComponent(page,page===current)}}var root=that.locate("root");fluid.expectFilledSelector(root,"Error finding root template for fluid.pager.renderedPageList");var template=fluid.selfRender(root,{},renderOptions);events.onModelChange.addListener(function(newModel,oldModel){var pages=that.options.pageStrategy(newModel.pageCount,0,newModel.pageIndex);var pageTree=fluid.transform(pages,pageToComponent(newModel.pageIndex));if(pageTree.length>1){pageTree[pageTree.length-1].value=pageTree[pageTree.length-1].value+strings.last}events.onRenderPageLinks.fire(pageTree,newModel);$.each(idMap,function(key,id){var pageLink=fluid.jById(id);if(pageLink.tooltip){pageLink.tooltip("destroy")}});fluid.reRender(template,root,pageTree,renderOptions);updateStyles(that,newModel,oldModel)});return that};fluid.defaults("fluid.pager.renderedPageList",{selectors:{root:".flc-pager-links"},linkBody:"a",pageStrategy:fluid.pager.everyPageStrategy});var updatePreviousNext=function(that,options,newModel){if(newModel.pageIndex===0){that.previous.addClass(options.styles.disabled)}else{that.previous.removeClass(options.styles.disabled)}if(newModel.pageIndex===newModel.pageCount-1){that.next.addClass(options.styles.disabled)}else{that.next.removeClass(options.styles.disabled)}};fluid.pager.previousNext=function(container,events,options){var that=fluid.initView("fluid.pager.previousNext",container,options);that.previous=that.locate("previous");bindLinkClick(that.previous,events,{relativePage:-1});that.next=that.locate("next");bindLinkClick(that.next,events,{relativePage:+1});events.onModelChange.addListener(function(newModel,oldModel,overallThat){updatePreviousNext(that,options,newModel)});return that};fluid.pager.pagerBar=function(events,container,options,strings){var that=fluid.initView("fluid.pager.pagerBar",container,options);that.pageList=fluid.initSubcomponent(that,"pageList",[container,events,that.options,fluid.COMPONENT_OPTIONS,strings]);that.previousNext=fluid.initSubcomponent(that,"previousNext",[container,events,that.options,fluid.COMPONENT_OPTIONS,strings]);return that};fluid.defaults("fluid.pager.pagerBar",{previousNext:{type:"fluid.pager.previousNext"},pageList:{type:"fluid.pager.renderedPageList",options:{pageStrategy:fluid.pager.gappedPageStrategy(3,1)}},selectors:{pageLinks:".flc-pager-pageLink",pageLinkSkip:".flc-pager-pageLink-skip",previous:".flc-pager-previous",next:".flc-pager-next"},styles:{currentPage:"fl-pager-currentPage",disabled:"fl-pager-disabled"},strings:{currentPageIndexMsg:"Current page"}});function getColumnDefs(that){return that.options.columnDefs}fluid.pager.findColumnDef=function(columnDefs,key){var columnDef=$.grep(columnDefs,function(def){return def.key===key})[0];return columnDef};function getRoots(target,overallThat,index){var cellRoot=(overallThat.options.dataOffset?overallThat.options.dataOffset+".":"");target.shortRoot=index;target.longRoot=cellRoot+target.shortRoot}function expandPath(EL,shortRoot,longRoot){if(EL.charAt(0)==="*"){return longRoot+EL.substring(1)}else{return EL.replace("*",shortRoot)}}fluid.pager.fetchValue=function(that,dataModel,index,valuebinding,roots){getRoots(roots,that,index);var path=expandPath(valuebinding,roots.shortRoot,roots.longRoot);return fluid.get(dataModel,path)};fluid.pager.basicSorter=function(overallThat,model){var dataModel=overallThat.options.dataModel;var roots={};var columnDefs=getColumnDefs(overallThat);var columnDef=fluid.pager.findColumnDef(columnDefs,model.sortKey);var sortrecs=[];for(var i=0;i<model.totalRange;++i){sortrecs[i]={index:i,value:fluid.pager.fetchValue(overallThat,dataModel,i,columnDef.valuebinding,roots)}}function sortfunc(arec,brec){var a=arec.value;var b=brec.value;return a===b?0:(a>b?model.sortDir:-model.sortDir)}sortrecs.sort(sortfunc);return fluid.transform(sortrecs,function(row){return row.index})};fluid.pager.directModelFilter=function(model,pagerModel,perm){var togo=[];var limit=fluid.pager.computePageLimit(pagerModel);for(var i=pagerModel.pageIndex*pagerModel.pageSize;i<limit;++i){var index=perm?perm[i]:i;togo[togo.length]={index:index,row:model[index]}}return togo};function expandVariables(value,opts){var togo="";var index=0;while(true){var nextindex=value.indexOf("${",index);if(nextindex===-1){togo+=value.substring(index);break}else{togo+=value.substring(index,nextindex);var endi=value.indexOf("}",nextindex+2);var EL=value.substring(nextindex+2,endi);if(EL==="VALUE"){EL=opts.EL}else{EL=expandPath(EL,opts.shortRoot,opts.longRoot)}var val=fluid.get(opts.dataModel,EL);togo+=val;index=endi+1}}return togo}function expandPaths(target,tree,opts){for(var i in tree){var val=tree[i];if(val===fluid.VALUE){if(i==="valuebinding"){target[i]=opts.EL}else{target[i]={valuebinding:opts.EL}}}else{if(i==="valuebinding"){target[i]=expandPath(tree[i],opts)}else{if(typeof (val)==="object"){target[i]=val.length!==undefined?[]:{};expandPaths(target[i],val,opts)}else{if(typeof (val)==="string"){target[i]=expandVariables(val,opts)}else{target[i]=tree[i]}}}}}return target}function iDforColumn(columnDef,opts){var options=opts.options;var EL=columnDef.valuebinding;var key=columnDef.key;if(!EL){fluid.fail("Error in definition for column with key "+key+": valuebinding is not set")}opts.EL=expandPath(EL,opts.shortRoot,opts.longRoot);if(!key){var segs=fluid.model.parseEL(EL);key=segs[segs.length-1]}var ID=(options.keyPrefix?options.keyPrefix:"")+key;return ID}function expandColumnDefs(filteredRow,opts){var tree=fluid.transform(opts.columnDefs,function(columnDef){var ID=iDforColumn(columnDef,opts);var togo;if(!columnDef.components){return{ID:ID,valuebinding:opts.EL}}else{if(typeof columnDef.components==="function"){togo=columnDef.components(filteredRow.row,filteredRow.index)}else{togo=columnDef.components}}togo=expandPaths({},togo,opts);togo.ID=ID;return togo});return tree}function fetchModel(overallThat){return fluid.get(overallThat.options.dataModel,overallThat.options.dataOffset)}function bigHeaderForKey(key,opts){var id=opts.options.renderOptions.idMap["header:"+key];var smallHeader=fluid.jById(id);if(smallHeader.length===0){return null}var headerSortStylisticOffset=opts.overallOptions.selectors.headerSortStylisticOffset;var bigHeader=fluid.findAncestor(smallHeader,function(element){return $(element).is(headerSortStylisticOffset)});return bigHeader}function setSortHeaderClass(styles,element,sort){element=$(element);element.removeClass(styles.ascendingHeader);element.removeClass(styles.descendingHeader);if(sort!==0){element.addClass(sort===1?styles.ascendingHeader:styles.descendingHeader);element.attr("aria-sort",sort===1?"ascending":"descending")}}function isCurrentColumnSortable(columnDefs,model){var columnDef=model.sortKey?fluid.pager.findColumnDef(columnDefs,model.sortKey):null;return columnDef?columnDef.sortable:false}function setModelSortHeaderClass(newModel,opts){var styles=opts.overallOptions.styles;var sort=isCurrentColumnSortable(opts.columnDefs,newModel)?newModel.sortDir:0;setSortHeaderClass(styles,bigHeaderForKey(newModel.sortKey,opts),sort)}function fireModelChange(that,newModel,forceUpdate){computePageCount(newModel);if(newModel.pageIndex>=newModel.pageCount){newModel.pageIndex=newModel.pageCount-1}if(forceUpdate||newModel.pageIndex!==that.model.pageIndex||newModel.pageSize!==that.model.pageSize||newModel.sortKey!==that.model.sortKey||newModel.sortDir!==that.model.sortDir){var sorted=isCurrentColumnSortable(getColumnDefs(that),newModel)?that.options.sorter(that,newModel):null;that.permutation=sorted;that.events.onModelChange.fire(newModel,that.model,that);fluid.model.copyModel(that.model,newModel)}}function generateColumnClick(overallThat,columnDef,opts){return function(){if(columnDef.sortable===true){var model=overallThat.model;var newModel=fluid.copy(model);var styles=overallThat.options.styles;var oldKey=model.sortKey;if(columnDef.key!==model.sortKey){newModel.sortKey=columnDef.key;newModel.sortDir=1;var oldBig=bigHeaderForKey(oldKey,opts);if(oldBig){setSortHeaderClass(styles,oldBig,0)}}else{if(newModel.sortKey===columnDef.key){newModel.sortDir=-1*newModel.sortDir}else{return false}}newModel.pageIndex=0;fireModelChange(overallThat,newModel,true);setModelSortHeaderClass(newModel,opts)}return false}}function fetchHeaderDecorators(decorators,columnDef){return decorators[columnDef.sortable?"sortableHeader":"unsortableHeader"]}function generateHeader(overallThat,newModel,columnDefs,opts){var sortableColumnTxt=opts.options.strings.sortableColumnText;if(newModel.sortDir===1){sortableColumnTxt=opts.options.strings.sortableColumnTextAsc}else{if(newModel.sortDir===-1){sortableColumnTxt=opts.options.strings.sortableColumnTextDesc}}return{children:fluid.transform(columnDefs,function(columnDef){return{ID:iDforColumn(columnDef,opts),value:columnDef.label,decorators:[{jQuery:["click",generateColumnClick(overallThat,columnDef,opts)]},{identify:"header:"+columnDef.key},{type:"attrs",attributes:{title:(columnDef.key===newModel.sortKey)?sortableColumnTxt:opts.options.strings.sortableColumnText}}].concat(fetchHeaderDecorators(opts.overallOptions.decorators,columnDef))}})}}fluid.pager.selfRender=function(overallThat,inOptions){var that=fluid.initView("fluid.pager.selfRender",overallThat.container,inOptions);var options=that.options;options.renderOptions.idMap=options.renderOptions.idMap||{};var idMap=options.renderOptions.idMap;var root=that.locate("root");var template=fluid.selfRender(root,{},options.renderOptions);root.addClass(options.styles.root);var columnDefs=getColumnDefs(overallThat);var expOpts={options:options,columnDefs:columnDefs,overallOptions:overallThat.options,dataModel:overallThat.options.dataModel,idMap:idMap};var directModel=fetchModel(overallThat);return{returnedOptions:{listeners:{onModelChange:function(newModel,oldModel){var filtered=overallThat.options.modelFilter(directModel,newModel,overallThat.permutation);var tree=fluid.transform(filtered,function(filteredRow){getRoots(expOpts,overallThat,filteredRow.index);if(columnDefs==="explode"){return fluid.explode(filteredRow.row,expOpts.longRoot)}else{if(columnDefs.length){return expandColumnDefs(filteredRow,expOpts)}}});var fullTree={};fullTree[options.row]=tree;if(typeof (columnDefs)==="object"){fullTree[options.header]=generateHeader(overallThat,newModel,columnDefs,expOpts)}options.renderOptions=options.renderOptions||{};options.renderOptions.model=expOpts.dataModel;fluid.reRender(template,root,fullTree,options.renderOptions);overallThat.events.afterRender.fire(overallThat);setModelSortHeaderClass(newModel,expOpts)}}}}};fluid.defaults("fluid.pager.selfRender",{selectors:{root:".flc-pager-body-template"},styles:{root:"fl-pager"},keyStrategy:"id",keyPrefix:"",row:"row:",header:"header:",strings:{sortableColumnText:"Select to sort",sortableColumnTextDesc:"Select to sort in ascending, currently in descending order.",sortableColumnTextAsc:"Select to sort in descending, currently in ascending order."},renderOptions:{}});fluid.pager.summaryAria=function(element){element.attr({"aria-relevant":"all","aria-atomic":"false","aria-live":"assertive",role:"status"})};fluid.pager.summary=function(dom,options){var node=dom.locate("summary");fluid.pager.summaryAria(node);return{returnedOptions:{listeners:{onModelChange:function(newModel,oldModel){var text=fluid.stringTemplate(options.message,{first:newModel.pageIndex*newModel.pageSize+1,last:fluid.pager.computePageLimit(newModel),total:newModel.totalRange,currentPage:newModel.pageIndex+1});if(node.length>0){node.text(text)}}}}}};fluid.pager.directPageSize=function(that){var node=that.locate("pageSize");if(node.length>0){that.events.onModelChange.addListener(function(newModel,oldModel){if(node.val()!==newModel.pageSize){node.val(newModel.pageSize)}});node.change(function(){that.events.initiatePageSizeChange.fire(node.val())})}};fluid.pager.rangeAnnotator=function(that,options){var roots={};that.events.onRenderPageLinks.addListener(function(tree,newModel){var column=that.options.annotateColumnRange;var dataModel=that.options.dataModel;var columnDefs=getColumnDefs(that);if(!column||!dataModel||!columnDefs){return }var columnDef=fluid.pager.findColumnDef(columnDefs,column);function fetchValue(index){index=that.permutation?that.permutation[index]:index;return fluid.pager.fetchValue(that,dataModel,index,columnDef.valuebinding,roots)}var tModel={};fluid.model.copyModel(tModel,newModel);fluid.transform(tree,function(cell){if(cell.ID==="page-link:link"){var page=cell.pageIndex;var start=page*tModel.pageSize;tModel.pageIndex=page;var limit=fluid.pager.computePageLimit(tModel);var iValue=fetchValue(start);var lValue=fetchValue(limit-1);var tooltipOpts=fluid.copy(that.options.tooltip.options)||{};if(!tooltipOpts.content){tooltipOpts.content=function(){return fluid.stringTemplate(that.options.markup.rangeAnnotation,{first:iValue,last:lValue})}}if(!cell.current){var decorators=[{type:"fluid",func:that.options.tooltip.type,options:tooltipOpts},{identify:page}];cell.decorators=cell.decorators.concat(decorators)}}})})};fluid.pagerImpl=function(container,options){var that=fluid.initView("fluid.pager",container,options);that.container.attr("role","application");that.events.initiatePageChange.addListener(function(arg){var newModel=fluid.copy(that.model);if(arg.relativePage!==undefined){newModel.pageIndex=that.model.pageIndex+arg.relativePage}else{newModel.pageIndex=arg.pageIndex}if(newModel.pageIndex===undefined||newModel.pageIndex<0){newModel.pageIndex=0}fireModelChange(that,newModel,arg.forceUpdate)});that.events.initiatePageSizeChange.addListener(function(arg){var newModel=fluid.copy(that.model);newModel.pageSize=arg;fireModelChange(that,newModel)});var pagerBarElement=that.locate("pagerBar");if(pagerBarElement.length>0){that.pagerBar=fluid.initSubcomponent(that,"pagerBar",[that.events,pagerBarElement,fluid.COMPONENT_OPTIONS,that.options.strings])}var pagerBarSecondaryElement=that.locate("pagerBarSecondary");if(pagerBarSecondaryElement.length>0){that.pagerBarSecondary=fluid.initSubcomponent(that,"pagerBar",[that.events,pagerBarSecondaryElement,fluid.COMPONENT_OPTIONS,that.options.strings])}that.bodyRenderer=fluid.initSubcomponent(that,"bodyRenderer",[that,fluid.COMPONENT_OPTIONS]);that.summary=fluid.initSubcomponent(that,"summary",[that.dom,fluid.COMPONENT_OPTIONS]);that.pageSize=fluid.initSubcomponent(that,"pageSize",[that]);that.rangeAnnotator=fluid.initSubcomponent(that,"rangeAnnotator",[that,fluid.COMPONENT_OPTIONS]);that.model=fluid.copy(that.options.model);var dataModel=fetchModel(that);if(dataModel){that.model.totalRange=dataModel.length}if(that.model.totalRange===undefined){if(!that.pagerBar){fluid.fail("Error in Pager configuration - cannot determine total range,  since not configured in model.totalRange and no PagerBar is configured")}that.model=that.pagerBar.pageList.defaultModel}that.applier=fluid.makeChangeApplier(that.model);that.events.initiatePageChange.fire({pageIndex:that.model.pageIndex?that.model.pageIndex:0,forceUpdate:true});return that};fluid.defaults("fluid.pager",{mergePolicy:{dataModel:"preserve",model:"preserve"},pagerBar:{type:"fluid.pager.pagerBar"},summary:{type:"fluid.pager.summary",options:{message:"Viewing page %currentPage. Showing records %first - %last of %total items."}},pageSize:{type:"fluid.pager.directPageSize"},modelFilter:fluid.pager.directModelFilter,sorter:fluid.pager.basicSorter,bodyRenderer:{type:"fluid.pager.selfRender"},model:{pageIndex:undefined,pageSize:10,totalRange:undefined},dataModel:undefined,dataOffset:"",columnDefs:[],annotateColumnRange:undefined,tooltip:{type:"fluid.tooltip"},rangeAnnotator:{type:"fluid.pager.rangeAnnotator"},selectors:{pagerBar:".flc-pager-top",pagerBarSecondary:".flc-pager-bottom",summary:".flc-pager-summary",pageSize:".flc-pager-page-size",headerSortStylisticOffset:".flc-pager-sort-header"},styles:{ascendingHeader:"fl-pager-asc",descendingHeader:"fl-pager-desc"},decorators:{sortableHeader:[],unsortableHeader:[]},strings:{last:" (last)"},events:{initiatePageChange:null,initiatePageSizeChange:null,onModelChange:null,onRenderPageLinks:null,afterRender:null},markup:{rangeAnnotation:"<b> %first </b><br/>&mdash;<br/><b> %last </b>"}})})(jQuery,fluid_1_4);
\ No newline at end of file
index c1989c2..a310cff 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var animateDisplay=function(elm,animation,defaultAnimation){animation=(animation)?animation:defaultAnimation;elm.animate(animation.params,animation.duration,animation.callback)};var animateProgress=function(elm,width,speed){elm.queue("fx",[]);elm.animate({width:width,queue:false},speed)};var showProgress=function(that,animation){if(animation===false){that.displayElement.show()}else{animateDisplay(that.displayElement,animation,that.options.showAnimation)}};var hideProgress=function(that,delay,animation){delay=(delay===null||isNaN(delay))?that.options.delay:delay;if(delay){var timeOut=setTimeout(function(){hideProgress(that,0,animation)},delay)}else{if(animation===false){that.displayElement.hide()}else{animateDisplay(that.displayElement,animation,that.options.hideAnimation)}}};var updateWidth=function(that,newWidth,dontAnimate){dontAnimate=dontAnimate||false;var currWidth=that.indicator.width();var direction=that.options.animate;if((newWidth>currWidth)&&(direction==="both"||direction==="forward")&&!dontAnimate){animateProgress(that.indicator,newWidth,that.options.speed)}else{if((newWidth<currWidth)&&(direction==="both"||direction==="backward")&&!dontAnimate){animateProgress(that.indicator,newWidth,that.options.speed)}else{that.indicator.width(newWidth)}}};var percentToPixels=function(that,percent){return Math.round((Math.min(percent,100)*that.progressBar.width())/100)};var refreshRelativeWidth=function(that){var pixels=Math.max(percentToPixels(that,parseFloat(that.storedPercent)),that.options.minWidth);updateWidth(that,pixels,true)};var initARIA=function(ariaElement){ariaElement.attr("role","progressbar");ariaElement.attr("aria-valuemin","0");ariaElement.attr("aria-valuemax","100");ariaElement.attr("aria-live","assertive");ariaElement.attr("aria-busy","false");ariaElement.attr("aria-valuenow","0");ariaElement.attr("aria-valuetext","")};var updateARIA=function(that,percent){var busy=percent<100&&percent>0;that.ariaElement.attr("aria-busy",busy);that.ariaElement.attr("aria-valuenow",percent);if(busy){var busyString=fluid.stringTemplate(that.options.ariaBusyText,{percentComplete:percent});that.ariaElement.attr("aria-valuetext",busyString)}else{if(percent===100){that.ariaElement.attr("aria-valuetext",that.options.ariaDoneText)}}};var updateText=function(label,value){label.html(value)};var repositionIndicator=function(that){that.indicator.css("top",that.progressBar.position().top).css("left",0).height(that.progressBar.height());refreshRelativeWidth(that)};var updateProgress=function(that,percent,labelText,animationForShow){showProgress(that,animationForShow);if(percent!==null){that.storedPercent=percent;var pixels=Math.max(percentToPixels(that,parseFloat(percent)),that.options.minWidth);updateWidth(that,pixels)}if(labelText!==null){updateText(that.label,labelText)}if(that.ariaElement){updateARIA(that,percent)}};var setupProgress=function(that){that.displayElement=that.locate("displayElement");if(that.options.initiallyHidden){that.displayElement.hide()}that.progressBar=that.locate("progressBar");that.label=that.locate("label");that.indicator=that.locate("indicator");that.ariaElement=that.locate("ariaElement");that.indicator.width(that.options.minWidth);that.storedPercent=0;if(that.ariaElement){initARIA(that.ariaElement)}};fluid.progress=function(container,options){var that=fluid.initView("fluid.progress",container,options);setupProgress(that);that.show=function(animation){showProgress(that,animation)};that.hide=function(delay,animation){hideProgress(that,delay,animation)};that.update=function(percentage,labelValue,animationForShow){updateProgress(that,percentage,labelValue,animationForShow)};that.refreshView=function(){repositionIndicator(that)};return that};fluid.defaults("fluid.progress",{selectors:{displayElement:".flc-progress",progressBar:".flc-progress-bar",indicator:".flc-progress-indicator",label:".flc-progress-label",ariaElement:".flc-progress-bar"},showAnimation:{params:{opacity:"show"},duration:"slow",callback:null},hideAnimation:{params:{opacity:"hide"},duration:"slow",callback:null},minWidth:5,delay:0,speed:200,animate:"forward",initiallyHidden:true,updatePosition:false,ariaBusyText:"Progress is %percentComplete percent complete",ariaDoneText:"Progress is complete."})})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){var animateDisplay=function(elm,animation,defaultAnimation){animation=(animation)?animation:defaultAnimation;elm.animate(animation.params,animation.duration,animation.callback)};var animateProgress=function(elm,width,speed){elm.queue("fx",[]);elm.animate({width:width,queue:false},speed)};var showProgress=function(that,animation){if(animation===false){that.displayElement.show()}else{animateDisplay(that.displayElement,animation,that.options.showAnimation)}};var hideProgress=function(that,delay,animation){delay=(delay===null||isNaN(delay))?that.options.delay:delay;if(delay){var timeOut=setTimeout(function(){hideProgress(that,0,animation)},delay)}else{if(animation===false){that.displayElement.hide()}else{animateDisplay(that.displayElement,animation,that.options.hideAnimation)}}};var updateWidth=function(that,newWidth,dontAnimate){dontAnimate=dontAnimate||false;var currWidth=that.indicator.width();var direction=that.options.animate;if((newWidth>currWidth)&&(direction==="both"||direction==="forward")&&!dontAnimate){animateProgress(that.indicator,newWidth,that.options.speed)}else{if((newWidth<currWidth)&&(direction==="both"||direction==="backward")&&!dontAnimate){animateProgress(that.indicator,newWidth,that.options.speed)}else{that.indicator.width(newWidth)}}};var percentToPixels=function(that,percent){return Math.round((Math.min(percent,100)*that.progressBar.innerWidth())/100)};var refreshRelativeWidth=function(that){var pixels=Math.max(percentToPixels(that,parseFloat(that.storedPercent)),that.options.minWidth);updateWidth(that,pixels,true)};var initARIA=function(ariaElement,ariaBusyText){ariaElement.attr("role","progressbar");ariaElement.attr("aria-valuemin","0");ariaElement.attr("aria-valuemax","100");ariaElement.attr("aria-valuenow","0");if(ariaBusyText){ariaElement.attr("aria-valuetext","")}ariaElement.attr("aria-busy","false")};var updateARIA=function(that,percent){var str=that.options.strings;var busy=percent<100&&percent>0;that.ariaElement.attr("aria-busy",busy);that.ariaElement.attr("aria-valuenow",percent);if(str.ariaBusyText){if(busy){var busyString=fluid.stringTemplate(str.ariaBusyText,{percentComplete:percent});that.ariaElement.attr("aria-valuetext",busyString)}else{if(percent===100){that.ariaElement.attr("aria-valuetext",str.ariaDoneText)}}}};var updateText=function(label,value){label.html(value)};var repositionIndicator=function(that){that.indicator.css("top",that.progressBar.position().top).css("left",0).height(that.progressBar.height());refreshRelativeWidth(that)};var updateProgress=function(that,percent,labelText,animationForShow){showProgress(that,animationForShow);if(percent!==null){that.storedPercent=percent;var pixels=Math.max(percentToPixels(that,parseFloat(percent)),that.options.minWidth);updateWidth(that,pixels)}if(labelText!==null){updateText(that.label,labelText)}if(that.ariaElement){updateARIA(that,percent)}};var setupProgress=function(that){that.displayElement=that.locate("displayElement");if(that.options.initiallyHidden){that.displayElement.hide()}that.progressBar=that.locate("progressBar");that.label=that.locate("label");that.indicator=that.locate("indicator");that.ariaElement=that.locate("ariaElement");that.indicator.width(that.options.minWidth);that.storedPercent=0;if(that.ariaElement){initARIA(that.ariaElement,that.options.strings.ariaBusyText)}if(that.options.hideAnimation.callback){that.events.afterProgressHidden.addListener(that.options.hideAnimation.callback)}that.options.hideAnimation.callback=that.events.afterProgressHidden.fire;if(that.options.showAnimation.callback){that.events.onProgressBegin.addListener(that.options.showAnimation.callback)}that.options.showAnimation.callback=that.events.onProgressBegin.fire};fluid.progress=function(container,options){var that=fluid.initView("fluid.progress",container,options);setupProgress(that);that.show=function(animation){showProgress(that,animation)};that.hide=function(delay,animation){hideProgress(that,delay,animation)};that.update=function(percentage,labelValue,animationForShow){updateProgress(that,percentage,labelValue,animationForShow)};that.refreshView=function(){repositionIndicator(that)};return that};fluid.defaults("fluid.progress",{gradeNames:"fluid.viewComponent",selectors:{displayElement:".flc-progress",progressBar:".flc-progress-bar",indicator:".flc-progress-indicator",label:".flc-progress-label",ariaElement:".flc-progress-bar"},strings:{ariaBusyText:"Progress is %percentComplete percent complete",ariaDoneText:"Progress is complete."},showAnimation:{params:{opacity:"show"},duration:"slow",callback:null},hideAnimation:{params:{opacity:"hide"},duration:"slow",callback:null},events:{onProgressBegin:null,afterProgressHidden:null},minWidth:5,delay:0,speed:200,animate:"forward",initiallyHidden:true,updatePosition:false})})(jQuery,fluid_1_4);
\ No newline at end of file
index 62e7ad8..331166a 100644 (file)
@@ -1,8 +1,10 @@
+.fl-reorderer-instructions{background-color:#F5FFB0;border:1px solid #FFE390;margin:5px;padding:10px;}
+.fl-reorderer-instructions strong{display:block;}
 .fl-reorderer-movable-default{cursor:move;}
-.fl-reorderer-movable-selected{background-color:lightyellow!important;}
+.fl-reorderer-movable-selected{background-color:lightyellow;}
 .fl-reorderer-movable-hover{background-color:lightyellow;}
-.fl-reorderer-movable-dragging{background:#ccc!important;}
+.fl-reorderer-movable-dragging{background:#ccc;}
 .fl-reorderer-avatar{cursor:move;list-style-type:none;filter:alpha(opacity=75);opacity:.75;}
-.flc-reorderer-dropWarning{display:none;padding:5px 25px;color:#fff;opacity:1;filter:alpha(opacity=100);background:#900 url('../images/themes/_common/exclamation.png') no-repeat 5px center;}
-.fluid-vertical-order .fl-reorderer-dropMarker{background-color:#F00!important;height:0;padding:2px 0 0 0;border-width:0;margin:-2px 0 0 0;list-style-type:none;font-size:0;line-height:0;overflow:hidden;}
-.fluid-horizontal-order .fl-reorderer-dropMarker{background-color:#F00!important;padding:0 3px;border-width:0;margin:0 -3px!important;list-style-type:none;overflow:hidden;width:0!important;}
\ No newline at end of file
+.fl-reorderer-dropWarning{display:none;padding:5px 25px;color:#fff;opacity:1;filter:alpha(opacity=100);background:#900 url('../images/themes/_common/exclamation.png') no-repeat 5px center;}
+.fl-reorderer-verticalLayout .fl-reorderer-dropMarker,.fluid-vertical-order .fl-reorderer-dropMarker{background-color:#F00;height:0;padding:2px 0 0 0;border-width:0;margin:-2px 0 0 0;list-style-type:none;font-size:0;line-height:0;overflow:hidden;}
+.fl-reorderer-horizontalLayout .fl-reorderer-dropMarker,.fluid-horizontal-order .fl-reorderer-dropMarker{background-color:#F00;padding:0 3px;border-width:0;margin:0 -3px!important;list-style-type:none;overflow:hidden;width:0!important;}
\ No newline at end of file
index 0c750cc..27a7af4 100644 (file)
@@ -1 +1 @@
-var fluid_1_1=fluid_1_1||{};(function($,fluid){fluid.orientation={HORIZONTAL:4,VERTICAL:1};fluid.rectSides={4:["left","right"],1:["top","bottom"],8:"top",12:"bottom",2:"left",3:"right"};fluid.position={BEFORE:-1,AFTER:1,INSIDE:2,REPLACE:3};fluid.direction={NEXT:1,PREVIOUS:-1,UP:8,DOWN:12,LEFT:2,RIGHT:3};fluid.directionSign=function(direction){return direction===fluid.direction.UP||direction===fluid.direction.LEFT?fluid.direction.PREVIOUS:fluid.direction.NEXT};fluid.directionAxis=function(direction){return direction===fluid.direction.LEFT||direction===fluid.direction.RIGHT?0:1};fluid.directionOrientation=function(direction){return fluid.directionAxis(direction)?fluid.orientation.VERTICAL:fluid.orientation.HORIZONTAL};fluid.keycodeDirection={up:fluid.direction.UP,down:fluid.direction.DOWN,left:fluid.direction.LEFT,right:fluid.direction.RIGHT};fluid.moveDom=function(source,target,position){source=fluid.unwrap(source);target=fluid.unwrap(target);var scan;if(position===fluid.position.INSIDE){target.appendChild(source)}else{if(position===fluid.position.BEFORE){for(scan=target.previousSibling;;scan=scan.previousSibling){if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);target.parentNode.insertBefore(source,target)}break}}}else{if(position===fluid.position.AFTER){for(scan=target.nextSibling;;scan=scan.nextSibling){if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);fluid.dom.insertAfter(source,target)}break}}}else{fluid.fail("Unrecognised position supplied to fluid.moveDom: "+position)}}}};fluid.normalisePosition=function(position,samespan,targeti,sourcei){if(position===fluid.position.REPLACE){position=samespan&&targeti>=sourcei?fluid.position.AFTER:fluid.position.BEFORE}return position};fluid.permuteDom=function(element,target,position,sourceelements,targetelements){element=fluid.unwrap(element);target=fluid.unwrap(target);var sourcei=$.inArray(element,sourceelements);if(sourcei===-1){fluid.fail("Error in permuteDom: source element "+fluid.dumpEl(element)+" not found in source list "+fluid.dumpEl(sourceelements))}var targeti=$.inArray(target,targetelements);if(targeti===-1){fluid.fail("Error in permuteDom: target element "+fluid.dumpEl(target)+" not found in source list "+fluid.dumpEl(targetelements))}var samespan=sourceelements===targetelements;position=fluid.normalisePosition(position,samespan,targeti,sourcei);var oldn={};oldn[fluid.position.AFTER]=element.nextSibling;oldn[fluid.position.BEFORE]=element.previousSibling;fluid.moveDom(sourceelements[sourcei],targetelements[targeti],position);var frontlimit=samespan?targeti-1:sourceelements.length-2;var i;if(!samespan||targeti>sourcei){for(i=frontlimit;i>sourcei;--i){fluid.moveDom(sourceelements[i+1],sourceelements[i],fluid.position.AFTER)}if(sourcei+1<sourceelements.length){fluid.moveDom(sourceelements[sourcei+1],oldn[fluid.position.AFTER],fluid.position.BEFORE)}}var backlimit=samespan?sourcei-1:targetelements.length-1;if(position===fluid.position.AFTER){targeti++}if(!samespan||targeti<sourcei){for(i=targeti;i<backlimit;++i){fluid.moveDom(targetelements[i],targetelements[i+1],fluid.position.BEFORE)}if(backlimit>=0&&backlimit<targetelements.length-1){fluid.moveDom(targetelements[backlimit],oldn[fluid.position.BEFORE],fluid.position.AFTER)}}};var curCss=function(a,name){return window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(name):a.currentStyle[name]};var isAttached=function(node){while(node&&node.nodeName){if(node.nodeName==="BODY"){return true}node=node.parentNode}return false};var generalHidden=function(a){return"hidden"===a.type||curCss(a,"display")==="none"||curCss(a,"visibility")==="hidden"||!isAttached(a)};var computeGeometry=function(element,orientation,disposition){var elem={};elem.element=element;elem.orientation=orientation;if(disposition===fluid.position.INSIDE){elem.position=disposition}if(generalHidden(element)){elem.clazz="hidden"}var pos=fluid.dom.computeAbsolutePosition(element)||[0,0];var width=element.offsetWidth;var height=element.offsetHeight;elem.rect={left:pos[0],top:pos[1]};elem.rect.right=pos[0]+width;elem.rect.bottom=pos[1]+height;return elem};var SENTINEL_DIMENSION=10000;function dumprect(rect){return"Rect top: "+rect.top+" left: "+rect.left+" bottom: "+rect.bottom+" right: "+rect.right}function dumpelem(cacheelem){if(!cacheelem||!cacheelem.rect){return"null"}else{return dumprect(cacheelem.rect)+" position: "+cacheelem.position+" for "+fluid.dumpEl(cacheelem.element)}}fluid.dropManager=function(){var targets=[];var cache={};var that={};var lastClosest;function cacheKey(element){return $(element).data("")}function sentinelizeElement(targets,sides,cacheelem,fc,disposition,clazz){var elemCopy=$.extend(true,{},cacheelem);elemCopy.rect[sides[fc]]=elemCopy.rect[sides[1-fc]]+(fc?1:-1);elemCopy.rect[sides[1-fc]]=(fc?-1:1)*SENTINEL_DIMENSION;elemCopy.position=disposition===fluid.position.INSIDE?disposition:(fc?fluid.position.BEFORE:fluid.position.AFTER);elemCopy.clazz=clazz;targets[targets.length]=elemCopy}function splitElement(targets,sides,cacheelem,disposition,clazz1,clazz2){var elem1=$.extend(true,{},cacheelem);var elem2=$.extend(true,{},cacheelem);var midpoint=(elem1.rect[sides[0]]+elem1.rect[sides[1]])/2;elem1.rect[sides[1]]=midpoint;elem1.position=fluid.position.BEFORE;elem2.rect[sides[0]]=midpoint;elem2.position=fluid.position.AFTER;elem1.clazz=clazz1;elem2.clazz=clazz2;targets[targets.length]=elem1;targets[targets.length]=elem2}function getRelativeClass(thisElements,index,relative,thisclazz,mapper){index+=relative;if(index<0&&thisclazz==="locked"){return"locked"}if(index>=thisElements.length||mapper===null){return null}else{relative=thisElements[index];return mapper(relative)==="locked"&&thisclazz==="locked"?"locked":null}}var lastGeometry;var displacementX,displacementY;that.updateGeometry=function(geometricInfo){lastGeometry=geometricInfo;targets=[];cache={};var mapper=geometricInfo.elementMapper;for(var i=0;i<geometricInfo.extents.length;++i){var thisInfo=geometricInfo.extents[i];var orientation=thisInfo.orientation;var sides=fluid.rectSides[orientation];var processElement=function(element,sentB,sentF,disposition,j){var cacheelem=computeGeometry(element,orientation,disposition);cacheelem.owner=thisInfo;if(cacheelem.clazz!=="hidden"&&mapper){cacheelem.clazz=mapper(element)}cache[$.data(element)]=cacheelem;var backClass=getRelativeClass(thisInfo.elements,j,fluid.position.BEFORE,cacheelem.clazz,mapper);var frontClass=getRelativeClass(thisInfo.elements,j,fluid.position.AFTER,cacheelem.clazz,mapper);if(disposition===fluid.position.INSIDE){targets[targets.length]=cacheelem}else{splitElement(targets,sides,cacheelem,disposition,backClass,frontClass)}if(sentB&&geometricInfo.sentinelize){sentinelizeElement(targets,sides,cacheelem,1,disposition,backClass)}if(sentF&&geometricInfo.sentinelize){sentinelizeElement(targets,sides,cacheelem,0,disposition,frontClass)}return cacheelem};var allHidden=true;for(var j=0;j<thisInfo.elements.length;++j){var element=thisInfo.elements[j];var cacheelem=processElement(element,j===0,j===thisInfo.elements.length-1,fluid.position.INTERLEAVED,j);if(cacheelem.clazz!=="hidden"){allHidden=false}}if(allHidden&&thisInfo.parentElement){processElement(thisInfo.parentElement,true,true,fluid.position.INSIDE)}}};that.startDrag=function(event,handlePos,handleWidth,handleHeight){var handleMidX=handlePos[0]+handleWidth/2;var handleMidY=handlePos[1]+handleHeight/2;var dX=handleMidX-event.pageX;var dY=handleMidY-event.pageY;that.updateGeometry(lastGeometry);lastClosest=null;displacementX=dX;displacementY=dY;$("").bind("mousemove.fluid-dropManager",that.mouseMove)};that.lastPosition=function(){return lastClosest};that.endDrag=function(){$("").unbind("mousemove.fluid-dropManager")};that.mouseMove=function(evt){var x=evt.pageX+displacementX;var y=evt.pageY+displacementY;var closestTarget=that.closestTarget(x,y,lastClosest);if(closestTarget&&closestTarget!==fluid.dropManager.NO_CHANGE){lastClosest=closestTarget;that.dropChangeFirer.fire(closestTarget)}};that.dropChangeFirer=fluid.event.getEventFirer();var blankHolder={element:null};that.closestTarget=function(x,y,lastClosest){var mindistance=Number.MAX_VALUE;var minelem=blankHolder;var minlockeddistance=Number.MAX_VALUE;var minlockedelem=blankHolder;for(var i=0;i<targets.length;++i){var cacheelem=targets[i];if(cacheelem.clazz==="hidden"){continue}var distance=fluid.geom.minPointRectangle(x,y,cacheelem.rect);if(cacheelem.clazz==="locked"){if(distance<minlockeddistance){minlockeddistance=distance;minlockedelem=cacheelem}}else{if(distance<mindistance){mindistance=distance;minelem=cacheelem}if(distance===0){break}}}if(!minelem){return minelem}if(minlockeddistance>=mindistance){minlockedelem=blankHolder}if(lastClosest&&lastClosest.position===minelem.position&&fluid.unwrap(lastClosest.element)===fluid.unwrap(minelem.element)&&fluid.unwrap(lastClosest.lockedelem)===fluid.unwrap(minlockedelem.element)){return fluid.dropManager.NO_CHANGE}return{position:minelem.position,element:minelem.element,lockedelem:minlockedelem.element}};that.projectFrom=function(element,direction,includeLocked){that.updateGeometry(lastGeometry);var cacheelem=cache[cacheKey(element)];var projected=fluid.geom.projectFrom(cacheelem.rect,direction,targets,includeLocked);if(!projected.cacheelem){return null}var retpos=projected.cacheelem.position;return{element:projected.cacheelem.element,position:retpos?retpos:fluid.position.BEFORE}};function getRelativeElement(element,direction,elements){var folded=fluid.directionSign(direction);var index=$(elements).index(element)+folded;if(index<0){index+=elements.length}index%=elements.length;return elements[index]}that.logicalFrom=function(element,direction,includeLocked){var orderables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);return{element:getRelativeElement(element,direction,orderables),position:fluid.position.REPLACE}};that.lockedWrapFrom=function(element,direction,includeLocked){var base=that.logicalFrom(element,direction,includeLocked);var selectables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);var allElements=cache[cacheKey(element)].owner.elements;if(includeLocked||selectables[0]===allElements[0]){return base}var directElement=getRelativeElement(element,direction,allElements);if(lastGeometry.elementMapper(directElement)==="locked"){base.element=null;base.clazz="locked"}return base};that.getOwningSpan=function(element,position,includeLocked){var owner=cache[cacheKey(element)].owner;var elements=position===fluid.position.INSIDE?[owner.parentElement]:owner.elements;if(!includeLocked&&lastGeometry.elementMapper){elements=$.makeArray(elements);fluid.remove_if(elements,function(element){return lastGeometry.elementMapper(element)==="locked"})}return elements};that.geometricMove=function(element,target,position){var sourceElements=that.getOwningSpan(element,null,true);var targetElements=that.getOwningSpan(target,position,true);fluid.permuteDom(element,target,position,sourceElements,targetElements)};return that};fluid.dropManager.NO_CHANGE="no change";fluid.geom=fluid.geom||{};fluid.geom.minPointRectangle=function(x,y,rectangle){var dx=x<rectangle.left?(rectangle.left-x):(x>rectangle.right?(x-rectangle.right):0);var dy=y<rectangle.top?(rectangle.top-y):(y>rectangle.bottom?(y-rectangle.bottom):0);return dx*dx+dy*dy};fluid.geom.minRectRect=function(rect1,rect2){var dx=rect1.right<rect2.left?rect2.left-rect1.right:rect2.right<rect1.left?rect1.left-rect2.right:0;var dy=rect1.bottom<rect2.top?rect2.top-rect1.bottom:rect2.bottom<rect1.top?rect1.top-rect2.bottom:0;return dx*dx+dy*dy};var makePenCollect=function(){return{mindist:Number.MAX_VALUE,minrdist:Number.MAX_VALUE}};fluid.geom.projectFrom=function(baserect,direction,targets,forSelection){var axis=fluid.directionAxis(direction);var frontSide=fluid.rectSides[direction];var backSide=fluid.rectSides[axis*15+5-direction];var dirSign=fluid.directionSign(direction);var penrect={left:(7*baserect.left+1*baserect.right)/8,right:(5*baserect.left+3*baserect.right)/8,top:(7*baserect.top+1*baserect.bottom)/8,bottom:(5*baserect.top+3*baserect.bottom)/8};penrect[frontSide]=dirSign*SENTINEL_DIMENSION;penrect[backSide]=-penrect[frontSide];function accPen(collect,cacheelem,backSign){var thisrect=cacheelem.rect;var pdist=fluid.geom.minRectRect(penrect,thisrect);var rdist=-dirSign*backSign*(baserect[backSign===1?frontSide:backSide]-thisrect[backSign===1?backSide:frontSide]);if(pdist<=collect.mindist&&rdist>=0){if(pdist===collect.mindist&&rdist*backSign>collect.minrdist){return }collect.minrdist=rdist*backSign;collect.mindist=pdist;collect.minelem=cacheelem}}var collect=makePenCollect();var backcollect=makePenCollect();var lockedcollect=makePenCollect();for(var i=0;i<targets.length;++i){var elem=targets[i];var isPure=elem.owner&&elem.element===elem.owner.parentElement;if(elem.clazz==="hidden"||forSelection&&isPure){continue}else{if(!forSelection&&elem.clazz==="locked"){accPen(lockedcollect,elem,1)}else{accPen(collect,elem,1);accPen(backcollect,elem,-1)}}}var wrap=!collect.minelem||backcollect.mindist<collect.mindist;var mincollect=wrap?backcollect:collect;var togo={wrapped:wrap,cacheelem:mincollect.minelem};if(lockedcollect.mindist<mincollect.mindist){togo.lockedelem=lockedcollect.minelem}return togo}})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.orientation={HORIZONTAL:4,VERTICAL:1};fluid.rectSides={4:["left","right"],1:["top","bottom"],8:"top",12:"bottom",2:"left",3:"right"};fluid.position={BEFORE:-1,AFTER:1,INSIDE:2,REPLACE:3};fluid.direction={NEXT:1,PREVIOUS:-1,UP:8,DOWN:12,LEFT:2,RIGHT:3};fluid.directionSign=function(direction){return direction===fluid.direction.UP||direction===fluid.direction.LEFT?fluid.direction.PREVIOUS:fluid.direction.NEXT};fluid.directionAxis=function(direction){return direction===fluid.direction.LEFT||direction===fluid.direction.RIGHT?0:1};fluid.directionOrientation=function(direction){return fluid.directionAxis(direction)?fluid.orientation.VERTICAL:fluid.orientation.HORIZONTAL};fluid.keycodeDirection={up:fluid.direction.UP,down:fluid.direction.DOWN,left:fluid.direction.LEFT,right:fluid.direction.RIGHT};fluid.moveDom=function(source,target,position){source=fluid.unwrap(source);target=fluid.unwrap(target);var scan;if(position===fluid.position.INSIDE){target.appendChild(source)}else{if(position===fluid.position.BEFORE){for(scan=target.previousSibling;;scan=scan.previousSibling){if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);target.parentNode.insertBefore(source,target)}break}}}else{if(position===fluid.position.AFTER){for(scan=target.nextSibling;;scan=scan.nextSibling){if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);fluid.dom.insertAfter(source,target)}break}}}else{fluid.fail("Unrecognised position supplied to fluid.moveDom: "+position)}}}};fluid.normalisePosition=function(position,samespan,targeti,sourcei){if(position===fluid.position.REPLACE){position=samespan&&targeti>=sourcei?fluid.position.AFTER:fluid.position.BEFORE}return position};fluid.permuteDom=function(element,target,position,sourceelements,targetelements){element=fluid.unwrap(element);target=fluid.unwrap(target);var sourcei=$.inArray(element,sourceelements);if(sourcei===-1){fluid.fail("Error in permuteDom: source element "+fluid.dumpEl(element)+" not found in source list "+fluid.dumpEl(sourceelements))}var targeti=$.inArray(target,targetelements);if(targeti===-1){fluid.fail("Error in permuteDom: target element "+fluid.dumpEl(target)+" not found in source list "+fluid.dumpEl(targetelements))}var samespan=sourceelements===targetelements;position=fluid.normalisePosition(position,samespan,targeti,sourcei);var oldn={};oldn[fluid.position.AFTER]=element.nextSibling;oldn[fluid.position.BEFORE]=element.previousSibling;fluid.moveDom(sourceelements[sourcei],targetelements[targeti],position);var frontlimit=samespan?targeti-1:sourceelements.length-2;var i;if(position===fluid.position.BEFORE&&samespan){frontlimit--}if(!samespan||targeti>sourcei){for(i=frontlimit;i>sourcei;--i){fluid.moveDom(sourceelements[i+1],sourceelements[i],fluid.position.AFTER)}if(sourcei+1<sourceelements.length){fluid.moveDom(sourceelements[sourcei+1],oldn[fluid.position.AFTER],fluid.position.BEFORE)}}var backlimit=samespan?sourcei-1:targetelements.length-1;if(position===fluid.position.AFTER){targeti++}if(!samespan||targeti<sourcei){for(i=targeti;i<backlimit;++i){fluid.moveDom(targetelements[i],targetelements[i+1],fluid.position.BEFORE)}if(backlimit>=0&&backlimit<targetelements.length-1){fluid.moveDom(targetelements[backlimit],oldn[fluid.position.BEFORE],fluid.position.AFTER)}}};var curCss=function(a,name){return window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(name):a.currentStyle[name]};var isAttached=function(node){while(node&&node.nodeName){if(node.nodeName==="BODY"){return true}node=node.parentNode}return false};var generalHidden=function(a){return"hidden"===a.type||curCss(a,"display")==="none"||curCss(a,"visibility")==="hidden"||!isAttached(a)};var computeGeometry=function(element,orientation,disposition){var elem={};elem.element=element;elem.orientation=orientation;if(disposition===fluid.position.INSIDE){elem.position=disposition}if(generalHidden(element)){elem.clazz="hidden"}var pos=fluid.dom.computeAbsolutePosition(element)||[0,0];var width=element.offsetWidth;var height=element.offsetHeight;elem.rect={left:pos[0],top:pos[1]};elem.rect.right=pos[0]+width;elem.rect.bottom=pos[1]+height;return elem};var SENTINEL_DIMENSION=10000;function dumprect(rect){return"Rect top: "+rect.top+" left: "+rect.left+" bottom: "+rect.bottom+" right: "+rect.right}function dumpelem(cacheelem){if(!cacheelem||!cacheelem.rect){return"null"}else{return dumprect(cacheelem.rect)+" position: "+cacheelem.position+" for "+fluid.dumpEl(cacheelem.element)}}fluid.dropManager=function(){var targets=[];var cache={};var that={};var lastClosest;var lastGeometry;var displacementX,displacementY;that.updateGeometry=function(geometricInfo){lastGeometry=geometricInfo;targets=[];cache={};var mapper=geometricInfo.elementMapper;for(var i=0;i<geometricInfo.extents.length;++i){var thisInfo=geometricInfo.extents[i];var orientation=thisInfo.orientation;var sides=fluid.rectSides[orientation];var processElement=function(element,sentB,sentF,disposition,j){var cacheelem=computeGeometry(element,orientation,disposition);cacheelem.owner=thisInfo;if(cacheelem.clazz!=="hidden"&&mapper){cacheelem.clazz=mapper(element)}cache[fluid.dropManager.cacheKey(element)]=cacheelem;var backClass=fluid.dropManager.getRelativeClass(thisInfo.elements,j,fluid.position.BEFORE,cacheelem.clazz,mapper);var frontClass=fluid.dropManager.getRelativeClass(thisInfo.elements,j,fluid.position.AFTER,cacheelem.clazz,mapper);if(disposition===fluid.position.INSIDE){targets[targets.length]=cacheelem}else{fluid.dropManager.splitElement(targets,sides,cacheelem,disposition,backClass,frontClass)}if(sentB&&geometricInfo.sentinelize){fluid.dropManager.sentinelizeElement(targets,sides,cacheelem,1,disposition,backClass)}if(sentF&&geometricInfo.sentinelize){fluid.dropManager.sentinelizeElement(targets,sides,cacheelem,0,disposition,frontClass)}return cacheelem};var allHidden=true;for(var j=0;j<thisInfo.elements.length;++j){var element=thisInfo.elements[j];var cacheelem=processElement(element,j===0,j===thisInfo.elements.length-1,fluid.position.INTERLEAVED,j);if(cacheelem.clazz!=="hidden"){allHidden=false}}if(allHidden&&thisInfo.parentElement){processElement(thisInfo.parentElement,true,true,fluid.position.INSIDE)}}};that.startDrag=function(event,handlePos,handleWidth,handleHeight){var handleMidX=handlePos[0]+handleWidth/2;var handleMidY=handlePos[1]+handleHeight/2;var dX=handleMidX-event.pageX;var dY=handleMidY-event.pageY;that.updateGeometry(lastGeometry);lastClosest=null;displacementX=dX;displacementY=dY;$("body").bind("mousemove.fluid-dropManager",that.mouseMove)};that.lastPosition=function(){return lastClosest};that.endDrag=function(){$("body").unbind("mousemove.fluid-dropManager")};that.mouseMove=function(evt){var x=evt.pageX+displacementX;var y=evt.pageY+displacementY;var closestTarget=that.closestTarget(x,y,lastClosest);if(closestTarget&&closestTarget!==fluid.dropManager.NO_CHANGE){lastClosest=closestTarget;that.dropChangeFirer.fire(closestTarget)}};that.dropChangeFirer=fluid.event.getEventFirer();var blankHolder={element:null};that.closestTarget=function(x,y,lastClosest){var mindistance=Number.MAX_VALUE;var minelem=blankHolder;var minlockeddistance=Number.MAX_VALUE;var minlockedelem=blankHolder;for(var i=0;i<targets.length;++i){var cacheelem=targets[i];if(cacheelem.clazz==="hidden"){continue}var distance=fluid.geom.minPointRectangle(x,y,cacheelem.rect);if(cacheelem.clazz==="locked"){if(distance<minlockeddistance){minlockeddistance=distance;minlockedelem=cacheelem}}else{if(distance<mindistance){mindistance=distance;minelem=cacheelem}if(distance===0){break}}}if(!minelem){return minelem}if(minlockeddistance>=mindistance){minlockedelem=blankHolder}if(lastClosest&&lastClosest.position===minelem.position&&fluid.unwrap(lastClosest.element)===fluid.unwrap(minelem.element)&&fluid.unwrap(lastClosest.lockedelem)===fluid.unwrap(minlockedelem.element)){return fluid.dropManager.NO_CHANGE}return{position:minelem.position,element:minelem.element,lockedelem:minlockedelem.element}};that.shuffleProjectFrom=function(element,direction,includeLocked,disableWrap){var togo=that.projectFrom(element,direction,includeLocked,disableWrap);if(togo){togo.position=fluid.position.REPLACE}return togo};that.projectFrom=function(element,direction,includeLocked,disableWrap){that.updateGeometry(lastGeometry);var cacheelem=cache[fluid.dropManager.cacheKey(element)];var projected=fluid.geom.projectFrom(cacheelem.rect,direction,targets,includeLocked,disableWrap);if(!projected.cacheelem){return null}var retpos=projected.cacheelem.position;return{element:projected.cacheelem.element,position:retpos?retpos:fluid.position.BEFORE}};that.logicalFrom=function(element,direction,includeLocked,disableWrap){var orderables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);return{element:fluid.dropManager.getRelativeElement(element,direction,orderables,disableWrap),position:fluid.position.REPLACE}};that.lockedWrapFrom=function(element,direction,includeLocked,disableWrap){var base=that.logicalFrom(element,direction,includeLocked,disableWrap);var selectables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);var allElements=cache[fluid.dropManager.cacheKey(element)].owner.elements;if(includeLocked||selectables[0]===allElements[0]){return base}var directElement=fluid.dropManager.getRelativeElement(element,direction,allElements,disableWrap);if(lastGeometry.elementMapper(directElement)==="locked"){base.element=null;base.clazz="locked"}return base};that.getOwningSpan=function(element,position,includeLocked){var owner=cache[fluid.dropManager.cacheKey(element)].owner;var elements=position===fluid.position.INSIDE?[owner.parentElement]:owner.elements;if(!includeLocked&&lastGeometry.elementMapper){elements=$.makeArray(elements);fluid.remove_if(elements,function(element){return lastGeometry.elementMapper(element)==="locked"})}return elements};that.geometricMove=function(element,target,position){var sourceElements=that.getOwningSpan(element,null,true);var targetElements=that.getOwningSpan(target,position,true);fluid.permuteDom(element,target,position,sourceElements,targetElements)};return that};fluid.dropManager.NO_CHANGE="no change";fluid.dropManager.cacheKey=function(element){return fluid.allocateSimpleId(element)};fluid.dropManager.sentinelizeElement=function(targets,sides,cacheelem,fc,disposition,clazz){var elemCopy=$.extend(true,{},cacheelem);elemCopy.rect[sides[fc]]=elemCopy.rect[sides[1-fc]]+(fc?1:-1);elemCopy.rect[sides[1-fc]]=(fc?-1:1)*SENTINEL_DIMENSION;elemCopy.position=disposition===fluid.position.INSIDE?disposition:(fc?fluid.position.BEFORE:fluid.position.AFTER);elemCopy.clazz=clazz;targets[targets.length]=elemCopy};fluid.dropManager.splitElement=function(targets,sides,cacheelem,disposition,clazz1,clazz2){var elem1=$.extend(true,{},cacheelem);var elem2=$.extend(true,{},cacheelem);var midpoint=(elem1.rect[sides[0]]+elem1.rect[sides[1]])/2;elem1.rect[sides[1]]=midpoint;elem1.position=fluid.position.BEFORE;elem2.rect[sides[0]]=midpoint;elem2.position=fluid.position.AFTER;elem1.clazz=clazz1;elem2.clazz=clazz2;targets[targets.length]=elem1;targets[targets.length]=elem2};fluid.dropManager.getRelativeClass=function(thisElements,index,relative,thisclazz,mapper){index+=relative;if(index<0&&thisclazz==="locked"){return"locked"}if(index>=thisElements.length||mapper===null){return null}else{relative=thisElements[index];return mapper(relative)==="locked"&&thisclazz==="locked"?"locked":null}};fluid.dropManager.getRelativeElement=function(element,direction,elements,disableWrap){var folded=fluid.directionSign(direction);var index=$(elements).index(element)+folded;if(index<0){index+=elements.length}if(disableWrap){if(index===elements.length||index===(elements.length+folded)){return element}}index%=elements.length;return elements[index]};fluid.geom=fluid.geom||{};fluid.geom.minPointRectangle=function(x,y,rectangle){var dx=x<rectangle.left?(rectangle.left-x):(x>rectangle.right?(x-rectangle.right):0);var dy=y<rectangle.top?(rectangle.top-y):(y>rectangle.bottom?(y-rectangle.bottom):0);return dx*dx+dy*dy};fluid.geom.minRectRect=function(rect1,rect2){var dx=rect1.right<rect2.left?rect2.left-rect1.right:rect2.right<rect1.left?rect1.left-rect2.right:0;var dy=rect1.bottom<rect2.top?rect2.top-rect1.bottom:rect2.bottom<rect1.top?rect1.top-rect2.bottom:0;return dx*dx+dy*dy};var makePenCollect=function(){return{mindist:Number.MAX_VALUE,minrdist:Number.MAX_VALUE}};fluid.geom.projectFrom=function(baserect,direction,targets,forSelection,disableWrap){var axis=fluid.directionAxis(direction);var frontSide=fluid.rectSides[direction];var backSide=fluid.rectSides[axis*15+5-direction];var dirSign=fluid.directionSign(direction);var penrect={left:(7*baserect.left+1*baserect.right)/8,right:(5*baserect.left+3*baserect.right)/8,top:(7*baserect.top+1*baserect.bottom)/8,bottom:(5*baserect.top+3*baserect.bottom)/8};penrect[frontSide]=dirSign*SENTINEL_DIMENSION;penrect[backSide]=-penrect[frontSide];function accPen(collect,cacheelem,backSign){var thisrect=cacheelem.rect;var pdist=fluid.geom.minRectRect(penrect,thisrect);var rdist=-dirSign*backSign*(baserect[backSign===1?frontSide:backSide]-thisrect[backSign===1?backSide:frontSide]);if(pdist<=collect.mindist&&rdist>=0){if(pdist===collect.mindist&&rdist*backSign>collect.minrdist){return }collect.minrdist=rdist*backSign;collect.mindist=pdist;collect.minelem=cacheelem}}var collect=makePenCollect();var backcollect=makePenCollect();var lockedcollect=makePenCollect();for(var i=0;i<targets.length;++i){var elem=targets[i];var isPure=elem.owner&&elem.element===elem.owner.parentElement;if(elem.clazz==="hidden"||(forSelection&&isPure)){continue}else{if(!forSelection&&elem.clazz==="locked"){accPen(lockedcollect,elem,1)}else{accPen(collect,elem,1);accPen(backcollect,elem,-1)}}}var wrap=!collect.minelem||backcollect.mindist<collect.mindist;wrap=wrap&&!disableWrap;var mincollect=wrap?backcollect:collect;var togo={wrapped:wrap,cacheelem:mincollect.minelem};if(lockedcollect.mindist<mincollect.mindist){togo.lockedelem=lockedcollect.minelem}return togo}})(jQuery,fluid_1_4);
\ No newline at end of file
index 5504818..502b057 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var deriveLightboxCellBase=function(namebase,index){return namebase+"lightbox-cell:"+index+":"};var addThumbnailActivateHandler=function(lightboxContainer){var enterKeyHandler=function(evt){if(evt.which===fluid.reorderer.keys.ENTER){var thumbnailAnchors=$("a",evt.target);document.location=thumbnailAnchors.attr("href")}};$(lightboxContainer).keypress(enterKeyHandler)};var seekNodesById=function(rootnode,tagname,idmatch){var inputs=rootnode.getElementsByTagName(tagname);var togo=[];for(var i=0;i<inputs.length;i+=1){var input=inputs[i];var id=input.id;if(id&&id.match(idmatch)){togo.push(input)}}return togo};var createItemFinder=function(parentNode,containerId){var lightboxCellNamePattern="^"+deriveLightboxCellBase(containerId,"[0-9]+")+"$";return function(){return seekNodesById(parentNode,"div",lightboxCellNamePattern)}};var findForm=function(element){while(element){if(element.nodeName.toLowerCase()==="form"){return element}element=element.parentNode}};var defaultAfterMoveCallback=function(lightboxContainer){var reorderform=findForm(lightboxContainer);return function(){var inputs,i;inputs=seekNodesById(reorderform,"input","^"+deriveLightboxCellBase(lightboxContainer.id,"[^:]*")+"reorder-index$");for(i=0;i<inputs.length;i+=1){inputs[i].value=i}if(reorderform&&reorderform.action){$.post(reorderform.action,$(reorderform).serialize(),function(type,data,evt){})}}};fluid.defaults("fluid.reorderImages",{layoutHandler:"fluid.gridLayoutHandler",selectors:{imageTitle:".flc-reorderer-imageTitle"}});fluid.reorderImages=function(container,options){var that=fluid.initView("fluid.reorderImages",container,options);var containerEl=fluid.unwrap(that.container);if(!that.options.afterMoveCallback){that.options.afterMoveCallback=defaultAfterMoveCallback(containerEl)}if(!that.options.selectors.movables){that.options.selectors.movables=createItemFinder(containerEl,containerEl.id)}var reorderer=fluid.reorderer(container,that.options);var movables=reorderer.locate("movables");fluid.transform(movables,function(cell){fluid.reorderImages.addAriaRoles(that.options.selectors.imageTitle,cell)});fluid.tabindex($("a",container),-1);addThumbnailActivateHandler(container);return reorderer};fluid.reorderImages.addAriaRoles=function(imageTitle,cell){cell=$(cell);cell.attr("role","img");var title=$(imageTitle,cell);if(title[0]===cell[0]||title[0]===document){fluid.fail("Could not locate cell title using selector "+imageTitle+" in context "+fluid.dumpEl(cell))}var titleId=fluid.allocateSimpleId(title);cell.attr("aria-labelledby",titleId);var image=$("img",cell);image.attr("role","presentation");image.attr("alt","")};fluid.lightbox=fluid.reorderImages})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){var deriveLightboxCellBase=function(namebase,index){return namebase+"lightbox-cell:"+index+":"};var addThumbnailActivateHandler=function(container){var enterKeyHandler=function(evt){if(evt.which===fluid.reorderer.keys.ENTER){var thumbnailAnchors=$("a",evt.target);document.location=thumbnailAnchors.attr("href")}};container.keypress(enterKeyHandler)};var seekNodesById=function(rootnode,tagname,idmatch){var inputs=rootnode.getElementsByTagName(tagname);var togo=[];for(var i=0;i<inputs.length;i+=1){var input=inputs[i];var id=input.id;if(id&&id.match(idmatch)){togo.push(input)}}return togo};var createImageCellFinder=function(parentNode,containerId){parentNode=fluid.unwrap(parentNode);var lightboxCellNamePattern="^"+deriveLightboxCellBase(containerId,"[0-9]+")+"$";return function(){return seekNodesById(parentNode,"div",lightboxCellNamePattern)}};var seekForm=function(container){return fluid.findAncestor(container,function(element){return $(element).is("form")})};var seekInputs=function(container,reorderform){return seekNodesById(reorderform,"input","^"+deriveLightboxCellBase(container.prop("id"),"[^:]*")+"reorder-index$")};var mapIdsToNames=function(container,reorderform){var inputs=seekInputs(container,reorderform);for(var i=0;i<inputs.length;i++){var input=inputs[i];var name=input.name;input.name=name||input.id}};var createIDAfterMoveListener=function(container){var reorderform=seekForm(container);mapIdsToNames(container,reorderform);return function(){var inputs,i;inputs=seekInputs(container,reorderform);for(i=0;i<inputs.length;i+=1){inputs[i].value=i}if(reorderform&&reorderform.action){var order=$(reorderform).serialize();$.post(reorderform.action,order,function(type,data,evt){})}}};var setDefaultValue=function(target,path,value){var previousValue=fluid.get(target,path);var valueToSet=previousValue||value;fluid.set(target,path,valueToSet)};fluid.reorderImages=function(container,options){var defaults=fluid.defaults("fluid.reorderImages");var mergedOptions=fluid.merge(defaults.mergePolicy,{},defaults,options);container=fluid.container(container);setDefaultValue(mergedOptions,"listeners.afterMove",mergedOptions.afterMoveCallback||createIDAfterMoveListener(container));setDefaultValue(mergedOptions,"selectors.movables",createImageCellFinder(container,container.prop("id")));var reorderer=fluid.reorderer(container,mergedOptions);fluid.tabindex($("a",container),-1);addThumbnailActivateHandler(container);return reorderer};fluid.lightbox=fluid.reorderImages;fluid.defaults("fluid.reorderImages",{layoutHandler:"fluid.gridLayoutHandler",selectors:{labelSource:".flc-reorderer-imageTitle"}})})(jQuery,fluid_1_4);
\ No newline at end of file
index b0676e0..775d7a5 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){fluid.reorderLayout=function(container,userOptions){var assembleOptions={layoutHandler:"fluid.moduleLayoutHandler",selectors:{columns:".flc-reorderer-column",modules:".flc-reorderer-module"}};var options=$.extend(true,assembleOptions,userOptions);return fluid.reorderer(container,options)}})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.reorderLayout=function(container,userOptions){var assembleOptions={layoutHandler:"fluid.moduleLayoutHandler",selectors:{columns:".flc-reorderer-column",modules:".flc-reorderer-module"}};var options=$.extend(true,assembleOptions,userOptions);return fluid.reorderer(container,options)}})(jQuery,fluid_1_4);
\ No newline at end of file
index 90da890..dcd572c 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};fluid.moduleLayout=fluid.moduleLayout||{};(function($,fluid){var findColumnAndItemIndices=function(item,layout){return fluid.find(layout.columns,function(column,colIndex){var index=$.inArray(item,column.elements);return index===-1?null:{columnIndex:colIndex,itemIndex:index}},{columnIndex:-1,itemIndex:-1})};var findColIndex=function(item,layout){return fluid.find(layout.columns,function(column,colIndex){return item===column.container?colIndex:null},-1)};fluid.moduleLayout.updateLayout=function(item,target,position,layout){item=fluid.unwrap(item);target=fluid.unwrap(target);var itemIndices=findColumnAndItemIndices(item,layout);layout.columns[itemIndices.columnIndex].elements.splice(itemIndices.itemIndex,1);var targetCol;if(position===fluid.position.INSIDE){targetCol=layout.columns[findColIndex(target,layout)].elements;targetCol.splice(targetCol.length,0,item)}else{var relativeItemIndices=findColumnAndItemIndices(target,layout);targetCol=layout.columns[relativeItemIndices.columnIndex].elements;position=fluid.normalisePosition(position,itemIndices.columnIndex===relativeItemIndices.columnIndex,relativeItemIndices.itemIndex,itemIndices.itemIndex);var relative=position===fluid.position.BEFORE?0:1;targetCol.splice(relativeItemIndices.itemIndex+relative,0,item)}};fluid.moduleLayout.layoutFromFlat=function(container,columns,portlets){var layout={};layout.container=container;layout.columns=fluid.transform(columns,function(column){return{container:column,elements:$.makeArray(portlets.filter(function(){return fluid.dom.isContainer(column,this)}))}});return layout};fluid.moduleLayout.layoutFromIds=function(idLayout){return{container:fluid.byId(idLayout.id),columns:fluid.transform(idLayout.columns,function(column){return{container:fluid.byId(column.id),elements:fluid.transform(column.children,fluid.byId)}})}};fluid.moduleLayout.layoutToIds=function(idLayout){return{id:fluid.getId(idLayout.container),columns:fluid.transform(idLayout.columns,function(column){return{id:fluid.getId(column.container),children:fluid.transform(column.elements,fluid.getId)}})}};var defaultOnShowKeyboardDropWarning=function(item,dropWarning){if(dropWarning){var offset=$(item).offset();dropWarning=$(dropWarning);dropWarning.css("position","absolute");dropWarning.css("top",offset.top);dropWarning.css("left",offset.left)}};fluid.defaults(true,"fluid.moduleLayoutHandler",{orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.REGIONS,selectablesTabindex:0,sentinelize:true});fluid.moduleLayoutHandler=function(container,options,dropManager,dom){var that={};function computeLayout(){var togo;if(options.selectors.modules){togo=fluid.moduleLayout.layoutFromFlat(container,dom.locate("columns"),dom.locate("modules"))}if(!togo){var idLayout=fluid.model.getBeanValue(options,"moduleLayout.layout");fluid.moduleLayout.layoutFromIds(idLayout)}return togo}var layout=computeLayout();that.layout=layout;function isLocked(item){var lockedModules=options.selectors.lockedModules?dom.fastLocate("lockedModules"):[];return $.inArray(item,lockedModules)!==-1}that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.WRAP_LOCKED_STRATEGY,fluid.reorderer.GEOMETRIC_STRATEGY,dropManager,dom);that.getGeometricInfo=function(){var extents=[];var togo={extents:extents,sentinelize:options.sentinelize};togo.elementMapper=function(element){return isLocked(element)?"locked":null};for(var col=0;col<layout.columns.length;col++){var column=layout.columns[col];var thisEls={orientation:options.orientation,elements:$.makeArray(column.elements),parentElement:column.container};extents.push(thisEls)}return togo};function computeModules(all){return function(){var modules=fluid.accumulate(layout.columns,function(column,list){return list.concat(column.elements)},[]);if(!all){fluid.remove_if(modules,isLocked)}return modules}}that.returnedOptions={selectors:{movables:computeModules(false),dropTargets:computeModules(false),selectables:computeModules(true)},listeners:{onMove:function(item,requestedPosition){fluid.moduleLayout.updateLayout(item,requestedPosition.element,requestedPosition.position,layout)},onRefresh:function(){layout=computeLayout();that.layout=layout},"onShowKeyboardDropWarning.setPosition":defaultOnShowKeyboardDropWarning}};that.getModel=function(){return fluid.moduleLayout.layoutToIds(layout)};return that}})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.moduleLayout");fluid.moduleLayout.findColumnAndItemIndices=function(item,layout){return fluid.find(layout.columns,function(column,colIndex){var index=$.inArray(item,column.elements);return index===-1?undefined:{columnIndex:colIndex,itemIndex:index}},{columnIndex:-1,itemIndex:-1})};fluid.moduleLayout.findColIndex=function(item,layout){return fluid.find(layout.columns,function(column,colIndex){return item===column.container?colIndex:undefined},-1)};fluid.moduleLayout.updateLayout=function(item,target,position,layout){item=fluid.unwrap(item);target=fluid.unwrap(target);var itemIndices=fluid.moduleLayout.findColumnAndItemIndices(item,layout);layout.columns[itemIndices.columnIndex].elements.splice(itemIndices.itemIndex,1);var targetCol;if(position===fluid.position.INSIDE){targetCol=layout.columns[fluid.moduleLayout.findColIndex(target,layout)].elements;targetCol.splice(targetCol.length,0,item)}else{var relativeItemIndices=fluid.moduleLayout.findColumnAndItemIndices(target,layout);targetCol=layout.columns[relativeItemIndices.columnIndex].elements;position=fluid.normalisePosition(position,itemIndices.columnIndex===relativeItemIndices.columnIndex,relativeItemIndices.itemIndex,itemIndices.itemIndex);var relative=position===fluid.position.BEFORE?0:1;targetCol.splice(relativeItemIndices.itemIndex+relative,0,item)}};fluid.moduleLayout.layoutFromFlat=function(container,columns,portlets){var layout={};layout.container=container;layout.columns=fluid.transform(columns,function(column){return{container:column,elements:$.makeArray(portlets.filter(function(){return fluid.dom.isContainer(column,this)}))}});return layout};fluid.moduleLayout.layoutFromIds=function(idLayout){return{container:fluid.byId(idLayout.id),columns:fluid.transform(idLayout.columns,function(column){return{container:fluid.byId(column.id),elements:fluid.transform(column.children,fluid.byId)}})}};fluid.moduleLayout.layoutToIds=function(idLayout){return{id:fluid.getId(idLayout.container),columns:fluid.transform(idLayout.columns,function(column){return{id:fluid.getId(column.container),children:fluid.transform(column.elements,fluid.getId)}})}};var defaultOnShowKeyboardDropWarning=function(item,dropWarning){if(dropWarning){var offset=$(item).offset();dropWarning=$(dropWarning);dropWarning.css("position","absolute");dropWarning.css("top",offset.top);dropWarning.css("left",offset.left)}};fluid.defaults(true,"fluid.moduleLayoutHandler",{orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.REGIONS,selectablesTabindex:-1,sentinelize:true});fluid.moduleLayoutHandler=function(container,options,dropManager,dom){var that={};function computeLayout(){var togo;if(options.selectors.modules){togo=fluid.moduleLayout.layoutFromFlat(container,dom.locate("columns"),dom.locate("modules"))}if(!togo){var idLayout=fluid.get(options,"moduleLayout.layout");fluid.moduleLayout.layoutFromIds(idLayout)}return togo}var layout=computeLayout();that.layout=layout;function isLocked(item){var lockedModules=options.selectors.lockedModules?dom.fastLocate("lockedModules"):[];return $.inArray(item,lockedModules)!==-1}that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.WRAP_LOCKED_STRATEGY,fluid.reorderer.GEOMETRIC_STRATEGY,dropManager,dom,options.disableWrap);that.getGeometricInfo=function(){var extents=[];var togo={extents:extents,sentinelize:options.sentinelize};togo.elementMapper=function(element){return isLocked(element)?"locked":null};togo.elementIndexer=function(element){var indices=fluid.moduleLayout.findColumnAndItemIndices(element,that.layout);return{index:indices.itemIndex,length:layout.columns[indices.columnIndex].elements.length,moduleIndex:indices.columnIndex,moduleLength:layout.columns.length}};for(var col=0;col<layout.columns.length;col++){var column=layout.columns[col];var thisEls={orientation:options.orientation,elements:$.makeArray(column.elements),parentElement:column.container};extents.push(thisEls)}return togo};function computeModules(all){return function(){var modules=fluid.accumulate(layout.columns,function(column,list){return list.concat(column.elements)},[]);if(!all){fluid.remove_if(modules,isLocked)}return modules}}that.returnedOptions={selectors:{movables:computeModules(false),dropTargets:computeModules(false),selectables:computeModules(true)},listeners:{onMove:{priority:"last",listener:function(item,requestedPosition){fluid.moduleLayout.updateLayout(item,requestedPosition.element,requestedPosition.position,layout)}},onRefresh:function(){layout=computeLayout();that.layout=layout},"onShowKeyboardDropWarning.setPosition":defaultOnShowKeyboardDropWarning}};that.getModel=function(){return fluid.moduleLayout.layoutToIds(layout)};return that}})(jQuery,fluid_1_4);
\ No newline at end of file
index 656f8ec..435ead9 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var defaultAvatarCreator=function(item,cssClass,dropWarning){var avatar=$(item).clone();fluid.dom.iterateDom(avatar.get(0),function(node){if(node.tagName.toLowerCase()==="script"){return"delete"}node.removeAttribute("id");if(node.tagName.toLowerCase()==="input"){node.setAttribute("disabled","disabled")}});avatar.removeAttr("id");avatar.removeClass("ui-droppable");avatar.addClass(cssClass);if(dropWarning){var avatarContainer=$(document.createElement("div"));avatarContainer.append(avatar);avatarContainer.append(dropWarning);avatar=avatarContainer}$("body").append(avatar);if(!$.browser.safari){avatar.css("display","block").width(item.offsetWidth).height(item.offsetHeight)}if($.browser.opera){avatar.hide()}return avatar};function firstSelectable(that){var selectables=that.dom.fastLocate("selectables");if(selectables.length<=0){return null}return selectables[0]}function bindHandlersToContainer(container,keyDownHandler,keyUpHandler,mouseMoveHandler){var actualKeyDown=keyDownHandler;var advancedPrevention=false;if($.browser.msie){container[0].ondrag=function(){return false};container[0].onselectstart=function(){return false}}if($.browser.opera){container.keypress(function(evt){if(advancedPrevention){advancedPrevention=false;evt.preventDefault();return false}});actualKeyDown=function(evt){var oldret=keyDownHandler(evt);if(oldret===false){advancedPrevention=true}}}container.keydown(actualKeyDown);container.keyup(keyUpHandler)}function addRolesToContainer(that){var first=that.dom.fastLocate("selectables")[0];that.container.attr("role",that.options.containerRole.container);that.container.attr("aria-multiselectable","false");that.container.attr("aria-readonly","false");that.container.attr("aria-disabled","false")}function createAvatarId(parentId){return parentId+"_avatar"}var adaptKeysets=function(options){if(options.keysets&&!(options.keysets instanceof Array)){options.keysets=[options.keysets]}};fluid.reorderer=function(container,options){if(!container){fluid.fail("Reorderer initialised with no container")}var thatReorderer=fluid.initView("fluid.reorderer",container,options);options=thatReorderer.options;var dropManager=fluid.dropManager();thatReorderer.layoutHandler=fluid.initSubcomponent(thatReorderer,"layoutHandler",[container,options,dropManager,thatReorderer.dom]);thatReorderer.activeItem=undefined;adaptKeysets(options);var kbDropWarning=thatReorderer.locate("dropWarning");var mouseDropWarning;if(kbDropWarning){mouseDropWarning=kbDropWarning.clone()}var isMove=function(evt){var keysets=options.keysets;for(var i=0;i<keysets.length;i++){if(keysets[i].modifier(evt)){return true}}return false};var isActiveItemMovable=function(){return $.inArray(thatReorderer.activeItem,thatReorderer.dom.fastLocate("movables"))>=0};var setDropEffects=function(value){thatReorderer.dom.fastLocate("dropTargets").attr("aria-dropeffect",value)};var styles=options.styles;var noModifier=function(evt){return(!evt.ctrlKey&&!evt.altKey&&!evt.shiftKey&&!evt.metaKey)};var handleDirectionKeyDown=function(evt){var item=thatReorderer.activeItem;if(!item){return true}var keysets=options.keysets;for(var i=0;i<keysets.length;i++){var keyset=keysets[i];var didProcessKey=false;var keydir=fluid.keyForValue(keyset,evt.keyCode);if(!keydir){continue}var isMovement=keyset.modifier(evt);var dirnum=fluid.keycodeDirection[keydir];var relativeItem=thatReorderer.layoutHandler.getRelativePosition(item,dirnum,!isMovement);if(!relativeItem){continue}if(isMovement){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false){return false}if(kbDropWarning.length>0){if(relativeItem.clazz==="locked"){thatReorderer.events.onShowKeyboardDropWarning.fire(item,kbDropWarning);kbDropWarning.show()}else{kbDropWarning.hide()}}if(relativeItem.element){thatReorderer.requestMovement(relativeItem,item)}}else{if(noModifier(evt)){$(relativeItem.element).focus()}}return false}return true};thatReorderer.handleKeyDown=function(evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target){return true}var jActiveItem=$(thatReorderer.activeItem);if(!jActiveItem.hasClass(styles.dragging)&&isMove(evt)){if(isActiveItemMovable()){jActiveItem.removeClass(styles.selected);jActiveItem.addClass(styles.dragging);jActiveItem.attr("aria-grabbed","true");setDropEffects("move")}return false}return handleDirectionKeyDown(evt)};thatReorderer.handleKeyUp=function(evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target){return true}var jActiveItem=$(thatReorderer.activeItem);if(jActiveItem.hasClass(styles.dragging)&&!isMove(evt)){if(kbDropWarning){kbDropWarning.hide()}jActiveItem.removeClass(styles.dragging);jActiveItem.addClass(styles.selected);jActiveItem.attr("aria-grabbed","false");setDropEffects("none");return false}return false};var dropMarker;var createDropMarker=function(tagName){var dropMarker=$(document.createElement(tagName));dropMarker.addClass(options.styles.dropMarker);dropMarker.hide();return dropMarker};fluid.logEnabled=true;thatReorderer.requestMovement=function(requestedPosition,item){if(!requestedPosition||fluid.unwrap(requestedPosition.element)===fluid.unwrap(item)){return }thatReorderer.events.onMove.fire(item,requestedPosition);dropManager.geometricMove(item,requestedPosition.element,requestedPosition.position);$(thatReorderer.activeItem).focus();thatReorderer.refresh();dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());thatReorderer.events.afterMove.fire(item,requestedPosition,thatReorderer.dom.fastLocate("movables"))};var hoverStyleHandler=function(item,state){thatReorderer.dom.fastLocate("grabHandle",item)[state?"addClass":"removeClass"](styles.hover)};function initMovable(item){var styles=options.styles;item.attr("aria-grabbed","false");item.mouseover(function(){thatReorderer.events.onHover.fire(item,true)});item.mouseout(function(){thatReorderer.events.onHover.fire(item,false)});var avatar;thatReorderer.dom.fastLocate("grabHandle",item).draggable({refreshPositions:false,scroll:true,helper:function(){var dropWarningEl;if(mouseDropWarning){dropWarningEl=mouseDropWarning[0]}avatar=$(options.avatarCreator(item[0],styles.avatar,dropWarningEl));avatar.attr("id",createAvatarId(thatReorderer.container.id));return avatar},start:function(e,ui){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false){return false}var handle=thatReorderer.dom.fastLocate("grabHandle",item)[0];var handlePos=fluid.dom.computeAbsolutePosition(handle);var handleWidth=handle.offsetWidth;var handleHeight=handle.offsetHeight;item.focus();item.removeClass(options.styles.selected);item.addClass(options.styles.mouseDrag);item.attr("aria-grabbed","true");setDropEffects("move");dropManager.startDrag(e,handlePos,handleWidth,handleHeight);avatar.show()},stop:function(e,ui){item.removeClass(options.styles.mouseDrag);item.addClass(options.styles.selected);$(thatReorderer.activeItem).attr("aria-grabbed","false");var markerNode=fluid.unwrap(dropMarker);if(markerNode.parentNode){markerNode.parentNode.removeChild(markerNode)}avatar.hide();ui.helper=null;setDropEffects("none");dropManager.endDrag();thatReorderer.requestMovement(dropManager.lastPosition(),item);thatReorderer.activeItem.focus()},handle:thatReorderer.dom.fastLocate("grabHandle",item)})}function changeSelectedToDefault(jItem,styles){jItem.removeClass(styles.selected);jItem.removeClass(styles.dragging);jItem.addClass(styles.defaultStyle);jItem.attr("aria-selected","false")}var selectItem=function(anItem){thatReorderer.events.onSelect.fire(anItem);var styles=options.styles;if(thatReorderer.activeItem&&thatReorderer.activeItem!==anItem){changeSelectedToDefault($(thatReorderer.activeItem),styles)}thatReorderer.activeItem=anItem;var jItem=$(anItem);jItem.removeClass(styles.defaultStyle);jItem.addClass(styles.selected);jItem.attr("aria-selected","true")};var initSelectables=function(){var handleBlur=function(evt){changeSelectedToDefault($(this),options.styles);return evt.stopPropagation()};var handleFocus=function(evt){selectItem(this);return evt.stopPropagation()};var selectables=thatReorderer.dom.fastLocate("selectables");for(var i=0;i<selectables.length;++i){var selectable=$(selectables[i]);if(!$.data(selectable[0],"fluid.reorderer.selectable-initialised")){selectable.addClass(styles.defaultStyle);selectables.blur(handleBlur);selectables.focus(handleFocus);selectables.click(function(evt){var handle=fluid.unwrap(thatReorderer.dom.fastLocate("grabHandle",this));if(fluid.dom.isContainer(handle,evt.target)){$(this).focus()}});selectables.attr("role",options.containerRole.item);selectables.attr("aria-selected","false");selectables.attr("aria-disabled","false");$.data(selectable[0],"fluid.reorderer.selectable-initialised",true)}}if(!thatReorderer.selectableContext){thatReorderer.selectableContext=fluid.selectable(thatReorderer.container,{selectableElements:selectables,selectablesTabindex:thatReorderer.options.selectablesTabindex,direction:null})}};var dropChangeListener=function(dropTarget){fluid.moveDom(dropMarker,dropTarget.element,dropTarget.position);dropMarker.css("display","");if(mouseDropWarning){if(dropTarget.lockedelem){mouseDropWarning.show()}else{mouseDropWarning.hide()}}};var initItems=function(){var movables=thatReorderer.dom.fastLocate("movables");var dropTargets=thatReorderer.dom.fastLocate("dropTargets");initSelectables();for(var i=0;i<movables.length;i++){var item=movables[i];if(!$.data(item,"fluid.reorderer.movable-initialised")){initMovable($(item));$.data(item,"fluid.reorderer.movable-initialised",true)}}if(movables.length>0&&!dropMarker){dropMarker=createDropMarker(movables[0].tagName)}dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());dropManager.dropChangeFirer.addListener(dropChangeListener,"fluid.Reorderer");dropTargets.attr("aria-dropeffect","none")};if(thatReorderer.container){bindHandlersToContainer(thatReorderer.container,thatReorderer.handleKeyDown,thatReorderer.handleKeyUp);addRolesToContainer(thatReorderer);fluid.tabbable(thatReorderer.container);initItems()}if(options.afterMoveCallbackUrl){thatReorderer.events.afterMove.addListener(function(){var layoutHandler=thatReorderer.layoutHandler;var model=layoutHandler.getModel?layoutHandler.getModel():options.acquireModel(thatReorderer);$.post(options.afterMoveCallbackUrl,JSON.stringify(model))},"postModel")}thatReorderer.events.onHover.addListener(hoverStyleHandler,"style");thatReorderer.refresh=function(){thatReorderer.dom.refresh("movables");thatReorderer.dom.refresh("selectables");thatReorderer.dom.refresh("grabHandle",thatReorderer.dom.fastLocate("movables"));thatReorderer.dom.refresh("stylisticOffset",thatReorderer.dom.fastLocate("movables"));thatReorderer.dom.refresh("dropTargets");thatReorderer.events.onRefresh.fire();initItems();thatReorderer.selectableContext.selectables=thatReorderer.dom.fastLocate("selectables");thatReorderer.selectableContext.selectablesUpdated(thatReorderer.activeItem)};thatReorderer.refresh();return thatReorderer};fluid.reorderer.keys={TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:19,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,i:73,j:74,k:75,m:77};fluid.reorderer.defaultKeysets=[{modifier:function(evt){return evt.ctrlKey},up:fluid.reorderer.keys.UP,down:fluid.reorderer.keys.DOWN,right:fluid.reorderer.keys.RIGHT,left:fluid.reorderer.keys.LEFT},{modifier:function(evt){return evt.ctrlKey},up:fluid.reorderer.keys.i,down:fluid.reorderer.keys.m,right:fluid.reorderer.keys.k,left:fluid.reorderer.keys.j}];fluid.reorderer.roles={GRID:{container:"grid",item:"gridcell"},LIST:{container:"list",item:"listitem"},REGIONS:{container:"main",item:"article"}};var simpleInit=function(container,layoutHandler,options){options=options||{};options.layoutHandler=layoutHandler;return fluid.reorderer(container,options)};fluid.reorderList=function(container,options){return simpleInit(container,"fluid.listLayoutHandler",options)};fluid.reorderGrid=function(container,options){return simpleInit(container,"fluid.gridLayoutHandler",options)};fluid.reorderer.GEOMETRIC_STRATEGY="projectFrom";fluid.reorderer.LOGICAL_STRATEGY="logicalFrom";fluid.reorderer.WRAP_LOCKED_STRATEGY="lockedWrapFrom";fluid.reorderer.NO_STRATEGY=null;fluid.reorderer.relativeInfoGetter=function(orientation,coStrategy,contraStrategy,dropManager,dom){return function(item,direction,forSelection){var dirorient=fluid.directionOrientation(direction);var strategy=dirorient===orientation?coStrategy:contraStrategy;return strategy!==null?dropManager[strategy](item,direction,forSelection):null}};fluid.defaults("fluid.reorderer",{styles:{defaultStyle:"fl-reorderer-movable-default",selected:"fl-reorderer-movable-selected",dragging:"fl-reorderer-movable-dragging",mouseDrag:"fl-reorderer-movable-dragging",hover:"fl-reorderer-movable-hover",dropMarker:"fl-reorderer-dropMarker",avatar:"fl-reorderer-avatar"},selectors:{dropWarning:".flc-reorderer-dropWarning",movables:".flc-reorderer-movable",grabHandle:"",stylisticOffset:""},avatarCreator:defaultAvatarCreator,keysets:fluid.reorderer.defaultKeysets,layoutHandler:{type:"fluid.listLayoutHandler"},events:{onShowKeyboardDropWarning:null,onSelect:null,onBeginMove:"preventable",onMove:null,afterMove:null,onHover:null,onRefresh:null},mergePolicy:{keysets:"replace","selectors.selectables":"selectors.movables","selectors.dropTargets":"selectors.movables"}});function geometricInfoGetter(orientation,sentinelize,dom){return function(){return{sentinelize:sentinelize,extents:[{orientation:orientation,elements:dom.fastLocate("dropTargets")}],elementMapper:function(element){return $.inArray(element,dom.fastLocate("movables"))===-1?"locked":null}}}}fluid.defaults(true,"fluid.listLayoutHandler",{orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.LIST,selectablesTabindex:-1,sentinelize:true});fluid.listLayoutHandler=function(container,options,dropManager,dom){var that={};that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.LOGICAL_STRATEGY,null,dropManager,dom);that.getGeometricInfo=geometricInfoGetter(options.orientation,options.sentinelize,dom);return that};fluid.defaults(true,"fluid.gridLayoutHandler",{orientation:fluid.orientation.HORIZONTAL,containerRole:fluid.reorderer.roles.GRID,selectablesTabindex:-1,sentinelize:false});fluid.gridLayoutHandler=function(container,options,dropManager,dom){var that={};that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.LOGICAL_STRATEGY,fluid.reorderer.GEOMETRIC_STRATEGY,dropManager,dom);that.getGeometricInfo=geometricInfoGetter(options.orientation,options.sentinelize,dom);return that}})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){var defaultAvatarCreator=function(item,cssClass,dropWarning){fluid.dom.cleanseScripts(fluid.unwrap(item));var avatar=$(item).clone();fluid.dom.iterateDom(avatar.get(0),function(node){node.removeAttribute("id");if(node.tagName.toLowerCase()==="input"){node.setAttribute("disabled","disabled")}});avatar.removeProp("id");avatar.removeClass("ui-droppable");avatar.addClass(cssClass);if(dropWarning){var avatarContainer=$(document.createElement("div"));avatarContainer.append(avatar);avatarContainer.append(dropWarning);avatar=avatarContainer}$("body").append(avatar);if(!$.browser.safari){avatar.css("display","block").width(item.offsetWidth).height(item.offsetHeight)}if($.browser.opera){avatar.hide()}return avatar};function bindHandlersToContainer(container,keyDownHandler,keyUpHandler,mouseMoveHandler){var actualKeyDown=keyDownHandler;var advancedPrevention=false;if($.browser.opera){container.keypress(function(evt){if(advancedPrevention){advancedPrevention=false;evt.preventDefault();return false}});actualKeyDown=function(evt){var oldret=keyDownHandler(evt);if(oldret===false){advancedPrevention=true}}}container.keydown(actualKeyDown);container.keyup(keyUpHandler)}function addRolesToContainer(that){that.container.attr("role",that.options.containerRole.container);that.container.attr("aria-multiselectable","false");that.container.attr("aria-readonly","false");that.container.attr("aria-disabled","false")}function createAvatarId(parentId){return parentId+"_avatar"}var adaptKeysets=function(options){if(options.keysets&&!(options.keysets instanceof Array)){options.keysets=[options.keysets]}};fluid.reorderer=function(container,options){if(!container){fluid.fail("Reorderer initialised with no container")}var thatReorderer=fluid.initView("fluid.reorderer",container,options);options=thatReorderer.options;var dropManager=fluid.dropManager();thatReorderer.layoutHandler=fluid.initSubcomponent(thatReorderer,"layoutHandler",[thatReorderer.container,options,dropManager,thatReorderer.dom]);thatReorderer.activeItem=undefined;adaptKeysets(options);var kbDropWarning=thatReorderer.locate("dropWarning");var mouseDropWarning;if(kbDropWarning){mouseDropWarning=kbDropWarning.clone()}var isMove=function(evt){var keysets=options.keysets;for(var i=0;i<keysets.length;i++){if(keysets[i].modifier(evt)){return true}}return false};var isActiveItemMovable=function(){return $.inArray(thatReorderer.activeItem,thatReorderer.dom.fastLocate("movables"))>=0};var setDropEffects=function(value){thatReorderer.dom.fastLocate("dropTargets").attr("aria-dropeffect",value)};var styles=options.styles;var noModifier=function(evt){return(!evt.ctrlKey&&!evt.altKey&&!evt.shiftKey&&!evt.metaKey)};var handleDirectionKeyDown=function(evt){var item=thatReorderer.activeItem;if(!item){return true}var keysets=options.keysets;for(var i=0;i<keysets.length;i++){var keyset=keysets[i];var keydir=fluid.keyForValue(keyset,evt.keyCode);if(!keydir){continue}var isMovement=keyset.modifier(evt);var dirnum=fluid.keycodeDirection[keydir];var relativeItem=thatReorderer.layoutHandler.getRelativePosition(item,dirnum,!isMovement);if(!relativeItem){continue}if(isMovement){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false){return false}if(kbDropWarning.length>0){if(relativeItem.clazz==="locked"){thatReorderer.events.onShowKeyboardDropWarning.fire(item,kbDropWarning);kbDropWarning.show()}else{kbDropWarning.hide()}}if(relativeItem.element){thatReorderer.requestMovement(relativeItem,item)}}else{if(noModifier(evt)){item.blur();$(relativeItem.element).focus()}}return false}return true};thatReorderer.handleKeyDown=function(evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target){return true}var jActiveItem=$(thatReorderer.activeItem);if(!jActiveItem.hasClass(styles.dragging)&&isMove(evt)){if(isActiveItemMovable()){jActiveItem.removeClass(styles.selected);jActiveItem.addClass(styles.dragging);jActiveItem.attr("aria-grabbed","true");setDropEffects("move")}return false}return handleDirectionKeyDown(evt)};thatReorderer.handleKeyUp=function(evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target){return true}var jActiveItem=$(thatReorderer.activeItem);if(jActiveItem.hasClass(styles.dragging)&&!isMove(evt)){if(kbDropWarning){kbDropWarning.hide()}jActiveItem.removeClass(styles.dragging);jActiveItem.addClass(styles.selected);jActiveItem.attr("aria-grabbed","false");setDropEffects("none");return false}return false};var dropMarker;var createDropMarker=function(tagName){var dropMarker=$(document.createElement(tagName));dropMarker.addClass(options.styles.dropMarker);dropMarker.hide();return dropMarker};thatReorderer.requestMovement=function(requestedPosition,item){item=fluid.unwrap(item);if(!requestedPosition||fluid.unwrap(requestedPosition.element)===item){return }var activeItem=$(thatReorderer.activeItem);activeItem.unbind("blur.fluid.reorderer");thatReorderer.events.onMove.fire(item,requestedPosition);dropManager.geometricMove(item,requestedPosition.element,requestedPosition.position);activeItem.focus();thatReorderer.refresh();dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());thatReorderer.events.afterMove.fire(item,requestedPosition,thatReorderer.dom.fastLocate("movables"))};var hoverStyleHandler=function(item,state){thatReorderer.dom.fastLocate("grabHandle",item)[state?"addClass":"removeClass"](styles.hover)};function initMovable(item){var styles=options.styles;item.attr("aria-grabbed","false");item.mouseover(function(){thatReorderer.events.onHover.fire(item,true)});item.mouseout(function(){thatReorderer.events.onHover.fire(item,false)});var avatar;thatReorderer.dom.fastLocate("grabHandle",item).draggable({refreshPositions:false,scroll:true,helper:function(){var dropWarningEl;if(mouseDropWarning){dropWarningEl=mouseDropWarning[0]}avatar=$(options.avatarCreator(item[0],styles.avatar,dropWarningEl));avatar.prop("id",createAvatarId(thatReorderer.container.id));return avatar},start:function(e,ui){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false){return false}var handle=thatReorderer.dom.fastLocate("grabHandle",item)[0];var handlePos=fluid.dom.computeAbsolutePosition(handle);var handleWidth=handle.offsetWidth;var handleHeight=handle.offsetHeight;item.focus();item.removeClass(options.styles.selected);item.addClass(options.styles.mouseDrag);item.attr("aria-grabbed","true");setDropEffects("move");dropManager.startDrag(e,handlePos,handleWidth,handleHeight);avatar.show()},stop:function(e,ui){item.removeClass(options.styles.mouseDrag);item.addClass(options.styles.selected);$(thatReorderer.activeItem).attr("aria-grabbed","false");var markerNode=fluid.unwrap(dropMarker);if(markerNode.parentNode){markerNode.parentNode.removeChild(markerNode)}avatar.hide();ui.helper=null;setDropEffects("none");dropManager.endDrag();thatReorderer.requestMovement(dropManager.lastPosition(),item);thatReorderer.activeItem.focus()},handle:thatReorderer.dom.fastLocate("grabHandle",item)})}function changeSelectedToDefault(jItem,styles){jItem.removeClass(styles.selected);jItem.removeClass(styles.dragging);jItem.addClass(styles.defaultStyle);jItem.attr("aria-selected","false")}var selectItem=function(anItem){thatReorderer.events.onSelect.fire(anItem);var styles=options.styles;if(thatReorderer.activeItem&&thatReorderer.activeItem!==anItem){changeSelectedToDefault($(thatReorderer.activeItem),styles)}thatReorderer.activeItem=anItem;var jItem=$(anItem);jItem.removeClass(styles.defaultStyle);jItem.addClass(styles.selected);jItem.attr("aria-selected","true")};var initSelectables=function(){var handleBlur=function(evt){changeSelectedToDefault($(this),options.styles);return evt.stopPropagation()};var handleFocus=function(evt){selectItem(this);return evt.stopPropagation()};var selectables=thatReorderer.dom.fastLocate("selectables");for(var i=0;i<selectables.length;++i){var selectable=$(selectables[i]);if(!$.data(selectable[0],"fluid.reorderer.selectable-initialised")){selectable.addClass(styles.defaultStyle);selectable.bind("blur.fluid.reorderer",handleBlur);selectable.focus(handleFocus);selectable.click(function(evt){var handle=fluid.unwrap(thatReorderer.dom.fastLocate("grabHandle",this));if(fluid.dom.isContainer(handle,evt.target)){$(this).focus()}});selectable.attr("role",options.containerRole.item);selectable.attr("aria-selected","false");selectable.attr("aria-disabled","false");$.data(selectable[0],"fluid.reorderer.selectable-initialised",true)}}if(!thatReorderer.selectableContext){thatReorderer.selectableContext=fluid.selectable(thatReorderer.container,{selectableElements:selectables,selectablesTabindex:thatReorderer.options.selectablesTabindex,direction:null})}};var dropChangeListener=function(dropTarget){fluid.moveDom(dropMarker,dropTarget.element,dropTarget.position);dropMarker.css("display","");if(mouseDropWarning){if(dropTarget.lockedelem){mouseDropWarning.show()}else{mouseDropWarning.hide()}}};var initItems=function(){var movables=thatReorderer.dom.fastLocate("movables");var dropTargets=thatReorderer.dom.fastLocate("dropTargets");initSelectables();for(var i=0;i<movables.length;i++){var item=movables[i];if(!$.data(item,"fluid.reorderer.movable-initialised")){initMovable($(item));$.data(item,"fluid.reorderer.movable-initialised",true)}}if(movables.length>0&&!dropMarker){dropMarker=createDropMarker(movables[0].tagName)}dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());dropManager.dropChangeFirer.addListener(dropChangeListener,"fluid.Reorderer");dropTargets.attr("aria-dropeffect","none")};if(thatReorderer.container){bindHandlersToContainer(thatReorderer.container,thatReorderer.handleKeyDown,thatReorderer.handleKeyUp);addRolesToContainer(thatReorderer);fluid.tabbable(thatReorderer.container);initItems()}if(options.afterMoveCallbackUrl){thatReorderer.events.afterMove.addListener(function(){var layoutHandler=thatReorderer.layoutHandler;var model=layoutHandler.getModel?layoutHandler.getModel():options.acquireModel(thatReorderer);$.post(options.afterMoveCallbackUrl,JSON.stringify(model))},"postModel")}thatReorderer.events.onHover.addListener(hoverStyleHandler,"style");thatReorderer.refresh=function(){thatReorderer.dom.refresh("movables");thatReorderer.dom.refresh("selectables");thatReorderer.dom.refresh("grabHandle",thatReorderer.dom.fastLocate("movables"));thatReorderer.dom.refresh("stylisticOffset",thatReorderer.dom.fastLocate("movables"));thatReorderer.dom.refresh("dropTargets");thatReorderer.events.onRefresh.fire();initItems();thatReorderer.selectableContext.selectables=thatReorderer.dom.fastLocate("selectables");thatReorderer.selectableContext.selectablesUpdated(thatReorderer.activeItem)};fluid.initDependents(thatReorderer);thatReorderer.refresh();return thatReorderer};fluid.reorderer.keys={TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:19,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,i:73,j:74,k:75,m:77};fluid.reorderer.defaultKeysets=[{modifier:function(evt){return evt.ctrlKey},up:fluid.reorderer.keys.UP,down:fluid.reorderer.keys.DOWN,right:fluid.reorderer.keys.RIGHT,left:fluid.reorderer.keys.LEFT},{modifier:function(evt){return evt.ctrlKey},up:fluid.reorderer.keys.i,down:fluid.reorderer.keys.m,right:fluid.reorderer.keys.k,left:fluid.reorderer.keys.j}];fluid.reorderer.roles={GRID:{container:"grid",item:"gridcell"},LIST:{container:"list",item:"listitem"},REGIONS:{container:"main",item:"article"}};var simpleInit=function(container,layoutHandler,options){options=options||{};options.layoutHandler=layoutHandler;return fluid.reorderer(container,options)};fluid.reorderList=function(container,options){return simpleInit(container,"fluid.listLayoutHandler",options)};fluid.reorderGrid=function(container,options){return simpleInit(container,"fluid.gridLayoutHandler",options)};fluid.reorderer.SHUFFLE_GEOMETRIC_STRATEGY="shuffleProjectFrom";fluid.reorderer.GEOMETRIC_STRATEGY="projectFrom";fluid.reorderer.LOGICAL_STRATEGY="logicalFrom";fluid.reorderer.WRAP_LOCKED_STRATEGY="lockedWrapFrom";fluid.reorderer.NO_STRATEGY=null;fluid.reorderer.relativeInfoGetter=function(orientation,coStrategy,contraStrategy,dropManager,dom,disableWrap){return function(item,direction,forSelection){var dirorient=fluid.directionOrientation(direction);var strategy=dirorient===orientation?coStrategy:contraStrategy;return strategy!==null?dropManager[strategy](item,direction,forSelection,disableWrap):null}};fluid.defaults("fluid.reorderer",{styles:{defaultStyle:"fl-reorderer-movable-default",selected:"fl-reorderer-movable-selected",dragging:"fl-reorderer-movable-dragging",mouseDrag:"fl-reorderer-movable-dragging",hover:"fl-reorderer-movable-hover",dropMarker:"fl-reorderer-dropMarker",avatar:"fl-reorderer-avatar"},selectors:{dropWarning:".flc-reorderer-dropWarning",movables:".flc-reorderer-movable",grabHandle:"",stylisticOffset:""},avatarCreator:defaultAvatarCreator,keysets:fluid.reorderer.defaultKeysets,layoutHandler:{type:"fluid.listLayoutHandler"},events:{onShowKeyboardDropWarning:null,onSelect:null,onBeginMove:"preventable",onMove:null,afterMove:null,onHover:null,onRefresh:null},mergePolicy:{keysets:"replace","selectors.labelSource":"selectors.grabHandle","selectors.selectables":"selectors.movables","selectors.dropTargets":"selectors.movables"},components:{labeller:{type:"fluid.reorderer.labeller",options:{dom:"{reorderer}.dom",getGeometricInfo:"{reorderer}.layoutHandler.getGeometricInfo",orientation:"{reorderer}.options.orientation",layoutType:"{reorderer}.options.layoutHandler"}}},disableWrap:false});fluid.reorderer.makeGeometricInfoGetter=function(orientation,sentinelize,dom){return function(){var that={sentinelize:sentinelize,extents:[{orientation:orientation,elements:dom.fastLocate("dropTargets")}],elementMapper:function(element){return $.inArray(element,dom.fastLocate("movables"))===-1?"locked":null},elementIndexer:function(element){var selectables=dom.fastLocate("selectables");return{elementClass:that.elementMapper(element),index:$.inArray(element,selectables),length:selectables.length}}};return that}};fluid.defaults(true,"fluid.listLayoutHandler",{orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.LIST,selectablesTabindex:-1,sentinelize:true});fluid.listLayoutHandler=function(container,options,dropManager,dom){var that={};that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,fluid.reorderer.LOGICAL_STRATEGY,null,dropManager,dom,options.disableWrap);that.getGeometricInfo=fluid.reorderer.makeGeometricInfoGetter(options.orientation,options.sentinelize,dom);return that};fluid.defaults(true,"fluid.gridLayoutHandler",{orientation:fluid.orientation.HORIZONTAL,containerRole:fluid.reorderer.roles.GRID,selectablesTabindex:-1,sentinelize:false});fluid.gridLayoutHandler=function(container,options,dropManager,dom){var that={};that.getRelativePosition=fluid.reorderer.relativeInfoGetter(options.orientation,options.disableWrap?fluid.reorderer.SHUFFLE_GEOMETRIC_STRATEGY:fluid.reorderer.LOGICAL_STRATEGY,fluid.reorderer.SHUFFLE_GEOMETRIC_STRATEGY,dropManager,dom,options.disableWrap);that.getGeometricInfo=fluid.reorderer.makeGeometricInfoGetter(options.orientation,options.sentinelize,dom);return that};fluid.defaults("fluid.reorderer.labeller",{strings:{overallTemplate:"%recentStatus %item %position %movable",position:"%index of %length",position_moduleLayoutHandler:"%index of %length in %moduleCell %moduleIndex of %moduleLength",moduleCell_0:"row",moduleCell_1:"column",movable:"movable",fixed:"fixed",recentStatus:"moved from position %position"},components:{resolver:{type:"fluid.messageResolver",options:{messageBase:"{labeller}.options.strings"}}},invokers:{renderLabel:{funcName:"fluid.reorderer.labeller.renderLabel",args:["{labeller}","@0","@1"]}}});fluid.reorderer.indexRebaser=function(indices){indices.index++;if(indices.moduleIndex!==undefined){indices.moduleIndex++}return indices};fluid.reorderer.labeller=function(options){var that=fluid.initLittleComponent("fluid.reorderer.labeller",options);fluid.initDependents(that);that.dom=that.options.dom;that.moduleCell=that.resolver.resolve("moduleCell_"+that.options.orientation);var layoutType=fluid.computeNickName(that.options.layoutType);that.positionTemplate=that.resolver.lookup(["position_"+layoutType,"position"]);var movedMap={};that.returnedOptions={listeners:{onRefresh:function(){var selectables=that.dom.locate("selectables");fluid.each(selectables,function(selectable){var labelOptions={};var id=fluid.allocateSimpleId(selectable);var moved=movedMap[id];var label=that.renderLabel(selectable);var plainLabel=label;if(moved){moved.newRender=plainLabel;label=that.renderLabel(selectable,moved.oldRender.position);$(selectable).one("focusout",function(){if(movedMap[id]){var oldLabel=movedMap[id].newRender.label;delete movedMap[id];fluid.updateAriaLabel(selectable,oldLabel)}});labelOptions.dynamicLabel=true}fluid.updateAriaLabel(selectable,label.label,labelOptions)})},onMove:function(item,newPosition){fluid.clear(movedMap);var movingId=fluid.allocateSimpleId(item);movedMap[movingId]={oldRender:that.renderLabel(item)}}}};return that};fluid.reorderer.labeller.renderLabel=function(that,selectable,recentPosition){var geom=that.options.getGeometricInfo();var indices=fluid.reorderer.indexRebaser(geom.elementIndexer(selectable));indices.moduleCell=that.moduleCell;var elementClass=geom.elementMapper(selectable);var labelSource=that.dom.locate("labelSource",selectable);var recentStatus;if(recentPosition){recentStatus=that.resolver.resolve("recentStatus",{position:recentPosition})}var topModel={item:typeof (labelSource)==="string"?labelSource:fluid.dom.getElementText(fluid.unwrap(labelSource)),position:that.positionTemplate.resolveFunc(that.positionTemplate.template,indices),movable:that.resolver.resolve(elementClass==="locked"?"fixed":"movable"),recentStatus:recentStatus||""};var template=that.resolver.lookup(["overallTemplate"]);var label=template.resolveFunc(template.template,topModel);return{position:topModel.position,label:label}}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/reorderer/js/ReordererDOMUtilities.js b/docs/jscripts/infusion/components/reorderer/js/ReordererDOMUtilities.js
new file mode 100644 (file)
index 0000000..5d4baae
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.dom.computeAbsolutePosition=function(element){var curleft=0,curtop=0;if(element.offsetParent){do{curleft+=element.offsetLeft;curtop+=element.offsetTop;element=element.offsetParent}while(element);return[curleft,curtop]}};fluid.dom.cleanseScripts=function(element){var cleansed=$.data(element,fluid.dom.cleanseScripts.MARKER);if(!cleansed){fluid.dom.iterateDom(element,function(node){return node.tagName.toLowerCase()==="script"?"delete":null});$.data(element,fluid.dom.cleanseScripts.MARKER,true)}};fluid.dom.cleanseScripts.MARKER="fluid-scripts-cleansed";fluid.dom.insertAfter=function(newChild,refChild){var nextSib=refChild.nextSibling;if(!nextSib){refChild.parentNode.appendChild(newChild)}else{refChild.parentNode.insertBefore(newChild,nextSib)}};fluid.dom.isWhitespaceNode=function(node){return !(/[^\t\n\r ]/.test(node.data))};fluid.dom.isIgnorableNode=function(node){return(node.nodeType===8)||((node.nodeType===3)&&fluid.dom.isWhitespaceNode(node))}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/tableOfContents/css/TableOfContents.css b/docs/jscripts/infusion/components/tableOfContents/css/TableOfContents.css
new file mode 100644 (file)
index 0000000..71f1fb8
--- /dev/null
@@ -0,0 +1 @@
+.fl-tableOfContents-hide-bullet{list-style-type:none;}
\ No newline at end of file
index f43e866..c255854 100644 (file)
@@ -1,33 +1,31 @@
-       <!-- Table of contents template -->
-        <div id="toc">
-            <ul rsf:id="level1s:">
-                <li rsf:id="level1:item">
-                    <a rsf:id="link" href="">1</a>
-                </li>
-                <ul rsf:id="level1:level2s">
-                    <li rsf:id="level2:item">
-                        <a rsf:id="link" href="">2</a>
-                    </li>
-                    <ul rsf:id="level2:level3s">
-                        <li rsf:id="level3:item">
-                            <a rsf:id="link" href="">3</a>
-                        </li>
-                        <ul rsf:id="level3:level4s">
-                            <li rsf:id="level4:item">
-                                <a rsf:id="link" href="">4</a>
-                            </li>
-                            <ul rsf:id="level4:level5s">
-                                <li rsf:id="level5:item">
-                                    <a rsf:id="link" href="">5</a>
-                                </li>
-                                <ul rsf:id="level5:level6s">
-                                    <li rsf:id="level6:item">
-                                        <a rsf:id="link" href="">6</a>
+<!-- Table of contents template -->
+<ul class="flc-toc-levels-level1">
+    <li class="flc-toc-levels-items1">
+        <a class="flc-toc-levels-link1" href="">1</a>
+        <ul class="flc-toc-levels-level2">
+            <li class="flc-toc-levels-items2">
+                <a class="flc-toc-levels-link2" href="">2</a>
+                <ul class="flc-toc-levels-level3">
+                    <li class="flc-toc-levels-items3">
+                        <a class="flc-toc-levels-link3" href="">3</a>
+                        <ul class="flc-toc-levels-level4">
+                            <li class="flc-toc-levels-items4">
+                                <a class="flc-toc-levels-link4" href="">4</a>
+                                <ul class="flc-toc-levels-level5">
+                                    <li class="flc-toc-levels-items5">
+                                        <a class="flc-toc-levels-link5" href="">5</a>
+                                        <ul class="flc-toc-levels-level6">
+                                            <li class="flc-toc-levels-items6">
+                                                <a class="flc-toc-levels-link6" href="">6</a>
+                                            </li>
+                                        </ul>
                                     </li>
                                 </ul>
-                            </ul>
+                            </li>
                         </ul>
-                    </ul>
+                    </li>
                 </ul>
-            </ul>
-        </div>
+            </li>
+        </ul>
+    </li>
+</ul>
index 2b8012c..b63239e 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var insertAnchor=function(el){var a=$("<a name='"+el.text()+"' />",el[0].ownerDocument);el.before(a)};var createNode=function(id){var node={ID:id,children:[]};return node};var createTree=function(headings,levels){var generateTree=function(nodes,items,level){if(items.length===0){return }var item=items[0];if(level===item.level){nodes[nodes.length-1].push(item.leaf);items.shift();return generateTree(nodes,items,level)}if(level<item.level){var prefix=level>-1?"level"+(level+1)+":":"";var postfix=level===-1?"s:":"s";var name=prefix+"level"+(level+2)+postfix;var myNode=createNode(name);nodes[nodes.length-1].push(myNode);nodes.push(myNode.children);return generateTree(nodes,items,level+1)}if(level>item.level){nodes.pop();return generateTree(nodes,items,level-1)}};var tree={children:[]};var items=fluid.transform(headings,function(heading){var level=$.inArray(heading.tagName,levels);var text=$(heading).text();return{level:level,leaf:{ID:"level"+(level+1)+":item",children:[{ID:"link",linktext:text,target:"#"+text}]}}});generateTree([tree.children],items,-1);return tree};var buildTOC=function(container,headings,levels,templateURL,afterRender){headings.each(function(i,el){insertAnchor($(el))});var resources={toc:{href:templateURL}};fluid.fetchResources(resources,function(){var templates=fluid.parseTemplates(resources,["toc"],{});var node=$("<div></div>",container[0].ownerDocument);fluid.reRender(templates,node,createTree(headings,levels),{});container.prepend(node);afterRender.fire(node)})};fluid.tableOfContents=function(container,options){var that=fluid.initView("fluid.tableOfContents",container,options);that.events.afterRender.addListener(function(node){that.tocNode=$(node)});buildTOC(that.container,that.locate("headings"),that.options.levels,that.options.templateUrl,that.events.afterRender);that.hide=function(){if(that.tocNode){that.tocNode.hide()}};that.show=function(){if(that.tocNode){that.tocNode.show()}};return that};fluid.defaults("fluid.tableOfContents",{selectors:{headings:":header"},events:{afterRender:null},templateUrl:"../html/TableOfContents.html",levels:["H1","H2","H3","H4","H5","H6"]})})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.tableOfContents");fluid.tableOfContents.insertAnchor=function(name,element){$("<a></a>",{name:name,id:name}).insertBefore(element)};fluid.tableOfContents.generateGUID=function(){return fluid.allocateSimpleId()};fluid.tableOfContents.filterHeadings=function(headings){return headings.filter(":visible")};fluid.tableOfContents.finalInit=function(that){var headings=that.filterHeadings(that.locate("headings"));that.headingTextToAnchor=function(heading){var guid=that.generateGUID();var anchorInfo={id:guid,url:"#"+guid};that.insertAnchor(anchorInfo.id,heading);return anchorInfo};that.anchorInfo=fluid.transform(headings,function(heading){return that.headingTextToAnchor(heading)});that.hide=function(){that.locate("tocContainer").hide()};that.show=function(){that.locate("tocContainer").show()};that.model=that.modelBuilder.assembleModel(headings,that.anchorInfo);that.events.onReady.fire()};fluid.defaults("fluid.tableOfContents",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.tableOfContents.finalInit",components:{levels:{type:"fluid.tableOfContents.levels",container:"{tableOfContents}.dom.tocContainer",createOnEvent:"onReady",options:{model:{headings:"{tableOfContents}.model"},events:{afterRender:"{tableOfContents}.events.afterRender"}}},modelBuilder:{type:"fluid.tableOfContents.modelBuilder"}},invokers:{insertAnchor:"fluid.tableOfContents.insertAnchor",generateGUID:"fluid.tableOfContents.generateGUID",filterHeadings:"fluid.tableOfContents.filterHeadings"},selectors:{headings:":header",tocContainer:".flc-toc-tocContainer"},events:{onReady:null,afterRender:null}});fluid.registerNamespace("fluid.tableOfContents.modelBuilder");fluid.tableOfContents.modelBuilder.toModel=function(headingInfo,modelLevelFn){var headings=fluid.copy(headingInfo);var buildModelLevel=function(headings,level){var modelLevel=[];while(headings.length>0){var heading=headings[0];if(heading.level<level){break}if(heading.level>level){var subHeadings=buildModelLevel(headings,level+1);if(modelLevel.length>0){modelLevel[modelLevel.length-1].headings=subHeadings}else{modelLevel=modelLevelFn(modelLevel,subHeadings)}}if(heading.level===level){modelLevel.push(heading);headings.shift()}}return modelLevel};return buildModelLevel(headings,1)};fluid.tableOfContents.modelBuilder.gradualModelLevelFn=function(modelLevel,subHeadings){var subHeadingsClone=fluid.copy(subHeadings);subHeadingsClone[0].level--;return subHeadingsClone};fluid.tableOfContents.modelBuilder.skippedModelLevelFn=function(modelLevel,subHeadings){modelLevel.push({headings:subHeadings});return modelLevel};fluid.tableOfContents.modelBuilder.finalInit=function(that){that.convertToHeadingObjects=function(headings,anchorInfo){headings=$(headings);return fluid.transform(headings,function(heading,index){return{level:that.headingCalculator.getHeadingLevel(heading),text:$(heading).text(),url:anchorInfo[index].url}})};that.assembleModel=function(headings,anchorInfo){var headingInfo=that.convertToHeadingObjects(headings,anchorInfo);return that.toModel(headingInfo)}};fluid.defaults("fluid.tableOfContents.modelBuilder",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.tableOfContents.modelBuilder.finalInit",components:{headingCalculator:{type:"fluid.tableOfContents.modelBuilder.headingCalculator"}},invokers:{toModel:{funcName:"fluid.tableOfContents.modelBuilder.toModel",args:["{arguments}.0","{modelBuilder}.modelLevelFn"]},modelLevelFn:"fluid.tableOfContents.modelBuilder.gradualModelLevelFn"}});fluid.registerNamespace("fluid.tableOfContents.modelBuilder.headingCalculator");fluid.tableOfContents.modelBuilder.headingCalculator.finalInit=function(that){that.getHeadingLevel=function(heading){return $.inArray(heading.tagName,that.options.levels)+1}};fluid.defaults("fluid.tableOfContents.modelBuilder.headingCalculator",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.tableOfContents.modelBuilder.headingCalculator.finalInit",levels:["H1","H2","H3","H4","H5","H6"]});fluid.registerNamespace("fluid.tableOfContents.levels");fluid.tableOfContents.levels.finalInit=function(that){fluid.fetchResources(that.options.resources,function(){that.container.append(that.options.resources.template.resourceText);that.refreshView()})};fluid.tableOfContents.levels.objModel=function(type,ID){var objModel={ID:type+ID+":",children:[]};return objModel};fluid.tableOfContents.levels.handleEmptyItemObj=function(itemObj){itemObj.decorators=[{type:"addClass",classes:"fl-tableOfContents-hide-bullet"}]};fluid.tableOfContents.levels.generateTree=function(headingsModel,currentLevel){currentLevel=currentLevel||0;var levelObj=fluid.tableOfContents.levels.objModel("level",currentLevel);if(headingsModel.headings.length===0){return[]}if(currentLevel===0){var tree={children:[fluid.tableOfContents.levels.generateTree(headingsModel,currentLevel+1)]};return tree}$.each(headingsModel.headings,function(index,model){var itemObj=fluid.tableOfContents.levels.objModel("items",currentLevel);var linkObj={ID:"link"+currentLevel,target:model.url,linktext:model.text};if(!model.level){fluid.tableOfContents.levels.handleEmptyItemObj(itemObj)}else{itemObj.children.push(linkObj)}if(model.headings){itemObj.children.push(fluid.tableOfContents.levels.generateTree(model,currentLevel+1))}levelObj.children.push(itemObj)});return levelObj};fluid.tableOfContents.levels.produceTree=function(that){return fluid.tableOfContents.levels.generateTree(that.model)};fluid.defaults("fluid.tableOfContents.levels",{gradeNames:["fluid.rendererComponent","autoInit"],finalInitFunction:"fluid.tableOfContents.levels.finalInit",produceTree:"fluid.tableOfContents.levels.produceTree",selectors:{level1:".flc-toc-levels-level1",level2:".flc-toc-levels-level2",level3:".flc-toc-levels-level3",level4:".flc-toc-levels-level4",level5:".flc-toc-levels-level5",level6:".flc-toc-levels-level6",items1:".flc-toc-levels-items1",items2:".flc-toc-levels-items2",items3:".flc-toc-levels-items3",items4:".flc-toc-levels-items4",items5:".flc-toc-levels-items5",items6:".flc-toc-levels-items6",link1:".flc-toc-levels-link1",link2:".flc-toc-levels-link2",link3:".flc-toc-levels-link3",link4:".flc-toc-levels-link4",link5:".flc-toc-levels-link5",link6:".flc-toc-levels-link6"},repeatingSelectors:["level1","level2","level3","level4","level5","level6","items1","items2","items3","items4","items5","items6"],model:{headings:[]},resources:{template:{forceCache:true,url:"../html/TableOfContents.html"}},rendererFnOptions:{noexpand:true},rendererOptions:{debugMode:false}})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/tabs/js/Tabs.js b/docs/jscripts/infusion/components/tabs/js/Tabs.js
new file mode 100644 (file)
index 0000000..61c87b5
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.tabs",{gradeNames:["fluid.viewComponent","autoInit"],tabOptions:{},events:{tabsselect:"preventable",tabsload:null,tabsshow:null},finalInitFunction:"fluid.tabs.finalInit"});fluid.tabs.finalInit=function(that){that.container.tabs(that.options.tabOptions);fluid.each(that.options.events,function(value,eventName){that.container.bind(eventName,function(event,ui){return that.events[eventName].fire(that,event,ui)})})}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/tooltip/js/Tooltip.js b/docs/jscripts/infusion/components/tooltip/js/Tooltip.js
new file mode 100644 (file)
index 0000000..3525bee
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){var createContentFunc=function(content){return typeof content==="function"?content:function(){return content}};var setup=function(that){that.container.tooltip({content:createContentFunc(that.options.content),position:that.options.position,items:that.options.items,open:function(event){var tt=$(event.target).tooltip("widget");tt.stop(false,true);tt.hide();if(that.options.delay){tt.delay(that.options.delay).fadeIn("default",that.events.afterOpen.fire())}else{tt.show();that.events.afterOpen.fire()}},close:function(event){var tt=$(event.target).tooltip("widget");tt.stop(false,true);tt.hide();tt.clearQueue();that.events.afterClose.fire()}});that.elm=that.container.tooltip("widget");that.elm.addClass(that.options.styles.tooltip)};fluid.tooltip=function(container,options){var that=fluid.initView("fluid.tooltip",container,options);that.updateContent=function(content){that.container.tooltip("option","content",createContentFunc(content))};that.destroy=function(){that.container.tooltip("destroy")};that.open=function(){that.container.tooltip("open")};that.close=function(){that.container.tooltip("close")};setup(that);return that};fluid.defaults("fluid.tooltip",{styles:{tooltip:""},events:{afterOpen:null,afterClose:null},content:"",position:{my:"left top",at:"left bottom",offset:"0 5"},items:"*",delay:300})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/FatPanelUIOptions.css b/docs/jscripts/infusion/components/uiOptions/css/FatPanelUIOptions.css
new file mode 100644 (file)
index 0000000..07471c0
--- /dev/null
@@ -0,0 +1,7 @@
+.fl-uiOptions-fatPanel .fl-panelBar{width:100%;height:5px;background-color:#fff;border-bottom:1px solid #ccc;}
+.fl-uiOptions-fatPanel .fl-toggleButton{float:right;text-transform:uppercase;font-weight:bold;border:0;background-color:white;padding:5px;margin-right:10px;border-radius:8px;border-bottom:1px solid #ccc;}
+.fl-uiOptions-fatPanel-iframe{border:0;background-color:#fff;height:0;}
+.fl-theme-bw .fl-uiOptions-fatPanel .fl-panelBar,.fl-theme-bw .fl-uiOptions-fatPanel .fl-toggleButton{background-color:#fff;border-color:#000;}
+.fl-theme-wb .fl-uiOptions-fatPanel .fl-panelBar,.fl-theme-wb .fl-uiOptions-fatPanel .fl-toggleButton{background-color:#000;border-color:#fff;color:#fff;}
+.fl-theme-by .fl-uiOptions-fatPanel .fl-panelBar,.fl-theme-by .fl-uiOptions-fatPanel .fl-toggleButton{background-color:#FF0;border-color:#000;}
+.fl-theme-yb .fl-uiOptions-fatPanel .fl-panelBar,.fl-theme-yb .fl-uiOptions-fatPanel .fl-toggleButton{background-color:#000;border-color:#ff0;color:#ff0;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/FatPanelUIOptionsFrame.css b/docs/jscripts/infusion/components/uiOptions/css/FatPanelUIOptionsFrame.css
new file mode 100644 (file)
index 0000000..455c764
--- /dev/null
@@ -0,0 +1,76 @@
+.fl-uiOptions-fatPanel{min-width:960px;min-width:inherit;background-color:#fff;}
+.fl-uiOptions-fatPanel #reset{background-color:#333;color:#fff;text-transform:uppercase;font-weight:bold;display:block;padding:8px 15px 8px 3em;}
+.fl-uiOptions-fatPanel ul.fl-tabs{background-color:#333;color:#fff;margin-top:0;border-bottom:none;}
+.fl-uiOptions-fatPanel .fl-tabs li a{background-color:#333;color:#fff;text-transform:uppercase;font-weight:bold;border:0;}
+.fl-uiOptions-fatPanel ul.fl-tabs li:first-child a{margin-left:-10px;}
+.fl-uiOptions-fatPanel .fl-tabs .ui-tabs-selected a{background-color:#fff;color:#000;}
+.fl-uiOptions-fatPanel.ui-tabs{position:relative;zoom:1;padding:0;}
+.fl-uiOptions-fatPanel.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:0 1.4em;background:none;}
+.fl-uiOptions-fatPanel.ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-uiOptions-fatPanel.ui-tabs .ui-tabs-nav{padding:0;}
+.fl-uiOptions-fatPanel.ui-tabs .ui-tabs-nav li{top:0;margin:0;}
+.fl-uiOptions-fatPanel.ui-tabs .ui-tabs-nav li a{float:left;padding:1em 1.5em 1em 3em;}
+.fl-uiOptions-fatPanel.ui-tabs .ui-state-default{border:none;}
+.fl-uiOptions-fatPanel.ui-tabs .ui-tabs-nav li.ui-tabs-selected{padding-bottom:0;}
+.fl-uiOptions-fatPanel .fl-tabs .ui-corner-top{-moz-border-radius-topleft:0;-moz-border-radius-topright:0;}
+.fl-uiOptions-fatPanel .fl-tabs .ui-corner-all{-moz-border-radius:0;}
+.fl-uiOptions-fatPanel.ui-widget{font-family:"Myriad Pro",Helvetica,Arial,sans-serif;font-size:.85em;}
+.fl-uiOptions-fatPanel.ui-widget-content{border:none;}
+.fl-uiOptions-fatPanel.ui-tabs .ui-widget-header{background:none;border:0;background-color:#333;}
+.fl-uiOptions-fatPanel.ui-tabs .ui-tabs-panel ul{margin:0;padding-top:1.5em;}
+.fl-uiOptions-fatPanel .fl-tab-text,.fl-uiOptions-fatPanel .fl-tab-layout,.fl-uiOptions-fatPanel .fl-tab-links,.fl-uiOptions-fatPanel #reset{background-repeat:no-repeat;background-position:8% 50%;}
+.fl-uiOptions-fatPanel .fl-tab-text{background-image:url('../images/default/uio_icon_textanddisplay_defaultInverted_16x16.png');}
+.fl-uiOptions-fatPanel .fl-tab-layout{background-image:url('../images/default/uio_icon_layoutandnavigation_defaultInverted_16x16.png');}
+.fl-uiOptions-fatPanel .fl-tab-links{background-image:url('../images/default/uio_icon_linksandbuttons_defaultInverted_16x16.png');}
+.fl-uiOptions-fatPanel #reset{background-image:url('../images/default/uio_icon_reset_defaultInverted_16x16.png');}
+.fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-text{background-image:url('../images/default/uio_icon_textanddisplay_default_16x16.png');}
+.fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-layout{background-image:url('../images/default/uio_icon_layoutandnavigation_default_16x16.png');}
+.fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-links{background-image:url('../images/default/uio_icon_linksandbuttons_default_16x16.png');}
+ul.fl-pane li{float:left;padding-left:10px;margin-right:30px;}
+.fl-uiOptions-fatPanel .fl-uiOptions-text li{float:left;}
+.fl-uiOptions-fatPanel .fl-uiOptions-layout li,.fl-uiOptions-fatPanel .fl-uiOptions-links li{clear:both;}
+.fl-uiOptions-fatPanel label{padding-bottom:.5em;}
+.fl-uiOptions-fatPanel .fl-inputs{clear:both;}
+.fl-uiOptions .fl-slider-horz{width:100px;}
+.fl-uiOptions .fl-slider-input{clear:both;float:left;margin-top:1em;}
+.fl-theme-bw .fl-uiOptions-fatPanel .fl-tab .ui-corner-all,.fl-theme-wb .fl-uiOptions-fatPanel .fl-tab .ui-corner-all,.fl-theme-by .fl-uiOptions-fatPanel .fl-tab .ui-corner-all,.fl-theme-yb .fl-uiOptions-fatPanel .fl-tab .ui-corner-all{-moz-border-radius:0;border:0;}
+.fl-theme-bw .fl-uiOptions-fatPanel .fl-tab-text{background-image:url('../images/bw/uio_icon_textanddisplay_hcInverted_16x16.png');}
+.fl-theme-bw .fl-uiOptions-fatPanel .fl-tab-layout{background-image:url('../images/bw/uio_icon_layoutandnavigation_hcInverted_16x16.png');}
+.fl-theme-bw .fl-uiOptions-fatPanel .fl-tab-links{background-image:url('../images/bw/uio_icon_linksandbuttons_hcInverted_16x16.png');}
+.fl-theme-bw .fl-uiOptions-fatPanel #reset{background-image:url('../images/bw/uio_icon_reset_hcInverted_16x16.png');}
+.fl-theme-bw .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-text,.fl-theme-bw .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-text{background-image:url('../images/bw/uio_icon_textanddisplay_hc_16x16.png');}
+.fl-theme-bw .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-layout,.fl-theme-bw .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-layout{background-image:url('../images/bw/uio_icon_layoutandnavigation_hc_16x16.png');}
+.fl-theme-bw .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-links,.fl-theme-bw .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-links{background-image:url('../images/bw/uio_icon_linksandbuttons_hc_16x16.png');}
+.fl-theme-wb .fl-uiOptions-fatPanel .fl-tab-text{background-image:url('../images/wb/uio_icon_textanddisplay_hciInverted_16x16.png');}
+.fl-theme-wb .fl-uiOptions-fatPanel .fl-tab-layout{background-image:url('../images/wb/uio_icon_layoutandnavigation_hciInverted_16x16.png');}
+.fl-theme-wb .fl-uiOptions-fatPanel .fl-tab-links{background-image:url('../images/wb/uio_icon_linksandbuttons_hciInverted_16x16.png');}
+.fl-theme-wb .fl-uiOptions-fatPanel #reset{background-image:url('../images/wb/uio_icon_reset_hciInverted_16x16.png');}
+.fl-theme-wb .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-text,.fl-theme-wb .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-text{background-image:url('../images/wb/uio_icon_textanddisplay_hci_16x16.png');}
+.fl-theme-wb .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-layout,.fl-theme-wb .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-layout{background-image:url('../images/wb/uio_icon_layoutandnavigation_hci_16x16.png');}
+.fl-theme-wb .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-links,.fl-theme-wb .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-links{background-image:url('../images/wb/uio_icon_linksandbuttons_hci_16x16.png');}
+.fl-theme-by .fl-uiOptions-fatPanel .fl-tab-text{background-image:url('../images/by/uio_icon_textanddisplay_blackYellowInverted_16x16.png');}
+.fl-theme-by .fl-uiOptions-fatPanel .fl-tab-layout{background-image:url('../images/by/uio_icon_layoutandnavigation_blackYellowInverted_16x16.png');}
+.fl-theme-by .fl-uiOptions-fatPanel .fl-tab-links{background-image:url('../images/by/uio_icon_linksandbuttons_blackYellowInverted_16x16.png');}
+.fl-theme-by .fl-uiOptions-fatPanel #reset{background-image:url('../images/by/uio_icon_reset_blackYellowInverted_16x16.png');}
+.fl-theme-by .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-text,.fl-theme-by .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-text{background-image:url('../images/by/uio_icon_textanddisplay_blackYellow_16x16.png');}
+.fl-theme-by .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-layout,.fl-theme-by .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-layout{background-image:url('../images/by/uio_icon_layoutandnavigation_blackYellow_16x16.png');}
+.fl-theme-by .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-links,.fl-theme-by .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-links{background-image:url('../images/by/uio_icon_linksandbuttons_blackYellow_16x16.png');}
+.fl-theme-yb .fl-uiOptions-fatPanel .fl-tab-text{background-image:url('../images/yb/uio_icon_textanddisplay_yellowBlackInverted_16x16.png');}
+.fl-theme-yb .fl-uiOptions-fatPanel .fl-tab-layout{background-image:url('../images/yb/uio_icon_layoutandnavigation_yellowBlackInverted_16x16.png');}
+.fl-theme-yb .fl-uiOptions-fatPanel .fl-tab-links{background-image:url('../images/yb/uio_icon_linksandbuttons_yellowBlackInverted_16x16.png');}
+.fl-theme-yb .fl-uiOptions-fatPanel #reset{background-image:url('../images/yb/uio_icon_reset_yellowBlackInverted_16x16.png');}
+.fl-theme-yb .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-text,.fl-theme-yb .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-text{background-image:url('../images/yb/uio_icon_textanddisplay_yellowBlack_16x16.png');}
+.fl-theme-yb .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-layout,.fl-theme-yb .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-layout{background-image:url('../images/yb/uio_icon_layoutandnavigation_yellowBlack_16x16.png');}
+.fl-theme-yb .fl-uiOptions-fatPanel .ui-tabs-selected .fl-tab-links,.fl-theme-yb .fl-uiOptions-fatPanel .ui-state-hover .fl-tab-links{background-image:url('../images/yb/uio_icon_linksandbuttons_yellowBlack_16x16.png');}
+.fl-theme-bw .fl-uiOptions-fatPanel .ui-widget-header{background:0;}
+.fl-theme-bw .fl-uiOptions-fatPanel ul.fl-tabs{background-color:#000;}
+.fl-theme-bw .fl-uiOptions-fatPanel .fl-tabs .ui-tabs-selected a{background-color:#fff!important;color:#000!important;}
+.fl-theme-wb .fl-uiOptions-fatPanel .ui-widget-header{background:0;}
+.fl-theme-wb .fl-uiOptions-fatPanel ul.fl-tabs{background-color:#fff;}
+.fl-theme-wb .fl-uiOptions-fatPanel .fl-tabs .ui-tabs-selected a{background-color:#000!important;color:#fff!important;}
+.fl-theme-by .fl-uiOptions-fatPanel .ui-widget-header{background:0;}
+.fl-theme-by .fl-uiOptions-fatPanel ul.fl-tabs{background-color:#000;}
+.fl-theme-by .fl-uiOptions-fatPanel .fl-tabs .ui-tabs-selected a{background-color:#ff0!important;color:#000!important;}
+.fl-theme-yb .fl-uiOptions-fatPanel .ui-widget-header{background:0;}
+.fl-theme-yb .fl-uiOptions-fatPanel ul.fl-tabs{background-color:#ff0;}
+.fl-theme-yb .fl-uiOptions-fatPanel .fl-tabs .ui-tabs-selected a{background-color:#000!important;color:#ff0!important;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/FullNoPreviewUIOptions.css b/docs/jscripts/infusion/components/uiOptions/css/FullNoPreviewUIOptions.css
new file mode 100644 (file)
index 0000000..8eef2ef
--- /dev/null
@@ -0,0 +1,8 @@
+body{max-width:960px;min-width:900px;}
+.fl-uiOptions-fullNoPreview .fl-uiOptions-category{border-top:2px solid #ddd;clear:both;}
+.fl-uiOptions-fullNoPreview .fl-uiOptions-category h2 img{padding-top:10px;margin-bottom:-4px;}
+.fl-uiOptions-fullNoPreview .fl-uiOptions-buttons{text-align:right;}
+.fl-uiOptions-fullNoPreview .fl-col-flex{padding-top:15px;}
+.fl-uiOptions-fullNoPreview ul{float:left;}
+.fl-uiOptions-fullNoPreview ul li{clear:left;}
+.fl-uiOptions-fullNoPreview label,.fl-uiOptions-fullNoPreview .fl-inputs{margin-bottom:15px;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/FullPreviewUIOptions.css b/docs/jscripts/infusion/components/uiOptions/css/FullPreviewUIOptions.css
new file mode 100644 (file)
index 0000000..d362473
--- /dev/null
@@ -0,0 +1,14 @@
+.fl-uiOptions-fullPreview{min-width:800px;}
+.fl-uiOptions-fullPreview ul li{clear:left;}
+.fl-uiOptions-fullPreview h2{border-top:2px solid #ddd;margin-bottom:20px;}
+.fl-uiOptions-fullPreview .fl-uiOptions-category{padding-bottom:20px;}
+.fl-uiOptions-fullPreview ul{margin-left:0;}
+.fl-uiOptions-fullPreview ul li{list-style:none;width:100%;}
+.fl-uiOptions-fullPreview .fl-uiOptions-option-description{clear:both;}
+.fl-uiOptions .fl-inputs{float:left;}
+.fl-uiOptions input[type="text"]{width:2em;}
+.fl-uiOptions-fullPreview .fl-slider{float:left;margin-right:10px;}
+.fl-uiOptions-fullPreview label{display:block;float:left;width:15em;}
+.fl-uiOptions-fullPreview .fl-uiOptions-layout li,.fl-uiOptions-fullPreview .fl-uiOptions-links li{padding-bottom:10px;}
+.fl-uiOptions-fullPreview .fl-uiOptions-preview iframe{height:480px;width:100%;border:2px solid #d7d7d7;}
+.fl-uiOptions-fullPreview .fl-uiOptions-preview h2{font-weight:lighter;font-size:1.8em;color:#4D4D4D;padding:18px 0 0 0;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/FullUIOptions.css b/docs/jscripts/infusion/components/uiOptions/css/FullUIOptions.css
new file mode 100644 (file)
index 0000000..454a8d8
--- /dev/null
@@ -0,0 +1,24 @@
+.fl-uiOptions h2{font-size:1.29em;font-weight:bold;clear:both;color:#444;padding:14px 0 5px 25px;}
+.fl-uiOptions .fl-uiOptions-buttons{margin-top:1em;float:left;width:100%;}
+.fl-uiOptions .fl-uiOptions-buttons input{text-transform:uppercase;text-decoration:underline;font-weight:bold;border:2px solid #cecece;font-size:1em;padding:5px;height:2.5em;margin-right:3px;background-color:#F0F0F0;}
+.fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-save{padding-left:20px;background-image:url("../images/default/uio_icon_save_default_13x13.png");background-repeat:no-repeat;background-position:2% 50%;}
+.fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-cancel{padding-left:20px;background-image:url("../images/default/uio_icon_cancel_default_13x13.png");background-repeat:no-repeat;background-position:2% 50%;}
+.fl-uiOptions h2 img{margin-bottom:-3px;padding-right:5px;}
+.fl-uiOptions h2.fl-uiOptions-text-icon{background-image:url("../images/default/uio_icon_textanddisplay_default_18x18.png");background-repeat:no-repeat;background-position:0 55%;}
+.fl-uiOptions h2.fl-uiOptions-layout-icon{background-image:url("../images/default/uio_icon_layoutandnavigation_default_18x18.png");background-repeat:no-repeat;background-position:0 55%;}
+.fl-uiOptions h2.fl-uiOptions-links-icon{background-image:url("../images/default/uio_icon_linksandbuttons_default_18x18.png");background-repeat:no-repeat;background-position:0 55%;}
+.fl-uiOptions .fl-uiOptions-text ul li{clear:left;height:3.5em;}
+.fl-uiOptions .fl-slider-input{float:right;}
+.fl-theme-bw .fl-uiOptions .fl-uiOptions-text-icon{background-image:url("../images/bw/uio_icon_textanddisplay_hc_18x18.png");}
+.fl-theme-bw .fl-uiOptions .fl-uiOptions-layout-icon{background-image:url("../images/bw/uio_icon_layoutandnavigation_hc_18x18.png");}
+.fl-theme-bw .fl-uiOptions .fl-uiOptions-links-icon{background-image:url("../images/bw/uio_icon_linksandbuttons_hc_18x18.png");}
+.fl-theme-wb .fl-uiOptions .fl-uiOptions-text-icon{background-image:url("../images/wb/uio_icon_textanddisplay_hci_18x18.png");}
+.fl-theme-wb .fl-uiOptions .fl-uiOptions-layout-icon{background-image:url("../images/wb/uio_icon_layoutandnavigation_hci_18x18.png");}
+.fl-theme-wb .fl-uiOptions .fl-uiOptions-links-icon{background-image:url("../images/wb/uio_icon_linksandbuttons_hci_18x18.png");}
+.fl-theme-yb .fl-uiOptions .fl-uiOptions-text-icon{background-image:url("../images/yb/uio_icon_textanddisplay_yellowBlack_18x18.png");}
+.fl-theme-yb .fl-uiOptions .fl-uiOptions-layout-icon{background-image:url("../images/yb/uio_icon_layoutandnavigation_yellowBlack_18x18.png");}
+.fl-theme-yb .fl-uiOptions .fl-uiOptions-links-icon{background-image:url("../images/yb/uio_icon_linksandbuttons_yellowBlack_18x18.png");}
+.fl-theme-by .fl-uiOptions .fl-uiOptions-text-icon{background-image:url("../images/by/uio_icon_textanddisplay_blackYellow_18x18.png");}
+.fl-theme-by .fl-uiOptions .fl-uiOptions-layout-icon{background-image:url("../images/by/uio_icon_layoutandnavigation_blackYellow_18x18.png");}
+.fl-theme-by .fl-uiOptions .fl-uiOptions-links-icon{background-image:url("../images/by/uio_icon_linksandbuttons_blackYellow_18x18.png");}
+.fl-layout-linear .fl-uiOptions .fl-uiOptions-text-icon,.fl-layout-linear .fl-uiOptions .fl-uiOptions-layout-icon,.fl-layout-linear .fl-uiOptions .fl-uiOptions-links-icon{padding-left:20px!important;}
\ No newline at end of file
index cb26be1..ee4c589 100644 (file)
@@ -1,36 +1,68 @@
-.fl-uiOptions{background-color:#fff;}
-.fl-uiOptions .ui-accordion-content{border:1px solid;}
-.fl-uiOptions h2{cursor:pointer;margin:0;padding:5px 5px 5px 24px;background-color:#f5f5f5;}
-.fl-uiOptions h2:hover{background-color:#ccc;}
-.fl-uiOptions h2.ui-state-focus{background-color:#ccc;}
-.fl-uiOptions h2.ui-helper-reset{padding:5px 5px 5px 24px!important;}
-.fl-uiOptions fieldset{margin:0;padding:0;}
-.fl-uiOptions ol{margin:0;padding:15px 0 0 0;}
-.fl-uiOptions li{padding:6px 0;clear:both;list-style-type:none;line-height:1.6em;}
-.fl-uiOptions legend{text-indent:-500%;margin-bottom:-1.6em;visibility:hidden;}
-.fl-uiOptions .fl-uiOptions-buttons-refresher-5{width:5em;}
-.fl-uiOptions .fl-uiOptions-buttons-refresher-10{width:10em;}
-.fl-uiOptions .fl-accordion-content{zoom:1;}
-.fl-uiOptions .fl-accordion-content fieldset,.fl-uiOptions .fl-accordion-content span{display:inline;}
-.fl-uiOptions .fl-formLabels{text-align:right;padding-right:5px;}
-.fl-uiOptions .fl-uiOptions-min-text-size .fl-textfield,.fl-uiOptions .fl-uiOptions-line-spacing .fl-textfield{width:1.85em;height:1.2em;padding:.1em;}
-.fl-uiOptions .fl-slider{margin-bottom:0;margin-top:5px;}
-.fl-uiOptions .fl-subcomp-preview{padding:0;border:3px solid;}
-.fl-uiOptions .fl-subcomp-preview h2{font-weight:normal;margin:0;padding:5px;}
-.fl-uiOptions .fl-subcomp-preview iframe{width:100%;height:300px;}
-.fl-theme-mist .fl-uiOptions h2{background-color:#ebebeb;}
-.fl-theme-mist .fl-uiOptions .ui-accordion-content{border-color:#ebebeb;}
-.fl-theme-mist .fl-uiOptions .fl-subcomp-preview{border-color:#ebebeb;}
-.fl-theme-slate .fl-uiOptions h2{background-color:#666;}
-.fl-theme-slate .fl-uiOptions .ui-accordion-content{border-color:#666;}
-.fl-theme-slate .fl-uiOptions .fl-subcomp-preview{border-color:#666;}
-.fl-theme-coal .fl-uiOptions h2{background-color:#666;color:#fff;}
-.fl-theme-coal .fl-uiOptions .ui-accordion-content{border-color:#666;}
-.fl-theme-coal .fl-uiOptions .fl-subcomp-preview{border-color:#666;}
-.fl-theme-hc .fl-uiOptions h2{background-color:#666;color:#fff;}
-.fl-theme-hc .fl-uiOptions h2.ui-state-default{color:#fff!important;}
-.fl-theme-hc .fl-uiOptions h2.ui-state-hover{color:#000!important;}
-.fl-theme-hc .fl-uiOptions h2.ui-state-focus{color:#000!important;}
-.fl-theme-hci .fl-uiOptions h2.ui-state-default{color:#000!important;}
-.fl-theme-hci .fl-uiOptions h2.ui-state-hover{color:#fff!important;}
-.fl-theme-hci .fl-uiOptions h2.ui-state-focus{color:#fff!important;}
\ No newline at end of file
+.fl-uiOptions{font-family:"Myriad Pro",Helvetica,Arial,sans-serif;}
+.fl-uiOptions ul{margin-left:0;}
+.fl-uiOptions ul li{list-style:none;}
+.fl-uiOptions label{text-transform:uppercase;font-size:1.2em;}
+.fl-uiOptions input[type="text"]{width:2em;font-size:1em;}
+.fl-uiOptions .fl-slider{float:left;margin-right:10px;}
+.fl-uiOptions input[type="checkbox"]{margin-right:10px;border:1px solid black;}
+.fl-uiOptions select{border:2px solid #ebebeb;}
+.fl-uiOptions select#textFont{font-weight:bold;}
+.fl-uiOptions select#textFont option.times{font-family:"Times New Roman";}
+.fl-uiOptions select#textFont option.comic{font-family:"Comic Sans MS";}
+.fl-uiOptions select#textFont option.arial{font-family:Arial;}
+.fl-uiOptions select#textFont option.verdana{font-family:Verdana;}
+.fl-uiOptions select#theme{font-weight:bold;text-transform:uppercase;}
+.fl-uiOptions select#theme option.fl-uio-default-theme{color:#000!important;background-color:#efefef!important;}
+.fl-uiOptions .fl-uiOptions-text label{display:block;float:left;width:14em;}
+.fl-uiOptions .fl-uiOptions-text .fl-inputs{float:left;font-size:1em;}
+.fl-uiOptions .fl-uiOptions-option-description{color:#4D4D4D;padding-top:5px;font-size:1.1em;}
+.fl-uiOptions .fl-uiOptions-layout div,.fl-uiOptions .fl-uiOptions-links div{margin-left:25px;}
+.fl-uiOptions .fl-slider-horz{width:140px;height:3px;-moz-border-radius:65%;-webkit-border-radius:65%;}
+.fl-uiOptions .fl-slider{position:relative;background-color:#555;padding:0;margin-top:8px;}
+.fl-uiOptions .fl-slider .fl-handle,.fl-slider a{position:absolute;display:block;height:32px;width:32px;top:0;left:0;}
+.fl-uiOptions .fl-slider a{background-image:url('../images/default/uio_icon_sliderhandle.png');background-repeat:no-repeat;background-position:center center;bottom:16px;}
+.fl-uiOptions .fl-slider a:active{outline:none;}
+.fl-uiOptions .fl-slider-horz .fl-handle,.fl-slider-horz a{margin-top:-14px;margin-left:-14px;}
+.fl-uiOptions .fl-text-slider-left{padding-right:15px;background-image:url("../images/default/uio_icon_smallA_default_10x10.png");background-repeat:no-repeat;height:10px;width:10px;margin-top:5px;}
+.fl-uiOptions .fl-text-slider-right{padding-right:15px;margin-left:8px;background-image:url("../images/default/uio_icon_bigA_default_20x20.png");background-repeat:no-repeat;height:20px;width:20px;}
+.fl-uiOptions .fl-spacing-slider-left{padding-right:15px;background-image:url("../images/default/uio_icon_linesNarrow_default_16x12.png");background-repeat:no-repeat;height:12px;width:16px;margin-top:5px;}
+.fl-uiOptions .fl-spacing-slider-right{padding-right:15px;margin-left:8px;background-image:url("../images/default/uio_icon_linesWide_default_16x21.png");background-repeat:no-repeat;height:21px;width:16px;}
+.fl-theme-bw .ui-slider-horizontal .ui-slider-handle,.fl-theme-wb .ui-slider-horizontal .ui-slider-handle,.fl-theme-by .ui-slider-horizontal .ui-slider-handle,.fl-theme-yb .ui-slider-horizontal .ui-slider-handle{margin-top:-5px;}
+.fl-theme-bw .fl-uiOptions .fl-slider{background:none;background-color:#000;}
+.fl-theme-bw .fl-uiOptions .fl-slider .fl-handle,.fl-theme-bw .fl-uiOptions .fl-slider a,.fl-theme-bw .fl-uiOptions .fl-slider a:hover{border:1px solid #000;background-color:#fff;}
+.fl-theme-bw .fl-uiOptions .fl-text-slider-left{background-image:url("../images/bw/uio_icon_smallA_hc_10x10.png");}
+.fl-theme-bw .fl-uiOptions .fl-text-slider-right{background-image:url("../images/bw/uio_icon_bigA_hc_20x20.png");}
+.fl-theme-bw .fl-uiOptions .fl-spacing-slider-left{background-image:url("../images/bw/uio_icon_linesNarrow_hc_16x12.png");}
+.fl-theme-bw .fl-uiOptions .fl-spacing-slider-right{background-image:url("../images/bw/uio_icon_linesWide_hc_16x21.png");}
+.fl-theme-bw .fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-save{background-image:url("../images/bw/uio_icon_save_hc_13x13.png");}
+.fl-theme-bw .fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-cancel{background-image:url("../images/bw/uio_icon_cancel_hc_13x13.png");}
+.fl-theme-wb .fl-uiOptions .fl-slider{background:none;background-color:#fff;}
+.fl-theme-wb .fl-uiOptions .fl-slider .fl-handle,.fl-theme-wb .fl-uiOptions .fl-slider a,.fl-theme-wb .fl-uiOptions .fl-slider a:hover{border:1px solid #fff;background-color:#000;}
+.fl-theme-wb .fl-uiOptions .fl-text-slider-left{background-image:url("../images/wb/uio_icon_smallA_hci_10x10.png");}
+.fl-theme-wb .fl-uiOptions .fl-text-slider-right{background-image:url("../images/wb/uio_icon_bigA_hci_20x20.png");}
+.fl-theme-wb .fl-uiOptions .fl-spacing-slider-left{background-image:url("../images/wb/uio_icon_linesNarrow_hci_16x12.png");}
+.fl-theme-wb .fl-uiOptions .fl-spacing-slider-right{background-image:url("../images/wb/uio_icon_linesWide_hci_16x21.png");}
+.fl-theme-wb .fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-save{background-image:url("../images/wb/uio_icon_save_hci_13x13.png");}
+.fl-theme-wb .fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-cancel{background-image:url("../images/wb/uio_icon_cancel_hci_13x13.png");}
+.fl-theme-yb .fl-uiOptions .fl-slider{background:none;background-color:#000;}
+.fl-theme-yb .fl-uiOptions .fl-slider .fl-handle,.fl-theme-yb .fl-uiOptions .fl-slider a,.fl-theme-yb .fl-uiOptions .fl-slider a:hover{border:1px solid #ff0;background-color:#000;}
+.fl-theme-yb .fl-uiOptions .fl-text-slider-left{background-image:url("../images/yb/uio_icon_smallA_yellowBlack_10x10.png");}
+.fl-theme-yb .fl-uiOptions .fl-text-slider-right{background-image:url("../images/yb/uio_icon_bigA_yellowBlack_20x20.png");}
+.fl-theme-yb .fl-uiOptions .fl-spacing-slider-left{background-image:url("../images/yb/uio_icon_linesNarrow_yellowBlack_16x12.png");}
+.fl-theme-yb .fl-uiOptions .fl-spacing-slider-right{background-image:url("../images/yb/uio_icon_linesWide_yellowBlack_16x21.png");}
+.fl-theme-yb .fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-save{background-image:url("../images/yb/uio_icon_save_yellowBlack_13x13.png");}
+.fl-theme-yb .fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-cancel{background-image:url("../images/yb/uio_icon_cancel_yellowBlack_13x13.png");}
+.fl-theme-by .fl-uiOptions .fl-slider{background:none;background-color:#ff0;}
+.fl-theme-by .fl-uiOptions .fl-slider .fl-handle,.fl-theme-by .fl-uiOptions .fl-slider a,.fl-theme-by .fl-uiOptions .fl-slider a:hover{border:1px solid #000;background-color:#ff0;}
+.fl-theme-by .fl-uiOptions .fl-text-slider-left{background-image:url("../images/by/uio_icon_smallA_blackYellow_10x10.png");}
+.fl-theme-by .fl-uiOptions .fl-text-slider-right{background-image:url("../images/by/uio_icon_bigA_blackYellow_20x20.png");}
+.fl-theme-by .fl-uiOptions .fl-spacing-slider-left{background-image:url("../images/by/uio_icon_linesNarrow_blackYellow_16x12.png");}
+.fl-theme-by .fl-uiOptions .fl-spacing-slider-right{background-image:url("../images/by/uio_icon_linesWide_blackYellow_16x21.png");}
+.fl-theme-by .fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-save{background-image:url("../images/by/uio_icon_save_blackYellow_13x13.png");}
+.fl-theme-by .fl-uiOptions .fl-uiOptions-buttons .fl-uiOptions-cancel{background-image:url("../images/by/uio_icon_cancel_blackYellow_13x13.png");}
+.fl-layout-linear .fl-uiOptions .fl-slider-horz,.fl-layout-linear .fl-uiOptions .fl-text-slider-left,.fl-layout-linear .fl-uiOptions .fl-spacing-slider-left,.fl-layout-linear .fl-uiOptions .fl-text-slider-right,.fl-layout-linear .fl-uiOptions .fl-spacing-slider-right{min-width:0!important;clear:none!important;}
+.fl-layout-linear .fl-uiOptions .fl-slider-horz{width:140px!important;float:left!important;}
+.fl-layout-linear .fl-uiOptions .fl-text-slider-left,.fl-layout-linear .fl-uiOptions .fl-spacing-slider-left{float:left!important;width:16px!important;}
+.fl-layout-linear .fl-uiOptions .fl-text-slider-right,.fl-layout-linear .fl-uiOptions .fl-spacing-slider-right{float:right!important;width:20px!important;}
+.fl-layout-linear .fl-uiOptions .fl-uiOptions-text .fl-force-left{float:left!important;min-width:0!important;}
+.fl-layout-linear .fl-uiOptions li{height:auto!important;padding-bottom:20px;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-bw-uio.css b/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-bw-uio.css
new file mode 100644 (file)
index 0000000..8bd5da9
--- /dev/null
@@ -0,0 +1,42 @@
+.fl-theme-uio-bw,.fl-theme-uio-bw *,.fl-preview-theme.fl-theme-uio-bw,.fl-theme-uio-wb.fl-inverted-color,.fl-theme-uio-wb .fl-inverted-color,.fl-theme-uio-wb.fl-inverted-color *,.fl-theme-uio-wb .fl-inverted-color *,.fl-preview-theme.fl-theme-uio-wb.fl-inverted-color{color:#000!important;background-color:#fff!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-bw div,.fl-theme-uio-bw input,.fl-theme-uio-wb .fl-inverted-color div,.fl-theme-uio-wb .fl-inverted-color input{color:#000!important;background-color:#fff!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-bw iframe,.fl-theme-uio-wb .fl-inverted-color iframe{border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-bw a,.fl-theme-uio-wb .fl-inverted-color a{color:#000!important;font-weight:bold;background-color:#fff!important;}
+.fl-theme-uio-bw h1,.fl-theme-uio-bw h2,.fl-theme-uio-bw h3,.fl-theme-uio-bw h4,.fl-theme-uio-bw h5,.fl-theme-uio-bw h6,.fl-theme-uio-wb .fl-inverted-color h1,.fl-theme-uio-wb .fl-inverted-color h2,.fl-theme-uio-wb .fl-inverted-color h3,.fl-theme-uio-wb .fl-inverted-color h4,.fl-theme-uio-wb .fl-inverted-color h5,.fl-theme-uio-wb .fl-inverted-color h6{color:#000!important;background-color:#fff!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-bw th,.fl-theme-uio-wb .fl-inverted-color th{border-top-width:.1em;border-top-style:solid;border-top-color:#000!important;border-right-width:.1em;border-right-style:solid;border-right-color:#000!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:.1em;border-left-style:solid;border-left-color:#000!important;background-color:#000!important;color:#fff!important;}
+.fl-theme-uio-bw td,.fl-theme-uio-wb .fl-inverted-color td{border-top-width:.1em;border-top-style:solid;border-top-color:#000!important;border-right-width:.1em;border-right-style:solid;border-right-color:#000!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:.1em;border-left-style:solid;border-left-color:#000!important;}
+.fl-theme-uio-bw .fl-focus:focus,.fl-theme-uio-bw .fl-focus :focus,.fl-theme-uio-bw.fl-focus :focus,.fl-theme-uio-bw .selectable,.fl-theme-uio-wb .fl-inverted-color .fl-focus:focus,.fl-theme-uio-wb .fl-inverted-color .fl-focus :focus,.fl-theme-uio-wb.fl-inverted-color.fl-focus :focus,.fl-theme-uio-wb .fl-inverted-color .selectable{outline-width:.2em;outline-style:solid;outline-color:#F00;}
+.fl-theme-uio-bw .fl-knockout,.fl-theme-uio-wb .fl-inverted-color .fl-knockout{background-color:transparent!important;background-image:none!important;background-repeat:repeat!important;background-attachment:scroll!important;background-position:top left!important;color:#000!important;}
+.fl-theme-uio-bw .fl-icon,.fl-theme-uio-wb .fl-inverted-color .fl-icon{background-color:#fff!important;}
+.fl-theme-uio-bw .fl-tabs,.fl-theme-uio-wb .fl-inverted-color .fl-tabs{border-bottom-color:#000!important;}
+.fl-theme-uio-bw .fl-tabs li,.fl-theme-uio-bw .fl-tabs li *,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li *{border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;border-bottom-color:#000!important;}
+.fl-theme-uio-bw .fl-tabs li,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li{background-color:#000!important;}
+.fl-theme-uio-bw .fl-tabs li *,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li *{color:#fff!important;font-weight:bold;background-color:#000!important;text-decoration:none;}
+.fl-theme-uio-bw .fl-tabs li:hover,.fl-theme-uio-bw .fl-tabs li:hover *,.fl-theme-uio-bw .fl-tabs li a:hover,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li:hover,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li:hover *,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li a:hover{color:#000!important;background-color:#fff!important;}
+.fl-theme-uio-bw .fl-tabs li.fl-tabs-active,.fl-theme-uio-bw .fl-tabs li.fl-tabs-active a,.fl-theme-uio-bw .fl-tabs li.fl-tabs-active a:hover,.fl-theme-uio-bw .fl-tabs li.fl-activeTab,.fl-theme-uio-bw .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-bw .fl-tabs li.fl-activeTab a,.fl-theme-uio-bw .fl-tabs li.fl-activeTab a:hover,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li.fl-tabs-active,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li.fl-tabs-active a,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li.fl-tabs-active a:hover,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li.fl-activeTab,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li.fl-activeTab a,.fl-theme-uio-wb .fl-inverted-color .fl-tabs li.fl-activeTab a:hover{background-color:#fff!important;border-bottom-color:#fff!important;color:#000!important;}
+.fl-theme-uio-bw .fl-tab-content,.fl-theme-uio-wb .fl-inverted-color .fl-tab-content{background-color:#fff!important;color:#000!important;}
+.fl-theme-uio-bw .fl-listmenu,.fl-theme-uio-bw .fl-list-menu,.fl-theme-uio-wb .fl-inverted-color .fl-listmenu,.fl-theme-uio-wb .fl-inverted-color .fl-list-menu{border-top-width:1px;border-top-style:solid;border-top-color:#000!important;border-right-width:1px;border-right-style:solid;border-right-color:#000!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:1px;border-left-style:solid;border-left-color:#000!important;border-bottom-width:2px;background-color:#fff!important;}
+.fl-theme-uio-bw .fl-listmenu li,.fl-theme-uio-bw .fl-list-menu li,.fl-theme-uio-bw .fl-listmenu li a,.fl-theme-uio-bw .fl-list-menu li a,.fl-theme-uio-wb .fl-inverted-color .fl-listmenu li,.fl-theme-uio-wb .fl-inverted-color .fl-list-menu li,.fl-theme-uio-wb .fl-inverted-color .fl-listmenu li a,.fl-theme-uio-wb .fl-inverted-color .fl-list-menu li a{font-weight:bold;color:#000!important;background-color:#fff!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;text-decoration:none;}
+.fl-theme-uio-bw .fl-listmenu a:hover,.fl-theme-uio-bw .fl-list-menu a:hover,.fl-theme-uio-wb .fl-inverted-color .fl-listmenu a:hover,.fl-theme-uio-wb .fl-inverted-color .fl-list-menu a:hover{background-color:#000!important;color:#fff!important;}
+.fl-theme-uio-bw .fl-listmenu .fl-activemenu a,.fl-theme-uio-bw .fl-list-menu .fl-activemenu a,.fl-theme-uio-bw .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-bw .fl-list-menu .fl-activemenu a:hover,.fl-theme-uio-wb .fl-inverted-color .fl-listmenu .fl-activemenu a,.fl-theme-uio-wb .fl-inverted-color .fl-list-menu .fl-activemenu a,.fl-theme-uio-wb .fl-inverted-color .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-wb .fl-inverted-color .fl-list-menu .fl-activemenu a:hover{background-color:#000!important;border-bottom-color:#fff!important;color:#fff!important;}
+.fl-theme-uio-bw .fl-button-left,.fl-theme-uio-bw .fl-button-right,.fl-theme-uio-wb .fl-inverted-color .fl-button-left,.fl-theme-uio-wb .fl-inverted-color .fl-button-right{color:#000!important;background-color:#fff!important;}
+.fl-theme-uio-bw .fl-button-left,.fl-theme-uio-bw .fl-button-right,.fl-theme-uio-wb .fl-inverted-color .fl-button-left,.fl-theme-uio-wb .fl-inverted-color .fl-button-right{background-image:url('../../../../framework/fss/css/../images/themes/bw//buttons-med-cap.png')!important;}
+.fl-theme-uio-bw .fl-button-inner,.fl-theme-uio-wb .fl-inverted-color .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/bw/buttons-med-bg.png')!important;}
+.fl-theme-uio-bw .fl-widget,.fl-theme-uio-wb .fl-inverted-color .fl-widget{background-color:#000!important;border-top-width:1px;border-top-style:solid;border-top-color:#fff!important;border-right-width:1px;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:1px;border-left-style:solid;border-left-color:#fff!important;}
+.fl-theme-uio-bw .fl-widget h2,.fl-theme-uio-wb .fl-inverted-color .fl-widget h2{display:inline;}
+.fl-theme-uio-bw .fl-widget a,.fl-theme-uio-wb .fl-inverted-color .fl-widget a{color:#000!important;}
+.fl-theme-uio-bw .fl-widget .fl-icon-more,.fl-theme-uio-wb .fl-inverted-color .fl-widget .fl-icon-more{background-image:url('../../../../framework/fss/css/../images/themes/bw/icon-widget-More.png')!important;margin-left:0;}
+.fl-theme-uio-bw .fl-widget .fl-icon-close,.fl-theme-uio-wb .fl-inverted-color .fl-widget .fl-icon-close{background-image:url('../../../../framework/fss/css/../images/themes/bw/icon-widget-Close.png')!important;margin-right:0;}
+.fl-theme-uio-bw .fl-widget .fl-widget-titlebar,.fl-theme-uio-wb .fl-inverted-color .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-uio-bw .fl-grabbable .fl-widget-titlebar,.fl-theme-uio-wb .fl-inverted-color .fl-grabbable .fl-widget-titlebar{background-image:url('../../../../framework/fss/css/../images/themes/bw/icon-widget-gripper.png')!important;}
+.fl-theme-uio-bw .fl-grabbable .fl-widget-titlebar h2,.fl-theme-uio-wb .fl-inverted-color .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-uio-bw .fl-widget-titlebar .icon,.fl-theme-uio-wb .fl-inverted-color .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-uio-bw .fl-widget-titlebar .fl-button-right,.fl-theme-uio-bw .fl-widget-titlebar .fl-button-left,.fl-theme-uio-wb .fl-inverted-color .fl-widget-titlebar .fl-button-right,.fl-theme-uio-wb .fl-inverted-color .fl-widget-titlebar .fl-button-left{color:#000!important;background-image:url('../../../../framework/fss/css/../images/themes/bw/buttons-titlebar-cap.png')!important;text-decoration:none;}
+.fl-theme-uio-bw .fl-widget-titlebar .fl-button-inner,.fl-theme-uio-wb .fl-inverted-color .fl-widget-titlebar .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/bw/buttons-titlebar-bg.png')!important;}
+.fl-theme-uio-bw .fl-widget .fl-widget-options,.fl-theme-uio-wb .fl-inverted-color .fl-widget .fl-widget-options{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;}
+.fl-theme-uio-bw .fl-widget .fl-widget-options li,.fl-theme-uio-wb .fl-inverted-color .fl-widget .fl-widget-options li{border-left-width:1px;border-left-style:solid;border-left-color:#fff!important;}
+.fl-theme-uio-bw .fl-widget .fl-widget-content,.fl-theme-uio-wb .fl-inverted-color .fl-widget .fl-widget-content{background-color:#fff!important;}
+.fl-theme-uio-bw .fl-progress-bounds,.fl-theme-uio-wb .fl-inverted-color .fl-progress-bounds{border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;background-color:#fff!important;}
+.fl-theme-uio-bw .fl-progress-fill,.fl-theme-uio-wb .fl-inverted-color .fl-progress-fill{color:#fff!important;background-color:#000!important;}
+.fl-theme-uio-bw .fl-reorderer-dropMarker,.fl-theme-uio-wb .fl-inverted-color .fl-reorderer-dropMarker{background-color:#f00!important;}
+.fl-theme-uio-bw .fl-inlineEdit-edit,.fl-theme-uio-wb .fl-inverted-color .fl-inlineEdit-edit{background-color:#000!important;color:#fff!important;border-top-width:.1em;border-top-style:solid;border-top-color:#fff!important;border-right-width:.1em;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:.1em;border-left-style:solid;border-left-color:#fff!important;padding-top:.1em;padding-right:.1em;padding-bottom:.1em;padding-left:.1em;margin-top:-0.1em;margin-right:-0.1em;margin-bottom:-0.1em;margin-left:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-by-uio.css b/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-by-uio.css
new file mode 100644 (file)
index 0000000..9d3d62c
--- /dev/null
@@ -0,0 +1,41 @@
+.fl-theme-uio-by,.fl-theme-uio-by *,.fl-preview-theme.fl-theme-uio-by,.fl-theme-uio-yb.fl-inverted-color,.fl-theme-uio-yb .fl-inverted-color,.fl-theme-uio-yb.fl-inverted-color *,.fl-theme-uio-yb .fl-inverted-color *,.fl-preview-theme.fl-theme-uio-yb.fl-inverted-color{color:#000!important;background-color:#ff0!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-by div,.fl-theme-uio-by input,.fl-theme-uio-yb .fl-inverted-color div,.fl-theme-uio-yb .fl-inverted-color input{color:#000!important;background-color:#ff0!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-by iframe,.fl-theme-uio-yb .fl-inverted-color iframe{border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-by a,.fl-theme-uio-yb .fl-inverted-color a{color:#000!important;font-weight:bold;background-color:#ff0!important;}
+.fl-theme-uio-by h1,.fl-theme-uio-by h2,.fl-theme-uio-by h3,.fl-theme-uio-by h4,.fl-theme-uio-by h5,.fl-theme-uio-by h6,.fl-theme-uio-yb .fl-inverted-color h1,.fl-theme-uio-yb .fl-inverted-color h2,.fl-theme-uio-yb .fl-inverted-color h3,.fl-theme-uio-yb .fl-inverted-color h4,.fl-theme-uio-yb .fl-inverted-color h5,.fl-theme-uio-yb .fl-inverted-color h6{color:#000!important;background-color:#ff0!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-by th,.fl-theme-uio-yb .fl-inverted-color th{border-top-width:.1em;border-top-style:solid;border-top-color:#000!important;border-right-width:.1em;border-right-style:solid;border-right-color:#000!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:.1em;border-left-style:solid;border-left-color:#000!important;background-color:#000!important;color:#ff0!important;}
+.fl-theme-uio-by td,.fl-theme-uio-yb .fl-inverted-color td{border-top-width:.1em;border-top-style:solid;border-top-color:#000!important;border-right-width:.1em;border-right-style:solid;border-right-color:#000!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:.1em;border-left-style:solid;border-left-color:#000!important;}
+.fl-theme-uio-by .fl-focus:focus,.fl-theme-uio-by .fl-focus :focus,.fl-theme-uio-by.fl-focus :focus,.fl-theme-uio-by .selectable,.fl-theme-uio-yb .fl-inverted-color .fl-focus:focus,.fl-theme-uio-yb .fl-inverted-color .fl-focus :focus,.fl-theme-uio-yb.fl-inverted-color.fl-focus :focus,.fl-theme-uio-yb .fl-inverted-color .selectable{outline-width:.2em;outline-style:solid;outline-color:#F00;}
+.fl-theme-uio-by .fl-knockout,.fl-theme-uio-yb .fl-inverted-color .fl-knockout{background-color:transparent!important;background-image:none!important;background-repeat:repeat!important;background-attachment:scroll!important;background-position:top left!important;color:#000!important;}
+.fl-theme-uio-by .fl-icon,.fl-theme-uio-yb .fl-inverted-color .fl-icon{background-color:#ff0!important;}
+.fl-theme-uio-by .fl-tabs,.fl-theme-uio-yb .fl-inverted-color .fl-tabs{border-bottom-color:#000!important;}
+.fl-theme-uio-by .fl-tabs li,.fl-theme-uio-by .fl-tabs li *,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li *{border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;border-bottom-color:#000!important;}
+.fl-theme-uio-by .fl-tabs li,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li{background-color:#000!important;}
+.fl-theme-uio-by .fl-tabs li *,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li *{color:#ff0!important;font-weight:bold;background-color:#000!important;text-decoration:none;}
+.fl-theme-uio-by .fl-tabs li:hover,.fl-theme-uio-by .fl-tabs li:hover *,.fl-theme-uio-by .fl-tabs li a:hover,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li:hover,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li:hover *,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li a:hover{color:#000!important;background-color:#ff0!important;}
+.fl-theme-uio-by .fl-tabs li.fl-tabs-active,.fl-theme-uio-by .fl-tabs li.fl-tabs-active a,.fl-theme-uio-by .fl-tabs li.fl-tabs-active a:hover,.fl-theme-uio-by .fl-tabs li.fl-activeTab,.fl-theme-uio-by .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-by .fl-tabs li.fl-activeTab a,.fl-theme-uio-by .fl-tabs li.fl-activeTab a:hover,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li.fl-tabs-active,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li.fl-tabs-active a,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li.fl-tabs-active a:hover,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li.fl-activeTab,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li.fl-activeTab a,.fl-theme-uio-yb .fl-inverted-color .fl-tabs li.fl-activeTab a:hover{background-color:#ff0!important;border-bottom-color:#ff0!important;color:#000!important;}
+.fl-theme-uio-by .fl-tab-content,.fl-theme-uio-yb .fl-inverted-color .fl-tab-content{background-color:#ff0!important;color:#000!important;}
+.fl-theme-uio-by .fl-listmenu,.fl-theme-uio-by .fl-list-menu,.fl-theme-uio-yb .fl-inverted-color .fl-listmenu,.fl-theme-uio-yb .fl-inverted-color .fl-list-menu{border-top-width:1px;border-top-style:solid;border-top-color:#000!important;border-right-width:1px;border-right-style:solid;border-right-color:#000!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:1px;border-left-style:solid;border-left-color:#000!important;border-bottom-width:2px;background-color:#ff0!important;}
+.fl-theme-uio-by .fl-listmenu li,.fl-theme-uio-by .fl-list-menu li,.fl-theme-uio-by .fl-listmenu li a,.fl-theme-uio-by .fl-list-menu li a .fl-theme-uio-yb .fl-inverted-color .fl-listmenu li,.fl-theme-uio-yb .fl-inverted-color .fl-list-menu li,.fl-theme-uio-yb .fl-inverted-color .fl-listmenu li a,.fl-theme-uio-yb .fl-inverted-color .fl-list-menu li a{font-weight:bold;color:#000!important;background-color:#ff0!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;text-decoration:none;}
+.fl-theme-uio-by .fl-listmenu a:hover,.fl-theme-uio-by .fl-list-menu a:hover,.fl-theme-uio-yb .fl-inverted-color .fl-listmenu a:hover,.fl-theme-uio-yb .fl-inverted-color .fl-list-menu a:hover{background-color:#000!important;color:#ff0!important;}
+.fl-theme-uio-by .fl-listmenu .fl-activemenu a,.fl-theme-uio-by .fl-list-menu .fl-activemenu a,.fl-theme-uio-by .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-by .fl-list-menu .fl-activemenu a:hover,.fl-theme-uio-yb .fl-inverted-color .fl-listmenu .fl-activemenu a,.fl-theme-uio-yb .fl-inverted-color .fl-list-menu .fl-activemenu a,.fl-theme-uio-yb .fl-inverted-color .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-yb .fl-inverted-color .fl-list-menu .fl-activemenu a:hover{background-color:#000!important;border-bottom-color:#ff0!important;color:#ff0!important;}
+.fl-theme-uio-by .fl-button-left,.fl-theme-uio-by .fl-button-right,.fl-theme-uio-yb .fl-inverted-color .fl-button-left,.fl-theme-uio-yb .fl-inverted-color .fl-button-right{background-image:url('../../../../framework/fss/css/../images/themes/by/buttons-med-cap.png')!important;}
+.fl-theme-uio-by .fl-button-inner,.fl-theme-uio-yb .fl-inverted-color .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/by/buttons-med-bg.png')!important;}
+.fl-theme-uio-by .fl-widget,.fl-theme-uio-yb .fl-inverted-color .fl-widget{background-color:#000!important;border-top-width:1px;border-top-style:solid;border-top-color:#ff0!important;border-right-width:1px;border-right-style:solid;border-right-color:#ff0!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ff0!important;border-left-width:1px;border-left-style:solid;border-left-color:#ff0!important;}
+.fl-theme-uio-by .fl-widget h2,.fl-theme-uio-yb .fl-inverted-color .fl-widget h2{color:#000!important;}
+.fl-theme-uio-by .fl-widget a,.fl-theme-uio-yb .fl-inverted-color .fl-widget a{color:#000!important;}
+.fl-theme-uio-by .fl-widget .fl-icon-more,.fl-theme-uio-yb .fl-inverted-color .fl-widget .fl-icon-more{background-image:url('../../../../framework/fss/css/../images/themes/by/icon-widget-More.png')!important;margin-left:0;}
+.fl-theme-uio-by .fl-widget .fl-icon-close,.fl-theme-uio-yb .fl-inverted-color .fl-widget .fl-icon-close{background-image:url('../../../../framework/fss/css/../images/themes/by/icon-widget-Close.png')!important;margin-right:0;}
+.fl-theme-uio-by .fl-widget .fl-widget-titlebar,.fl-theme-uio-yb .fl-inverted-color .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-uio-by .fl-grabbable .fl-widget-titlebar,.fl-theme-uio-yb .fl-inverted-color .fl-grabbable .fl-widget-titlebar{background-image:url('../../../../framework/fss/css/../images/themes/by/icon-widget-gripper.png')!important;}
+.fl-theme-uio-by .fl-grabbable .fl-widget-titlebar h2,.fl-theme-uio-yb .fl-inverted-color .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-uio-by .fl-widget-titlebar .icon,.fl-theme-uio-yb .fl-inverted-color .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-uio-by .fl-widget-titlebar .fl-button-right,.fl-theme-uio-by .fl-widget-titlebar .fl-button-left,.fl-theme-uio-yb .fl-inverted-color .fl-widget-titlebar .fl-button-right,.fl-theme-uio-yb .fl-inverted-color .fl-widget-titlebar .fl-button-left{color:#000!important;background-image:url('../../../../framework/fss/css/../images/themes/by/buttons-titlebar-cap.png')!important;text-decoration:none;}
+.fl-theme-uio-by .fl-widget-titlebar .fl-button-inner,.fl-theme-uio-yb .fl-inverted-color .fl-widget-titlebar .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/by/buttons-titlebar-bg.png')!important;}
+.fl-theme-uio-by .fl-widget .fl-widget-options,.fl-theme-uio-yb .fl-inverted-color .fl-widget .fl-widget-options{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;}
+.fl-theme-uio-by .fl-widget .fl-widget-options li,.fl-theme-uio-yb .fl-inverted-color .fl-widget .fl-widget-options li{border-left-width:1px;border-left-style:solid;border-left-color:#ff0!important;}
+.fl-theme-uio-by .fl-widget .fl-widget-content,.fl-theme-uio-yb .fl-inverted-color .fl-widget .fl-widget-content{background-color:#ff0!important;}
+.fl-theme-uio-by .fl-progress-bounds,.fl-theme-uio-yb .fl-inverted-color .fl-progress-bounds{border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;background-color:#ff0!important;}
+.fl-theme-uio-by .fl-progress-fill,.fl-theme-uio-yb .fl-inverted-color .fl-progress-fill{color:#ff0!important;background-color:#000!important;}
+.fl-theme-uio-by .fl-reorderer-dropMarker,.fl-theme-uio-yb .fl-inverted-color .fl-reorderer-dropMarker{background-color:#f00!important;}
+.fl-theme-uio-by .fl-inlineEdit-edit,.fl-theme-uio-yb .fl-inverted-color .fl-inlineEdit-edit{background-color:#000!important;color:#ff0!important;border-top-width:.1em;border-top-style:solid;border-top-color:#ff0!important;border-right-width:.1em;border-right-style:solid;border-right-color:#ff0!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#ff0!important;border-left-width:.1em;border-left-style:solid;border-left-color:#ff0!important;padding-top:.1em;padding-right:.1em;padding-bottom:.1em;padding-left:.1em;margin-top:-0.1em;margin-right:-0.1em;margin-bottom:-0.1em;margin-left:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-coal-uio.css b/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-coal-uio.css
new file mode 100644 (file)
index 0000000..b079580
--- /dev/null
@@ -0,0 +1,57 @@
+.fl-theme-uio-coal,.fl-theme-uio-coal.fl-preview-theme{color:#000!important;background-color:#ebebeb!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-coal a{color:#333!important;font-weight:bold;}
+.fl-theme-uio-coal a:hover{color:#999!important;}
+.fl-theme-uio-coal h1{color:#000!important;border-bottom-width:.2em;border-bottom-style:solid;}
+.fl-theme-uio-coal h2{color:#666!important;}
+.fl-theme-uio-coal th{border-top-width:.1em;border-top-style:solid;border-top-color:#fff!important;border-right-width:.1em;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:.1em;border-left-style:solid;border-left-color:#fff!important;background-color:#dfefff!important;}
+.fl-theme-uio-coal td{border-top-width:.1em;border-top-style:solid;border-top-color:#999!important;border-right-width:.1em;border-right-style:solid;border-right-color:#999!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#999!important;border-left-width:.1em;border-left-style:solid;border-left-color:#999!important;}
+.fl-theme-uio-coal .fl-focus:focus,.fl-theme-uio-coal .fl-focus :focus,.fl-theme-uio-coal.fl-focus :focus,.fl-theme-uio-coal .selectable{outline-width:.1em;outline-style:solid;outline-color:#000;}
+.fl-theme-uio-coal .fl-textfield,.fl-theme-uio-coal .fl-textarea{background-color:#fff!important;border-top-width:1px;border-top-style:solid;border-top-color:#000!important;border-right-width:1px;border-right-style:solid;border-right-color:#000!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:1px;border-left-style:solid;border-left-color:#000!important;}
+.fl-theme-uio-coal .fl-icon{background-color:#666!important;}
+.fl-theme-uio-coal .fl-button-left,.fl-theme-uio-coal .fl-button-right{color:#FFF!important;background-color:#333!important;}
+.fl-theme-uio-coal .fl-button-left{background-image:url('../../../../framework/fss/css/../images/themes/coal/buttons-med-cap.png')!important;}
+.fl-theme-uio-coal .fl-button-right{background-image:url('../../../../framework/fss/css/../images/themes/coal/buttons-med-cap.png')!important;}
+.fl-theme-uio-coal .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/coal/buttons-med-bg.png')!important;}
+.fl-theme-uio-coal a.fl-button-left:hover,.fl-theme-uio-coal a.fl-button-right:hover{color:#fff!important;}
+.fl-theme-uio-coal .fl-tabs{border-bottom-color:#333!important;}
+.fl-theme-uio-coal .fl-tabs li,.fl-theme-uio-coal .fl-tabs li a{font-weight:bold;color:#fff!important;border-top-color:#333!important;border-right-color:#333!important;border-bottom-color:#333!important;border-left-color:#333!important;border-bottom-color:#333!important;background-color:#666!important;text-decoration:none;}
+.fl-theme-uio-coal .fl-tabs li a:hover{background-color:#333!important;color:#fff!important;}
+.fl-theme-uio-coal .fl-tabs li.fl-activeTab,.fl-theme-uio-coal .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-coal .fl-tabs li.fl-activeTab a,.fl-theme-uio-coal .fl-tabs li.fl-activeTab a:hover,.fl-theme-uio-coal .fl-tabs li.fl-tabs-active,.fl-theme-uio-coal .fl-tabs li.fl-tabs-active a,.fl-theme-uio-coal .fl-tabs li.fl-tabs-active a:hover{background-color:#ebebeb!important;border-bottom-color:#ebebeb!important;color:#000!important;}
+.fl-theme-uio-coal .fl-tabs-content{background-color:#ebebeb!important;color:#000!important;border-top-width:1px;border-top-style:solid;border-top-color:#999!important;border-right-width:1px;border-right-style:solid;border-right-color:#999!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#999!important;border-left-width:1px;border-left-style:solid;border-left-color:#999!important;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;}
+.fl-theme-uio-coal .fl-tabs-content-enhanced{background-color:#ebebeb!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-med-content-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:left top;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;border-right-width:medium;border-right-style:none;border-right-color:-moz-initial!important;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;border-left-width:medium;border-left-style:none;border-left-color:-moz-initial!important;}
+.fl-theme-uio-coal .fl-tabs-enhanced{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-med-container-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:left bottom;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;margin-top:10px;margin-right:0;margin-bottom:0;margin-left:0;padding-top:5px;padding-right:0;padding-bottom:6px;padding-left:0;}
+.fl-theme-uio-coal .fl-tabs-enhanced li{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-med-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;padding-top:4px;padding-right:0;padding-bottom:6px;padding-left:16px;}
+.fl-theme-uio-coal .fl-tabs-enhanced li a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-med-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;border-right-width:medium;border-right-style:none;border-right-color:-moz-initial!important;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;border-left-width:medium;border-left-style:none;border-left-color:-moz-initial!important;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:4px;padding-right:16px;padding-bottom:6px;padding-left:0;color:#ebebeb!important;}
+.fl-theme-uio-coal .fl-tabs-enhanced li.fl-tabs-active{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-med-active-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;}
+.fl-theme-uio-coal .fl-tabs-enhanced li.fl-tabs-active a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-med-active-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;color:#fff!important;}
+.fl-theme-uio-coal .fl-listmenu,.fl-theme-uio-coal .fl-list-menu{border-top-width:1px;border-top-style:solid;border-top-color:#333!important;border-right-width:1px;border-right-style:solid;border-right-color:#333!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#333!important;border-left-width:1px;border-left-style:solid;border-left-color:#333!important;border-bottom-width:2px;background-color:#ebebeb!important;}
+.fl-theme-uio-coal .fl-listmenu li,.fl-theme-uio-coal .fl-list-menu li,.fl-theme-uio-coal .fl-listmenu li a,.fl-theme-uio-coal .fl-list-menu li a{font-weight:bold;background-color:#ebebeb!important;border-top-color:#333!important;border-right-color:#333!important;border-bottom-color:#333!important;border-left-color:#333!important;text-decoration:none;}
+.fl-theme-uio-coal .fl-listmenu a:hover,.fl-theme-uio-coal .fl-list-menu a:hover{background-color:#fff!important;color:#333!important;}
+.fl-theme-uio-coal .fl-listmenu .fl-activemenu a,.fl-theme-uio-coal .fl-list-menu .fl-activemenu a,.fl-theme-uio-coal .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-coal .fl-list-menu .fl-activemenu a:hover{background-color:#fff!important;border-bottom-color:#999!important;color:#666!important;}
+.fl-theme-uio-coal .fl-grid{border-top-width:2px;border-top-style:solid;border-top-color:#000!important;border-right-width:2px;border-right-style:solid;border-right-color:#000!important;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:2px;border-left-style:solid;border-left-color:#000!important;background-color:#ccc!important;}
+.fl-theme-uio-coal .fl-grid li{background-color:#EDEDED!important;border-top-width:1px;border-top-style:solid;border-top-color:#000!important;border-right-width:1px;border-right-style:solid;border-right-color:#000!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:1px;border-left-style:solid;border-left-color:#000!important;}
+.fl-theme-uio-coal .fl-grid .fl-grid-caption{background-color:#666!important;color:#fff!important;}
+.fl-theme-uio-coal .fl-widget{background-color:#333!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/widget-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:top left;border-top-width:1px;border-top-style:solid;border-top-color:#000!important;border-right-width:1px;border-right-style:solid;border-right-color:#000!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:1px;border-left-style:solid;border-left-color:#000!important;}
+.fl-theme-uio-coal .fl-widget h2{color:#fff!important;}
+.fl-theme-uio-coal .fl-widget .fl-icon-more{background-image:url('../../../../framework/fss/css/../images/themes/coal/icon-widget-More.png')!important;margin-left:0;}
+.fl-theme-uio-coal .fl-widget .fl-icon-close{background-image:url('../../../../framework/fss/css/../images/themes/coal/icon-widget-Close.png')!important;margin-right:0;}
+.fl-theme-uio-coal .fl-grabbable .fl-widget-titlebar{background-image:url('../../../../framework/fss/css/../images/themes/coal/icon-widget-gripper.png')!important;}
+.fl-theme-uio-coal .fl-widget-titlebar{background-position:center top;background-repeat:no-repeat;}
+.fl-theme-uio-coal .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-uio-coal .fl-widget-titlebar .fl-button-right,.fl-theme-uio-coal .fl-widget-titlebar .fl-button-left{background-image:url('../../../../framework/fss/css/../images/themes/coal/buttons-titlebar-cap.png')!important;text-decoration:none;}
+.fl-theme-uio-coal .fl-widget-titlebar .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/coal/buttons-titlebar-bg.png')!important;padding-bottom:.3em;padding-top:0;}
+.fl-theme-uio-coal .fl-widget-options li{border-left-width:1px;border-left-style:solid;border-left-color:#ccc!important;}
+.fl-theme-uio-coal .fl-widget-options li a{color:#ebebeb!important;}
+.fl-theme-uio-coal .fl-widget-options li a:hover{color:#fff!important;}
+.fl-theme-uio-coal .fl-widget-options a.icon:hover{background-color:#fff!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-coal .fl-widget-content{background-color:#fff!important;}
+.fl-theme-uio-coal .fl-widget-content .fl-tabs-content-enhanced{background-color:#ebebeb!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-light-content-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:left top;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;border-right-width:medium;border-right-style:none;border-right-color:-moz-initial!important;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;border-left-width:medium;border-left-style:none;border-left-color:-moz-initial!important;}
+.fl-theme-uio-coal .fl-widget-content .fl-tabs-enhanced{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-light-container-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:left bottom;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;margin-top:10px;margin-right:0;margin-bottom:0;margin-left:0;padding-top:5px;padding-right:0;padding-bottom:6px;padding-left:0;}
+.fl-theme-uio-coal .fl-widget-content .fl-tabs-enhanced li{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-light-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;padding-top:4px;padding-right:0;padding-bottom:6px;padding-left:16px;}
+.fl-theme-uio-coal .fl-widget-content .fl-tabs-enhanced li a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-light-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;border-right-width:medium;border-right-style:none;border-right-color:-moz-initial!important;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;border-left-width:medium;border-left-style:none;border-left-color:-moz-initial!important;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:4px;padding-right:16px;padding-bottom:6px;padding-left:0;color:#ebebeb!important;}
+.fl-theme-uio-coal .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-light-active-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;}
+.fl-theme-uio-coal .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/coal/tabs-light-active-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;color:#fff!important;}
+.fl-theme-uio-coal .fl-progress-bounds{border-top-color:#333!important;border-right-color:#333!important;border-bottom-color:#333!important;border-left-color:#333!important;background-color:#ebebeb!important;}
+.fl-theme-uio-coal .fl-progress-fill{color:#fff!important;background-color:#999!important;}
+.fl-theme-uio-coal .fl-reorderer-dropMarker{background-color:#f00!important;}
+.fl-theme-uio-coal .fl-inlineEdit-edit{background-color:#ebebeb!important;border-top-width:.1em;border-top-style:solid;border-top-color:#fff!important;border-right-width:.1em;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:.1em;border-left-style:solid;border-left-color:#fff!important;margin-top:-0.1em;margin-right:-0.1em;margin-bottom:-0.1em;margin-left:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-mist-uio.css b/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-mist-uio.css
new file mode 100644 (file)
index 0000000..9efa105
--- /dev/null
@@ -0,0 +1,49 @@
+.fl-theme-uio-mist,.fl-theme-uio-mist.fl-preview-theme{color:#000!important;background-color:#f4f4f4!important;border-top-color:#4070a1!important;border-right-color:#4070a1!important;border-bottom-color:#4070a1!important;border-left-color:#4070a1!important;}
+.fl-theme-uio-mist a{color:#5a95cf!important;font-weight:bold;}
+.fl-theme-uio-mist a:hover{color:#6DB5FB!important;}
+.fl-theme-uio-mist h1{color:#4070a1!important;border-bottom-width:.2em;border-bottom-style:solid;}
+.fl-theme-uio-mist h2{color:#5a95cf!important;}
+.fl-theme-uio-mist th{border-top-width:.1em;border-top-style:solid;border-top-color:#5a95cf!important;border-right-width:.1em;border-right-style:solid;border-right-color:#5a95cf!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#5a95cf!important;border-left-width:.1em;border-left-style:solid;border-left-color:#5a95cf!important;background-color:#dfefff!important;}
+.fl-theme-uio-mist td{border-top-width:.1em;border-top-style:solid;border-top-color:#999!important;border-right-width:.1em;border-right-style:solid;border-right-color:#999!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#999!important;border-left-width:.1em;border-left-style:solid;border-left-color:#999!important;}
+.fl-theme-uio-mist .fl-focus:focus,.fl-theme-uio-mist .fl-focus :focus,.fl-theme-uio-mist.fl-focus :focus,.fl-theme-uio-mist .selectable{outline-width:.1em;outline-style:solid;outline-color:#F00;}
+.fl-theme-uio-mist .fl-textfield,.fl-theme-uio-mist .fl-textarea{border-top-width:1px;border-top-style:solid;border-top-color:#5a95cf!important;border-right-width:1px;border-right-style:solid;border-right-color:#5a95cf!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#5a95cf!important;border-left-width:1px;border-left-style:solid;border-left-color:#5a95cf!important;border-bottom-color:#5a95cf!important;border-right-color:#5a95cf!important;background-color:#dfefff!important;}
+.fl-theme-uio-mist .fl-icon{background-color:#5a95cf!important;}
+.fl-theme-uio-mist .fl-button-left{background-image:url('../../../../framework/fss/css/../images/themes/mist/buttons-med-cap.png')!important;}
+.fl-theme-uio-mist .fl-button-right{background-image:url('../../../../framework/fss/css/../images/themes/mist/buttons-med-cap.png')!important;}
+.fl-theme-uio-mist .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/mist/buttons-med-bg.png')!important;}
+.fl-theme-uio-mist .fl-tabs{border-bottom-color:#4070a1!important;}
+.fl-theme-uio-mist .fl-tabs li,.fl-theme-uio-mist .fl-tabs li a{font-weight:bold;color:#4070a1!important;border-top-color:#4070a1!important;border-right-color:#4070a1!important;border-bottom-color:#4070a1!important;border-left-color:#4070a1!important;border-bottom-color:#4070a1!important;text-decoration:none;background-color:#dfefff!important;}
+.fl-theme-uio-mist .fl-tabs li a:hover{background-color:#5a95cf!important;color:#fff!important;}
+.fl-theme-uio-mist .fl-tabs li.fl-activeTab,.fl-theme-uio-mist .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-mist .fl-tabs li.fl-activeTab a,.fl-theme-uio-mist .fl-tabs li.fl-activeTab a:hover .fl-theme-uio-mist .fl-tabs li.fl-tabs-active,.fl-theme-uio-mist .fl-tabs li.fl-tabs-active a,.fl-theme-uio-mist .fl-tabs li.fl-tabs-active a:hover{background-color:#f4f4f4!important;border-bottom-color:#f4f4f4!important;color:#508cc9!important;}
+.fl-theme-uio-mist .fl-tabs-content{background-color:#f4f4f4!important;color:#000!important;border-top-width:1px;border-top-style:solid;border-top-color:#61c5ff!important;border-right-width:1px;border-right-style:solid;border-right-color:#61c5ff!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#61c5ff!important;border-left-width:1px;border-left-style:solid;border-left-color:#61c5ff!important;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;margin-top:-4px;}
+.fl-theme-uio-mist .fl-tabs-enhanced{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-med-container-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:left bottom;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;margin-top:10px;margin-right:1px;margin-bottom:0;margin-left:1px;padding-top:5px;padding-right:0;padding-bottom:6px;padding-left:0;}
+.fl-theme-uio-mist .fl-tabs-enhanced li{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-med-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;padding-top:4px;padding-right:0;padding-bottom:6px;padding-left:16px;}
+.fl-theme-uio-mist .fl-tabs-enhanced li a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-med-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;border-right-width:medium;border-right-style:none;border-right-color:-moz-initial!important;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;border-left-width:medium;border-left-style:none;border-left-color:-moz-initial!important;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:4px;padding-right:16px;padding-bottom:6px;padding-left:0;color:#666!important;}
+.fl-theme-uio-mist .fl-tabs-enhanced li.fl-tabs-active{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-med-active-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;}
+.fl-theme-uio-mist .fl-tabs-enhanced li.fl-tabs-active a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-med-active-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;color:#000!important;}
+.fl-theme-uio-mist .fl-listmenu,.fl-theme-uio-mist .fl-list-menu{border-top-width:1px;border-top-style:solid;border-top-color:#4070a1!important;border-right-width:1px;border-right-style:solid;border-right-color:#4070a1!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#4070a1!important;border-left-width:1px;border-left-style:solid;border-left-color:#4070a1!important;border-bottom-width:2px;background-color:#fff!important;}
+.fl-theme-uio-mist .fl-listmenu li,.fl-theme-uio-mist .fl-list-menu li,.fl-theme-uio-mist .fl-listmenu li a,.fl-theme-uio-mist .fl-list-menu li a{font-weight:bold;color:#4070a1!important;background-color:#dfefff!important;border-top-color:#4070a1!important;border-right-color:#4070a1!important;border-bottom-color:#4070a1!important;border-left-color:#4070a1!important;text-decoration:none;}
+.fl-theme-uio-mist .fl-listmenu a:hover,.fl-theme-uio-mist .fl-list-menu a:hover{background-color:#5a95cf!important;color:#fff!important;}
+.fl-theme-uio-mist .fl-listmenu .fl-activemenu a,.fl-theme-uio-mist .fl-list-menu .fl-activemenu a,.fl-theme-uio-mist .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-mist .fl-list-menu .fl-activemenu a:hover{background-color:#fff!important;border-bottom-color:#fff!important;color:#508cc9!important;}
+.fl-theme-uio-mist .fl-grid{border-top-width:2px;border-top-style:solid;border-top-color:#4070a1!important;border-right-width:2px;border-right-style:solid;border-right-color:#4070a1!important;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:#4070a1!important;border-left-width:2px;border-left-style:solid;border-left-color:#4070a1!important;background-color:#fff!important;}
+.fl-theme-uio-mist .fl-grid li{background-color:#dfefff!important;border-top-width:1px;border-top-style:solid;border-top-color:#4070a1!important;border-right-width:1px;border-right-style:solid;border-right-color:#4070a1!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#4070a1!important;border-left-width:1px;border-left-style:solid;border-left-color:#4070a1!important;}
+.fl-theme-uio-mist .fl-grid .fl-grid-caption{background-color:#dfefff!important;color:#5a95cf!important;}
+.fl-theme-uio-mist .fl-widget{background-color:#efefef!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/widget-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:top left;border-top-width:1px;border-top-style:solid;border-top-color:#CCC!important;border-right-width:1px;border-right-style:solid;border-right-color:#CCC!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#CCC!important;border-left-width:1px;border-left-style:solid;border-left-color:#CCC!important;}
+.fl-theme-uio-mist .fl-widget h2{color:#000!important;}
+.fl-theme-uio-mist .fl-widget .fl-icon-more{background-image:url('../../../../framework/fss/css/../images/themes/mist/icon-widget-More.png')!important;margin-left:0;}
+.fl-theme-uio-mist .fl-widget .fl-icon-close{background-image:url('../../../../framework/fss/css/../images/themes/mist/icon-widget-Close.png')!important;margin-right:0;}
+.fl-theme-uio-mist .fl-grabbable .fl-widget-titlebar{background-image:url('../../../../framework/fss/css/../images/themes/mist/icon-widget-gripper.png')!important;}
+.fl-theme-uio-mist .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-uio-mist .fl-widget-titlebar .fl-button-right,.fl-theme-uio-mist .fl-widget-titlebar .fl-button-left{color:#4070a1!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/buttons-titlebar-cap.png')!important;text-decoration:none;}
+.fl-theme-uio-mist .fl-widget-titlebar .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/mist/buttons-titlebar-bg.png')!important;}
+.fl-theme-uio-mist .fl-widget-options a.icon:hover{background-color:#5a95cf!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-mist .fl-widget-content{background-color:#fff!important;}
+.fl-theme-uio-mist .fl-widget-content .fl-tabs-enhanced{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-light-container-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:left bottom;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;margin-top:10px;margin-right:1px;margin-bottom:0;margin-left:1px;padding-top:5px;padding-right:0;padding-bottom:6px;padding-left:0;}
+.fl-theme-uio-mist .fl-widget-content .fl-tabs-enhanced li{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-light-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;padding-top:4px;padding-right:0;padding-bottom:6px;padding-left:16px;}
+.fl-theme-uio-mist .fl-widget-content .fl-tabs-enhanced li a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-light-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;border-right-width:medium;border-right-style:none;border-right-color:-moz-initial!important;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;border-left-width:medium;border-left-style:none;border-left-color:-moz-initial!important;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:4px;padding-right:16px;padding-bottom:6px;padding-left:0;color:#666!important;}
+.fl-theme-uio-mist .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-light-active-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;}
+.fl-theme-uio-mist .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/mist/tabs-light-active-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;color:#000!important;}
+.fl-theme-uio-mist .fl-progress-bounds{border-top-color:#999!important;border-right-color:#999!important;border-bottom-color:#999!important;border-left-color:#999!important;background-color:#fff!important;}
+.fl-theme-uio-mist .fl-progress-fill{color:#4070a1!important;background-color:#000!important;}
+.fl-theme-uio-mist .fl-reorderer-dropMarker{background-color:#f00!important;}
+.fl-theme-uio-mist .fl-inlineEdit-edit{background-color:#dfefff!important;border-top-width:.1em;border-top-style:solid;border-top-color:#5a95cf!important;border-right-width:.1em;border-right-style:solid;border-right-color:#5a95cf!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#5a95cf!important;border-left-width:.1em;border-left-style:solid;border-left-color:#5a95cf!important;margin-top:-0.1em;margin-right:-0.1em;margin-bottom:-0.1em;margin-left:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-rust-uio.css b/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-rust-uio.css
new file mode 100644 (file)
index 0000000..e6fb7da
--- /dev/null
@@ -0,0 +1,30 @@
+.fl-theme-uio-rust .fl-focus:focus,.fl-theme-uio-rust .fl-focus :focus,.fl-theme-uio-rust.fl-focus :focus,.fl-theme-uio-rust .selectable{outline-width:.2em;outline-style:solid;outline-color:#662e0f;}
+.fl-theme-uio-rust{color:#000!important;background-color:#F2E0B6!important;border-top-color:#916535!important;border-right-color:#916535!important;border-bottom-color:#916535!important;border-left-color:#916535!important;}
+.fl-theme-uio-rust .fl-knockout{background-color:transparent!important;background-image:none!important;background-repeat:repeat!important;background-attachment:scroll!important;background-position:top left!important;color:#000!important;}
+.fl-theme-uio-rust a{color:#916535!important;}
+.fl-theme-uio-rust a:hover{color:#914E38!important;}
+.fl-theme-uio-rust h1{color:#000!important;border-bottom-width:1px;border-bottom-style:dotted;}
+.fl-theme-uio-rust h2{color:#453A2E!important;}
+.fl-theme-uio-rust th{border-top-width:.1em;border-top-style:solid;border-top-color:#453A2E!important;border-right-width:.1em;border-right-style:solid;border-right-color:#453A2E!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#453A2E!important;border-left-width:.1em;border-left-style:solid;border-left-color:#453A2E!important;background-color:#917A61!important;color:#fff!important;}
+.fl-theme-uio-rust td{border-top-width:.1em;border-top-style:solid;border-top-color:#453A2E!important;border-right-width:.1em;border-right-style:solid;border-right-color:#453A2E!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#453A2E!important;border-left-width:.1em;border-left-style:solid;border-left-color:#453A2E!important;}
+.fl-theme-uio-rust .fl-inlineEdit-edit{background-color:#dfefff!important;border-top-width:1px;border-top-style:solid;border-top-color:#5a95cf!important;border-right-width:1px;border-right-style:solid;border-right-color:#5a95cf!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#5a95cf!important;border-left-width:1px;border-left-style:solid;border-left-color:#5a95cf!important;margin-top:-1px;margin-right:-1px;margin-bottom:-1px;margin-left:-1px;}
+.fl-theme-uio-rust .fl-wrapper-widget{border-top-width:3px;border-top-style:solid;border-top-color:#dfefff!important;border-right-width:3px;border-right-style:solid;border-right-color:#dfefff!important;border-bottom-width:3px;border-bottom-style:solid;border-bottom-color:#dfefff!important;border-left-width:3px;border-left-style:solid;border-left-color:#dfefff!important;background-color:#333!important;color:#fff!important;}
+.fl-theme-uio-rust .fl-wrapper-callout{border-top-color:#999!important;border-right-color:#999!important;border-bottom-color:#999!important;border-left-color:#999!important;background-color:#dfefff!important;}
+.fl-theme-uio-rust .fl-tabs{border-bottom-color:#916535!important;}
+.fl-theme-uio-rust .fl-tabs li{background-color:#F2E0B6!important;}
+.fl-theme-uio-rust .fl-tabs li,.fl-theme-uio-rust .fl-tabs li a{font-weight:bold;border-top-color:#916535!important;border-right-color:#916535!important;border-bottom-color:#916535!important;border-left-color:#916535!important;border-bottom-color:#916535!important;text-decoration:none;}
+.fl-theme-uio-rust .fl-tabs li:hover,.fl-theme-uio-rust .fl-tabs li:hover a,.fl-theme-uio-rust .fl-tabs li a:hover{background-color:#662e0f!important;color:#fff!important;}
+.fl-theme-uio-rust .fl-tabs li.fl-tabs-active,.fl-theme-uio-rust .fl-tabs li.fl-tabs-active a,.fl-theme-uio-rust .fl-tabs li.fl-tabs-active a:hover,.fl-theme-uio-rust .fl-tabs li.fl-activeTab,.fl-theme-uio-rust .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-rust .fl-tabs li.fl-activeTab a,.fl-theme-uio-rust .fl-tabs li.fl-activeTab a:hover{background-color:#FFFBC2!important;border-bottom-color:#FFFBC2!important;color:#916535!important;}
+.fl-theme-uio-rust .fl-tab-content{background-color:#FFFBC2!important;color:#000!important;border-top-width:1px;border-top-style:solid;border-top-color:#916535!important;border-right-width:1px;border-right-style:solid;border-right-color:#916535!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#916535!important;border-left-width:1px;border-left-style:solid;border-left-color:#916535!important;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;}
+.fl-theme-uio-rust .fl-listmenu{border-top-width:1px;border-top-style:solid;border-top-color:#4070a1!important;border-right-width:1px;border-right-style:solid;border-right-color:#4070a1!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#4070a1!important;border-left-width:1px;border-left-style:solid;border-left-color:#4070a1!important;background-color:#fff!important;}
+.fl-theme-uio-rust .fl-listmenu li,.fl-theme-uio-rust .fl-listmenu li a{font-weight:bold;color:#4070a1!important;background-color:#fff!important;border-top-color:#4070a1!important;border-right-color:#4070a1!important;border-bottom-color:#4070a1!important;border-left-color:#4070a1!important;text-decoration:none;}
+.fl-theme-uio-rust .fl-listmenu a:hover{background-color:#5a95cf!important;color:#fff!important;}
+.fl-theme-uio-rust .fl-listmenu .fl-activemenu,.fl-theme-uio-rust .fl-listmenu .fl-activemenu:hover{background-color:#fff!important;border-bottom-color:#fff!important;color:#508cc9!important;}
+.fl-theme-uio-rust .fl-widget{background-color:#662e0f!important;background-image:url('../../../../framework/fss/css/../images/themes/rust/widget-earmark.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:top left;}
+.fl-theme-uio-rust .fl-widget h2{color:#FFFBC2!important;}
+.fl-theme-uio-rust .grabbable{background-image:url('../../../../framework/fss/css/../images/themes/rust/gripper.png')!important;}
+.fl-theme-uio-rust .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-uio-rust .fl-widget-options li{border-left-width:1px;border-left-style:solid;border-left-color:#cf923e!important;}
+.fl-theme-uio-rust .fl-widget-options a{color:#cf923e!important;}
+.fl-theme-uio-rust .fl-widget-options a.icon:hover{background-color:#cf923e!important;border-top-color:#fffbc2!important;border-right-color:#fffbc2!important;border-bottom-color:#fffbc2!important;border-left-color:#fffbc2!important;}
+.fl-theme-uio-rust .fl-widget-content{background-color:#FFFBC2!important;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-slate-uio.css b/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-slate-uio.css
new file mode 100644 (file)
index 0000000..3214a50
--- /dev/null
@@ -0,0 +1,51 @@
+.fl-theme-uio-slate,.fl-theme-uio-slate.fl-preview-theme{color:#000!important;background-color:#ccc!important;border-top-color:#999!important;border-right-color:#999!important;border-bottom-color:#999!important;border-left-color:#999!important;}
+.fl-theme-uio-slate a{color:#ebebeb!important;font-weight:bold;}
+.fl-theme-uio-slate a:hover{color:#fff!important;}
+.fl-theme-uio-slate h1{color:#999!important;border-bottom-width:.2em;border-bottom-style:solid;}
+.fl-theme-uio-slate h2{color:#fff!important;}
+.fl-theme-uio-slate th{border-top-width:.1em;border-top-style:solid;border-top-color:#fff!important;border-right-width:.1em;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:.1em;border-left-style:solid;border-left-color:#fff!important;background-color:#dfefff!important;}
+.fl-theme-uio-slate td{border-top-width:.1em;border-top-style:solid;border-top-color:#999!important;border-right-width:.1em;border-right-style:solid;border-right-color:#999!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#999!important;border-left-width:.1em;border-left-style:solid;border-left-color:#999!important;}
+.fl-theme-uio-slate .fl-focus:focus,.fl-theme-uio-slate .fl-focus :focus,.fl-theme-uio-slate.fl-focus :focus,.fl-theme-uio-slate .selectable{outline-width:.1em;outline-style:solid;outline-color:#000;}
+.fl-theme-uio-slate .fl-textfield,.fl-theme-uio-slate .fl-textarea{background-color:#ccc!important;border-top-width:1px;border-top-style:solid;border-top-color:#666!important;border-right-width:1px;border-right-style:solid;border-right-color:#666!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#666!important;border-left-width:1px;border-left-style:solid;border-left-color:#666!important;}
+.fl-theme-uio-slate .fl-icon{background-color:#ebebeb!important;}
+.fl-theme-uio-slate .fl-button-left,.fl-theme-uio-slate .fl-button-right{color:#FFF!important;background-color:#999!important;}
+.fl-theme-uio-slate .fl-button-left{background-image:url('../../../../framework/fss/css/../images/themes/slate/buttons-med-cap.png')!important;}
+.fl-theme-uio-slate .fl-button-right{background-image:url('../../../../framework/fss/css/../images/themes/slate/buttons-med-cap.png')!important;}
+.fl-theme-uio-slate .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/slate/buttons-med-bg.png')!important;}
+.fl-theme-uio-slate .fl-tabs{border-bottom-color:#999!important;}
+.fl-theme-uio-slate .fl-tabs li,.fl-theme-uio-slate .fl-tabs li a{font-weight:bold;color:#999!important;border-top-color:#999!important;border-right-color:#999!important;border-bottom-color:#999!important;border-left-color:#999!important;border-bottom-color:#999!important;background-color:#666!important;text-decoration:none;}
+.fl-theme-uio-slate .fl-tabs li a:hover{background-color:#999!important;color:#fff!important;}
+.fl-theme-uio-slate .fl-tabs li.fl-activeTab,.fl-theme-uio-slate .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-slate .fl-tabs li.fl-activeTab a,.fl-theme-uio-slate .fl-tabs li.fl-activeTab a:hover,.fl-theme-uio-slate .fl-tabs li.fl-tabs-active,.fl-theme-uio-slate .fl-tabs li.fl-tabs-active a,.fl-theme-uio-slate .fl-tabs li.fl-tabs-active a:hover{background-color:#ebebeb!important;border-bottom-color:#ccc!important;color:#000!important;}
+.fl-theme-uio-slate .fl-tabs-content{background-color:#ebebeb!important;color:#000!important;border-top-width:1px;border-top-style:solid;border-top-color:#999!important;border-right-width:1px;border-right-style:solid;border-right-color:#999!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#999!important;border-left-width:1px;border-left-style:solid;border-left-color:#999!important;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;}
+.fl-theme-uio-slate .fl-tabs-enhanced{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-light-container-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:left bottom;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;margin-top:10px;margin-right:1px;margin-bottom:0;margin-left:1px;padding-top:5px;padding-right:0;padding-bottom:6px;padding-left:0;}
+.fl-theme-uio-slate .fl-tabs-enhanced li{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-light-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;padding-top:4px;padding-right:0;padding-bottom:6px;padding-left:16px;}
+.fl-theme-uio-slate .fl-tabs-enhanced li a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-light-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;border-right-width:medium;border-right-style:none;border-right-color:-moz-initial!important;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;border-left-width:medium;border-left-style:none;border-left-color:-moz-initial!important;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:4px;padding-right:16px;padding-bottom:6px;padding-left:0;color:#666!important;}
+.fl-theme-uio-slate .fl-tabs-enhanced li.fl-tabs-active{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-light-active-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;}
+.fl-theme-uio-slate .fl-tabs-enhanced li.fl-tabs-active a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-light-active-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;color:#000!important;}
+.fl-theme-uio-slate .fl-listmenu,.fl-theme-uio-slate .fl-list-menu{border-top-width:1px;border-top-style:solid;border-top-color:#999!important;border-right-width:1px;border-right-style:solid;border-right-color:#999!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#999!important;border-left-width:1px;border-left-style:solid;border-left-color:#999!important;border-bottom-width:2px;background-color:#ccc!important;}
+.fl-theme-uio-slate .fl-listmenu li,.fl-theme-uio-slate .fl-list-menu li,.fl-theme-uio-slate .fl-listmenu li a,.fl-theme-uio-slate .fl-list-menu li a{font-weight:bold;background-color:#999!important;border-top-color:#ccc!important;border-right-color:#ccc!important;border-bottom-color:#ccc!important;border-left-color:#ccc!important;text-decoration:none;}
+.fl-theme-uio-slate .fl-listmenu a:hover,.fl-theme-uio-slate .fl-list-menu a:hover{background-color:#ebebeb!important;color:#000!important;}
+.fl-theme-uio-slate .fl-listmenu .fl-activemenu a,.fl-theme-uio-slate .fl-list-menu .fl-activemenu a,.fl-theme-uio-slate .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-slate .fl-list-menu .fl-activemenu a:hover{background-color:#ccc!important;border-bottom-color:#ccc!important;color:#000!important;}
+.fl-theme-uio-slate .fl-grid{border-top-width:2px;border-top-style:solid;border-top-color:#999!important;border-right-width:2px;border-right-style:solid;border-right-color:#999!important;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:#999!important;border-left-width:2px;border-left-style:solid;border-left-color:#999!important;background-color:#ccc!important;}
+.fl-theme-uio-slate .fl-grid li{background-color:#999!important;border-top-width:1px;border-top-style:solid;border-top-color:#999!important;border-right-width:1px;border-right-style:solid;border-right-color:#999!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#999!important;border-left-width:1px;border-left-style:solid;border-left-color:#999!important;}
+.fl-theme-uio-slate .fl-grid .fl-grid-caption{background-color:#666!important;color:#fff!important;}
+.fl-theme-uio-slate .fl-widget{background-color:#ccc!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/widget-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:top left;border-top-width:1px;border-top-style:solid;border-top-color:#666!important;border-right-width:1px;border-right-style:solid;border-right-color:#666!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#666!important;border-left-width:1px;border-left-style:solid;border-left-color:#666!important;}
+.fl-theme-uio-slate .fl-widget h2{color:#ccc!important;}
+.fl-theme-uio-slate .fl-widget .fl-icon-more{background-image:url('../../../../framework/fss/css/../images/themes/slate/icon-widget-More.png')!important;margin-left:0;}
+.fl-theme-uio-slate .fl-widget .fl-icon-close{background-image:url('../../../../framework/fss/css/../images/themes/slate/icon-widget-Close.png')!important;margin-right:0;}
+.fl-theme-uio-slate .fl-grabbable .fl-widget-titlebar{background-image:url('../../../../framework/fss/css/../images/themes/slate/icon-widget-gripper.png')!important;}
+.fl-theme-uio-slate .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-uio-slate .fl-widget-titlebar .fl-button-right,.fl-theme-uio-slate .fl-widget-titlebar .fl-button-left{color:#333!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/buttons-titlebar-cap.png')!important;text-decoration:none;}
+.fl-theme-uio-slate .fl-widget-titlebar .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/slate/buttons-titlebar-bg.png')!important;padding-bottom:.3em;padding-top:0;}
+.fl-theme-uio-slate .fl-widget-options li{border-left-width:1px;border-left-style:solid;border-left-color:#ccc!important;}
+.fl-theme-uio-slate .fl-widget-options a.icon:hover{background-color:#fff!important;border-top-color:#000!important;border-right-color:#000!important;border-bottom-color:#000!important;border-left-color:#000!important;}
+.fl-theme-uio-slate .fl-widget-content{background-color:#bfbfbf!important;}
+.fl-theme-uio-slate .fl-widget-content .fl-tabs-enhanced{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-med-container-bg.png')!important;background-repeat:repeat-x;background-attachment:scroll;background-position:left bottom;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;margin-top:10px;margin-right:1px;margin-bottom:0;margin-left:1px;padding-top:5px;padding-right:0;padding-bottom:6px;padding-left:0;}
+.fl-theme-uio-slate .fl-widget-content .fl-tabs-enhanced li{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-med-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;padding-top:4px;padding-right:0;padding-bottom:6px;padding-left:16px;}
+.fl-theme-uio-slate .fl-widget-content .fl-tabs-enhanced li a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-med-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;border-right-width:medium;border-right-style:none;border-right-color:-moz-initial!important;border-bottom-width:medium;border-bottom-style:none;border-bottom-color:-moz-initial!important;border-left-width:medium;border-left-style:none;border-left-color:-moz-initial!important;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:4px;padding-right:16px;padding-bottom:6px;padding-left:0;color:#666!important;}
+.fl-theme-uio-slate .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-med-active-cap.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:left top;}
+.fl-theme-uio-slate .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active a{background-color:transparent!important;background-image:url('../../../../framework/fss/css/../images/themes/slate/tabs-med-active-bg.png')!important;background-repeat:no-repeat;background-attachment:scroll;background-position:right top;color:#000!important;}
+.fl-theme-uio-slate .fl-progress-bounds{border-top-color:#999!important;border-right-color:#999!important;border-bottom-color:#999!important;border-left-color:#999!important;background-color:#ccc!important;}
+.fl-theme-uio-slate .fl-progress-fill{color:#999!important;background-color:#000!important;}
+.fl-theme-uio-slate .fl-reorderer-dropMarker{background-color:#f00!important;}
+.fl-theme-uio-slate .fl-inlineEdit-edit{background-color:#dfefff!important;border-top-width:.1em;border-top-style:solid;border-top-color:#fff!important;border-right-width:.1em;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:.1em;border-left-style:solid;border-left-color:#fff!important;margin-top:-0.1em;margin-right:-0.1em;margin-bottom:-0.1em;margin-left:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-wb-uio.css b/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-wb-uio.css
new file mode 100644 (file)
index 0000000..6509e5d
--- /dev/null
@@ -0,0 +1,41 @@
+.fl-theme-uio-wb,.fl-theme-uio-wb *,.fl-preview-theme.fl-theme-uio-wb,.fl-theme-uio-bw.fl-inverted-color,.fl-theme-uio-bw .fl-inverted-color,.fl-theme-uio-bw.fl-inverted-color *,.fl-theme-uio-bw .fl-inverted-color *,.fl-preview-theme.fl-theme-uio-bw.fl-inverted-color{color:#fff!important;background-color:#000!important;border-top-color:#fff!important;border-right-color:#fff!important;border-bottom-color:#fff!important;border-left-color:#fff!important;}
+.fl-theme-uio-wb div,.fl-theme-uio-wb input,.fl-theme-uio-bw .fl-inverted-color div,.fl-theme-uio-bw .fl-inverted-color input{color:#fff!important;background-color:#000!important;border-top-color:#fff!important;border-right-color:#fff!important;border-bottom-color:#fff!important;border-left-color:#fff!important;}
+.fl-theme-uio-wb iframe,.fl-theme-uio-bw .fl-inverted-color iframe{border-top-color:#fff!important;border-right-color:#fff!important;border-bottom-color:#fff!important;border-left-color:#fff!important;}
+.fl-theme-uio-wb a,.fl-theme-uio-bw .fl-inverted-color a{color:#fff!important;font-weight:bold;background-color:#000!important;}
+.fl-theme-uio-wb h1,.fl-theme-uio-wb h2,.fl-theme-uio-wb h3,.fl-theme-uio-wb h4,.fl-theme-uio-wb h5,.fl-theme-uio-wb h6,.fl-theme-uio-bw .fl-inverted-color h1,.fl-theme-uio-bw .fl-inverted-color h2,.fl-theme-uio-bw .fl-inverted-color h3,.fl-theme-uio-bw .fl-inverted-color h4,.fl-theme-uio-bw .fl-inverted-color h5,.fl-theme-uio-bw .fl-inverted-color h6{color:#fff!important;background-color:#000!important;border-top-color:#fff!important;border-right-color:#fff!important;border-bottom-color:#fff!important;border-left-color:#fff!important;}
+.fl-theme-uio-wb th,.fl-theme-uio-bw .fl-inverted-color th{border-top-width:.1em;border-top-style:solid;border-top-color:#fff!important;border-right-width:.1em;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:.1em;border-left-style:solid;border-left-color:#fff!important;background-color:#fff!important;color:#000!important;}
+.fl-theme-uio-wb td,.fl-theme-uio-bw .fl-inverted-color td{border-top-width:.1em;border-top-style:solid;border-top-color:#fff!important;border-right-width:.1em;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:.1em;border-left-style:solid;border-left-color:#fff!important;}
+.fl-theme-uio-wb .fl-focus:focus,.fl-theme-uio-wb .fl-focus :focus,.fl-theme-uio-wb.fl-focus :focus,.fl-theme-uio-wb .selectable,.fl-theme-uio-bw .fl-inverted-color .fl-focus:focus,.fl-theme-uio-bw .fl-inverted-color .fl-focus :focus,.fl-theme-uio-bw.fl-inverted-color.fl-focus :focus,.fl-theme-uio-bw .fl-inverted-color .selectable{outline-width:.2em;outline-style:solid;outline-color:#F00;}
+.fl-theme-uio-wb .fl-knockout,.fl-theme-uio-bw .fl-inverted-color .fl-knockout{background-color:transparent!important;background-image:none!important;background-repeat:repeat!important;background-attachment:scroll!important;background-position:top left!important;color:#fff!important;}
+.fl-theme-uio-wb .fl-icon,.fl-theme-uio-bw .fl-inverted-color .fl-icon{background-color:#000!important;}
+.fl-theme-uio-wb .fl-tabs,.fl-theme-uio-bw .fl-inverted-color .fl-tabs{border-bottom-color:#fff!important;}
+.fl-theme-uio-wb .fl-tabs li,.fl-theme-uio-wb .fl-tabs li *,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li *{border-top-color:#fff!important;border-right-color:#fff!important;border-bottom-color:#fff!important;border-left-color:#fff!important;border-bottom-color:#fff!important;}
+.fl-theme-uio-wb .fl-tabs li,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li{background-color:#fff!important;}
+.fl-theme-uio-wb .fl-tabs li *,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li *{color:#000!important;font-weight:bold;background-color:#fff!important;text-decoration:none;}
+.fl-theme-uio-wb .fl-tabs li:hover,.fl-theme-uio-wb .fl-tabs li:hover *,.fl-theme-uio-wb .fl-tabs li a:hover,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li:hover,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li:hover *,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li a:hover{color:#fff!important;background-color:#000!important;}
+.fl-theme-uio-wb .fl-tabs li.fl-tabs-active,.fl-theme-uio-wb .fl-tabs li.fl-tabs-active a,.fl-theme-uio-wb .fl-tabs li.fl-tabs-active a:hover,.fl-theme-uio-wb .fl-tabs li.fl-activeTab,.fl-theme-uio-wb .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-wb .fl-tabs li.fl-activeTab a,.fl-theme-uio-wb .fl-tabs li.fl-activeTab a:hover,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li.fl-tabs-active,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li.fl-tabs-active a,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li.fl-tabs-active a:hover,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li.fl-activeTab,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li.fl-activeTab a,.fl-theme-uio-bw .fl-inverted-color .fl-tabs li.fl-activeTabe a:hover{background-color:#000!important;border-bottom-color:#000!important;color:#fff!important;}
+.fl-theme-uio-wb .fl-tab-content,.fl-theme-uio-bw .fl-inverted-color .fl-tab-content{background-color:#000!important;border-top-width:1px;border-top-style:solid;border-top-color:#fff!important;border-right-width:1px;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:1px;border-left-style:solid;border-left-color:#fff!important;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;color:#fff!important;}
+.fl-theme-uio-wb .fl-listmenu,.fl-theme-uio-wb .fl-list-menu,.fl-theme-uio-bw .fl-inverted-color .fl-listmenu,.fl-theme-uio-bw .fl-inverted-color .fl-list-menu{border-top-width:1px;border-top-style:solid;border-top-color:#fff!important;border-right-width:1px;border-right-style:solid;border-right-color:#fff!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#fff!important;border-left-width:1px;border-left-style:solid;border-left-color:#fff!important;border-bottom-width:2px;background-color:#000!important;}
+.fl-theme-uio-wb .fl-listmenu li,.fl-theme-uio-wb .fl-list-menu li,.fl-theme-uio-wb .fl-listmenu li a,.fl-theme-uio-wb .fl-list-menu li a,.fl-theme-uio-bw .fl-inverted-color .fl-listmenu li,.fl-theme-uio-bw .fl-inverted-color .fl-list-menu li,.fl-theme-uio-bw .fl-inverted-color .fl-listmenu li a,.fl-theme-uio-bw .fl-inverted-color .fl-list-menu li a{font-weight:bold;color:#fff!important;background-color:#000!important;border-top-color:#fff!important;border-right-color:#fff!important;border-bottom-color:#fff!important;border-left-color:#fff!important;text-decoration:none;}
+.fl-theme-uio-wb .fl-listmenu a:hover,.fl-theme-uio-wb .fl-list-menu a:hover,.fl-theme-uio-bw .fl-inverted-color .fl-listmenu a:hover,.fl-theme-uio-bw .fl-inverted-color .fl-list-menu a:hover{background-color:#fff!important;color:#000!important;}
+.fl-theme-uio-wb .fl-listmenu .fl-activemenu a,.fl-theme-uio-wb .fl-list-menu .fl-activemenu a,.fl-theme-uio-wb .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-wb .fl-list-menu .fl-activemenu a:hover,.fl-theme-uio-bw .fl-inverted-color .fl-listmenu .fl-activemenu a,.fl-theme-uio-bw .fl-inverted-color .fl-list-menu .fl-activemenu a,.fl-theme-uio-bw .fl-inverted-color .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-bw .fl-inverted-color .fl-list-menu .fl-activemenu a:hover{background-color:#fff!important;border-bottom-color:#000!important;color:#000!important;}
+.fl-theme-uio-wb .fl-button-left,.fl-theme-uio-wb .fl-button-right,.fl-theme-uio-bw .fl-inverted-color .fl-button-left,.fl-theme-uio-bw .fl-inverted-color .fl-button-right{color:#fff!important;background-color:#000!important;}
+.fl-theme-uio-wb .fl-button-left,.fl-theme-uio-wb .fl-button-right,.fl-theme-uio-bw .fl-inverted-color .fl-button-left,.fl-theme-uio-bw .fl-inverted-color .fl-button-right{background-image:url('../../../../framework/fss/css/../images/themes/wb/buttons-med-cap.png')!important;}
+.fl-theme-uio-wb .fl-button-inner,.fl-theme-uio-bw .fl-inverted-color .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/wb/buttons-med-bg.png')!important;}
+.fl-theme-uio-wb .fl-widget,.fl-theme-uio-bw .fl-inverted-color .fl-widget{background-color:#fff!important;border-top-width:1px;border-top-style:solid;border-top-color:#000!important;border-right-width:1px;border-right-style:solid;border-right-color:#000!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:1px;border-left-style:solid;border-left-color:#000!important;}
+.fl-theme-uio-wb .fl-widget a,.fl-theme-uio-bw .fl-inverted-color .fl-widget a{color:#fff!important;}
+.fl-theme-uio-wb .fl-widget .fl-icon-more,.fl-theme-uio-bw .fl-inverted-color .fl-widget .fl-icon-more{background-image:url('../../../../framework/fss/css/../images/themes/wb/icon-widget-More.png')!important;margin-left:0;}
+.fl-theme-uio-wb .fl-widget .fl-icon-close,.fl-theme-uio-bw .fl-inverted-color .fl-widget .fl-icon-close{background-image:url('../../../../framework/fss/css/../images/themes/wb/icon-widget-Close.png')!important;margin-right:0;}
+.fl-theme-uio-wb .fl-widget .fl-widget-titlebar,.fl-theme-uio-bw .fl-inverted-color .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-uio-wb .fl-grabbable .fl-widget-titlebar,.fl-theme-uio-bw .fl-inverted-color .fl-grabbable .fl-widget-titlebar{background-image:url('../../../../framework/fss/css/../images/themes/wb/icon-widget-gripper.png')!important;}
+.fl-theme-uio-wb .fl-grabbable .fl-widget-titlebar h2,.fl-theme-uio-bw .fl-inverted-color .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-uio-wb .fl-widget-titlebar .icon,.fl-theme-uio-bw .fl-inverted-color .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-uio-wb .fl-widget-titlebar .fl-button-right,.fl-theme-uio-wb .fl-widget-titlebar .fl-button-left,.fl-theme-uio-bw .fl-inverted-color .fl-widget-titlebar .fl-button-right,.fl-theme-uio-bw .fl-inverted-color .fl-widget-titlebar .fl-button-left{color:#fff!important;background-image:url('../../../../framework/fss/css/../images/themes/wb/buttons-titlebar-cap.png')!important;text-decoration:none;}
+.fl-theme-uio-wb .fl-widget-titlebar .fl-button-inner,.fl-theme-uio-bw .fl-inverted-color .fl-widget-titlebar .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/wb/buttons-titlebar-bg.png')!important;}
+.fl-theme-uio-wb .fl-widget .fl-widget-options,.fl-theme-uio-bw .fl-inverted-color .fl-widget .fl-widget-options{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;}
+.fl-theme-uio-wb .fl-widget .fl-widget-options li,.fl-theme-uio-bw .fl-inverted-color .fl-widget .fl-widget-options li{border-left-width:1px;border-left-style:solid;border-left-color:#000!important;}
+.fl-theme-uio-wb .fl-widget .fl-widget-content,.fl-theme-uio-bw .fl-inverted-color .fl-widget .fl-widget-content{background-color:#000!important;}
+.fl-theme-uio-wb .fl-progress-bounds,.fl-theme-uio-bw .fl-inverted-color .fl-progress-bounds{border-top-color:#fff!important;border-right-color:#fff!important;border-bottom-color:#fff!important;border-left-color:#fff!important;background-color:#000!important;}
+.fl-theme-uio-wb .fl-progress-fill,.fl-theme-uio-bw .fl-inverted-color .fl-progress-fill{color:#000!important;background-color:#fff!important;}
+.fl-theme-uio-wb .fl-reorderer-dropMarker,.fl-theme-uio-bw .fl-inverted-color .fl-reorderer-dropMarker{background-color:#f00!important;}
+.fl-theme-uio-wb .fl-inlineEdit-edit,.fl-theme-uio-bw .fl-inverted-color .fl-inlineEdit-edit{background-color:#fff!important;color:#000!important;border-top-width:.1em;border-top-style:solid;border-top-color:#000!important;border-right-width:.1em;border-right-style:solid;border-right-color:#000!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:.1em;border-left-style:solid;border-left-color:#000!important;padding-top:.1em;padding-right:.1em;padding-bottom:.1em;padding-left:.1em;margin-top:-0.1em;margin-right:-0.1em;margin-bottom:-0.1em;margin-left:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-yb-uio.css b/docs/jscripts/infusion/components/uiOptions/css/fss/fss-theme-yb-uio.css
new file mode 100644 (file)
index 0000000..264f7c1
--- /dev/null
@@ -0,0 +1,41 @@
+.fl-theme-uio-yb,.fl-theme-uio-yb *,.fl-preview-theme.fl-theme-uio-yb,.fl-theme-uio-by.fl-inverted-color,.fl-theme-uio-by .fl-inverted-color,.fl-theme-uio-by.fl-inverted-color *,.fl-theme-uio-by .fl-inverted-color *,.fl-preview-theme.fl-theme-uio-by.fl-inverted-color{color:#ff0!important;background-color:#000!important;border-top-color:#ff0!important;border-right-color:#ff0!important;border-bottom-color:#ff0!important;border-left-color:#ff0!important;}
+.fl-theme-uio-yb div,.fl-theme-uio-yb input,.fl-theme-uio-by .fl-inverted-color div,.fl-theme-uio-by .fl-inverted-color input{color:#ff0!important;background-color:#000!important;border-top-color:#ff0!important;border-right-color:#ff0!important;border-bottom-color:#ff0!important;border-left-color:#ff0!important;}
+.fl-theme-uio-yb iframe,.fl-theme-uio-by .fl-inverted-color iframe{border-top-color:#ff0!important;border-right-color:#ff0!important;border-bottom-color:#ff0!important;border-left-color:#ff0!important;}
+.fl-theme-uio-yb a,.fl-theme-uio-by .fl-inverted-color a{color:#ff0!important;font-weight:bold;background-color:#000!important;}
+.fl-theme-uio-yb h1,.fl-theme-uio-yb h2,.fl-theme-uio-yb h3,.fl-theme-uio-yb h4,.fl-theme-uio-yb h5,.fl-theme-uio-yb h6,.fl-theme-uio-by .fl-inverted-color h1,.fl-theme-uio-by .fl-inverted-color h2,.fl-theme-uio-by .fl-inverted-color h3,.fl-theme-uio-by .fl-inverted-color h4,.fl-theme-uio-by .fl-inverted-color h5,.fl-theme-uio-by .fl-inverted-color h6{color:#ff0!important;background-color:#000!important;border-top-color:#ff0!important;border-right-color:#ff0!important;border-bottom-color:#ff0!important;border-left-color:#ff0!important;}
+.fl-theme-uio-yb th,.fl-theme-uio-by .fl-inverted-color th{border-top-width:.1em;border-top-style:solid;border-top-color:#ff0!important;border-right-width:.1em;border-right-style:solid;border-right-color:#ff0!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#ff0!important;border-left-width:.1em;border-left-style:solid;border-left-color:#ff0!important;background-color:#ff0!important;color:#000!important;}
+.fl-theme-uio-yb td,.fl-theme-uio-by .fl-inverted-color td{border-top-width:.1em;border-top-style:solid;border-top-color:#ff0!important;border-right-width:.1em;border-right-style:solid;border-right-color:#ff0!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#ff0!important;border-left-width:.1em;border-left-style:solid;border-left-color:#ff0!important;}
+.fl-theme-uio-yb .fl-focus:focus,.fl-theme-uio-yb .fl-focus :focus,.fl-theme-uio-yb.fl-focus :focus,.fl-theme-uio-yb .selectable,.fl-theme-uio-by .fl-inverted-color .fl-focus:focus,.fl-theme-uio-by .fl-inverted-color .fl-focus :focus,.fl-theme-uio-by.fl-inverted-color.fl-focus :focus,.fl-theme-uio-by .fl-inverted-color .selectable{outline-width:.2em;outline-style:solid;outline-color:#F00;}
+.fl-theme-uio-yb .fl-knockout,.fl-theme-uio-by .fl-inverted-color .fl-knockout{background-color:transparent!important;background-image:none!important;background-repeat:repeat!important;background-attachment:scroll!important;background-position:top left!important;color:#ff0!important;}
+.fl-theme-uio-yb .fl-icon,.fl-theme-uio-by .fl-inverted-color .fl-icon{background-color:#000!important;}
+.fl-theme-uio-yb .fl-tabs,.fl-theme-uio-by .fl-inverted-color .fl-tabs{border-bottom-color:#ff0!important;}
+.fl-theme-uio-yb .fl-tabs li,.fl-theme-uio-yb .fl-tabs li *,.fl-theme-uio-by .fl-inverted-color .fl-tabs li,.fl-theme-uio-by .fl-inverted-color .fl-tabs li *{border-top-color:#ff0!important;border-right-color:#ff0!important;border-bottom-color:#ff0!important;border-left-color:#ff0!important;border-bottom-color:#ff0!important;}
+.fl-theme-uio-yb .fl-tabs li,.fl-theme-uio-by .fl-inverted-color .fl-tabs li{background-color:#ff0!important;}
+.fl-theme-uio-yb .fl-tabs li *,.fl-theme-uio-by .fl-inverted-color .fl-tabs li *{color:#000!important;font-weight:bold;background-color:#ff0!important;text-decoration:none;}
+.fl-theme-uio-yb .fl-tabs li:hover,.fl-theme-uio-yb .fl-tabs li:hover *,.fl-theme-uio-yb .fl-tabs li a:hover,.fl-theme-uio-by .fl-inverted-color .fl-tabs li:hover,.fl-theme-uio-by .fl-inverted-color .fl-tabs li:hover *,.fl-theme-uio-by .fl-inverted-color .fl-tabs li a:hover{color:#ff0!important;background-color:#000!important;}
+.fl-theme-uio-yb .fl-tabs li.fl-tabs-active,.fl-theme-uio-yb .fl-tabs li.fl-tabs-active a,.fl-theme-uio-yb .fl-tabs li.fl-tabs-active a:hover,.fl-theme-uio-yb .fl-tabs li.fl-activeTab,.fl-theme-uio-yb .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-yb .fl-tabs li.fl-activeTab a,.fl-theme-uio-yb .fl-tabs li.fl-activeTab a:hover,.fl-theme-uio-by .fl-inverted-color .fl-tabs li.fl-tabs-active,.fl-theme-uio-by .fl-inverted-color .fl-tabs li.fl-tabs-active a,.fl-theme-uio-by .fl-inverted-color .fl-tabs li.fl-tabs-active a:hover,.fl-theme-uio-by .fl-inverted-color .fl-tabs li.fl-activeTab,.fl-theme-uio-by .fl-inverted-color .fl-tabs li.fl-activeTab:hover,.fl-theme-uio-by .fl-inverted-color .fl-tabs li.fl-activeTab a,.fl-theme-uio-by .fl-inverted-color .fl-tabs li.fl-activeTab a:hover{background-color:#000!important;border-bottom-color:#000!important;color:#ff0!important;}
+.fl-theme-uio-yb .fl-tab-content,.fl-theme-uio-by .fl-inverted-color .fl-tab-content{background-color:#000!important;border-top-width:1px;border-top-style:solid;border-top-color:#ff0!important;border-right-width:1px;border-right-style:solid;border-right-color:#ff0!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ff0!important;border-left-width:1px;border-left-style:solid;border-left-color:#ff0!important;border-top-width:medium;border-top-style:none;border-top-color:-moz-initial!important;color:#ff0!important;}
+.fl-theme-uio-yb .fl-listmenu,.fl-theme-uio-yb .fl-list-menu,.fl-theme-uio-by .fl-inverted-color .fl-listmenu,.fl-theme-uio-by .fl-inverted-color .fl-list-menu{border-top-width:1px;border-top-style:solid;border-top-color:#ff0!important;border-right-width:1px;border-right-style:solid;border-right-color:#ff0!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ff0!important;border-left-width:1px;border-left-style:solid;border-left-color:#ff0!important;border-bottom-width:2px;background-color:#000!important;}
+.fl-theme-uio-yb .fl-listmenu li,.fl-theme-uio-yb .fl-list-menu li,.fl-theme-uio-yb .fl-listmenu li a,.fl-theme-uio-yb .fl-list-menu li a,.fl-theme-uio-by .fl-inverted-color .fl-listmenu li,.fl-theme-uio-by .fl-inverted-color .fl-list-menu li,.fl-theme-uio-by .fl-inverted-color .fl-listmenu li a,.fl-theme-uio-by .fl-inverted-color .fl-list-menu li a{font-weight:bold;color:#ff0!important;background-color:#000!important;border-top-color:#ff0!important;border-right-color:#ff0!important;border-bottom-color:#ff0!important;border-left-color:#ff0!important;text-decoration:none;}
+.fl-theme-uio-yb .fl-listmenu a:hover,.fl-theme-uio-yb .fl-list-menu a:hover,.fl-theme-uio-by .fl-inverted-color .fl-listmenu a:hover,.fl-theme-uio-by .fl-inverted-color .fl-list-menu a:hover{background-color:#ff0!important;color:#000!important;}
+.fl-theme-uio-yb .fl-listmenu .fl-activemenu a,.fl-theme-uio-yb .fl-list-menu .fl-activemenu a,.fl-theme-uio-yb .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-yb .fl-list-menu .fl-activemenu a:hover,.fl-theme-uio-by .fl-inverted-color .fl-listmenu .fl-activemenu a,.fl-theme-uio-by .fl-inverted-color .fl-list-menu .fl-activemenu a,.fl-theme-uio-by .fl-inverted-color .fl-listmenu .fl-activemenu a:hover,.fl-theme-uio-by .fl-inverted-color .fl-list-menu .fl-activemenu a:hover{background-color:#ff0!important;border-bottom-color:#000!important;color:#000!important;}
+.fl-theme-uio-yb .fl-button-left,.fl-theme-uio-yb .fl-button-right,.fl-theme-uio-by .fl-inverted-color .fl-button-left,.fl-theme-uio-by .fl-inverted-color .fl-button-right{background-image:url('../../../../framework/fss/css/../images/themes/yb/buttons-med-cap.png')!important;}
+.fl-theme-uio-yb .fl-button-inner,.fl-theme-uio-by .fl-inverted-color .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/yb/buttons-med-bg.png')!important;}
+.fl-theme-uio-yb .fl-widget,.fl-theme-uio-by .fl-inverted-color .fl-widget{background-color:#ff0!important;border-top-width:1px;border-top-style:solid;border-top-color:#000!important;border-right-width:1px;border-right-style:solid;border-right-color:#000!important;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:1px;border-left-style:solid;border-left-color:#000!important;}
+.fl-theme-uio-yb .fl-widget h2,.fl-theme-uio-by .fl-inverted-color .fl-widget h2{color:#ff0!important;background-color:#000!important;}
+.fl-theme-uio-yb .fl-widget a,.fl-theme-uio-by .fl-inverted-color .fl-widget a{color:#ff0!important;}
+.fl-theme-uio-yb .fl-widget .fl-icon-more,.fl-theme-uio-by .fl-inverted-color .fl-widget .fl-icon-more{background-image:url('../../../../framework/fss/css/../images/themes/yb/icon-widget-More.png')!important;margin-left:0;}
+.fl-theme-uio-yb .fl-widget .fl-icon-close,.fl-theme-uio-by .fl-inverted-color .fl-widget .fl-icon-close{background-image:url('../../../../framework/fss/css/../images/themes/yb/icon-widget-Close.png')!important;margin-right:0;}
+.fl-theme-uio-yb .fl-widget .fl-widget-titlebar,.fl-theme-uio-by .fl-inverted-color .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-uio-yb .fl-grabbable .fl-widget-titlebar,.fl-theme-uio-by .fl-inverted-color .fl-grabbable .fl-widget-titlebar{background-image:url('../../../../framework/fss/css/../images/themes/yb/icon-widget-gripper.png')!important;}
+.fl-theme-uio-yb .fl-grabbable .fl-widget-titlebar h2,.fl-theme-uio-by .fl-inverted-color .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-uio-yb .fl-widget-titlebar .icon,.fl-theme-uio-by .fl-inverted-color .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-uio-yb .fl-widget-titlebar .fl-button-right,.fl-theme-uio-yb .fl-widget-titlebar .fl-button-left,.fl-theme-uio-by .fl-inverted-color .fl-widget-titlebar .fl-button-right,.fl-theme-uio-by .fl-inverted-color .fl-widget-titlebar .fl-button-left{color:#ff0!important;background-image:url('../../../../framework/fss/css/../images/themes/yb/buttons-titlebar-cap.png')!important;text-decoration:none;}
+.fl-theme-uio-yb .fl-widget-titlebar .fl-button-inner,.fl-theme-uio-by .fl-inverted-color .fl-widget-titlebar .fl-button-inner{background-image:url('../../../../framework/fss/css/../images/themes/yb/buttons-titlebar-bg.png')!important;}
+.fl-theme-uio-yb .fl-widget .fl-widget-options,.fl-theme-uio-by .fl-inverted-color .fl-widget .fl-widget-options{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;}
+.fl-theme-uio-yb .fl-widget .fl-widget-options li,.fl-theme-uio-by .fl-inverted-color .fl-widget .fl-widget0options li{border-left-width:1px;border-left-style:solid;border-left-color:#000!important;}
+.fl-theme-uio-yb .fl-widget .fl-widget-content,.fl-theme-uio-by .fl-inverted-color .fl-widget .fl-widget-content{background-color:#000!important;}
+.fl-theme-uio-yb .fl-progress-bounds,.fl-theme-uio-by .fl-inverted-color .fl-progress-bounds{border-top-color:#ff0!important;border-right-color:#ff0!important;border-bottom-color:#ff0!important;border-left-color:#ff0!important;background-color:#000!important;}
+.fl-theme-uio-yb .fl-progress-fill,.fl-theme-uio-by .fl-inverted-color .fl-progress-fill{color:#000!important;background-color:#ff0!important;}
+.fl-theme-uio-yb .fl-reorderer-dropMarker,.fl-theme-uio-by .fl-inverted-color .fl-reorderer-dropMarker{background-color:#f00!important;}
+.fl-theme-uio-yb .fl-inlineEdit-edit,.fl-theme-uio-by .fl-inverted-color .fl-inlineEdit-edit{background-color:#ff0!important;color:#000!important;border-top-width:.1em;border-top-style:solid;border-top-color:#000!important;border-right-width:.1em;border-right-style:solid;border-right-color:#000!important;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:#000!important;border-left-width:.1em;border-left-style:solid;border-left-color:#000!important;padding-top:.1em;padding-right:.1em;padding-bottom:.1em;padding-left:.1em;margin-top:-0.1em;margin-right:-0.1em;margin-bottom:-0.1em;margin-left:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/html/FatPanelUIOptions.html b/docs/jscripts/infusion/components/uiOptions/html/FatPanelUIOptions.html
new file mode 100644 (file)
index 0000000..3143251
--- /dev/null
@@ -0,0 +1,17 @@
+<form id="options" action="" class="flc-uiOptions-fatPanel-tabs fl-uiOptions fl-uiOptions-fatPanel">    
+    <div class="flc-uiOptions-controls">    
+        <div class="fl-force-right fl-inverted-color">
+            <a id="reset" class="flc-uiOptions-reset fl-uiOptions-reset" href="#">Reset All</a>
+        </div>
+        <ul class="fl-tabs fl-tabs-left fl-clearfix fl-inverted-color">
+            <li><a href="#tab1" class="fl-tab-text">Text and display</a></li>
+            <li><a href="#tab2" class="fl-tab-layout">Layout and navigation</a></li>            
+            <li><a href="#tab3" class="fl-tab-links">Links and buttons</a></li>
+        </ul>
+        
+        <div id="tab1" class="flc-uiOptions-text-controls fl-uiOptions-text"></div> 
+        <div id="tab2" class="flc-uiOptions-layout-controls fl-uiOptions-layout"></div>   
+        <div id="tab3" class="flc-uiOptions-links-controls fl-uiOptions-links"></div>            
+    </div>    
+    
+</form>                
diff --git a/docs/jscripts/infusion/components/uiOptions/html/FatPanelUIOptionsFrame.html b/docs/jscripts/infusion/components/uiOptions/html/FatPanelUIOptionsFrame.html
new file mode 100644 (file)
index 0000000..8b094f0
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:rsf="http://ponder.org.uk/rsf">
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+        <link rel="stylesheet" type="text/css" href="../../../framework/fss/css/fss-reset-global.css" />
+        <link rel="stylesheet" type="text/css" href="../../../framework/fss/css/fss-base-global.css" />
+        <link rel="stylesheet" type="text/css" href="../../../framework/fss/css/fss-layout.css" />
+        <link rel="stylesheet" type="text/css" href="../../../framework/fss/css/fss-text.css" />
+        <link rel="stylesheet" type="text/css" href="../css/fss/fss-theme-bw-uio.css" />
+        <link rel="stylesheet" type="text/css" href="../css/fss/fss-theme-wb-uio.css" />
+        <link rel="stylesheet" type="text/css" href="../css/fss/fss-theme-by-uio.css" />
+        <link rel="stylesheet" type="text/css" href="../css/fss/fss-theme-yb-uio.css" />
+        <link rel="stylesheet" type="text/css" href="../css/fss/fss-text-uio.css" />
+        
+        <link rel="stylesheet" type="text/css" href="../../../lib/jquery/ui/css/fl-theme-bw/bw.css" />
+        <link rel="stylesheet" type="text/css" href="../../../lib/jquery/ui/css/fl-theme-wb/wb.css" />    
+        <link rel="stylesheet" type="text/css" href="../../../lib/jquery/ui/css/fl-theme-by/by.css" />
+        <link rel="stylesheet" type="text/css" href="../../../lib/jquery/ui/css/fl-theme-yb/yb.css" />
+
+        <link rel="stylesheet" type="text/css" href="../css/UIOptions.css" />
+        <link rel="stylesheet" type="text/css" href="../css/FatPanelUIOptionsFrame.css" />
+
+        <title>UI Options</title>
+        <script type="text/javascript" src="../../../lib/jquery/core/js/jquery.js"></script>
+        <script type="text/javascript" src="../../../lib/jquery/ui/js/jquery.ui.core.js"></script>
+        <script type="text/javascript" src="../../../lib/jquery/ui/js/jquery.ui.widget.js"></script>
+        <script type="text/javascript" src="../../../lib/jquery/ui/js/jquery.ui.mouse.js"></script>
+        <script type="text/javascript" src="../../../lib/jquery/ui/js/jquery.ui.slider.js"></script>        
+        <script type="text/javascript" src="../../../lib/jquery/ui/js/jquery.ui.tabs.js"></script>  
+        <script type="text/javascript" src="../../../lib/jquery/plugins/ariaTabs/js/ui.ariaTabs.js"></script>          
+        <script type="text/javascript" src="../../../lib/json/js/json2.js"></script>
+
+        <script type="text/javascript" src="../../../framework/core/js/FluidDocument.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/jquery.keyboard-a11y.js"></script>        
+        <script type="text/javascript" src="../../../framework/core/js/Fluid.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/FluidRequests.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/FluidDOMUtilities.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/DataBinding.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/FluidIoC.js"></script>
+        <script type="text/javascript" src="../../../lib/fastXmlPull/js/fastXmlPull.js"></script>
+        <script type="text/javascript" src="../../../framework/renderer/js/fluidParser.js"></script>
+        <script type="text/javascript" src="../../../framework/renderer/js/fluidRenderer.js"></script>
+        <script type="text/javascript" src="../../../framework/renderer/js/RendererUtilities.js"></script>
+        <script type="text/javascript" src="../../tabs/js/Tabs.js"></script>
+
+        <script type="text/javascript" src="../js/Store.js"></script>
+        <script type="text/javascript" src="../js/UIEnhancer.js"></script>
+        <script type="text/javascript" src="../js/UIOptions.js"></script>
+        <script type="text/javascript" src="../js/SlidingPanel.js"></script>
+        <script type="text/javascript" src="../js/FatPanelUIOptions.js"></script>
+
+        <script type="text/javascript" src="../../tableOfContents/js/TableOfContents.js"></script>
+    </head>
+
+    <body class="fl-uiOptions-fatPanel">
+        <div class="flc-toc-tocContainer fl-hidden">
+        </div>
+    </body>
+
+</html>
+
diff --git a/docs/jscripts/infusion/components/uiOptions/html/FullNoPreviewUIOptions-test.html b/docs/jscripts/infusion/components/uiOptions/html/FullNoPreviewUIOptions-test.html
new file mode 100644 (file)
index 0000000..398af4a
--- /dev/null
@@ -0,0 +1,24 @@
+<form id="options" action="" class="fl-uiOptions fl-uiOptions-fullNoPreview fl-col-fixed-72em">    
+    <div class="flc-uiOptions-controls">
+           <div class="fl-uiOptions-category fl-col-mixed-250">                
+                       <h2 class="fl-col-fixed fl-force-left fl-uiOptions-text-icon">Text and display</h2>
+            <div class="flc-uiOptions-text-controls fl-uiOptions-text fl-col-flex"></div>                                                                      
+       </div>                                  
+        
+           <div class="fl-uiOptions-category fl-col-mixed-250">
+            <h2 class="fl-col-fixed fl-force-left fl-uiOptions-layout-icon">Layout and navigation</h2>        
+            <div class="flc-uiOptions-layout-controls fl-uiOptions-layout fl-col-flex"></div>                                  
+        </div>
+            
+           <div class="fl-uiOptions-category fl-col-mixed-250">
+            <h2 class="fl-col-fixed fl-force-left fl-uiOptions-links-icon">Links and buttons</h2>
+            <div class="flc-uiOptions-links-controls fl-uiOptions-links fl-col-flex"></div>                    
+        </div>
+    </div>
+
+    <div class="fl-text-align-center fl-uiOptions-buttons">
+        <input class="flc-uiOptions-save fl-uiOptions-save" type="button" value="Save and applyAAA" />
+        <input class="flc-uiOptions-reset" type="button" value="Reset and apply" />
+        <input class="flc-uiOptions-cancel fl-uiOptions-cancel" type="button" value="Cancel" />
+    </div>                
+</form>                
diff --git a/docs/jscripts/infusion/components/uiOptions/html/FullNoPreviewUIOptions.html b/docs/jscripts/infusion/components/uiOptions/html/FullNoPreviewUIOptions.html
new file mode 100644 (file)
index 0000000..aac0909
--- /dev/null
@@ -0,0 +1,24 @@
+<form id="options" action="" class="fl-uiOptions fl-uiOptions-fullNoPreview fl-col-fixed-72em">    
+    <div class="flc-uiOptions-controls">
+           <div class="fl-uiOptions-category fl-col-mixed-250">                
+                       <h2 class="fl-col-fixed fl-force-left fl-uiOptions-text-icon">Text and display</h2>
+            <div class="flc-uiOptions-text-controls fl-uiOptions-text fl-col-flex"></div>                                                                      
+       </div>                                  
+        
+           <div class="fl-uiOptions-category fl-col-mixed-250">
+            <h2 class="fl-col-fixed fl-force-left fl-uiOptions-layout-icon">Layout and navigation</h2>        
+            <div class="flc-uiOptions-layout-controls fl-uiOptions-layout fl-col-flex"></div>                                  
+        </div>
+            
+           <div class="fl-uiOptions-category fl-col-mixed-250">
+            <h2 class="fl-col-fixed fl-force-left fl-uiOptions-links-icon">Links and buttons</h2>
+            <div class="flc-uiOptions-links-controls fl-uiOptions-links fl-col-flex"></div>                    
+        </div>
+    </div>
+
+    <div class="fl-text-align-center fl-uiOptions-buttons">
+        <input class="flc-uiOptions-save fl-uiOptions-save" type="button" value="Save and apply" />
+        <input class="flc-uiOptions-reset" type="button" value="Reset and apply" />
+        <input class="flc-uiOptions-cancel fl-uiOptions-cancel" type="button" value="Cancel" />
+    </div>                
+</form>                
diff --git a/docs/jscripts/infusion/components/uiOptions/html/FullPreviewUIOptions.html b/docs/jscripts/infusion/components/uiOptions/html/FullPreviewUIOptions.html
new file mode 100644 (file)
index 0000000..8b20551
--- /dev/null
@@ -0,0 +1,29 @@
+<form id="options" action="" class="fl-uiOptions fl-uiOptions-fullPreview">    
+    <div class="fl-container-flex60 fl-force-left">
+
+        <h2 class="fl-uiOptions-text-icon">Text and display</h2>
+        <div class="flc-uiOptions-text-controls fl-uiOptions-category fl-uiOptions-text">
+        </div>
+
+        <h2 class="fl-uiOptions-layout-icon">Layout and navigation</h2>
+        <div class="flc-uiOptions-layout-controls fl-uiOptions-category fl-uiOptions-layout">
+        </div>
+
+        <h2 class="fl-uiOptions-links-icon">Links and buttons</h2>
+        <div class="flc-uiOptions-links-controls fl-uiOptions-category fl-uiOptions-links">
+        </div class="fl-uiOptions-text-icon">
+    </div>
+
+    <div class="fl-container-flex35 fl-force-right">
+        <div class="fl-uiOptions-preview">
+            <h2>Preview your changes</h2>
+            <iframe class="flc-uiOptions-preview-frame" src="" frameborder="0"></iframe>
+        </div>
+        <div class="fl-uiOptions-buttons">
+            <input class="flc-uiOptions-save fl-uiOptions-save" type="button" value="Save and apply" />
+            <input class="flc-uiOptions-reset" type="button" value="Reset" />
+            <input class="flc-uiOptions-cancel fl-uiOptions-cancel" type="button" value="Cancel" />
+        </div>                
+    </div>
+    
+</form>                
diff --git a/docs/jscripts/infusion/components/uiOptions/html/UIOptionsTemplate-layout.html b/docs/jscripts/infusion/components/uiOptions/html/UIOptionsTemplate-layout.html
new file mode 100644 (file)
index 0000000..63db740
--- /dev/null
@@ -0,0 +1,9 @@
+            <ul>
+                <li>
+                    <input type="checkbox" id="toc-choice" class="flc-uiOptions-toc fl-force-left" />
+                    <div>
+                        <label for="toc-choice">Show Table of Contents</label>
+                        <p class="fl-uiOptions-option-description">Adds a table of contents to the top of the page</p>
+                    </div>
+                </li>                            
+            </ul>
diff --git a/docs/jscripts/infusion/components/uiOptions/html/UIOptionsTemplate-links.html b/docs/jscripts/infusion/components/uiOptions/html/UIOptionsTemplate-links.html
new file mode 100644 (file)
index 0000000..83f90fd
--- /dev/null
@@ -0,0 +1,16 @@
+            <ul>
+                <li>
+                    <input type="checkbox" id="links-choice" class="flc-uiOptions-links fl-force-left" />
+                    <div>
+                        <label for="links-choice">Emphasize Links</label>
+                        <p class="fl-uiOptions-option-description">Makes links larger, bold, and underlined</p>
+                    </div>
+                </li>
+                <li>
+                    <input type="checkbox" id="inputs-choice" class="flc-uiOptions-inputs-larger fl-force-left" />
+                    <div>
+                        <label for="inputs-choice">Make Inputs Larger</label>
+                        <p class="fl-uiOptions-option-description">Makes buttons, drop-down menus, text-fields, and other inputs larger</p>
+                    </div>
+                </li>        
+            </ul>        
diff --git a/docs/jscripts/infusion/components/uiOptions/html/UIOptionsTemplate-text.html b/docs/jscripts/infusion/components/uiOptions/html/UIOptionsTemplate-text.html
new file mode 100644 (file)
index 0000000..cf54dcc
--- /dev/null
@@ -0,0 +1,35 @@
+            <ul class="fl-clearfix">
+                <li class="flc-uiOptions-min-text-size">
+                    <label for="min-text-size">Text Size</label>
+                    <div class="fl-inputs">
+                        <div class="fl-force-left">
+                            <div class="fl-force-left fl-text-slider-left"><span class="fl-hidden-accessible">icon of a small capital letter 'A'</span></div>                       
+                            <div class="flc-textfieldSlider-slider fl-force-left fl-slider fl-slider-horz"> </div>
+                            <div class="fl-force-left fl-text-slider-right"><span class="fl-hidden-accessible">icon of a large capital letter 'A'</span></div>                              
+                        </div>
+                        <div class="fl-slider-input"><input id="min-text-size" class="flc-textfieldSlider-field" type="text" /> times</div>
+                        
+                    </div>
+                </li>
+                <li>
+                    <label for="text-font">Text Style</label>
+                    <select class="flc-uiOptions-text-font fl-inputs" id="text-font">
+                    </select>               
+                </li>   
+                <li class="flc-uiOptions-line-spacing">
+                    <label for="line-spacing">Line Spacing</label>
+                    <div class="fl-inputs">
+                        <div class="fl-force-left">
+                            <div class="fl-force-left fl-spacing-slider-left"><span class="fl-hidden-accessible">icon of 3 horizontal lines with narrow spacing</span></div>                                      
+                            <div class="flc-textfieldSlider-slider fl-force-left fl-slider fl-slider-horz"> </div>
+                            <div class="fl-force-left fl-spacing-slider-right"><span class="fl-hidden-accessible">icon of 3 horizontal lines with wide spacing</span></div>                             
+                        </div>
+                        <div class="fl-slider-input"><input id="line-spacing" class="flc-textfieldSlider-field" type="text" /> times</div>
+                        
+                    </div>
+                </li>           
+                <li>
+                    <label for="theme">Colour & Contrast</label>
+                    <select class="flc-uiOptions-theme fl-inputs" id="theme"></select>  
+                </li>
+            </ul>
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_bigA_hc_20x20.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_bigA_hc_20x20.png
new file mode 100644 (file)
index 0000000..b3a9708
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_bigA_hc_20x20.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_cancel_hc_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_cancel_hc_13x13.png
new file mode 100644 (file)
index 0000000..23b8411
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_cancel_hc_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hcInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hcInverted_16x16.png
new file mode 100644 (file)
index 0000000..efc12d1
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hcInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hc_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hc_16x16.png
new file mode 100644 (file)
index 0000000..23df916
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hc_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hc_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hc_18x18.png
new file mode 100644 (file)
index 0000000..493bd1a
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_layoutandnavigation_hc_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linesNarrow_hc_16x12.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linesNarrow_hc_16x12.png
new file mode 100644 (file)
index 0000000..07b2346
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linesNarrow_hc_16x12.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linesWide_hc_16x21.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linesWide_hc_16x21.png
new file mode 100644 (file)
index 0000000..6610544
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linesWide_hc_16x21.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hcInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hcInverted_16x16.png
new file mode 100644 (file)
index 0000000..c682024
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hcInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hc_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hc_16x16.png
new file mode 100644 (file)
index 0000000..679d5ba
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hc_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hc_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hc_18x18.png
new file mode 100644 (file)
index 0000000..e4d42d9
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_linksandbuttons_hc_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_reset_hcInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_reset_hcInverted_16x16.png
new file mode 100644 (file)
index 0000000..b05d4b8
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_reset_hcInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_save_hc_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_save_hc_13x13.png
new file mode 100644 (file)
index 0000000..d98216f
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_save_hc_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_smallA_hc_10x10.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_smallA_hc_10x10.png
new file mode 100644 (file)
index 0000000..6cda764
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_smallA_hc_10x10.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hcInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hcInverted_16x16.png
new file mode 100644 (file)
index 0000000..5ffae8c
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hcInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hc_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hc_16x16.png
new file mode 100644 (file)
index 0000000..aef4db2
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hc_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hc_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hc_18x18.png
new file mode 100644 (file)
index 0000000..e44fef2
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/bw/uio_icon_textanddisplay_hc_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_bigA_blackYellow_20x20.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_bigA_blackYellow_20x20.png
new file mode 100644 (file)
index 0000000..b3a9708
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_bigA_blackYellow_20x20.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_cancel_blackYellow_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_cancel_blackYellow_13x13.png
new file mode 100644 (file)
index 0000000..23b8411
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_cancel_blackYellow_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellowInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellowInverted_16x16.png
new file mode 100644 (file)
index 0000000..93df10b
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellowInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellow_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellow_16x16.png
new file mode 100644 (file)
index 0000000..23df916
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellow_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellow_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellow_18x18.png
new file mode 100644 (file)
index 0000000..493bd1a
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_layoutandnavigation_blackYellow_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linesNarrow_blackYellow_16x12.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linesNarrow_blackYellow_16x12.png
new file mode 100644 (file)
index 0000000..07b2346
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linesNarrow_blackYellow_16x12.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linesWide_blackYellow_16x21.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linesWide_blackYellow_16x21.png
new file mode 100644 (file)
index 0000000..6610544
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linesWide_blackYellow_16x21.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellowInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellowInverted_16x16.png
new file mode 100644 (file)
index 0000000..dd7d093
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellowInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellow_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellow_16x16.png
new file mode 100644 (file)
index 0000000..679d5ba
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellow_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellow_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellow_18x18.png
new file mode 100644 (file)
index 0000000..e4d42d9
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_linksandbuttons_blackYellow_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_reset_blackYellowInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_reset_blackYellowInverted_16x16.png
new file mode 100644 (file)
index 0000000..ab00ef8
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_reset_blackYellowInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_save_blackYellow_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_save_blackYellow_13x13.png
new file mode 100644 (file)
index 0000000..d98216f
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_save_blackYellow_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_smallA_blackYellow_10x10.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_smallA_blackYellow_10x10.png
new file mode 100644 (file)
index 0000000..6cda764
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_smallA_blackYellow_10x10.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellowInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellowInverted_16x16.png
new file mode 100644 (file)
index 0000000..2fcd45a
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellowInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellow_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellow_16x16.png
new file mode 100644 (file)
index 0000000..aef4db2
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellow_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellow_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellow_18x18.png
new file mode 100644 (file)
index 0000000..e44fef2
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/by/uio_icon_textanddisplay_blackYellow_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_bigA_default_20x20.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_bigA_default_20x20.png
new file mode 100644 (file)
index 0000000..d08173d
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_bigA_default_20x20.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_cancel_default_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_cancel_default_13x13.png
new file mode 100644 (file)
index 0000000..ebdfe67
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_cancel_default_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_defaultInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_defaultInverted_16x16.png
new file mode 100644 (file)
index 0000000..efc12d1
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_defaultInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_default_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_default_16x16.png
new file mode 100644 (file)
index 0000000..c2d1897
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_default_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_default_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_default_18x18.png
new file mode 100644 (file)
index 0000000..0cf45d5
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_layoutandnavigation_default_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linesNarrow_default_16x12.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linesNarrow_default_16x12.png
new file mode 100644 (file)
index 0000000..3b36275
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linesNarrow_default_16x12.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linesWide_default_16x21.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linesWide_default_16x21.png
new file mode 100644 (file)
index 0000000..6acaaba
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linesWide_default_16x21.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_defaultInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_defaultInverted_16x16.png
new file mode 100644 (file)
index 0000000..c682024
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_defaultInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_default_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_default_16x16.png
new file mode 100644 (file)
index 0000000..b0635f5
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_default_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_default_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_default_18x18.png
new file mode 100644 (file)
index 0000000..14bf71b
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_linksandbuttons_default_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_reset_defaultInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_reset_defaultInverted_16x16.png
new file mode 100644 (file)
index 0000000..b05d4b8
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_reset_defaultInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_save_default_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_save_default_13x13.png
new file mode 100644 (file)
index 0000000..cc15e4d
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_save_default_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_sliderhandle.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_sliderhandle.png
new file mode 100644 (file)
index 0000000..e6697c0
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_sliderhandle.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_smallA_default_10x10.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_smallA_default_10x10.png
new file mode 100644 (file)
index 0000000..98ed6ad
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_smallA_default_10x10.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_defaultInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_defaultInverted_16x16.png
new file mode 100644 (file)
index 0000000..5ffae8c
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_defaultInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_default_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_default_16x16.png
new file mode 100644 (file)
index 0000000..96f78ac
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_default_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_default_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_default_18x18.png
new file mode 100644 (file)
index 0000000..fe880f5
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/default/uio_icon_textanddisplay_default_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_bigA_hci_20x20.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_bigA_hci_20x20.png
new file mode 100644 (file)
index 0000000..e8b6a79
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_bigA_hci_20x20.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_cancel_hci_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_cancel_hci_13x13.png
new file mode 100644 (file)
index 0000000..269ccfa
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_cancel_hci_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hciInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hciInverted_16x16.png
new file mode 100644 (file)
index 0000000..23df916
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hciInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hci_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hci_16x16.png
new file mode 100644 (file)
index 0000000..efc12d1
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hci_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hci_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hci_18x18.png
new file mode 100644 (file)
index 0000000..30e4c17
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_layoutandnavigation_hci_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linesNarrow_hci_16x12.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linesNarrow_hci_16x12.png
new file mode 100644 (file)
index 0000000..7dbcc65
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linesNarrow_hci_16x12.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linesWide_hci_16x21.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linesWide_hci_16x21.png
new file mode 100644 (file)
index 0000000..b77835f
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linesWide_hci_16x21.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hciInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hciInverted_16x16.png
new file mode 100644 (file)
index 0000000..679d5ba
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hciInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hci_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hci_16x16.png
new file mode 100644 (file)
index 0000000..c682024
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hci_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hci_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hci_18x18.png
new file mode 100644 (file)
index 0000000..c81d34a
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_linksandbuttons_hci_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_reset_hciInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_reset_hciInverted_16x16.png
new file mode 100644 (file)
index 0000000..fd6dd74
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_reset_hciInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_reset_hci_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_reset_hci_16x16.png
new file mode 100644 (file)
index 0000000..b05d4b8
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_reset_hci_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_save_hci_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_save_hci_13x13.png
new file mode 100644 (file)
index 0000000..ea09152
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_save_hci_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_smallA_hci_10x10.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_smallA_hci_10x10.png
new file mode 100644 (file)
index 0000000..4fd3fdf
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_smallA_hci_10x10.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hciInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hciInverted_16x16.png
new file mode 100644 (file)
index 0000000..aef4db2
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hciInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hci_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hci_16x16.png
new file mode 100644 (file)
index 0000000..5ffae8c
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hci_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hci_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hci_18x18.png
new file mode 100644 (file)
index 0000000..bcc9d8b
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/wb/uio_icon_textanddisplay_hci_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_bigA_yellowBlack_20x20.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_bigA_yellowBlack_20x20.png
new file mode 100644 (file)
index 0000000..0f6684c
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_bigA_yellowBlack_20x20.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_cancel_yellowBlack_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_cancel_yellowBlack_13x13.png
new file mode 100644 (file)
index 0000000..7973014
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_cancel_yellowBlack_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlackInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlackInverted_16x16.png
new file mode 100644 (file)
index 0000000..23df916
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlackInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlack_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlack_16x16.png
new file mode 100644 (file)
index 0000000..93df10b
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlack_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlack_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlack_18x18.png
new file mode 100644 (file)
index 0000000..260fa63
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_layoutandnavigation_yellowBlack_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linesNarrow_yellowBlack_16x12.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linesNarrow_yellowBlack_16x12.png
new file mode 100644 (file)
index 0000000..244e2d4
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linesNarrow_yellowBlack_16x12.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linesWide_yellowBlack_16x21.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linesWide_yellowBlack_16x21.png
new file mode 100644 (file)
index 0000000..21cbe31
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linesWide_yellowBlack_16x21.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlackInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlackInverted_16x16.png
new file mode 100644 (file)
index 0000000..679d5ba
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlackInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlack_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlack_16x16.png
new file mode 100644 (file)
index 0000000..dd7d093
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlack_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlack_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlack_18x18.png
new file mode 100644 (file)
index 0000000..94e64fc
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_linksandbuttons_yellowBlack_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_reset_yellowBlackInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_reset_yellowBlackInverted_16x16.png
new file mode 100644 (file)
index 0000000..fd6dd74
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_reset_yellowBlackInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_save_yellowBlack_13x13.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_save_yellowBlack_13x13.png
new file mode 100644 (file)
index 0000000..e196505
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_save_yellowBlack_13x13.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_smallA_yellowBlack_10x10.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_smallA_yellowBlack_10x10.png
new file mode 100644 (file)
index 0000000..513f0f2
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_smallA_yellowBlack_10x10.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlackInverted_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlackInverted_16x16.png
new file mode 100644 (file)
index 0000000..aef4db2
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlackInverted_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlack_16x16.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlack_16x16.png
new file mode 100644 (file)
index 0000000..2fcd45a
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlack_16x16.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlack_18x18.png b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlack_18x18.png
new file mode 100644 (file)
index 0000000..3430819
Binary files /dev/null and b/docs/jscripts/infusion/components/uiOptions/images/yb/uio_icon_textanddisplay_yellowBlack_18x18.png differ
diff --git a/docs/jscripts/infusion/components/uiOptions/js/FatPanelUIOptions.js b/docs/jscripts/infusion/components/uiOptions/js/FatPanelUIOptions.js
new file mode 100644 (file)
index 0000000..24c95a1
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.uiOptions.fatPanelEventBinder",{gradeNames:["fluid.eventedComponent","autoInit"],finalInitFunction:"fluid.uiOptions.fatPanelEventBinder.finalInit",components:{uiOptionsLoader:{type:"fluid.uiOptions.loader"},slidingPanel:{type:"fluid.slidingPanel"}}});fluid.defaults("fluid.uiOptions.fatPanelEventBinder.binder",{gradeNames:["fluid.eventedComponent","autoInit"]});fluid.registerNamespace("fluid.dom");fluid.dom.getDocumentHeight=function(dokkument){var body=$("body",dokkument)[0];return body.offsetHeight};fluid.uiOptions.fatPanelEventBinder.updateView=function(uiOptions){uiOptions.uiEnhancer.updateFromSettingsStore();uiOptions.events.onSignificantDOMChange.fire()};fluid.uiOptions.fatPanelEventBinder.bindLateEvents=function(uiOptions,eventBinder,fatPanel){eventBinder.uiOptions=uiOptions;uiOptions.events.modelChanged.addListener(function(model){eventBinder.uiEnhancer.updateModel(model.selections);uiOptions.save()});uiOptions.events.onReset.addListener(function(uiOptions){fluid.uiOptions.fatPanelEventBinder.updateView(uiOptions)});uiOptions.events.onSignificantDOMChange.addListener(function(){var dokkument=uiOptions.container[0].ownerDocument;var height=fluid.dom.getDocumentHeight(dokkument);var iframe=fatPanel.markupRenderer.iframe;var attrs={height:height+15};iframe.animate(attrs,400)});fatPanel.slidingPanel.events.afterPanelHide.addListener(function(){fatPanel.markupRenderer.iframe.height(0)})};fluid.uiOptions.fatPanelEventBinder.finalInit=function(that){that.slidingPanel.events.afterPanelShow.addListener(function(){fluid.uiOptions.fatPanelEventBinder.updateView(that.uiOptions)})};fluid.uiOptions.fatPanelEventBinder.showPanel=function(panel,callback){panel.show();setTimeout(callback,1)};fluid.defaults("fluid.uiOptions.fatPanel",{gradeNames:["fluid.viewComponent"],selectors:{iframe:".flc-uiOptions-iframe"},relativePrefix:"./",components:{slidingPanel:{type:"fluid.slidingPanel",container:"{fatPanel}.container",options:{invokers:{operateShow:{funcName:"fluid.uiOptions.fatPanelEventBinder.showPanel"}}},createOnEvent:"afterRender"},markupRenderer:{type:"fluid.uiOptions.renderIframe",container:"{fatPanel}.dom.iframe",options:{markupProps:{src:"%prefix/FatPanelUIOptionsFrame.html"},events:{afterRender:"{fatPanel}.events.afterRender"}}},uiEnhancer:"{uiEnhancer}",eventBinder:{type:"fluid.uiOptions.fatPanelEventBinder",options:{components:{uiEnhancer:"{fatPanel}.uiEnhancer",uiOptionsLoader:"{fatPanel}.bridge.uiOptionsLoader",slidingPanel:"{fatPanel}.slidingPanel",binder:{type:"fluid.uiOptions.fatPanelEventBinder.binder",priority:"last",options:{events:{onUIOptionsComponentReady:{event:"{uiOptionsLoader}.events.onUIOptionsComponentReady",args:["{arguments}.0","{fluid.uiOptions.fatPanelEventBinder}","{fatPanel}"]}},listeners:{onUIOptionsComponentReady:fluid.uiOptions.fatPanelEventBinder.bindLateEvents}}}}},createOnEvent:"afterRender",priority:"last"},bridge:{type:"fluid.uiOptions.bridge",createOnEvent:"afterRender",priority:"first",options:{components:{uiEnhancer:"{fatPanel}.uiEnhancer",markupRenderer:"{fatPanel}.markupRenderer"}}}},uiOptionsTransform:{transformer:"fluid.uiOptions.mapOptions",config:{"*.slidingPanel":"slidingPanel","*.markupRenderer":"markupRenderer","*.markupRenderer.options.prefix":"prefix","*.eventBinder":"eventBinder","selectors.iframe":"iframe","*.bridge.options.templateLoader":"templateLoader","*.bridge.options.prefix":"relativePrefix","*.bridge.options.uiOptionsLoader":"uiOptionsLoader","*.bridge.options.uiOptions":"uiOptions","*.bridge.options.textControls":"textControls","*.bridge.options.layoutControls":"layoutControls","*.bridge.options.linksControls":"linksControls","*.bridge.options.uiEnhancer":"uiEnhancer"}},events:{afterRender:null}});fluid.defaults("fluid.uiOptions.renderIframe",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.uiOptions.renderIframe.finalInit",events:{afterRender:null},styles:{containerFlex:"fl-container-flex",container:"fl-uiOptions-fatPanel-iframe"},prefix:"./",markupProps:{style:"overflow-x:hidden; overflow-y:auto;","class":"flc-iframe",src:"%prefix/uiOptionsIframe.html"}});fluid.uiOptions.renderIframe.finalInit=function(that){var styles=that.options.styles;that.options.markupProps=fluid.uiOptions.transformUrls(that.options.markupProps,that.options.prefix);that.iframeSrc=that.options.markupProps.src;that.iframe=$("<iframe/>",that.options.markupProps).appendTo(that.container);that.iframe.addClass(styles.containerFlex);that.iframe.addClass(styles.container);that.iframe.load(that.events.afterRender.fire)};fluid.defaults("fluid.uiOptions.bridge",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.uiOptions.bridge.finalInit",iframe:null});fluid.uiOptions.tabSelectRelay=function(uiOptions){uiOptions.events.onSignificantDOMChange.fire()};fluid.defaults("fluid.uiOptions.FatPanelOtherWorldLoader",{gradeNames:["fluid.uiOptions.inline","autoInit"],derivedDefaults:{uiOptions:{options:{events:{onSignificantDOMChange:null},components:{uiEnhancer:{type:"fluid.uiEnhancer",container:"body",priority:"first",options:{tocTemplate:"../../tableOfContents/html/TableOfContents.html"}},settingsStore:"{uiEnhancer}.settingsStore",preview:{type:"fluid.emptySubcomponent"},tabs:{type:"fluid.tabs",container:"body",createOnEvent:"onUIOptionsComponentReady",options:{events:{boiledTabShow:{event:"tabsshow",args:["{uiOptions}"]}},listeners:{boiledTabShow:fluid.uiOptions.tabSelectRelay}}}}}}},uiOptionsTransform:{config:{"!*.uiOptionsLoader.*.uiOptions.*.uiEnhancer.options":"uiEnhancer.options"}}});fluid.uiOptions.bridge.finalInit=function(that){var iframe=that.markupRenderer.iframe;var origPrefix=that.markupRenderer.options.prefix;var iframeDoc=iframe.contents();var iframeWin=iframe[0].contentWindow;var innerFluid=iframeWin.fluid;var container=$("body",iframeDoc);var outerLocation=window.location.href;var iframeLocation=iframeWin.location.href;var relativePrefix=fluid.url.computeRelativePrefix(outerLocation,iframeLocation,origPrefix);that.options.relativePrefix=relativePrefix;var overallOptions={};overallOptions.container=container;var bridgeMapping=fluid.defaults("fluid.uiOptions.fatPanel").uiOptionsTransform.config;var swappedBridgeMapping={};fluid.each(bridgeMapping,function(value,key){swappedBridgeMapping[value]=key});var bridgeSymbol="*.bridge.options";fluid.each(swappedBridgeMapping,function(value,key){if(value.indexOf(bridgeSymbol)===0&&that.options[key]){var keyInOtherWorld=value.substring(bridgeSymbol.length+1);fluid.set(overallOptions,keyInOtherWorld,that.options[key])}});var defaults=fluid.defaults("fluid.uiOptions.FatPanelOtherWorldLoader");fluid.set(overallOptions,"uiEnhancer.options",that.uiEnhancer.options.originalUserOptions);var mappedOptions=fluid.uiOptions.mapOptions(overallOptions,defaults.uiOptionsTransform.config,defaults.mergePolicy,fluid.copy(defaults.derivedDefaults));var component=innerFluid.invokeGlobalFunction("fluid.uiOptions.FatPanelOtherWorldLoader",[container,mappedOptions]);that.uiOptionsLoader=component.uiOptionsLoader};fluid.uiOptions.fatPanel=function(container,options){var defaults=fluid.defaults("fluid.uiOptions.fatPanel");var config=defaults.uiOptionsTransform.config;var mappedOptions=fluid.uiOptions.mapOptions(options,config,defaults.mergePolicy);var that=fluid.initView("fluid.uiOptions.fatPanel",container,mappedOptions);fluid.initDependents(that);return that}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/js/FullNoPreviewUIOptions.js b/docs/jscripts/infusion/components/uiOptions/js/FullNoPreviewUIOptions.js
new file mode 100644 (file)
index 0000000..690f932
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.uiOptions.fullNoPreview",{gradeNames:["fluid.uiOptions.inline"],container:"{fullNoPreview}.container",derivedDefaults:{templateLoader:{options:{templates:{uiOptions:"%prefix/FullNoPreviewUIOptions.html"}}},uiOptions:{options:{components:{preview:{type:"fluid.emptySubcomponent"},settingsStore:"{uiEnhancer}.settingsStore"},listeners:{onReset:function(uiOptions){uiOptions.save()},onUIOptionsRefresh:"{uiEnhancer}.updateFromSettingsStore"}}}}});fluid.uiOptions.inline.makeCreator("fluid.uiOptions.fullNoPreview",fluid.identity)})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/js/FullPreviewUIOptions.js b/docs/jscripts/infusion/components/uiOptions/js/FullPreviewUIOptions.js
new file mode 100644 (file)
index 0000000..1f880a1
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.uiOptions.fullPreview",{gradeNames:["fluid.uiOptions.inline"],container:"{fullPreview}.container",uiOptionsTransform:{config:{"!*.uiOptionsLoader.*.uiOptions.*.preview.*.enhancer.options":"outerPreviewEnhancerOptions"}},derivedDefaults:{templateLoader:{options:{templates:{uiOptions:"%prefix/FullPreviewUIOptions.html"}}},uiOptions:{options:{components:{settingsStore:"{uiEnhancer}.settingsStore"},listeners:{onUIOptionsRefresh:"{uiEnhancer}.updateFromSettingsStore"}}}}});fluid.uiOptions.inline.makeCreator("fluid.uiOptions.fullPreview",function(options){var enhancerOptions=fluid.get(fluid,"staticEnvironment.uiEnhancer.options.originalUserOptions");options.outerPreviewEnhancerOptions=enhancerOptions;return options})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/js/SlidingPanel.js b/docs/jscripts/infusion/components/uiOptions/js/SlidingPanel.js
new file mode 100644 (file)
index 0000000..cc39774
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.slidingPanel",{gradeNames:["fluid.viewComponent","autoInit"],selectors:{panel:".flc-slidingPanel-panel",toggleButton:".flc-slidingPanel-toggleButton"},strings:{showText:"+ Show Display Preferences",hideText:"- Hide"},events:{onPanelHide:null,onPanelShow:null,afterPanelHide:null,afterPanelShow:null},finalInitFunction:"fluid.slidingPanel.finalInit",invokers:{operateHide:"fluid.slidingPanel.slideUp",operateShow:"fluid.slidingPanel.slideDown"},hideByDefault:true});fluid.slidingPanel.slideUp=function(element,callback,duration){$(element).slideUp(duration||"400",callback)};fluid.slidingPanel.slideDown=function(element,callback,duration){$(element).slideDown(duration||"400",callback)};fluid.slidingPanel.finalInit=function(that){that.showPanel=function(){that.events.onPanelShow.fire(that);that.locate("toggleButton").text(that.options.strings.hideText);that.operateShow(that.locate("panel"),that.events.afterPanelShow.fire)};that.hidePanel=function(){that.events.onPanelHide.fire(that);that.locate("toggleButton").text(that.options.strings.showText);that.operateHide(that.locate("panel"),that.events.afterPanelHide.fire)};that.togglePanel=function(){if(that.locate("panel").is(":hidden")){that.showPanel()}else{that.hidePanel()}};that.setPanelHeight=function(newHeight){that.locate("panel").height(newHeight)};that.locate("toggleButton").click(that.togglePanel);if(that.options.hideByDefault){that.locate("toggleButton").text(that.options.strings.showText);that.locate("panel").hide()}}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/js/Store.js b/docs/jscripts/infusion/components/uiOptions/js/Store.js
new file mode 100644 (file)
index 0000000..8b6f95d
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.uiOptions.store",{gradeNames:["fluid.littleComponent","autoInit"],defaultSiteSettings:{textFont:"default",theme:"default",textSize:1,lineSpacing:1,layout:false,toc:false,links:false,inputsLarger:false}});fluid.defaults("fluid.cookieStore",{gradeNames:["fluid.uiOptions.store","autoInit"],invokers:{fetch:{funcName:"fluid.cookieStore.fetch",args:["{cookieStore}.options.cookie.name","{cookieStore}.options.defaultSiteSettings"]},save:{funcName:"fluid.cookieStore.save",args:["{arguments}.0","{cookieStore}.options.cookie"]}},cookie:{name:"fluid-ui-settings",path:"/",expires:""}});fluid.cookieStore.fetch=function(cookieName,defaults){var cookie=document.cookie;var cookiePrefix=cookieName+"=";var retObj,startIndex,endIndex;if(cookie.length>0){startIndex=cookie.indexOf(cookiePrefix);if(startIndex>-1){startIndex=startIndex+cookiePrefix.length;endIndex=cookie.indexOf(";",startIndex);if(endIndex<startIndex){endIndex=cookie.length}retObj=JSON.parse(decodeURIComponent(cookie.substring(startIndex,endIndex)))}}return retObj||defaults};fluid.cookieStore.assembleCookie=function(cookieOptions){var cookieStr=cookieOptions.name+"="+cookieOptions.data;if(cookieOptions.expires){cookieStr+="; expires="+cookieOptions.expires}if(cookieOptions.path){cookieStr+="; path="+cookieOptions.path}return cookieStr};fluid.cookieStore.save=function(settings,cookieOptions){cookieOptions.data=encodeURIComponent(JSON.stringify(settings));document.cookie=fluid.cookieStore.assembleCookie(cookieOptions)};fluid.defaults("fluid.tempStore",{gradeNames:["fluid.uiOptions.store","autoInit"],invokers:{fetch:{funcName:"fluid.tempStore.fetch",args:["{tempStore}"]},save:{funcName:"fluid.tempStore.save",args:["{arguments}.0","{tempStore}"]}},finalInitFunction:"fluid.tempStore.finalInit"});fluid.tempStore.finalInit=function(that){that.model=that.options.defaultSiteSettings};fluid.tempStore.fetch=function(that){return that.model};fluid.tempStore.save=function(settings,that){that.model=settings}})(jQuery,fluid_1_4);
\ No newline at end of file
index 803a53e..8b6a989 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var replaceClass=function(container,selector,regExp,newVal){newVal=newVal||"";$(selector,container).andSelf().each(function(i){var attr=($.browser.msie===false)?"class":"className";if(this.getAttribute(attr)){this.setAttribute(attr,this.getAttribute(attr).replace(regExp,newVal))}})};var addClassForSetting=function(element,settingName,value,classnameMap){var settingValues=classnameMap[settingName]||{};var className=settingValues[value];if(className){element.addClass(className)}};var isTrue=function(val){return val&&(val===true||val==="true")};var setToc=function(that,tocSetting){if(isTrue(tocSetting)){if(that.tableOfContents){that.tableOfContents.show()}else{that.tableOfContents=fluid.initSubcomponent(that,"tableOfContents",[that.container,fluid.COMPONENT_OPTIONS])}}else{if(that.tableOfContents){that.tableOfContents.hide()}}};var setLineSpacing=function(container,spacing){spacing=spacing&&spacing>0?spacing:1;container.css("line-height",spacing+"em")};var setMinSize=function(container,size){if(size&&size>0){container.css("font-size",size+"pt");replaceClass(container,"[class*=fl-font-size-]",/\bfl-font-size-[0-9]{1,2}\s+/g,"fl-font-size-100")}else{container.css("font-size","")}};var addStyles=function(container,settings,classnameMap){addClassForSetting(container,"textFont",settings.textFont,classnameMap);addClassForSetting(container,"textSpacing",settings.textSpacing,classnameMap);addClassForSetting(container,"theme",settings.theme,classnameMap);addClassForSetting(container,"layout",settings.layout,classnameMap)};var styleElements=function(elements,setting,classname){if(setting){elements.addClass(classname)}else{elements.removeClass(classname)}};var styleLinks=function(container,settings,classnameMap){var links=$("a",container);styleElements(links,settings.linksUnderline,classnameMap.linksUnderline);styleElements(links,settings.linksBold,classnameMap.linksBold);styleElements(links,settings.linksLarger,classnameMap.linksLarger)};var styleInputs=function(container,settings,classnameMap){styleElements($("input",container),settings.inputsLarger,classnameMap.inputsLarger)};var initModel=function(that){if(that.options.savedSettings){that.model=that.options.savedSettings;return }that.model=that.settingsStore.fetch()||fluid.copy(that.defaultSiteSettings)};var clearClashingClasses=function(container,classnameMap){var settingsWhichMayClash=["textFont","textSpacing","theme","layout"];var classesToRemove="fl-noBackgroundImages";var selector=".fl-noBackgroundImages";for(var i=0;i<settingsWhichMayClash.length;i++){var settingValues=classnameMap[settingsWhichMayClash[i]];for(var val in settingValues){var classname=settingValues[val];if(classname){classesToRemove=classesToRemove+" "+classname;selector=selector+",."+classname}}}$(selector,container).removeClass(classesToRemove);return classesToRemove};var setupUIEnhancer=function(that){that.settingsStore=fluid.initSubcomponent(that,"settingsStore",[fluid.COMPONENT_OPTIONS]);initModel(that);that.refreshView()};fluid.uiEnhancer=function(doc,options){doc=doc||document;var that=fluid.initView("fluid.uiEnhancer",doc,options);$(doc).data("uiEnhancer",that);that.container=$("body",doc);that.defaultSiteSettings=that.options.defaultSiteSettings;var clashingClassnames;that.refreshView=function(){that.container.removeClass(clashingClassnames);addStyles(that.container,that.model,that.options.classnameMap);styleElements(that.container,!isTrue(that.model.backgroundImages),that.options.classnameMap.noBackgroundImages);setMinSize(that.container,that.model.textSize);setLineSpacing(that.container,that.model.lineSpacing);setToc(that,that.model.toc);styleLinks(that.container,that.model,that.options.classnameMap);styleInputs(that.container,that.model,that.options.classnameMap)};that.updateModel=function(newModel,source){that.events.modelChanged.fire(newModel,that.model,source);fluid.clear(that.model);fluid.model.copyModel(that.model,newModel);that.settingsStore.save(that.model);that.refreshView()};clashingClassnames=clearClashingClasses(that.container,that.options.classnameMap);setupUIEnhancer(that);return that};fluid.defaults("fluid.uiEnhancer",{tableOfContents:{type:"fluid.tableOfContents",options:{templateUrl:"../../tableOfContents/html/TableOfContents.html"}},settingsStore:{type:"fluid.uiEnhancer.cookieStore"},events:{modelChanged:null},classnameMap:{textFont:{serif:"fl-font-serif",sansSerif:"fl-font-sans",arial:"fl-font-arial",verdana:"fl-font-verdana",monospace:"fl-font-monospace",courier:"fl-font-courier",times:"fl-font-times"},textSpacing:{"default":"",wide0:"fl-font-spacing-0",wide1:"fl-font-spacing-1",wide2:"fl-font-spacing-2",wide3:"fl-font-spacing-3",wide4:"fl-font-spacing-4",wide5:"fl-font-spacing-5",wide6:"fl-font-spacing-6"},theme:{mist:"fl-theme-mist",rust:"fl-theme-rust",highContrast:"fl-theme-hc",highContrastInverted:"fl-theme-hci",lowContrast:"fl-theme-slate",mediumContrast:"fl-theme-coal","default":""},layout:{simple:"fl-layout-linear","default":""},noBackgroundImages:"fl-noBackgroundImages",linksUnderline:"fl-text-underline",linksBold:"fl-text-bold",linksLarger:"fl-text-larger",inputsLarger:"fl-text-larger"},defaultSiteSettings:{textFont:"",textSpacing:"",theme:"default",layout:"default",textSize:"",lineSpacing:"",backgroundImages:true,toc:false,linksUnderline:false,linksBold:false,linksLarger:false,inputsLarger:false}});fluid.uiEnhancer.cookieStore=function(options){var that={};fluid.mergeComponentOptions(that,"fluid.uiEnhancer.cookieStore",options);that.fetch=function(){var cookie=document.cookie;var cookiePrefix=that.options.cookieName+"=";var retObj,startIndex,endIndex;if(cookie.length>0){startIndex=cookie.indexOf(cookiePrefix);if(startIndex>-1){startIndex=startIndex+cookiePrefix.length;endIndex=cookie.indexOf(";",startIndex);if(endIndex<startIndex){endIndex=cookie.length}retObj=JSON.parse(decodeURIComponent(cookie.substring(startIndex,endIndex)))}}return retObj};that.save=function(settings){document.cookie=that.options.cookieName+"="+encodeURIComponent(JSON.stringify(settings))};return that};fluid.defaults("fluid.uiEnhancer.cookieStore",{cookieName:"fluid-ui-settings"});fluid.uiEnhancer.tempStore=function(options){var that={};that.model=null;that.fetch=function(){return that.model};that.save=function(settings){that.model=settings};return that}})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.browser.version");fluid.browser.msie=function(){var isIE=($.browser.msie);return isIE?fluid.typeTag("fluid.browser.msie"):undefined};fluid.browser.majorVersion=function(){var version=$.browser.version;var dotpos=version.indexOf(".");var majorVersion=version.substring(0,dotpos);return fluid.typeTag("fluid.browser.majorVersion."+majorVersion)};var features={browserIE:fluid.browser.msie(),browserMajorVersion:fluid.browser.majorVersion()};fluid.merge(null,fluid.staticEnvironment,features);fluid.hasFeature=function(tagName){return fluid.find(fluid.staticEnvironment,function(value){return value&&value.typeName===tagName?true:undefined})};var isTrue=function(val){return val&&(val===true||val==="true")};var setToc=function(that,tocSetting){if(isTrue(tocSetting)){if(that.tableOfContents){that.tableOfContents.show()}else{$(document).ready(that.events.onCreateTOCReady.fire)}}else{if(that.tableOfContents){that.tableOfContents.hide()}}};fluid.defaults("fluid.uiEnhancer",{gradeNames:["fluid.viewComponent","autoInit"],components:{textSize:{type:"fluid.uiEnhancer.textSizer",container:"{uiEnhancer}.container",options:{invokers:{calcInitSize:{funcName:"fluid.uiEnhancer.textSizer.calcInitSize",args:["{textSizer}","{uiEnhancer}.options.fontSizeMap","{uiEnhancer}.options.px2emFactor"]}}}},tableOfContents:{type:"fluid.tableOfContents",container:"{uiEnhancer}.container",createOnEvent:"onCreateTOCReady",options:{components:{levels:{type:"fluid.tableOfContents.levels",options:{resources:{template:{forceCache:true,url:"{uiEnhancer}.options.tocTemplate"}}}}}}},textFont:{type:"fluid.uiEnhancer.classSwapper",container:"{uiEnhancer}.container",options:{classes:"{uiEnhancer}.options.classnameMap.textFont"}},lineSpacing:{type:"fluid.uiEnhancer.lineSpacer",container:"{uiEnhancer}.container",options:{invokers:{calcInitSize:{funcName:"fluid.uiEnhancer.lineSpacer.calcInitSize",args:["{lineSpacer}","{uiEnhancer}.options.fontSizeMap"]}}}},theme:{type:"fluid.uiEnhancer.classSwapper",container:"{uiEnhancer}.container",options:{classes:"{uiEnhancer}.options.classnameMap.theme"}},settingsStore:{type:"fluid.uiOptions.store",options:{defaultSiteSettings:"{uiEnhancer}.options.defaultSiteSettings"}}},invokers:{updateModel:{funcName:"fluid.uiEnhancer.updateModel",args:["@0","{uiEnhancer}.applier"]},updateFromSettingsStore:{funcName:"fluid.uiEnhancer.updateFromSettingsStore",args:["{uiEnhancer}"]},refreshView:{funcName:"fluid.uiEnhancer.refreshView",args:["{uiEnhancer}"]},styleElements:"fluid.uiEnhancer.styleElements",setLayout:"fluid.uiEnhancer.setLayout",styleLinks:"fluid.uiEnhancer.styleLinks",styleInputs:"fluid.uiEnhancer.styleInputs",setIE6ColorInversion:"fluid.uiEnhancer.setIE6ColorInversion"},events:{onCreateTOCReady:null,modelChanged:null},classnameMap:{textFont:{"default":"",times:"fl-font-uio-times",comic:"fl-font-uio-comic-sans",arial:"fl-font-uio-arial",verdana:"fl-font-uio-verdana"},theme:{"default":"fl-uio-default-theme",bw:"fl-theme-uio-bw fl-theme-bw",wb:"fl-theme-uio-wb fl-theme-wb",by:"fl-theme-uio-by fl-theme-by",yb:"fl-theme-uio-yb fl-theme-yb"},layout:"fl-layout-linear",links:"fl-text-underline fl-text-bold fl-text-larger",inputsLarger:"fl-text-larger"},fontSizeMap:{"xx-small":"9px","x-small":"11px",small:"13px",medium:"15px",large:"18px","x-large":"23px","xx-large":"30px"},px2emFactor:"16",selectors:{colorInversion:".fl-inverted-color"},styles:{colorInversionClass:"fl-inverted-color"},finalInitFunction:"fluid.uiEnhancer.finalInit"});fluid.uiEnhancer.finalInit=function(that){that.applier.modelChanged.addListener("",function(newModel,oldModel,changeRequest){that.events.modelChanged.fire(newModel,oldModel,changeRequest);that.refreshView()});that.updateFromSettingsStore();return that};fluid.uiEnhancer.updateFromSettingsStore=function(that){that.updateModel(that.settingsStore.fetch())};fluid.uiEnhancer.updateModel=function(newModel,applier){applier.requestChange("",newModel)};fluid.uiEnhancer.refreshView=function(that){that.textSize.set(that.model.textSize);that.textFont.swap(that.model.textFont);that.lineSpacing.set(that.model.lineSpacing);that.theme.swap(that.model.theme);that.setLayout(that);setToc(that,that.model.toc);that.styleLinks(that);that.styleInputs(that);that.setIE6ColorInversion(that)};fluid.uiEnhancer.styleElements=function(elements,setting,classname){if(setting){elements.addClass(classname)}else{$("."+classname,elements).andSelf().removeClass(classname)}};fluid.uiEnhancer.setLayout=function(that){that.styleElements(that.container,that.model.layout,that.options.classnameMap.layout)};fluid.uiEnhancer.styleLinks=function(that){var links=$("a",that.container);that.styleElements(links,that.model.links,that.options.classnameMap.links)};fluid.uiEnhancer.styleInputs=function(that){that.styleElements($("input, button",that.container),that.model.inputsLarger,that.options.classnameMap.inputsLarger)};fluid.uiEnhancer.setIE6ColorInversion=function(that){if(fluid.hasFeature("fluid.browser.msie")&&fluid.hasFeature("fluid.browser.majorVersion.6")&&that.model.theme==="default"){that.locate("colorInversion").removeClass(that.options.styles.colorInversionClass)}};fluid.uiEnhancer.getTextSizeInPx=function(container,fontSizeMap){var fontSize=container.css("font-size");if(fontSizeMap[fontSize]){fontSize=fontSizeMap[fontSize]}return parseFloat(fontSize)};fluid.uiEnhancer.getTextSizeInEm=function(container,fontSizeMap,px2emFactor){return Math.round(fluid.uiEnhancer.getTextSizeInPx(container,fontSizeMap)/px2emFactor*10000)/10000};fluid.defaults("fluid.uiEnhancer.textSizer",{gradeNames:["fluid.viewComponent","autoInit"],invokers:{set:{funcName:"fluid.uiEnhancer.textSizer.set",args:["@0","{textSizer}"]}}});fluid.uiEnhancer.textSizer.set=function(times,that){if(!that.initialSize){that.calcInitSize()}if(times===1){that.container.css("font-size","")}else{if(times&&times>0){var targetSize=that.initialSize*times+"em";that.container.css("font-size",targetSize)}}};fluid.uiEnhancer.textSizer.calcInitSize=function(that,fontSizeMap,px2emFactor){that.initialSize=fluid.uiEnhancer.getTextSizeInEm(that.container,fontSizeMap,px2emFactor)};fluid.defaults("fluid.uiEnhancer.classSwapper",{gradeNames:["fluid.viewComponent","autoInit"],invokers:{clearClasses:{funcName:"fluid.uiEnhancer.classSwapper.clearClasses",args:["{classSwapper}"]},swap:{funcName:"fluid.uiEnhancer.classSwapper.swap",args:["@0","{classSwapper}"]}},classes:{},finalInitFunction:"fluid.uiEnhancer.classSwapper.finalInit"});fluid.uiEnhancer.classSwapper.finalInit=function(that){that.classSelector="";that.classStr="";fluid.each(that.options.classes,function(className){if(className){that.classSelector+=that.classSelector?", ."+className:"."+className;that.classStr+=that.classStr?" "+className:className}})};fluid.uiEnhancer.classSwapper.clearClasses=function(that){that.container.removeClass(that.classStr)};fluid.uiEnhancer.classSwapper.swap=function(classname,that){that.clearClasses(that);that.container.addClass(that.options.classes[classname])};fluid.defaults("fluid.uiEnhancer.lineSpacer",{gradeNames:["fluid.viewComponent","autoInit"],invokers:{set:{funcName:"fluid.uiEnhancer.lineSpacer.set",args:["@0","{lineSpacer}"]}}});fluid.uiEnhancer.lineSpacer.set=function(times,that){if(!that.initialSize){that.calcInitSize()}var newLineSpacing=times===""||times===1?that.initialSize:times*that.initialSize;that.container.css("line-height",newLineSpacing+"em")};fluid.uiEnhancer.lineSpacer.calcInitSize=function(that,fontSizeMap){var lineHeight=that.container.css("lineHeight");if(lineHeight==="normal"){return 1}if($.browser.msie){var lineHeightInIE;lineHeightInIE=that.container[0].currentStyle.lineHeight;if(lineHeightInIE.match(/[0-9]$/)){that.initialSize=lineHeightInIE;return }}that.initialSize=Math.round(parseFloat(lineHeight)/fluid.uiEnhancer.getTextSizeInPx(that.container,fontSizeMap)*100)/100};fluid.pageEnhancer=function(uiEnhancerOptions){var that=fluid.initLittleComponent("fluid.pageEnhancer");uiEnhancerOptions=fluid.copy(uiEnhancerOptions);uiEnhancerOptions.originalUserOptions=fluid.copy(uiEnhancerOptions);that.uiEnhancerOptions=uiEnhancerOptions;fluid.initDependents(that);fluid.staticEnvironment.uiEnhancer=that.uiEnhancer;return that};fluid.defaults("fluid.pageEnhancer",{gradeNames:["fluid.littleComponent"],components:{uiEnhancer:{type:"fluid.uiEnhancer",container:"body",options:"{pageEnhancer}.uiEnhancerOptions"}}});fluid.demands("fluid.uiOptions.store",["fluid.uiEnhancer"],{funcName:"fluid.cookieStore"})})(jQuery,fluid_1_4);
\ No newline at end of file
index 2e0768f..3e497bb 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var initSliderAria=function(thumb,opts){var ariaDefaults={role:"slider","aria-valuenow":opts.value,"aria-valuemin":opts.min,"aria-valuemax":opts.max};thumb.attr(ariaDefaults)};var initTextfieldSlider=function(that){var textfield=that.locate("textfield");textfield.val(that.model);var sliderOptions=that.options.sliderOptions;sliderOptions.value=that.model;sliderOptions.min=that.options.min;sliderOptions.max=that.options.max;var slider=that.locate("slider").slider(sliderOptions);initSliderAria(that.locate("thumb"),sliderOptions);textfield.change(function(){if(that.isValid(this.value)){if(!that.isInRange(this.value)){this.value=(this.value<that.min)?that.min:that.max}slider.slider("value",this.value);that.updateModel(this.value,this)}else{this.value=that.model}});textfield.keypress(function(evt){if(evt.keyCode!==$.ui.keyCode.ENTER){return true}else{$(evt.target).change();$(fluid.findForm(evt.target)).submit();return false}});slider.bind("slide",function(e,ui){textfield.val(ui.value);that.updateModel(ui.value,slider)})};fluid.textfieldSlider=function(container,options){var that=fluid.initView("fluid.textfieldSlider",container,options);that.model=that.options.value||that.locate("textfield").val();that.min=that.options.min;that.max=that.options.max;initTextfieldSlider(that);that.isInRange=function(value){return(value>=that.min&&value<=that.max)};that.isValid=function(value){return !(isNaN(parseInt(value,10))||isNaN(value))};that.updateModel=function(model,source){if(that.isInRange(model)){that.events.modelChanged.fire(model,that.model,source);that.model=model;that.locate("thumb").attr("aria-valuenow",that.model)}};return that};fluid.defaults("fluid.textfieldSlider",{selectors:{textfield:".flc-textfieldSlider-field",slider:".flc-textfieldSlider-slider",thumb:".ui-slider-handle"},events:{modelChanged:null},sliderOptions:{orientation:"horizontal"},min:0,max:100,value:null})})(jQuery,fluid_1_1);(function($,fluid){var createSelectNode=function(id,selection,list,names){return{ID:id,selection:{valuebinding:selection},optionlist:{valuebinding:list},optionnames:{valuebinding:names}}};var createSimpleBindingNode=function(id,binding){return{ID:id,valuebinding:binding}};var generateTree=function(that,rendererModel){var children=[];children.push(createSelectNode("text-font","selections.textFont","labelMap.textFont.values","labelMap.textFont.names"));children.push(createSelectNode("text-spacing","selections.textSpacing","labelMap.textSpacing.values","labelMap.textSpacing.names"));children.push(createSelectNode("theme","selections.theme","labelMap.theme.values","labelMap.theme.names"));var bgiExplodeOpts={selectID:"background-images",rowID:"background-images-row:",inputID:"background-images-choice",labelID:"background-images-label"};children.push(createSelectNode("background-images","selections.backgroundImages","labelMap.backgroundImages.values","labelMap.backgroundImages.names"));children=children.concat(fluid.explodeSelectionToInputs(that.options.controlValues.backgroundImages,bgiExplodeOpts));var layoutExplodeOpts={selectID:"layout",rowID:"layout-row:",inputID:"layout-choice",labelID:"layout-label"};children.push(createSelectNode("layout","selections.layout","labelMap.layout.values","labelMap.layout.names"));children=children.concat(fluid.explodeSelectionToInputs(that.options.controlValues.layout,layoutExplodeOpts));var tocExplodeOpts={selectID:"toc",rowID:"toc-row:",inputID:"toc-choice",labelID:"toc-label"};children.push(createSelectNode("toc","selections.toc","labelMap.toc.values","labelMap.toc.names"));children=children.concat(fluid.explodeSelectionToInputs(that.options.controlValues.layout,tocExplodeOpts));children.push(createSimpleBindingNode("links-underline","selections.linksUnderline"));children.push(createSimpleBindingNode("links-bold","selections.linksBold"));children.push(createSimpleBindingNode("links-larger","selections.linksLarger"));children.push(createSimpleBindingNode("inputs-larger","selections.inputsLarger"));return{children:children}};var bindHandlers=function(that){var saveButton=that.locate("save");saveButton.click(that.save);that.locate("reset").click(that.reset);that.locate("cancel").click(that.cancel);var form=fluid.findForm(saveButton);$(form).submit(function(){that.save()})};var initPreview=function(that){var previewFrame=that.locate("previewFrame");var previewEnhancer;that.events.modelChanged.addListener(function(model){setTimeout(function(){if(previewEnhancer){previewEnhancer.updateModel(model)}},0)});previewFrame.load(function(){var previewFrameContents=previewFrame.contents();var options={savedSettings:that.model,tableOfContents:that.uiEnhancer.options.tableOfContents,settingsStore:{type:"fluid.uiEnhancer.tempStore"}};previewEnhancer=fluid.uiEnhancer(previewFrameContents,options)})};var createLabelMap=function(options){var labelMap={};for(var item in options.controlValues){labelMap[item]={names:options.strings[item],values:options.controlValues[item]}}return labelMap};var createRenderOptions=function(that){that.model.toc=String(that.model.toc);that.model.backgroundImages=String(that.model.backgroundImages);var aggregateModel=fluid.assembleModel({selections:{model:that.model,applier:that.applier},labelMap:{model:createLabelMap(that.options)}});return{model:aggregateModel.model,applier:aggregateModel.applier,autoBind:true}};var initSliders=function(that){var createOptions=function(settingName){return{listeners:{modelChanged:function(value){that.applier.requestChange(settingName,value)}},value:that.model[settingName]}};var options=createOptions("textSize");fluid.merge(null,options,that.options.textMinSize.options);fluid.initSubcomponents(that,"textMinSize",[that.options.selectors.textMinSizeCtrl,options]);options=createOptions("lineSpacing");fluid.merge(null,options,that.options.lineSpacing.options);fluid.initSubcomponents(that,"lineSpacing",[that.options.selectors.lineSpacingCtrl,options])};var mergeSiteDefaults=function(options,siteDefaults){for(var settingName in options.controlValues){var setting=String(siteDefaults[settingName]);var settingValues=options.controlValues[settingName];if(setting){var index=$.inArray(setting,settingValues);if(index===-1){var defaultIndex=$.inArray("default",settingValues);if(defaultIndex===-1){settingValues.push(setting)}else{settingValues[defaultIndex]=setting}}}}};var setupUIOptions=function(that){that.applier.modelChanged.addListener("*",function(newModel,oldModel,changeRequest){that.events.modelChanged.fire(newModel,oldModel,changeRequest.source)});mergeSiteDefaults(that.options,that.uiEnhancer.defaultSiteSettings);that.events.afterRender.addListener(function(){initSliders(that);bindHandlers(that);initPreview(that)});var rendererOptions=createRenderOptions(that);var template=fluid.selfRender(that.container,generateTree(that,rendererOptions.model),rendererOptions);that.events.afterRender.fire();return template};fluid.uiOptions=function(container,options){var that=fluid.initView("fluid.uiOptions",container,options);that.uiEnhancer=$(document).data("uiEnhancer");that.model=fluid.copy(that.uiEnhancer.model);that.applier=fluid.makeChangeApplier(that.model);var savedModel=that.uiEnhancer.model;var template;that.save=function(){that.events.onSave.fire(that.model);savedModel=fluid.copy(that.model);that.uiEnhancer.updateModel(savedModel)};that.reset=function(){that.events.onReset.fire();that.updateModel(fluid.copy(that.uiEnhancer.defaultSiteSettings),that);that.refreshView()};that.cancel=function(){that.events.onCancel.fire();that.updateModel(fluid.copy(savedModel),that);that.refreshView()};that.refreshView=function(){var rendererOptions=createRenderOptions(that);fluid.reRender(template,that.container,generateTree(that,rendererOptions.model),rendererOptions);that.events.afterRender.fire()};that.updateModel=function(newModel,source){that.events.modelChanged.fire(newModel,that.model,source);fluid.clear(that.model);fluid.model.copyModel(that.model,newModel)};template=setupUIOptions(that);return that};fluid.defaults("fluid.uiOptions",{textMinSize:{type:"fluid.textfieldSlider",options:{min:6,max:30}},lineSpacing:{type:"fluid.textfieldSlider",options:{min:1,max:10}},selectors:{controls:".flc-uiOptions-control",textMinSizeCtrl:".flc-uiOptions-min-text-size",lineSpacingCtrl:".flc-uiOptions-line-spacing",cancel:".flc-uiOptions-cancel",reset:".flc-uiOptions-reset",save:".flc-uiOptions-save",previewFrame:".flc-uiOptions-preview-frame"},events:{modelChanged:null,onSave:null,onCancel:null,onReset:null,afterRender:null},strings:{textFont:["Serif","Sans-Serif","Arial","Verdana","Courier","Times"],textSpacing:["Regular","Wide","Wider","Widest"],theme:["Low Contrast","Medium Contrast","Medium Contrast Grey Scale","High Contrast","High Contrast Inverted"],backgroundImages:["Yes","No"],layout:["Yes","No"],toc:["Yes","No"]},controlValues:{textFont:["serif","sansSerif","arial","verdana","courier","times"],textSpacing:["default","wide1","wide2","wide3"],theme:["lowContrast","default","mediumContrast","highContrast","highContrastInverted"],backgroundImages:["true","false"],layout:["simple","default"],toc:["true","false"]}})})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.textfieldSlider",{gradeNames:["fluid.viewComponent","autoInit"],components:{textfield:{type:"fluid.textfieldSlider.textfield",container:"{textfieldSlider}.dom.textfield",options:{model:"{textfieldSlider}.model",applier:"{textfieldSlider}.applier"}},slider:{type:"fluid.textfieldSlider.slider",container:"{textfieldSlider}.dom.slider",options:{model:"{textfieldSlider}.model",applier:"{textfieldSlider}.applier"}}},selectors:{textfield:".flc-textfieldSlider-field",slider:".flc-textfieldSlider-slider"},events:{modelChanged:null},model:{value:null,min:0,max:100},sliderOptions:{orientation:"horizontal",step:0.1},finalInitFunction:"fluid.textfieldSlider.finalInit"});fluid.textfieldSlider.finalInit=function(that){var sliderOptions=$.extend(true,{},that.options.sliderOptions,that.model);that.slider.initSlider(sliderOptions);that.refreshView=function(){var val=that.model.value;that.textfield.container.val(val);that.slider.setSliderValue(val);that.slider.setSliderAria(val)};that.applier.modelChanged.addListener("value",function(newModel){that.events.modelChanged.fire(newModel.value)});that.events.modelChanged.addListener(that.refreshView);that.refreshView()};fluid.defaults("fluid.textfieldSlider.textfield",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.textfieldSlider.textfield.finalInit"});fluid.textfieldSlider.validateValue=function(model,changeRequest,applier){var oldValue=model.value;var newValue=changeRequest.value;var isValidNum=!isNaN(parseInt(newValue,10));if(isValidNum){if(newValue<model.min){newValue=model.min}else{if(newValue>model.max){newValue=model.max}}changeRequest.value=newValue}else{changeRequest.value=oldValue}};fluid.textfieldSlider.textfield.finalInit=function(that){that.applier.guards.addListener({path:"value",transactional:true},fluid.textfieldSlider.validateValue);that.container.change(function(source){that.applier.requestChange("value",source.target.value)})};fluid.defaults("fluid.textfieldSlider.slider",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.textfieldSlider.slider.finalInit",selectors:{thumb:".ui-slider-handle"}});var initSliderAria=function(thumb,opts){var ariaDefaults={role:"slider","aria-valuenow":opts.value,"aria-valuemin":opts.min,"aria-valuemax":opts.max};thumb.attr(ariaDefaults)};fluid.textfieldSlider.slider.finalInit=function(that){that.slider=that.container.slider(that.model);that.initSlider=function(sliderOptions){var slider=that.slider.slider(sliderOptions);initSliderAria(that.locate("thumb"),sliderOptions)};that.setSliderValue=function(value){that.slider.slider("value",value)};that.setSliderAria=function(value){that.locate("thumb").attr("aria-valuenow",value)};that.slider.bind("slide",function(e,ui){that.applier.requestChange("value",ui.value)})}})(jQuery,fluid_1_4);(function($,fluid){fluid.registerNamespace("fluid.uiOptions.inline");fluid.defaults("fluid.uiOptions.inline",{gradeNames:["fluid.viewComponent"],mergePolicy:{uiOptionsTransform:"noexpand",derivedDefaults:"noexpand"},components:{uiOptionsLoader:{type:"fluid.uiOptions.loader"},templateLoader:{priority:"first",type:"fluid.uiOptions.templateLoader"}},uiOptionsTransform:{transformer:"fluid.uiOptions.mapOptions",config:{"*.templateLoader":"templateLoader","*.templateLoader.*.templatePath.options.value":"prefix","*.uiOptionsLoader":"uiOptionsLoader","*.uiOptionsLoader.container":"container","*.uiOptionsLoader.*.uiOptions":"uiOptions","*.uiOptionsLoader.*.uiOptions.*.textControls":"textControls","*.uiOptionsLoader.*.uiOptions.*.layoutControls":"layoutControls","*.uiOptionsLoader.*.uiOptions.*.linksControls":"linksControls","*.uiOptionsLoader.*.uiOptions.*.preview":"preview","*.uiOptionsLoader.*.uiOptions.*.preview.*.enhancer":"previewEnhancer"}}});fluid.uiOptions.inline.makeCreator=function(componentName,processor){fluid.setGlobalValue(componentName,function(container,options){var defaults=fluid.defaults(componentName);options.container=container;options=processor(options);var mappedOptions=fluid.uiOptions.mapOptions(options,defaults.uiOptionsTransform.config,defaults.mergePolicy,fluid.copy(defaults.derivedDefaults));var that=fluid.initView(componentName,container,mappedOptions);fluid.initDependents(that);return that})};fluid.uiOptions.sortByKeyLength=function(inObject){var keys=[];for(var k in inObject){keys.push(k)}keys.sort(function(a,b){return a.length-b.length});return keys};fluid.uiOptions.mapOptionsRecord=function(options,sortedConfigKeys,config){var opRecs=[{},{},options||{}];var appliers=fluid.transform(opRecs,function(opRec){return fluid.makeChangeApplier(opRec)});fluid.each(sortedConfigKeys,function(origDest){var source=config[origDest];var dest=fluid.uiOptions.expandShortPath(origDest);var applier=appliers[origDest.charAt(0)==="!"?0:1];var value=fluid.get(options,source);if(value){applier.requestChange(dest,value,"ADD");appliers[2].requestChange(source,value,"DELETE")}});return opRecs};fluid.uiOptions.mapOptions=function(options,config,mergePolicy,derivedDefaults){var sortedConfigKeys=fluid.uiOptions.sortByKeyLength(config);var optrecs=fluid.uiOptions.mapOptionsRecord(options,sortedConfigKeys,config);var devrecs=fluid.uiOptions.mapOptionsRecord(derivedDefaults,sortedConfigKeys,config);var mergeOpts=[mergePolicy].concat(devrecs).concat(optrecs);return fluid.merge.apply(null,mergeOpts)};fluid.uiOptions.expandShortPath=function(path){if(path.charAt(0)==="!"){path=path.substring(1)}var strToreplaceFirst="components";var strToreplaceRest="options.components";var newPath=(path.charAt(0)==="*")?path.replace("*",strToreplaceFirst):path;newPath=newPath.replace(/\*/g,strToreplaceRest);return newPath};fluid.defaults("fluid.uiOptions.templateLoader",{gradeNames:["fluid.eventedComponent","autoInit"],finalInitFunction:"fluid.uiOptions.templateLoader.resolveTemplates",templates:{uiOptions:"%prefix/FatPanelUIOptions.html",textControls:"%prefix/UIOptionsTemplate-text.html",layoutControls:"%prefix/UIOptionsTemplate-layout.html",linksControls:"%prefix/UIOptionsTemplate-links.html"},components:{templatePath:{type:"fluid.uiOptions.templatePath"}}});fluid.uiOptions.transformUrls=function(toTransform,prefix){return fluid.transform(toTransform,function(item){return fluid.stringTemplate(item,{"prefix/":prefix})})};fluid.uiOptions.templateLoader.resolveTemplates=function(that){var mapped=fluid.uiOptions.transformUrls(that.options.templates,that.templatePath.options.value);that.resources=fluid.transform(mapped,function(url){return{url:url,forceCache:true}})};fluid.defaults("fluid.uiOptions.templatePath",{gradeNames:["fluid.littleComponent","autoInit"],value:"../html/"});fluid.demands("fluid.uiOptions.textControls",["fluid.uiOptions"],{options:{classnameMap:"{uiEnhancer}.options.classnameMap"}});fluid.demands("fluid.uiOptions.layoutControls",["fluid.uiOptions"],{options:{classnameMap:"{uiEnhancer}.options.classnameMap"}});fluid.demands("fluid.uiOptions.linksControls",["fluid.uiOptions"],{options:{classnameMap:"{uiEnhancer}.options.classnameMap"}});fluid.uiOptions.onReadyFirer=function(uiOptionsLoader,uiOptions){uiOptionsLoader.events.onReady.fire(uiOptionsLoader,uiOptions)};fluid.defaults("fluid.uiOptions.loader",{gradeNames:["fluid.viewComponent","autoInit"],resources:"{templateLoader}.resources",finalInitFunction:"fluid.uiOptions.loader.finalInit",events:{onUIOptionsTemplateReady:null,onUIOptionsComponentReady:null,onUIOptionsReadyBridge:{event:"onUIOptionsComponentReady",args:["{fluid.uiOptions.loader}","{arguments}.0"]},onReady:null},listeners:{onUIOptionsReadyBridge:{listener:fluid.uiOptions.onReadyFirer,priority:"last"}},components:{uiOptions:{type:"fluid.uiOptions",container:"{loader}.container",createOnEvent:"onUIOptionsTemplateReady",options:{events:{onUIOptionsComponentReady:"{loader}.events.onUIOptionsComponentReady"}}}}});fluid.uiOptions.loader.finalInit=function(that){fluid.fetchResources(that.options.resources,function(){that.events.onUIOptionsTemplateReady.fire()})};fluid.defaults("fluid.uiOptions",{gradeNames:["fluid.viewComponent","autoInit"],components:{textControls:{type:"fluid.uiOptions.textControls",container:"{uiOptions}.dom.textControls",createOnEvent:"onUIOptionsComponentReady",options:{model:"{uiOptions}.model",applier:"{uiOptions}.applier",events:{onUIOptionsRefresh:"{uiOptions}.events.onUIOptionsRefresh"}}},layoutControls:{type:"fluid.uiOptions.layoutControls",container:"{uiOptions}.dom.layoutControls",createOnEvent:"onUIOptionsComponentReady",options:{model:"{uiOptions}.model",applier:"{uiOptions}.applier",events:{onUIOptionsRefresh:"{uiOptions}.events.onUIOptionsRefresh"}}},linksControls:{type:"fluid.uiOptions.linksControls",container:"{uiOptions}.dom.linksControls",createOnEvent:"onUIOptionsComponentReady",options:{model:"{uiOptions}.model",applier:"{uiOptions}.applier",events:{onUIOptionsRefresh:"{uiOptions}.events.onUIOptionsRefresh"}}},preview:{type:"fluid.uiOptions.preview",createOnEvent:"onUIOptionsComponentReady",container:"{uiOptions}.dom.previewFrame"},eventBinder:{type:"fluid.uiOptions.eventBinder"}},selectors:{textControls:".flc-uiOptions-text-controls",layoutControls:".flc-uiOptions-layout-controls",linksControls:".flc-uiOptions-links-controls",cancel:".flc-uiOptions-cancel",reset:".flc-uiOptions-reset",save:".flc-uiOptions-save",previewFrame:".flc-uiOptions-preview-frame"},events:{onSave:null,onCancel:null,onReset:null,onAutoSave:null,modelChanged:null,onUIOptionsRefresh:null,onUIOptionsComponentReady:null},finalInitFunction:"fluid.uiOptions.finalInit",resources:{template:"{templateLoader}.resources.uiOptions"},autoSave:false});fluid.uiOptions.finalInit=function(that){that.applier.requestChange("selections",fluid.copy(that.settingsStore.fetch()));that.save=function(){that.events.onSave.fire(that.model.selections);var savedSelections=fluid.copy(that.model.selections);that.settingsStore.save(savedSelections)};that.saveAndApply=function(){that.save();that.events.onUIOptionsRefresh.fire()};that.reset=function(){that.updateModel(fluid.copy(that.settingsStore.options.defaultSiteSettings));that.events.onReset.fire(that);that.events.onUIOptionsRefresh.fire()};that.cancel=function(){that.events.onCancel.fire();that.updateModel(that.settingsStore.fetch());that.events.onUIOptionsRefresh.fire()};that.updateModel=function(newModel){that.applier.requestChange("selections",newModel)};that.applier.modelChanged.addListener("selections",function(newModel,oldModel,changeRequest){that.events.modelChanged.fire(newModel,oldModel,changeRequest.source);if(that.options.autoSave){that.events.onAutoSave.fire()}});var bindHandlers=function(that){var saveButton=that.locate("save");if(saveButton.length>0){saveButton.click(that.saveAndApply);var form=fluid.findForm(saveButton);$(form).submit(function(){that.saveAndApply()})}that.locate("reset").click(that.reset);that.locate("cancel").click(that.cancel)};var bindEventHandlers=function(that){that.events.onAutoSave.addListener(function(){that.save()})};fluid.fetchResources(that.options.resources,function(){that.container.append(that.options.resources.template.resourceText);bindHandlers(that);bindEventHandlers(that);that.events.onUIOptionsComponentReady.fire(that)})};fluid.defaults("fluid.uiOptions.eventBinder",{gradeNames:["fluid.eventedComponent","autoInit"]});var initModel=function(that){fluid.each(that.options.controlValues,function(item,key){that.applier.requestChange("labelMap."+key,{values:that.options.controlValues[key],names:that.options.strings[key],classes:that.options.classnameMap[key]})})};var createSliderNode=function(that,item){return{decorators:{type:"fluid",func:"fluid.textfieldSlider",options:{listeners:{modelChanged:function(value){that.applier.requestChange("selections."+item,value)}},model:{min:that.options[item].min,max:that.options[item].max,value:that.model.selections[item]}}}}};fluid.uiOptions.controlsFinalInit=function(that){initModel(that);that.refreshView()};fluid.uiOptions.lateRefreshViewBinder=function(that){that.refreshView=function(){that.renderer.refreshView()}};fluid.defaults("fluid.uiOptions.textControls",{gradeNames:["fluid.rendererComponent","autoInit"],strings:{textFont:["Default","Times New Roman","Comic Sans","Arial","Verdana"],theme:["Default","Black on white","White on black","Black on yellow","Yellow on black"]},controlValues:{textFont:["default","times","comic","arial","verdana"],theme:["default","bw","wb","by","yb"]},textSize:{min:1,max:2},lineSpacing:{min:1,max:2},selectors:{textFont:".flc-uiOptions-text-font",theme:".flc-uiOptions-theme",textSize:".flc-uiOptions-min-text-size",lineSpacing:".flc-uiOptions-line-spacing"},events:{onUIOptionsRefresh:null},listeners:{onUIOptionsRefresh:"{textControls}.refreshView"},preInitFunction:"fluid.uiOptions.lateRefreshViewBinder",finalInitFunction:"fluid.uiOptions.controlsFinalInit",produceTree:"fluid.uiOptions.textControls.produceTree",resources:{template:"{templateLoader}.resources.textControls"}});fluid.uiOptions.textControls.produceTree=function(that){var tree={};for(var item in that.model.selections){if(item==="textFont"||item==="theme"){tree[item]={optionnames:"${labelMap."+item+".names}",optionlist:"${labelMap."+item+".values}",selection:"${selections."+item+"}",decorators:{type:"fluid",func:"fluid.uiOptions.selectDecorator",options:{styles:that.options.classnameMap[item]}}}}else{if(item==="textSize"||item==="lineSpacing"){tree[item]=createSliderNode(that,item)}}}return tree};fluid.demands("fluid.uiOptions.selectDecorator","fluid.uiOptions",{container:"{arguments}.0"});fluid.defaults("fluid.uiOptions.selectDecorator",{gradeNames:["fluid.viewComponent","autoInit"],finalInitFunction:"fluid.uiOptions.selectDecorator.finalInit",styles:{preview:"fl-preview-theme"}});fluid.uiOptions.selectDecorator.finalInit=function(that){fluid.each($("option",that.container),function(option){var styles=that.options.styles;$(option).addClass(styles.preview+" "+styles[fluid.value(option)])})};fluid.defaults("fluid.uiOptions.layoutControls",{gradeNames:["fluid.rendererComponent","autoInit"],selectors:{layout:".flc-uiOptions-layout",toc:".flc-uiOptions-toc"},events:{onUIOptionsRefresh:null},listeners:{onUIOptionsRefresh:"{layoutControls}.refreshView"},preInitFunction:"fluid.uiOptions.lateRefreshViewBinder",finalInitFunction:"fluid.uiOptions.controlsFinalInit",produceTree:"fluid.uiOptions.layoutControls.produceTree",resources:{template:"{templateLoader}.resources.layoutControls"}});fluid.uiOptions.layoutControls.produceTree=function(that){var tree={};for(var item in that.model.selections){if(item==="layout"||item==="toc"){tree[item]="${selections."+item+"}"}}return tree};fluid.defaults("fluid.uiOptions.linksControls",{gradeNames:["fluid.rendererComponent","autoInit"],selectors:{links:".flc-uiOptions-links",inputsLarger:".flc-uiOptions-inputs-larger"},events:{onUIOptionsRefresh:null},listeners:{onUIOptionsRefresh:"{linksControls}.refreshView"},preInitFunction:"fluid.uiOptions.lateRefreshViewBinder",finalInitFunction:"fluid.uiOptions.controlsFinalInit",produceTree:"fluid.uiOptions.linksControls.produceTree",resources:{template:"{templateLoader}.resources.linksControls"}});fluid.uiOptions.linksControls.produceTree=function(that){var tree={};for(var item in that.model.selections){if(item==="links"||item==="inputsLarger"){tree[item]="${selections."+item+"}"}}return tree};fluid.defaults("fluid.uiOptions.preview",{gradeNames:["fluid.viewComponent","autoInit"],components:{enhancer:{type:"fluid.uiEnhancer",createOnEvent:"onReady",options:{settingsStore:{type:"fluid.uiEnhancer.tempStore"}}},eventBinder:{type:"fluid.uiOptions.preview.eventBinder",createOnEvent:"onReady"}},invokers:{updateModel:{funcName:"fluid.uiOptions.preview.updateModel",args:["{preview}","{uiOptions}.model.selections"]}},finalInitFunction:"fluid.uiOptions.preview.finalInit",events:{onReady:null},templateUrl:"UIOptionsPreview.html"});fluid.uiOptions.preview.updateModel=function(that,selections){setTimeout(function(){if(that.enhancer){that.enhancer.updateModel(selections)}},0)};fluid.uiOptions.preview.finalInit=function(that){that.container.attr("src",that.options.templateUrl);that.container.load(function(){that.enhancerContainer=$("body",that.container.contents());that.events.onReady.fire()})};fluid.demands("fluid.uiEnhancer","fluid.uiOptions.preview",{funcName:"fluid.uiEnhancer",args:["{preview}.enhancerContainer","{options}"]});fluid.defaults("fluid.uiOptions.preview.eventBinder",{gradeNames:["fluid.eventedComponent","autoInit"]});fluid.demands("fluid.uiOptions.preview.eventBinder",["fluid.uiOptions.preview","fluid.uiOptions"],{options:{listeners:{"{uiOptions}.events.modelChanged":"{preview}.updateModel"}}})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uiOptions/js/URLUtilities.js b/docs/jscripts/infusion/components/uiOptions/js/URLUtilities.js
new file mode 100644 (file)
index 0000000..884523e
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.generate=function(n,generator){var togo=[];for(var i=0;i<n;++i){togo[i]=typeof (generator)==="function"?generator.call(null,i):generator}return togo};fluid.registerNamespace("fluid.url");fluid.url.generateDepth=function(depth){return fluid.generate(depth,"../").join("")};fluid.url.parsePathInfo=function(pathInfo){var togo={};var segs=pathInfo.split("/");if(segs.length>0){var top=segs.length-1;var dotpos=segs[top].indexOf(".");if(dotpos!==-1){togo.extension=segs[top].substring(dotpos+1);segs[top]=segs[top].substring(0,dotpos)}}togo.pathInfo=segs;return togo};fluid.url.parsePathInfoTrim=function(pathInfo){var togo=fluid.url.parsePathInfo(pathInfo);if(togo.pathInfo[togo.pathInfo.length-1]===""){togo.pathInfo.length--}return togo};fluid.url.collapseSegs=function(segs,from,to){var togo="";if(from===undefined){from=0}if(to===undefined){to=segs.length}for(var i=from;i<to-1;++i){togo+=segs[i]+"/"}if(to>from){togo+=segs[to-1]}return togo};fluid.url.makeRelPath=function(parsed,index){var togo=fluid.kettle.collapseSegs(parsed.pathInfo,index);if(parsed.extension){togo+="."+parsed.extension}return togo};fluid.url.cononocolosePath=function(pathInfo){var consume=0;for(var i=0;i<pathInfo.length;++i){if(pathInfo[i]===".."){++consume}else{if(consume!==0){pathInfo.splice(i-consume*2,consume*2);i-=consume*2;consume=0}}}return pathInfo};fluid.url.parseUri=function(str){var o=fluid.url.parseUri.options,m=o.parser[o.strictMode?"strict":"loose"].exec(str),uri={},i=14;while(i--){uri[o.key[i]]=m[i]||""}uri[o.q.name]={};uri[o.key[12]].replace(o.q.parser,function($0,$1,$2){if($1){uri[o.q.name][$1]=$2}});return uri};fluid.url.parseUri.options={strictMode:true,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}};fluid.url.parseSegs=function(url){var parsed=fluid.url.parseUri(url);var parsedSegs=fluid.url.parsePathInfoTrim(parsed.directory);return parsedSegs.pathInfo};fluid.url.isAbsoluteUrl=function(url){var parseRel=fluid.url.parseUri(url);return(parseRel.host||parseRel.protocol||parseRel.directory.charAt(0)==="/")};fluid.url.computeRelativePrefix=function(outerLocation,iframeLocation,relPath){if(fluid.url.isAbsoluteUrl(relPath)){return relPath}var relSegs=fluid.url.parsePathInfo(relPath).pathInfo;var parsedOuter=fluid.url.parseSegs(outerLocation);var parsedRel=parsedOuter.concat(relSegs);fluid.url.cononocolosePath(parsedRel);var parsedInner=fluid.url.parseSegs(iframeLocation);var seg=0;for(;seg<parsedRel.length;++seg){if(parsedRel[seg]!=parsedInner[seg]){break}}var excess=parsedInner.length-seg;var back=fluid.url.generateDepth(excess);var front=fluid.url.collapseSegs(parsedRel,seg);return back+front}})(jQuery,fluid_1_4);
\ No newline at end of file
index 4a44792..bd31f11 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var STATE_INITIAL="state_initial",STATE_CHANGED="state_changed",STATE_REVERTED="state_reverted";function defaultRenderer(that,targetContainer){var markup="<span class='flc-undo'><span class='flc-undo-undoContainer'>[<a href='#' class='flc-undo-undoControl'>undo</a>]</span><span class='flc-undo-redoContainer'>[<a href='#' class='flc-undo-redoControl'>redo</a>]</span></span>";var markupNode=$(markup);targetContainer.append(markupNode);return markupNode}function refreshView(that){if(that.state===STATE_INITIAL){that.locate("undoContainer").hide();that.locate("redoContainer").hide()}else{if(that.state===STATE_CHANGED){that.locate("undoContainer").show();that.locate("redoContainer").hide()}else{if(that.state===STATE_REVERTED){that.locate("undoContainer").hide();that.locate("redoContainer").show()}}}}var bindHandlers=function(that){that.locate("undoControl").click(function(){if(that.state!==STATE_REVERTED){fluid.model.copyModel(that.extremalModel,that.component.model);that.component.updateModel(that.initialModel,that);that.state=STATE_REVERTED;refreshView(that);that.locate("redoControl").focus()}return false});that.locate("redoControl").click(function(){if(that.state!==STATE_CHANGED){that.component.updateModel(that.extremalModel,that);that.state=STATE_CHANGED;refreshView(that);that.locate("undoControl").focus()}return false});return{modelChanged:function(newModel,oldModel,source){if(source!==that){that.state=STATE_CHANGED;fluid.model.copyModel(that.initialModel,oldModel);refreshView(that)}}}};fluid.undoDecorator=function(component,userOptions){var that=fluid.initView("undo",null,userOptions);that.container=that.options.renderer(that,component.container);fluid.initDomBinder(that);fluid.tabindex(that.locate("undoControl"),0);fluid.tabindex(that.locate("redoControl"),0);that.component=component;that.initialModel={};that.extremalModel={};fluid.model.copyModel(that.initialModel,component.model);fluid.model.copyModel(that.extremalModel,component.model);that.state=STATE_INITIAL;refreshView(that);var listeners=bindHandlers(that);that.returnedOptions={listeners:listeners};return that};fluid.defaults("undo",{selectors:{undoContainer:".flc-undo-undoContainer",undoControl:".flc-undo-undoControl",redoContainer:".flc-undo-redoContainer",redoControl:".flc-undo-redoControl"},renderer:defaultRenderer})})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){var STATE_INITIAL="state_initial",STATE_CHANGED="state_changed",STATE_REVERTED="state_reverted";function defaultRenderer(that,targetContainer){var str=that.options.strings;var markup="<span class='flc-undo'><a href='#' class='flc-undo-undoControl'>"+str.undo+"</a><a href='#' class='flc-undo-redoControl'>"+str.redo+"</a></span>";var markupNode=$(markup).attr({role:"region","aria-live":"polite","aria-relevant":"all"});targetContainer.append(markupNode);return markupNode}function refreshView(that){if(that.state===STATE_INITIAL){that.locate("undoContainer").hide();that.locate("redoContainer").hide()}else{if(that.state===STATE_CHANGED){that.locate("undoContainer").show();that.locate("redoContainer").hide()}else{if(that.state===STATE_REVERTED){that.locate("undoContainer").hide();that.locate("redoContainer").show()}}}}var bindHandlers=function(that){that.locate("undoControl").click(function(){if(that.state!==STATE_REVERTED){fluid.model.copyModel(that.extremalModel,that.component.model);that.component.updateModel(that.initialModel,that);that.state=STATE_REVERTED;refreshView(that);that.locate("redoControl").focus()}return false});that.locate("redoControl").click(function(){if(that.state!==STATE_CHANGED){that.component.updateModel(that.extremalModel,that);that.state=STATE_CHANGED;refreshView(that);that.locate("undoControl").focus()}return false});return{modelChanged:function(newModel,oldModel,source){if(source!==that){that.state=STATE_CHANGED;fluid.model.copyModel(that.initialModel,oldModel);refreshView(that)}}}};fluid.undoDecorator=function(component,userOptions){var that=fluid.initLittleComponent("undo",userOptions);that.container=that.options.renderer(that,component.container);fluid.initDomBinder(that);fluid.tabindex(that.locate("undoControl"),0);fluid.tabindex(that.locate("redoControl"),0);that.component=component;that.initialModel={};that.extremalModel={};fluid.model.copyModel(that.initialModel,component.model);fluid.model.copyModel(that.extremalModel,component.model);that.state=STATE_INITIAL;refreshView(that);var listeners=bindHandlers(that);that.returnedOptions={listeners:listeners};return that};fluid.defaults("undo",{selectors:{undoContainer:".flc-undo-undoControl",undoControl:".flc-undo-undoControl",redoContainer:".flc-undo-redoControl",redoControl:".flc-undo-redoControl"},strings:{undo:"undo edit",redo:"redo edit"},renderer:defaultRenderer})})(jQuery,fluid_1_4);
\ No newline at end of file
index eec74c1..5683b36 100644 (file)
 Infusion Uploader Read Me
 
-1) Upgrading
-2) Known Issues
-3) Troubleshooting
-4) Running the Uploader with out a Server
+1) Progressive Enhancement
+2) Upgrading
+3) Known Issues
+4) Troubleshooting
+5) Running the Uploader with out a Server
+
+--------------------------------------
+
+PROGRESSIVE ENHANCEMENT:
+
+As of Infusion 1.3, the Uploader automatically delivers the best version of the component 
+possible, based on the features supported by a user's browser. There are three flavours of the 
+Uploader:
+
+    1. Single file: delivered to browsers that don't support JavaScript, Flash or HTML 5
+    2. Flash with SWFUpload: delivered to older browsers with JavaScript enabled (especially IE)
+    3. HTML 5: the best and most widely-supported version of Uploader, suitable for modern browsers
+    
+If you don't want to offer a particular version of Uploader to your users, you can simply omit the 
+appropriate Support.js file from your page. So, for example, if you don't want to deliver Flash to 
+your users, simply don't include FlashUploaderSupport.js and Flash9UploaderSupport.js in your page. 
+To do this, you will have to include all the required files individually, instead of using a single 
+concatenated file.
 
 --------------------------------------
 
 UPGRADING from previous versions:
 
-Before upgrading from Infusion 0.5 or earlier, please refer to the Uploader API documentation and the 
-latest example code. The Fluid Uploader was extensively refactored in the 0.6 release, and a fresh new 
-API has been introduced.
+Before upgrading from Infusion 1.2 or earlier, please refer to the Uploader API documentation and the 
+latest example code. The Fluid Uploader was extensively refactored in the 1.3 release with the 
+introduction of HTML 5 support. The API is expected to fully stabilize to a production level after 
+Infusion 1.4.
 
-Please refer to the Uploader API documentation on the Fluid Wiki and the 
-Infusion 1.0 example code before using the Uploader with an existing integration. 
-http://wiki.fluidproject.org/display/fluid/Uploader+API
+Uploader includes automatic backwards compatibility for Infusion 1.2-era options, which can be enabled
+simply by including the following files in your page:
+    ModelTransformations.js
+    UploaderCompatibility-Infusion1.2.js
 
 --------------------------------------
 
 KNOWN ISSUES: 
 
-* To support Flash 10 (released on 9/26/2008), the Uploader required a new version of the SWFUpload 
-  Flash component (2.2.0 beta 3). This new version, still in beta, still has numerous bugs. We have 
-  worked around many of the bugs and inconsistencies in the SWFUpload code, but there are still 
-  significant compromises and issues in this release. For this reason we do not consider this version 
-  of the Uploader to be production-ready. 
+Uploader and HTML 5:
+
+* Uploading more than one file at a time without Flash requires a reasonably up-to-date browser with
+  support for the following open web technologies, referred to under the umbrella of "HTML 5":
+    - Multiple file form elements
+    - XmlHTTPRequest Level 2
+    - FormData
+    - File API
+
+* The following browsers will support the HTML 5 version of the Uploader:
+    - Firefox 3.6 or higher
+    - Safari 4 or higher
+    - Google Chrome
+
+  All others will automatically receive the Flash or single file versions of the Uploader depending 
+  on browser capabilities.
+    
+* Firefox 3.6 has only partial support for HTML 5 uploads, and will load the entire file into browser
+  memory. This causes a risk of crashing with very large files on computers with less memory. As a 
+  result, we've included an additional option called "legacyBrowserFileLimit," allowing file sizes to 
+  be specially capped in Firefox 3.6. The default value for this option is 100 MB.
+
+* The Uploader's HTML 5 implementation doesn't currently support filtering based on file types.
+  
+* The HTML 5 implementation is inconsistent with the Flash version when handling the 
+  queueSettings.fileSize limit option, causing it to be interpreted as MB instead of KB.
+
+Uploader and Flash:
 
-  In the previous version of the Uploader, the Flash component worked completely "behind the scenes". 
-  To support Flash 10, the Uploader displays a Flash-based "Browse files..." button in place of a 
-  HTML button. The Flash-based button presents the following quirks:
+* As of Infusion 1.3, the Flash version of the Uploader is only delivered to users with older 
+  browsers that lack HTML 5 support, such as Firefox 3.5 and below and Internet Explorer. Due to 
+  ongoing accessibility and stability issues with Flash and SWFUpload, we encourage you and your 
+  users to upgrade to an HTML 5-compatible browser such as Firefox 3.6+, Safari 4+, or Chrome.
+
+* The Flash 10-based implementation of the Uploader has a number of systemic bugs an accessibility 
+issues, and is deprecated for all browsers except Internet Explorer on Windows. Some issues include:
   
-      In Firefox and IE, the Flash-based Browse button does not size correctly when the text/page 
+      - In Firefox and IE, the Flash-based "Browse" button does not size correctly when the text/page 
       is resized or zoomed.
 
-      In Firefox (FF):
-      - The AIRA role for the Browse button is read correctly as "button" but the text of the button, 
-        "Browse Files", is ignored.
-      - The Flash-based Browse button traps keyboard navigation, refusing to give up focus without a 
-        mouse click. 
+      - In most browsers, the Flash-based "Browse" button is not  keyboard navigable and may trap
+      keyboard navigation, refusing to give up focus without a mouse click. 
       
-      In Internet Explorer (IE):
-      - AIRA is not supported by Internet Explorer.
+      - When the user presses the Stop button, the Uploader waits until the current file is complete
+      before stopping the upload process.
+
+--------------------------------------
 
-    We are exploring work-arounds for most of these issues, and will have a patch out as soon 
-    as possible to fix them.
+TROUBLESHOOTING UPLOADER AND FLASH:
 
-* In previous versions of the Uploader the upload process would stop immediately at the moment that 
-  the Stop Upload button was clicked.
-   
-  With Infusion 0.8, we wait for the current file to complete or to error before we stop the upload 
-  process. This avoids a serious bug in the SWFUploader where the Upload process could get stuck when 
-  the Upload process as resumed.
+* When running the Flash version of the Uploader on a local system without a server, you may need to 
+  modify some of your Flash settings to allow the local SWFUpload object to access your file system. 
+  To do so, follow these directions:
 
+  1. Open your browser
+  2. Browse to:
+     http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html
+  3. In the Flash Settings panel, click "Edit locations..."
+  4. Select "Add location..."
+  5. Click "Browse for folder..."
+  6. Select the local /src/webapp/lib/swfupload/flash/ directory that contains the swfupload.swf file
+  7. Restart your browser
 
---------------------------------------
+  You should be good to go! 
 
-TROUBLE SHOOTING:
+  However, if you move your installation, you'll need to do this all over again. There are settings 
+  that will allow the file to be run from any location on your local machine but these instructions 
+  are the minimum settings and therefore pose the least security risk.
 
-* When running the Uploader sample code on a local system without a server, check to make 
-  sure that you have followed the instructions below under "RUNNING THE UPLOADER ON A 
-  LOCAL SYSTEM WITHOUT A SERVER". 
+  These settings are global and do not need to repeated for every browser on a given system.
 
 * If you see this error in your console: 
-  [Exception... "'Invalid function name' when calling method: [nsIDOMEventListener::handleEvent]" 
-  nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "<unknown>" data: no]
+     [Exception... "'Invalid function name' when calling method: [nsIDOMEventListener::handleEvent]" 
+     nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "<unknown>" data: no]
 
-  The flashUrl option is probably wrong. Check that first. 
+  the flashUrl option is probably wrong. Check that first. 
 
 
 --------------------------------------
@@ -74,30 +125,12 @@ TROUBLE SHOOTING:
 RUNNING THE UPLOADER ON A LOCAL SYSTEM WITHOUT A SERVER
 
 Running the Uploader locally without a server is intended for basic testing purposes only. The 
-DemoUploadManager provides a simulated conversation with the server, but it doesn't represent a
-fully accurate picture of the component's behaviour when used in a real deployment environment.
+DemoRemote object provides a simulated conversation with the server, but it doesn't represent an
+accurate picture of the component's behaviour when used in a real deployment environment.
 
-So see the Uploader in action with a real server, have a look at Fluid's Image Gallery demo:
+To see the Uploader in action with a real server, have a look at Fluid's Image Gallery demo:
 
 http://build.fluidproject.org:8080/sakai-imagegallery2-web/site/AddImages/
 
 
-Additionally, you may need to modify some of your Flash settings to allow the local SWFUpload 
-object to access your file system. To do so, follow these directions:
-
-1. Open your browser
-2. Browse to:
-   http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html
-3. In the Flash Settings panel, click "Edit locations..."
-4. Select "Add location..."
-5. Click "Browse for folder..."
-6. Select the local /src/webapp/lib/swfupload/flash/ directory that contains the swfupload.swf file
-7. Restart your browser
-
-You should be good to go! 
-
-However, if you move your installation, you'll need to do this all over again. There are settings 
-that will allow the file to be run from any location on your local machine but these instructions 
-are the minimum settings and therefor pose the least security risk.
 
-These settings are global and do not need to repeated for every browser on a given system. 
index d66650a..58950e8 100644 (file)
@@ -1,76 +1,63 @@
-.fl-uploader{width:500px;position:relative;display:block;clear:both;padding:1em 2em;}
-.fl-uploader-manually-degrade,.fl-uploader-manually-enhance{display:block;width:434px;clear:both;float:none;text-align:center;padding:1em;}
-.fl-ProgEnhance-basic div input{margin-top:.6em;}
-.fl-ProgEnhance-enhanced{display:none;}
-.fl-progEnhance-basic div input{margin-top:.6em;}
-.fl-progEnhance-enhanced{display:none;}
-.fl-uploader td,.fl-uploader th{border:none;}
-.fl-uploader table{border-collapse:separate;margin:0;}
-.fl-uploader form{height:auto!important;}
-.fl-uploader button{background-color:#4F99D3;border-color:#2A3990;border-width:1px;border-style:solid;font-weight:bolder;font-size:1.06em;color:#FFF;height:32px;padding-left:2em;padding-right:2em;margin-right:1em;outline:none;cursor:pointer;}
-.fl-uploader button:focus,.fl-uploader button.focus{outline:2px solid #142B8C;}
-.fl-uploader button:hover{background-color:#115F8F;}
-.fl-uploader button.fl-uploader-button-default{background-color:#74B74A;border-color:#006838;}
-.fl-uploader button.fl-uploader-button-default:hover{background-color:#519325;border-color:#142B8C;}
-.fl-uploader button.fl-uploader-button-cancel{background-color:#D03E4F;border-color:#BF1E2D;}
-.fl-uploader button.fl-uploader-button-cancel:hover{background-color:#9E182B;border-color:#142B8C;}
-.fl-uploader button.fl-uploader-dim{background-color:#999;border-color:#666;}
-.fl-uploader button.fl-uploader-dim:hover{background-color:#999;border-color:#666;}
-.fl-uploader button span.text-description{display:none;}
-.fl-uploader a.fl-uploader-browse{background-image:url(../images/add.png);background-attachment:scroll;background-repeat:no-repeat;background-position:5px center;padding:4px 7px 4px 26px;border:none;white-space:nowrap;color:#427ABE;font-weight:normal;cursor:pointer;}
-html>body .fl-uploader a.fl-uploader-browse{padding:3px 6px 3px 25px;border:1px solid transparent;}
-.fl-uploader a.fl-uploader-browse:hover{border:1px solid #CCC;background-color:#FFF;}
-.fl-uploader a.fl-uploader-browse:focus,.fl-uploader a.fl-uploader-browse.focus{outline:2px solid #142B8C;background-color:#FFF;}
-.fl-uploader .fl-uploader-browse-overlay{position:absolute;z-index:1;}
-.fl-uploader-queue-wrapper caption{display:none;}
-.fl-uploader-queue-header{background-color:transparent;color:#666;}
-.fl-uploader-queue-header th{text-align:left;font-size:.94em;font-weight:normal;padding:6px;}
-.fl-uploader-queue-footer{position:relative;background-color:#E6E6E6;border:1px solid #999;}
-.fl-uploader-queue-footer table{width:100%;position:relative;z-index:6;}
-.fl-uploader-queue-footer td{padding:8px 6px;vertical-align:middle;font-size:1.07em;font-weight:bolder;color:#666;}
-.fl-uploader-footer-buttons{text-align:right;}
-.fl-scroller{display:block;position:relative;background-color:white;overflow:auto;overflow-x:hidden;overflow-y:auto;border-width:1px 1px 0;border-style:solid;border-color:#999;}
-.fl-scroller .fl-scroller-inner{position:relative;overflow:hidden;}
-.fl-uploader-queue{position:relative;font-size:.9em;color:#333;z-index:6;}
-html>body .fl-uploader-queue{width:100%;}
-.fl-uploader-queue:focus{border:1px solid #142B8C;}
-.fl-uploader-queue tr:focus,.fl-uploader-queue tr.fl-uploader-file-focus{background-color:#FFF9DC;}
-.fl-uploader-queue tr{background-color:transparent;}
-.fl-uploader-queue tr.fl-uploader-file-state-ready:hover,.fl-uploader-queue tr.fl-uploader-file-hover{background-color:#FFF9DC;}
+.fl-uploader{width:434px;position:relative;clear:both;}
+table.fl-uploader-header{width:434px;margin-bottom:0;border-bottom:1px solid #999;color:#333;font-size:.9em;font-weight:bold;}
+.fl-uploader-header tr{width:100%;}
+.fl-uploader-header th{text-align:left;border:none;}
+.fl-uploader-header th.fl-uploader-file-name{width:27em;}
+.fl-uploader-header .fl-uploader-file-size{text-align:right;white-space:nowrap;}
+.fl-uploader-browse-instructions{background-color:#F0F9FF;color:#666;text-align:center;padding:6px;}
+.fl-scrollable-scroller{display:block;position:relative;overflow:auto;overflow-x:hidden;overflow-y:auto;max-height:160px;}
+.fl-scrollable-inner{position:relative;overflow:hidden;}
+table.fl-uploader-queue{margin:0;}
 .fl-uploader-queue tr.fl-uploader-dim{color:#666;}
-.fl-uploader-queue td,.fl-uploader-queue th{text-align:left;padding:3px 6px;border-bottom:1px solid #BBCFDC;}
-.fl-uploader-queue-wrapper .fl-uploader-file-name{width:322px;overflow:hidden;}
-.fl-uploader-queue-wrapper .fl-uploader-file-size{text-align:right;width:4em;white-space:nowrap;}
-.fl-uploader-queue .fl-uploader-file-action{border:1px solid transparent;height:20px;width:20px;overflow:hidden;background-color:transparent;background-attachment:scroll;background-repeat:no-repeat;background-position:1px 1px;outline:0;padding:0;margin:0;outline:none;}
-.fl-uploader-queue .fl-uploader-file-action:hover{border:1px solid transparent;background-color:transparent;cursor:auto;}
+.fl-uploader-queue caption{display:none;}
+.fl-uploader-queue tbody{z-index:6;display:block;font-size:.9em;}
+.fl-uploader-queue tr:focus,.fl-uploader-queue tr.fl-uploader-file-state-ready:hover{background-color:#FFF9DC;}
+.fl-uploader-queue td{border:none;border-bottom:1px solid #C5C5C5;margin:0;text-align:left;padding:3px 6px;}
+.fl-uploader-queue td.fl-uploader-file-name{width:26em;overflow:hidden;font-weight:normal;}
+.fl-uploader-queue .fl-uploader-file-size{text-align:right;white-space:nowrap;width:6em;}
+.fl-uploader-queue .fl-uploader-file-actions,.fl-uploader-header .fl-uploader-file-actions{padding-right:15px;white-space:nowrap;text-align:center;}
 .fl-uploader-queue .fl-uploader-file-actions .fl-uploader-dim{border:1px solid transparent;background-color:transparent;cursor:auto;}
-.fl-uploader-queue .fl-uploader-file-action-remove{background-image:url(../images/remove.png);cursor:pointer!important;}
-.fl-uploader-queue .fl-uploader-file-action-remove:hover,.fl-uploader-queue tr.fl-uploader-file-state-ready:focus .fl-uploader-file-action-remove,.fl-uploader-queue tr.focus .fl-uploader-file-action-remove{border:1px solid #CCC;background-color:#FFF;}
-.fl-uploader-queue .fl-uploader-file-action-remove:focus,.fl-uploader-queue .fl-uploader-file-action-remove.focus{background-color:#4F99D3;outline:none;}
-.fl-uploader-queue .fl-uploader-file-state-uploaded th,.fl-uploader-queue tr.fl-uploader-file-state-uploaded th,.fl-uploader-queue tr.focus th{border-left:4px solid #74B74A;color:#5E7A5E;}
-.fl-uploader-queue .fl-uploader-file-state-uploaded td{color:#5E7A5E;}
-.fl-uploader-queue .fl-uploader-file-state-uploaded .fl-uploader-file-action{background-image:url(../images/tick.png);}
+.fl-uploader-file-actions button{border:1px solid transparent;height:22px;width:24px;overflow:hidden;background-color:transparent;background-attachment:scroll;background-repeat:no-repeat;background-position:1px 1px;padding:0;margin:0;}
+.fl-uploader-file-actions .fl-uploader-file-action-remove{background-image:url(../images/remove.png);cursor:pointer;}
+.fl-uploader-file-actions .fl-uploader-file-action-remove:hover,tr:focus .fl-uploader-file-actions .fl-uploader-file-action-remove{border:1px solid #CCC;background-color:#FFF;}
+tr.fl-uploader-file-state-uploaded button{background-image:url(../images/tick.png);}
+tr.fl-uploader-file-state-uploaded .fl-uploader-file-name{border-left:4px solid #74B74A;color:#5E7A5E;}
+.fl-uploader-queue-footer{z-index:6;position:relative;background-color:#F7F7F7;border-top:1px solid #999;color:#4d4d4d;font-size:1.07em;font-weight:bold;padding:8px 6px;vertical-align:middle;}
+.fl-uploader span.fl-uploader-browse{background-image:url(../images/add.png);background-attachment:scroll;background-repeat:no-repeat;background-position:0 5px;padding:5px 5px 0 22px;border:none;white-space:nowrap;color:#005ebc;font-weight:bold;text-decoration:underline;}
+.fl-uploader-queue-footer .fl-uploader-total-progress-text{padding-top:6px;}
+.fl-uploader-browse{display:block;overflow:hidden;height:1.65em;width:6em;cursor:default;}
+.fl-uploader-browse.fl-uploader-browseMore{width:4.5em;}
+.fl-uploader-browse input{position:relative;overflow:hidden;float:right;height:3em;bottom:2em;letter-spacing:5px;left:10px;opacity:0;-moz-opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);}
+html>body .fl-uploader span.fl-uploader-browse{border:1px solid transparent;}
+.fl-uploader span.fl-uploader-browse:hover{border:1px solid #CCC;background-color:#FFF;}
+.fl-uploader span.fl-uploader-browse:focus,.fl-uploader span.fl-uploader-browse.focus{outline:2px solid #142B8C;background-color:#FFF;}
+.fl-uploader-browse-overlay{position:absolute;top:8px;left:320px;z-index:7;}
+.fl-uploader-flash10-wrapper{position:relative;float:left;}
+.fl-uploader-buttons{margin-top:1em;text-align:right;}
+.fl-uploader-buttons button{border-width:1px;border-style:solid;font-weight:bold;color:#FFF;height:32px;padding:0;outline:none;cursor:pointer;width:8.4em;font-size:1em;}
+.fl-uploader-buttons button:focus{outline:2px solid #142B8C;}
+.fl-uploader-buttons .fl-uploader-button-upload{background-color:#74B74A;border-color:#006838;}
+.fl-uploader-buttons .fl-uploader-button-upload:hover{background-color:#519325;border-color:#142B8C;}
+.fl-uploader-buttons .fl-uploader-button-stop{background-color:#4F99D3;border-color:#2A3990;}
+.fl-uploader-buttons .fl-uploader-button-stop:hover{background-color:#115F8F;}
+.fl-uploader-buttons .fl-uploader-dim,.fl-uploader-buttons .fl-uploader-dim:hover{background-color:#999;border-color:#666;cursor:auto;}
+.fl-uploader-file-progress,.fl-uploader-total-progress-okay,.fl-uploader-total-progress-errored{position:absolute;display:none;background-attachment:scroll;background-position:bottom left;background-repeat:repeat-x;overflow:hidden;left:-1px;z-index:-1;top:0;height:100%;}
+.fl-uploader-file-progress{background-image:url('../images/gradient-file-green.png');background-color:#D1D6DD;border-right:1px solid #9FCE7F;}
 .fl-uploader-queue .fl-uploader-file-state-error th{border-left:4px solid #F5E392;background-color:#FCFBE6;border-bottom-width:0;}
 .fl-uploader-queue .fl-uploader-file-state-error td{background-color:#FCFBE6;border-bottom-width:0;}
-.fl-uploader-queue .fl-uploader-file-error td{background-color:#FCFBE6;border-left:4px solid #F5E392;background-image:url(../images/error.png);background-position:8px 2px;background-repeat:no-repeat;padding-bottom:8px;padding-left:32px;}
-.fl-uploader-queue-wrapper td.fl-uploader-file-actions,.fl-uploader-queue-wrapper th.fl-uploader-file-actions{white-space:nowrap;text-align:center;}
-.fl-uploader-queue td.fileStatus{white-space:nowrap;}
-.fl-uploader-queue-wrapper .fl-uploader-browse-instructions{background-color:#F0F9FF;color:#666;text-align:center;border-left:1px solid #999;border-right:1px solid #999;padding:6px;}
-.fl-uploader-btns{margin-top:1em;}
-.fl-uploader-btns .fl-uploader-upload,.fl-uploader-btns .fl-uploader-resume,.fl-uploader-btns .fl-uploader-pause{width:8.4em;}
-.fl-uploader-btns .fl-uploader-done,.fl-uploader-btns .fl-uploader-cancel{width:7.6em;}
-.fl-uploader-btns button{float:right;padding:0;}
-button span.fl-uploader-button-text-hidden{display:none;}
-.fl-uploader-disabled,.fl-uploader-dim{cursor:auto;}
-.fl-uploader-disabled{background-color:#CCC!important;border-color:#999!important;}
-.fl-uploader-dim{opacity:.4;filter:alpha(opacity=40);}
+.fl-uploader-queue .fl-uploader-file-error td{background-color:#FCFBE6;border-left:4px solid #F5E392;background-image:url(../images/error.png);background-position:6px 2px;background-repeat:no-repeat;padding-bottom:8px;padding-left:32px;}
+.fl-uploader-errorsPanel{float:left;width:100%;margin-top:.5em;border-top:1px solid #d2d2d2;font-size:.9em;color:#3da6e5;}
+.fl-uploader-errorsPanel-header{background-image:url("../images/error.png");background-position:1px center;background-repeat:no-repeat;padding:6px 0 6px 0;margin-bottom:10px;}
+.fl-uploader-errorsPanel-header span{padding-left:21px;font-size:1.1em;font-weight:bold;color:#000;}
+.fl-uploader-errorPanel-section-wrapper{float:left;width:90%;}
+.fl-uploader-errorPanel-section-title{width:90%;color:#333;font-weight:normal;}
+.fl-uploader-errorPanel-section-removeButton{background-color:inherit;background-image:url("../images/grey-4d4d4d-x-button.png");background-position:center;background-repeat:no-repeat;border-width:0;width:18px;height:18px;padding:0;margin-right:9px;}
+.fl-uploader-errorPanel-section-removeButton:hover{background-image:url("../images/grey-999999-x-button.png");}
+.fl-uploader-errorPanel-section-toggleDetails{border:none;padding:0;text-decoration:underline;cursor:pointer;height:1em;margin:0 0 1.5em 0;position:relative;color:#008be0;background-color:#F7F7F7;}
+.fl-uploader-errorPanel-section-details{color:#666;font-weight:normal;clear:both;}
+.fl-uploader-errorPanel-section-details p{margin-bottom:0;margin-top:.5em;line-height:1.7em;}
+.fl-uploader-basic-save{margin-top:.6em;display:block;}
 .fl-uploader-hidden{display:none;}
-.fl-uploader-hidden-templates{display:none;}
-.fl-uploader-file-progress,.fl-uploader-total-progress-okay,.fl-uploader-total-progress-errored{position:absolute;display:none;background-attachment:scroll;background-position:bottom left;background-repeat:repeat-x;overflow:hidden;left:0;z-index:4;}
-.fl-uploader-file-progress{background-image:url('../images/gradient-file-green.png');background-color:#D1D6DD;border-right:1px solid #9FCE7F;width:76%;}
-.fl-uploader-file-progress .fl-uploader-file-progress-text{display:none;}
-.fl-uploader-total-progress-okay,.fl-uploader-total-progress-errored{top:0;height:100%;width:76%;}
-.fl-uploader-total-progress-okay{background-image:url('../images/gradient-total-green.png');border-right:1px solid #9FCE7F;background-color:#BDBFC1;}
-.fl-uploader-total-progress-errored{background-image:url('../images/gradient-total-yellow.png');border-right:1px solid #E8C81C;background-color:#F6ECA0;}
+.fl-uploader span.fl-uploader-browse.fl-uploader-dim{outline:none;background-color:#F7F7F7;color:#d2d2d2;background-image:url("../images/add-grey.png");}
 .fl-uploader-flash9-container{overflow:hidden;width:1px;height:1px;}
 .hideUploaderForOpera{visibility:hidden;overflow:hidden;height:0;width:0;padding:0;}
\ No newline at end of file
index f17d778..bbd092d 100644 (file)
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
         <title>Uploader Template</title>
   
-        <link href="../../../framework/fss/css/fss-reset.css" rel="stylesheet" type="text/css" />
-        <link href="../../../framework/fss/css/fss-layout.css" rel="stylesheet" type="text/css" />
-        <link href="../css/Uploader.css" rel="stylesheet" type="text/css" />
+        <link rel="stylesheet" type="text/css" href="../../../framework/fss/css/fss-reset-global.css" />
+        <link rel="stylesheet" type="text/css" href="../../../framework/fss/css/fss-base-global.css" />
+        <link rel="stylesheet" type="text/css" href="../../../framework/fss/css/fss-text.css" />
+        <link rel="stylesheet" type="text/css" href="../../../framework/fss/css/fss-layout.css" />
+        <link rel="stylesheet" type="text/css" href="../css/Uploader.css" />
         
         <!-- Fluid and jQuery Dependencies -->
-        <script src="../../../lib/jquery/core/js/jquery.js" type="text/javascript"></script>
-        <script src="../../../lib/jquery/ui/js/ui.core.js" type="text/javascript"></script>
-        <script src="../../../framework/core/js/jquery.keyboard-a11y.js" type="text/javascript"></script>
-        <script src="../../../lib/swfobject/js/swfobject.js" type="text/javascript"></script>
-        <script src="../../../lib/swfupload/js/swfupload.js" type="text/javascript"></script>
-        <script src="../../../framework/core/js/Fluid.js" type="text/javascript"></script>
-        <script src="../../../framework/core/js/ProgressiveEnhancement.js" type="text/javascript"></script>
+        <script type="text/javascript" src="../../../lib/jquery/core/js/jquery.js"></script>
+        <script type="text/javascript" src="../../../lib/jquery/ui/js/jquery.ui.core.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/jquery.keyboard-a11y.js"></script>
+        <script type="text/javascript" src="../../../lib/jquery/plugins/scrollTo/js/jquery.scrollTo.js"></script>
+        <script type="text/javascript" src="../../../lib/swfobject/js/swfobject.js"></script>
+        <script type="text/javascript" src="../../../lib/swfupload/js/swfupload.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/Fluid.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/FluidDocument.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/FluidView.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/DataBinding.js"></script>
+        <script type="text/javascript" src="../../../framework/core/js/FluidIoC.js"></script>
+        <script type="text/javascript" src="../../../framework/enhancement/js/ProgressiveEnhancement.js"></script>
+        
+        <!-- Uploader dependencies -->
+        <script type="text/javascript" src="../js/Uploader.js"></script>
+        <script type="text/javascript" src="../js/FileQueue.js"></script>
+        <script type="text/javascript" src="../../progress/js/Progress.js"></script>
+        <script type="text/javascript" src="../js/FileQueueView.js"></script>
+        <script type="text/javascript" src="../js/ErrorPanel.js"></script>
+        <script type="text/javascript" src="../js/FlashUploaderSupport.js"></script>
+        <script type="text/javascript" src="../js/Flash9UploaderSupport.js"></script>
+        <script type="text/javascript" src="../js/HTML5UploaderSupport.js"></script>
+        <script type="text/javascript" src="../js/DemoUploadManager.js"></script>
+        <script type="text/javascript" src="../js/MimeTypeExtensions.js"></script>        
         
-        <!-- Uploader dependencies; these will be merged into a new Uploader.js at the end -->
-        <script src="../js/FileQueue.js" type="text/javascript"></script>
-        <script src="../js/DemoUploadManager.js" type="text/javascript"></script>
-        <script src="../js/SWFUploadManager.js" type="text/javascript"></script>
-        <script src="../js/Scroller.js" type="text/javascript"></script>
-        <script src="../../progress/js/Progress.js" type="text/javascript"></script>
-        <script src="../js/Uploader.js" type="text/javascript"></script>
     </head>
     
-    <body>
-        <div id="uploader-contents">
+    <body>            
+        <!-- Basic upload controls, used when JavaScript is unavailable -->
+        <form method="post" enctype="multipart/form-data" class="fl-progEnhance-basic">
+            <p>Use the Browse button to add a file, and the Save button to upload it.</p>
+            <input name="fileData" type="file" />
+            <input class="fl-uploader-basic-save" type="submit" value="Save"/>
+        </form>
+        
+        <!-- Uploader container -->
+        <form class="flc-uploader fl-uploader fl-progEnhance-enhanced" method="get" enctype="multipart/form-data">
             
-            <!-- This form will be progressively enhanced by the Fluid Uploader component. -->
-            <form method="post" enctype="multipart/form-data" class="fl-uploader fl-progEnhance-basic">
-                <p>Browse to upload a file.</p>
-                <input name="fileData" type="file" />
-                <div><input type="submit" value="Save"/></div>
-            </form>
+            <!-- File Queue, which is split up into two separate tables: one for the header and body -->
+            <table class="fl-uploader-header">
+                       <tr>
+                                       <th class="fl-uploader-file-name">File Name</th>
+                                       <th class="fl-uploader-file-size">Size</th>
+                                       <th class="fl-uploader-file-actions"></th>
+                               </tr>
+            </table>
             
-            <!-- This is the markup for the Fluid Uploader component itself. -->
-            <form class="flc-uploader fl-uploader fl-progEnhance-enhanced" 
-                  method="get" 
-                  enctype="multipart/form-data">
-                      
-                <!-- The file queue -->
-                <div class="fl-uploader-queue-wrapper">
-                    
-                    <!-- Top of the queue -->
-                    <div class="fl-uploader-queue-header">
-                        <table cellspacing="0" cellpadding="0" summary="Headers for the file queue.">
-                            <caption>File Upload Queue:</caption>
-
-                                <tr>
-                                    <th scope="col" class="fl-uploader-file-name">File Name</th>
-                                    <th scope="col" class="fl-uploader-file-size">Size&nbsp;&nbsp;</th>
-                                    <th scope="col" class="fl-uploader-file-actions">&nbsp;</th>
-                                </tr>
-
-                        </table>
-                    </div>
-                    
-                    <!-- Scrollable view -->
-                    <div class="flc-scroller fl-scroller">
-                        <div class="fl-scroller-inner">
-                            <table cellspacing="0" class="flc-uploader-queue fl-uploader-queue" summary="Queue of files to upload.">
-                                <tbody>
-                                    <!-- Rows will be rendered in here. -->
-                                    
-                                    <!-- Template markup for the file queue rows -->
-                                    <tr class="flc-uploader-file-tmplt flc-uploader-file fl-uploader-hidden-templates">
-                                        <th class="flc-uploader-file-name fl-uploader-file-name" scope="row">File Name Placeholder</th>
-                                        <td class="flc-uploader-file-size fl-uploader-file-size">0 KB</td>
-                                        <td class="fl-uploader-file-actions">
-                                            <button type="button" class="flc-uploader-file-action fl-uploader-file-action" title="Remove File" tabindex="-1">
-                                                <span class="fl-uploader-button-text fl-uploader-hidden">Remove file from queue</span>
-                                            </button>
-                                        </td>
-                                    </tr>
-                                    
-                                    <!-- Template for the file error info rows -->
-                                    <tr class="flc-uploader-file-error-tmplt fl-uploader-file-error fl-uploader-hidden-templates">
-                                        <td colspan="3" class="flc-uploader-file-error"></td>
-                                    </tr>
-                                </tbody>
-                            </table>
-                            <div class="flc-uploader-file-progressor-tmplt fl-uploader-file-progress"><span class="fl-uploader-file-progress-text fl-uploader-hidden">76%</span></div>
-                        </div>
-                    </div>
-                    
-                    <div class="flc-uploader-browse-instructions fl-uploader-browse-instructions">
-                        Choose <strong>Browse files</strong> to add files to the queue 
-                    </div>
-        
-                    <!-- Foot of the queue -->
-                    <div class="flc-uploader-queue-footer fl-uploader-queue-footer">
-                        <table cellspacing="0" cellpadding="0" summary="Status of file queue.">
+            <!-- File Queue body, which is the default container for the FileQueueView component -->
+            <table summary="The list of files" class="flc-uploader-queue fl-uploader-queue">
+                               <caption>File Upload Queue:</caption>
+                               <tbody>
+                                       <!-- Template for file row -->
+                                       <tr class="flc-uploader-file-tmplt flc-uploader-file">
+                                               <td class="flc-uploader-file-name fl-uploader-file-name">File Name Placeholder</td>
+                                               <td class="flc-uploader-file-size fl-uploader-file-size">0 KB</td>
+                                               <td class="fl-uploader-file-actions">
+                                                       <button type="button" class="flc-uploader-file-action" tabindex="-1"></button>
+                                               </td>
+                                       </tr>
+                                       
+                                       <!-- Template for error info row -->
+                                       <tr class="flc-uploader-file-error-tmplt fl-uploader-file-error">
+                                               <td colspan="3" class="flc-uploader-file-error"></td>
+                                       </tr>
+                               </tbody>
+                       </table>
+            
+            <!-- File progress bar template, used to generate progress bars for each file in the queue -->
+            <div class="flc-uploader-file-progressor-tmplt fl-uploader-file-progress"></div>            
 
-                                <tr>
-                                    <td class="flc-uploader-total-progress-text">
-                                        Total: <span class="fl-uploader-totalFiles">0</span> files 
-                                        (<span class="fl-uploader-totalBytes">0 KB</span>)
-                                    </td>
-                                    <td class=".fl-uploader-footer-buttons" align="right" >
-                                        <a href="#" class="flc-uploader-button-browse fl-uploader-browse">Browse files</a>
-                                    </td>
-                                </tr>
+            <!-- Initial instructions -->
+            <div class="flc-uploader-browse-instructions fl-uploader-browse-instructions">
+                Choose <em>Browse files</em> to add files to the queue. 
+            </div>            
 
-                        </table>
-                        <div class="flc-uploader-total-progress fl-uploader-total-progress-okay">&nbsp;</div>
-                    </div>
+            <!-- Status footer -->
+            <div class="flc-uploader-queue-footer fl-uploader-queue-footer fl-clearfix">
+                <div class="fl-force-left">
+                       <div class="flc-uploader-total-progress-text fl-uploader-total-progress-text">
+                               Total: 0 files (0 KB) 
+                       </div>
+                       <div class="flc-uploader-upload-limit-text"></div>
+                </div>                
+                <div class="fl-text-align-right fl-force-right">
+                    <span class="flc-uploader-button-browse fl-uploader-browse">
+                        <span class="flc-uploader-button-browse-text">Browse files</span>
+                    </span>
                 </div>
-                
-                <!-- Action buttons -->
-                <div class="fl-uploader-btns">
-                    <button type="button" class="flc-uploader-button-pause fl-uploader-pause fl-uploader-hidden">Stop Upload</button><button type="button" class="flc-uploader-button-upload fl-uploader-upload fl-uploader-button-default fl-uploader-dim" disabled="disabled">Upload</button>
-                </div>
-            </form>
-        
-        </div>
+                <!-- Total progress bar -->
+                <div class="flc-uploader-total-progress fl-uploader-total-progress-okay"></div>
+                <div class="flc-uploader-errorsPanel fl-uploader-errorsPanel">
+                    <div class="fl-uploader-errorsPanel-header"><span class="flc-uploader-errorPanel-header">Warnings:</span></div>
+
+                    <!-- The markup for each error section will be rendered into these containers. -->
+                    <div class="flc-uploader-errorPanel-section-fileSize"></div>
+                    <div class="flc-uploader-errorPanel-section-numFiles"></div>
+                     
+                     <!-- Error section template.-->
+                     <div class="flc-uploader-errorPanel-section-tmplt fl-uploader-hidden-templates">
+                        <div class="fl-container-flex">
+                            <div class="flc-uploader-errorPanel-section-title fl-uploader-errorPanel-section-title fl-force-left">
+                                x files were too y and were not added to the queue.
+                            </div>
+                            <button type="button" class="flc-uploader-errorPanel-section-removeButton fl-uploader-errorPanel-section-removeButton fl-force-right">
+                                 <span class="flc-uploader-erroredButton-text fl-uploader-hidden">Remove error</span>
+                            </button>
+                        </div>
+                        
+                        <div class="fl-container-flex">
+                            <div class="flc-uploader-errorPanel-section-details fl-uploader-errorPanel-section-details">
+                                <p>The following files were not added:</p>
+                                <p class="flc-uploader-errorPanel-section-files">file_1, file_2, file_3, file_4, file_5 </p>
+                            </div>
+                        </div>                        
+                        <div class="fl-container-flex">
+                            <button type="button" class="flc-uploader-errorPanel-section-toggleDetails fl-uploader-errorPanel-section-toggleDetails">Hide this list</button>
+                        </div>
+                     </div>
+                 </div>                
+            </div>
+            
+            <!-- Upload buttons -->
+            <div class="fl-uploader-buttons">
+                <button type="button" class="flc-uploader-button-pause fl-uploader-button-stop fl-uploader-hidden">Stop Upload</button>
+                <button type="button" class="flc-uploader-button-upload fl-uploader-button-upload fl-uploader-dim">Upload</button>
+            </div>
+            
+            <div class="flc-uploader-status-region fl-offScreen-hidden"></div>
+        </form>        
             
         <script type="text/javascript">
-            var myUploader = fluid.progressiveEnhanceableUploader(".flc-uploader", ".fl-progEnhance-basic", {
-                demo: true,
-                uploadManager: "fluid.swfUploadManager"
+            var myUploader = fluid.uploader(".flc-uploader", {
+                demo: true     
             });
         </script> 
     </body>
diff --git a/docs/jscripts/infusion/components/uploader/images/add-grey.png b/docs/jscripts/infusion/components/uploader/images/add-grey.png
new file mode 100644 (file)
index 0000000..12b04e8
Binary files /dev/null and b/docs/jscripts/infusion/components/uploader/images/add-grey.png differ
index 6332fef..84ccb0c 100644 (file)
Binary files a/docs/jscripts/infusion/components/uploader/images/add.png and b/docs/jscripts/infusion/components/uploader/images/add.png differ
diff --git a/docs/jscripts/infusion/components/uploader/images/grey-4d4d4d-x-button.png b/docs/jscripts/infusion/components/uploader/images/grey-4d4d4d-x-button.png
new file mode 100644 (file)
index 0000000..4ec065f
Binary files /dev/null and b/docs/jscripts/infusion/components/uploader/images/grey-4d4d4d-x-button.png differ
diff --git a/docs/jscripts/infusion/components/uploader/images/grey-999999-x-button.png b/docs/jscripts/infusion/components/uploader/images/grey-999999-x-button.png
new file mode 100644 (file)
index 0000000..e421c04
Binary files /dev/null and b/docs/jscripts/infusion/components/uploader/images/grey-999999-x-button.png differ
index 8409ecf..2d88087 100644 (file)
Binary files a/docs/jscripts/infusion/components/uploader/images/remove.png and b/docs/jscripts/infusion/components/uploader/images/remove.png differ
index a9925a0..ebc7a52 100644 (file)
Binary files a/docs/jscripts/infusion/components/uploader/images/tick.png and b/docs/jscripts/infusion/components/uploader/images/tick.png differ
index d9020ba..9d4f687 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var updateProgress=function(file,events,demoState,isUploading){if(!isUploading){return }var chunk=Math.min(demoState.chunkSize,file.size);demoState.bytesUploaded=Math.min(demoState.bytesUploaded+chunk,file.size);events.onFileProgress.fire(file,demoState.bytesUploaded,file.size)};var fireAfterFileComplete=function(that,file){if(that.swfUploadSettings){that.swfUploadSettings.upload_complete_handler(file)}else{that.events.afterFileComplete.fire(file)}};var finishAndContinueOrCleanup=function(that,file){that.queueManager.finishFile(file);if(that.queueManager.shouldUploadNextFile()){startUploading(that)}else{that.queueManager.complete()}};var finishUploading=function(that){if(!that.queue.isUploading){return }var file=that.demoState.currentFile;file.filestatus=fluid.uploader.fileStatusConstants.COMPLETE;that.events.onFileSuccess.fire(file);that.demoState.fileIdx++;finishAndContinueOrCleanup(that,file)};var simulateUpload=function(that){if(!that.queue.isUploading){return }var file=that.demoState.currentFile;if(that.demoState.bytesUploaded<file.size){that.invokeAfterRandomDelay(function(){updateProgress(file,that.events,that.demoState,that.queue.isUploading);simulateUpload(that)})}else{finishUploading(that)}};var startUploading=function(that){that.demoState.currentFile=that.queue.files[that.demoState.fileIdx];that.demoState.chunksForCurrentFile=Math.ceil(that.demoState.currentFile/that.demoState.chunkSize);that.demoState.bytesUploaded=0;that.queue.isUploading=true;that.events.onFileStart.fire(that.demoState.currentFile);that.demoState.currentFile.filestatus=fluid.uploader.fileStatusConstants.IN_PROGRESS;simulateUpload(that)};var stopDemo=function(that){var file=that.demoState.currentFile;file.filestatus=fluid.uploader.fileStatusConstants.CANCELLED;that.queue.shouldStop=true;that.events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_STOPPED,"The demo upload was paused by the user.");finishAndContinueOrCleanup(that,file);that.events.onUploadStop.fire()};var setupDemoUploadManager=function(that){if(that.options.simulateDelay===undefined||that.options.simulateDelay===null){that.options.simulateDelay=true}that.demoState={fileIdx:0,chunkSize:200000};return that};fluid.demoUploadManager=function(uploadManager){var that=uploadManager;that.start=function(){that.queueManager.start();startUploading(that)};that.stop=function(){stopDemo(that)};that.invokeAfterRandomDelay=function(fn){var delay;if(that.options.simulateDelay){delay=Math.floor(Math.random()*1000+100);setTimeout(fn,delay)}else{fn()}};setupDemoUploadManager(that);return that}})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.uploader=fluid.uploader||{};var startUploading;var updateProgress=function(file,events,demoState,isUploading){if(!isUploading){return }var chunk=Math.min(demoState.chunkSize,file.size);demoState.bytesUploaded=Math.min(demoState.bytesUploaded+chunk,file.size);events.onFileProgress.fire(file,demoState.bytesUploaded,file.size)};var finishAndContinueOrCleanup=function(that,file){that.queue.finishFile(file);that.events.afterFileComplete.fire(file);if(that.queue.shouldUploadNextFile()){startUploading(that)}else{that.events.afterUploadComplete.fire(that.queue.currentBatch.files);if(file.status!==fluid.uploader.fileStatusConstants.CANCELLED){that.queue.clearCurrentBatch()}}};var finishUploading=function(that){if(!that.queue.isUploading){return }var file=that.demoState.currentFile;that.events.onFileSuccess.fire(file);that.demoState.fileIdx++;finishAndContinueOrCleanup(that,file)};var simulateUpload=function(that){if(!that.queue.isUploading){return }var file=that.demoState.currentFile;if(that.demoState.bytesUploaded<file.size){fluid.invokeAfterRandomDelay(function(){updateProgress(file,that.events,that.demoState,that.queue.isUploading);simulateUpload(that)})}else{finishUploading(that)}};startUploading=function(that){that.demoState.currentFile=that.queue.files[that.demoState.fileIdx];that.demoState.chunksForCurrentFile=Math.ceil(that.demoState.currentFile/that.demoState.chunkSize);that.demoState.bytesUploaded=0;that.queue.isUploading=true;that.events.onFileStart.fire(that.demoState.currentFile);simulateUpload(that)};var stopDemo=function(that){var file=that.demoState.currentFile;file.filestatus=fluid.uploader.fileStatusConstants.CANCELLED;that.queue.shouldStop=true;that.events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_STOPPED,"The demo upload was paused by the user.");finishAndContinueOrCleanup(that,file);that.events.onUploadStop.fire()};var setupDemo=function(that){if(that.simulateDelay===undefined||that.simulateDelay===null){that.simulateDelay=true}that.demoState={fileIdx:0,chunkSize:200000};return that};fluid.uploader.demoRemote=function(queue,options){var that=fluid.initLittleComponent("fluid.uploader.demoRemote",options);that.queue=queue;that.uploadNextFile=function(){startUploading(that)};that.stop=function(){stopDemo(that)};setupDemo(that);return that};fluid.invokeAfterRandomDelay=function(fn){var delay=Math.floor(Math.random()*1000+100);setTimeout(fn,delay)};fluid.defaults("fluid.uploader.demoRemote",{gradeNames:["fluid.eventedComponent"],argumentMap:{options:1},events:{onFileProgress:"{multiFileUploader}.events.onFileProgress",afterFileComplete:"{multiFileUploader}.events.afterFileComplete",afterUploadComplete:"{multiFileUploader}.events.afterUploadComplete",onFileSuccess:"{multiFileUploader}.events.onFileSuccess",onFileStart:"{multiFileUploader}.events.onFileStart",onFileError:"{multiFileUploader}.events.onFileError",onUploadStop:"{multiFileUploader}.events.onUploadStop"}});fluid.demands("fluid.uploader.remote",["fluid.uploader.multiFileUploader","fluid.uploader.demo"],{funcName:"fluid.uploader.demoRemote",args:["{multiFileUploader}.queue","{multiFileUploader}.events",fluid.COMPONENT_OPTIONS]})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uploader/js/ErrorPanel.js b/docs/jscripts/infusion/components/uploader/js/ErrorPanel.js
new file mode 100644 (file)
index 0000000..06f63c4
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.uploader=fluid.uploader||{};fluid.defaults("fluid.uploader.errorPanel",{gradeNames:["fluid.viewComponent","autoInit"],preInitFunction:"fluid.uploader.errorPanel.preInit",postInitFunction:"fluid.uploader.errorPanel.renderSectionTemplates",finalInitFunction:"fluid.uploader.errorPanel.finalInit",components:{fileSizeErrorSection:{type:"fluid.uploader.errorPanel.section",container:"{errorPanel}.dom.fileSizeErrorSection",options:{model:{errorCode:fluid.uploader.queueErrorConstants.FILE_EXCEEDS_SIZE_LIMIT},strings:{header:"{errorPanel}.options.strings.exceedsFileSize"}}},numFilesErrorSection:{type:"fluid.uploader.errorPanel.section",container:"{errorPanel}.dom.numFilesErrorSection",options:{model:{errorCode:fluid.uploader.queueErrorConstants.QUEUE_LIMIT_EXCEEDED},strings:{header:"{errorPanel}.options.strings.exceedsNumFilesLimit"}}}},selectors:{header:".flc-uploader-errorPanel-header",sectionTemplate:".flc-uploader-errorPanel-section-tmplt",fileSizeErrorSection:".flc-uploader-errorPanel-section-fileSize",numFilesErrorSection:".flc-uploader-errorPanel-section-numFiles"},strings:{headerText:"Warning(s)",exceedsNumFilesLimit:"Too many files were selected. %numFiles were not added to the queue.",exceedsFileSize:"%numFiles files were too large and were not added to the queue."},styles:{hiddenTemplate:"fl-hidden-templates"}});fluid.uploader.errorPanel.preInit=function(that){that.refreshView=function(){for(var i=0;i<that.sections.length;i++){if(that.sections[i].model.files.length>0){that.container.show();return }}that.container.hide()}};fluid.uploader.errorPanel.renderSectionTemplates=function(that){var sectionTmpl=that.locate("sectionTemplate").remove().removeClass(that.options.styles.hiddenTemplate);that.locate("fileSizeErrorSection").append(sectionTmpl.clone());that.locate("numFilesErrorSection").append(sectionTmpl.clone())};fluid.uploader.errorPanel.finalInit=function(that){that.sections=[that.fileSizeErrorSection,that.numFilesErrorSection];that.locate("header").text(that.options.strings.headerText);that.container.hide()};fluid.demands("fluid.uploader.errorPanel","fluid.uploader.multiFileUploader",{container:"{multiFileUploader}.dom.errorsPanel",options:{listeners:{"{multiFileUploader}.events.afterFileDialog":"{errorPanel}.refreshView"}}});fluid.defaults("fluid.uploader.errorPanel.section",{gradeNames:["fluid.viewComponent","autoInit"],preInitFunction:"fluid.uploader.errorPanel.section.preInit",finalInitFunction:"fluid.uploader.errorPanel.section.finalInit",model:{errorCode:undefined,files:[],showingDetails:false},events:{afterErrorsCleared:null},selectors:{errorTitle:".fl-uploader-errorPanel-section-title",deleteErrorButton:".flc-uploader-errorPanel-section-removeButton",errorDetails:".flc-uploader-errorPanel-section-details",erroredFiles:".flc-uploader-errorPanel-section-files",showHideFilesToggle:".flc-uploader-errorPanel-section-toggleDetails"},strings:{hideFiles:"Hide files",showFiles:"Show files",fileListDelimiter:", "}});fluid.uploader.errorPanel.section.preInit=function(that){that.toggleDetails=function(){var detailsAction=that.model.showingDetails?that.hideDetails:that.showDetails;detailsAction()};that.showDetails=function(){that.locate("errorDetails").show();that.locate("showHideFilesToggle").text(that.options.strings.hideFiles);that.model.showingDetails=true};that.hideDetails=function(){that.locate("errorDetails").hide();that.locate("showHideFilesToggle").text(that.options.strings.showFiles);that.model.showingDetails=false};that.addFile=function(file,errorCode){if(errorCode===that.model.errorCode){that.model.files.push(file.name);that.refreshView()}};that.clear=function(){that.model.files=[];that.refreshView();that.events.afterErrorsCleared.fire()};that.refreshView=function(){fluid.uploader.errorPanel.section.renderHeader(that);fluid.uploader.errorPanel.section.renderErrorDetails(that);that.hideDetails();if(that.model.files.length<=0){that.container.hide()}else{that.container.show()}}};fluid.uploader.errorPanel.section.finalInit=function(that){that.locate("deleteErrorButton").click(that.clear);that.locate("showHideFilesToggle").click(that.toggleDetails);that.refreshView()};fluid.uploader.errorPanel.section.renderHeader=function(that){var errorTitle=fluid.stringTemplate(that.options.strings.header,{numFiles:that.model.files.length});that.locate("errorTitle").text(errorTitle)};fluid.uploader.errorPanel.section.renderErrorDetails=function(that){var files=that.model.files;var filesList=files.length>0?files.join(that.options.strings.fileListDelimiter):"";that.locate("erroredFiles").text(filesList)};fluid.demands("fluid.uploader.errorPanel.section",["fluid.uploader.errorPanel","fluid.uploader.multiFileUploader"],{options:{listeners:{"{multiFileUploader}.events.onQueueError":"{section}.addFile","{multiFileUploader}.events.onFilesSelected":"{section}.clear","{multiFileUploader}.events.onUploadStart":"{section}.clear","{section}.events.afterErrorsCleared":"{errorPanel}.refreshView"}}})})(jQuery,fluid_1_4);
\ No newline at end of file
index f91ea08..c3e1b60 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var filterFiles=function(files,filterFn){var filteredFiles=[];for(var i=0;i<files.length;i++){var file=files[i];if(filterFn(file)===true){filteredFiles.push(file)}}return filteredFiles};var getUploadedFiles=function(that){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE)})};var getReadyFiles=function(that){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.QUEUED||file.filestatus===fluid.uploader.fileStatusConstants.CANCELLED)})};var getErroredFiles=function(that){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.ERROR)})};var removeFile=function(that,file){var idx=$.inArray(file,that.files);that.files.splice(idx,1)};var clearCurrentBatch=function(that){that.currentBatch={fileIdx:-1,files:[],totalBytes:0,numFilesCompleted:0,numFilesErrored:0,bytesUploadedForFile:0,previousBytesUploadedForFile:0,totalBytesUploaded:0}};var updateCurrentBatch=function(that){var readyFiles=that.getReadyFiles();that.currentBatch.files=readyFiles;that.currentBatch.totalBytes=fluid.fileQueue.sizeOfFiles(readyFiles)};var setupCurrentBatch=function(that){clearCurrentBatch(that);updateCurrentBatch(that)};fluid.fileQueue=function(){var that={};that.files=[];that.isUploading=false;that.addFile=function(file){that.files.push(file)};that.removeFile=function(file){removeFile(that,file)};that.totalBytes=function(){return fluid.fileQueue.sizeOfFiles(that.files)};that.getReadyFiles=function(){return getReadyFiles(that)};that.getErroredFiles=function(){return getErroredFiles(that)};that.sizeOfReadyFiles=function(){return fluid.fileQueue.sizeOfFiles(that.getReadyFiles())};that.getUploadedFiles=function(){return getUploadedFiles(that)};that.sizeOfUploadedFiles=function(){return fluid.fileQueue.sizeOfFiles(that.getUploadedFiles())};that.setupCurrentBatch=function(){setupCurrentBatch(that)};that.clearCurrentBatch=function(){clearCurrentBatch(that)};that.updateCurrentBatch=function(){updateCurrentBatch(that)};return that};fluid.fileQueue.sizeOfFiles=function(files){var totalBytes=0;for(var i=0;i<files.length;i++){var file=files[i];totalBytes+=file.size}return totalBytes};fluid.fileQueue.manager=function(queue,events){var that={};that.queue=queue;that.events=events;that.start=function(){that.queue.setupCurrentBatch();that.queue.isUploading=true;that.queue.shouldStop=false;that.events.onUploadStart.fire(that.queue.currentBatch.files)};that.startFile=function(){that.queue.currentBatch.fileIdx++;that.queue.currentBatch.bytesUploadedForFile=0;that.queue.currentBatch.previousBytesUploadedForFile=0};that.finishFile=function(file){var batch=that.queue.currentBatch;batch.numFilesCompleted++;that.events.afterFileComplete.fire(file)};that.shouldUploadNextFile=function(){return !that.queue.shouldStop&&that.queue.isUploading&&that.queue.currentBatch.numFilesCompleted<that.queue.currentBatch.files.length};that.complete=function(){that.events.afterUploadComplete.fire(that.queue.currentBatch.files);that.queue.clearCurrentBatch()};return that}})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.uploader=fluid.uploader||{};var filterFiles=function(files,filterFn){var filteredFiles=[];for(var i=0;i<files.length;i++){var file=files[i];if(filterFn(file)===true){filteredFiles.push(file)}}return filteredFiles};fluid.uploader.fileQueue=function(){var that={};that.files=[];that.isUploading=false;that.start=function(){that.setupCurrentBatch();that.isUploading=true;that.shouldStop=false};that.startFile=function(){that.currentBatch.fileIdx++;that.currentBatch.bytesUploadedForFile=0;that.currentBatch.previousBytesUploadedForFile=0};that.finishFile=function(file){that.currentBatch.numFilesCompleted++};that.shouldUploadNextFile=function(){return !that.shouldStop&&that.isUploading&&that.currentBatch.numFilesCompleted<that.currentBatch.files.length};that.addFile=function(file){that.files.push(file)};that.removeFile=function(file){var idx=$.inArray(file,that.files);that.files.splice(idx,1)};that.totalBytes=function(){return fluid.uploader.fileQueue.sizeOfFiles(that.files)};that.getReadyFiles=function(){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.QUEUED||file.filestatus===fluid.uploader.fileStatusConstants.CANCELLED)})};that.getErroredFiles=function(){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.ERROR)})};that.sizeOfReadyFiles=function(){return fluid.uploader.fileQueue.sizeOfFiles(that.getReadyFiles())};that.getUploadedFiles=function(){return filterFiles(that.files,function(file){return(file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE)})};that.sizeOfUploadedFiles=function(){return fluid.uploader.fileQueue.sizeOfFiles(that.getUploadedFiles())};that.setupCurrentBatch=function(){that.clearCurrentBatch();that.updateCurrentBatch()};that.clearCurrentBatch=function(){that.currentBatch={fileIdx:0,files:[],totalBytes:0,numFilesCompleted:0,numFilesErrored:0,bytesUploadedForFile:0,previousBytesUploadedForFile:0,totalBytesUploaded:0}};that.updateCurrentBatch=function(){var readyFiles=that.getReadyFiles();that.currentBatch.files=readyFiles;that.currentBatch.totalBytes=fluid.uploader.fileQueue.sizeOfFiles(readyFiles)};that.updateBatchStatus=function(currentBytes){var byteIncrement=currentBytes-that.currentBatch.previousBytesUploadedForFile;that.currentBatch.totalBytesUploaded+=byteIncrement;that.currentBatch.bytesUploadedForFile+=byteIncrement;that.currentBatch.previousBytesUploadedForFile=currentBytes};return that};fluid.uploader.fileQueue.sizeOfFiles=function(files){var totalBytes=0;for(var i=0;i<files.length;i++){var file=files[i];totalBytes+=file.size}return totalBytes}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uploader/js/FileQueueView.js b/docs/jscripts/infusion/components/uploader/js/FileQueueView.js
new file mode 100644 (file)
index 0000000..4930c70
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){var rowForFile=function(that,file){return that.locate("fileQueue").find("#"+file.id)};var errorRowForFile=function(that,file){return $("#"+file.id+"_error",that.container)};var fileForRow=function(that,row){var files=that.model;var i;for(i=0;i<files.length;i++){var file=files[i];if(file.id.toString()===row.prop("id")){return file}}return null};var progressorForFile=function(that,file){var progressId=file.id+"_progress";return that.fileProgressors[progressId]};var startFileProgress=function(that,file){var fileRowElm=rowForFile(that,file);that.scroller.scrollTo(fileRowElm);var fileProgressor=progressorForFile(that,file);fileProgressor.refreshView();fileProgressor.show()};var updateFileProgress=function(that,file,fileBytesComplete,fileTotalBytes){var filePercent=fluid.uploader.derivePercent(fileBytesComplete,fileTotalBytes);var filePercentStr=filePercent+"%";progressorForFile(that,file).update(filePercent,filePercentStr)};var hideFileProgress=function(that,file){var fileRowElm=rowForFile(that,file);progressorForFile(that,file).hide();if(file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE){that.locate("fileIconBtn",fileRowElm).removeClass(that.options.styles.dim)}};var removeFileProgress=function(that,file){var fileProgressor=progressorForFile(that,file);if(!fileProgressor){return }var rowProgressor=fileProgressor.displayElement;rowProgressor.remove()};var animateRowRemoval=function(that,row){row.fadeOut("fast",function(){row.remove();that.refreshView()})};var removeFileErrorRow=function(that,file){if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR){animateRowRemoval(that,errorRowForFile(that,file))}};var removeFileAndRow=function(that,file,row){removeFileProgress(that,file);removeFileErrorRow(that,file);that.events.onFileRemoved.fire(file);animateRowRemoval(that,row)};var removeFileForRow=function(that,row){var file=fileForRow(that,row);if(!file||file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE){return }removeFileAndRow(that,file,row)};var removeRowForFile=function(that,file){var row=rowForFile(that,file);removeFileAndRow(that,file,row)};var bindHover=function(row,styles){var over=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading)){row.addClass(styles.hover)}};var out=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading)){row.removeClass(styles.hover)}};row.hover(over,out)};var bindDeleteKey=function(that,row){var deleteHandler=function(){removeFileForRow(that,row)};fluid.activatable(row,null,{additionalBindings:[{key:$.ui.keyCode.DELETE,activateHandler:deleteHandler}]})};var bindRowHandlers=function(that,row){if($.browser.msie&&$.browser.version<7){bindHover(row,that.options.styles)}that.locate("fileIconBtn",row).click(function(){removeFileForRow(that,row)});bindDeleteKey(that,row)};var renderRowFromTemplate=function(that,file){var row=that.rowTemplate.clone(),fileName=file.name,fileSize=fluid.uploader.formatFileSize(file.size);row.removeClass(that.options.styles.hiddenTemplate);that.locate("fileName",row).text(fileName);that.locate("fileSize",row).text(fileSize);that.locate("fileIconBtn",row).addClass(that.options.styles.remove);row.prop("id",file.id);row.addClass(that.options.styles.ready);bindRowHandlers(that,row);fluid.updateAriaLabel(row,fileName+" "+fileSize);return row};var createProgressorFromTemplate=function(that,row){var rowProgressor=that.rowProgressorTemplate.clone();var rowId=row.prop("id");var progressId=rowId+"_progress";rowProgressor.prop("id",progressId);rowProgressor.css("top",row.position().top);rowProgressor.height(row.height()).width(5);that.container.after(rowProgressor);that.fileProgressors[progressId]=fluid.progress(that.options.uploaderContainer,{selectors:{progressBar:"#"+rowId,displayElement:"#"+progressId,label:"#"+progressId+" .fl-uploader-file-progress-text",indicator:"#"+progressId}})};var addFile=function(that,file){var row=renderRowFromTemplate(that,file);if(!($.browser.msie&&($.browser.version>=8))){row.hide()}that.container.append(row);row.attr("title",that.options.strings.status.remove);row.fadeIn("slow");createProgressorFromTemplate(that,row);that.refreshView();that.scroller.scrollTo("100%")};var enableRows=function(rows,state){var i;for(i=0;i<rows.length;i++){fluid.enabled(rows[i],state)}};var prepareForUpload=function(that){var rowButtons=that.locate("fileIconBtn",that.locate("fileRows"));rowButtons.prop("disabled",true);rowButtons.addClass(that.options.styles.dim);enableRows(that.locate("fileRows"),false)};var refreshAfterUpload=function(that){var rowButtons=that.locate("fileIconBtn",that.locate("fileRows"));rowButtons.prop("disabled",false);rowButtons.removeClass(that.options.styles.dim);enableRows(that.locate("fileRows"),true)};var changeRowState=function(that,row,newState){row.removeClass(that.options.styles.ready).removeClass(that.options.styles.error).addClass(newState)};var markRowAsComplete=function(that,file){var row=rowForFile(that,file);changeRowState(that,row,that.options.styles.uploaded);row.attr("title",that.options.strings.status.success);fluid.enabled(row,false);var removeRowBtn=that.locate("fileIconBtn",row);removeRowBtn.unbind("click");removeRowBtn.removeClass(that.options.styles.remove);removeRowBtn.attr("title",that.options.strings.status.success)};var renderErrorInfoRowFromTemplate=function(that,fileRow,error){var errorRow=that.errorInfoRowTemplate.clone();errorRow.prop("id",fileRow.prop("id")+"_error");var errorType=fluid.keyForValue(fluid.uploader.errorConstants,error);var errorMsg=that.options.strings.errors[errorType];that.locate("errorText",errorRow).text(errorMsg);fileRow.after(errorRow);that.scroller.scrollTo(errorRow)};var showErrorForFile=function(that,file,error){hideFileProgress(that,file);if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR){var fileRowElm=rowForFile(that,file);changeRowState(that,fileRowElm,that.options.styles.error);renderErrorInfoRowFromTemplate(that,fileRowElm,error)}};var addKeyboardNavigation=function(that){fluid.tabbable(that.container);that.selectableContext=fluid.selectable(that.container,{selectableSelector:that.options.selectors.fileRows,onSelect:function(itemToSelect){$(itemToSelect).addClass(that.options.styles.selected)},onUnselect:function(selectedItem){$(selectedItem).removeClass(that.options.styles.selected)}})};var prepareTemplateElements=function(that){that.rowTemplate=that.locate("rowTemplate").remove();that.errorInfoRowTemplate=that.locate("errorInfoRowTemplate").remove();that.errorInfoRowTemplate.removeClass(that.options.styles.hiddenTemplate);that.rowProgressorTemplate=that.locate("rowProgressorTemplate",that.options.uploaderContainer).remove()};fluid.registerNamespace("fluid.uploader.fileQueueView");fluid.uploader.fileQueueView.finalInit=function(that){prepareTemplateElements(that);addKeyboardNavigation(that)};fluid.uploader.fileQueueView.preInit=function(that){that.fileProgressors={};that.addFile=function(file){addFile(that,file)};that.removeFile=function(file){removeRowForFile(that,file)};that.prepareForUpload=function(){prepareForUpload(that)};that.refreshAfterUpload=function(){refreshAfterUpload(that)};that.showFileProgress=function(file){startFileProgress(that,file)};that.updateFileProgress=function(file,fileBytesComplete,fileTotalBytes){updateFileProgress(that,file,fileBytesComplete,fileTotalBytes)};that.markFileComplete=function(file){progressorForFile(that,file).update(100,"100%");markRowAsComplete(that,file)};that.showErrorForFile=function(file,error){showErrorForFile(that,file,error)};that.hideFileProgress=function(file){hideFileProgress(that,file)};that.refreshView=function(){that.selectableContext.refresh();that.scroller.refreshView()}};fluid.defaults("fluid.uploader.fileQueueView",{gradeNames:["fluid.viewComponent","autoInit"],preInitFunction:"fluid.uploader.fileQueueView.preInit",finalInitFunction:"fluid.uploader.fileQueueView.finalInit",components:{scroller:{type:"fluid.scrollableTable"},eventBinder:{type:"fluid.uploader.fileQueueView.eventBinder"}},selectors:{fileRows:".flc-uploader-file",fileName:".flc-uploader-file-name",fileSize:".flc-uploader-file-size",fileIconBtn:".flc-uploader-file-action",errorText:".flc-uploader-file-error",rowTemplate:".flc-uploader-file-tmplt",errorInfoRowTemplate:".flc-uploader-file-error-tmplt",rowProgressorTemplate:".flc-uploader-file-progressor-tmplt"},styles:{hover:"fl-uploader-file-hover",selected:"fl-uploader-file-focus",ready:"fl-uploader-file-state-ready",uploading:"fl-uploader-file-state-uploading",uploaded:"fl-uploader-file-state-uploaded",error:"fl-uploader-file-state-error",remove:"fl-uploader-file-action-remove",dim:"fl-uploader-dim",hiddenTemplate:"fl-uploader-hidden-templates"},strings:{progress:{toUploadLabel:"To upload: %fileCount %fileLabel (%totalBytes)",singleFile:"file",pluralFiles:"files"},status:{success:"File Uploaded",error:"File Upload Error",remove:"Press Delete key to remove file"},errors:{HTTP_ERROR:"File upload error: a network error occured or the file was rejected (reason unknown).",IO_ERROR:"File upload error: a network error occured.",UPLOAD_LIMIT_EXCEEDED:"File upload error: you have uploaded as many files as you are allowed during this session",UPLOAD_FAILED:"File upload error: the upload failed for an unknown reason.",QUEUE_LIMIT_EXCEEDED:"You have as many files in the queue as can be added at one time. Removing files from the queue may allow you to add different files.",FILE_EXCEEDS_SIZE_LIMIT:"One or more of the files that you attempted to add to the queue exceeded the limit of %fileSizeLimit.",ZERO_BYTE_FILE:"One or more of the files that you attempted to add contained no data.",INVALID_FILETYPE:"One or more files were not added to the queue because they were of the wrong type."}},events:{onFileRemoved:null},mergePolicy:{model:"preserve"}});fluid.defaults("fluid.uploader.fileQueueView.eventBinder",{gradeNames:["fluid.eventedComponent","autoInit"]});fluid.demands("fluid.uploader.fileQueueView.eventBinder",[],{});fluid.scrollable=function(element,options){var that=fluid.initView("fluid.scrollable",element,options);that.scrollable=that.options.makeScrollableFn(that.container,that.options);that.maxHeight=that.scrollable.css("max-height");that.scrollTo=function(){that.scrollable.scrollTo.apply(that.scrollable,arguments)};that.refreshView=function(){if($.browser.msie&&$.browser.version==="6.0"){that.scrollable.css("height","");if(that.scrollable.height()>=parseInt(that.maxHeight,10)){that.scrollable.css("height",that.maxHeight)}}};that.refreshView();return that};fluid.scrollable.makeSimple=function(element,options){return fluid.container(element)};fluid.scrollable.makeTable=function(table,options){table.wrap(options.wrapperMarkup);return table.closest(".fl-scrollable-scroller")};fluid.defaults("fluid.scrollable",{makeScrollableFn:fluid.scrollable.makeSimple});fluid.scrollableTable=function(table,options){options=$.extend({},fluid.defaults("fluid.scrollableTable"),options);return fluid.scrollable(table,options)};fluid.defaults("fluid.scrollableTable",{gradeNames:"fluid.viewComponent",makeScrollableFn:fluid.scrollable.makeTable,wrapperMarkup:"<div class='fl-scrollable-scroller'><div class='fl-scrollable-inner'></div></div>"});fluid.demands("fluid.scrollableTable","fluid.uploader.fileQueueView",{funcName:"fluid.scrollableTable",args:["{fileQueueView}.container"]})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uploader/js/Flash9UploaderSupport.js b/docs/jscripts/infusion/components/uploader/js/Flash9UploaderSupport.js
new file mode 100644 (file)
index 0000000..745228a
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.uploader.swfUploadStrategy");fluid.uploader.swfUploadStrategy.flash9SetupDOM=function(styles){var container=$("<div><span></span></div>");container.addClass(styles.flash9Container);$("body").append(container);return container};fluid.demands("fluid.uploader.swfUploadStrategy.setupDOM",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.9"],{funcName:"fluid.uploader.swfUploadStrategy.flash9SetupDOM",args:["{swfUploadStrategy}.options.styles"]});fluid.uploader.swfUploadStrategy.flash9SetupConfig=function(flashContainer,config,events){return fluid.uploader.swfUploadStrategy.convertConfigForSWFUpload(flashContainer,config,events)};fluid.demands("fluid.uploader.swfUploadStrategy.setupConfig",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.9"],{funcName:"fluid.uploader.swfUploadStrategy.flash9SetupConfig",args:["{engine}.flashContainer","{engine}.config","{multiFileUploader}.events"]});fluid.uploader.swfUploadStrategy.flash9EventBinder=function(model,events,local,browseButton){browseButton.click(function(e){local.browse();e.preventDefault()});fluid.uploader.swfUploadStrategy.bindFileEventListeners(model,events)};fluid.demands("fluid.uploader.swfUploadStrategy.eventBinder",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.9"],{funcName:"fluid.uploader.swfUploadStrategy.flash9EventBinder",args:["{multiFileUploader}.queue.files","{multiFileUploader}.events","{local}","{multiFileUploader}.dom.browseButton"]})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uploader/js/FlashUploaderSupport.js b/docs/jscripts/infusion/components/uploader/js/FlashUploaderSupport.js
new file mode 100644 (file)
index 0000000..0168ed2
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.uploader=fluid.uploader||{};fluid.demands("fluid.uploaderImpl","fluid.uploader.swfUpload",{funcName:"fluid.uploader.multiFileUploader"});fluid.uploader.swfUploadStrategy=function(options){var that=fluid.initLittleComponent("fluid.uploader.swfUploadStrategy",options);fluid.initDependents(that);return that};fluid.defaults("fluid.uploader.swfUploadStrategy",{components:{engine:{type:"fluid.uploader.swfUploadStrategy.engine",options:{queueSettings:"{multiFileUploader}.options.queueSettings",flashMovieSettings:"{swfUploadStrategy}.options.flashMovieSettings"}},local:{type:"fluid.uploader.local",options:{errorHandler:"{multiFileUploader}.dom.errorHandler"}},remote:{type:"fluid.uploader.remote"}},flashMovieSettings:{flashURL:"../../../lib/swfupload/flash/swfupload.swf",flashButtonPeerId:"",flashButtonAlwaysVisible:false,flashButtonTransparentEvenInIE:true,flashButtonImageURL:"../images/browse.png",flashButtonCursorEffect:SWFUpload.CURSOR.HAND,debug:false},styles:{browseButtonOverlay:"fl-uploader-browse-overlay",flash9Container:"fl-uploader-flash9-container",uploaderWrapperFlash10:"fl-uploader-flash10-wrapper"}});fluid.demands("fluid.uploader.progressiveStrategy","fluid.uploader.swfUpload",{funcName:"fluid.uploader.swfUploadStrategy"});fluid.uploader.swfUploadStrategy.remote=function(swfUpload,queue,options){var that=fluid.initLittleComponent("fluid.uploader.swfUploadStrategy.remote",options);that.swfUpload=swfUpload;that.queue=queue;that.uploadNextFile=function(){that.swfUpload.startUpload()};that.stop=function(){that.queue.shouldStop=true};return that};fluid.demands("fluid.uploader.remote","fluid.uploader.swfUploadStrategy",{funcName:"fluid.uploader.swfUploadStrategy.remote",args:["{engine}.swfUpload","{multiFileUploader}.queue","{options}"]});fluid.uploader.swfUploadStrategy.local=function(swfUpload,options){var that=fluid.initLittleComponent("fluid.uploader.swfUploadStrategy.local",options);that.swfUpload=swfUpload;that.browse=function(){if(that.options.file_queue_limit===1){that.swfUpload.selectFile()}else{that.swfUpload.selectFiles()}};that.removeFile=function(file){that.swfUpload.cancelUpload(file.id)};that.enableBrowseButton=function(){that.swfUpload.setButtonDisabled(false)};that.disableBrowseButton=function(){that.swfUpload.setButtonDisabled(true)};return that};fluid.demands("fluid.uploader.local","fluid.uploader.swfUploadStrategy",{funcName:"fluid.uploader.swfUploadStrategy.local",args:["{engine}.swfUpload","{options}"]});fluid.uploader.swfUploadStrategy.engine=function(options){var that=fluid.initLittleComponent("fluid.uploader.swfUploadStrategy.engine",options);var flashVersion=swfobject.getFlashPlayerVersion().major;that.flashVersionContext=fluid.typeTag("fluid.uploader.flash."+flashVersion);that.config=$.extend({},that.options.queueSettings,that.options.flashMovieSettings);fluid.initDependents(that);that.flashContainer=that.setupDOM();that.swfUploadConfig=that.setupConfig();that.swfUpload=new SWFUpload(that.swfUploadConfig);that.bindEvents();return that};fluid.defaults("fluid.uploader.swfUploadStrategy.engine",{invokers:{setupDOM:"fluid.uploader.swfUploadStrategy.setupDOM",setupConfig:"fluid.uploader.swfUploadStrategy.setupConfig",bindEvents:"fluid.uploader.swfUploadStrategy.eventBinder"}});fluid.demands("fluid.uploader.swfUploadStrategy.engine","fluid.uploader.swfUploadStrategy",{funcName:"fluid.uploader.swfUploadStrategy.engine",args:[fluid.COMPONENT_OPTIONS]});fluid.uploader.swfUploadStrategy.fileTypeTransformer=function(model,expandSpec){var fileExts="";var mimeTypes=fluid.get(model,expandSpec.path);var mimeTypesMap=fluid.uploader.mimeTypeRegistry;if(!mimeTypes){return"*"}else{if(typeof (mimeTypes)==="string"){return mimeTypes}}fluid.each(mimeTypes,function(mimeType){fluid.each(mimeTypesMap,function(mimeTypeForExt,ext){if(mimeTypeForExt===mimeType){fileExts+="*."+ext+";"}})});return fileExts.length===0?"*":fileExts.substring(0,fileExts.length-1)};fluid.uploader.swfUploadStrategy.flash10SetupDOM=function(uploaderContainer,browseButton,progressBar,styles){uploaderContainer.wrap("<div class='"+styles.uploaderWrapperFlash10+"'></div>");var flashContainer=$("<div><span></span></div>");flashContainer.addClass(styles.browseButtonOverlay);uploaderContainer.after(flashContainer);progressBar.append(flashContainer);browseButton.attr("tabindex",-1);return flashContainer};fluid.demands("fluid.uploader.swfUploadStrategy.setupDOM",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.10"],{funcName:"fluid.uploader.swfUploadStrategy.flash10SetupDOM",args:["{multiFileUploader}.container","{multiFileUploader}.dom.browseButton","{totalProgress}.dom.progressBar","{swfUploadStrategy}.options.styles"]});var swfUploadOptionsMap={uploadURL:"upload_url",flashURL:"flash_url",postParams:"post_params",fileSizeLimit:"file_size_limit",fileTypes:"file_types",fileUploadLimit:"file_upload_limit",fileQueueLimit:"file_queue_limit",flashButtonPeerId:"button_placeholder_id",flashButtonImageURL:"button_image_url",flashButtonHeight:"button_height",flashButtonWidth:"button_width",flashButtonWindowMode:"button_window_mode",flashButtonCursorEffect:"button_cursor",debug:"debug"};var swfUploadEventMap={afterReady:"swfupload_loaded_handler",onFileDialog:"file_dialog_start_handler",onFileQueued:"file_queued_handler",onQueueError:"file_queue_error_handler",afterFileDialog:"file_dialog_complete_handler",onFileStart:"upload_start_handler",onFileProgress:"upload_progress_handler",onFileComplete:"upload_complete_handler",onFileError:"upload_error_handler",onFileSuccess:"upload_success_handler"};var mapNames=function(nameMap,source,target){var result=target||{};for(var key in source){var mappedKey=nameMap[key];if(mappedKey){result[mappedKey]=source[key]}}return result};var mapSWFUploadEvents=function(nameMap,events,target){var result=target||{};for(var eventType in events){var fireFn=events[eventType].fire;var mappedName=nameMap[eventType];if(mappedName){result[mappedName]=fireFn}}return result};fluid.uploader.swfUploadStrategy.convertConfigForSWFUpload=function(flashContainer,config,events,queueSettings){config.flashButtonPeerId=fluid.allocateSimpleId(flashContainer.children().eq(0));config.fileTypes=fluid.uploader.swfUploadStrategy.fileTypeTransformer(queueSettings,{path:"fileTypes"});var convertedConfig=mapNames(swfUploadOptionsMap,config);convertedConfig.file_upload_limit=0;convertedConfig.file_size_limit=0;return mapSWFUploadEvents(swfUploadEventMap,events,convertedConfig)};fluid.uploader.swfUploadStrategy.flash10SetupConfig=function(config,events,flashContainer,browseButton,queueSettings){var isTransparent=config.flashButtonAlwaysVisible?false:(!$.browser.msie||config.flashButtonTransparentEvenInIE);config.flashButtonImageURL=isTransparent?undefined:config.flashButtonImageURL;config.flashButtonHeight=config.flashButtonHeight||browseButton.outerHeight();config.flashButtonWidth=config.flashButtonWidth||browseButton.outerWidth();config.flashButtonWindowMode=isTransparent?SWFUpload.WINDOW_MODE.TRANSPARENT:SWFUpload.WINDOW_MODE.OPAQUE;return fluid.uploader.swfUploadStrategy.convertConfigForSWFUpload(flashContainer,config,events,queueSettings)};fluid.demands("fluid.uploader.swfUploadStrategy.setupConfig",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.10"],{funcName:"fluid.uploader.swfUploadStrategy.flash10SetupConfig",args:["{engine}.config","{multiFileUploader}.events","{engine}.flashContainer","{multiFileUploader}.dom.browseButton","{multiFileUploader}.options.queueSettings"]});var unbindSWFUploadSelectFiles=function(){var emptyFunction=function(){};SWFUpload.prototype.selectFile=emptyFunction;SWFUpload.prototype.selectFiles=emptyFunction};fluid.uploader.swfUploadStrategy.bindFileEventListeners=function(model,events){var manualModelUpdater=function(file){fluid.find(model,function(potentialMatch){if(potentialMatch.id===file.id){potentialMatch.filestatus=file.filestatus;return true}})};events.onFileStart.addListener(manualModelUpdater);events.onFileProgress.addListener(manualModelUpdater);events.onFileError.addListener(manualModelUpdater);events.onFileSuccess.addListener(manualModelUpdater)};var filterErroredFiles=function(file,events,queue,queueSettings){var fileSizeLimit=queueSettings.fileSizeLimit*1000;var fileUploadLimit=queueSettings.fileUploadLimit;var processedFiles=queue.getReadyFiles().length+queue.getUploadedFiles().length;if(file.size>fileSizeLimit){file.filestatus=fluid.uploader.fileStatusConstants.ERROR;events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.FILE_EXCEEDS_SIZE_LIMIT)}else{if(processedFiles>=fileUploadLimit){events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.QUEUE_LIMIT_EXCEEDED)}else{events.afterFileQueued.fire(file)}}};fluid.uploader.swfUploadStrategy.flash10EventBinder=function(queue,queueSettings,events){var model=queue.files;unbindSWFUploadSelectFiles();events.onFileQueued.addListener(function(file){filterErroredFiles(file,events,queue,queueSettings)});fluid.uploader.swfUploadStrategy.bindFileEventListeners(model,events)};fluid.demands("fluid.uploader.swfUploadStrategy.eventBinder",["fluid.uploader.swfUploadStrategy.engine","fluid.uploader.flash.10"],{funcName:"fluid.uploader.swfUploadStrategy.flash10EventBinder",args:["{multiFileUploader}.queue","{multiFileUploader}.queue.files","{multiFileUploader}.events"]})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uploader/js/HTML5UploaderSupport.js b/docs/jscripts/infusion/components/uploader/js/HTML5UploaderSupport.js
new file mode 100644 (file)
index 0000000..aec6adf
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.demands("fluid.uploaderImpl","fluid.uploader.html5",{funcName:"fluid.uploader.multiFileUploader"});fluid.demands("fluid.uploader.progressiveStrategy","fluid.uploader.html5",{funcName:"fluid.uploader.html5Strategy"});fluid.defaults("fluid.uploader.html5Strategy",{gradeNames:["fluid.littleComponent","autoInit"],components:{local:{type:"fluid.uploader.local",options:{queueSettings:"{multiFileUploader}.options.queueSettings",events:{onFileDialog:"{multiFileUploader}.events.onFileDialog",onFilesSelected:"{multiFileUploader}.events.onFilesSelected",afterFileDialog:"{multiFileUploader}.events.afterFileDialog",afterFileQueued:"{multiFileUploader}.events.afterFileQueued",onQueueError:"{multiFileUploader}.events.onQueueError"}}},remote:{type:"fluid.uploader.remote",options:{queueSettings:"{multiFileUploader}.options.queueSettings",events:{afterReady:"{multiFileUploader}.events.afterReady",onFileStart:"{multiFileUploader}.events.onFileStart",onFileProgress:"{multiFileUploader}.events.onFileProgress",onFileSuccess:"{multiFileUploader}.events.onFileSuccess",onFileError:"{multiFileUploader}.events.onFileError",onFileComplete:"{multiFileUploader}.events.onFileComplete"}}}},legacyBrowserFileLimit:100000});fluid.uploader.html5Strategy.fileSuccessHandler=function(file,events,xhr){events.onFileSuccess.fire(file,xhr.responseText,xhr);events.onFileComplete.fire(file)};fluid.uploader.html5Strategy.fileErrorHandler=function(file,events,xhr){events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_FAILED,xhr.status,xhr);events.onFileComplete.fire(file)};fluid.uploader.html5Strategy.fileStopHandler=function(file,events,xhr){events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_STOPPED,xhr.status,xhr);events.onFileComplete.fire(file)};fluid.uploader.html5Strategy.progressTracker=function(){var that={previousBytesLoaded:0};that.getChunkSize=function(bytesLoaded){var chunkSize=bytesLoaded-that.previousBytesLoaded;that.previousBytesLoaded=bytesLoaded;return chunkSize};return that};fluid.uploader.html5Strategy.monitorFileUploadXHR=function(file,events,xhr){xhr.onreadystatechange=function(){if(xhr.readyState===4){var status=xhr.status;if(status===200){fluid.uploader.html5Strategy.fileSuccessHandler(file,events,xhr)}else{if(status===0){fluid.uploader.html5Strategy.fileStopHandler(file,events,xhr)}else{fluid.uploader.html5Strategy.fileErrorHandler(file,events,xhr)}}}};var progressTracker=fluid.uploader.html5Strategy.progressTracker();xhr.upload.onprogress=function(pe){events.onFileProgress.fire(file,progressTracker.getChunkSize(pe.loaded),pe.total)}};fluid.uploader.html5Strategy.remote=function(queue,options){var that=fluid.initLittleComponent("fluid.uploader.html5Strategy.remote",options);that.queue=queue;that.queueSettings=that.options.queueSettings;that.uploadNextFile=function(){var batch=that.queue.currentBatch;var file=batch.files[batch.fileIdx];that.uploadFile(file)};that.uploadFile=function(file){that.events.onFileStart.fire(file);that.currentXHR=that.createXHR();fluid.uploader.html5Strategy.monitorFileUploadXHR(file,that.events,that.currentXHR);that.fileSender.send(file,that.queueSettings,that.currentXHR)};that.stop=function(){that.queue.isUploading=false;that.currentXHR.abort()};fluid.initDependents(that);that.events.afterReady.fire();return that};fluid.defaults("fluid.uploader.html5Strategy.remote",{gradeNames:["fluid.eventedComponent"],argumentMap:{options:1},components:{fileSender:{type:"fluid.uploader.html5Strategy.fileSender"}},invokers:{createXHR:"fluid.uploader.html5Strategy.createXHR"}});fluid.demands("fluid.uploader.remote",["fluid.uploader.html5Strategy","fluid.uploader.live"],{funcName:"fluid.uploader.html5Strategy.remote",args:["{multiFileUploader}.queue",fluid.COMPONENT_OPTIONS]});fluid.uploader.html5Strategy.createXHR=function(){return new XMLHttpRequest()};fluid.uploader.html5Strategy.createFormData=function(){return new FormData()};var setPostParams=function(formData,postParams){$.each(postParams,function(key,value){formData.append(key,value)})};fluid.defaults("fluid.uploader.html5Strategy.formDataSender",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.uploader.html5Strategy.formDataSender.init",invokers:{createFormData:"fluid.uploader.html5Strategy.createFormData"}});fluid.uploader.html5Strategy.formDataSender.init=function(that){that.send=function(file,queueSettings,xhr){var formData=that.createFormData();formData.append("file",file);setPostParams(formData,queueSettings.postParams);xhr.open("POST",queueSettings.uploadURL,true);xhr.send(formData);return formData}};fluid.demands("fluid.uploader.html5Strategy.fileSender",["fluid.uploader.html5Strategy.remote","fluid.browser.supportsFormData"],{funcName:"fluid.uploader.html5Strategy.formDataSender"});fluid.uploader.html5Strategy.generateMultipartBoundary=function(){var boundary="---------------------------";boundary+=Math.floor(Math.random()*32768);boundary+=Math.floor(Math.random()*32768);boundary+=Math.floor(Math.random()*32768);return boundary};fluid.uploader.html5Strategy.generateMultiPartContent=function(boundary,file){var CRLF="\r\n";var multipart="";multipart+="--"+boundary+CRLF;multipart+='Content-Disposition: form-data; name="fileData"; filename="'+file.name+'"'+CRLF;multipart+="Content-Type: "+file.type+CRLF+CRLF;multipart+=file.getAsBinary();multipart+=CRLF+"--"+boundary+"--"+CRLF;return multipart};fluid.defaults("fluid.uploader.html5Strategy.rawMIMESender",{gradeNames:["fluid.littleComponent","autoInit"],finalInitFunction:"fluid.uploader.html5Strategy.rawMIMESender.init"});fluid.uploader.html5Strategy.rawMIMESender.init=function(that){that.send=function(file,queueSettings,xhr){var boundary=fluid.uploader.html5Strategy.generateMultipartBoundary();var multipart=fluid.uploader.html5Strategy.generateMultiPartContent(boundary,file);xhr.open("POST",queueSettings.uploadURL,true);xhr.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);xhr.sendAsBinary(multipart);return multipart}};fluid.demands("fluid.uploader.html5Strategy.fileSender","fluid.uploader.html5Strategy.remote",{funcName:"fluid.uploader.html5Strategy.rawMIMESender"});fluid.uploader.html5Strategy.local=function(queue,legacyBrowserFileLimit,options){var that=fluid.initLittleComponent("fluid.uploader.html5Strategy.local",options);that.queue=queue;that.queueSettings=that.options.queueSettings;that.addFiles=function(files){var sizeLimit=(legacyBrowserFileLimit||that.queueSettings.fileSizeLimit)*1024;var fileLimit=that.queueSettings.fileUploadLimit;var uploaded=that.queue.getUploadedFiles().length;var queued=that.queue.getReadyFiles().length;var remainingUploadLimit=fileLimit-uploaded-queued;that.events.onFilesSelected.fire(files.length);var numFilesAdded=0;for(var i=0;i<files.length;i++){var file=files[i];if(fileLimit&&remainingUploadLimit===0){that.events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.QUEUE_LIMIT_EXCEEDED)}else{if(file.size>=sizeLimit){file.filestatus=fluid.uploader.fileStatusConstants.ERROR;that.events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.FILE_EXCEEDS_SIZE_LIMIT)}else{if(!fileLimit||remainingUploadLimit>0){file.id="file-"+fluid.allocateGuid();file.filestatus=fluid.uploader.fileStatusConstants.QUEUED;that.events.afterFileQueued.fire(file);remainingUploadLimit--;numFilesAdded++}}}}that.events.afterFileDialog.fire(numFilesAdded)};that.removeFile=function(file){};that.enableBrowseButton=function(){that.browseButtonView.enable()};that.disableBrowseButton=function(){that.browseButtonView.disable()};fluid.initDependents(that);return that};fluid.defaults("fluid.uploader.html5Strategy.local",{argumentMap:{options:2},gradeNames:["fluid.eventedComponent"],components:{browseButtonView:{type:"fluid.uploader.html5Strategy.browseButtonView",options:{queueSettings:"{multiFileUploader}.options.queueSettings",selectors:{browseButton:"{multiFileUploader}.selectors.browseButton"},listeners:{onFilesQueued:"{local}.addFiles"}}}}});fluid.demands("fluid.uploader.local","fluid.uploader.html5Strategy",{funcName:"fluid.uploader.html5Strategy.local",args:["{multiFileUploader}.queue","{html5Strategy}.options.legacyBrowserFileLimit","{options}"]});fluid.demands("fluid.uploader.local",["fluid.uploader.html5Strategy","fluid.browser.supportsFormData"],{funcName:"fluid.uploader.html5Strategy.local",args:["{multiFileUploader}.queue",undefined,"{options}"]});var bindEventsToFileInput=function(that,fileInput){fileInput.click(function(){that.events.onBrowse.fire()});fileInput.change(function(){var files=fileInput[0].files;that.renderFreshMultiFileInput();that.events.onFilesQueued.fire(files)});fileInput.focus(function(){that.browseButton.addClass("focus")});fileInput.blur(function(){that.browseButton.removeClass("focus")})};var renderMultiFileInput=function(that){var multiFileInput=$(that.options.multiFileInputMarkup);var fileTypes=that.options.queueSettings.fileTypes;if(fluid.isArrayable(fileTypes)){fileTypes=fileTypes.join();multiFileInput.attr("accept",fileTypes)}bindEventsToFileInput(that,multiFileInput);return multiFileInput};var setupBrowseButtonView=function(that){var multiFileInput=renderMultiFileInput(that);that.browseButton.append(multiFileInput);that.browseButton.attr("tabindex",-1)};fluid.uploader.html5Strategy.browseButtonView=function(container,options){var that=fluid.initView("fluid.uploader.html5Strategy.browseButtonView",container,options);that.browseButton=that.locate("browseButton");that.renderFreshMultiFileInput=function(){var previousInput=that.locate("fileInputs").last();previousInput.hide();previousInput.attr("tabindex",-1);var newInput=renderMultiFileInput(that);previousInput.after(newInput)};that.enable=function(){that.locate("fileInputs").prop("disabled",false)};that.disable=function(){that.locate("fileInputs").prop("disabled",true)};setupBrowseButtonView(that);return that};fluid.defaults("fluid.uploader.html5Strategy.browseButtonView",{gradeNames:"fluid.viewComponent",multiFileInputMarkup:"<input type='file' multiple='' class='flc-uploader-html5-input' />",queueSettings:{},selectors:{browseButton:".flc-uploader-button-browse",fileInputs:".flc-uploader-html5-input"},events:{onBrowse:null,onFilesQueued:null}});fluid.demands("fluid.uploader.html5Strategy.browseButtonView","fluid.uploader.html5Strategy.local",{container:"{multiFileUploader}.container",mergeOptions:{events:{onBrowse:"{local}.events.onFileDialog"}}})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uploader/js/MimeTypeExtensions.js b/docs/jscripts/infusion/components/uploader/js/MimeTypeExtensions.js
new file mode 100644 (file)
index 0000000..73b1faa
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function(fluid){fluid.uploader=fluid.uploader||{};fluid.uploader.mimeTypeRegistry={jpg:"image/jpeg",jpeg:"image/jpeg",bmp:"image/bmp",png:"image/png",tif:"image/tiff",tiff:"image/tiff",mp3:"audio/mpeg",m4a:"audio/mp4a-latm",ogg:"audio/ogg",wav:"audio/x-wav",aiff:"audio/x-aiff",mpg:"video/mpeg",mpeg:"video/mpeg",m4v:"video/x-m4v",ogv:"video/ogg",mov:"video/quicktime",avi:"video/x-msvideo",html:"text/html",htm:"text/html",text:"text/plain",doc:"application/msword",docx:"application/msword",xls:"application/vnd.ms-excel",xlsx:"application/vnd.ms-excel",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.ms-powerpoint"}})(fluid_1_4);
\ No newline at end of file
index 640f2b1..90fd549 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var rowForFile=function(that,file){return that.locate("fileQueue").find("#"+file.id)};var errorRowForFile=function(that,file){return $("#"+file.id+"_error",that.container)};var fileForRow=function(that,row){var files=that.uploadManager.queue.files;for(var i=0;i<files.length;i++){var file=files[i];if(file.id.toString()===row.attr("id")){return file}}return null};var progressorForFile=function(that,file){var progressId=file.id+"_progress";return that.fileProgressors[progressId]};var startFileProgress=function(that,file){var fileRowElm=rowForFile(that,file);that.scroller.scrollTo(fileRowElm);var fileProgressor=progressorForFile(that,file);fileProgressor.refreshView();fileProgressor.show()};var updateFileProgress=function(that,file,fileBytesComplete,fileTotalBytes){var filePercent=fluid.uploader.derivePercent(fileBytesComplete,fileTotalBytes);var filePercentStr=filePercent+"%";progressorForFile(that,file).update(filePercent,filePercentStr)};var hideFileProgress=function(that,file){var fileRowElm=rowForFile(that,file);progressorForFile(that,file).hide();if(file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE){that.locate("fileIconBtn",fileRowElm).removeClass(that.options.styles.dim)}};var removeFileProgress=function(that,file){var fileProgressor=progressorForFile(that,file);if(!fileProgressor){return }var rowProgressor=fileProgressor.displayElement;rowProgressor.remove()};var animateRowRemoval=function(that,row){row.fadeOut("fast",function(){row.remove();that.refreshView()})};var removeFileErrorRow=function(that,file){if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR){animateRowRemoval(that,errorRowForFile(that,file))}};var removeFileAndRow=function(that,file,row){removeFileProgress(that,file);removeFileErrorRow(that,file);that.uploadManager.removeFile(file);animateRowRemoval(that,row)};var removeFileForRow=function(that,row){var file=fileForRow(that,row);if(!file||file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE){return }removeFileAndRow(that,file,row)};var removeRowForFile=function(that,file){var row=rowForFile(that,file);removeFileAndRow(that,file,row)};var bindHover=function(row,styles){var over=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading)){row.addClass(styles.hover)}};var out=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading)){row.removeClass(styles.hover)}};row.hover(over,out)};var bindDeleteKey=function(that,row){var deleteHandler=function(){removeFileForRow(that,row)};fluid.activatable(row,null,{additionalBindings:[{key:$.ui.keyCode.DELETE,activateHandler:deleteHandler}]})};var bindRowHandlers=function(that,row){if($.browser.msie&&$.browser.version<7){bindHover(row,that.options.styles)}that.locate("fileIconBtn",row).click(function(){removeFileForRow(that,row)});bindDeleteKey(that,row)};var renderRowFromTemplate=function(that,file){var row=that.rowTemplate.clone();that.locate("fileName",row).text(file.name);that.locate("fileSize",row).text(fluid.uploader.formatFileSize(file.size));that.locate("fileIconBtn",row).addClass(that.options.styles.remove);row.attr("id",file.id);row.addClass(that.options.styles.ready);bindRowHandlers(that,row);return row};var createProgressorFromTemplate=function(that,row){var rowProgressor=that.rowProgressorTemplate.clone();var rowId=row.attr("id");var progressId=rowId+"_progress";rowProgressor.attr("id",progressId);rowProgressor.css("top",row.position().top);rowProgressor.height(row.height()).width(5);that.container.after(rowProgressor);that.fileProgressors[progressId]=fluid.progress(that.uploadContainer,{selectors:{progressBar:"#"+rowId,displayElement:"#"+progressId,label:"#"+progressId+" .fl-uploader-file-progress-text",indicator:"#"+progressId}})};var addFile=function(that,file){var row=renderRowFromTemplate(that,file);if(!($.browser.msie&&($.browser.version>=8))){row.hide()}that.container.append(row);row.fadeIn("slow");that.scroller.scrollBottom();createProgressorFromTemplate(that,row);that.refreshView()};var prepareForUpload=function(that){var rowButtons=that.locate("fileIconBtn",that.locate("fileRows"));rowButtons.attr("disabled","disabled");rowButtons.addClass(that.options.styles.dim)};var refreshAfterUpload=function(that){var rowButtons=that.locate("fileIconBtn",that.locate("fileRows"));rowButtons.removeAttr("disabled");rowButtons.removeClass(that.options.styles.dim)};var changeRowState=function(that,row,newState){row.removeClass(that.options.styles.ready).removeClass(that.options.styles.error).addClass(newState)};var markRowAsComplete=function(that,file){var row=rowForFile(that,file);changeRowState(that,row,that.options.styles.uploaded);row.attr("title",that.options.strings.status.success);fluid.enabled(row,false);var removeRowBtn=that.locate("fileIconBtn",row);removeRowBtn.unbind("click");removeRowBtn.removeClass(that.options.styles.remove);removeRowBtn.attr("title",that.options.strings.status.success)};var renderErrorInfoRowFromTemplate=function(that,fileRow,error){var errorRow=that.errorInfoRowTemplate.clone();errorRow.attr("id",fileRow.attr("id")+"_error");var errorType=fluid.keyForValue(fluid.uploader.errorConstants,error);var errorMsg=that.options.strings.errors[errorType];that.locate("errorText",errorRow).text(errorMsg);fileRow.after(errorRow);that.scroller.scrollTo(errorRow)};var showErrorForFile=function(that,file,error){hideFileProgress(that,file);if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR){var fileRowElm=rowForFile(that,file);changeRowState(that,fileRowElm,that.options.styles.error);renderErrorInfoRowFromTemplate(that,fileRowElm,error)}};var bindModelEvents=function(that){that.returnedOptions={listeners:{afterFileQueued:that.addFile,onUploadStart:that.prepareForUpload,onFileStart:that.showFileProgress,onFileProgress:that.updateFileProgress,onFileSuccess:that.markFileComplete,onFileError:that.showErrorForFile,afterFileComplete:that.hideFileProgress,afterUploadComplete:that.refreshAfterUpload}}};var addKeyboardNavigation=function(that){fluid.tabbable(that.container);that.selectableContext=fluid.selectable(that.container,{selectableSelector:that.options.selectors.fileRows,onSelect:function(itemToSelect){$(itemToSelect).addClass(that.options.styles.selected)},onUnselect:function(selectedItem){$(selectedItem).removeClass(that.options.styles.selected)}})};var prepareTemplateElements=function(that){that.rowTemplate=that.locate("rowTemplate").remove();if($.browser.msie&&($.browser.version>=8)){that.rowTemplate.removeClass(that.options.styles.hiddenTemplate)}that.errorInfoRowTemplate=that.locate("errorInfoRowTemplate").remove();that.errorInfoRowTemplate.removeClass(that.options.styles.hiddenTemplate);that.rowProgressorTemplate=that.locate("rowProgressorTemplate",that.uploadContainer).remove()};var setupFileQueue=function(that,uploadManager){that.uploadManager=uploadManager;that.scroller=fluid.scroller(that.container);prepareTemplateElements(that);addKeyboardNavigation(that);bindModelEvents(that)};fluid.fileQueueView=function(container,parentContainer,uploadManager,options){var that=fluid.initView("fluid.fileQueueView",container,options);that.uploadContainer=parentContainer;that.fileProgressors={};that.addFile=function(file){addFile(that,file)};that.removeFile=function(file){removeRowForFile(that,file)};that.prepareForUpload=function(){prepareForUpload(that)};that.refreshAfterUpload=function(){refreshAfterUpload(that)};that.showFileProgress=function(file){startFileProgress(that,file)};that.updateFileProgress=function(file,fileBytesComplete,fileTotalBytes){updateFileProgress(that,file,fileBytesComplete,fileTotalBytes)};that.markFileComplete=function(file){progressorForFile(that,file).update(100,"100%");markRowAsComplete(that,file)};that.showErrorForFile=function(file,error){showErrorForFile(that,file,error)};that.hideFileProgress=function(file){hideFileProgress(that,file)};that.refreshView=function(){that.scroller.refreshView();that.selectableContext.refresh()};setupFileQueue(that,uploadManager);return that};fluid.defaults("fluid.fileQueueView",{selectors:{fileRows:".flc-uploader-file",fileName:".flc-uploader-file-name",fileSize:".flc-uploader-file-size",fileIconBtn:".flc-uploader-file-action",errorText:".flc-uploader-file-error",rowTemplate:".flc-uploader-file-tmplt",errorInfoRowTemplate:".flc-uploader-file-error-tmplt",rowProgressorTemplate:".flc-uploader-file-progressor-tmplt"},styles:{hover:"fl-uploader-file-hover",selected:"fl-uploader-file-focus",ready:"fl-uploader-file-state-ready",uploading:"fl-uploader-file-state-uploading",uploaded:"fl-uploader-file-state-uploaded",error:"fl-uploader-file-state-error",remove:"fl-uploader-file-action-remove",dim:"fl-uploader-dim",hiddenTemplate:"fl-uploader-hidden-templates"},strings:{progress:{toUploadLabel:"To upload: %fileCount %fileLabel (%totalBytes)",singleFile:"file",pluralFiles:"files"},status:{success:"File Uploaded",error:"File Upload Error"},errors:{HTTP_ERROR:"File upload error: a network error occured or the file was rejected (reason unknown).",IO_ERROR:"File upload error: a network error occured.",UPLOAD_LIMIT_EXCEEDED:"File upload error: you have uploaded as many files as you are allowed during this session",UPLOAD_FAILED:"File upload error: the upload failed for an unknown reason.",QUEUE_LIMIT_EXCEEDED:"You have as many files in the queue as can be added at one time. Removing files from the queue may allow you to add different files.",FILE_EXCEEDS_SIZE_LIMIT:"One or more of the files that you attempted to add to the queue exceeded the limit of %fileSizeLimit.",ZERO_BYTE_FILE:"One or more of the files that you attempted to add contained no data.",INVALID_FILETYPE:"One or more files were not added to the queue because they were of the wrong type."}}})})(jQuery,fluid_1_1);(function($,fluid){var fileOrFiles=function(that,numFiles){return(numFiles===1)?that.options.strings.progress.singleFile:that.options.strings.progress.pluralFiles};var enableElement=function(that,elm){elm.removeAttr("disabled");elm.removeClass(that.options.styles.dim)};var disableElement=function(that,elm){elm.attr("disabled","disabled");elm.addClass(that.options.styles.dim)};var showElement=function(that,elm){elm.removeClass(that.options.styles.hidden)};var hideElement=function(that,elm){elm.addClass(that.options.styles.hidden)};var setTotalProgressStyle=function(that,didError){didError=didError||false;var indicator=that.totalProgress.indicator;indicator.toggleClass(that.options.styles.totalProgress,!didError);indicator.toggleClass(that.options.styles.totalProgressError,didError)};var setStateEmpty=function(that){disableElement(that,that.locate("uploadButton"));if(that.uploadManager.queue.files.length===0){that.locate("browseButton").text(that.options.strings.buttons.browse);showElement(that,that.locate("instructions"))}};var setStateDone=function(that){disableElement(that,that.locate("uploadButton"));enableElement(that,that.locate("browseButton"));hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"))};var setStateLoaded=function(that){that.locate("browseButton").text(that.options.strings.buttons.addMore);hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"));enableElement(that,that.locate("uploadButton"));enableElement(that,that.locate("browseButton"));hideElement(that,that.locate("instructions"));that.totalProgress.hide()};var setStateUploading=function(that){that.totalProgress.hide(false,false);setTotalProgressStyle(that);hideElement(that,that.locate("uploadButton"));disableElement(that,that.locate("browseButton"));enableElement(that,that.locate("pauseButton"));showElement(that,that.locate("pauseButton"));that.locate(that.options.focusWithEvent.afterUploadStart).focus()};var renderUploadTotalMessage=function(that){var numReadyFiles=that.uploadManager.queue.getReadyFiles().length;var bytesReadyFiles=that.uploadManager.queue.sizeOfReadyFiles();var fileLabelStr=fileOrFiles(that,numReadyFiles);var totalStateStr=fluid.stringTemplate(that.options.strings.progress.toUploadLabel,{fileCount:numReadyFiles,fileLabel:fileLabelStr,totalBytes:fluid.uploader.formatFileSize(bytesReadyFiles)});that.locate("totalFileStatusText").html(totalStateStr)};var updateTotalProgress=function(that){var batch=that.uploadManager.queue.currentBatch;var totalPercent=fluid.uploader.derivePercent(batch.totalBytesUploaded,batch.totalBytes);var numFilesInBatch=batch.files.length;var fileLabelStr=fileOrFiles(that,numFilesInBatch);var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.totalProgressLabel,{curFileN:batch.fileIdx+1,totalFilesN:numFilesInBatch,fileLabel:fileLabelStr,currBytes:fluid.uploader.formatFileSize(batch.totalBytesUploaded),totalBytes:fluid.uploader.formatFileSize(batch.totalBytes)});that.totalProgress.update(totalPercent,totalProgressStr)};var updateTotalAtCompletion=function(that){var numErroredFiles=that.uploadManager.queue.getErroredFiles().length;var numTotalFiles=that.uploadManager.queue.files.length;var fileLabelStr=fileOrFiles(that,numTotalFiles);var errorStr="";if(numErroredFiles>0){var errorLabelString=(numErroredFiles===1)?that.options.strings.progress.singleError:that.options.strings.progress.pluralErrors;setTotalProgressStyle(that,true);errorStr=fluid.stringTemplate(that.options.strings.progress.numberOfErrors,{errorsN:numErroredFiles,errorLabel:errorLabelString})}var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.completedLabel,{curFileN:that.uploadManager.queue.getUploadedFiles().length,totalFilesN:numTotalFiles,errorString:errorStr,fileLabel:fileLabelStr,totalCurrBytes:fluid.uploader.formatFileSize(that.uploadManager.queue.sizeOfUploadedFiles())});that.totalProgress.update(100,totalProgressStr)};var bindDOMEvents=function(that){that.locate("browseButton").click(function(evnt){that.uploadManager.browseForFiles();evnt.preventDefault()});that.locate("uploadButton").click(function(){that.uploadManager.start()});that.locate("pauseButton").click(function(){that.uploadManager.stop()})};var updateStateAfterFileDialog=function(that){if(that.uploadManager.queue.getReadyFiles().length>0){setStateLoaded(that);renderUploadTotalMessage(that);that.locate(that.options.focusWithEvent.afterFileDialog).focus()}};var updateStateAfterFileRemoval=function(that){if(that.uploadManager.queue.getReadyFiles().length===0){setStateEmpty(that)}renderUploadTotalMessage(that)};var updateStateAfterPause=function(that){};var updateStateAfterCompletion=function(that){var userPaused=that.uploadManager.queue.shouldStop;if(that.uploadManager.queue.getReadyFiles().length===0){setStateDone(that)}else{setStateLoaded(that)}updateTotalAtCompletion(that)};var bindModelEvents=function(that){that.events.afterFileDialog.addListener(function(){updateStateAfterFileDialog(that)});that.events.afterFileRemoved.addListener(function(){updateStateAfterFileRemoval(that)});that.events.onUploadStart.addListener(function(){setStateUploading(that)});that.events.onUploadStop.addListener(function(){that.locate(that.options.focusWithEvent.afterUploadStop).focus()});that.events.onFileProgress.addListener(function(){updateTotalProgress(that)});that.events.onFileSuccess.addListener(function(){updateTotalProgress(that)});that.events.onFileError.addListener(function(file,error,message){if(error===fluid.uploader.errorConstants.UPLOAD_STOPPED){updateStateAfterPause(that)}});that.events.afterUploadComplete.addListener(function(){updateStateAfterCompletion(that)})};var initUploadManager=function(that){var manager=fluid.initSubcomponent(that,"uploadManager",[that.events,fluid.COMPONENT_OPTIONS]);return that.options.demo?fluid.demoUploadManager(manager):manager};var setupUploader=function(that){that.decorators=fluid.initSubcomponents(that,"decorators",[that,fluid.COMPONENT_OPTIONS]);that.uploadManager=initUploadManager(that);that.fileQueueView=fluid.initSubcomponent(that,"fileQueueView",[that.locate("fileQueue"),that.container,that.uploadManager,fluid.COMPONENT_OPTIONS]);that.totalProgress=fluid.initSubcomponent(that,"totalProgressBar",[that.container,fluid.COMPONENT_OPTIONS]);disableElement(that,that.locate("uploadButton"));bindDOMEvents(that);bindModelEvents(that)};fluid.uploader=function(container,options){var that=fluid.initView("fluid.uploader",container,options);setupUploader(that);return that};fluid.progressiveEnhanceableUploader=function(container,enhanceable,options){enhanceable=fluid.container(enhanceable);container=fluid.container(container);if(swfobject.getFlashPlayerVersion().major<9){enhanceable.show()}else{container.show();return fluid.uploader(container,options)}};fluid.uploader.formatFileSize=function(bytes){if(typeof bytes==="number"){if(bytes===0){return"0.0 KB"}else{if(bytes>0){if(bytes<1048576){return(Math.ceil(bytes/1024*10)/10).toFixed(1)+" KB"}else{return(Math.ceil(bytes/1048576*10)/10).toFixed(1)+" MB"}}}}return""};fluid.uploader.derivePercent=function(num,total){return Math.round((num*100)/total)};fluid.defaults("fluid.uploader",{demo:false,decorators:[{type:"fluid.swfUploadSetupDecorator"},{type:"fluid.manuallyDegrade",options:{selectors:{enhanceable:".fl-uploader.fl-progEnhance-basic"}}}],uploadManager:{type:"fluid.swfUploadManager"},fileQueueView:{type:"fluid.fileQueueView"},totalProgressBar:{type:"fluid.progress",options:{selectors:{progressBar:".flc-uploader-queue-footer",displayElement:".flc-uploader-total-progress",label:".flc-uploader-total-progress-text",indicator:".flc-uploader-total-progress",ariaElement:".flc-uploader-total-progress"}}},selectors:{fileQueue:".flc-uploader-queue",browseButton:".flc-uploader-button-browse",uploadButton:".flc-uploader-button-upload",pauseButton:".flc-uploader-button-pause",totalFileStatusText:".flc-uploader-total-progress-text",instructions:".flc-uploader-browse-instructions"},focusWithEvent:{afterFileDialog:"uploadButton",afterUploadStart:"pauseButton",afterUploadStop:"uploadButton"},styles:{disabled:"fl-uploader-disabled",hidden:"fl-uploader-hidden",dim:"fl-uploader-dim",totalProgress:"fl-uploader-total-progress-okay",totalProgressError:"fl-uploader-total-progress-errored"},events:{afterReady:null,onFileDialog:null,afterFileQueued:null,afterFileRemoved:null,onQueueError:null,afterFileDialog:null,onUploadStart:null,onUploadStop:null,onFileStart:null,onFileProgress:null,onFileError:null,onFileSuccess:null,afterFileComplete:null,afterUploadComplete:null},strings:{progress:{toUploadLabel:"To upload: %fileCount %fileLabel (%totalBytes)",totalProgressLabel:"Uploading: %curFileN of %totalFilesN %fileLabel (%currBytes of %totalBytes)",completedLabel:"Uploaded: %curFileN of %totalFilesN %fileLabel (%totalCurrBytes)%errorString",numberOfErrors:", %errorsN %errorLabel",singleFile:"file",pluralFiles:"files",singleError:"error",pluralErrors:"errors"},buttons:{browse:"Browse Files",addMore:"Add More",stopUpload:"Stop Upload",cancelRemaning:"Cancel remaining Uploads",resumeUpload:"Resume Upload"}}});fluid.uploader.errorConstants={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290};fluid.uploader.fileStatusConstants={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5};var renderLink=function(renderLocation,text,classes,appendBeside){var link=$("<a href='#'>"+text+"</a>");link.addClass(classes);if(renderLocation==="before"){appendBeside.before(link)}else{appendBeside.after(link)}return link};var toggleVisibility=function(toShow,toHide){if(window.opera){toShow.show().removeClass("hideUploaderForOpera");toHide.show().addClass("hideUploaderForOpera")}else{toShow.show();toHide.hide()}};var defaultControlRenderer=function(that){var degradeLink=renderLink(that.options.defaultRenderLocation,that.options.strings.degradeLinkText,that.options.styles.degradeLinkClass,that.enhancedContainer);degradeLink.addClass("flc-manuallyDegrade-degrade");var enhanceLink=renderLink(that.options.defaultRenderLocation,that.options.strings.enhanceLinkText,that.options.styles.enhanceLinkClass,that.degradedContainer);enhanceLink.addClass("flc-manuallyDegrade-enhance")};var fetchControls=function(that){that.degradeControl=that.locate("degradeControl");that.enhanceControl=that.locate("enhanceControl")};var setupManuallyDegrade=function(that){if(!that.degradedContainer.length){return }fetchControls(that);if(!that.degradeControl.length&&!that.enhanceControl.length){that.options.controlRenderer(that);fetchControls(that)}that.degradeControl.click(that.degrade);that.enhanceControl.click(that.enhance);that.enhanceControl.hide()};var determineContainer=function(options){var defaults=fluid.defaults("fluid.manuallyDegrade");return(options&&options.container)?options.container:defaults.container};fluid.manuallyDegrade=function(component,options){var container=determineContainer(options);var that=fluid.initView("fluid.manuallyDegrade",container,options);var isDegraded=false;that.enhancedContainer=component.container;that.degradedContainer=that.locate("enhanceable");that.degrade=function(){toggleVisibility(that.enhanceControl,that.degradeControl);toggleVisibility(that.degradedContainer,that.enhancedContainer);isDegraded=true};that.enhance=function(){toggleVisibility(that.degradeControl,that.enhanceControl);toggleVisibility(that.enhancedContainer,that.degradedContainer);isDegraded=false};that.isDegraded=function(){return isDegraded};setupManuallyDegrade(that);return that};fluid.defaults("fluid.manuallyDegrade",{container:"body",controlRenderer:defaultControlRenderer,defaultRenderLocation:"before",strings:{degradeLinkText:"Switch to the standard single-file Uploader",enhanceLinkText:"Switch to the Flash-based multi-file Uploader"},selectors:{enhanceable:".fl-ProgEnhance-basic",degradeControl:".flc-manuallyDegrade-degrade",enhanceControl:".flc-manuallyDegrade-enhance"},styles:{degradeLinkClass:"fl-uploader-manually-degrade",enhanceLinkClass:"fl-uploader-manually-enhance"}})})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.setLogging(true);var fileOrFiles=function(that,numFiles){return(numFiles===1)?that.options.strings.progress.singleFile:that.options.strings.progress.pluralFiles};var enableElement=function(that,elm){elm.prop("disabled",false);elm.removeClass(that.options.styles.dim)};var disableElement=function(that,elm){elm.prop("disabled",true);elm.addClass(that.options.styles.dim)};var showElement=function(that,elm){elm.removeClass(that.options.styles.hidden)};var hideElement=function(that,elm){elm.addClass(that.options.styles.hidden)};var maxFilesUploaded=function(that){var fileUploadLimit=that.queue.getUploadedFiles().length+that.queue.getReadyFiles().length;return(fileUploadLimit===that.options.queueSettings.fileUploadLimit)};var setTotalProgressStyle=function(that,didError){didError=didError||false;var indicator=that.totalProgress.indicator;indicator.toggleClass(that.options.styles.totalProgress,!didError);indicator.toggleClass(that.options.styles.totalProgressError,didError)};var setStateEmpty=function(that){disableElement(that,that.locate("uploadButton"));if(that.queue.files.length===0){that.locate("browseButtonText").text(that.options.strings.buttons.browse);that.locate("browseButton").removeClass(that.options.styles.browseButton);showElement(that,that.locate("instructions"))}};var enableBrowseButton=function(that){if(!maxFilesUploaded(that)){enableElement(that,that.locate("browseButton"));that.strategy.local.enableBrowseButton()}};var setStateDone=function(that){disableElement(that,that.locate("uploadButton"));hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"));enableBrowseButton(that)};var setStateLoaded=function(that){that.locate("browseButtonText").text(that.options.strings.buttons.addMore);that.locate("browseButton").addClass(that.options.styles.browseButton);hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"));enableElement(that,that.locate("uploadButton"));hideElement(that,that.locate("instructions"));that.totalProgress.hide();enableBrowseButton(that)};var setStateUploading=function(that){that.totalProgress.hide(false,false);setTotalProgressStyle(that);hideElement(that,that.locate("uploadButton"));disableElement(that,that.locate("browseButton"));that.strategy.local.disableBrowseButton();enableElement(that,that.locate("pauseButton"));showElement(that,that.locate("pauseButton"));that.locate(that.options.focusWithEvent.afterUploadStart).focus()};var setStateFull=function(that){that.locate("browseButtonText").text(that.options.strings.buttons.addMore);that.locate("browseButton").addClass(that.options.styles.browseButton);hideElement(that,that.locate("pauseButton"));showElement(that,that.locate("uploadButton"));enableElement(that,that.locate("uploadButton"));disableElement(that,that.locate("browseButton"));that.strategy.local.disableBrowseButton();hideElement(that,that.locate("instructions"));that.totalProgress.hide()};var renderUploadTotalMessage=function(that){var numReadyFiles=that.queue.getReadyFiles().length;var bytesReadyFiles=that.queue.sizeOfReadyFiles();var fileLabelStr=fileOrFiles(that,numReadyFiles);var totalStateStr=fluid.stringTemplate(that.options.strings.progress.toUploadLabel,{fileCount:numReadyFiles,fileLabel:fileLabelStr,totalBytes:fluid.uploader.formatFileSize(bytesReadyFiles)});that.locate("totalFileStatusText").html(totalStateStr)};var renderFileUploadLimit=function(that){if(that.options.queueSettings.fileUploadLimit>0){var fileUploadLimitText=fluid.stringTemplate(that.options.strings.progress.fileUploadLimitLabel,{fileUploadLimit:that.options.queueSettings.fileUploadLimit,fileLabel:fileOrFiles(that,that.options.queueSettings.fileUploadLimit)});that.locate("fileUploadLimitText").html(fileUploadLimitText)}};var updateTotalProgress=function(that){var batch=that.queue.currentBatch;var totalPercent=fluid.uploader.derivePercent(batch.totalBytesUploaded,batch.totalBytes);var numFilesInBatch=batch.files.length;var fileLabelStr=fileOrFiles(that,numFilesInBatch);var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.totalProgressLabel,{curFileN:batch.fileIdx,totalFilesN:numFilesInBatch,fileLabel:fileLabelStr,currBytes:fluid.uploader.formatFileSize(batch.totalBytesUploaded),totalBytes:fluid.uploader.formatFileSize(batch.totalBytes)});that.totalProgress.update(totalPercent,totalProgressStr)};var updateTotalAtCompletion=function(that){var numErroredFiles=that.queue.getErroredFiles().length;var numTotalFiles=that.queue.files.length;var fileLabelStr=fileOrFiles(that,numTotalFiles);var errorStr="";if(numErroredFiles>0){var errorLabelString=(numErroredFiles===1)?that.options.strings.progress.singleError:that.options.strings.progress.pluralErrors;setTotalProgressStyle(that,true);errorStr=fluid.stringTemplate(that.options.strings.progress.numberOfErrors,{errorsN:numErroredFiles,errorLabel:errorLabelString})}var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.completedLabel,{curFileN:that.queue.getUploadedFiles().length,totalFilesN:numTotalFiles,errorString:errorStr,fileLabel:fileLabelStr,totalCurrBytes:fluid.uploader.formatFileSize(that.queue.sizeOfUploadedFiles())});that.totalProgress.update(100,totalProgressStr)};var updateQueueSummaryText=function(that){var fileQueueTable=that.locate("fileQueue");if(that.queue.files.length===0){fileQueueTable.attr("summary",that.options.strings.queue.emptyQueue)}else{var queueSummary=fluid.stringTemplate(that.options.strings.queue.queueSummary,{totalUploaded:that.queue.getUploadedFiles().length,totalInUploadQueue:that.queue.files.length-that.queue.getUploadedFiles().length});fileQueueTable.attr("summary",queueSummary)}};var bindDOMEvents=function(that){that.locate("uploadButton").click(function(){that.start()});that.locate("pauseButton").click(function(){that.stop()})};var updateStateAfterFileDialog=function(that){var queueLength=that.queue.getReadyFiles().length;if(queueLength>0){if(queueLength===that.options.queueSettings.fileUploadLimit){setStateFull(that)}else{setStateLoaded(that)}renderUploadTotalMessage(that);that.locate(that.options.focusWithEvent.afterFileDialog).focus();updateQueueSummaryText(that)}};var updateStateAfterFileRemoval=function(that){if(that.queue.getReadyFiles().length===0){setStateEmpty(that)}else{setStateLoaded(that)}renderUploadTotalMessage(that);updateQueueSummaryText(that)};var updateStateAfterCompletion=function(that){if(that.queue.getReadyFiles().length===0){setStateDone(that)}else{setStateLoaded(that)}updateTotalAtCompletion(that);updateQueueSummaryText(that)};var bindEvents=function(that){that.events.afterFileDialog.addListener(function(){updateStateAfterFileDialog(that)});that.events.afterFileQueued.addListener(function(file){that.queue.addFile(file)});that.events.onFileRemoved.addListener(function(file){that.removeFile(file)});that.events.afterFileRemoved.addListener(function(){updateStateAfterFileRemoval(that)});that.events.onUploadStart.addListener(function(){setStateUploading(that)});that.events.onUploadStop.addListener(function(){that.locate(that.options.focusWithEvent.onUploadStop).focus()});that.events.onFileStart.addListener(function(file){file.filestatus=fluid.uploader.fileStatusConstants.IN_PROGRESS;that.queue.startFile()});that.events.onFileProgress.addListener(function(file,currentBytes,totalBytes){that.queue.updateBatchStatus(currentBytes);updateTotalProgress(that)});that.events.onFileComplete.addListener(function(file){that.queue.finishFile(file);that.events.afterFileComplete.fire(file);if(that.queue.shouldUploadNextFile()){that.strategy.remote.uploadNextFile()}else{that.events.afterUploadComplete.fire(that.queue.currentBatch.files);that.queue.clearCurrentBatch()}});that.events.onFileSuccess.addListener(function(file){file.filestatus=fluid.uploader.fileStatusConstants.COMPLETE;if(that.queue.currentBatch.bytesUploadedForFile===0){that.queue.currentBatch.totalBytesUploaded+=file.size}updateTotalProgress(that)});that.events.onFileError.addListener(function(file,error){if(error===fluid.uploader.errorConstants.UPLOAD_STOPPED){file.filestatus=fluid.uploader.fileStatusConstants.CANCELLED;return }else{file.filestatus=fluid.uploader.fileStatusConstants.ERROR;if(that.queue.isUploading){that.queue.currentBatch.totalBytesUploaded+=file.size;that.queue.currentBatch.numFilesErrored++}}});that.events.afterUploadComplete.addListener(function(){that.queue.isUploading=false;updateStateAfterCompletion(that)})};var setupUploader=function(that){that.demo=fluid.typeTag(that.options.demo?"fluid.uploader.demo":"fluid.uploader.live");fluid.initDependents(that);disableElement(that,that.locate("uploadButton"));bindDOMEvents(that);bindEvents(that);updateQueueSummaryText(that);that.statusUpdater();renderFileUploadLimit(that);that.container.attr("role","application")};fluid.uploader=function(container,uploaderOptions){var that=fluid.initView("fluid.uploader",container);if(fluid.uploader.transformOptions){uploaderOptions=fluid.uploader.transformOptions(uploaderOptions)}that.uploaderOptions=uploaderOptions;fluid.initDependents(that);return that.uploaderImpl};fluid.uploaderImpl=function(){fluid.fail('Error creating uploader component - please make sure that a progressiveCheckerForComponent for "fluid.uploader" is registered either in the static environment or else is visible in the current component tree')};fluid.defaults("fluid.uploader",{gradeNames:["fluid.viewComponent"],components:{uploaderContext:{type:"fluid.progressiveCheckerForComponent",options:{componentName:"fluid.uploader"}},uploaderImpl:{type:"fluid.uploaderImpl",container:"{uploader}.container",options:"{uploader}.uploaderOptions"}},progressiveCheckerOptions:{checks:[{feature:"{fluid.browser.supportsBinaryXHR}",contextName:"fluid.uploader.html5"},{feature:"{fluid.browser.supportsFlash}",contextName:"fluid.uploader.swfUpload"}],defaultContextName:"fluid.uploader.singleFile"}});fluid.alias("fluid.uploader","fluid.uploaderImpl");fluid.progressiveEnhanceableUploader=function(container,enhanceable,options){return fluid.uploader(container,options)};fluid.uploader.multiFileUploader=function(container,options){var that=fluid.initView("fluid.uploader.multiFileUploader",container,options);that.queue=fluid.uploader.fileQueue();that.browse=function(){if(!that.queue.isUploading){that.strategy.local.browse()}};that.removeFile=function(file){that.queue.removeFile(file);that.strategy.local.removeFile(file);that.events.afterFileRemoved.fire(file)};that.start=function(){that.queue.start();that.events.onUploadStart.fire(that.queue.currentBatch.files);that.strategy.remote.uploadNextFile()};that.stop=function(){that.events.onUploadStop.fire();that.strategy.remote.stop()};setupUploader(that);return that};fluid.defaults("fluid.uploader.multiFileUploader",{gradeNames:"fluid.viewComponent",components:{strategy:{type:"fluid.uploader.progressiveStrategy"},errorPanel:{type:"fluid.uploader.errorPanel"},fileQueueView:{type:"fluid.uploader.fileQueueView",options:{model:"{multiFileUploader}.queue.files",uploaderContainer:"{multiFileUploader}.container"}},totalProgress:{type:"fluid.uploader.totalProgressBar",options:{selectors:{progressBar:".flc-uploader-queue-footer",displayElement:".flc-uploader-total-progress",label:".flc-uploader-total-progress-text",indicator:".flc-uploader-total-progress",ariaElement:".flc-uploader-total-progress"}}}},invokers:{statusUpdater:"fluid.uploader.ariaLiveRegionUpdater"},queueSettings:{uploadURL:"",postParams:{},fileSizeLimit:"20480",fileTypes:null,fileTypesDescription:null,fileUploadLimit:0,fileQueueLimit:0},demo:false,selectors:{fileQueue:".flc-uploader-queue",browseButton:".flc-uploader-button-browse",browseButtonText:".flc-uploader-button-browse-text",uploadButton:".flc-uploader-button-upload",pauseButton:".flc-uploader-button-pause",totalFileStatusText:".flc-uploader-total-progress-text",fileUploadLimitText:".flc-uploader-upload-limit-text",instructions:".flc-uploader-browse-instructions",statusRegion:".flc-uploader-status-region",errorsPanel:".flc-uploader-errorsPanel"},focusWithEvent:{afterFileDialog:"uploadButton",afterUploadStart:"pauseButton",onUploadStop:"uploadButton"},styles:{disabled:"fl-uploader-disabled",hidden:"fl-uploader-hidden",dim:"fl-uploader-dim",totalProgress:"fl-uploader-total-progress-okay",totalProgressError:"fl-uploader-total-progress-errored",browseButton:"fl-uploader-browseMore"},events:{afterReady:null,onFileDialog:null,onFilesSelected:null,onFileQueued:null,afterFileQueued:null,onFileRemoved:null,afterFileRemoved:null,afterFileDialog:null,onUploadStart:null,onUploadStop:null,onFileStart:null,onFileProgress:null,onFileError:null,onQueueError:null,onFileSuccess:null,onFileComplete:null,afterFileComplete:null,afterUploadComplete:null},strings:{progress:{fileUploadLimitLabel:"%fileUploadLimit %fileLabel maximum",toUploadLabel:"To upload: %fileCount %fileLabel (%totalBytes)",totalProgressLabel:"Uploading: %curFileN of %totalFilesN %fileLabel (%currBytes of %totalBytes)",completedLabel:"Uploaded: %curFileN of %totalFilesN %fileLabel (%totalCurrBytes)%errorString",numberOfErrors:", %errorsN %errorLabel",singleFile:"file",pluralFiles:"files",singleError:"error",pluralErrors:"errors"},buttons:{browse:"Browse Files",addMore:"Add More",stopUpload:"Stop Upload",cancelRemaning:"Cancel remaining Uploads",resumeUpload:"Resume Upload"},queue:{emptyQueue:"File list: No files waiting to be uploaded.",queueSummary:"File list:  %totalUploaded files uploaded, %totalInUploadQueue file waiting to be uploaded."}},mergePolicy:{"fileQueueView.options.model":"preserve"}});fluid.demands("fluid.uploader.totalProgressBar","fluid.uploader.multiFileUploader",{funcName:"fluid.progress",container:"{multiFileUploader}.container"});fluid.demands("fluid.uploader.fileQueueView","fluid.uploader.multiFileUploader",{container:"{multiFileUploader}.dom.fileQueue",options:{events:{onFileRemoved:"{multiFileUploader}.events.onFileRemoved"}}});fluid.demands("fluid.uploader.fileQueueView.eventBinder",["fluid.uploader.multiFileUploader","fluid.uploader.fileQueueView"],{options:{listeners:{"{multiFileUploader}.events.afterFileQueued":"{fileQueueView}.addFile","{multiFileUploader}.events.onUploadStart":"{fileQueueView}.prepareForUpload","{multiFileUploader}.events.onFileStart":"{fileQueueView}.showFileProgress","{multiFileUploader}.events.onFileProgress":"{fileQueueView}.updateFileProgress","{multiFileUploader}.events.onFileSuccess":"{fileQueueView}.markFileComplete","{multiFileUploader}.events.onFileError":"{fileQueueView}.showErrorForFile","{multiFileUploader}.events.afterFileComplete":"{fileQueueView}.hideFileProgress","{multiFileUploader}.events.afterUploadComplete":"{fileQueueView}.refreshAfterUpload"}}});fluid.uploader.formatFileSize=function(bytes){if(typeof (bytes)==="number"){if(bytes===0){return"0.0 KB"}else{if(bytes>0){if(bytes<1048576){return(Math.ceil(bytes/1024*10)/10).toFixed(1)+" KB"}else{return(Math.ceil(bytes/1048576*10)/10).toFixed(1)+" MB"}}}}return""};fluid.uploader.derivePercent=function(num,total){return Math.round((num*100)/total)};fluid.uploader.ariaLiveRegionUpdater=function(statusRegion,totalFileStatusText,events){statusRegion.attr("role","log");statusRegion.attr("aria-live","assertive");statusRegion.attr("aria-relevant","text");statusRegion.attr("aria-atomic","true");var regionUpdater=function(){statusRegion.text(totalFileStatusText.text())};events.afterFileDialog.addListener(regionUpdater);events.afterFileRemoved.addListener(regionUpdater);events.afterUploadComplete.addListener(regionUpdater)};fluid.demands("fluid.uploader.ariaLiveRegionUpdater","fluid.uploader.multiFileUploader",{funcName:"fluid.uploader.ariaLiveRegionUpdater",args:["{multiFileUploader}.dom.statusRegion","{multiFileUploader}.dom.totalFileStatusText","{multiFileUploader}.events"]});fluid.uploader.queueErrorConstants={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130};fluid.uploader.errorConstants={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290};fluid.uploader.fileStatusConstants={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5};var toggleVisibility=function(toShow,toHide){if(window.opera){toShow.show().removeClass("hideUploaderForOpera");toHide.show().addClass("hideUploaderForOpera")}else{toShow.show();toHide.hide()}};fluid.uploader.singleFileUploader=function(container,options){var that=fluid.initView("fluid.uploader.singleFileUploader",container,options);toggleVisibility($(that.options.selectors.basicUpload),that.container);return that};fluid.defaults("fluid.uploader.singleFileUploader",{gradeNames:"fluid.viewComponent",selectors:{basicUpload:".fl-progEnhance-basic"}});fluid.demands("fluid.uploaderImpl","fluid.uploader.singleFile",{funcName:"fluid.uploader.singleFileUploader"})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uploader/js/UploaderCompatibility-Infusion1.2.js b/docs/jscripts/infusion/components/uploader/js/UploaderCompatibility-Infusion1.2.js
new file mode 100644 (file)
index 0000000..04195c6
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function(fluid){fluid.registerNamespace("fluid.compat.fluid_1_2.uploader");fluid.staticEnvironment.uploader_1_2_Compatibility=fluid.typeTag("fluid.uploader.fluid_1_2");fluid.compat.fluid_1_2.uploader.optionsRules={components:{expander:{type:"fluid.model.transform.firstValue",values:[{expander:{type:"fluid.model.transform.value",path:"components"}},{expander:{type:"fluid.model.transform.value",value:{strategy:{options:{flashMovieSettings:{expander:{type:"fluid.model.transform.value",value:{flashURL:"uploadManager.options.flashURL",flashButtonPeerId:"decorators.0.options.flashButtonPeerId",flashButtonAlwaysVisible:"decorators.0.options.flashButtonAlwaysVisible",flashButtonTransparentEvenInIE:"decorators.0.options.flashButtonTransparentEvenInIE",flashButtonImageURL:"decorators.0.options.flashButtonImageURL",flashButtonCursorEffect:"decorators.0.options.flashButtonCursorEffect",debug:"decorators.0.options.debug"}}},styles:"decorators.0.options.styles"}},fileQueueView:"fileQueueView",totalProgressBar:"totalProgressBar"}}}]}},queueSettings:{expander:{type:"fluid.model.transform.firstValue",values:["queueSettings","uploadManager.options"]}},invokers:"invokers",demo:"demo",selectors:"selectors",focusWithEvent:"focusWithEvent",styles:"styles",listeners:"listeners",strings:"strings",mergePolicy:"mergePolicy"};fluid.demands("fluid.uploader","fluid.uploader.fluid_1_2",{mergeOptions:{transformOptions:{transformer:"fluid.model.transformWithRules",config:fluid.compat.fluid_1_2.uploader.optionsRules}}});fluid.uploader.transformOptions=function(options){if(!options){return }options.transformOptions={transformer:"fluid.model.transformWithRules",config:fluid.compat.fluid_1_2.uploader.optionsRules};return options}})(fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/components/uploader/js/UploaderCompatibility-Infusion1.3.js b/docs/jscripts/infusion/components/uploader/js/UploaderCompatibility-Infusion1.3.js
new file mode 100644 (file)
index 0000000..0653513
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function(fluid){fluid.registerNamespace("fluid.compat.fluid_1_3.uploader");fluid.staticEnvironment.uploader_1_3_Compatibility=fluid.typeTag("fluid.uploader.fluid_1_3");fluid.compat.fluid_1_3.uploader.fileTypeTransformer=function(model,expandSpec){var mimeTypeMap=fluid.uploader.mimeTypeRegistry;var val=fluid.get(model,expandSpec.path);if(fluid.isArrayable(val)||typeof (val)!=="string"){return val}var exts=val.split(";");if(exts.length===0){return undefined}var mimeTypes=[];fluid.each(exts,function(ext){ext=ext.substring(2);var mimeType=mimeTypeMap[ext];if(mimeType){mimeTypes.push(mimeType)}});return mimeTypes};fluid.compat.fluid_1_3.uploader.optionsRules={gradeNames:"gradeNames",components:"components",invokers:"invokers",queueSettings:"queueSettings",demo:"demo",selectors:"selectors",focusWithEvent:"focusWithEvent",styles:"styles",events:"events",listeners:"listeners",strings:"strings",mergePolicy:"mergePolicy","queueSettings.fileTypes":{expander:{type:"fluid.compat.fluid_1_3.uploader.fileTypeTransformer",path:"queueSettings.fileTypes"}}};fluid.demands("fluid.uploader","fluid.uploader.fluid_1_3",{mergeOptions:{transformOptions:{transformer:"fluid.model.transformWithRules",config:fluid.compat.fluid_1_3.uploader.optionsRules}}});fluid.demands("fluid.uploader",["fluid.uploader.fluid_1_2","fluid.uploader.fluid_1_3"],{mergeOptions:{transformOptions:{transformer:"fluid.model.transformWithRules",config:[fluid.compat.fluid_1_2.uploader.optionsRules,fluid.compat.fluid_1_3.uploader.optionsRules]}}});fluid.uploader.transformOptions=function(options){if(!options){return }var rules=typeof (fluid.compat.fluid_1_2.uploader)!=="undefined"?[fluid.compat.fluid_1_2.uploader.optionsRules,fluid.compat.fluid_1_3.uploader.optionsRules]:fluid.compat.fluid_1_3.uploader.optionsRules;options.transformOptions={transformer:"fluid.model.transformWithRules",config:rules};return options}})(fluid_1_4);
\ No newline at end of file
index 94a515f..a2b5d60 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){fluid.VALUE={};fluid.BINDING_ROOT_KEY="fluid-binding-root";fluid.findData=function(elem,name){while(elem){var data=$.data(elem,name);if(data){return data}elem=elem.parentNode}};fluid.bindFossils=function(node,data,fossils){$.data(node,fluid.BINDING_ROOT_KEY,{data:data,fossils:fossils})};fluid.findForm=function(node){return fluid.findAncestor(node,function(element){return element.nodeName.toLowerCase()==="form"})};fluid.value=function(nodeIn,newValue){var node=fluid.unwrap(nodeIn);var multiple=false;if(node.nodeType===undefined&&node.length>1){node=node[0];multiple=true}var jNode=$(node);if("input"!==node.nodeName.toLowerCase()||!/radio|checkbox/.test(node.type)){return $(node).val(newValue)}var name=node.name;if(name===undefined){fluid.fail("Cannot acquire value from node "+fluid.dumpEl(node)+" which does not have name attribute set")}var elements;if(multiple){elements=nodeIn}else{var elements=document.getElementsByName(name);var scope=fluid.findForm(node);elements=$.grep(elements,function(element){if(element.name!==name){return false}return !scope||fluid.dom.isContainer(scope,element)})}if(newValue!==undefined){if(typeof (newValue)==="boolean"){newValue=(newValue?"true":"false")}$.each(elements,function(){this.checked=(newValue instanceof Array?$.inArray(this.value,newValue)!==-1:newValue===this.value)})}else{var checked=$.map(elements,function(element){return element.checked?element.value:null});return node.type==="radio"?checked[0]:checked}};fluid.applyChange=function(node,newValue,applier){node=fluid.unwrap(node);if(newValue===undefined){newValue=fluid.value(node)}if(node.nodeType===undefined&&node.length>0){node=node[0]}var root=fluid.findData(node,fluid.BINDING_ROOT_KEY);if(!root){fluid.fail("Bound data could not be discovered in any node above "+fluid.dumpEl(node))}var name=node.name;var fossil=root.fossils[name];if(!fossil){fluid.fail("No fossil discovered for name "+name+" in fossil record above "+fluid.dumpEl(node))}if(typeof (fossil.oldvalue)==="boolean"){newValue=newValue[0]?true:false}var EL=root.fossils[name].EL;if(applier){applier.fireChangeRequest({path:EL,value:newValue,source:node.id})}else{fluid.model.setBeanValue(root.data,EL,newValue)}};fluid.pathUtil={};var getPathSegmentImpl=function(accept,path,i){var segment=null;if(accept){segment=""}var escaped=false;var limit=path.length;for(;i<limit;++i){var c=path.charAt(i);if(!escaped){if(c==="."){break}else{if(c==="\\"){escaped=true}else{if(segment!==null){segment+=c}}}}else{escaped=false;if(segment!==null){accept+=c}}}if(segment!==null){accept[0]=segment}return i};var globalAccept=[];fluid.pathUtil.getPathSegment=function(path,i){getPathSegmentImpl(globalAccept,path,i);return globalAccept[0]};fluid.pathUtil.getHeadPath=function(path){return fluid.pathUtil.getPathSegment(path,0)};fluid.pathUtil.getFromHeadPath=function(path){var firstdot=getPathSegmentImpl(null,path,0);return firstdot===path.length?null:path.substring(firstdot+1)};function lastDotIndex(path){return path.lastIndexOf(".")}fluid.pathUtil.getToTailPath=function(path){var lastdot=lastDotIndex(path);return lastdot==-1?null:path.substring(0,lastdot)};fluid.pathUtil.getTailPath=function(path){var lastdot=lastDotIndex(path);return fluid.pathUtil.getPathSegment(path,lastdot+1)};var composeSegment=function(prefix,toappend){for(var i=0;i<toappend.length;++i){var c=toappend.charAt(i);if(c==="."||c==="\\"||c==="}"){prefix+="\\"}prefix+=c}return prefix};fluid.pathUtil.composePath=function(prefix,suffix){if(prefix.length!==0){prefix+="."}return composeSegment(prefix,suffix)};fluid.pathUtil.matchPath=function(spec,path){var togo="";while(true){if(!spec){break}if(!path){return null}var spechead=fluid.pathUtil.getHeadPath(spec);var pathhead=fluid.pathUtil.getHeadPath(path);if(spechead!=="*"&&spechead!==pathhead){return null}togo=fluid.pathUtil.composePath(togo,pathhead);spec=fluid.pathUtil.getFromHeadPath(spec);path=fluid.pathUtil.getFromHeadPath(path)}return togo};fluid.model.applyChangeRequest=function(model,request){if(request.type==="ADD"){fluid.model.setBeanValue(model,request.path,request.value)}else{if(request.type==="DELETE"){var totail=fluid.pathUtil.getToTailPath(request.path);var tail=fluid.pathUtil.getTailPath(request.path);var penult=fluid.model.getBeanValue(model,penult);delete penult[tail]}}};fluid.makeChangeApplier=function(model){var baseEvents={guards:fluid.event.getEventFirer(false,true),modelChanged:fluid.event.getEventFirer(false,false)};var that={model:model};function makePredicate(listenerMember,requestIndex){return function(listener,args){var changeRequest=args[requestIndex];return fluid.pathUtil.matchPath(listener[listenerMember],changeRequest.path)}}function adaptListener(that,name,listenerMember,requestIndex){var predicate=makePredicate(listenerMember,requestIndex);that[name]={addListener:function(pathSpec,listener,namespace){listener[listenerMember]=pathSpec;baseEvents[name].addListener(listener,namespace,predicate)},removeListener:function(listener){baseEvents[name].removeListener(listener)}}}adaptListener(that,"guards","guardedPathSpec",1);adaptListener(that,"modelChanged","triggerPathSpec",2);that.fireChangeRequest=function(changeRequest){if(!changeRequest.type){changeRequest.type="ADD"}var prevent=baseEvents.guards.fire(model,changeRequest);if(prevent===false){return }var oldModel={};fluid.model.copyModel(oldModel,model);fluid.model.applyChangeRequest(model,changeRequest);baseEvents.modelChanged.fire(model,oldModel,changeRequest)};that.requestChange=function(path,value,type){var changeRequest={path:path,value:value,type:type};that.fireChangeRequest(changeRequest)};return that};fluid.makeSuperApplier=function(){var subAppliers=[];var that={};that.addSubApplier=function(path,subApplier){subAppliers.push({path:path,subApplier:subApplier})};that.fireChangeRequest=function(request){for(var i=0;i<subAppliers.length;++i){var path=subAppliers[i].path;if(request.path.indexOf(path)===0){var subpath=request.path.substring(path.length+1);var subRequest=fluid.copy(request);subRequest.path=subpath;subAppliers[i].subApplier.fireChangeRequest(subRequest)}}};return that};fluid.attachModel=function(baseModel,path,model){var segs=fluid.model.parseEL(path);for(var i=0;i<segs.length-1;++i){var seg=segs[i];var subModel=baseModel[seg];if(!subModel){baseModel[seg]=subModel={}}baseModel=subModel}baseModel[segs[segs.length-1]]=model};fluid.assembleModel=function(modelSpec){var model={};var superApplier=fluid.makeSuperApplier();var togo={model:model,applier:superApplier};for(path in modelSpec){var rec=modelSpec[path];fluid.attachModel(model,path,rec.model);if(rec.applier){superApplier.addSubApplier(path,rec.applier)}}return togo}})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.BINDING_ROOT_KEY="fluid-binding-root";fluid.findData=function(elem,name){while(elem){var data=$.data(elem,name);if(data){return data}elem=elem.parentNode}};fluid.bindFossils=function(node,data,fossils){$.data(node,fluid.BINDING_ROOT_KEY,{data:data,fossils:fossils})};fluid.boundPathForNode=function(node,fossils){node=fluid.unwrap(node);var key=node.name||node.id;var record=fossils[key];return record?record.EL:null};fluid.findForm=function(node){return fluid.findAncestor(node,function(element){return element.nodeName.toLowerCase()==="form"})};fluid.value=function(nodeIn,newValue){var node=fluid.unwrap(nodeIn);var multiple=false;if(node.nodeType===undefined&&node.length>1){node=node[0];multiple=true}if("input"!==node.nodeName.toLowerCase()||!/radio|checkbox/.test(node.type)){return newValue===undefined?$(node).val():$(node).val(newValue)}var name=node.name;if(name===undefined){fluid.fail("Cannot acquire value from node "+fluid.dumpEl(node)+" which does not have name attribute set")}var elements;if(multiple){elements=nodeIn}else{elements=document.getElementsByName(name);var scope=fluid.findForm(node);elements=$.grep(elements,function(element){if(element.name!==name){return false}return !scope||fluid.dom.isContainer(scope,element)})}if(newValue!==undefined){if(typeof (newValue)==="boolean"){newValue=(newValue?"true":"false")}$.each(elements,function(){this.checked=(newValue instanceof Array?$.inArray(this.value,newValue)!==-1:newValue===this.value)})}else{var checked=$.map(elements,function(element){return element.checked?element.value:null});return node.type==="radio"?checked[0]:checked}};fluid.applyChange=function(node,newValue,applier){node=fluid.unwrap(node);if(newValue===undefined){newValue=fluid.value(node)}if(node.nodeType===undefined&&node.length>0){node=node[0]}var root=fluid.findData(node,fluid.BINDING_ROOT_KEY);if(!root){fluid.fail("Bound data could not be discovered in any node above "+fluid.dumpEl(node))}var name=node.name;var fossil=root.fossils[name];if(!fossil){fluid.fail("No fossil discovered for name "+name+" in fossil record above "+fluid.dumpEl(node))}if(typeof (fossil.oldvalue)==="boolean"){newValue=newValue[0]?true:false}var EL=root.fossils[name].EL;if(applier){applier.fireChangeRequest({path:EL,value:newValue,source:node.id})}else{fluid.set(root.data,EL,newValue)}};fluid.pathUtil={};var getPathSegmentImpl=function(accept,path,i){var segment=null;if(accept){segment=""}var escaped=false;var limit=path.length;for(;i<limit;++i){var c=path.charAt(i);if(!escaped){if(c==="."){break}else{if(c==="\\"){escaped=true}else{if(segment!==null){segment+=c}}}}else{escaped=false;if(segment!==null){accept+=c}}}if(segment!==null){accept[0]=segment}return i};var globalAccept=[];fluid.pathUtil.getPathSegment=function(path,i){getPathSegmentImpl(globalAccept,path,i);return globalAccept[0]};fluid.pathUtil.getHeadPath=function(path){return fluid.pathUtil.getPathSegment(path,0)};fluid.pathUtil.getFromHeadPath=function(path){var firstdot=getPathSegmentImpl(null,path,0);return firstdot===path.length?null:path.substring(firstdot+1)};function lastDotIndex(path){return path.lastIndexOf(".")}fluid.pathUtil.getToTailPath=function(path){var lastdot=lastDotIndex(path);return lastdot===-1?null:path.substring(0,lastdot)};fluid.pathUtil.getTailPath=function(path){var lastdot=lastDotIndex(path);return fluid.pathUtil.getPathSegment(path,lastdot+1)};var composeSegment=function(prefix,toappend){for(var i=0;i<toappend.length;++i){var c=toappend.charAt(i);if(c==="."||c==="\\"||c==="}"){prefix+="\\"}prefix+=c}return prefix};fluid.pathUtil.composePath=function(prefix,suffix){if(prefix.length!==0){prefix+="."}return composeSegment(prefix,suffix)};fluid.pathUtil.matchPath=function(spec,path){var togo="";while(true){if(!spec||path===""){break}if(!path){return null}var spechead=fluid.pathUtil.getHeadPath(spec);var pathhead=fluid.pathUtil.getHeadPath(path);if(spechead!=="*"&&spechead!==pathhead){return null}togo=fluid.pathUtil.composePath(togo,pathhead);spec=fluid.pathUtil.getFromHeadPath(spec);path=fluid.pathUtil.getFromHeadPath(path)}return togo};fluid.model.mergeModel=function(target,source,applier){var copySource=fluid.copy(source);applier=applier||fluid.makeChangeApplier(source);if(!fluid.isPrimitive(target)){applier.fireChangeRequest({type:"ADD",path:"",value:target})}applier.fireChangeRequest({type:"MERGE",path:"",value:copySource});return source};fluid.model.isNullChange=function(model,request,resolverGetConfig){if(request.type==="ADD"){var existing=fluid.get(model,request.path,resolverGetConfig);if(existing===request.value){return true}}};fluid.model.applyChangeRequest=function(model,request,resolverSetConfig){var pen=fluid.model.getPenultimate(model,request.path,resolverSetConfig||fluid.model.defaultSetConfig);if(request.type==="ADD"||request.type==="MERGE"){if(request.path===""||request.type==="MERGE"){if(request.type==="ADD"){fluid.clear(pen.root)}$.extend(true,request.path===""?pen.root:pen.root[pen.last],request.value)}else{pen.root[pen.last]=request.value}}else{if(request.type==="DELETE"){if(request.path===""){fluid.clear(pen.root)}else{delete pen.root[pen.last]}}}};function bindRequestChange(that){that.requestChange=function(path,value,type){var changeRequest={path:path,value:value,type:type};that.fireChangeRequest(changeRequest)}}fluid.makeChangeApplier=function(model,options){options=options||{};var baseEvents={guards:fluid.event.getEventFirer(false,true),postGuards:fluid.event.getEventFirer(false,true),modelChanged:fluid.event.getEventFirer(false,false)};var that={model:model};function makeGuardWrapper(cullUnchanged){if(!cullUnchanged){return null}var togo=function(guard){return function(model,changeRequest,internalApplier){var oldRet=guard(model,changeRequest,internalApplier);if(oldRet===false){return false}else{if(fluid.model.isNullChange(model,changeRequest)){togo.culled=true;return false}}}};return togo}function wrapListener(listener,spec){var pathSpec=spec;var transactional=false;var priority=Number.MAX_VALUE;if(typeof (spec)!=="string"){pathSpec=spec.path;transactional=spec.transactional;if(spec.priority!==undefined){priority=spec.priority}}else{if(pathSpec.charAt(0)==="!"){transactional=true;pathSpec=pathSpec.substring(1)}}return function(changePath,fireSpec,accum){var guid=fluid.event.identifyListener(listener);var exist=fireSpec.guids[guid];if(!exist){var match=fluid.pathUtil.matchPath(pathSpec,changePath);if(match!==null){var record={changePath:changePath,pathSpec:pathSpec,listener:listener,priority:priority,transactional:transactional};if(accum){record.accumulate=[accum]}fireSpec.guids[guid]=record;var collection=transactional?"transListeners":"listeners";fireSpec[collection].push(record);fireSpec.all.push(record)}}else{if(accum){if(!exist.accumulate){exist.accumulate=[]}exist.accumulate.push(accum)}}}}function fireFromSpec(name,fireSpec,args,category,wrapper){return baseEvents[name].fireToListeners(fireSpec[category],args,wrapper)}function fireComparator(recA,recB){return recA.priority-recB.priority}function prepareFireEvent(name,changePath,fireSpec,accum){baseEvents[name].fire(changePath,fireSpec,accum);fireSpec.all.sort(fireComparator);fireSpec.listeners.sort(fireComparator);fireSpec.transListeners.sort(fireComparator)}function makeFireSpec(){return{guids:{},all:[],listeners:[],transListeners:[]}}function getFireSpec(name,changePath){var fireSpec=makeFireSpec();prepareFireEvent(name,changePath,fireSpec);return fireSpec}function fireEvent(name,changePath,args,wrapper){var fireSpec=getFireSpec(name,changePath);return fireFromSpec(name,fireSpec,args,"all",wrapper)}function adaptListener(that,name){that[name]={addListener:function(spec,listener,namespace){baseEvents[name].addListener(wrapListener(listener,spec),namespace)},removeListener:function(listener){baseEvents[name].removeListener(listener)}}}adaptListener(that,"guards");adaptListener(that,"postGuards");adaptListener(that,"modelChanged");function preFireChangeRequest(changeRequest){if(!changeRequest.type){changeRequest.type="ADD"}}var bareApplier={fireChangeRequest:function(changeRequest){that.fireChangeRequest(changeRequest,true)}};bindRequestChange(bareApplier);that.fireChangeRequest=function(changeRequest,defeatGuards){preFireChangeRequest(changeRequest);var guardFireSpec=defeatGuards?null:getFireSpec("guards",changeRequest.path);if(guardFireSpec&&guardFireSpec.transListeners.length>0){var ation=that.initiate();ation.fireChangeRequest(changeRequest,guardFireSpec);ation.commit()}else{if(!defeatGuards){var prevent=fireFromSpec("guards",guardFireSpec,[model,changeRequest,bareApplier],"listeners");if(prevent===false){return false}}var oldModel=model;if(!options.thin){oldModel={};fluid.model.copyModel(oldModel,model)}fluid.model.applyChangeRequest(model,changeRequest,options.resolverSetConfig);fireEvent("modelChanged",changeRequest.path,[model,oldModel,[changeRequest]])}};bindRequestChange(that);function fireAgglomerated(eventName,formName,changes,args,accpos){var fireSpec=makeFireSpec();for(var i=0;i<changes.length;++i){prepareFireEvent(eventName,changes[i].path,fireSpec,changes[i])}for(var j=0;j<fireSpec[formName].length;++j){var spec=fireSpec[formName][j];if(accpos){args[accpos]=spec.accumulate}var ret=spec.listener.apply(null,args);if(ret===false){return false}}}that.initiate=function(newModel){var cancelled=false;var changes=[];if(options.thin){newModel=model}else{newModel=newModel||{};fluid.model.copyModel(newModel,model)}var internalApplier={fireChangeRequest:function(changeRequest){preFireChangeRequest(changeRequest);fluid.model.applyChangeRequest(newModel,changeRequest,options.resolverSetConfig);changes.push(changeRequest)}};bindRequestChange(internalApplier);var ation={commit:function(){var oldModel;if(cancelled){return false}var ret=fireAgglomerated("postGuards","transListeners",changes,[newModel,null,internalApplier],1);if(ret===false){return false}if(options.thin){oldModel=model}else{oldModel={};fluid.model.copyModel(oldModel,model);fluid.clear(model);fluid.model.copyModel(model,newModel)}fireAgglomerated("modelChanged","all",changes,[model,oldModel,null],2)},fireChangeRequest:function(changeRequest){preFireChangeRequest(changeRequest);if(options.cullUnchanged&&fluid.model.isNullChange(model,changeRequest,options.resolverGetConfig)){return }var wrapper=makeGuardWrapper(options.cullUnchanged);var prevent=fireEvent("guards",changeRequest.path,[newModel,changeRequest,internalApplier],wrapper);if(prevent===false&&!(wrapper&&wrapper.culled)){cancelled=true}if(!cancelled){if(!(wrapper&&wrapper.culled)){fluid.model.applyChangeRequest(newModel,changeRequest,options.resolverSetConfig);changes.push(changeRequest)}}}};bindRequestChange(ation);return ation};return that};fluid.makeSuperApplier=function(){var subAppliers=[];var that={};that.addSubApplier=function(path,subApplier){subAppliers.push({path:path,subApplier:subApplier})};that.fireChangeRequest=function(request){for(var i=0;i<subAppliers.length;++i){var path=subAppliers[i].path;if(request.path.indexOf(path)===0){var subpath=request.path.substring(path.length+1);var subRequest=fluid.copy(request);subRequest.path=subpath;subAppliers[i].subApplier.fireChangeRequest(subRequest)}}};bindRequestChange(that);return that};fluid.attachModel=function(baseModel,path,model){var segs=fluid.model.parseEL(path);for(var i=0;i<segs.length-1;++i){var seg=segs[i];var subModel=baseModel[seg];if(!subModel){baseModel[seg]=subModel={}}baseModel=subModel}baseModel[segs[segs.length-1]]=model};fluid.assembleModel=function(modelSpec){var model={};var superApplier=fluid.makeSuperApplier();var togo={model:model,applier:superApplier};for(var path in modelSpec){var rec=modelSpec[path];fluid.attachModel(model,path,rec.model);if(rec.applier){superApplier.addSubApplier(path,rec.applier)}}return togo}})(jQuery,fluid_1_4);
\ No newline at end of file
index 74a5df8..f4626ce 100644 (file)
@@ -1 +1,10 @@
-var fluid_1_1=fluid_1_1||{};var fluid=fluid||fluid_1_1;(function($,fluid){fluid.version="Infusion 1.1";fluid.fail=function(message){fluid.setLogging(true);fluid.log(message.message?message.message:message);throw new Error(message)};fluid.wrap=function(obj){return((!obj||obj.jquery)?obj:$(obj))};fluid.unwrap=function(obj){return obj&&obj.jquery&&obj.length===1?obj[0]:obj};fluid.keyForValue=function(obj,value){for(var key in obj){if(obj[key]===value){return key}}return null};fluid.findKeyInObject=fluid.keyForValue;fluid.clear=function(target){if(target instanceof Array){target.length=0}else{for(var i in target){delete target[i]}}};fluid.container=function(containerSpec){var container=containerSpec;if(typeof containerSpec==="string"||containerSpec.nodeType&&(containerSpec.nodeType===1||containerSpec.nodeType===9)){container=$(containerSpec)}if(!container||!container.jquery||container.length!==1){if(typeof (containerSpec)!=="string"){containerSpec=container.selector}fluid.fail({name:"NotOne",message:"A single container element was not found for selector "+containerSpec})}return container};var defaultsStore={};var globalDefaultsStore={};fluid.defaults=function(){var offset=0;var store=defaultsStore;if(typeof arguments[0]==="boolean"){store=globalDefaultsStore;offset=1}var componentName=arguments[offset];var defaultsObject=arguments[offset+1];if(defaultsObject!==undefined){store[componentName]=defaultsObject;return defaultsObject}return store[componentName]};fluid.createDomBinder=function(container,selectors){var cache={},that={};function cacheKey(name,thisContainer){return $.data(fluid.unwrap(thisContainer))+"-"+name}function record(name,thisContainer,result){cache[cacheKey(name,thisContainer)]=result}that.locate=function(name,localContainer){var selector,thisContainer,togo;selector=selectors[name];thisContainer=localContainer?localContainer:container;if(!thisContainer){fluid.fail("DOM binder invoked for selector "+name+" without container")}if(!selector){return thisContainer}if(typeof (selector)==="function"){togo=$(selector.call(null,fluid.unwrap(thisContainer)))}else{togo=$(selector,thisContainer)}if(togo.get(0)===document){togo=[]}if(!togo.selector){togo.selector=selector;togo.context=thisContainer}togo.selectorName=name;record(name,thisContainer,togo);return togo};that.fastLocate=function(name,localContainer){var thisContainer=localContainer?localContainer:container;var key=cacheKey(name,thisContainer);var togo=cache[key];return togo?togo:that.locate(name,localContainer)};that.clear=function(){cache={}};that.refresh=function(names,localContainer){var thisContainer=localContainer?localContainer:container;if(typeof names==="string"){names=[names]}if(thisContainer.length===undefined){thisContainer=[thisContainer]}for(var i=0;i<names.length;++i){for(var j=0;j<thisContainer.length;++j){that.locate(names[i],thisContainer[j])}}};return that};fluid.mergeListeners=function(events,listeners){if(listeners){for(var key in listeners){var value=listeners[key];var keydot=key.indexOf(".");var namespace;if(keydot!==-1){namespace=key.substring(keydot+1);key=key.substring(0,keydot)}if(!events[key]){events[key]=fluid.event.getEventFirer()}var firer=events[key];if(typeof (value)==="function"){firer.addListener(value,namespace)}else{if(value&&typeof value.length==="number"){for(var i=0;i<value.length;++i){firer.addListener(value[i],namespace)}}}}}};fluid.instantiateFirers=function(that,options){that.events={};if(options.events){for(var event in options.events){var eventType=options.events[event];that.events[event]=fluid.event.getEventFirer(eventType==="unicast",eventType==="preventable")}}fluid.mergeListeners(that.events,options.listeners)};fluid.mergeComponentOptions=function(that,componentName,userOptions){var defaults=fluid.defaults(componentName);that.options=fluid.merge(defaults?defaults.mergePolicy:null,{},defaults,userOptions)};fluid.expectFilledSelector=function(result,message){if(result&&result.length===0&&result.jquery){fluid.fail(message+': selector "'+result.selector+'" with name '+result.selectorName+" returned no results in context "+fluid.dumpEl(result.context))}};fluid.initView=function(componentName,container,userOptions){var that={};fluid.expectFilledSelector(container,'Error instantiating component with name "'+componentName);fluid.mergeComponentOptions(that,componentName,userOptions);if(container){that.container=fluid.container(container);fluid.initDomBinder(that)}fluid.instantiateFirers(that,that.options);return that};fluid.COMPONENT_OPTIONS={};fluid.VALUE={};fluid.emptySubcomponent=function(options){var that={};options=$.makeArray(options);for(var i=0;i<options.length;++i){that[options[i]]=function(){}}return that};fluid.initSubcomponent=function(that,className,args){return fluid.initSubcomponents(that,className,args)[0]};fluid.initSubcomponents=function(that,className,args){var entry=that.options[className];if(!entry){return }var entries=$.makeArray(entry);var optindex=-1;var togo=[];args=$.makeArray(args);for(var i=0;i<args.length;++i){if(args[i]===fluid.COMPONENT_OPTIONS){optindex=i}}for(i=0;i<entries.length;++i){entry=entries[i];if(optindex!==-1&&entry.options){args[optindex]=entry.options}if(typeof (entry)!=="function"){var entryType=typeof (entry)==="string"?entry:entry.type;var globDef=fluid.defaults(true,entryType);fluid.merge("reverse",that.options,globDef);togo[i]=entryType==="fluid.emptySubcomponent"?fluid.emptySubcomponent(entry.options):fluid.invokeGlobalFunction(entryType,args,{fluid:fluid})}else{togo[i]=entry.apply(null,args)}var returnedOptions=togo[i]?togo[i].returnedOptions:null;if(returnedOptions){fluid.merge(that.options.mergePolicy,that.options,returnedOptions);if(returnedOptions.listeners){fluid.mergeListeners(that.events,returnedOptions.listeners)}}}return togo};fluid.initDomBinder=function(that){that.dom=fluid.createDomBinder(that.container,that.options.selectors);that.locate=that.dom.locate};fluid.isPrimitive=function(value){var valueType=typeof (value);return !value||valueType==="string"||valueType==="boolean"||valueType==="number"};function mergeImpl(policy,basePath,target,source){var thisPolicy=policy&&typeof (policy)!=="string"?policy[basePath]:policy;if(typeof (thisPolicy)==="function"){thisPolicy.apply(null,target,source);return target}if(thisPolicy==="replace"){fluid.clear(target)}for(var name in source){var path=(basePath?basePath+".":"")+name;var thisTarget=target[name];var thisSource=source[name];var primitiveTarget=fluid.isPrimitive(thisTarget);if(thisSource!==undefined){if(thisSource!==null&&typeof thisSource==="object"&&!thisSource.nodeType&&!thisSource.jquery&&thisSource!==fluid.VALUE){if(primitiveTarget){target[name]=thisTarget=thisSource instanceof Array?[]:{}}mergeImpl(policy,path,thisTarget,thisSource)}else{if(thisTarget===null||thisTarget===undefined||thisPolicy!=="reverse"){target[name]=thisSource}}}}return target}fluid.merge=function(policy,target){var path="";for(var i=2;i<arguments.length;++i){var source=arguments[i];if(source!==null&&source!==undefined){mergeImpl(policy,path,target,source)}}if(policy&&typeof (policy)!=="string"){for(var key in policy){var elrh=policy[key];if(typeof (elrh)==="string"&&elrh!=="replace"){var oldValue=fluid.model.getBeanValue(target,key);if(oldValue===null||oldValue===undefined){var value=fluid.model.getBeanValue(target,elrh);fluid.model.setBeanValue(target,key,value)}}}}return target};fluid.copy=function(tocopy){if(fluid.isPrimitive(tocopy)){return tocopy}return $.extend(true,typeof (tocopy.length)==="number"?[]:{},tocopy)};fluid.invokeGlobalFunction=function(functionPath,args,environment){var func=fluid.model.getBeanValue(window,functionPath,environment);if(!func){fluid.fail("Error invoking global function: "+functionPath+" could not be located")}else{return func.apply(null,args)}};fluid.event={};var fluid_guid=1;fluid.event.getEventFirer=function(unicast,preventable){var log=fluid.log;var listeners={};return{addListener:function(listener,namespace,predicate){if(!listener){return }if(unicast){namespace="unicast"}if(!namespace){if(!listener.$$guid){listener.$$guid=fluid_guid++}namespace=listener.$$guid}listeners[namespace]={listener:listener,predicate:predicate}},removeListener:function(listener){if(typeof (listener)==="string"){delete listeners[listener]}else{if(typeof (listener)==="object"&&listener.$$guid){delete listeners[listener.$$guid]}}},fire:function(){for(var i in listeners){var lisrec=listeners[i];var listener=lisrec.listener;if(lisrec.predicate&&!lisrec.predicate(listener,arguments)){continue}try{var ret=listener.apply(null,arguments);if(preventable&&ret===false){return false}}catch(e){log("FireEvent received exception "+e.message+" e "+e+" firing to listener "+i);throw (e)}}}}};fluid.model={};fluid.model.copyModel=function(target,source){fluid.clear(target);$.extend(true,target,source)};fluid.model.parseEL=function(EL){return EL.toString().split(".")};fluid.model.composePath=function(prefix,suffix){return prefix===""?suffix:prefix+"."+suffix};fluid.model.setBeanValue=function(root,EL,newValue){var segs=fluid.model.parseEL(EL);for(var i=0;i<segs.length-1;i+=1){if(!root[segs[i]]){root[segs[i]]={}}root=root[segs[i]]}root[segs[segs.length-1]]=newValue};fluid.model.getBeanValue=function(root,EL,environment){if(EL===""||EL===null||EL===undefined){return root}var segs=fluid.model.parseEL(EL);for(var i=0;i<segs.length;++i){if(!root){return root}var segment=segs[i];if(environment&&environment[segment]){root=environment[segment];environment=null}else{root=root[segment]}}return root};var logging;fluid.setLogging=function(enabled){if(typeof enabled==="boolean"){logging=enabled}else{logging=false}};fluid.log=function(str){if(logging){str=new Date().toTimeString()+":  "+str;if(typeof (console)!=="undefined"){if(console.debug){console.debug(str)}else{console.log(str)}}else{if(typeof (YAHOO)!=="undefined"){YAHOO.log(str)}else{if(typeof (opera)!=="undefined"){opera.postError(str)}}}}};fluid.dumpEl=function(element){var togo;if(!element){return"null"}if(element.nodeType===3||element.nodeType===8){return"[data: "+element.data+"]"}if(element.nodeType===9){return"[document: location "+element.location+"]"}if(!element.nodeType&&typeof element.length==="number"){togo="[";for(var i=0;i<element.length;++i){togo+=fluid.dumpEl(element[i]);if(i<element.length-1){togo+=", "}}return togo+"]"}element=$(element);togo=element.get(0).tagName;if(element.attr("id")){togo+="#"+element.attr("id")}if(element.attr("class")){togo+="."+element.attr("class")}return togo};fluid.findAncestor=function(element,test){element=fluid.unwrap(element);while(element){if(test(element)){return element}element=element.parentNode}};fluid.jById=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var element=fluid.byId(id,dokkument);var togo=element?$(element):[];togo.selector="#"+id;togo.context=dokkument;return togo};fluid.byId=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var el=dokkument.getElementById(id);if(el){if(el.getAttribute("id")!==id){fluid.fail("Problem in document structure - picked up element "+fluid.dumpEl(el)+" for id "+id+" without this id - most likely the element has a name which conflicts with this id")}return el}else{return null}};fluid.getId=function(element){return fluid.unwrap(element).getAttribute("id")};fluid.allocateSimpleId=function(element){element=fluid.unwrap(element);if(!element.id){element.id="fluid-id-"+(fluid_guid++)}return element.id};fluid.transform=function(list){var togo=[];for(var i=0;i<list.length;++i){var transit=list[i];for(var j=0;j<arguments.length-1;++j){transit=arguments[j+1](transit,i)}togo[togo.length]=transit}return togo};fluid.find=function(list,fn,deflt){for(var i=0;i<list.length;++i){var transit=fn(list[i],i);if(transit!==null&&transit!==undefined){return transit}}return deflt};fluid.accumulate=function(list,fn,arg){for(var i=0;i<list.length;++i){arg=fn(list[i],arg,i)}return arg};fluid.remove_if=function(list,fn){for(var i=0;i<list.length;++i){if(fn(list[i],i)){list.splice(i,1);--i}}return list};fluid.formatMessage=function(messageString,args){if(!args){return messageString}if(typeof (args)==="string"){args=[args]}for(var i=0;i<args.length;++i){messageString=messageString.replace("{"+i+"}",args[i])}return messageString};fluid.messageLocator=function(messageBase){return function(messagecodes,args){if(typeof (messagecodes)==="string"){messagecodes=[messagecodes]}for(var i=0;i<messagecodes.length;++i){var code=messagecodes[i];var message=messageBase[code];if(message===undefined){continue}return fluid.formatMessage(message,args)}return"[Message string for key "+messagecodes[0]+" not found]"}};fluid.stringTemplate=function(template,values){var newString=template;for(var key in values){if(values.hasOwnProperty(key)){var searchStr="%"+key;newString=newString.replace(searchStr,values[key])}}return newString}})(jQuery,fluid_1_1);
\ No newline at end of file
+/*
+ * Fluid Infusion v1.3
+ *
+ * Infusion is distributed under the Educational Community License 2.0 and new BSD licenses: 
+ * http://wiki.fluidproject.org/display/fluid/Fluid+Licensing
+ *
+ * For information on copyright, see the individual Infusion source code files: 
+ * https://github.com/fluid-project/infusion/
+ */
+var fluid_1_4=fluid_1_4||{};var fluid=fluid||fluid_1_4;(function($,fluid){fluid.version="Infusion 1.3";fluid.environment={fluid:fluid};var globalObject=window||{};var softFailure=[false];fluid.describeActivity=function(){return[]};fluid.fail=function(message){fluid.setLogging(true);fluid.log.apply(null,["ASSERTION FAILED: "].concat(fluid.makeArray(arguments)).concat(fluid.describeActivity()));if(softFailure[0]){throw new Error(message)}else{message.fail()}};fluid.pushSoftFailure=function(condition){if(typeof (condition)==="boolean"){softFailure.unshift(condition)}else{if(condition===-1){softFailure.shift()}}};fluid.notrycatch=false;fluid.tryCatch=function(tryfun,catchfun,finallyfun){finallyfun=finallyfun||fluid.identity;if(fluid.notrycatch){var togo=tryfun();finallyfun();return togo}else{try{return tryfun()}catch(e){if(catchfun){catchfun(e)}else{throw (e)}}finally{finallyfun()}}};fluid.expect=function(name,members,target){fluid.transform(fluid.makeArray(members),function(key){if(typeof target[key]==="undefined"){fluid.fail(name+" missing required parameter "+key)}})};var logging;fluid.isLogging=function(){return logging};fluid.setLogging=function(enabled){if(typeof enabled==="boolean"){logging=enabled}else{logging=false}};fluid.applyHostFunction=function(obj,func,args){if(func.apply){func.apply(obj,args)}else{var applier=Function.prototype.bind.call(func,obj);applier.apply(obj,args)}};fluid.log=function(message){if(logging){var arg0=fluid.renderTimestamp(new Date())+":  ";var args=[arg0].concat(fluid.makeArray(arguments));var str=args.join("");if(typeof (console)!=="undefined"){if(console.debug){fluid.applyHostFunction(console,console.debug,args)}else{if(typeof (console.log)==="function"){fluid.applyHostFunction(console,console.log,args)}else{console.log(str)}}}else{if(typeof (YAHOO)!=="undefined"){YAHOO.log(str)}else{if(typeof (opera)!=="undefined"){opera.postError(str)}}}}};fluid.wrap=function(obj){return((!obj||obj.jquery)?obj:$(obj))};fluid.unwrap=function(obj){return obj&&obj.jquery&&obj.length===1?obj[0]:obj};fluid.identity=function(arg){return arg};fluid.isValue=function(value){return value!==undefined&&value!==null};fluid.isPrimitive=function(value){var valueType=typeof (value);return !value||valueType==="string"||valueType==="boolean"||valueType==="number"||valueType==="function"};fluid.isDOMNode=function(obj){return obj&&typeof (obj.nodeType)==="number"};fluid.isArrayable=function(totest){return totest&&!fluid.isPrimitive(totest)&&typeof (totest.length)==="number"};fluid.freshContainer=function(tocopy){return fluid.isArrayable(tocopy)?[]:{}};fluid.copy=function(tocopy){if(fluid.isPrimitive(tocopy)){return tocopy}return $.extend(true,fluid.freshContainer(tocopy),tocopy)};fluid.makeArray=function(arg){if(arg===null||arg===undefined){return[]}else{return $.makeArray(arg)}};function transformInternal(source,togo,key,args){var transit=source[key];for(var j=0;j<args.length-1;++j){transit=args[j+1](transit,key)}togo[key]=transit}fluid.transform=function(source){var togo=fluid.freshContainer(source);if(fluid.isArrayable(source)){for(var i=0;i<source.length;++i){transformInternal(source,togo,i,arguments)}}else{for(var key in source){transformInternal(source,togo,key,arguments)}}return togo};fluid.each=function(source,func){if(fluid.isArrayable(source)){for(var i=0;i<source.length;++i){func(source[i],i)}}else{for(var key in source){func(source[key],key)}}};fluid.find=function(source,func,deflt){var disp;if(fluid.isArrayable(source)){for(var i=0;i<source.length;++i){disp=func(source[i],i);if(disp!==undefined){return disp}}}else{for(var key in source){disp=func(source[key],key);if(disp!==undefined){return disp}}}return deflt};fluid.accumulate=function(list,fn,arg){for(var i=0;i<list.length;++i){arg=fn(list[i],arg,i)}return arg};fluid.remove_if=function(source,fn){if(fluid.isArrayable(source)){for(var i=0;i<source.length;++i){if(fn(source[i],i)){source.splice(i,1);--i}}}else{for(var key in source){if(fn(source[key],key)){delete source[key]}}}return source};fluid.filterKeys=function(toFilter,keys,exclude){return fluid.remove_if($.extend({},toFilter),function(value,key){return exclude^($.inArray(key,keys)===-1)})};fluid.censorKeys=function(toCensor,keys){return fluid.filterKeys(toCensor,keys,true)};fluid.keys=function(obj){var togo=[];fluid.each(obj,function(value,key){togo.push(key)});return togo};fluid.contains=function(obj,value){return obj?fluid.find(obj,function(thisValue,key){if(value===thisValue){return true}}):undefined};fluid.keyForValue=function(obj,value){return fluid.find(obj,function(thisValue,key){if(value===thisValue){return key}})};fluid.findKeyInObject=fluid.keyForValue;fluid.arrayToHash=function(array){var togo={};fluid.each(array,function(el){togo[el]=true});return togo};fluid.clear=function(target){if(fluid.isArrayable(target)){target.length=0}else{for(var i in target){delete target[i]}}};fluid.model={};fluid.VALUE={type:"fluid.marker",value:"VALUE"};fluid.NO_VALUE={type:"fluid.marker",value:"NO_VALUE"};fluid.EXPAND={type:"fluid.marker",value:"EXPAND"};fluid.EXPAND_NOW={type:"fluid.marker",value:"EXPAND_NOW"};fluid.isMarker=function(totest,type){if(!totest||typeof (totest)!=="object"||totest.type!=="fluid.marker"){return false}if(!type){return true}return totest===type};fluid.model.copyModel=function(target,source){fluid.clear(target);$.extend(true,target,source)};fluid.model.parseEL=function(EL){return EL===""?[]:String(EL).split(".")};fluid.model.composePath=function(prefix,suffix){return prefix===""?suffix:(suffix===""?prefix:prefix+"."+suffix)};fluid.model.composeSegments=function(){return $.makeArray(arguments).join(".")};fluid.path=fluid.model.composeSegments;fluid.composePath=fluid.model.composePath;fluid.model.environmentStrategy=function(initEnvironment){return{init:function(){var environment=initEnvironment;return function(root,segment,index){var togo;if(environment&&environment[segment]){togo=environment[segment]}environment=null;return togo}}}};fluid.model.defaultCreatorStrategy=function(root,segment){if(root[segment]===undefined){root[segment]={};return root[segment]}};fluid.model.defaultFetchStrategy=function(root,segment){return segment===""?root:root[segment]};fluid.model.funcResolverStrategy=function(root,segment){if(root.resolvePathSegment){return root.resolvePathSegment(segment)}};fluid.model.applyStrategy=function(strategy,root,segment,index){if(typeof (strategy)==="function"){return strategy(root,segment,index)}else{if(strategy&&strategy.next){return strategy.next(root,segment,index)}}};fluid.model.initStrategy=function(baseStrategy,index,oldStrategies){return baseStrategy.init?baseStrategy.init(oldStrategies?oldStrategies[index]:undefined):baseStrategy};fluid.model.makeTrundler=function(root,config,oldStrategies){var that={root:root,strategies:fluid.isArrayable(config)?config:fluid.transform(config.strategies,function(strategy,index){return fluid.model.initStrategy(strategy,index,oldStrategies)})};that.trundle=function(EL,uncess){uncess=uncess||0;var newThat=fluid.model.makeTrundler(that.root,config,that.strategies);newThat.segs=fluid.model.parseEL(EL);newThat.index=0;newThat.step(newThat.segs.length-uncess);return newThat};that.next=function(){if(!that.root){return }var accepted;for(var i=0;i<that.strategies.length;++i){var value=fluid.model.applyStrategy(that.strategies[i],that.root,that.segs[that.index],that.index);if(accepted===undefined){accepted=value}}if(accepted===fluid.NO_VALUE){accepted=undefined}that.root=accepted;++that.index};that.step=function(limit){for(var i=0;i<limit;++i){that.next()}that.last=that.segs[that.index]};return that};fluid.model.defaultSetConfig={strategies:[fluid.model.funcResolverStrategy,fluid.model.defaultFetchStrategy,fluid.model.defaultCreatorStrategy]};fluid.model.trundleImpl=function(trundler,EL,config,uncess){if(typeof (EL)==="string"){trundler=trundler.trundle(EL,uncess)}else{var key=EL.type||"default";var resolver=config.resolvers[key];if(!resolver){fluid.fail("Unable to find resolver of type "+key)}trundler=resolver(EL,trundler)||{};if(EL.path&&trundler.trundle&&trundler.root!==undefined){trundler=fluid.model.trundleImpl(trundler,EL.path,config,uncess)}}return trundler};fluid.model.trundle=function(root,EL,config,uncess){EL=EL||"";config=config||fluid.model.defaultGetConfig;var trundler=fluid.model.makeTrundler(root,config);return fluid.model.trundleImpl(trundler,EL,config,uncess)};fluid.model.getPenultimate=function(root,EL,config){return fluid.model.trundle(root,EL,config,1)};fluid.set=function(root,EL,newValue,config){config=config||fluid.model.defaultSetConfig;var trundler=fluid.model.getPenultimate(root,EL,config);trundler.root[trundler.last]=newValue};fluid.model.defaultGetConfig={strategies:[fluid.model.funcResolverStrategy,fluid.model.defaultFetchStrategy]};fluid.get=function(root,EL,config){return fluid.model.trundle(root,EL,config).root};fluid.model.setBeanValue=fluid.set;fluid.model.getBeanValue=fluid.get;fluid.getGlobalValue=function(path,env){if(path){env=env||fluid.environment;var envFetcher=fluid.model.environmentStrategy(env);return fluid.get(globalObject,path,{strategies:[envFetcher].concat(fluid.model.defaultGetConfig.strategies)})}};fluid.invokeGlobalFunction=function(functionPath,args,environment){var func=fluid.getGlobalValue(functionPath,environment);if(!func){fluid.fail("Error invoking global function: "+functionPath+" could not be located")}else{return func.apply(null,args)}};fluid.registerGlobalFunction=function(functionPath,func,env){env=env||fluid.environment;var envFetcher=fluid.model.environmentStrategy(env);fluid.set(globalObject,functionPath,func,{strategies:[envFetcher].concat(fluid.model.defaultSetConfig.strategies)})};fluid.setGlobalValue=fluid.registerGlobalFunction;fluid.registerNamespace=function(naimspace,env){env=env||fluid.environment;var existing=fluid.getGlobalValue(naimspace,env);if(!existing){existing={};fluid.setGlobalValue(naimspace,existing,env)}return existing};fluid.dumpEl=fluid.identity;fluid.renderTimestamp=fluid.identity;fluid.registerNamespace("fluid.event");fluid.generateUniquePrefix=function(){return(Math.floor(Math.random()*1000000000000)).toString(36)+"-"};var fluid_prefix=fluid.generateUniquePrefix();var fluid_guid=1;fluid.allocateGuid=function(){return fluid_prefix+(fluid_guid++)};fluid.event.identifyListener=function(listener){if(typeof (listener)==="string"){return listener}if(!listener.$$guid){listener.$$guid=fluid.allocateGuid()}return listener.$$guid};fluid.event.mapPriority=function(priority,count){return(priority===null||priority===undefined?-count:(priority==="last"?-Number.MAX_VALUE:(priority==="first"?Number.MAX_VALUE:priority)))};fluid.event.listenerComparator=function(recA,recB){return recB.priority-recA.priority};fluid.event.sortListeners=function(listeners){var togo=[];fluid.each(listeners,function(listener){togo.push(listener)});return togo.sort(fluid.event.listenerComparator)};fluid.event.getEventFirer=function(unicast,preventable){var listeners={};var sortedListeners=[];function fireToListeners(listeners,args,wrapper){for(var i in listeners){var lisrec=listeners[i];var listener=lisrec.listener;if(typeof (listener)==="string"){var listenerFunc=fluid.getGlobalValue(listener);if(!listenerFunc){fluid.fail("Unable to look up name "+listener+" as a global function")}else{listener=lisrec.listener=listenerFunc}}if(lisrec.predicate&&!lisrec.predicate(listener,args)){continue}var value=fluid.tryCatch(function(){var ret=(wrapper?wrapper(listener):listener).apply(null,args);if(preventable&&ret===false){return false}if(unicast){return ret}},function(e){fluid.log("FireEvent received exception "+e.message+" e "+e+" firing to listener "+i);throw (e)});if(value!==undefined){return value}}}return{addListener:function(listener,namespace,predicate,priority){if(!listener){return }if(unicast){namespace="unicast"}if(!namespace){namespace=fluid.event.identifyListener(listener)}listeners[namespace]={listener:listener,predicate:predicate,priority:fluid.event.mapPriority(priority,sortedListeners.length)};sortedListeners=fluid.event.sortListeners(listeners)},removeListener:function(listener){if(typeof (listener)==="string"){delete listeners[listener]}else{if(listener.$$guid){delete listeners[listener.$$guid]}}sortedListeners=fluid.event.sortListeners(listeners)},fireToListeners:function(listeners,args,wrapper){return fireToListeners(listeners,args,wrapper)},fire:function(){return fireToListeners(sortedListeners,arguments)}}};fluid.event.addListenerToFirer=function(firer,value,namespace){if(fluid.isArrayable(value)){for(var i=0;i<value.length;++i){fluid.event.addListenerToFirer(firer,value[i],namespace)}}else{if(typeof (value)==="function"||typeof (value)==="string"){firer.addListener(value,namespace)}else{if(value&&typeof (value)==="object"){firer.addListener(value.listener,namespace||value.namespace,value.predicate,value.priority)}}}};fluid.mergeListeners=function(that,events,listeners){fluid.each(listeners,function(value,key){var firer,namespace;if(key.charAt(0)==="{"){if(!fluid.expandOptions){fluid.fail("fluid.expandOptions could not be loaded - please include FluidIoC.js in order to operate IoC-driven event with descriptor "+key)}firer=fluid.expandOptions(key,that)}else{var keydot=key.indexOf(".");if(keydot!==-1){namespace=key.substring(keydot+1);key=key.substring(0,keydot)}if(!events[key]){fluid.fail("Listener registered for event "+key+" which is not defined for this component");events[key]=fluid.event.getEventFirer()}firer=events[key]}fluid.event.addListenerToFirer(firer,value,namespace)})};function initEvents(that,events,pass){fluid.each(events,function(eventSpec,eventKey){var isIoCEvent=eventSpec&&(typeof (eventSpec)!=="string"||eventSpec.charAt(0)==="{");var event;if(isIoCEvent&&pass==="IoC"){if(!fluid.event.resolveEvent){fluid.fail("fluid.event.resolveEvent could not be loaded - please include FluidIoC.js in order to operate IoC-driven event with descriptor ",eventSpec)}else{event=fluid.event.resolveEvent(that,eventKey,eventSpec)}}else{if(pass==="flat"){event=fluid.event.getEventFirer(eventSpec==="unicast",eventSpec==="preventable")}}if(event){that.events[eventKey]=event}})}fluid.instantiateFirers=function(that,options){that.events={};initEvents(that,options.events,"flat");initEvents(that,options.events,"IoC");var listeners=fluid.expandOptions?fluid.expandOptions(options.listeners,that):options.listeners;fluid.mergeListeners(that,that.events,listeners)};fluid.mergeListenersPolicy=function(target,source){var togo=target||{};fluid.each(source,function(listeners,key){togo[key]=fluid.makeArray(source[key]).concat(fluid.makeArray(listeners))});return togo};var defaultsStore={};var resolveGradesImpl=function(gs,gradeNames){gradeNames=fluid.makeArray(gradeNames);fluid.each(gradeNames,function(gradeName){var options=fluid.rawDefaults(gradeName)||{};gs.gradeHash[gradeName]=true;gs.gradeChain.push(gradeName);gs.optionsChain.push(options);fluid.each(options.gradeNames,function(parent){if(!gs.gradeHash[parent]){resolveGradesImpl(gs,parent)}})});return gs};fluid.resolveGradeStructure=function(gradeNames){var gradeStruct={gradeChain:[],gradeHash:{},optionsChain:[]};return resolveGradesImpl(gradeStruct,gradeNames)};fluid.lifecycleFunctions={preInitFunction:true,postInitFunction:true,finalInitFunction:true};fluid.mergeLifecycleFunction=function(target,source){fluid.event.addListenerToFirer(target,source);return target};fluid.rootMergePolicy=fluid.transform(fluid.lifecycleFunctions,function(){return fluid.mergeLifecycleFunction});fluid.makeLifecycleFirers=function(){return fluid.transform(fluid.lifecycleFunctions,function(){return fluid.event.getEventFirer()})};fluid.resolveGrade=function(defaults,gradeNames){var mergeArgs=[defaults];if(gradeNames){var gradeStruct=fluid.resolveGradeStructure(gradeNames);mergeArgs=gradeStruct.optionsChain.reverse().concat(mergeArgs).concat({gradeNames:gradeStruct.gradeChain})}mergeArgs=[fluid.rootMergePolicy,fluid.makeLifecycleFirers()].concat(mergeArgs);var mergedDefaults=fluid.merge.apply(null,mergeArgs);return mergedDefaults};fluid.resolveGradedOptions=function(componentName){var defaults=fluid.rawDefaults(componentName);if(!defaults){return defaults}else{return fluid.resolveGrade(defaults,defaults.gradeNames)}};fluid.rawDefaults=function(componentName,options){if(options===undefined){return defaultsStore[componentName]}else{defaultsStore[componentName]=options}};fluid.hasGrade=function(options,gradeName){return !options||!options.gradeNames?false:fluid.contains(options.gradeNames,gradeName)};fluid.defaults=function(){var offset=0;if(typeof arguments[0]==="boolean"){offset=1}var componentName=(offset===0?"":"*.global-")+arguments[offset];var options=arguments[offset+1];if(options===undefined){return fluid.resolveGradedOptions(componentName)}else{if(options&&options.options){fluid.fail('Probable error in options structure with option named "options" - perhaps you meant to write these options at top level in fluid.defaults?')}fluid.rawDefaults(componentName,options);if(fluid.hasGrade(options,"autoInit")){fluid.makeComponent(componentName,fluid.resolveGradedOptions(componentName))}}};fluid.makeComponent=function(componentName,options){if(!options.initFunction||!options.gradeNames){fluid.fail("Cannot autoInit component "+componentName+" which does not have an initFunction and gradeName defined")}var creator=function(){return fluid.initComponent(componentName,arguments)};var existing=fluid.getGlobalValue(componentName);if(existing){$.extend(creator,existing)}fluid.setGlobalValue(componentName,creator)};fluid.makeComponents=function(components,env){fluid.each(components,function(value,key){var options={gradeNames:fluid.makeArray(value).concat(["autoInit"])};fluid.defaults(key,options)})};fluid.defaults("fluid.littleComponent",{initFunction:"fluid.initLittleComponent",argumentMap:{options:0}});fluid.defaults("fluid.eventedComponent",{gradeNames:["fluid.littleComponent"],mergePolicy:{listeners:"fluid.mergeListenersPolicy"}});fluid.preInitModelComponent=function(that){that.model=that.options.model||{};that.applier=that.options.applier||fluid.makeChangeApplier(that.model,that.options.changeApplierOptions)};fluid.defaults("fluid.modelComponent",{gradeNames:["fluid.littleComponent"],preInitFunction:{namespace:"preInitModelComponent",listener:"fluid.preInitModelComponent"},mergePolicy:{model:"preserve",applier:"nomerge"}});fluid.defaults("fluid.viewComponent",{gradeNames:["fluid.littleComponent","fluid.modelComponent","fluid.eventedComponent"],initFunction:"fluid.initView",argumentMap:{container:0,options:1}});fluid.guardCircularity=function(seenIds,source,message1,message2){if(source&&source.id){if(!seenIds[source.id]){seenIds[source.id]=source}else{if(seenIds[source.id]===source){fluid.fail("Circularity in options "+message1+" - component with typename "+source.typeName+" and id "+source.id+" has already been seen"+message2)}}}};fluid.mergePolicyIs=function(policy,test){return typeof (policy)==="string"&&$.inArray(test,policy.split(/\s*,\s*/))!==-1};function mergeImpl(policy,basePath,target,source,thisPolicy,rec){if(typeof (thisPolicy)==="function"){thisPolicy.call(null,target,source);return target}if(fluid.mergePolicyIs(thisPolicy,"replace")){fluid.clear(target)}fluid.guardCircularity(rec.seenIds,source,"merging"," when evaluating path "+basePath+' - please protect components from merging using the "nomerge" merge policy');for(var name in source){var path=(basePath?basePath+".":"")+name;var newPolicy=policy&&typeof (policy)!=="string"?policy[path]:policy;var thisTarget=target[name];var thisSource=source[name];var primitiveTarget=fluid.isPrimitive(thisTarget);if(thisSource!==undefined){if(thisSource!==null&&typeof (thisSource)==="object"&&!fluid.isDOMNode(thisSource)&&!thisSource.jquery&&thisSource!==fluid.VALUE&&!fluid.mergePolicyIs(newPolicy,"preserve")&&!fluid.mergePolicyIs(newPolicy,"nomerge")&&!fluid.mergePolicyIs(newPolicy,"noexpand")){if(primitiveTarget){target[name]=thisTarget=fluid.freshContainer(thisSource)}mergeImpl(policy,path,thisTarget,thisSource,newPolicy,rec)}else{if(typeof (newPolicy)==="function"){target[name]=newPolicy.call(null,thisTarget,thisSource,name)}else{if(!fluid.isValue(thisTarget)||!fluid.mergePolicyIs(newPolicy,"reverse")){target[name]=fluid.isValue(thisTarget)&&fluid.mergePolicyIs(newPolicy,"preserve")?fluid.model.mergeModel(thisTarget,thisSource):thisSource}}}}}return target}fluid.merge=function(policy,target){var path="";for(var i=2;i<arguments.length;++i){var source=arguments[i];if(source!==null&&source!==undefined){mergeImpl(policy,path,target,source,policy?policy[""]:null,{seenIds:{}})}}if(policy&&typeof (policy)!=="string"){for(var key in policy){var elrh=policy[key];if(typeof (elrh)==="string"&&elrh!=="replace"&&elrh!=="preserve"){var oldValue=fluid.get(target,key);if(oldValue===null||oldValue===undefined){var value=fluid.get(target,elrh);fluid.set(target,key,value)}}}}return target};fluid.transformOptions=function(mergeArgs,transRec){fluid.expect("Options transformation record",["transformer","config"],transRec);var transFunc=fluid.getGlobalValue(transRec.transformer);var togo=fluid.transform(mergeArgs,function(value,key){return key===0?value:transFunc.call(null,value,transRec.config)});return togo};fluid.lastTransformationRecord=function(extraArgs){for(var i=extraArgs.length-1;i>=0;--i){if(extraArgs[i]&&extraArgs[i].transformOptions){return extraArgs[i].transformOptions}}};fluid.mergeComponentOptions=function(that,componentName,userOptions,localOptions){var defaults=fluid.defaults(componentName);var mergePolicy=$.extend({},fluid.rootMergePolicy,defaults?defaults.mergePolicy:{});var defaultGrades=defaults&&defaults.gradeNames;var mergeArgs;if(!defaultGrades){defaults=fluid.censorKeys(defaults,fluid.keys(fluid.lifecycleFunctions));mergeArgs=[mergePolicy,localOptions]}else{mergeArgs=[mergePolicy]}var extraArgs;if(fluid.expandComponentOptions){extraArgs=fluid.expandComponentOptions(defaults,userOptions,that)}else{extraArgs=[defaults,userOptions]}var transRec=fluid.lastTransformationRecord(extraArgs);if(transRec){extraArgs=fluid.transformOptions(extraArgs,transRec)}mergeArgs=mergeArgs.concat(extraArgs);that.options=fluid.merge.apply(null,mergeArgs)};fluid.COMPONENT_OPTIONS={type:"fluid.marker",value:"COMPONENT_OPTIONS"};fluid.emptySubcomponent=function(options){var that={};options=$.makeArray(options);var empty=function(){};for(var i=0;i<options.length;++i){that[options[i]]=empty}return that};fluid.computeNickName=function(typeName){var segs=fluid.model.parseEL(typeName);return segs[segs.length-1]};fluid.typeTag=function(name){return name?{typeName:name,id:fluid.allocateGuid()}:null};fluid.typeFount=function(options){var that=fluid.initLittleComponent("fluid.typeFount",options);return fluid.typeTag(that.options.targetTypeName)};fluid.initLittleComponent=function(name,options,localOptions){var that=fluid.typeTag(name);that.nickName=options&&options.nickName?options.nickName:fluid.computeNickName(that.typeName);localOptions=localOptions||{gradeNames:"fluid.littleComponent"};localOptions=fluid.resolveGrade({},localOptions.gradeNames);fluid.mergeComponentOptions(that,name,options,localOptions);that.options.preInitFunction.fire(that);if(fluid.hasGrade(that.options,"fluid.eventedComponent")){fluid.instantiateFirers(that,that.options)}if(!fluid.hasGrade(that.options,"autoInit")){fluid.clearLifecycleFunctions(that.options)}return that};fluid.clearLifecycleFunctions=function(options){fluid.each(fluid.lifecycleFunctions,function(value,key){delete options[key]});delete options.initFunction};fluid.diagnoseFailedView=function(componentName,that,options,args){if(!that&&fluid.hasGrade(options,"fluid.viewComponent")){var container=fluid.wrap(args[1]);var message1="Instantiation of autoInit component with type "+componentName+" failed, since ";if(container.length===0){fluid.fail(message1+'selector "',args[1],'" did not match any markup in the document')}else{fluid.fail(message1+" component creator function did not return a value")}}};fluid.initComponent=function(componentName,initArgs){var options=fluid.defaults(componentName);if(!options.gradeNames){fluid.fail("Cannot initialise component "+componentName+" which has no gradeName registered")}var args=[componentName].concat(fluid.makeArray(initArgs));var that=fluid.invokeGlobalFunction(options.initFunction,args);fluid.diagnoseFailedView(componentName,that,options,args);that.options.postInitFunction.fire(that);if(fluid.initDependents){fluid.initDependents(that)}that.options.finalInitFunction.fire(that);fluid.clearLifecycleFunctions(that.options);return that.options.returnedPath?fluid.get(that,that.options.returnedPath):that};fluid.initSubcomponentImpl=function(that,entry,args){var togo;if(typeof (entry)!=="function"){var entryType=typeof (entry)==="string"?entry:entry.type;var globDef=fluid.defaults(true,entryType);fluid.merge("reverse",that.options,globDef);togo=entryType==="fluid.emptySubcomponent"?fluid.emptySubcomponent(entry.options):fluid.invokeGlobalFunction(entryType,args)}else{togo=entry.apply(null,args)}var returnedOptions=togo?togo.returnedOptions:null;if(returnedOptions){fluid.merge(that.options.mergePolicy,that.options,returnedOptions);if(returnedOptions.listeners){fluid.mergeListeners(that,that.events,returnedOptions.listeners)}}return togo};fluid.initSubcomponents=function(that,className,args){var entry=that.options[className];if(!entry){return }var entries=$.makeArray(entry);var optindex=-1;var togo=[];args=$.makeArray(args);for(var i=0;i<args.length;++i){if(args[i]===fluid.COMPONENT_OPTIONS){optindex=i}}for(i=0;i<entries.length;++i){entry=entries[i];if(optindex!==-1){args[optindex]=entry.options}togo[i]=fluid.initSubcomponentImpl(that,entry,args)}return togo};fluid.initSubcomponent=function(that,className,args){return fluid.initSubcomponents(that,className,args)[0]};fluid.checkTryCatchParameter=function(){var location=window.location||{search:"",protocol:"file:"};var GETParams=location.search.slice(1).split("&");return fluid.contains(GETParams,"notrycatch")};fluid.notrycatch=fluid.checkTryCatchParameter();fluid.container=function(containerSpec,fallible){var container=fluid.wrap(containerSpec);if(fallible&&(!container||container.length===0)){return null}if(!container||!container.jquery||container.length!==1){if(typeof (containerSpec)!=="string"){containerSpec=container.selector}var count=container.length!==undefined?container.length:0;fluid.fail((count>1?"More than one ("+count+") container elements were":"No container element was")+" found for selector "+containerSpec)}if(!fluid.isDOMNode(container[0])){fluid.fail("fluid.container was supplied a non-jQueryable element")}return container};fluid.createDomBinder=function(container,selectors){var cache={},that={};function cacheKey(name,thisContainer){return fluid.allocateSimpleId(thisContainer)+"-"+name}function record(name,thisContainer,result){cache[cacheKey(name,thisContainer)]=result}that.locate=function(name,localContainer){var selector,thisContainer,togo;selector=selectors[name];thisContainer=localContainer?localContainer:container;if(!thisContainer){fluid.fail("DOM binder invoked for selector "+name+" without container")}if(!selector){return thisContainer}if(typeof (selector)==="function"){togo=$(selector.call(null,fluid.unwrap(thisContainer)))}else{togo=$(selector,thisContainer)}if(togo.get(0)===document){togo=[]}if(!togo.selector){togo.selector=selector;togo.context=thisContainer}togo.selectorName=name;record(name,thisContainer,togo);return togo};that.fastLocate=function(name,localContainer){var thisContainer=localContainer?localContainer:container;var key=cacheKey(name,thisContainer);var togo=cache[key];return togo?togo:that.locate(name,localContainer)};that.clear=function(){cache={}};that.refresh=function(names,localContainer){var thisContainer=localContainer?localContainer:container;if(typeof names==="string"){names=[names]}if(thisContainer.length===undefined){thisContainer=[thisContainer]}for(var i=0;i<names.length;++i){for(var j=0;j<thisContainer.length;++j){that.locate(names[i],thisContainer[j])}}};that.resolvePathSegment=that.locate;return that};fluid.expectFilledSelector=function(result,message){if(result&&result.length===0&&result.jquery){fluid.fail(message+': selector "'+result.selector+'" with name '+result.selectorName+" returned no results in context "+fluid.dumpEl(result.context))}};fluid.initView=function(componentName,container,userOptions,localOptions){fluid.expectFilledSelector(container,'Error instantiating component with name "'+componentName);container=fluid.container(container,true);if(!container){return null}var that=fluid.initLittleComponent(componentName,userOptions,localOptions||{gradeNames:["fluid.viewComponent"]});that.container=container;fluid.initDomBinder(that);return that};fluid.initDomBinder=function(that){that.dom=fluid.createDomBinder(that.container,that.options.selectors);that.locate=that.dom.locate};fluid.findAncestor=function(element,test){element=fluid.unwrap(element);while(element){if(test(element)){return element}element=element.parentNode}};fluid.jById=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var element=fluid.byId(id,dokkument);var togo=element?$(element):[];togo.selector="#"+id;togo.context=dokkument;return togo};fluid.byId=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var el=dokkument.getElementById(id);if(el){if(el.id!==id){fluid.fail("Problem in document structure - picked up element "+fluid.dumpEl(el)+" for id "+id+" without this id - most likely the element has a name which conflicts with this id")}return el}else{return null}};fluid.getId=function(element){return fluid.unwrap(element).id};fluid.allocateSimpleId=function(element){var simpleId="fluid-id-"+fluid.allocateGuid();if(!element){return simpleId}element=fluid.unwrap(element);if(!element.id){element.id=simpleId}return element.id};fluid.stringToRegExp=function(str,flags){return new RegExp(str.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),flags)};fluid.stringTemplate=function(template,values){var newString=template;for(var key in values){var re=fluid.stringToRegExp("%"+key,"g");newString=newString.replace(re,values[key])}return newString};fluid.messageResolver=function(options){var that=fluid.initLittleComponent("fluid.messageResolver",options);that.messageBase=that.options.parseFunc(that.options.messageBase);that.lookup=function(messagecodes){var resolved=fluid.messageResolver.resolveOne(that.messageBase,messagecodes);if(resolved===undefined){return fluid.find(that.options.parents,function(parent){return parent.lookup(messagecodes)})}else{return{template:resolved,resolveFunc:that.options.resolveFunc}}};that.resolve=function(messagecodes,args){if(!messagecodes){return"[No messagecodes provided]"}messagecodes=fluid.makeArray(messagecodes);var looked=that.lookup(messagecodes);return looked?looked.resolveFunc(looked.template,args):"[Message string for key "+messagecodes[0]+" not found]"};return that};fluid.defaults("fluid.messageResolver",{mergePolicy:{messageBase:"preserve"},resolveFunc:fluid.stringTemplate,parseFunc:fluid.identity,messageBase:{},parents:[]});fluid.messageResolver.resolveOne=function(messageBase,messagecodes){for(var i=0;i<messagecodes.length;++i){var code=messagecodes[i];var message=messageBase[code];if(message!==undefined){return message}}};fluid.messageLocator=function(messageBase,resolveFunc){var resolver=fluid.messageResolver({messageBase:messageBase,resolveFunc:resolveFunc});return function(messagecodes,args){return resolver.resolve(messagecodes,args)}}})(jQuery,fluid_1_4);
\ No newline at end of file
index 61b0567..ff9d6f1 100644 (file)
@@ -1 +1 @@
-var fluid_1_1=fluid_1_1||{};(function($,fluid){fluid.dom=fluid.dom||{};var getNextNode=function(iterator){if(iterator.node.firstChild){iterator.node=iterator.node.firstChild;iterator.depth+=1;return iterator}while(iterator.node){if(iterator.node.nextSibling){iterator.node=iterator.node.nextSibling;return iterator}iterator.node=iterator.node.parentNode;iterator.depth-=1}return iterator};fluid.dom.iterateDom=function(node,acceptor,allNodes){var currentNode={node:node,depth:0};var prevNode=node;var condition;while(currentNode.node!==null&&currentNode.depth>=0&&currentNode.depth<fluid.dom.iterateDom.DOM_BAIL_DEPTH){condition=null;if(currentNode.node.nodeType===1||allNodes){condition=acceptor(currentNode.node,currentNode.depth)}if(condition){if(condition==="delete"){currentNode.node.parentNode.removeChild(currentNode.node);currentNode.node=prevNode}else{if(condition==="stop"){return currentNode.node}}}prevNode=currentNode.node;currentNode=getNextNode(currentNode)}};fluid.dom.iterateDom.DOM_BAIL_DEPTH=256;fluid.dom.computeAbsolutePosition=function(element){var curleft=0,curtop=0;if(element.offsetParent){do{curleft+=element.offsetLeft;curtop+=element.offsetTop;element=element.offsetParent}while(element);return[curleft,curtop]}};fluid.dom.isContainer=function(container,containee){for(;containee;containee=containee.parentNode){if(container===containee){return true}}return false};fluid.dom.insertAfter=function(newChild,refChild){var nextSib=refChild.nextSibling;if(!nextSib){refChild.parentNode.appendChild(newChild)}else{refChild.parentNode.insertBefore(newChild,nextSib)}};fluid.dom.isWhitespaceNode=function(node){return !(/[^\t\n\r ]/.test(node.data))};fluid.dom.isIgnorableNode=function(node){return(node.nodeType===8)||((node.nodeType===3)&&fluid.dom.isWhitespaceNode(node))};fluid.dom.getElementText=function(element){var nodes=element.childNodes;var text="";for(var i=0;i<nodes.length;++i){var child=nodes[i];if(child.nodeType==3){text=text+child.nodeValue}}return text};fluid.dom.cleanseScripts=function(element){var cleansed=$.data(element,fluid.dom.cleanseScripts.MARKER);if(!cleansed){fluid.dom.iterateDom(element,function(node){return node.tagName.toLowerCase()==="script"?"delete":null});$.data(element,fluid.dom.cleanseScripts.MARKER,true)}};fluid.dom.cleanseScripts.MARKER="fluid-scripts-cleansed"})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.dom=fluid.dom||{};var getNextNode=function(iterator){if(iterator.node.firstChild){iterator.node=iterator.node.firstChild;iterator.depth+=1;return iterator}while(iterator.node){if(iterator.node.nextSibling){iterator.node=iterator.node.nextSibling;return iterator}iterator.node=iterator.node.parentNode;iterator.depth-=1}return iterator};fluid.dom.iterateDom=function(node,acceptor,allNodes){var currentNode={node:node,depth:0};var prevNode=node;var condition;while(currentNode.node!==null&&currentNode.depth>=0&&currentNode.depth<fluid.dom.iterateDom.DOM_BAIL_DEPTH){condition=null;if(currentNode.node.nodeType===1||allNodes){condition=acceptor(currentNode.node,currentNode.depth)}if(condition){if(condition==="delete"){currentNode.node.parentNode.removeChild(currentNode.node);currentNode.node=prevNode}else{if(condition==="stop"){return currentNode.node}}}prevNode=currentNode.node;currentNode=getNextNode(currentNode)}};fluid.dom.iterateDom.DOM_BAIL_DEPTH=256;fluid.dom.isContainer=function(container,containee){for(;containee;containee=containee.parentNode){if(container===containee){return true}}return false};fluid.dom.getElementText=function(element){var nodes=element.childNodes;var text="";for(var i=0;i<nodes.length;++i){var child=nodes[i];if(child.nodeType===3){text=text+child.nodeValue}}return text}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/core/js/FluidDebugging.js b/docs/jscripts/infusion/framework/core/js/FluidDebugging.js
new file mode 100644 (file)
index 0000000..1ba03ed
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};var fluid=fluid||fluid_1_4;(function($,fluid){fluid.renderTimestamp=function(date){var zeropad=function(num,width){if(!width){width=2}var numstr=(num==undefined?"":num.toString());return"00000".substring(5-width+numstr.length)+numstr};return zeropad(date.getHours())+":"+zeropad(date.getMinutes())+":"+zeropad(date.getSeconds())+"."+zeropad(date.getMilliseconds(),3)};fluid.detectStackStyle=function(e){var style="other";var stackStyle={offset:0};if(e.arguments){style="chrome"}else{if(typeof window!=="undefined"&&window.opera&&e.stacktrace){style="opera10"}else{if(e.stack){style="firefox";stackStyle.offset=e.stack.indexOf("Trace exception")===-1?1:0}else{if(typeof window!=="undefined"&&window.opera&&!("stacktrace" in e)){style="opera"}}}}stackStyle.style=style;return stackStyle};fluid.obtainException=function(){try{throw new Error("Trace exception")}catch(e){return e}};var stackStyle=fluid.detectStackStyle(fluid.obtainException());fluid.registerNamespace("fluid.exceptionDecoders");fluid.decodeStack=function(){if(stackStyle.style!=="firefox"){return null}var e=fluid.obtainException();return fluid.exceptionDecoders[stackStyle.style](e)};fluid.exceptionDecoders.firefox=function(e){var lines=e.stack.replace(/(?:\n@:0)?\s+$/m,"").replace(/^\(/gm,"{anonymous}(").split("\n");return fluid.transform(lines,function(line){var atind=line.indexOf("@");return atind===-1?[line]:[line.substring(atind+1),line.substring(0,atind)]})};fluid.getCallerInfo=function(atDepth){atDepth=(atDepth||3)-stackStyle.offset;var stack=fluid.decodeStack();return stack?stack[atDepth][0]:null};function generate(c,count){var togo="";for(var i=0;i<count;++i){togo+=c}return togo}function printImpl(obj,small,options){var big=small+options.indentChars;if(obj===null){return"null"}else{if(fluid.isPrimitive(obj)){return JSON.stringify(obj)}else{var j=[];if(fluid.isArrayable(obj)){if(obj.length===0){return"[]"}for(var i=0;i<obj.length;++i){j[i]=printImpl(obj[i],big,options)}return"[\n"+big+j.join(",\n"+big)+"\n"+small+"]"}else{var i=0;fluid.each(obj,function(value,key){j[i++]=JSON.stringify(key)+": "+printImpl(value,big,options)});return"{\n"+big+j.join(",\n"+big)+"\n"+small+"}"}}}}fluid.prettyPrintJSON=function(obj,options){options=$.extend({indent:4},options);options.indentChars=generate(" ",options.indent);return printImpl(obj,"",options)};fluid.dumpEl=function(element){var togo;if(!element){return"null"}if(element.nodeType===3||element.nodeType===8){return"[data: "+element.data+"]"}if(element.nodeType===9){return"[document: location "+element.location+"]"}if(!element.nodeType&&fluid.isArrayable(element)){togo="[";for(var i=0;i<element.length;++i){togo+=fluid.dumpEl(element[i]);if(i<element.length-1){togo+=", "}}return togo+"]"}element=$(element);togo=element.get(0).tagName;if(element.id){togo+="#"+element.id}if(element.attr("class")){togo+="."+element.attr("class")}return togo}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/core/js/FluidDocument.js b/docs/jscripts/infusion/framework/core/js/FluidDocument.js
new file mode 100644 (file)
index 0000000..9e31448
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){var NAMESPACE_KEY="fluid-scoped-data";fluid.getScopedData=function(target,key){var data=$(target).data(NAMESPACE_KEY);return data?data[key]:undefined};fluid.setScopedData=function(target,key,value){$(target).each(function(){var data=$.data(this,NAMESPACE_KEY)||{};data[key]=value;$.data(this,NAMESPACE_KEY,data)})};var lastFocusedElement=null;$(document).bind("focusin",function(event){lastFocusedElement=event.target});fluid.getLastFocusedElement=function(){return lastFocusedElement};var ENABLEMENT_KEY="enablement";fluid.enabled=function(target,state){target=$(target);if(state===undefined){return fluid.getScopedData(target,ENABLEMENT_KEY)!==false}else{$("*",target).add(target).each(function(){if(fluid.getScopedData(this,ENABLEMENT_KEY)!==undefined){fluid.setScopedData(this,ENABLEMENT_KEY,state)}else{if(/select|textarea|input/i.test(this.nodeName)){$(this).prop("disabled",!state)}}});fluid.setScopedData(target,ENABLEMENT_KEY,state)}};fluid.initEnablement=function(target){fluid.setScopedData(target,ENABLEMENT_KEY,true)};function applyOp(node,func){node=$(node);node.trigger("fluid-"+func);node[func]()}$.each(["focus","blur"],function(i,name){fluid[name]=function(elem){applyOp(elem,name)}})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/core/js/FluidIoC.js b/docs/jscripts/infusion/framework/core/js/FluidIoC.js
new file mode 100644 (file)
index 0000000..ebd93fb
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){var inCreationMarker="__CURRENTLY_IN_CREATION__";fluid.isFireBreak=function(component){return component.options&&component.options["fluid.visitComponents.fireBreak"]};fluid.visitComponentChildren=function(that,visitor,options,up,down){options=options||{};for(var name in that){var component=that[name];if(!component||!component.typeName||(component.id&&options.visited&&options.visited[component.id])){continue}if(options.visited){options.visited[component.id]=true}if(visitor(component,name,options,up,down)){return true}if(!fluid.isFireBreak(component)&&!options.flat){fluid.visitComponentChildren(component,visitor,options,up,down+1)}}};var visitComponents=function(thatStack,visitor,options){options=options||{visited:{},flat:true};var up=0;for(var i=thatStack.length-1;i>=0;--i){var that=thatStack[i];if(fluid.isFireBreak(that)){return }if(that.typeName){options.visited[that.id]=true;if(visitor(that,"",options,0,0)){return }}if(fluid.visitComponentChildren(that,visitor,options,up,1)){return }++up}};function makeGingerStrategy(instantiator,that,thatStack){return function(component,thisSeg){var atval=component[thisSeg];if(atval===undefined){var parentPath=instantiator.idToPath[component.id];atval=instantiator.pathToComponent[fluid.composePath(parentPath,thisSeg)];if(atval){atval[inCreationMarker]=true}}if(atval!==undefined){if(atval[inCreationMarker]){fluid.fail("Component "+fluid.dumpThat(atval)+' at path "'+thisSeg+'" of parent '+fluid.dumpThat(component)+" cannot be used for lookup since it is still in creation. Please reorganise your dependencies so that they no longer contain circular references")}}else{if(fluid.get(component,fluid.path("options","components",thisSeg,"type"))){fluid.initDependent(component,thisSeg);atval=component[thisSeg]}}return atval}}fluid.dumpThat=function(that,instantiator){return'{ typeName: "'+that.typeName+'" id: '+that.id+"}"};fluid.dumpThatStack=function(thatStack,instantiator){var togo=fluid.transform(thatStack,function(that){var path=instantiator.idToPath[that.id];return fluid.dumpThat(that)+(path?(" - path: "+path):"")});return togo.join("\n")};fluid.describeActivity=function(){return fluid.threadLocal().activityStack||[]};fluid.pushActivity=function(func,message){if(!message){return func()}var root=fluid.threadLocal();if(!root.activityStack){root.activityStack=[]}var frames=fluid.makeArray(message);frames.push("\n");frames.unshift("\n");root.activityStack=frames.concat(root.activityStack);return fluid.tryCatch(func,null,function(){root.activityStack=root.activityStack.slice(frames.length)})};fluid.wrapActivity=function(func,messageSpec){return function(){var args=fluid.makeArray(arguments);var message=fluid.transform(fluid.makeArray(messageSpec),function(specEl){if(specEl.indexOf("arguments.")===0){var el=specEl.substring("arguments.".length);return fluid.get(args,el)}else{return specEl}});return fluid.pushActivity(function(){return func.apply(null,args)},message)}};var localRecordExpected=/arguments|options|container/;function makeStackFetcher(instantiator,parentThat,localRecord,expandOptions){expandOptions=expandOptions||{};var thatStack=instantiator.getFullStack(parentThat);var fetchStrategies=[fluid.model.funcResolverStrategy,makeGingerStrategy(instantiator,parentThat,thatStack)];var fetcher=function(parsed){var context=parsed.context;if(localRecord&&localRecordExpected.test(context)){var fetched=fluid.get(localRecord[context],parsed.path);return(context==="arguments"||expandOptions.direct)?fetched:{marker:context==="options"?fluid.EXPAND:fluid.EXPAND_NOW,value:fetched}}var foundComponent;visitComponents(thatStack,function(component,name,options,up,down){if(context===name||context===component.typeName||context===component.nickName){foundComponent=component;if(down>1){fluid.log("***WARNING: value resolution for context "+context+" found at depth "+down+": this may not be supported in future")}return true}if(fluid.get(component,fluid.path("options","components",context,"type"))&&!component[context]){foundComponent=fluid.get(component,context,{strategies:fetchStrategies});return true}});if(!foundComponent&&parsed.path!==""){var ref=fluid.renderContextReference(parsed);fluid.log("Failed to resolve reference "+ref+": thatStack contains\n"+fluid.dumpThatStack(thatStack,instantiator));fluid.fail("Failed to resolve reference "+ref+" - could not match context with name "+context+" from component root of type "+thatStack[0].typeName,"\ninstantiator contents: ",instantiator)}return fluid.get(foundComponent,parsed.path,fetchStrategies)};return fetcher}function makeStackResolverOptions(instantiator,parentThat,localRecord,expandOptions){return $.extend({},fluid.defaults("fluid.resolveEnvironment"),{fetcher:makeStackFetcher(instantiator,parentThat,localRecord,expandOptions)})}fluid.instantiator=function(freeInstantiator){var preThat={options:{"fluid.visitComponents.fireBreak":true},idToPath:{},pathToComponent:{},stackCount:0,nickName:"instantiator"};var that=fluid.typeTag("fluid.instantiator");that=$.extend(that,preThat);that.stack=function(count){return that.stackCount+=count};that.getThatStack=function(component){var path=that.idToPath[component.id]||"";var parsed=fluid.model.parseEL(path);var togo=fluid.transform(parsed,function(value,i){var parentPath=fluid.model.composeSegments.apply(null,parsed.slice(0,i+1));return that.pathToComponent[parentPath]});var root=that.pathToComponent[""];if(root){togo.unshift(root)}return togo};that.getEnvironmentalStack=function(){var togo=[fluid.staticEnvironment];if(!freeInstantiator){togo.push(fluid.threadLocal())}return togo};that.getFullStack=function(component){var thatStack=component?that.getThatStack(component):[];return that.getEnvironmentalStack().concat(thatStack)};function recordComponent(component,path){that.idToPath[component.id]=path;if(that.pathToComponent[path]){fluid.fail("Error during instantiation - path "+path+" which has just created component "+fluid.dumpThat(component)+" has already been used for component "+fluid.dumpThat(that.pathToComponent[path])+" - this is a circular instantiation or other oversight. Please clear the component using instantiator.clearComponent() before reusing the path.")}that.pathToComponent[path]=component}that.recordRoot=function(component){if(component&&component.id&&!that.pathToComponent[""]){recordComponent(component,"")}};that.pushUpcomingInstantiation=function(parent,name){that.expectedParent=parent;that.expectedName=name};that.recordComponent=function(component){if(that.expectedName){that.recordKnownComponent(that.expectedParent,component,that.expectedName);delete that.expectedName;delete that.expectedParent}else{that.recordRoot(component)}};that.clearComponent=function(component,name,child,options,noModTree){options=options||{visited:{},flat:true};child=child||component[name];fluid.visitComponentChildren(child,function(gchild,gchildname){that.clearComponent(child,gchildname,null,options,noModTree)},options);var path=that.idToPath[child.id];delete that.idToPath[child.id];delete that.pathToComponent[path];if(!noModTree){delete component[name]}};that.recordKnownComponent=function(parent,component,name){var parentPath=that.idToPath[parent.id]||"";var path=fluid.model.composePath(parentPath,name);recordComponent(component,path)};return that};fluid.freeInstantiator=fluid.instantiator(true);fluid.argMapToDemands=function(argMap){var togo=[];fluid.each(argMap,function(value,key){togo[value]="{"+key+"}"});return togo};fluid.makePassArgsSpec=function(initArgs){return fluid.transform(initArgs,function(arg,index){return"{arguments}."+index})};function mergeToMergeAll(options){if(options&&options.mergeOptions){options.mergeAllOptions=["{options}"].concat(fluid.makeArray(options.mergeOptions))}}function upgradeMergeOptions(demandspec){mergeToMergeAll(demandspec);if(demandspec.mergeAllOptions){if(demandspec.options){fluid.fail("demandspec ",demandspec," is invalid - cannot specify literal options together with mergeOptions or mergeAllOptions")}demandspec.options={mergeAllOptions:demandspec.mergeAllOptions}}if(demandspec.options){delete demandspec.options.mergeOptions}}fluid.embodyDemands=function(instantiator,parentThat,demandspec,initArgs,options){options=options||{};upgradeMergeOptions(demandspec);var oldOptions=fluid.get(options,"componentRecord.options");options.componentRecord=$.extend(true,{},options.componentRecord,fluid.censorKeys(demandspec,["args","funcName","registeredFrom"]));var mergeAllZero=fluid.get(options,"componentRecord.options.mergeAllOptions.0");if(mergeAllZero==="{options}"){fluid.set(options,"componentRecord.options.mergeAllOptions.0",oldOptions)}var demands=$.makeArray(demandspec.args);var upDefaults=fluid.defaults(demandspec.funcName);var argMap=upDefaults?upDefaults.argumentMap:null;var inferMap=false;if(!argMap&&(upDefaults||(options&&options.componentRecord))&&!options.passArgs){inferMap=true;if(demands.length<2){argMap=fluid.rawDefaults("fluid.littleComponent").argumentMap}else{argMap={options:demands.length-1}}}options=options||{};if(demands.length===0){if(options.componentRecord&&argMap){demands=fluid.argMapToDemands(argMap)}else{if(options.passArgs){demands=fluid.makePassArgsSpec(initArgs)}}}var localRecord=$.extend({arguments:initArgs},fluid.censorKeys(options.componentRecord,["type"]));fluid.each(argMap,function(index,name){if(initArgs.length>0){localRecord[name]=localRecord.arguments[index]}if(demandspec[name]!==undefined&&localRecord[name]===undefined){localRecord[name]=demandspec[name]}});mergeToMergeAll(localRecord.options);mergeToMergeAll(argMap&&demands[argMap.options]);var upstreamLocalRecord=$.extend({},localRecord);if(options.componentRecord.options!==undefined){upstreamLocalRecord.options=options.componentRecord.options}var expandOptions=makeStackResolverOptions(instantiator,parentThat,localRecord);var args=[];if(demands){for(var i=0;i<demands.length;++i){var arg=demands[i];if(fluid.isMarker(arg)&&arg.value===fluid.COMPONENT_OPTIONS.value){arg="{options}";if(inferMap){argMap={options:i}}}if(typeof (arg)==="string"){if(arg.charAt(0)==="@"){var argpos=arg.substring(1);arg="{arguments}."+argpos}}if(!argMap||argMap.options!==i){args[i]=fluid.expander.expandLight(arg,expandOptions)}else{if(arg&&typeof (arg)==="object"&&!arg.targetTypeName){arg.targetTypeName=demandspec.funcName}args[i]={marker:fluid.EXPAND,value:fluid.copy(arg),localRecord:upstreamLocalRecord}}if(args[i]&&fluid.isMarker(args[i].marker,fluid.EXPAND_NOW)){args[i]=fluid.expander.expandLight(args[i].value,expandOptions)}}}else{args=initArgs?initArgs:[]}var togo={args:args,funcName:demandspec.funcName};return togo};var aliasTable={};fluid.alias=function(demandingName,aliasName){if(aliasName){aliasTable[demandingName]=aliasName}else{return aliasTable[demandingName]}};var dependentStore={};function searchDemands(demandingName,contextNames){var exist=dependentStore[demandingName]||[];outer:for(var i=0;i<exist.length;++i){var rec=exist[i];for(var j=0;j<contextNames.length;++j){if(rec.contexts[j]!==contextNames[j]){continue outer}}return rec.spec}}fluid.demands=function(demandingName,contextName,spec){var contextNames=$.makeArray(contextName).sort();if(!spec){return searchDemands(demandingName,contextNames)}else{if(spec.length){spec={args:spec}}}if(fluid.getCallerInfo){var callerInfo=fluid.getCallerInfo(5);if(callerInfo){spec.registeredFrom=callerInfo}}var exist=dependentStore[demandingName];if(!exist){exist=[];dependentStore[demandingName]=exist}exist.push({contexts:contextNames,spec:spec})};fluid.compareDemands=function(speca,specb){var p1=speca.uncess-specb.uncess;return p1===0?specb.intersect-speca.intersect:p1};fluid.isDemandLogging=function(demandingNames){return fluid.isLogging()&&demandingNames[0]!=="fluid.threadLocal"};fluid.locateAllDemands=function(instantiator,parentThat,demandingNames){var demandLogging=fluid.isDemandLogging(demandingNames);if(demandLogging){fluid.log("Resolving demands for function names ",demandingNames," in context of "+(parentThat?"component "+parentThat.typeName:"no component"))}var contextNames={};var visited=[];var thatStack=instantiator.getFullStack(parentThat);visitComponents(thatStack,function(component,xname,options,up,down){contextNames[component.typeName]=true;visited.push(component)});if(demandLogging){fluid.log("Components in scope for resolution:\n"+fluid.dumpThatStack(visited,instantiator))}var matches=[];for(var i=0;i<demandingNames.length;++i){var rec=dependentStore[demandingNames[i]]||[];for(var j=0;j<rec.length;++j){var spec=rec[j];var record={spec:spec,intersect:0,uncess:0};for(var k=0;k<spec.contexts.length;++k){record[contextNames[spec.contexts[k]]?"intersect":"uncess"]+=2}if(spec.contexts.length===0){record.intersect++}matches.push(record)}}matches.sort(fluid.compareDemands);return matches};fluid.locateDemands=function(instantiator,parentThat,demandingNames){var matches=fluid.locateAllDemands(instantiator,parentThat,demandingNames);var demandspec=matches.length===0||matches[0].intersect===0?null:matches[0].spec.spec;if(fluid.isDemandLogging(demandingNames)){if(demandspec){fluid.log("Located "+matches.length+" potential match"+(matches.length===1?"":"es")+", selected best match with "+matches[0].intersect+" matched context names: ",demandspec)}else{fluid.log("No matches found for demands, using direct implementation")}}return demandspec};fluid.determineDemands=function(instantiator,parentThat,funcNames){funcNames=$.makeArray(funcNames);var newFuncName=funcNames[0];var demandspec=fluid.locateDemands(instantiator,parentThat,funcNames)||{};if(demandspec.funcName){newFuncName=demandspec.funcName}var aliasTo=fluid.alias(newFuncName);if(aliasTo){newFuncName=aliasTo;fluid.log("Following redirect from function name "+newFuncName+" to "+aliasTo);var demandspec2=fluid.locateDemands(instantiator,parentThat,[aliasTo]);if(demandspec2){fluid.each(demandspec2,function(value,key){if(localRecordExpected.test(key)){fluid.fail("Error in demands block ",demandspec2,' - content with key "'+key+'" is not supported since this demands block was resolved via an alias from "'+newFuncName+'"')}});if(demandspec2.funcName){newFuncName=demandspec2.funcName;fluid.log('Followed final inner demands to function name "'+newFuncName+'"')}}}return fluid.merge(null,{funcName:newFuncName,args:fluid.makeArray(demandspec.args)},fluid.censorKeys(demandspec,["funcName","args"]))};fluid.resolveDemands=function(instantiator,parentThat,funcNames,initArgs,options){var demandspec=fluid.determineDemands(instantiator,parentThat,funcNames);return fluid.embodyDemands(instantiator,parentThat,demandspec,initArgs,options)};fluid.invoke=function(functionName,args,that,environment){args=fluid.makeArray(args);return fluid.withInstantiator(that,function(instantiator){var invokeSpec=fluid.resolveDemands(instantiator,that,functionName,args,{passArgs:true});return fluid.invokeGlobalFunction(invokeSpec.funcName,invokeSpec.args,environment)})};fluid.invoke=fluid.wrapActivity(fluid.invoke,['    while invoking function with name "',"arguments.0",'" from component',"arguments.2"]);fluid.makeFreeInvoker=function(functionName,environment){var demandSpec=fluid.determineDemands(fluid.freeInstantiator,null,functionName);return function(){var invokeSpec=fluid.embodyDemands(fluid.freeInstantiator,null,demandSpec,arguments,{passArgs:true});return fluid.invokeGlobalFunction(invokeSpec.funcName,invokeSpec.args,environment)}};fluid.makeInvoker=function(instantiator,that,demandspec,functionName,environment){demandspec=demandspec||fluid.determineDemands(instantiator,that,functionName);return function(){var args=arguments;return fluid.pushActivity(function(){var invokeSpec=fluid.embodyDemands(instantiator,that,demandspec,args,{passArgs:true});return fluid.invokeGlobalFunction(invokeSpec.funcName,invokeSpec.args,environment)},["    while invoking invoker with name "+functionName+" on component",that])}};fluid.event.dispatchListener=function(instantiator,that,listener,eventName,eventSpec){return function(){var demandspec=fluid.determineDemands(instantiator,that,eventName);if(demandspec.args.length===0&&eventSpec.args){demandspec.args=eventSpec.args}var resolved=fluid.embodyDemands(instantiator,that,demandspec,arguments,{passArgs:true,componentOptions:eventSpec});listener.apply(null,resolved.args)}};fluid.event.resolveEvent=function(that,eventName,eventSpec){return fluid.withInstantiator(that,function(instantiator){if(typeof (eventSpec)==="string"){var firer=fluid.expandOptions(eventSpec,that);if(!firer){fluid.fail("Error in fluid.event.resolveEvent - context path "+eventSpec+" could not be looked up to a valid event firer")}return firer}else{var event=eventSpec.event;var origin;if(!event){fluid.fail("Event specification for event with name "+eventName+" does not include a base event specification")}if(event.charAt(0)==="{"){origin=fluid.expandOptions(event,that)}else{origin=that.events[event]}if(!origin){fluid.fail("Error in event specification - could not resolve base event reference "+event+" to an event firer")}var firer={};fluid.each(["fire","removeListener"],function(method){firer[method]=function(){origin[method].apply(null,arguments)}});firer.addListener=function(listener,namespace,predicate,priority){origin.addListener(fluid.event.dispatchListener(instantiator,that,listener,eventName,eventSpec),namespace,predicate,priority)};return firer}})};fluid.registerNamespace("fluid.expander");fluid.expander.preserveFromExpansion=function(options){var preserve={};var preserveList=fluid.arrayToHash(["mergePolicy","mergeAllOptions","components","invokers","events","listeners","transformOptions"]);fluid.each(options.mergePolicy,function(value,key){if(fluid.mergePolicyIs(value,"noexpand")){preserveList[key]=true}});fluid.each(preserveList,function(xvalue,path){var pen=fluid.model.getPenultimate(options,path);var value=pen.root[pen.last];delete pen.root[pen.last];fluid.set(preserve,path,value)});return{restore:function(target){fluid.each(preserveList,function(xvalue,path){var preserved=fluid.get(preserve,path);if(preserved!==undefined){fluid.set(target,path,preserved)}})}}};fluid.expandOptions=function(args,that,localRecord,outerExpandOptions){if(!args){return args}return fluid.withInstantiator(that,function(instantiator){var expandOptions=makeStackResolverOptions(instantiator,that,localRecord,outerExpandOptions);expandOptions.noCopy=true;var pres;if(!fluid.isArrayable(args)&&!fluid.isPrimitive(args)){pres=fluid.expander.preserveFromExpansion(args)}var expanded=fluid.expander.expandLight(args,expandOptions);if(pres){pres.restore(expanded)}return expanded})};fluid.locateTransformationRecord=function(that){return fluid.withInstantiator(that,function(instantiator){var matches=fluid.locateAllDemands(instantiator,that,["fluid.transformOptions"]);return fluid.find(matches,function(match){return match.uncess===0&&fluid.contains(match.spec.contexts,that.typeName)?match.spec.spec:undefined})})};fluid.hashToArray=function(hash){var togo=[];fluid.each(hash,function(value,key){togo.push(key)});return togo};fluid.localRecordExpected=["type","options","arguments","mergeOptions","mergeAllOptions","createOnEvent","priority"];fluid.checkComponentRecord=function(defaults,localRecord){var expected=fluid.arrayToHash(fluid.localRecordExpected);fluid.each(defaults.argumentMap,function(value,key){expected[key]=true});fluid.each(localRecord,function(value,key){if(!expected[key]){fluid.fail('Probable error in subcomponent record - key "'+key+'" found, where the only legal options are '+fluid.hashToArray(expected).join(", "))}})};fluid.expandComponentOptions=function(defaults,userOptions,that){if(userOptions&&userOptions.localRecord){fluid.checkComponentRecord(defaults,userOptions.localRecord)}defaults=fluid.expandOptions(fluid.copy(defaults),that);var localRecord={};if(userOptions&&userOptions.marker===fluid.EXPAND){var localOptions=fluid.get(userOptions,"localRecord.options");if(localOptions){if(defaults&&defaults.mergePolicy){localOptions.mergePolicy=defaults.mergePolicy}localRecord.options=fluid.expandOptions(localOptions,that)}localRecord.arguments=fluid.get(userOptions,"localRecord.arguments");var toExpand=userOptions.value;userOptions=fluid.expandOptions(toExpand,that,localRecord,{direct:true})}localRecord.directOptions=userOptions;if(!localRecord.options){localRecord.options=userOptions}var mergeOptions=(userOptions&&userOptions.mergeAllOptions)||["{directOptions}"];var togo=fluid.transform(mergeOptions,function(path){return path==="{directOptions}"?localRecord.directOptions:fluid.expandOptions(path,that,localRecord,{direct:true})});var transRec=fluid.locateTransformationRecord(that);if(transRec){togo[0].transformOptions=transRec.options}return[defaults].concat(togo)};fluid.expandComponentOptions=fluid.wrapActivity(fluid.expandComponentOptions,["    while expanding component options ","arguments.1.value"," with record ","arguments.1"," for component ","arguments.2"]);fluid.initDependent=function(that,name,userInstantiator,directArgs){if(!that||that[name]){return }fluid.log('Beginning instantiation of component with name "'+name+'" as child of '+fluid.dumpThat(that));directArgs=directArgs||[];var root=fluid.threadLocal();if(userInstantiator){var existing=root["fluid.instantiator"];if(existing&&existing!==userInstantiator){fluid.fail("Error in initDependent: user instantiator supplied with id "+userInstantiator.id+" which differs from that for currently active instantiation with id "+existing.id)}else{root["fluid.instantiator"]=userInstantiator}}var component=that.options.components[name];fluid.withInstantiator(that,function(instantiator){if(typeof (component)==="string"){that[name]=fluid.expandOptions([component],that)[0]}else{if(component.type){var invokeSpec=fluid.resolveDemands(instantiator,that,[component.type,name],directArgs,{componentRecord:component});instantiator.pushUpcomingInstantiation(that,name);fluid.tryCatch(function(){that[inCreationMarker]=true;var instance=fluid.initSubcomponentImpl(that,{type:invokeSpec.funcName},invokeSpec.args);var path=fluid.composePath(instantiator.idToPath[that.id]||"",name);var existing=instantiator.pathToComponent[path];if(existing&&existing!==instance){instantiator.clearComponent(that,name,existing,null,true)}if(instance&&instance.typeName&&instance.id&&instance!==existing){instantiator.recordKnownComponent(that,instance,name)}that[name]=instance},null,function(){delete that[inCreationMarker];instantiator.pushUpcomingInstantiation()})}else{that[name]=component}}},['    while instantiating dependent component with name "'+name+'" with record ',component," as child of ",that]);fluid.log('Finished instantiation of component with name "'+name+'" as child of '+fluid.dumpThat(that))};fluid.withInstantiator=function(that,func,message){var root=fluid.threadLocal();var instantiator=root["fluid.instantiator"];if(!instantiator){instantiator=root["fluid.instantiator"]=fluid.instantiator()}return fluid.pushActivity(function(){return fluid.tryCatch(function(){if(that){instantiator.recordComponent(that)}instantiator.stack(1);return func(instantiator)},null,function(){var count=instantiator.stack(-1);if(count===0){delete root["fluid.instantiator"]}})},message)};fluid.bindDeferredComponent=function(that,componentName,component,instantiator){var events=fluid.makeArray(component.createOnEvent);fluid.each(events,function(eventName){that.events[eventName].addListener(function(){if(that[componentName]){instantiator.clearComponent(that,componentName)}fluid.initDependent(that,componentName,instantiator)},null,null,component.priority)})};fluid.priorityForComponent=function(component){return component.priority?component.priority:(component.type==="fluid.typeFount"||fluid.hasGrade(fluid.defaults(component.type),"fluid.typeFount"))?"first":undefined};fluid.initDependents=function(that){var options=that.options;var components=options.components||{};var componentSort={};fluid.withInstantiator(that,function(instantiator){fluid.each(components,function(component,name){if(!component.createOnEvent){var priority=fluid.priorityForComponent(component);componentSort[name]={key:name,priority:fluid.event.mapPriority(priority,0)}}else{fluid.bindDeferredComponent(that,name,component,instantiator)}});var componentList=fluid.event.sortListeners(componentSort);fluid.each(componentList,function(entry){fluid.initDependent(that,entry.key)});var invokers=options.invokers||{};for(var name in invokers){var invokerec=invokers[name];var funcName=typeof (invokerec)==="string"?invokerec:null;that[name]=fluid.withInstantiator(that,function(instantiator){fluid.log('Beginning instantiation of invoker with name "'+name+'" as child of '+fluid.dumpThat(that));return fluid.makeInvoker(instantiator,that,funcName?null:invokerec,funcName)},['    while instantiating invoker with name "'+name+'" with record ',invokerec," as child of ",that]);fluid.log('Finished instantiation of invoker with name "'+name+'" as child of '+fluid.dumpThat(that))}})};fluid.staticEnvironment=fluid.typeTag("fluid.staticEnvironment");fluid.staticEnvironment.environmentClass=fluid.typeTag("fluid.browser");fluid.demands("fluid.threadLocal","fluid.browser",{funcName:"fluid.singleThreadLocal"});var singleThreadLocal=fluid.typeTag("fluid.dynamicEnvironment");fluid.singleThreadLocal=function(){return singleThreadLocal};fluid.threadLocal=function(){var demands=fluid.locateDemands(fluid.freeInstantiator,null,["fluid.threadLocal"]);return fluid.invokeGlobalFunction(demands.funcName,arguments)};function applyLocalChange(applier,type,path,value){var change={type:type,path:path,value:value};applier.fireChangeRequest(change)}fluid.withEnvironment=function(envAdd,func,prefix){prefix=prefix||"";var root=fluid.threadLocal();var applier=fluid.makeChangeApplier(root,{thin:true});return fluid.tryCatch(function(){for(var key in envAdd){applyLocalChange(applier,"ADD",fluid.model.composePath(prefix,key),envAdd[key])}$.extend(root,envAdd);return func()},null,function(){for(var key in envAdd){applyLocalChange(applier,"DELETE",fluid.model.composePath(prefix,key))}})};fluid.makeEnvironmentFetcher=function(prefix,directModel){return function(parsed){var env=fluid.get(fluid.threadLocal(),prefix);return fluid.fetchContextReference(parsed,directModel,env)}};fluid.extractEL=function(string,options){if(options.ELstyle==="ALL"){return string}else{if(options.ELstyle.length===1){if(string.charAt(0)===options.ELstyle){return string.substring(1)}}else{if(options.ELstyle==="${}"){var i1=string.indexOf("${");var i2=string.lastIndexOf("}");if(i1===0&&i2!==-1){return string.substring(2,i2)}}}}};fluid.extractELWithContext=function(string,options){var EL=fluid.extractEL(string,options);if(EL&&EL.charAt(0)==="{"){return fluid.parseContextReference(EL,0)}return EL?{path:EL}:EL};fluid.parseContextReference=function(reference,index,delimiter){var endcpos=reference.indexOf("}",index+1);if(endcpos===-1){fluid.fail('Cannot parse context reference "'+reference+'": Malformed context reference without }')}var context=reference.substring(index+1,endcpos);var endpos=delimiter?reference.indexOf(delimiter,endcpos+1):reference.length;var path=reference.substring(endcpos+1,endpos);if(path.charAt(0)==="."){path=path.substring(1)}return{context:context,path:path,endpos:endpos}};fluid.renderContextReference=function(parsed){return"{"+parsed.context+"}"+parsed.path};fluid.fetchContextReference=function(parsed,directModel,env){var base=parsed.context?env[parsed.context]:directModel;if(!base){return base}return fluid.get(base,parsed.path)};fluid.resolveContextValue=function(string,options){if(options.bareContextRefs&&string.charAt(0)==="{"){var parsed=fluid.parseContextReference(string,0);return options.fetcher(parsed)}else{if(options.ELstyle&&options.ELstyle!=="${}"){var parsed=fluid.extractELWithContext(string,options);if(parsed){return options.fetcher(parsed)}}}while(typeof (string)==="string"){var i1=string.indexOf("${");var i2=string.indexOf("}",i1+2);if(i1!==-1&&i2!==-1){var parsed;if(string.charAt(i1+2)==="{"){parsed=fluid.parseContextReference(string,i1+2,"}");i2=parsed.endpos}else{parsed={path:string.substring(i1+2,i2)}}var subs=options.fetcher(parsed);var all=(i1===0&&i2===string.length-1);if(subs===undefined||subs===null){return subs}string=all?subs:string.substring(0,i1)+subs+string.substring(i2+1)}else{break}}return string};fluid.resolveContextValue=fluid.wrapActivity(fluid.resolveContextValue,["    while resolving context value ","arguments.0"]);function resolveEnvironmentImpl(obj,options){fluid.guardCircularity(options.seenIds,obj,"expansion",' - please ensure options are not circularly connected, or protect from expansion using the "noexpand" policy or expander');function recurse(arg){return resolveEnvironmentImpl(arg,options)}if(typeof (obj)==="string"&&!options.noValue){return fluid.resolveContextValue(obj,options)}else{if(fluid.isPrimitive(obj)||obj.nodeType!==undefined||obj.jquery){return obj}else{if(options.filter){return options.filter(obj,recurse,options)}else{return(options.noCopy?fluid.each:fluid.transform)(obj,function(value,key){return resolveEnvironmentImpl(value,options)})}}}}fluid.defaults("fluid.resolveEnvironment",{ELstyle:"${}",seenIds:{},bareContextRefs:true});fluid.resolveEnvironment=function(obj,options){options=$.extend(true,{},fluid.rawDefaults("fluid.resolveEnvironment"),options);return resolveEnvironmentImpl(obj,options)};fluid.expander.deferredCall=function(target,source,recurse){var expander=source.expander;var args=(!expander.args||fluid.isArrayable(expander.args))?expander.args:$.makeArray(expander.args);args=recurse(args);return fluid.invokeGlobalFunction(expander.func,args)};fluid.deferredCall=fluid.expander.deferredCall;fluid.deferredInvokeCall=function(target,source,recurse){var expander=source.expander;var args=(!expander.args||fluid.isArrayable(expander.args))?expander.args:$.makeArray(expander.args);args=recurse(args);return fluid.invoke(expander.func,args)};fluid.expander.noexpand=function(target,source){return $.extend(target,source.expander.tree)};fluid.noexpand=fluid.expander.noexpand;fluid.expander.lightFilter=function(obj,recurse,options){var togo;if(fluid.isArrayable(obj)){togo=options.noCopy?obj:[];fluid.each(obj,function(value,key){togo[key]=recurse(value)})}else{togo=options.noCopy?obj:{};for(var key in obj){var value=obj[key];var expander;if(key==="expander"&&!(options.expandOnly&&options.expandOnly[value.type])){expander=fluid.getGlobalValue(value.type);if(expander){return expander.call(null,togo,obj,recurse,options)}}if(key!=="expander"||!expander){togo[key]=recurse(value)}}}return options.noCopy?obj:togo};fluid.expander.expandLight=function(source,expandOptions){var options=$.extend({},expandOptions);options.filter=fluid.expander.lightFilter;return fluid.resolveEnvironment(source,options)}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/core/js/FluidRequests.js b/docs/jscripts/infusion/framework/core/js/FluidRequests.js
new file mode 100644 (file)
index 0000000..e422ca0
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){var resourceCache={};var pendingClass={};fluid.fetchResources=function(resourceSpecs,callback,options){var that=fluid.initLittleComponent("fluid.fetchResources",options);that.resourceSpecs=resourceSpecs;that.callback=callback;that.operate=function(){fluid.fetchResources.fetchResourcesImpl(that)};fluid.each(resourceSpecs,function(resourceSpec){resourceSpec.recurseFirer=fluid.event.getEventFirer();resourceSpec.recurseFirer.addListener(that.operate);if(resourceSpec.url&&!resourceSpec.href){resourceSpec.href=resourceSpec.url}});if(that.options.amalgamateClasses){fluid.fetchResources.amalgamateClasses(resourceSpecs,that.options.amalgamateClasses,that.operate)}that.operate();return that};fluid.fetchResources.amalgamateClasses=function(specs,classes,operator){fluid.each(classes,function(clazz){var pending=pendingClass[clazz];fluid.each(pending,function(pendingrec,canon){specs[clazz+"!"+canon]=pendingrec;pendingrec.recurseFirer.addListener(operator)})})};fluid.fetchResources.timeSuccessCallback=function(resourceSpec){if(resourceSpec.timeSuccess&&resourceSpec.options&&resourceSpec.options.success){var success=resourceSpec.options.success;resourceSpec.options.success=function(){var startTime=new Date();var ret=success.apply(null,arguments);fluid.log("External callback for URL "+resourceSpec.href+" completed - callback time: "+(new Date().getTime()-startTime.getTime())+"ms");return ret}}};function canonUrl(url){return url}fluid.fetchResources.clearResourceCache=function(url){if(url){delete resourceCache[canonUrl(url)]}else{fluid.clear(resourceCache)}};fluid.fetchResources.handleCachedRequest=function(resourceSpec,response){var canon=canonUrl(resourceSpec.href);var cached=resourceCache[canon];if(cached.$$firer$$){fluid.log("Handling request for "+canon+" from cache");var fetchClass=resourceSpec.fetchClass;if(fetchClass&&pendingClass[fetchClass]){fluid.log("Clearing pendingClass entry for class "+fetchClass);delete pendingClass[fetchClass][canon]}resourceCache[canon]=response;cached.fire(response)}};fluid.fetchResources.completeRequest=function(thisSpec,recurseCall){thisSpec.queued=false;thisSpec.completeTime=new Date();fluid.log("Request to URL "+thisSpec.href+" completed - total elapsed time: "+(thisSpec.completeTime.getTime()-thisSpec.initTime.getTime())+"ms");thisSpec.recurseFirer.fire()};fluid.fetchResources.makeResourceCallback=function(thisSpec){return{success:function(response){thisSpec.resourceText=response;thisSpec.resourceKey=thisSpec.href;if(thisSpec.forceCache){fluid.fetchResources.handleCachedRequest(thisSpec,response)}fluid.fetchResources.completeRequest(thisSpec)},error:function(response,textStatus,errorThrown){thisSpec.fetchError={status:response.status,textStatus:response.textStatus,errorThrown:errorThrown};fluid.fetchResources.completeRequest(thisSpec)}}};fluid.fetchResources.issueCachedRequest=function(resourceSpec,options){var canon=canonUrl(resourceSpec.href);var cached=resourceCache[canon];if(!cached){fluid.log("First request for cached resource with url "+canon);cached=fluid.event.getEventFirer();cached.$$firer$$=true;resourceCache[canon]=cached;var fetchClass=resourceSpec.fetchClass;if(fetchClass){if(!pendingClass[fetchClass]){pendingClass[fetchClass]={}}pendingClass[fetchClass][canon]=resourceSpec}options.cache=false;$.ajax(options)}else{if(!cached.$$firer$$){options.success(cached)}else{fluid.log("Request for cached resource which is in flight: url "+canon);cached.addListener(function(response){options.success(response)})}}};fluid.fetchResources.composeCallbacks=function(internal,external){return external?function(){try{external.apply(null,arguments)}catch(e){fluid.log("Exception applying external fetchResources callback: "+e)}internal.apply(null,arguments)}:internal};fluid.fetchResources.composePolicy=function(target,source,key){return fluid.fetchResources.composeCallbacks(target,source)};fluid.defaults("fluid.fetchResources.issueRequest",{mergePolicy:{success:fluid.fetchResources.composePolicy,error:fluid.fetchResources.composePolicy,url:"reverse"}});fluid.fetchResources.issueRequest=function(resourceSpec,key){var thisCallback=fluid.fetchResources.makeResourceCallback(resourceSpec);var options={url:resourceSpec.href,success:thisCallback.success,error:thisCallback.error,dataType:"text"};fluid.fetchResources.timeSuccessCallback(resourceSpec);fluid.merge(fluid.defaults("fluid.fetchResources.issueRequest").mergePolicy,options,resourceSpec.options);resourceSpec.queued=true;resourceSpec.initTime=new Date();fluid.log("Request with key "+key+" queued for "+resourceSpec.href);if(resourceSpec.forceCache){fluid.fetchResources.issueCachedRequest(resourceSpec,options)}else{$.ajax(options)}};fluid.fetchResources.fetchResourcesImpl=function(that){var complete=true;var allSync=true;var resourceSpecs=that.resourceSpecs;for(var key in resourceSpecs){var resourceSpec=resourceSpecs[key];if(!resourceSpec.options||resourceSpec.options.async){allSync=false}if(resourceSpec.href&&!resourceSpec.completeTime){if(!resourceSpec.queued){fluid.fetchResources.issueRequest(resourceSpec,key)}if(resourceSpec.queued){complete=false}}else{if(resourceSpec.nodeId&&!resourceSpec.resourceText){var node=document.getElementById(resourceSpec.nodeId);resourceSpec.resourceText=fluid.dom.getElementText(node);resourceSpec.resourceKey=resourceSpec.nodeId}}}if(complete&&that.callback&&!that.callbackCalled){that.callbackCalled=true;if($.browser.mozilla&&!allSync){setTimeout(function(){that.callback(resourceSpecs)},1)}else{that.callback(resourceSpecs)}}};fluid.fetchResources.primeCacheFromResources=function(componentName){var resources=fluid.defaults(componentName).resources;var that={typeName:"fluid.fetchResources.primeCacheFromResources"};var expanded=(fluid.expandOptions?fluid.expandOptions:fluid.identity)(fluid.copy(resources),that);fluid.fetchResources(expanded)};fluid.registerNamespace("fluid.expander");fluid.expander.makeDefaultFetchOptions=function(successdisposer,failid,options){return $.extend(true,{dataType:"text"},options,{success:function(response,environmentdisposer){var json=JSON.parse(response);environmentdisposer(successdisposer(json))},error:function(response,textStatus){fluid.log("Error fetching "+failid+": "+textStatus)}})};fluid.expander.makeFetchExpander=function(options){return{expander:{type:"fluid.expander.deferredFetcher",href:options.url,options:fluid.expander.makeDefaultFetchOptions(options.disposer,options.url,options.options),resourceSpecCollector:"{resourceSpecCollector}",fetchKey:options.fetchKey}}};fluid.expander.deferredFetcher=function(target,source,recurse,expandOptions){var expander=source.expander;var spec=fluid.copy(expander);var collector=fluid.resolveEnvironment(expander.resourceSpecCollector,expandOptions);delete spec.type;delete spec.resourceSpecCollector;delete spec.fetchKey;var environmentdisposer=function(disposed){$.extend(target,disposed)};spec.options.success=function(response){expander.options.success(response,environmentdisposer)};var key=expander.fetchKey||fluid.allocateGuid();collector[key]=spec;return target}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/core/js/FluidView.js b/docs/jscripts/infusion/framework/core/js/FluidView.js
new file mode 100644 (file)
index 0000000..9533719
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.defaults("fluid.ariaLabeller",{labelAttribute:"aria-label",liveRegionMarkup:'<div class="liveRegion fl-offScreen-hidden" aria-live="polite"></div>',liveRegionId:"fluid-ariaLabeller-liveRegion",invokers:{generateLiveElement:{funcName:"fluid.ariaLabeller.generateLiveElement",args:["{ariaLabeller}"]}}});fluid.ariaLabeller=function(element,options){var that=fluid.initView("fluid.ariaLabeller",element,options);fluid.initDependents(that);that.update=function(newOptions){newOptions=newOptions||that.options;that.container.attr(that.options.labelAttribute,newOptions.text);if(newOptions.dynamicLabel){var live=fluid.jById(that.options.liveRegionId);if(live.length===0){live=that.generateLiveElement()}live.text(newOptions.text)}};that.update();return that};fluid.ariaLabeller.generateLiveElement=function(that){var liveEl=$(that.options.liveRegionMarkup);liveEl.prop("id",that.options.liveRegionId);$("body").append(liveEl);return liveEl};var LABEL_KEY="aria-labelling";fluid.getAriaLabeller=function(element){element=$(element);var that=fluid.getScopedData(element,LABEL_KEY);return that};fluid.updateAriaLabel=function(element,text,options){options=$.extend({},options||{},{text:text});var that=fluid.getAriaLabeller(element);if(!that){that=fluid.ariaLabeller(element,options);fluid.setScopedData(element,LABEL_KEY,that)}else{that.update(options)}return that};fluid.deadMansBlur=function(control,options){var that=fluid.initLittleComponent("fluid.deadMansBlur",options);that.blurPending=false;that.lastCancel=0;$(control).bind("focusout",function(event){fluid.log("Starting blur timer for element "+fluid.dumpEl(event.target));var now=new Date().getTime();fluid.log("back delay: "+(now-that.lastCancel));if(now-that.lastCancel>that.options.backDelay){that.blurPending=true}setTimeout(function(){if(that.blurPending){that.options.handler(control)}},that.options.delay)});that.canceller=function(event){fluid.log("Cancellation through "+event.type+" on "+fluid.dumpEl(event.target));that.lastCancel=new Date().getTime();that.blurPending=false};fluid.each(that.options.exclusions,function(exclusion){exclusion=$(exclusion);fluid.each(exclusion,function(excludeEl){$(excludeEl).bind("focusin",that.canceller).bind("fluid-focus",that.canceller).click(that.canceller).mousedown(that.canceller)})});return that};fluid.defaults("fluid.deadMansBlur",{delay:150,backDelay:100})})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/core/js/JavaProperties.js b/docs/jscripts/infusion/framework/core/js/JavaProperties.js
new file mode 100644 (file)
index 0000000..7fc0bb0
--- /dev/null
@@ -0,0 +1 @@
+fluid_1_4=fluid_1_4||{};(function($,fluid){var unUnicode=/(\\u[\dabcdef]{4}|\\x[\dabcdef]{2})/g;fluid.unescapeProperties=function(string){string=string.replace(unUnicode,function(match){var code=match.substring(2);var parsed=parseInt(code,16);return String.fromCharCode(parsed)});var pos=0;while(true){var backpos=string.indexOf("\\",pos);if(backpos===-1){break}if(backpos===string.length-1){return[string.substring(0,string.length-1),true]}var replace=string.charAt(backpos+1);if(replace==="n"){replace="\n"}if(replace==="r"){replace="\r"}if(replace==="t"){replace="\t"}string=string.substring(0,backpos)+replace+string.substring(backpos+2);pos=backpos+1}return[string,false]};var breakPos=/[^\\][\s:=]/;fluid.parseJavaProperties=function(text){var togo={};text=text.replace(/\r\n/g,"\n");text=text.replace(/\r/g,"\n");lines=text.split("\n");var contin,key,valueComp,valueRaw,valueEsc;for(var i=0;i<lines.length;++i){var line=$.trim(lines[i]);if(!line||line.charAt(0)==="#"||line.charAt(0)==="!"){continue}if(!contin){valueComp="";var breakpos=line.search(breakPos);if(breakpos===-1){key=line;valueRaw=""}else{key=$.trim(line.substring(0,breakpos+1));valueRaw=$.trim(line.substring(breakpos+2));if(valueRaw.charAt(0)===":"||valueRaw.charAt(0)==="="){valueRaw=$.trim(valueRaw.substring(1))}}key=fluid.unescapeProperties(key)[0];valueEsc=fluid.unescapeProperties(valueRaw)}else{valueEsc=fluid.unescapeProperties(line)}contin=valueEsc[1];if(!valueEsc[1]){togo[key]=valueComp+valueEsc[0]}else{valueComp+=valueEsc[0]}}return togo};fluid.formatMessage=function(messageString,args){if(!args){return messageString}if(typeof (args)==="string"){args=[args]}for(var i=0;i<args.length;++i){messageString=messageString.replace("{"+i+"}",args[i])}return messageString}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/core/js/ModelTransformations.js b/docs/jscripts/infusion/framework/core/js/ModelTransformations.js
new file mode 100644 (file)
index 0000000..f2c52d9
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};var fluid=fluid||fluid_1_4;(function($){fluid.model=fluid.model||{};fluid.model.transform=fluid.model.transform||{};fluid.model.transform.value=function(model,expandSpec,recurse){var val;if(expandSpec.path){val=fluid.get(model,expandSpec.path);if(typeof (val)!=="undefined"){return val}}return typeof (expandSpec.value)==="object"?recurse(model,expandSpec.value):expandSpec.value};fluid.model.transform.arrayValue=function(model,expandSpec,recurse){return fluid.makeArray(fluid.model.transform.value(model,expandSpec))};fluid.model.transform.count=function(model,expandSpec,recurse){var value=fluid.get(model,expandSpec.path);return fluid.makeArray(value).length};fluid.model.transform.firstValue=function(model,expandSpec,recurse){var result;for(var i=0;i<expandSpec.values.length;i++){var value=expandSpec.values[i];if(typeof (value)==="string"){value=fixupExpandSpec(value)}result=fluid.model.transform.value(model,value.expander,recurse);if(typeof (result)!=="undefined"){break}}return result};var getOrRecurse=function(model,value,recurse){return typeof (value)==="string"?fluid.get(model,value):recurse(model,value,recurse)};fluid.model.transform.merge=function(model,expandSpec,recurse){var left=getOrRecurse(model,expandSpec.left,recurse);var right=getOrRecurse(model,expandSpec.right,recurse);if(typeof (left)!=="object"||typeof (right)!=="object"){return left}return fluid.merge(expandSpec.policy?expandSpec.policy:null,{},left,right)};var fixupExpandSpec=function(expandSpec){return{expander:{type:"fluid.model.transform.value",path:expandSpec}}};var expandRule=function(model,targetPath,rule){var expanded={};for(var key in rule){var value=rule[key];if(key==="expander"){var expanderFn=fluid.getGlobalValue(value.type);if(expanderFn){expanded=expanderFn.call(null,model,value,fluid.model.transformWithRules)}}else{expanded[key]=fluid.model.transformWithRules(model,value)}}return expanded};fluid.model.transformWithRules=function(model,rules){var transformed;rules=fluid.makeArray(rules);fluid.each(rules,function(rulesObj){transformed={};for(var targetPath in rulesObj){var rule=rulesObj[targetPath];if(typeof (rule)==="string"){rule=fixupExpandSpec(rule)}var expanded=expandRule(model,targetPath,rule);if(typeof (expanded)!=="undefined"){fluid.set(transformed,targetPath,expanded)}}model=transformed});return transformed}})(jQuery,fluid_1_4);
\ No newline at end of file
index 105f33c..dc47915 100644 (file)
@@ -1 +1 @@
-var fluid_1_1=fluid_1_1||{};var fluid=fluid||fluid_1_1;(function($,fluid){fluid.thatistBridge=function(name,peer){var togo=function(funcname){var segs=funcname.split(".");var move=peer;for(var i=0;i<segs.length;++i){move=move[segs[i]]}var args=[this];if(arguments.length===2){args=args.concat($.makeArray(arguments[1]))}var ret=move.apply(null,args);this.that=function(){return ret};var type=typeof (ret);return !ret||type==="string"||type==="number"||type==="boolean"||ret&&ret.length!==undefined?ret:this};$.fn[name]=togo;return togo};fluid.thatistBridge("fluid",fluid);fluid.thatistBridge("fluid_1_1",fluid_1_1);var NAMESPACE_KEY="fluid-keyboard-a11y";var getData=function(target,key){var data=$(target).data(NAMESPACE_KEY);return data?data[key]:undefined};var setData=function(target,key,value){$(target).each(function(){var data=$.data(this,NAMESPACE_KEY)||{};data[key]=value;$.data(this,NAMESPACE_KEY,data)})};var lastFocusedElement="disabled";if($.event.special.focusin){lastFocusedElement=null;$(document).bind("focusin",function(event){lastFocusedElement=event.target})}fluid.getLastFocusedElement=function(){if(lastFocusedElement==="disabled"){fluid.fail("Focus manager not enabled - please include jquery.delegate.js or equivalent for support of 'focusin' event")}return lastFocusedElement};var normalizeTabindexName=function(){return $.browser.msie?"tabIndex":"tabindex"};var canHaveDefaultTabindex=function(elements){if(elements.length<=0){return false}return $(elements[0]).is("a, input, button, select, area, textarea, object")};var getValue=function(elements){if(elements.length<=0){return undefined}if(!fluid.tabindex.hasAttr(elements)){return canHaveDefaultTabindex(elements)?Number(0):undefined}var value=elements.attr(normalizeTabindexName());return Number(value)};var setValue=function(elements,toIndex){return elements.each(function(i,item){$(item).attr(normalizeTabindexName(),toIndex)})};fluid.tabindex=function(target,toIndex){target=$(target);if(toIndex!==null&&toIndex!==undefined){return setValue(target,toIndex)}else{return getValue(target)}};fluid.tabindex.remove=function(target){target=$(target);return target.each(function(i,item){$(item).removeAttr(normalizeTabindexName())})};fluid.tabindex.hasAttr=function(target){target=$(target);if(target.length<=0){return false}var togo=target.map(function(){var attributeNode=this.getAttributeNode(normalizeTabindexName());return attributeNode?attributeNode.specified:false});return togo.length===1?togo[0]:togo};fluid.tabindex.has=function(target){target=$(target);return fluid.tabindex.hasAttr(target)||canHaveDefaultTabindex(target)};var ENABLEMENT_KEY="enablement";fluid.enabled=function(target,state){target=$(target);if(state===undefined){return getData(target,ENABLEMENT_KEY)!==false}else{$("*",target).each(function(){if(getData(this,ENABLEMENT_KEY)!==undefined){setData(this,ENABLEMENT_KEY,state)}else{if(/select|textarea|input/i.test(this.nodeName)){$(this).attr("disabled",!state)}}});setData(target,ENABLEMENT_KEY,state)}};fluid.a11y=$.a11y||{};fluid.a11y.orientation={HORIZONTAL:0,VERTICAL:1,BOTH:2};var UP_DOWN_KEYMAP={next:$.ui.keyCode.DOWN,previous:$.ui.keyCode.UP};var LEFT_RIGHT_KEYMAP={next:$.ui.keyCode.RIGHT,previous:$.ui.keyCode.LEFT};var unwrap=function(element){return element.jquery?element[0]:element};var makeElementsTabFocussable=function(elements){elements.each(function(idx,item){item=$(item);if(!item.fluid("tabindex.has")||item.fluid("tabindex")<0){item.fluid("tabindex",0)}})};fluid.tabbable=function(target){target=$(target);makeElementsTabFocussable(target)};var CONTEXT_KEY="selectionContext";var NO_SELECTION=-32768;var cleanUpWhenLeavingContainer=function(selectionContext){if(selectionContext.options.onLeaveContainer){selectionContext.options.onLeaveContainer(selectionContext.selectables[selectionContext.activeItemIndex])}else{if(selectionContext.options.onUnselect){selectionContext.options.onUnselect(selectionContext.selectables[selectionContext.activeItemIndex])}}if(!selectionContext.options.rememberSelectionState){selectionContext.activeItemIndex=NO_SELECTION}};var drawSelection=function(elementToSelect,handler){if(handler){handler(elementToSelect)}};var eraseSelection=function(selectedElement,handler){if(handler&&selectedElement){handler(selectedElement)}};var unselectElement=function(selectedElement,selectionContext){eraseSelection(selectedElement,selectionContext.options.onUnselect)};var selectElement=function(elementToSelect,selectionContext){unselectElement(selectionContext.selectedElement(),selectionContext);elementToSelect=unwrap(elementToSelect);var newIndex=selectionContext.selectables.index(elementToSelect);if(newIndex===-1){return }selectionContext.activeItemIndex=newIndex;drawSelection(elementToSelect,selectionContext.options.onSelect)};var selectableFocusHandler=function(selectionContext){return function(evt){selectElement(evt.target,selectionContext);return evt.stopPropagation()}};var selectableBlurHandler=function(selectionContext){return function(evt){unselectElement(evt.target,selectionContext);return evt.stopPropagation()}};var reifyIndex=function(sc_that){var elements=sc_that.selectables;if(sc_that.activeItemIndex>=elements.length){sc_that.activeItemIndex=0}if(sc_that.activeItemIndex<0&&sc_that.activeItemIndex!==NO_SELECTION){sc_that.activeItemIndex=elements.length-1}if(sc_that.activeItemIndex>=0){$(elements[sc_that.activeItemIndex]).focus()}};var prepareShift=function(selectionContext){unselectElement(selectionContext.selectedElement(),selectionContext);if(selectionContext.activeItemIndex===NO_SELECTION){selectionContext.activeItemIndex=-1}};var focusNextElement=function(selectionContext){prepareShift(selectionContext);++selectionContext.activeItemIndex;reifyIndex(selectionContext)};var focusPreviousElement=function(selectionContext){prepareShift(selectionContext);--selectionContext.activeItemIndex;reifyIndex(selectionContext)};var arrowKeyHandler=function(selectionContext,keyMap,userHandlers){return function(evt){if(evt.which===keyMap.next){focusNextElement(selectionContext);evt.preventDefault()}else{if(evt.which===keyMap.previous){focusPreviousElement(selectionContext);evt.preventDefault()}}}};var getKeyMapForDirection=function(direction){var keyMap;if(direction===fluid.a11y.orientation.HORIZONTAL){keyMap=LEFT_RIGHT_KEYMAP}else{if(direction===fluid.a11y.orientation.VERTICAL){keyMap=UP_DOWN_KEYMAP}}return keyMap};var tabKeyHandler=function(selectionContext){return function(evt){if(evt.which!==$.ui.keyCode.TAB){return }cleanUpWhenLeavingContainer(selectionContext);if(evt.shiftKey){selectionContext.focusIsLeavingContainer=true}}};var containerFocusHandler=function(selectionContext){return function(evt){var shouldOrig=selectionContext.options.autoSelectFirstItem;var shouldSelect=typeof (shouldOrig)==="function"?shouldOrig():shouldOrig;if(selectionContext.focusIsLeavingContainer){shouldSelect=false}if(shouldSelect&&evt.target===selectionContext.container.get(0)){if(selectionContext.activeItemIndex===NO_SELECTION){selectionContext.activeItemIndex=0}$(selectionContext.selectables[selectionContext.activeItemIndex]).focus()}return evt.stopPropagation()}};var containerBlurHandler=function(selectionContext){return function(evt){selectionContext.focusIsLeavingContainer=false;return evt.stopPropagation()}};var makeElementsSelectable=function(container,defaults,userOptions){var options=$.extend(true,{},defaults,userOptions);var keyMap=getKeyMapForDirection(options.direction);var selectableElements=options.selectableElements?options.selectableElements:container.find(options.selectableSelector);var that={container:container,activeItemIndex:NO_SELECTION,selectables:selectableElements,focusIsLeavingContainer:false,options:options};that.selectablesUpdated=function(focusedItem){if(typeof (that.options.selectablesTabindex)==="number"){that.selectables.fluid("tabindex",that.options.selectablesTabindex)}that.selectables.unbind("focus."+NAMESPACE_KEY);that.selectables.unbind("blur."+NAMESPACE_KEY);that.selectables.bind("focus."+NAMESPACE_KEY,selectableFocusHandler(that));that.selectables.bind("blur."+NAMESPACE_KEY,selectableBlurHandler(that));if(focusedItem){selectElement(focusedItem,that)}else{reifyIndex(that)}};that.refresh=function(){if(!that.options.selectableSelector){throw ("Cannot refresh selectable context which was not initialised by a selector")}that.selectables=container.find(options.selectableSelector);that.selectablesUpdated()};that.selectedElement=function(){return that.activeItemIndex<0?null:that.selectables[that.activeItemIndex]};if(keyMap){container.keydown(arrowKeyHandler(that,keyMap))}container.keydown(tabKeyHandler(that));container.focus(containerFocusHandler(that));container.blur(containerBlurHandler(that));that.selectablesUpdated();return that};fluid.selectable=function(target,options){target=$(target);var that=makeElementsSelectable(target,fluid.selectable.defaults,options);setData(target,CONTEXT_KEY,that);return that};fluid.selectable.select=function(target,toSelect){$(toSelect).focus()};fluid.selectable.selectNext=function(target){target=$(target);focusNextElement(getData(target,CONTEXT_KEY))};fluid.selectable.selectPrevious=function(target){target=$(target);focusPreviousElement(getData(target,CONTEXT_KEY))};fluid.selectable.currentSelection=function(target){target=$(target);var that=getData(target,CONTEXT_KEY);return $(that.selectedElement())};fluid.selectable.defaults={direction:fluid.a11y.orientation.VERTICAL,selectablesTabindex:-1,autoSelectFirstItem:true,rememberSelectionState:true,selectableSelector:".selectable",selectableElements:null,onSelect:null,onUnselect:null,onLeaveContainer:null};var checkForModifier=function(binding,evt){if(!binding.modifier){return true}var modifierKey=binding.modifier;var isCtrlKeyPresent=modifierKey&&evt.ctrlKey;var isAltKeyPresent=modifierKey&&evt.altKey;var isShiftKeyPresent=modifierKey&&evt.shiftKey;return isCtrlKeyPresent||isAltKeyPresent||isShiftKeyPresent};var makeActivationHandler=function(binding){return function(evt){var target=evt.target;if(!fluid.enabled(evt.target)){return }var code=evt.which?evt.which:evt.keyCode;if(code===binding.key&&binding.activateHandler&&checkForModifier(binding,evt)){var event=$.Event("fluid-activate");$(evt.target).trigger(event,[binding.activateHandler]);if(event.isDefaultPrevented()){evt.preventDefault()}}}};var makeElementsActivatable=function(elements,onActivateHandler,defaultKeys,options){var bindings=[];$(defaultKeys).each(function(index,key){bindings.push({modifier:null,key:key,activateHandler:onActivateHandler})});if(options&&options.additionalBindings){bindings=bindings.concat(options.additionalBindings)}setData(elements,ENABLEMENT_KEY,true);for(var i=0;i<bindings.length;++i){var binding=bindings[i];elements.keydown(makeActivationHandler(binding))}elements.bind("fluid-activate",function(evt,handler){handler=handler||onActivateHandler;return handler?handler(evt):null})};fluid.activatable=function(target,fn,options){target=$(target);makeElementsActivatable(target,fn,fluid.activatable.defaults.keys,options)};fluid.activate=function(target){$(target).trigger("fluid-activate")};fluid.activatable.defaults={keys:[$.ui.keyCode.ENTER,$.ui.keyCode.SPACE]}})(jQuery,fluid_1_1);
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};var fluid=fluid||fluid_1_4;(function($,fluid){fluid.thatistBridge=function(name,peer){var togo=function(funcname){var segs=funcname.split(".");var move=peer;for(var i=0;i<segs.length;++i){move=move[segs[i]]}var args=[this];if(arguments.length===2){args=args.concat($.makeArray(arguments[1]))}var ret=move.apply(null,args);this.that=function(){return ret};var type=typeof (ret);return !ret||type==="string"||type==="number"||type==="boolean"||ret&&ret.length!==undefined?ret:this};$.fn[name]=togo;return togo};fluid.thatistBridge("fluid",fluid);fluid.thatistBridge("fluid_1_4",fluid_1_4);var normalizeTabindexName=function(){return $.browser.msie?"tabIndex":"tabindex"};var canHaveDefaultTabindex=function(elements){if(elements.length<=0){return false}return $(elements[0]).is("a, input, button, select, area, textarea, object")};var getValue=function(elements){if(elements.length<=0){return undefined}if(!fluid.tabindex.hasAttr(elements)){return canHaveDefaultTabindex(elements)?Number(0):undefined}var value=elements.attr(normalizeTabindexName());return Number(value)};var setValue=function(elements,toIndex){return elements.each(function(i,item){$(item).attr(normalizeTabindexName(),toIndex)})};fluid.tabindex=function(target,toIndex){target=$(target);if(toIndex!==null&&toIndex!==undefined){return setValue(target,toIndex)}else{return getValue(target)}};fluid.tabindex.remove=function(target){target=$(target);return target.each(function(i,item){$(item).removeAttr(normalizeTabindexName())})};fluid.tabindex.hasAttr=function(target){target=$(target);if(target.length<=0){return false}var togo=target.map(function(){var attributeNode=this.getAttributeNode(normalizeTabindexName());return attributeNode?attributeNode.specified:false});return togo.length===1?togo[0]:togo};fluid.tabindex.has=function(target){target=$(target);return fluid.tabindex.hasAttr(target)||canHaveDefaultTabindex(target)};fluid.a11y=$.a11y||{};fluid.a11y.orientation={HORIZONTAL:0,VERTICAL:1,BOTH:2};var UP_DOWN_KEYMAP={next:$.ui.keyCode.DOWN,previous:$.ui.keyCode.UP};var LEFT_RIGHT_KEYMAP={next:$.ui.keyCode.RIGHT,previous:$.ui.keyCode.LEFT};var unwrap=function(element){return element.jquery?element[0]:element};var makeElementsTabFocussable=function(elements){elements.each(function(idx,item){item=$(item);if(!item.fluid("tabindex.has")||item.fluid("tabindex")<0){item.fluid("tabindex",0)}})};fluid.tabbable=function(target){target=$(target);makeElementsTabFocussable(target)};var CONTEXT_KEY="selectionContext";var NO_SELECTION=-32768;var cleanUpWhenLeavingContainer=function(selectionContext){if(selectionContext.activeItemIndex!==NO_SELECTION){if(selectionContext.options.onLeaveContainer){selectionContext.options.onLeaveContainer(selectionContext.selectables[selectionContext.activeItemIndex])}else{if(selectionContext.options.onUnselect){selectionContext.options.onUnselect(selectionContext.selectables[selectionContext.activeItemIndex])}}}if(!selectionContext.options.rememberSelectionState){selectionContext.activeItemIndex=NO_SELECTION}};var drawSelection=function(elementToSelect,handler){if(handler){handler(elementToSelect)}};var eraseSelection=function(selectedElement,handler){if(handler&&selectedElement){handler(selectedElement)}};var unselectElement=function(selectedElement,selectionContext){eraseSelection(selectedElement,selectionContext.options.onUnselect)};var selectElement=function(elementToSelect,selectionContext){unselectElement(selectionContext.selectedElement(),selectionContext);elementToSelect=unwrap(elementToSelect);var newIndex=selectionContext.selectables.index(elementToSelect);if(newIndex===-1){return }selectionContext.activeItemIndex=newIndex;drawSelection(elementToSelect,selectionContext.options.onSelect)};var selectableFocusHandler=function(selectionContext){return function(evt){$(evt.target).fluid("tabindex",0);selectElement(evt.target,selectionContext);return evt.stopPropagation()}};var selectableBlurHandler=function(selectionContext){return function(evt){$(evt.target).fluid("tabindex",selectionContext.options.selectablesTabindex);unselectElement(evt.target,selectionContext);return evt.stopPropagation()}};var reifyIndex=function(sc_that){var elements=sc_that.selectables;if(sc_that.activeItemIndex>=elements.length){sc_that.activeItemIndex=0}if(sc_that.activeItemIndex<0&&sc_that.activeItemIndex!==NO_SELECTION){sc_that.activeItemIndex=elements.length-1}if(sc_that.activeItemIndex>=0){fluid.focus(elements[sc_that.activeItemIndex])}};var prepareShift=function(selectionContext){var selElm=selectionContext.selectedElement();if(selElm){fluid.blur(selElm)}unselectElement(selectionContext.selectedElement(),selectionContext);if(selectionContext.activeItemIndex===NO_SELECTION){selectionContext.activeItemIndex=-1}};var focusNextElement=function(selectionContext){prepareShift(selectionContext);++selectionContext.activeItemIndex;reifyIndex(selectionContext)};var focusPreviousElement=function(selectionContext){prepareShift(selectionContext);--selectionContext.activeItemIndex;reifyIndex(selectionContext)};var arrowKeyHandler=function(selectionContext,keyMap,userHandlers){return function(evt){if(evt.which===keyMap.next){focusNextElement(selectionContext);evt.preventDefault()}else{if(evt.which===keyMap.previous){focusPreviousElement(selectionContext);evt.preventDefault()}}}};var getKeyMapForDirection=function(direction){var keyMap;if(direction===fluid.a11y.orientation.HORIZONTAL){keyMap=LEFT_RIGHT_KEYMAP}else{if(direction===fluid.a11y.orientation.VERTICAL){keyMap=UP_DOWN_KEYMAP}}return keyMap};var tabKeyHandler=function(selectionContext){return function(evt){if(evt.which!==$.ui.keyCode.TAB){return }cleanUpWhenLeavingContainer(selectionContext);if(evt.shiftKey){selectionContext.focusIsLeavingContainer=true}}};var containerFocusHandler=function(selectionContext){return function(evt){var shouldOrig=selectionContext.options.autoSelectFirstItem;var shouldSelect=typeof (shouldOrig)==="function"?shouldOrig():shouldOrig;if(selectionContext.focusIsLeavingContainer){shouldSelect=false}if(shouldSelect&&evt.target===selectionContext.container.get(0)){if(selectionContext.activeItemIndex===NO_SELECTION){selectionContext.activeItemIndex=0}fluid.focus(selectionContext.selectables[selectionContext.activeItemIndex])}return evt.stopPropagation()}};var containerBlurHandler=function(selectionContext){return function(evt){selectionContext.focusIsLeavingContainer=false;return evt.stopPropagation()}};var makeElementsSelectable=function(container,defaults,userOptions){var options=$.extend(true,{},defaults,userOptions);var keyMap=getKeyMapForDirection(options.direction);var selectableElements=options.selectableElements?options.selectableElements:container.find(options.selectableSelector);var that={container:container,activeItemIndex:NO_SELECTION,selectables:selectableElements,focusIsLeavingContainer:false,options:options};that.selectablesUpdated=function(focusedItem){if(typeof (that.options.selectablesTabindex)==="number"){that.selectables.fluid("tabindex",that.options.selectablesTabindex)}that.selectables.unbind("focus."+CONTEXT_KEY);that.selectables.unbind("blur."+CONTEXT_KEY);that.selectables.bind("focus."+CONTEXT_KEY,selectableFocusHandler(that));that.selectables.bind("blur."+CONTEXT_KEY,selectableBlurHandler(that));if(keyMap&&that.options.noBubbleListeners){that.selectables.unbind("keydown."+CONTEXT_KEY);that.selectables.bind("keydown."+CONTEXT_KEY,arrowKeyHandler(that,keyMap))}if(focusedItem){selectElement(focusedItem,that)}else{reifyIndex(that)}};that.refresh=function(){if(!that.options.selectableSelector){throw ("Cannot refresh selectable context which was not initialised by a selector")}that.selectables=container.find(options.selectableSelector);that.selectablesUpdated()};that.selectedElement=function(){return that.activeItemIndex<0?null:that.selectables[that.activeItemIndex]};if(keyMap&&!that.options.noBubbleListeners){container.keydown(arrowKeyHandler(that,keyMap))}container.keydown(tabKeyHandler(that));container.focus(containerFocusHandler(that));container.blur(containerBlurHandler(that));that.selectablesUpdated();return that};fluid.selectable=function(target,options){target=$(target);var that=makeElementsSelectable(target,fluid.selectable.defaults,options);fluid.setScopedData(target,CONTEXT_KEY,that);return that};fluid.selectable.select=function(target,toSelect){fluid.focus(toSelect)};fluid.selectable.selectNext=function(target){target=$(target);focusNextElement(fluid.getScopedData(target,CONTEXT_KEY))};fluid.selectable.selectPrevious=function(target){target=$(target);focusPreviousElement(fluid.getScopedData(target,CONTEXT_KEY))};fluid.selectable.currentSelection=function(target){target=$(target);var that=fluid.getScopedData(target,CONTEXT_KEY);return $(that.selectedElement())};fluid.selectable.defaults={direction:fluid.a11y.orientation.VERTICAL,selectablesTabindex:-1,autoSelectFirstItem:true,rememberSelectionState:true,selectableSelector:".selectable",selectableElements:null,onSelect:null,onUnselect:null,onLeaveContainer:null};var checkForModifier=function(binding,evt){if(!binding.modifier){return true}var modifierKey=binding.modifier;var isCtrlKeyPresent=modifierKey&&evt.ctrlKey;var isAltKeyPresent=modifierKey&&evt.altKey;var isShiftKeyPresent=modifierKey&&evt.shiftKey;return isCtrlKeyPresent||isAltKeyPresent||isShiftKeyPresent};var makeActivationHandler=function(binding){return function(evt){var target=evt.target;if(!fluid.enabled(evt.target)){return }var code=evt.which?evt.which:evt.keyCode;if(code===binding.key&&binding.activateHandler&&checkForModifier(binding,evt)){var event=$.Event("fluid-activate");$(evt.target).trigger(event,[binding.activateHandler]);if(event.isDefaultPrevented()){evt.preventDefault()}}}};var makeElementsActivatable=function(elements,onActivateHandler,defaultKeys,options){var bindings=[];$(defaultKeys).each(function(index,key){bindings.push({modifier:null,key:key,activateHandler:onActivateHandler})});if(options&&options.additionalBindings){bindings=bindings.concat(options.additionalBindings)}fluid.initEnablement(elements);for(var i=0;i<bindings.length;++i){var binding=bindings[i];elements.keydown(makeActivationHandler(binding))}elements.bind("fluid-activate",function(evt,handler){handler=handler||onActivateHandler;return handler?handler(evt):null})};fluid.activatable=function(target,fn,options){target=$(target);makeElementsActivatable(target,fn,fluid.activatable.defaults.keys,options)};fluid.activate=function(target){$(target).trigger("fluid-activate")};fluid.activatable.defaults={keys:[$.ui.keyCode.ENTER,$.ui.keyCode.SPACE]}})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/enhancement/js/ProgressiveEnhancement.js b/docs/jscripts/infusion/framework/enhancement/js/ProgressiveEnhancement.js
new file mode 100644 (file)
index 0000000..9b151d7
--- /dev/null
@@ -0,0 +1 @@
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.registerNamespace("fluid.browser");fluid.browser.binaryXHR=function(){var canSendBinary=window.FormData||(window.XMLHttpRequest&&window.XMLHttpRequest.prototype&&window.XMLHttpRequest.prototype.sendAsBinary);return canSendBinary?fluid.typeTag("fluid.browser.supportsBinaryXHR"):undefined};fluid.browser.formData=function(){return window.FormData?fluid.typeTag("fluid.browser.supportsFormData"):undefined};fluid.browser.flash=function(){var hasModernFlash=(typeof (swfobject)!=="undefined")&&(swfobject.getFlashPlayerVersion().major>8);return hasModernFlash?fluid.typeTag("fluid.browser.supportsFlash"):undefined};fluid.progressiveChecker=function(options){var that=fluid.initLittleComponent("fluid.progressiveChecker",options);return fluid.typeTag(fluid.find(that.options.checks,function(check){if(check.feature){return check.contextName}},that.options.defaultContextName))};fluid.defaults("fluid.progressiveChecker",{gradeNames:"fluid.typeFount",checks:[],defaultContextName:undefined});fluid.progressiveCheckerForComponent=function(options){var that=fluid.initLittleComponent("fluid.progressiveCheckerForComponent",options);var defaults=fluid.defaults(that.options.componentName);return fluid.progressiveChecker(fluid.expandOptions(defaults.progressiveCheckerOptions,that))};fluid.defaults("fluid.progressiveCheckerForComponent",{gradeNames:"fluid.typeFount"});$("head").append("<style type='text/css'>.fl-progEnhance-basic, .fl-ProgEnhance-basic { display: none; } .fl-progEnhance-enhanced, .fl-ProgEnhance-enhanced { display: block; }</style>");var features={supportsBinaryXHR:fluid.browser.binaryXHR(),supportsFormData:fluid.browser.formData(),supportsFlash:fluid.browser.flash()};fluid.merge(null,fluid.staticEnvironment,features)})(jQuery,fluid_1_4);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-base-context.css b/docs/jscripts/infusion/framework/fss/css/fss-base-context.css
new file mode 100644 (file)
index 0000000..b53cac3
--- /dev/null
@@ -0,0 +1,24 @@
+.fl-base table{font-size:inherit;font:100%;}
+.fl-base pre,.fl-base code,.fl-base kbd,.fl-base samp,.fl-base tt{font-family:monospace;*font-size:108%;line-height:100%;}
+.fl-base h1{font-size:138.5%;}
+.fl-base h2{font-size:123.1%;}
+.fl-base h3{font-size:108%;}
+.fl-base h1,.fl-base h2,.fl-base h3{margin:1em 0;}
+.fl-base h1,.fl-base h2,.fl-base h3,.fl-base h4,.fl-base h5,.fl-base h6,.fl-base strong{font-weight:bold;}
+.fl-base abbr,.fl-base acronym{border-bottom:1px dotted #000;cursor:help;}
+.fl-base em{font-style:italic;}
+.fl-base blockquote,.fl-base ul,.fl-base ol,.fl-base dl{margin:1em;}
+.fl-base ol,.fl-base ul,.fl-base dl{margin-left:2em;}
+.fl-base ol li{list-style:decimal outside;}
+.fl-base ul li{list-style:disc outside;}
+.fl-base dl dd{margin-left:1em;}
+.fl-base th,td{border:1px solid #000;padding:.5em;}
+.fl-base th{font-weight:bold;text-align:center;}
+.fl-base caption{margin-bottom:.5em;text-align:center;}
+.fl-base p,.fl-base fieldset,.fl-base table,.fl-base pre{margin-bottom:1em;}
+.fl-base input[type=text],.fl-base input[type=password],.fl-base textarea{width:12.25em;*width:11.9em;}
+.fl-base input,.fl-base textarea,.fl-base select{font-family:inherit;font-size:inherit;font-weight:inherit;}
+.fl-base html.fl-base{overflow:auto;font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;}
+.fl-base input,.fl-base textarea,.fl-base select{*font-size:100%;*font-family:sans-serif;}
+.fl-base input{*overflow:visible;*padding:0 1em;}
+.fl-focus:focus,.fl-focus :focus{outline:2px solid black;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-base-global.css b/docs/jscripts/infusion/framework/fss/css/fss-base-global.css
new file mode 100644 (file)
index 0000000..7794f75
--- /dev/null
@@ -0,0 +1,24 @@
+table{font-size:inherit;font:100%;}
+pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}
+h1{font-size:138.5%;}
+h2{font-size:123.1%;}
+h3{font-size:108%;}
+h1,h2,h3{margin:1em 0;}
+h1,h2,h3,h4,h5,h6,strong{font-weight:bold;}
+abbr,acronym{border-bottom:1px dotted #000;cursor:help;}
+em{font-style:italic;}
+blockquote,ul,ol,dl{margin:1em;}
+ol,ul,dl{margin-left:2em;}
+ol li{list-style:decimal outside;}
+ul li{list-style:disc outside;}
+dl dd{margin-left:1em;}
+th,td{border:1px solid #000;padding:.5em;}
+th{font-weight:bold;text-align:center;}
+caption{margin-bottom:.5em;text-align:center;}
+p,fieldset,table,pre{margin-bottom:1em;}
+input[type=text],input[type=password],textarea{width:12.25em;*width:11.9em;}
+input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}
+html{overflow:auto;font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;}
+input,textarea,select{*font-size:100%;*font-family:sans-serif;}
+input{*overflow:visible;*padding:0 1em;}
+.fl-focus:focus,.fl-focus :focus{outline:2px solid black;}
\ No newline at end of file
index 0595663..21e36ea 100644 (file)
@@ -1,4 +1,7 @@
 .fl-fix{overflow:auto;zoom:1;}
+.fl-clearfix:before,.fl-clearfix:after{content:"";display:table;}
+.fl-clearfix:after{clear:both;}
+.fl-clearfix{zoom:1;}
 .fl-push{clear:both;}
 .fl-force-right{float:right;display:inline;}
 .fl-force-left{float:left;display:inline;}
 .fl-container-1000{width:1000px;}
 .fl-container-auto{width:auto;}
 .fl-container-flex{width:100%;clear:both;}
+.fl-container-flex1{width:1%;}
+.fl-container-flex2{width:2%;}
+.fl-container-flex3{width:3%;}
+.fl-container-flex4{width:4%;}
+.fl-container-flex5{width:5%;}
+.fl-container-flex6{width:6%;}
+.fl-container-flex7{width:7%;}
+.fl-container-flex8{width:8%;}
+.fl-container-flex9{width:9%;}
 .fl-container-flex10{width:10%;}
+.fl-container-flex11{width:11%;}
+.fl-container-flex12{width:12%;}
+.fl-container-flex13{width:13%;}
+.fl-container-flex14{width:14%;}
+.fl-container-flex15{width:15%;}
+.fl-container-flex16{width:16%;}
+.fl-container-flex17{width:17%;}
+.fl-container-flex18{width:18%;}
+.fl-container-flex19{width:19%;}
 .fl-container-flex20{width:20%;}
+.fl-container-flex21{width:21%;}
+.fl-container-flex22{width:22%;}
+.fl-container-flex23{width:23%;}
+.fl-container-flex24{width:24%;}
 .fl-container-flex25{width:25%;}
+.fl-container-flex26{width:26%;}
+.fl-container-flex27{width:27%;}
+.fl-container-flex28{width:28%;}
+.fl-container-flex29{width:29%;}
 .fl-container-flex30{width:30%;}
+.fl-container-flex31{width:31%;}
+.fl-container-flex32{width:32%;}
 .fl-container-flex33{width:33%;}
+.fl-container-flex34{width:34%;}
+.fl-container-flex35{width:35%;}
+.fl-container-flex36{width:36%;}
+.fl-container-flex37{width:37%;}
+.fl-container-flex38{width:38%;}
+.fl-container-flex39{width:39%;}
 .fl-container-flex40{width:40%;}
+.fl-container-flex41{width:41%;}
+.fl-container-flex42{width:42%;}
+.fl-container-flex43{width:43%;}
+.fl-container-flex44{width:44%;}
+.fl-container-flex45{width:45%;}
+.fl-container-flex46{width:46%;}
+.fl-container-flex47{width:47%;}
+.fl-container-flex48{width:48%;}
+.fl-container-flex49{width:49%;}
 .fl-container-flex50{width:50%;}
+.fl-container-flex51{width:51%;}
+.fl-container-flex52{width:52%;}
+.fl-container-flex53{width:53%;}
+.fl-container-flex54{width:54%;}
+.fl-container-flex55{width:55%;}
+.fl-container-flex56{width:56%;}
+.fl-container-flex57{width:57%;}
+.fl-container-flex58{width:58%;}
+.fl-container-flex59{width:59%;}
 .fl-container-flex60{width:60%;}
+.fl-container-flex61{width:61%;}
+.fl-container-flex62{width:62%;}
+.fl-container-flex63{width:63%;}
+.fl-container-flex64{width:64%;}
+.fl-container-flex65{width:65%;}
 .fl-container-flex66{width:66%;}
+.fl-container-flex67{width:67%;}
+.fl-container-flex68{width:68%;}
+.fl-container-flex69{width:69%;}
+.fl-container-flex70{width:70%;}
+.fl-container-flex71{width:71%;}
+.fl-container-flex72{width:72%;}
+.fl-container-flex73{width:73%;}
+.fl-container-flex74{width:74%;}
 .fl-container-flex75{width:75%;}
-.fl-layout-linear *,.fl-layout-linear .fl-linearEnabled{overflow:visible!important;clear:both!important;float:none!important;margin-left:0!important;margin-right:0!important;}
-.fl-layout-linear .fl-container,.fl-layout-linear .fl-container-100,.fl-layout-linear .fl-container-150,.fl-layout-linear .fl-container-200,.fl-layout-linear .fl-container-250,.fl-layout-linear .fl-container-300,.fl-layout-linear .fl-container-400,.fl-layout-linear .fl-container-750,.fl-layout-linear .fl-container-950,.fl-layout-linear .fl-container-auto,.fl-layout-linear .fl-container-flex25,.fl-layout-linear .fl-container-flex30,.fl-layout-linear .fl-container-flex33,.fl-layout-linear .fl-container-flex50,.fl-layout-linear .fl-col,.fl-layout-linear .fl-col-side,.fl-layout-linear .fl-col-flex,.fl-layout-linear .fl-col-main,.fl-layout-linear .fl-col-fixed,.fl-layout-linear .fl-col-justified{width:100%!important;margin:auto;padding:0!important;}
-.fl-layout-linear .fl-force-left,.fl-layout-linear .fl-force-right,.fl-layout-linear li{display:block!important;float:none!important;}
+.fl-container-flex76{width:76%;}
+.fl-container-flex77{width:77%;}
+.fl-container-flex78{width:78%;}
+.fl-container-flex79{width:79%;}
+.fl-container-flex80{width:80%;}
+.fl-container-flex81{width:81%;}
+.fl-container-flex82{width:82%;}
+.fl-container-flex83{width:83%;}
+.fl-container-flex84{width:84%;}
+.fl-container-flex85{width:85%;}
+.fl-container-flex86{width:86%;}
+.fl-container-flex87{width:87%;}
+.fl-container-flex88{width:88%;}
+.fl-container-flex89{width:89%;}
+.fl-container-flex90{width:90%;}
+.fl-container-flex91{width:91%;}
+.fl-container-flex92{width:92%;}
+.fl-container-flex93{width:93%;}
+.fl-container-flex94{width:94%;}
+.fl-container-flex95{width:95%;}
+.fl-container-flex96{width:96%;}
+.fl-container-flex97{width:97%;}
+.fl-container-flex98{width:98%;}
+.fl-container-flex99{width:99%;}
+.fl-layout-linear *{clear:both!important;float:none!important;margin-left:0!important;margin-right:0!important;overflow:visible!important;text-align:left!important;}
+.fl-layout-linear .fl-force-left,.fl-layout-linear .fl-force-right,.fl-layout-linear .fl-col,.fl-layout-linear .fl-grid li{display:block!important;width:auto!important;}
+.fl-layout-linear div,.fl-layout-linear table,.fl-layout-linear h1,.fl-layout-linear h2,.fl-layout-linear h3,.fl-layout-linear h4,.fl-layout-linear h5,.fl-layout-linear h6,.fl-layout-linear p,.fl-layout-linear form,.fl-layout-linear fieldset,.fl-layout-linear ul,.fl-layout-linear dl,.fl-layout-linear ol,.fl-layout-linear pre,.fl-layout-linear hr,.fl-layout-linear blockquote{width:100%!important;max-width:960px;min-width:560px;}
+.fl-layout-linear .fl-hidden-accessible{overflow:hidden!important;}
 .fl-layout-linear .fl-linearEnabled{width:100%!important;display:block;}
-.fl-layout-linear .fl-button-left,.fl-layout-linear .fl-button-right{padding:1em;}
+.fl-layout-linear.fl-layout-align-right *,.fl-layout-linear .fl-layout-align-right *{text-align:right!important;}
+.fl-layout-linear.fl-layout-align-center *,.fl-layout-linear .fl-layout-align-center *{text-align:center!important;}
 .fl-col-justified{float:left;display:inline;overflow:auto;text-align:justify;}
 .fl-col-flex2,.fl-col-flex3,.fl-col-flex4,.fl-col-flex5{overflow:auto;zoom:1;}
 .fl-col{float:left;display:inline;}
 .fl-col-fixed,.fl-col-flex{padding:0 10px;}
 .fl-col-mixed .fl-col-fixed{width:200px;padding:0 10px;}
 .fl-col-mixed .fl-col-flex{margin-left:220px;padding:0 10px;}
+.fl-col-mixed .fl-col-flex-left{margin-right:220px;padding:0 10px;}
 .fl-col-mixed-100 .fl-col-fixed{width:100px;}
 .fl-col-mixed-100 .fl-col-flex{margin-left:120px;}
+.fl-col-mixed-100 .fl-col-flex-left{margin-right:120px;}
 .fl-col-mixed-150 .fl-col-fixed{width:150px;}
 .fl-col-mixed-150 .fl-col-flex{margin-left:170px;}
+.fl-col-mixed-150 .fl-col-flex-left{margin-right:170px;}
 .fl-col-mixed-200 .fl-col-fixed{width:200px;}
 .fl-col-mixed-200 .fl-col-flex{margin-left:220px;}
+.fl-col-mixed-200 .fl-col-flex-left{margin-right:220px;}
 .fl-col-mixed-250 .fl-col-fixed{width:250px;}
 .fl-col-mixed-250 .fl-col-flex{margin-left:270px;}
+.fl-col-mixed-250 .fl-col-flex-left{margin-right:270px;}
 .fl-col-mixed-300 .fl-col-fixed{width:300px;}
 .fl-col-mixed-300 .fl-col-flex{margin-left:320px;}
-.fl-tabs{margin:.75em 0 0 0;border-bottom:1px solid #000;text-align:center;padding-bottom:.2em;}
+.fl-col-mixed-300 .fl-col-flex-left{margin-right:320px;}
+.fl-tabs{margin:10px 0 0 0;border-bottom:1px solid #000;text-align:center;padding-bottom:2px;}
 .fl-tabs li{list-style-type:none;display:inline;}
-.fl-tabs li a{padding:.25em 1.25em .2em;background-color:#fff;margin-left:-5px;*margin-bottom:-7px;zoom:1;border:1px solid #000;color:#999;}
+.fl-tabs li a{padding:3px 16px 2px;background-color:#fff;margin-left:-5px;*margin-bottom:-6px;zoom:1;border:1px solid #000;color:#999;}
 .fl-tabs-center{text-align:center;}
 .fl-tabs-left{text-align:left;padding-left:10px;}
 .fl-tabs-right{text-align:right;padding-right:15px;}
 .fl-tabs .fl-reorderer-dropMarker{padding:0 3px;background-color:#c00;margin:0 5px 0 -5px;zoom:1;}
-.fl-tabs .fl-tabs-active a{padding:.25em 1.25em;border-bottom:none;color:#000;}
+.fl-tabs .fl-tabs-active a{padding:3px 16px;border-bottom:none;color:#000;}
 .fl-tabs-content{padding:5px;}
-.fl-listmenu{padding:0;margin:0;border-bottom-width:1px;border-bottom-style:solid;}
-.fl-listmenu li{margin:0;padding:0;list-style-type:none;border-width:1px;border-style:solid;border-bottom:none;}
-.fl-listmenu a{padding:5px 5px;display:block;zoom:1;}
-ul.fl-grid,.fl-grid ul{padding:0;margin:0;}
+@media screen and(-webkit-min-device-pixel-ratio:0){.fl-tabs li a{padding:3px 16px 3px;}
+.fl-tabs .fl-tabs-active a{padding:3px 16px 4px;}
+}
+.fl-listmenu,.fl-list-menu{padding:0;margin:0;border-bottom-width:1px;border-bottom-style:solid;}
+.fl-listmenu li,.fl-list-menu li{margin:0;padding:0;list-style-type:none;border-width:1px;border-style:solid;border-bottom:none;}
+.fl-listmenu a,.fl-list-menu a{padding:5px 5px;display:block;zoom:1;outline:none;}
+.fl-list-menu a:hover,.fl-list-menu a:focus{padding:4px 4px;border:1px solid black;}
+.fl-list-menu .fl-activemenu a{background-color:#CCC;color:#000;}
+ul.fl-grid,.fl-grid ul{padding:0;margin:0;overflow:auto;}
 .fl-grid li{list-style-type:none;display:inline;}
 .fl-grid li{float:left;width:19%;margin:.5%;height:150px;overflow:hidden;position:relative;display:inline;}
 .fl-grid li img{display:block;margin:5px auto;}
-.fl-grid li .caption{position:absolute;left:0;bottom:0;width:100%;text-align:center;height:1em;padding:3px 0;}
+.fl-grid li .caption,.fl-grid li .fl-grid-caption{position:absolute;left:0;bottom:0;width:100%;text-align:center;height:1em;padding:3px 0;}
 .fl-icon{text-indent:-5000px;overflow:hidden;cursor:pointer;display:block;height:16px;width:16px;margin-left:5px;margin-right:5px;background-position:center center;background-repeat:no-repeat;}
 input.fl-icon{padding-left:16px;}
 .fl-button-left{float:left;margin-right:10px;padding:0 0 0 16px;background-position:left center;background-repeat:no-repeat;}
@@ -112,4 +217,10 @@ input.fl-icon{padding-left:16px;}
 .fl-controls-centered .fl-label{float:left;text-align:center;width:50%;margin-right:5px;}
 .fl-noBackgroundImages,.fl-noBackgroundImages *{background-image:none!important;}
 .fl-noBackgroundImages .fl-icon{text-indent:0!important;width:auto!important;background-color:transparent!important;}
-.fl-ProgEnhance-enhanced,.fl-progEnhance-enhanced{display:none;}
\ No newline at end of file
+.fl-ProgEnhance-enhanced,.fl-progEnhance-enhanced{display:none;}
+.fl-hidden{display:none;visibility:hidden;}
+.fl-hidden-invisible{visibility:hidden;}
+.fl-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}
+.fl-hidden-accessible.fl-focus:active,.fl-hidden-accessible.fl-focus:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto;}
+.fl-hidden-replace{display:block;text-indent:-999em;overflow:hidden;background-repeat:no-repeat;text-align:left;direction:ltr;}
+.fl-offScreen-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}
\ No newline at end of file
index d87ec46..0a3661b 100644 (file)
-body {
-    margin:0;
-    padding:0;
-    font:normal 17px Helvetica, sans-serif; /* Base font rules */
-       -webkit-user-select: none; /* prevents child elements content from being selected - desired? */
-    -webkit-text-size-adjust:none; /* http://website-engineering.blogspot.com/2009/07/stop-adjusting-text-size-in-iphone-when.html */
-}
-h1, h2, h3, h4, h5, h6 {margin:0.25em;}
-h1 {font-size:1.5em;}
-h2 {font-size:1.1em;}
-h3 {font-size:1em;}
-h4 {}
-h5 {}
-h6 {}
-img {border:none;}
-
-
-/***************************************/
-/**
- * Basic overrides for fss layout
- */
-
-.fl-icon {
-    width:30px;
-    height:30px;
-    margin-top:-5px;
-    margin-right:5px;
-    -webkit-border-radius: 5px;
-}
-.fl-label {
-    width:25%;
-}
-
-/***************************************/
-/* iPhone general purpose gel buttons */
-/* effect is applied anywhere but the navbar, which has its own button look */
-
-.fl-button {
-    border-width: 10px;
-    text-align:center;
-    -webkit-border-radius:10px;
-    -webkit-background-origin: border;
-    -webkit-background-clip: border;
-}
-
-/*************************************************/
-/* Navigation Bar
- */
-.fl-navbar {
-    width:100%;
-    text-align:center;
-       border-style:solid;
-       border-width:1px 0;
-}
-.fl-navbar .fl-table-row:first-child {
-       height:45px;
-}
-.fl-navbar .fl-table-cell:not(h1) {
-    width:1px;
-    white-space:nowrap;
-}
-
-.fl-navbar .fl-table-cell:first-child {
-    padding-left:5px;
-}
-.fl-navbar .fl-table-cell:last-child {
-    padding-right:5px;
-}
-.fl-navbar h1 {
-    padding:0;
-    text-align:center;
-    font-size:1.17em;
-    font-weight: bold;
-}
-.fl-navbar a {
-       text-decoration:none;
-       font-size: 0.7em;
-    font-weight:bold;
-}
-
-.fl-navbar [class*=fl-button] {
-    -webkit-border-radius:5px;
-    padding:0;
-    display:block;
-}
-
-.fl-navbar .fl-backButton {
-    /*
-     * To create the oddly shaped back button with fully customizable CSS colors, there are 2 main things:
-     * 1) The stencil for the shadow and hilights along the angled edge
-     * 2) The mask to crop the background along the angled edge
-     */
-    /* Angled effect is just a single border with a transaprent stencil image for the bevel */
-    border-width:0 0 0 15px;
-    -webkit-border-top-right-radius: 5px;
-    -webkit-border-bottom-right-radius: 5px;
-    -webkit-background-origin: border;
-    -webkit-background-clip: border;
-    -webkit-mask-repeat: no-repeat;
-    -webkit-mask-origin: border;
-    -webkit-mask-clip: border;
-}
-
-.fl-navbar .fl-backButton .fl-button-inner {
-    margin-left:-3px; /* close tiny gap between angled border + button-inner on Mobile Safari */
-    border-left-width:0;
-}
-.fl-navbar .fl-button-inner {
-    float:none;
-    padding:5px;
-    border-width:5px;
-    -webkit-background-origin: border;
-    -webkit-background-clip: border;
-}
-
-.fl-navbar img.fl-button-inner {
-    height:24px;
-    vertical-align:middle;
-    padding:0;    
-}
-
-/*************************************************/
-/* iPhone tabs: general purpose dividers, or fixed to the bottom of the screen
- */
-/*************************************************/
-.fl-tabs {
-    margin:0;
-    padding:0;
-    border:none;
-    text-align:center;
-}
-.fl-tabs li {
-    display:inline-block;
-    margin-right:-5px;
-    border-width:5px 0;
-    text-align:center;
-}
-.fl-tabs li:first-child {
-    border-left-width:5px;
-    -webkit-border-top-left-radius:5px;
-    -webkit-border-bottom-left-radius:5px;
-}
-.fl-tabs li:last-child {
-    margin-right:0;
-    border-right-width:5px;
-    -webkit-border-top-right-radius:5px;
-    -webkit-border-bottom-right-radius:5px;
-}
-.fl-tabs li.fl-tabs-active a,
-.fl-tabs li a {
-    display:block;
-    margin:-4px 0;
-    text-decoration:none;
-    padding:0.35em 0.5em;
-    font-weight:bold;
-    background:none;
-    border-width:0 1px;
-    border-style:solid;
-}
-
-.fl-tabs li:last-child a {
-    border-right:none;
-}
-.fl-tabs li:first-child a {
-    border-left:none;
-}
-
-/*************************************************/
-/* iPhone list menu styles: Ordered lists, Unordererd lists, Thumbnail lists, Icon lists, Definition lists
- * By default, all list formats fit to width
- * When nested within a fl-container element, they are indented and therefore contain rounded corners
- */
-/*************************************************/
-/* Default list system setup */
-[class*=fl-list] {
-    border: none;
-    list-style:none;
-    margin:0 0 10px;
-    padding:0;
-}
-[class*=fl-list] > li {
-       display:block;
-       padding: 12px 0px 12px 12px;
-       text-decoration: none;
-       font-weight: bold;
-       outline: none;
-       border-style:solid;
-       border-width:1px 0px 0 0px;
-    overflow:auto; /* to encapsulate floating elements within */
-}
-[class*=fl-list] > li:last-child {
-       border-bottom-width:1px;
-}
-[class*=fl-list] .fl-link-loading .fl-link-secondary {
-    display:none;
-}
-/* secondary link info behaviour */
-[class*=fl-list] > li .fl-link-secondary {
-    float:right;
-    margin-right:25px;
-    font-weight:normal;
-    font-size:.9em;
-}
- /* summary link info ehaviour */
-[class*=fl-list] > li .fl-link-summary {
-    display:block;
-    clear:right;
-    margin:0 25px 0 0px;
-    font-weight:normal;
-    font-size:0.8em;
-}
-[class*=fl-list] li .fl-icon ~ .fl-link-summary {
-    margin-left:30px; /* default size of fl-icon */
-}
-/* icon behaviour */
-[class*=fl-list] li .fl-icon {
-    float:left;
-    margin-left:-6px;
-}
-
-/*************************************************/
-/**
- * fl-listmenu is now the way to create a link list
- * The links create a hotspot over the entire list item, just like how it was by default
- */
-.fl-list-menu {
-}
-.fl-list-menu li {
-       padding:0;
-}
-.fl-list-menu li a {
-    display:block;
-    padding: 12px 0px 12px 12px;
-    text-decoration: none;
-    font-weight: bold;
-    outline: none;
-}
-
-
-/*************************************************/
-/* Thumbnail and Expanded Thumbnails list features */
-
-.fl-list-thumbnails > li {
-    margin-bottom:5px;
-    border-bottom-width:1px;
-}
-.fl-list-thumbnails > li a {
-    padding-top:6px;
-    overflow:auto;
-}
-/* summary behaviour */
-.fl-list-thumbnails > li a  .fl-icon ~ .fl-link-summary {
-       margin:0 25px -12px 42px;
-}
-.fl-list-thumbnails:not(.fl-thumbnails-expanded):not(.fl-list-brief) > li a > .fl-icon ~ .fl-link-summary {
-    padding-bottom:10px;
-}
-/* icon behaviour */
-.fl-list-thumbnails > li a  .fl-icon {
-    width:44px;
-    height:44px;
-    margin:-6px 10px -12px -12px;
-    -webkit-border-radius:0;
-}
-.fl-list-thumbnails.fl-thumbnails-expanded li {
-    margin:0;
-    border-bottom-width:0;
-}
-.fl-list-thumbnails.fl-thumbnails-expanded > li:last-child {
-    border-bottom-width:1px;
-}
-.fl-list-thumbnails.fl-thumbnails-expanded > li a {
-    -webkit-border-radius:0;
-    padding: 10px 0px 10px 10px;
-}
-.fl-list-thumbnails.fl-thumbnails-expanded > li a  .fl-icon {
-    width:60px;
-    height:60px;
-    margin:-5px 5px -5px -5px;
-    -webkit-border-radius:0;
-}
-.fl-list-thumbnails.fl-thumbnails-expanded > li a  .fl-icon ~ .fl-link-summary {
-    margin: 0px 0px -5px 60px;
-}
-.fl-list-thumbnails.fl-thumbnails-expanded > li a  .fl-link-secondary {
-    padding-top:0;
-}
-
-/*************************************************/
-/* Brief lists auto trim summary content + add ellipsis if necessary */
-
-.fl-list-brief > li a  {
-    padding-bottom:6px;
-}
-.fl-list-brief > li a > .fl-link-summary {
-    height:1.3em;
-    overflow:hidden;
-    text-overflow:ellipsis;
-    white-space:nowrap;
-}
-.fl-list-brief > li a > .fl-icon ~ .fl-link-summary {
-    margin-left:0;
-}
-.fl-list-brief.fl-list-thumbnails:not(.fl-thumbnails-expanded) > li a > .fl-icon {
-    margin:-6px 10px -6px -12px;
-}
-.fl-list-brief.fl-list-thumbnails:not(.fl-thumbnails-expanded) > li a > .fl-link-secondary {
-    padding-top:0px;
-}
-
-/*************************************************/
-/* Thumbnails in Grid layout, changes the entire layout of the list item and contents */
-.fl-list-thumbnails.fl-grid {
-       overflow:auto;
-}
-.fl-list-thumbnails.fl-grid li {
-       display:inline-block;
-    float:none;
-    vertical-align:top;
-       width:auto;
-       height:auto;
-       margin:4px;
-}
-.fl-list-thumbnails.fl-grid li a {
-       padding:0;
-       margin:0;
-       text-indent:-5000px;
-       overflow:hidden;
-       width:44px;
-       height:44px;
-}
-.fl-list-thumbnails.fl-grid li a .fl-caption {
-}
-.fl-list-thumbnails.fl-grid li a .fl-icon {
-       display:block;
-       float:none;
-       margin:0 auto;
-       padding:0;
-       width:auto;
-       height:auto;
-       max-height:44px;
-       max-width:44px;
-}
-.fl-list-thumbnails.fl-thumbnails-expanded.fl-grid li {
-       margin:0px;
-}
-.fl-list-thumbnails.fl-thumbnails-expanded.fl-grid li a {
-       height:64px;
-       width:64px;
-}
-.fl-list-thumbnails.fl-thumbnails-expanded.fl-grid > li a .fl-icon {
-       max-height:64px;
-       max-width:64px;
-}
-/* Reiterate the properties of fl-table-cell for specificities sake */
-.fl-list-thumbnails.fl-grid li .fl-table {
-}
-.fl-list-thumbnails.fl-grid li .fl-table .fl-table-cell {
-    display:table-cell;
-    vertical-align:middle;
-}
-.fl-list-thumbnails.fl-grid .fl-grid-caption {
-    position:relative;
-    height:auto;
-    text-align:center;
-    font-size:12px;
-}
-.fl-thumbnails-expanded.fl-grid .fl-grid-caption {
-    width:64px;
-}
-/*************************************************/
-/* Glossy icons (and thumbnails?) */
-
-/* Glossiness for 30x30 icons */
-.fl-list-glossy > li a::before {
-    position:absolute;
-    content:" ";
-    float:left;
-    width:28px;
-    height:28px;
-    margin:-4px 0 0 -5px;
-    -webkit-border-radius:3px;
-    -webkit-background-size: 30px 60px;
-    background-repeat:no-repeat;
-}
-/* Glossiness for 44x44 thumbnails */
-.fl-list-thumbnails.fl-list-glossy > li a::before {
-    width:42px;
-    height:42px;
-    margin:-11px;
-    -webkit-border-radius:0px;
-    -webkit-background-size: 44px 50px;
-}
-/* Glossiness for 60x60 thumbnails */
-.fl-list-thumbnails.fl-thumbnails-expanded.fl-list-glossy > li a::before {
-    width:58px;
-    height:58px;
-    margin:-4px;
-    -webkit-border-radius:0px;
-    -webkit-background-size: 60px 40px;
-}
-
-
-/*************************************************/
-/* Content Panels */
-/*************************************************/
-
-[class*=fl-container]:not(.fl-navbar) {
-       margin:10px;
-    width:auto;
-}
-
-/* Panel influence for list corners */
-[class*=fl-container] [class*=fl-list] > li {
-    border-right-width: 1px;
-    border-left-width: 1px;
-}
-[class*=fl-container] [class*=fl-list] > li:first-child,
-[class*=fl-container] [class*=fl-list] > li:first-child a {
-    -webkit-border-top-left-radius: 8px;
-    -webkit-border-top-right-radius: 8px;
-}
-
-[class*=fl-container] [class*=fl-list] > li:last-child,
-[class*=fl-container] [class*=fl-list] > li:last-child a {
-    -webkit-border-bottom-left-radius: 8px;
-    -webkit-border-bottom-right-radius: 8px;
-}
-
-[class*=fl-container] [class*=fl-list]:not(.fl-thumbnails-expanded) > li a .fl-icon {
-    -webkit-border-bottom-left-radius: 8px;
-    -webkit-border-top-left-radius: 8px;
-}
-
-[class*=fl-container] .fl-list-thumbnails:not(.fl-thumbnails-expanded) > li,
-[class*=fl-container] .fl-list-thumbnails:not(.fl-thumbnails-expanded) > li a {
-    -webkit-border-radius: 8px;
-}
-/* Panel Auto Headings */
-/* The first element found becomes the "heading" */
-.fl-container-autoHeading > *:first-child {
-       padding:10px;
-       margin:0;
-       -webkit-border-top-left-radius: 8px;
-       -webkit-border-top-right-radius: 8px;
-}
-/* The last element found becomes the "content" - list or otherwise */
-.fl-container-autoHeading > *:last-child {
-       margin:0;
-       -webkit-border-radius:0;
-       -webkit-border-bottom-left-radius:8px;
-       -webkit-border-bottom-right-radius:8px;
-}
-
-.fl-container-autoHeading [class*=fl-list] > li {
-       margin:0;
-}
-.fl-container-autoHeading [class*=fl-list] > li:first-child,
-.fl-container-autoHeading [class*=fl-list] > li:first-child a {
-       -webkit-border-radius:0;
-}
-.fl-container-autoHeading [class*=fl-list] > li:first-child:last-child,
-.fl-container-autoHeading [class*=fl-list] > li:first-child:last-child a {
-       -webkit-border-bottom-left-radius:8px;
-       -webkit-border-bottom-right-radius:8px;
-}
-
-/* Collapsing and expanding panels */
-.fl-container-collapsable {
-       max-height:900px;
-       overflow:hidden;
-       -webkit-border-radius:8px;
-}
-
-/***************************/
-.fl-table {
-    display:table;
-    border-collapse:collapse;
-}
-.fl-table-row {
-    display:table-row;
-}
-.fl-table-cell {
-    display:table-cell;
-    vertical-align:middle;
-}
-
-
-/************************************************************************************************/
-/*
-    Theme/Device specific layout adjustments
-    The base CSS is modelled off the iPhone WebKit environment, which is a good UI to emulate
-    The following CSS modifies the base slightly to be a little more device-friendly and native-ish for other Webkit environments
-*/
-
-.fl-theme-android {
-    font:normal 17px "Droid Sans", sans-serif;
-}
-.fl-theme-android [class*=fl-list] > li {
-    border-width:0px;
-}
-.fl-theme-android h1,
-.fl-theme-android h2,
-.fl-theme-android h3 {
-    padding:5px;
-    margin:0;
-}
-.fl-theme-android [class*=fl-container] h1,
-.fl-theme-android [class*=fl-container] h2,
-.fl-theme-android [class*=fl-container] h3 {
-    margin:0 -10px;
-}
-.fl-theme-android .fl-list-menu a {
-    font-weight:normal;
-}
-.fl-theme-android .fl-tabs li:not(:last-child) {
-    margin-right:-4px; /* for some reason, the use of Droid Sans font make the right border dissappear (on Chrome+XP). This 1px change fixes it */
-}
-/* Panel influence for list corners */
-.fl-theme-android [class*=fl-container] [class*=fl-list] > li:first-child,
-.fl-theme-android [class*=fl-container] [class*=fl-list] > li:first-child a {
-    -webkit-border-top-left-radius: 0px;
-    -webkit-border-top-right-radius: 0px;
-}
-.fl-theme-android [class*=fl-container]:not(.fl-container-autoHeading) [class*=fl-list] > li:last-child,
-.fl-theme-android [class*=fl-container]:not(.fl-container-autoHeading) [class*=fl-list] > li:last-child a {
-    -webkit-border-bottom-left-radius: 0px;
-    -webkit-border-bottom-right-radius: 0px;
-}
-.fl-theme-android .fl-list-thumbnails.fl-thumbnails-expanded > li:last-child {
-       border:0;       
-}
-.fl-theme-android .fl-container-autoHeading > :first-child {
-       margin-left:0;
-       margin-right:0;
-}
-.fl-theme-android .fl-container-autoHeading > :last-child {
-       border-width:0 1px 1px;
-}
\ No newline at end of file
+body{margin:0;padding:0;font:normal 17px Helvetica,sans-serif;-webkit-user-select:none;-webkit-text-size-adjust:none;}
+h1,h2,h3,h4,h5,h6{margin:.25em;}
+h1{font-size:1.5em;}
+h2{font-size:1.1em;}
+h3{font-size:1em;}
+img{border:none;}
+.fl-icon{width:30px;height:30px;margin-top:-5px;margin-right:5px;-webkit-border-radius:5px;}
+.fl-label{width:25%;}
+.fl-button{border-width:10px;text-align:center;-webkit-border-radius:10px;-webkit-background-origin:border;-webkit-background-clip:border;}
+.fl-navbar{width:100%;text-align:center;border-style:solid;border-width:1px 0;}
+.fl-navbar .fl-table-row:first-child{height:45px;}
+.fl-navbar .fl-table-cell:not(h1){width:1px;white-space:nowrap;}
+.fl-navbar .fl-table-cell:first-child{padding-left:5px;}
+.fl-navbar .fl-table-cell:last-child{padding-right:5px;}
+.fl-navbar h1{padding:0;text-align:center;font-size:1.17em;font-weight:bold;}
+.fl-navbar a{text-decoration:none;font-size:.7em;font-weight:bold;}
+.fl-navbar [class*=fl-button]{-webkit-border-radius:5px;padding:0;display:block;}
+.fl-navbar .fl-backButton{border-width:0 0 0 15px;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:5px;-webkit-background-origin:border;-webkit-background-clip:border;-webkit-mask-repeat:no-repeat;-webkit-mask-origin:border;-webkit-mask-clip:border;}
+.fl-navbar .fl-backButton .fl-button-inner{margin-left:-3px;border-left-width:0;}
+.fl-navbar .fl-button-inner{float:none;padding:5px;border-width:5px;-webkit-background-origin:border;-webkit-background-clip:border;}
+.fl-navbar img.fl-button-inner{height:24px;vertical-align:middle;padding:0;}
+.fl-tabs{margin:0;padding:0;border:none;text-align:center;}
+.fl-tabs li{display:inline-block;margin-right:-5px;border-width:5px 0;text-align:center;}
+.fl-tabs li:first-child{border-left-width:5px;-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:5px;}
+.fl-tabs li:last-child{margin-right:0;border-right-width:5px;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:5px;}
+.fl-tabs li.fl-tabs-active a,.fl-tabs li a{display:block;margin:-4px 0;text-decoration:none;padding:.35em .5em;font-weight:bold;background:none;border-width:0 1px;border-style:solid;}
+.fl-tabs li:last-child a{border-right:none;}
+.fl-tabs li:first-child a{border-left:none;}
+[class*=fl-list]{border:none;list-style:none;margin:0 0 10px;padding:0;}
+[class*=fl-list]>li{display:block;padding:12px 0 12px 12px;text-decoration:none;font-weight:bold;outline:none;border-style:solid;border-width:1px 0 0 0;overflow:auto;}
+[class*=fl-list]>li:last-child{border-bottom-width:1px;}
+[class*=fl-list] .fl-link-loading .fl-link-secondary{display:none;}
+[class*=fl-list]>li .fl-link-secondary{float:right;margin-right:25px;font-weight:normal;font-size:.9em;}
+[class*=fl-list]>li .fl-link-summary{display:block;clear:right;margin:0 25px 0 0;font-weight:normal;font-size:.8em;}
+[class*=fl-list] li .fl-icon ~ .fl-link-summary{margin-left:30px;}
+[class*=fl-list] li .fl-icon{float:left;margin-left:-6px;}
+.fl-list-menu li{padding:0;}
+.fl-list-menu li a{display:block;padding:12px 0 12px 12px;text-decoration:none;font-weight:bold;outline:none;}
+.fl-list-thumbnails>li{margin-bottom:5px;border-bottom-width:1px;}
+.fl-list-thumbnails>li a{padding-top:6px;overflow:auto;}
+.fl-list-thumbnails>li a .fl-icon ~ .fl-link-summary{margin:0 25px -12px 42px;}
+.fl-list-thumbnails:not(.fl-thumbnails-expanded):not(.fl-list-brief)>li a>.fl-icon ~ .fl-link-summary{padding-bottom:10px;}
+.fl-list-thumbnails>li a .fl-icon{width:44px;height:44px;margin:-6px 10px -12px -12px;-webkit-border-radius:0;}
+.fl-list-thumbnails.fl-thumbnails-expanded li{margin:0;border-bottom-width:0;}
+.fl-list-thumbnails.fl-thumbnails-expanded>li:last-child{border-bottom-width:1px;}
+.fl-list-thumbnails.fl-thumbnails-expanded>li a{-webkit-border-radius:0;padding:10px 0 10px 10px;}
+.fl-list-thumbnails.fl-thumbnails-expanded>li a .fl-icon{width:60px;height:60px;margin:-5px 5px -5px -5px;-webkit-border-radius:0;}
+.fl-list-thumbnails.fl-thumbnails-expanded>li a .fl-icon ~ .fl-link-summary{margin:0 0 -5px 60px;}
+.fl-list-thumbnails.fl-thumbnails-expanded>li a .fl-link-secondary{padding-top:0;}
+.fl-list-brief>li a{padding-bottom:6px;}
+.fl-list-brief>li a>.fl-link-summary{height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
+.fl-list-brief>li a>.fl-icon ~ .fl-link-summary{margin-left:0;}
+.fl-list-brief.fl-list-thumbnails:not(.fl-thumbnails-expanded)>li a>.fl-icon{margin:-6px 10px -6px -12px;}
+.fl-list-brief.fl-list-thumbnails:not(.fl-thumbnails-expanded)>li a>.fl-link-secondary{padding-top:0;}
+.fl-list-thumbnails.fl-grid{overflow:auto;}
+.fl-list-thumbnails.fl-grid li{display:inline-block;float:none;vertical-align:top;width:auto;height:auto;margin:4px;}
+.fl-list-thumbnails.fl-grid li a{padding:0;margin:0;text-indent:-5000px;overflow:hidden;width:44px;height:44px;}
+.fl-list-thumbnails.fl-grid li a .fl-icon{display:block;float:none;margin:0 auto;padding:0;width:auto;height:auto;max-height:44px;max-width:44px;}
+.fl-list-thumbnails.fl-thumbnails-expanded.fl-grid li{margin:0;}
+.fl-list-thumbnails.fl-thumbnails-expanded.fl-grid li a{height:64px;width:64px;}
+.fl-list-thumbnails.fl-thumbnails-expanded.fl-grid>li a .fl-icon{max-height:64px;max-width:64px;}
+.fl-list-thumbnails.fl-grid li .fl-table .fl-table-cell{display:table-cell;vertical-align:middle;}
+.fl-list-thumbnails.fl-grid .fl-grid-caption{position:relative;height:auto;text-align:center;font-size:12px;}
+.fl-thumbnails-expanded.fl-grid .fl-grid-caption{width:64px;}
+.fl-list-glossy>li a::before{position:absolute;content:" ";float:left;width:28px;height:28px;margin:-4px 0 0 -5px;-webkit-border-radius:3px;-webkit-background-size:30px 60px;background-repeat:no-repeat;}
+.fl-list-thumbnails.fl-list-glossy>li a::before{width:42px;height:42px;margin:-11px;-webkit-border-radius:0;-webkit-background-size:44px 50px;}
+.fl-list-thumbnails.fl-thumbnails-expanded.fl-list-glossy>li a::before{width:58px;height:58px;margin:-4px;-webkit-border-radius:0;-webkit-background-size:60px 40px;}
+[class*=fl-container]:not(.fl-navbar){margin:10px;width:auto;}
+[class*=fl-container] [class*=fl-list]>li{border-right-width:1px;border-left-width:1px;}
+[class*=fl-container] [class*=fl-list]>li:first-child,[class*=fl-container] [class*=fl-list]>li:first-child a{-webkit-border-top-left-radius:8px;-webkit-border-top-right-radius:8px;}
+[class*=fl-container] [class*=fl-list]>li:last-child,[class*=fl-container] [class*=fl-list]>li:last-child a{-webkit-border-bottom-left-radius:8px;-webkit-border-bottom-right-radius:8px;}
+[class*=fl-container] [class*=fl-list]:not(.fl-thumbnails-expanded)>li a .fl-icon{-webkit-border-bottom-left-radius:8px;-webkit-border-top-left-radius:8px;}
+[class*=fl-container] .fl-list-thumbnails:not(.fl-thumbnails-expanded)>li,[class*=fl-container] .fl-list-thumbnails:not(.fl-thumbnails-expanded)>li a{-webkit-border-radius:8px;}
+.fl-container-autoHeading>*:first-child{padding:10px;margin:0;-webkit-border-top-left-radius:8px;-webkit-border-top-right-radius:8px;}
+.fl-container-autoHeading>*:last-child{margin:0;-webkit-border-radius:0;-webkit-border-bottom-left-radius:8px;-webkit-border-bottom-right-radius:8px;}
+.fl-container-autoHeading [class*=fl-list]>li{margin:0;}
+.fl-container-autoHeading [class*=fl-list]>li:first-child,.fl-container-autoHeading [class*=fl-list]>li:first-child a{-webkit-border-radius:0;}
+.fl-container-autoHeading [class*=fl-list]>li:first-child:last-child,.fl-container-autoHeading [class*=fl-list]>li:first-child:last-child a{-webkit-border-bottom-left-radius:8px;-webkit-border-bottom-right-radius:8px;}
+.fl-container-collapsable{max-height:900px;overflow:hidden;-webkit-border-radius:8px;}
+.fl-table{display:table;border-collapse:collapse;}
+.fl-table-row{display:table-row;}
+.fl-table-cell{display:table-cell;vertical-align:middle;}
+.fl-theme-android{font:normal 17px "Droid Sans",sans-serif;}
+.fl-theme-android [class*=fl-list]>li{border-width:0;}
+.fl-theme-android h1,.fl-theme-android h2,.fl-theme-android h3{padding:5px;margin:0;}
+.fl-theme-android [class*=fl-container] h1,.fl-theme-android [class*=fl-container] h2,.fl-theme-android [class*=fl-container] h3{margin:0 -10px;}
+.fl-theme-android .fl-list-menu a{font-weight:normal;}
+.fl-theme-android .fl-tabs li:not(:last-child){margin-right:-4px;}
+.fl-theme-android [class*=fl-container] [class*=fl-list]>li:first-child,.fl-theme-android [class*=fl-container] [class*=fl-list]>li:first-child a{-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;}
+.fl-theme-android [class*=fl-container]:not(.fl-container-autoHeading) [class*=fl-list]>li:last-child,.fl-theme-android [class*=fl-container]:not(.fl-container-autoHeading) [class*=fl-list]>li:last-child a{-webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-radius:0;}
+.fl-theme-android .fl-list-thumbnails.fl-thumbnails-expanded>li:last-child{border:0;}
+.fl-theme-android .fl-container-autoHeading>:first-child{margin-left:0;margin-right:0;}
+.fl-theme-android .fl-container-autoHeading>:last-child{border-width:0 1px 1px;}
\ No newline at end of file
index 72ff81e..e1d4c3e 100644 (file)
-/***************************************/
-/* general styles */
-.fl-theme-android {
-    background:#222;
-    color:#fff;
-}
-
-.fl-theme-android .fl-bevel-black {
-    text-shadow: rgba(0,0,0,0.35) 0px -1px 0px;
-}
-.fl-theme-android .fl-bevel-white {
-    text-shadow: rgba(200,200,200,0.85) 0px 1px 0px;
-}
-
-.fl-theme-android a {
-    -webkit-touch-callout:none; /* prevents iphone popup menu to copy / follow / bookmark a particular link */
-    -webkit-tap-highlight-color: rgba(0,0,0,0);
-    text-decoration:none;
-    color:#fff;
-}
-
-.fl-theme-android h1,
-.fl-theme-android h2,
-.fl-theme-android h3 {
-    text-shadow: rgba(255,255,255,1) 0px 1px 0px;
-    color:#000;
-    background: #999 -webkit-gradient(linear, left top, left bottom, from(#ccc), to(#999)) no-repeat top left;
-}
-
-/***************************************/
-/* Navigation Bar */
-
-.fl-theme-android .fl-navbar {
-    border-top-color:#333;
-    border-bottom-color:#000;
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(#666),
-        color-stop(0.5, #333),
-        color-stop(0.50, #000),
-        to(#000)
-    );
-    -webkit-box-shadow: 0px 0px 5px rgba(0,0,0,0.5);
-}
-
-.fl-theme-android .fl-navbar {
-    color:#fff;    
-}
-
-.fl-theme-android .fl-navbar h1 {
-    color:#fff;
-    background:transparent;
-    text-shadow: rgba(0,0,0,0.5) 0px -1px 0px;
-}
-.fl-theme-android .fl-navbar a {
-       color: #fff;
-    text-shadow: rgba(0,0,0,0.5) 0px -1px 0px;
-}
-.fl-theme-android .fl-navbar .fl-button {
-    -webkit-border-image:none;
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(#444),
-        color-stop(0.5, #666),
-        color-stop(0.50, #333),
-        to(#000)
-    );
-}
-.fl-theme-android .fl-navbar [class*=fl-button]:active {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(#ffb347),
-        to(#ff702f)
-    );
-}
-
-.fl-theme-android .fl-navbar .fl-backButton {
-    /* See mobile layout for details */
-    -webkit-border-image: url(../images/themes/android/navbar_back_button_insetShadow.png) 0 15 stretch;
-    -webkit-mask-box-image: url(../images/themes/android/backbutton_mask.png) 0 15 stretch;
-}
-
-.fl-theme-android .fl-navbar .fl-button-inner {
-    -webkit-border-image: url(../images/themes/android/navbar_normal_button_insetShadow.png) 5 5 5 5 stretch;
-}
-
-/***************************************/
-/* general purpose gel buttons */
-/* effect is applied anywhere but the navbar, which has its own button look */
-.fl-theme-android .fl-button {
-    text-decoration:none;
-    font-weight:bold;
-    -webkit-border-image: url(../images/themes/android/button_bg_insetShadow.png) 10 stretch;
-}
-.fl-theme-android .fl-button.fl-bevel-white {
-    color:#333333;
-}
-.fl-theme-android .fl-button.fl-bevel-black {
-    color:#FFFFFF;
-}
-.fl-theme-android .fl-button-white {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(240,240,240,0.25)),
-        to(rgba(220,220,220,0.75)),
-        color-stop(0.5, rgba(240,240,240,1)),
-        color-stop(0.50, rgba(200,200,200,0.8))
-    );
-}
-.fl-theme-android .fl-button-black {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(106,106,106,0.25)),
-        to(rgba(00,00,00,0.75)),
-        color-stop(0.5, rgba(130,130,130,1)),
-        color-stop(0.50, rgba(75,75,75,0.8))
-    );
-}
-.fl-theme-android .fl-button-green {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(120,190,130,0.2)),
-        to(rgba(50,170,60,0.75)),
-        color-stop(0.5, rgba(120,190,130,1)),
-        color-stop(0.50, rgba(0,150,10,0.8))
-    );
-}
-.fl-theme-android .fl-button-blue {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(149, 184, 239,0.2)),
-        to(rgba(35,109,229,0.75)),
-        color-stop(0.5, rgba(149, 184, 239,1)),
-        color-stop(0.50, rgba(75,148,244,0.8))
-    );
-}
-/***************************************/
-/* tabs 1: small general purpose content dividers */
-.fl-theme-android .fl-tabs li {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(#666),
-        color-stop(0.5, #666),
-        color-stop(0.50, #000),
-        to(#000)
-    );
-    -webkit-border-image: url(../images/themes/android/navbar_normal_button_insetShadow.png) 5 5 5 5 stretch;
-    -webkit-border-left-image: none;
-    -webkit-background-origin: border;
-    -webkit-background-clip: border;
-}
-
-.fl-theme-android .fl-tabs li a {
-       color:#fff;
-}
-
-.fl-theme-android .fl-tabs li a,
-.fl-theme-android .fl-tabs .fl-tabs-active a {
-    border-right-color:rgba(255,255,255,0.35);
-    border-left-color:rgba(0,0,0,1);
-}
-
-.fl-theme-android .fl-tabs .fl-tabs-active {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(#ff702f),
-        to(#ffb347)
-    );
-}
-.fl-theme-android .fl-tabs .fl-tabs-active a {
-    color:#000;
-    text-shadow:none;
-}
-
-/*************************************************/
-/* Ordered lists, Unordererd lists, Thumbnail lists, Icon lists, Definition lists */
-/*************************************************/
-/* Default list system setup */
-
-.fl-theme-android .fl-list a {
-    color:#ffb347;
-}
-.fl-theme-android .fl-list-menu a {
-    color:#fff;
-}
-
-.fl-theme-android [class*=fl-list] > li {
-       color: #fff;
-    background:transparent -webkit-gradient(linear, left bottom, right bottom, 
-        from(rgba(0,0,0,0)), 
-        to(rgba(0,0,0,0)),
-        color-stop(0.35, rgba(255,255,255,1)),
-        color-stop(0.75, rgba(255,255,255,1))
-    ) no-repeat bottom center;
-    
-    -webkit-background-size: 100% 1px;
-}
-
-.fl-theme-android [class*=fl-list] > li:last-child {
-    background:transparent;
-}
-
-/* secondary link info behaviour */
-.fl-theme-android [class*=fl-list] > li .fl-link-secondary {
-    color: #fff;
-}
-
- /* summary link info ehaviour */
-.fl-theme-android [class*=fl-list] > li .fl-link-summary {
-    color:#999;
-}
-
-.fl-theme-android [class*=fl-list]:not(.fl-list):not(.fl-grid) a {    
-}
-
-/* A simulation for a:active on the device, requires JS */
-.fl-theme-android [class*=fl-list]:not(.fl-list):not(.fl-grid) a:active,
-.fl-theme-android [class*=fl-list]:not(.fl-list):not(.fl-grid) a.fl-link-hilight {
-       color: #000;
-    background: -webkit-gradient(linear, left top, left bottom, from(#ffb347), to(#ff702f));
-}
-
-.fl-theme-android [class*=fl-list]:not(.fl-list) a:active,
-.fl-theme-android [class*=fl-list]:not(.fl-list) a:active .fl-link-secondary,
-.fl-theme-android [class*=fl-list]:not(.fl-list) a:active .fl-link-summary,
-.fl-theme-android [class*=fl-list]:not(.fl-list) a.fl-link-loading * {
-    color: #000;
-}
-
-.fl-theme-android [class*=fl-list]:not(.fl-list) a.fl-link-loading {
-    color: #fff;
-    background: url(../images/themes/android/listmenu_loader.gif) no-repeat 97% center,
-                       -webkit-gradient(linear, left top, left bottom, from(#ffb347), to(#ff702f));
-}
-
-/***************************************/
-/* Grid overrides, removes nav coloring */
-.fl-theme-android .fl-grid li {
-    background-color:transparent;
-}
-.fl-theme-android .fl-grid li,
-.fl-theme-android .fl-grid li a {
-    background-image:none;
-    border:none;
-}
-.fl-theme-android .fl-grid li a {
-    background-color:#333;
-}
-.fl-theme-android .fl-grid li a:active,
-.fl-theme-android .fl-grid .fl-link-hilight {
-       color: #fff;
-    background: -webkit-gradient(linear, left top, left bottom, from(#ffb347), to(#ff702f));
-}
-.fl-theme-android .fl-grid .fl-grid-caption {
-       font-weight:normal;
-}
-/***************************************/
-/* instructional text (usually embossed too)*/
-.fl-theme-android .fl-note {
-    color:#999;
-}
-
-/****************************/
-/* Collapsing and expanding panels */
-.fl-theme-android .fl-container-autoHeading > *:first-child {
-    color:#444;
-    background: -webkit-gradient(linear, left top, left bottom, from(#CCC), to(#999));
-       text-shadow:rgba(0, 0, 0, 0.292969) 0px 2px 2px;
-}
-.fl-theme-android .fl-container-autoHeading > *:first-child:focus {
-    color:#000;
-    background: -webkit-gradient(linear, left top, left bottom, from(#FFF), to(#CCC));
-}
-.fl-theme-android .fl-container-autoHeading > :last-child {
-       background: transparent -webkit-gradient(radial, 50% 0, 10, 50% 0%, 300,
-        from(rgba(100,100,100,1)), 
-        to(rgba(0,0,0,0))
-    );
-       border-color:#666;
-       border-style:solid;
-}
-
-/****************************/
-/* Gloss tint for glossy icons/thumbnails */
-
-.fl-theme-android .fl-list-glossy > li a::before {
-    background-image: -webkit-gradient(radial, 50% -15%, 10, 50% -50%, 45, from(rgba(255,255,255,1)), to(rgba(255,255,255,0)), color-stop(90%, rgba(255,255,255,.65)));
-}
\ No newline at end of file
+ .fl-theme-android{background:#222;color:#fff;}
+.fl-theme-android .fl-bevel-black{text-shadow:rgba(0,0,0,0.35) 0 -1px 0;}
+.fl-theme-android .fl-bevel-white{text-shadow:rgba(200,200,200,0.85) 0 1px 0;}
+.fl-theme-android a{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);text-decoration:none;color:#fff;}
+.fl-theme-android h1,.fl-theme-android h2,.fl-theme-android h3{text-shadow:rgba(255,255,255,1) 0 1px 0;color:#000;background:#999 -webkit-gradient(linear,left top,left bottom,from(#ccc),to(#999)) no-repeat top left;}
+.fl-theme-android .fl-navbar{border-top-color:#333;border-bottom-color:#000;background-image:-webkit-gradient(linear,left top,left bottom,from(#666),color-stop(0.5,#333),color-stop(0.50,#000),to(#000));-webkit-box-shadow:0 0 5px rgba(0,0,0,0.5);}
+.fl-theme-android .fl-navbar{color:#fff;}
+.fl-theme-android .fl-navbar h1{color:#fff;background:transparent;text-shadow:rgba(0,0,0,0.5) 0 -1px 0;}
+.fl-theme-android .fl-navbar a{color:#fff;text-shadow:rgba(0,0,0,0.5) 0 -1px 0;}
+.fl-theme-android .fl-navbar .fl-button{-webkit-border-image:none;background-image:-webkit-gradient(linear,left top,left bottom,from(#444),color-stop(0.5,#666),color-stop(0.50,#333),to(#000));}
+.fl-theme-android .fl-navbar [class*=fl-button]:active{background-image:-webkit-gradient(linear,left top,left bottom,from(#ffb347),to(#ff702f));}
+.fl-theme-android .fl-navbar .fl-backButton{-webkit-border-image:url(../images/themes/android/navbar_back_button_insetShadow.png) 0 15 stretch;-webkit-mask-box-image:url(../images/themes/android/backbutton_mask.png) 0 15 stretch;}
+.fl-theme-android .fl-navbar .fl-button-inner{-webkit-border-image:url(../images/themes/android/navbar_normal_button_insetShadow.png) 5 5 5 5 stretch;}
+.fl-theme-android .fl-button{text-decoration:none;font-weight:bold;-webkit-border-image:url(../images/themes/android/button_bg_insetShadow.png) 10 stretch;}
+.fl-theme-android .fl-button.fl-bevel-white{color:#333;}
+.fl-theme-android .fl-button.fl-bevel-black{color:#FFF;}
+.fl-theme-android .fl-button-white{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(240,240,240,0.25)),to(rgba(220,220,220,0.75)),color-stop(0.5,rgba(240,240,240,1)),color-stop(0.50,rgba(200,200,200,0.8)));}
+.fl-theme-android .fl-button-black{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(106,106,106,0.25)),to(rgba(00,00,00,0.75)),color-stop(0.5,rgba(130,130,130,1)),color-stop(0.50,rgba(75,75,75,0.8)));}
+.fl-theme-android .fl-button-green{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(120,190,130,0.2)),to(rgba(50,170,60,0.75)),color-stop(0.5,rgba(120,190,130,1)),color-stop(0.50,rgba(0,150,10,0.8)));}
+.fl-theme-android .fl-button-blue{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(149,184,239,0.2)),to(rgba(35,109,229,0.75)),color-stop(0.5,rgba(149,184,239,1)),color-stop(0.50,rgba(75,148,244,0.8)));}
+.fl-theme-android .fl-tabs li{background-image:-webkit-gradient(linear,left top,left bottom,from(#666),color-stop(0.5,#666),color-stop(0.50,#000),to(#000));-webkit-border-image:url(../images/themes/android/navbar_normal_button_insetShadow.png) 5 5 5 5 stretch;-webkit-border-left-image:none;-webkit-background-origin:border;-webkit-background-clip:border;}
+.fl-theme-android .fl-tabs li a{color:#fff;}
+.fl-theme-android .fl-tabs li a,.fl-theme-android .fl-tabs .fl-tabs-active a{border-right-color:rgba(255,255,255,0.35);border-left-color:rgba(0,0,0,1);}
+.fl-theme-android .fl-tabs .fl-tabs-active{background-image:-webkit-gradient(linear,left top,left bottom,from(#ff702f),to(#ffb347));}
+.fl-theme-android .fl-tabs .fl-tabs-active a{color:#000;text-shadow:none;}
+.fl-theme-android .fl-list a{color:#ffb347;}
+.fl-theme-android .fl-list-menu a{color:#fff;}
+.fl-theme-android [class*=fl-list]>li{color:#fff;background:transparent -webkit-gradient(linear,left bottom,right bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,0)),color-stop(0.35,rgba(255,255,255,1)),color-stop(0.75,rgba(255,255,255,1))) no-repeat bottom center;-webkit-background-size:100% 1px;}
+.fl-theme-android [class*=fl-list]>li:last-child{background:transparent;}
+.fl-theme-android [class*=fl-list]>li .fl-link-secondary{color:#fff;}
+.fl-theme-android [class*=fl-list]>li .fl-link-summary{color:#999;}
+.fl-theme-android [class*=fl-list]:not(.fl-list):not(.fl-grid) a:active,.fl-theme-android [class*=fl-list]:not(.fl-list):not(.fl-grid) a.fl-link-hilight{color:#000;background:-webkit-gradient(linear,left top,left bottom,from(#ffb347),to(#ff702f));}
+.fl-theme-android [class*=fl-list]:not(.fl-list) a:active,.fl-theme-android [class*=fl-list]:not(.fl-list) a:active .fl-link-secondary,.fl-theme-android [class*=fl-list]:not(.fl-list) a:active .fl-link-summary,.fl-theme-android [class*=fl-list]:not(.fl-list) a.fl-link-loading *{color:#000;}
+.fl-theme-android [class*=fl-list]:not(.fl-list) a.fl-link-loading{color:#fff;background:url(../images/themes/android/listmenu_loader.gif) no-repeat 97% center,-webkit-gradient(linear,left top,left bottom,from(#ffb347),to(#ff702f));}
+.fl-theme-android .fl-grid li{background-color:transparent;}
+.fl-theme-android .fl-grid li,.fl-theme-android .fl-grid li a{background-image:none;border:none;}
+.fl-theme-android .fl-grid li a{background-color:#333;}
+.fl-theme-android .fl-grid li a:active,.fl-theme-android .fl-grid .fl-link-hilight{color:#fff;background:-webkit-gradient(linear,left top,left bottom,from(#ffb347),to(#ff702f));}
+.fl-theme-android .fl-grid .fl-grid-caption{font-weight:normal;}
+.fl-theme-android .fl-note{color:#999;}
+.fl-theme-android .fl-container-autoHeading>*:first-child{color:#444;background:-webkit-gradient(linear,left top,left bottom,from(#CCC),to(#999));text-shadow:rgba(0,0,0,0.292969) 0 2px 2px;}
+.fl-theme-android .fl-container-autoHeading>*:first-child:focus{color:#000;background:-webkit-gradient(linear,left top,left bottom,from(#FFF),to(#CCC));}
+.fl-theme-android .fl-container-autoHeading>:last-child{background:transparent -webkit-gradient(radial,50% 0,10,50% 0,300,from(rgba(100,100,100,1)),to(rgba(0,0,0,0)));border-color:#666;border-style:solid;}
+.fl-theme-android .fl-list-glossy>li a::before{background-image:-webkit-gradient(radial,50% -15%,10,50% -50%,45,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)),color-stop(90%,rgba(255,255,255,.65)));}
\ No newline at end of file
index b1b9dc7..0705195 100644 (file)
-/***************************************/
-/* general styles */
-.fl-theme-iphone {
-    background: -webkit-gradient(linear, left top, right top,
-        from(#c5ccd3),
-        to(#cfd5dd),
-        color-stop(0.80, #c5ccd3),
-        color-stop(0.80, #cfd5dd));
-    -webkit-background-origin: padding-box;
-    -webkit-background-clip: content-box;
-    -webkit-background-size: 10px 1px;
-}
-
-.fl-theme-iphone .fl-bevel-black {
-    text-shadow: rgba(0,0,0,0.35) 0px -1px 0px;
-}
-.fl-theme-iphone .fl-bevel-white {
-    text-shadow: rgba(255,255,255,1) 0px 1px 0px;
-}
-
-.fl-theme-iphone a {
-    -webkit-touch-callout:none; /* prevents iphone popup menu to copy / follow / bookmark a particular link */
-    -webkit-tap-highlight-color: rgba(0,0,0,0);
-    text-decoration:none;
-    color:#000;
-}
-
-.fl-theme-iphone h1,
-.fl-theme-iphone h2,
-.fl-theme-iphone h3 {
-    text-shadow: rgba(255,255,255,1) 0px 1px 0px;
-    color:#4C566C;
-}
-
-/***************************************/
-/* Navigation Bar */
-
-/*body::before {*/
-.fl-theme-iphone .fl-navbar {
-    border-top-color:#ccd6e2;
-    border-bottom-color:#000;
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(#B0BCCD),
-        color-stop(0.5, #889BB3),
-        color-stop(0.50, #6D84A2),
-        to(#6D84A2)
-    );
-}
-.fl-theme-iphone .fl-navbar {
-    color:#fff;    
-}
-
-.fl-theme-iphone .fl-navbar h1 {
-    color:#fff;
-    text-shadow: rgba(0,0,0,0.5) 0px -1px 0px;
-}
-
-.fl-theme-iphone .fl-navbar a {
-       color: #fff;
-    text-shadow: rgba(0,0,0,0.5) 0px -1px 0px;
-}
-.fl-theme-iphone .fl-navbar .fl-button {
-    -webkit-border-image:none;
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(#9aafca),
-        color-stop(0.5, #6d8cb3),
-        color-stop(0.50, #4b6b90),
-        to(#4b6b90)
-    );
-}
-.fl-theme-iphone .fl-navbar [class*=fl-button]:active {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(149, 184, 239,1)),
-        to(rgba(35,109,229,1)),
-        color-stop(0.5, rgba(149, 184, 239,1)),
-        color-stop(0.50, rgba(75,148,244,1))
-    );
-}
-
-.fl-theme-iphone .fl-navbar .fl-backButton {
-    /* See mobile layout for details */
-    -webkit-border-image: url(../images/themes/iphone/navbar_back_button_insetShadow.png) 0 15 stretch;
-    -webkit-mask-box-image: url(../images/themes/iphone/backbutton_mask.png) 0 15 stretch;
-}
-
-.fl-theme-iphone .fl-navbar .fl-button-inner {
-    -webkit-border-image: url(../images/themes/iphone/navbar_normal_button_insetShadow.png) 5 5 5 5 stretch;
-}
-
-/***************************************/
-/* general purpose gel buttons */
-/* effect is applied anywhere but the navbar, which has its own button look */
-.fl-theme-iphone .fl-button {
-    text-decoration:none;
-    font-weight:bold;
-    -webkit-border-image: url(../images/themes/iphone/button_bg_insetShadow.png) 10 stretch;
-}
-.fl-theme-iphone .fl-button.fl-bevel-white {
-    color:#333333;
-}
-.fl-theme-iphone .fl-button.fl-bevel-black {
-    color:#FFFFFF;
-}
-.fl-theme-iphone .fl-button-white {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(240,240,240,0.25)),
-        to(rgba(220,220,220,0.75)),
-        color-stop(0.5, rgba(240,240,240,1)),
-        color-stop(0.50, rgba(200,200,200,0.8))
-    );
-}
-.fl-theme-iphone .fl-button-black {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(106,106,106,0.25)),
-        to(rgba(00,00,00,0.75)),
-        color-stop(0.5, rgba(130,130,130,1)),
-        color-stop(0.50, rgba(75,75,75,0.8))
-    );
-}
-.fl-theme-iphone .fl-button-green {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(120,190,130,0.2)),
-        to(rgba(50,170,60,0.75)),
-        color-stop(0.5, rgba(120,190,130,1)),
-        color-stop(0.50, rgba(0,150,10,0.8))
-    );
-}
-.fl-theme-iphone .fl-button-blue {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(149, 184, 239,0.2)),
-        to(rgba(35,109,229,0.75)),
-        color-stop(0.5, rgba(149, 184, 239,1)),
-        color-stop(0.50, rgba(75,148,244,0.8))
-    );
-}
-/***************************************/
-/* tabs 1: small general purpose content dividers */
-
-.fl-theme-iphone .fl-tabs li {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(#9aafca),
-        color-stop(0.5, #6d8cb3),
-        color-stop(0.50, #4b6b90),
-        to(#4b6b90)
-    );
-    -webkit-border-image: url(../images/themes/iphone/navbar_normal_button_insetShadow.png) 5 5 5 5 stretch;
-    -webkit-border-left-image: none;
-    -webkit-background-origin: border;
-    -webkit-background-clip: border;
-}
-
-.fl-theme-iphone .fl-tabs li a,
-.fl-theme-iphone .fl-tabs .fl-tabs-active a {
-       color:#fff;
-    border-right-color:rgba(255,255,255,0.35);
-    border-left-color:rgba(0,0,0,0.35);
-}
-
-.fl-theme-iphone .fl-tabs .fl-tabs-active {
-    background-image: -webkit-gradient(linear, left top, left bottom,
-        from(rgba(149, 184, 239,1)),
-        to(rgba(35,109,229,1)),
-        color-stop(0.5, rgba(149, 184, 239,1)),
-        color-stop(0.50, rgba(75,148,244,1))
-    );
-}
-
-/*************************************************/
-/* Ordered lists, Unordererd lists, Thumbnail lists, Icon lists, Definition lists */
-/*************************************************/
-/* Default list system setup */
-
-.fl-theme-iphone .fl-list a {
-    color:#4a94f4;
-}
-
-.fl-theme-iphone [class*=fl-list] > li {
-       color: #000;
-    border-color: rgb(169,173,176);
-       background-color:#fff;
-}
-
-/* secondary link info behaviour */
-.fl-theme-iphone [class*=fl-list] > li .fl-link-secondary {
-    color: rgb(50, 79, 133);
-}
-
- /* summary link info ehaviour */
-.fl-theme-iphone [class*=fl-list] > li .fl-link-summary {
-    color:#999;
-}
-
-.fl-theme-iphone [class*=fl-list]:not(.fl-list):not(.fl-grid) a {
-    background: url(../images/themes/iphone/listmenu_arrow.png) no-repeat right 5px;
-}
-
-/* A simulation for a:active on the device, requires JS */
-/* since .fl-list is for mixed material lists, dont include them in these effects */
-.fl-theme-iphone [class*=fl-list]:not(.fl-list):not(.fl-grid) a:active,
-.fl-theme-iphone [class*=fl-list]:not(.fl-list):not(.fl-grid) a.fl-link-hilight {
-       color: #fff;
-    background: url(../images/themes/iphone/listmenu_arrow.png) no-repeat right -25px,
-                -webkit-gradient(linear, left top, left bottom, from(#4a94f4), to(#236de5));
-}
-
-.fl-theme-iphone [class*=fl-list]:not(.fl-list) a:active,
-.fl-theme-iphone [class*=fl-list]:not(.fl-list) a:active .fl-link-secondary,
-.fl-theme-iphone [class*=fl-list]:not(.fl-list) a:active .fl-link-summary,
-.fl-theme-iphone [class*=fl-list]:not(.fl-list) a.fl-link-loading * {
-    color: #fff;
-}
-
-.fl-theme-iphone [class*=fl-list]:not(.fl-list) a.fl-link-loading {
-    color: #fff;
-    background: url(../images/themes/iphone/listmenu_loader.gif) no-repeat 97% center,
-                       -webkit-gradient(linear, left top, left bottom, from(#4a94f4), to(#236de5));
-}
-
-/***************************************/
-/* Grid overrides, removes nav coloring */
-.fl-theme-iphone .fl-grid li {
-    background-color:transparent;
-}
-.fl-theme-iphone .fl-grid li,
-.fl-theme-iphone .fl-grid li a {
-    background-image:none;
-    border:none;
-}
-.fl-theme-iphone .fl-grid li a {
-    background-color:#333;
-}
-.fl-theme-iphone .fl-grid li a:active,
-.fl-theme-iphone .fl-grid .fl-link-hilight {
-       color: #fff;
-    background: -webkit-gradient(linear, left top, left bottom, from(#4a94f4), to(#236de5));
-}
-
-/***************************************/
-/* instructional text (usually embossed too)*/
-.fl-theme-iphone .fl-note {
-    color:#4C566C;
-}
-
-/****************************/
-/* Collapsing and expanding panels */
-.fl-theme-iphone .fl-container-autoHeading > *:first-child {
-       font-weight:normal;
-    color:rgba(255,255,255,1);
-       text-shadow: rgba(0,0,0, 1) 0px -1px 1px;
-    background: -webkit-gradient(linear, left top, left bottom, from(#999), to(#000));
-}
-.fl-theme-iphone .fl-container-autoHeading > *:first-child:focus {
-       font-weight:normal;
-    color:rgba(0,0,0,1);
-       text-shadow: rgba(0,0,0, .5) 0px 1px 2px;
-    background: -webkit-gradient(linear, left top, left bottom, from(#FFF), to(#CCC));
-}
-
-/****************************/
-/* Gloss tint for glossy icons/thumbnails */
-
-.fl-theme-iphone .fl-list-glossy > li a::before {
-    background-image: -webkit-gradient(radial, 50% -15%, 10, 50% -50%, 45, from(rgba(255,255,255,1)), to(rgba(255,255,255,0)), color-stop(90%, rgba(255,255,255,.65)));
-}
\ No newline at end of file
+ .fl-theme-iphone{background:-webkit-gradient(linear,left top,right top,from(#c5ccd3),to(#cfd5dd),color-stop(0.80,#c5ccd3),color-stop(0.80,#cfd5dd));-webkit-background-origin:padding-box;-webkit-background-clip:content-box;-webkit-background-size:10px 1px;}
+.fl-theme-iphone .fl-bevel-black{text-shadow:rgba(0,0,0,0.35) 0 -1px 0;}
+.fl-theme-iphone .fl-bevel-white{text-shadow:rgba(255,255,255,1) 0 1px 0;}
+.fl-theme-iphone a{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);text-decoration:none;color:#000;}
+.fl-theme-iphone h1,.fl-theme-iphone h2,.fl-theme-iphone h3{text-shadow:rgba(255,255,255,1) 0 1px 0;color:#4C566C;}
+.fl-theme-iphone .fl-navbar{border-top-color:#ccd6e2;border-bottom-color:#000;background-image:-webkit-gradient(linear,left top,left bottom,from(#B0BCCD),color-stop(0.5,#889BB3),color-stop(0.50,#6D84A2),to(#6D84A2));}
+.fl-theme-iphone .fl-navbar{color:#fff;}
+.fl-theme-iphone .fl-navbar h1{color:#fff;text-shadow:rgba(0,0,0,0.5) 0 -1px 0;}
+.fl-theme-iphone .fl-navbar a{color:#fff;text-shadow:rgba(0,0,0,0.5) 0 -1px 0;}
+.fl-theme-iphone .fl-navbar .fl-button{-webkit-border-image:none;background-image:-webkit-gradient(linear,left top,left bottom,from(#9aafca),color-stop(0.5,#6d8cb3),color-stop(0.50,#4b6b90),to(#4b6b90));}
+.fl-theme-iphone .fl-navbar [class*=fl-button]:active{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(149,184,239,1)),to(rgba(35,109,229,1)),color-stop(0.5,rgba(149,184,239,1)),color-stop(0.50,rgba(75,148,244,1)));}
+.fl-theme-iphone .fl-navbar .fl-backButton{-webkit-border-image:url(../images/themes/iphone/navbar_back_button_insetShadow.png) 0 15 stretch;-webkit-mask-box-image:url(../images/themes/iphone/backbutton_mask.png) 0 15 stretch;}
+.fl-theme-iphone .fl-navbar .fl-button-inner{-webkit-border-image:url(../images/themes/iphone/navbar_normal_button_insetShadow.png) 5 5 5 5 stretch;}
+.fl-theme-iphone .fl-button{text-decoration:none;font-weight:bold;-webkit-border-image:url(../images/themes/iphone/button_bg_insetShadow.png) 10 stretch;}
+.fl-theme-iphone .fl-button.fl-bevel-white{color:#333;}
+.fl-theme-iphone .fl-button.fl-bevel-black{color:#FFF;}
+.fl-theme-iphone .fl-button-white{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(240,240,240,0.25)),to(rgba(220,220,220,0.75)),color-stop(0.5,rgba(240,240,240,1)),color-stop(0.50,rgba(200,200,200,0.8)));}
+.fl-theme-iphone .fl-button-black{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(106,106,106,0.25)),to(rgba(00,00,00,0.75)),color-stop(0.5,rgba(130,130,130,1)),color-stop(0.50,rgba(75,75,75,0.8)));}
+.fl-theme-iphone .fl-button-green{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(120,190,130,0.2)),to(rgba(50,170,60,0.75)),color-stop(0.5,rgba(120,190,130,1)),color-stop(0.50,rgba(0,150,10,0.8)));}
+.fl-theme-iphone .fl-button-blue{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(149,184,239,0.2)),to(rgba(35,109,229,0.75)),color-stop(0.5,rgba(149,184,239,1)),color-stop(0.50,rgba(75,148,244,0.8)));}
+.fl-theme-iphone .fl-tabs li{background-image:-webkit-gradient(linear,left top,left bottom,from(#9aafca),color-stop(0.5,#6d8cb3),color-stop(0.50,#4b6b90),to(#4b6b90));-webkit-border-image:url(../images/themes/iphone/navbar_normal_button_insetShadow.png) 5 5 5 5 stretch;-webkit-border-left-image:none;-webkit-background-origin:border;-webkit-background-clip:border;}
+.fl-theme-iphone .fl-tabs li a,.fl-theme-iphone .fl-tabs .fl-tabs-active a{color:#fff;border-right-color:rgba(255,255,255,0.35);border-left-color:rgba(0,0,0,0.35);}
+.fl-theme-iphone .fl-tabs .fl-tabs-active{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(149,184,239,1)),to(rgba(35,109,229,1)),color-stop(0.5,rgba(149,184,239,1)),color-stop(0.50,rgba(75,148,244,1)));}
+.fl-theme-iphone .fl-list a{color:#4a94f4;}
+.fl-theme-iphone [class*=fl-list]>li{color:#000;border-color:#a9adb0;background-color:#fff;}
+.fl-theme-iphone [class*=fl-list]>li .fl-link-secondary{color:#324f85;}
+.fl-theme-iphone [class*=fl-list]>li .fl-link-summary{color:#999;}
+.fl-theme-iphone [class*=fl-list]:not(.fl-list):not(.fl-grid) a{background:url(../images/themes/iphone/listmenu_arrow.png) no-repeat right 5px;}
+.fl-theme-iphone [class*=fl-list]:not(.fl-list):not(.fl-grid) a:active,.fl-theme-iphone [class*=fl-list]:not(.fl-list):not(.fl-grid) a.fl-link-hilight{color:#fff;background:url(../images/themes/iphone/listmenu_arrow.png) no-repeat right -25px,-webkit-gradient(linear,left top,left bottom,from(#4a94f4),to(#236de5));}
+.fl-theme-iphone [class*=fl-list]:not(.fl-list) a:active,.fl-theme-iphone [class*=fl-list]:not(.fl-list) a:active .fl-link-secondary,.fl-theme-iphone [class*=fl-list]:not(.fl-list) a:active .fl-link-summary,.fl-theme-iphone [class*=fl-list]:not(.fl-list) a.fl-link-loading *{color:#fff;}
+.fl-theme-iphone [class*=fl-list]:not(.fl-list) a.fl-link-loading{color:#fff;background:url(../images/themes/iphone/listmenu_loader.gif) no-repeat 97% center,-webkit-gradient(linear,left top,left bottom,from(#4a94f4),to(#236de5));}
+.fl-theme-iphone .fl-grid li{background-color:transparent;}
+.fl-theme-iphone .fl-grid li,.fl-theme-iphone .fl-grid li a{background-image:none;border:none;}
+.fl-theme-iphone .fl-grid li a{background-color:#333;}
+.fl-theme-iphone .fl-grid li a:active,.fl-theme-iphone .fl-grid .fl-link-hilight{color:#fff;background:-webkit-gradient(linear,left top,left bottom,from(#4a94f4),to(#236de5));}
+.fl-theme-iphone .fl-note{color:#4C566C;}
+.fl-theme-iphone .fl-container-autoHeading>*:first-child{font-weight:normal;color:rgba(255,255,255,1);text-shadow:rgba(0,0,0,1) 0 -1px 1px;background:-webkit-gradient(linear,left top,left bottom,from(#999),to(#000));}
+.fl-theme-iphone .fl-container-autoHeading>*:first-child:focus{font-weight:normal;color:rgba(0,0,0,1);text-shadow:rgba(0,0,0,.5) 0 1px 2px;background:-webkit-gradient(linear,left top,left bottom,from(#FFF),to(#CCC));}
+.fl-theme-iphone .fl-list-glossy>li a::before{background-image:-webkit-gradient(radial,50% -15%,10,50% -50%,45,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)),color-stop(90%,rgba(255,255,255,.65)));}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-reset-context.css b/docs/jscripts/infusion/framework/fss/css/fss-reset-context.css
new file mode 100644 (file)
index 0000000..3692152
--- /dev/null
@@ -0,0 +1,14 @@
+html.fl-reset{color:#000;}
+body.fl-reset,.fl-reset body,.fl-reset div,.fl-reset dl,.fl-reset dt,.fl-reset dd,.fl-reset ul,.fl-reset ol,.fl-reset li,.fl-reset h1,.fl-reset h2,.fl-reset h3,.fl-reset h4,.fl-reset h5,.fl-reset h6,.fl-reset pre,.fl-reset code,.fl-reset form,.fl-reset fieldset,.fl-reset legend,.fl-reset input,.fl-reset textarea,.fl-reset p,.fl-reset blockquote,.fl-reset th,.fl-reset td{margin:0;padding:0;}
+.fl-reset table{border-collapse:collapse;border-spacing:0;}
+.fl-reset fieldset,.fl-reset img{border:0;}
+.fl-reset address,.fl-reset caption,.fl-reset cite,.fl-reset code,.fl-reset dfn,.fl-reset em,.fl-reset strong,.fl-reset th,.fl-reset var{font-style:normal;font-weight:normal;}
+.fl-reset li{list-style:none;}
+.fl-reset caption,.fl-reset th{text-align:left;}
+.fl-reset h1,.fl-reset h2,.fl-reset h3,.fl-reset h4,.fl-reset h5,.fl-reset h6{font-size:100%;font-weight:normal;}
+.fl-reset q:before,.fl-reset q:after{content:'';}
+.fl-reset abbr,.fl-reset acronym{border:0;font-variant:normal;}
+.fl-reset sup{vertical-align:text-top;}
+.fl-reset sub{vertical-align:text-bottom;}
+.fl-reset legend{color:#000;}
+.fl-reset button{font-family:inherit;font-size:inherit;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-reset-global.css b/docs/jscripts/infusion/framework/fss/css/fss-reset-global.css
new file mode 100644 (file)
index 0000000..698e1e7
--- /dev/null
@@ -0,0 +1,14 @@
+html{color:#000;}
+body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
+table{border-collapse:collapse;border-spacing:0;}
+fieldset,img{border:0;}
+address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
+li{list-style:none;}
+caption,th{text-align:left;}
+h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
+q:before,q:after{content:'';}
+abbr,acronym{border:0;font-variant:normal;}
+sup{vertical-align:text-top;}
+sub{vertical-align:text-bottom;}
+legend{color:#000;}
+button{font-family:inherit;font-size:inherit;}
\ No newline at end of file
index ccef1d8..8493fad 100644 (file)
@@ -1,37 +1 @@
-table{font-size:inherit;font:100%;}
-pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}
-html{color:#000;background:#FFF;}
-body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
-table{border-collapse:collapse;border-spacing:0;}
-fieldset,img{border:0;}
-address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
-li{list-style:none;}
-caption,th{text-align:left;}
-h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
-q:before,q:after{content:'';}
-abbr,acronym{border:0;font-variant:normal;}
-sup{vertical-align:text-top;}
-sub{vertical-align:text-bottom;}
-legend{color:#000;}
-h1{font-size:138.5%;}
-h2{font-size:123.1%;}
-h3{font-size:108%;}
-h1,h2,h3{margin:1em 0;}
-h1,h2,h3,h4,h5,h6,strong{font-weight:bold;}
-abbr,acronym{border-bottom:1px dotted #000;cursor:help;}
-em{font-style:italic;}
-blockquote,ul,ol,dl{margin:1em;}
-ol,ul,dl{margin-left:2em;}
-ol li{list-style:decimal outside;}
-ul li{list-style:disc outside;}
-dl dd{margin-left:1em;}
-th,td{border:1px solid #000;padding:.5em;}
-th{font-weight:bold;text-align:center;}
-caption{margin-bottom:.5em;text-align:center;}
-p,fieldset,table,pre{margin-bottom:1em;}
-input[type=text],input[type=password],textarea{width:12.25em;*width:11.9em;}
-input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}
-html{overflow:auto;font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;}
-input,textarea,select{*font-size:100%;*font-family:sans-serif;}
-input{*overflow:visible;*padding:0 1em;}
-:focus{outline:2px solid black;}
\ No newline at end of file
+@import url('fss-reset-global.css');@import url('fss-base-global.css');
\ No newline at end of file
index ef3f4b0..0d8ec89 100644 (file)
@@ -1,30 +1,31 @@
-.fl-font-size-70,.fl-font-size-70 body,.fl-font-size-70 input,.fl-font-size-70 select,.fl-font-size-70 textarea{font-size:.7em!important;line-height:1em!important;}
-.fl-font-size-80,.fl-font-size-80 body,.fl-font-size-80 input,.fl-font-size-80 select,.fl-font-size-80 textarea{font-size:.8em!important;line-height:1.1em!important;}
-.fl-font-size-90,.fl-font-size-90 body,.fl-font-size-90 input,.fl-font-size-90 select,.fl-font-size-90 textarea{font-size:.9em!important;line-height:1.2em!important;}
-.fl-font-size-100,.fl-font-size-100 body,.fl-font-size-100 input,.fl-font-size-100 select,.fl-font-size-100 textarea{font-size:1em!important;line-height:1.3em!important;}
-.fl-font-size-110,.fl-font-size-110 body,.fl-font-size-110 input,.fl-font-size-110 select,.fl-font-size-110 textarea{font-size:1.1em!important;line-height:1.4em!important;}
-.fl-font-size-120,.fl-font-size-120 body,.fl-font-size-120 input,.fl-font-size-120 select,.fl-font-size-120 textarea{font-size:1.2em!important;line-height:1.5em!important;}
-.fl-font-size-130,.fl-font-size-130 body,.fl-font-size-130 input,.fl-font-size-130 select,.fl-font-size-130 textarea{font-size:1.3em!important;line-height:1.6em!important;}
-.fl-font-size-140,.fl-font-size-140 body,.fl-font-size-140 input,.fl-font-size-140 select,.fl-font-size-140 textarea{font-size:1.4em!important;line-height:1.7em!important;}
-.fl-font-size-150,.fl-font-size-150 body,.fl-font-size-150 input,.fl-font-size-150 select,.fl-font-size-150 textarea{font-size:1.5em!important;line-height:1.8em!important;}
+.fl-font-size-70,.fl-font-size-70 body,.fl-font-size-70 input,.fl-font-size-70 select,.fl-font-size-70 textarea{font-size:.7em;line-height:1em;}
+.fl-font-size-80,.fl-font-size-80 body,.fl-font-size-80 input,.fl-font-size-80 select,.fl-font-size-80 textarea{font-size:.8em;line-height:1.1em;}
+.fl-font-size-90,.fl-font-size-90 body,.fl-font-size-90 input,.fl-font-size-90 select,.fl-font-size-90 textarea{font-size:.9em;line-height:1.2em;}
+.fl-font-size-100,.fl-font-size-100 body,.fl-font-size-100 input,.fl-font-size-100 select,.fl-font-size-100 textarea{font-size:1em;line-height:1.3em;}
+.fl-font-size-110,.fl-font-size-110 body,.fl-font-size-110 input,.fl-font-size-110 select,.fl-font-size-110 textarea{font-size:1.1em;line-height:1.4em;}
+.fl-font-size-120,.fl-font-size-120 body,.fl-font-size-120 input,.fl-font-size-120 select,.fl-font-size-120 textarea{font-size:1.2em;line-height:1.5em;}
+.fl-font-size-130,.fl-font-size-130 body,.fl-font-size-130 input,.fl-font-size-130 select,.fl-font-size-130 textarea{font-size:1.3em;line-height:1.6em;}
+.fl-font-size-140,.fl-font-size-140 body,.fl-font-size-140 input,.fl-font-size-140 select,.fl-font-size-140 textarea{font-size:1.4em;line-height:1.7em;}
+.fl-font-size-150,.fl-font-size-150 body,.fl-font-size-150 input,.fl-font-size-150 select,.fl-font-size-150 textarea{font-size:1.5em;line-height:1.8em;}
 @media screen and(-webkit-min-device-pixel-ratio:0){[class~='fl-font-size-70'] input[type=submit],[class~='fl-font-size-70'] input[type=button]{padding:0 1em;}
-[class~='fl-font-size-80'] input[type=submit],[class~='fl-font-size-80'] input[type=button]{font-size:.8em!important;padding:0 1em;}
-[class~='fl-font-size-90'] input[type=submit],[class~='fl-font-size-90'] input[type=button]{font-size:.9em!important;padding:0 1em;}
-[class~='fl-font-size-100'] input[type=submit],[class~='fl-font-size-100'] input[type=button]{font-size:1em!important;padding:0 1em;}
-[class~='fl-font-size-110'] input[type=submit],input[type=submit][class~='fl-font-size-110'],[class~='fl-font-size-110'] input[type=button]{background-color:#fff;font-size:1.1em!important;padding:0 1em;}
-[class~='fl-font-size-120'] input[type=submit],input[type=submit][class~='fl-font-size-120'],[class~='fl-font-size-120'] input[type=button]{background-color:#fff;font-size:1.2em!important;padding:0 1em;}
-[class~='fl-font-size-130'] input[type=submit],input[type=submit][class~='fl-font-size-130'],[class~='fl-font-size-130'] input[type=button]{background-color:#fff;font-size:1.3em!important;padding:0 1em;}
-[class~='fl-font-size-140'] input[type=submit],input[type=submit][class~='fl-font-size-140'],[class~='fl-font-size-140'] input[type=button]{background-color:#fff;font-size:1.4em!important;padding:0 1em;}
-[class~='fl-font-size-150'] input[type=submit],input[type=submit][class~='fl-font-size-150'],[class~='fl-font-size-150'] input[type=button]{background-color:#fff;font-size:1.5em!important;padding:0 1em;}
+[class~='fl-font-size-80'] input[type=submit],[class~='fl-font-size-80'] input[type=button]{font-size:.8em;padding:0 1em;}
+[class~='fl-font-size-90'] input[type=submit],[class~='fl-font-size-90'] input[type=button]{font-size:.9em;padding:0 1em;}
+[class~='fl-font-size-100'] input[type=submit],[class~='fl-font-size-100'] input[type=button]{font-size:1em;padding:0 1em;}
+[class~='fl-font-size-110'] input[type=submit],input[type=submit][class~='fl-font-size-110'],[class~='fl-font-size-110'] input[type=button]{background-color:#fff;font-size:1.1em;padding:0 1em;}
+[class~='fl-font-size-120'] input[type=submit],input[type=submit][class~='fl-font-size-120'],[class~='fl-font-size-120'] input[type=button]{background-color:#fff;font-size:1.2em;padding:0 1em;}
+[class~='fl-font-size-130'] input[type=submit],input[type=submit][class~='fl-font-size-130'],[class~='fl-font-size-130'] input[type=button]{background-color:#fff;font-size:1.3em;padding:0 1em;}
+[class~='fl-font-size-140'] input[type=submit],input[type=submit][class~='fl-font-size-140'],[class~='fl-font-size-140'] input[type=button]{background-color:#fff;font-size:1.4em;padding:0 1em;}
+[class~='fl-font-size-150'] input[type=submit],input[type=submit][class~='fl-font-size-150'],[class~='fl-font-size-150'] input[type=button]{background-color:#fff;font-size:1.5em;padding:0 1em;}
 [class~='fl-font-serif'] input[type=submit],[class~='fl-font-sans'] input[type=submit],[class~='fl-font-monospace'] input[type=submit],[class~='fl-font-arial'] input[type=submit],[class~='fl-font-verdana'] input[type=submit],[class~='fl-font-times'] input[type=submit],[class~='fl-font-courier'] input[type=submit]{background-color:#fff;padding:0 1em;}
 }
-.fl-font-serif,.fl-font-serif *{font-family:Georgia,Times,"Times New Roman","Book Antiqua",serif!important;}
-.fl-font-sans,.fl-font-sans *{font-family:Tahoma,Verdana,Helvetica,sans-serif!important;}
-.fl-font-monospace,.fl-font-monospace *{font-family:"Courier New,Courier",monospace!important;}
-.fl-font-arial,.fl-font-arial *{font-family:"Arial"!important;}
-.fl-font-verdana,.fl-font-verdana *{font-family:"Verdana"!important;}
-.fl-font-times,.fl-font-times *{font-family:Georgia,Times,"Times New Roman",serif!important;}
-.fl-font-courier,.fl-font-courier *{font-family:"Courier New",Courier,monospace!important;}
+.fl-font-serif,.fl-font-serif *{font-family:Georgia,Times,"Times New Roman","Book Antiqua",serif;}
+.fl-font-sans,.fl-font-sans *{font-family:Tahoma,Verdana,Helvetica,sans-serif;}
+.fl-font-monospace,.fl-font-monospace *{font-family:"Courier New,Courier",monospace;}
+.fl-font-arial,.fl-font-arial *{font-family:"Arial";}
+.fl-font-verdana,.fl-font-verdana *{font-family:"Verdana";}
+.fl-font-times,.fl-font-times *{font-family:Georgia,Times,"Times New Roman",serif;}
+.fl-font-courier,.fl-font-courier *{font-family:"Courier New",Courier,monospace;}
+.fl-font-comic-sans,.fl-font-comic-sans *{font-family:"Comic Sans MS",sans-serif;}
 .fl-text-align-left{text-align:left;}
 .fl-text-align-right{text-align:right;}
 .fl-text-align-center{text-align:center;}
 .fl-font-spacing-4,.fl-font-spacing-4 body,.fl-font-spacing-4 input,.fl-font-spacing-4 select,.fl-font-spacing-4 textarea{letter-spacing:.4em;}
 .fl-font-spacing-5,.fl-font-spacing-5 body,.fl-font-spacing-5 input,.fl-font-spacing-5 select,.fl-font-spacing-5 textarea{letter-spacing:.5em;}
 .fl-font-spacing-6,.fl-font-spacing-6 body,.fl-font-spacing-6 input,.fl-font-spacing-6 select,.fl-font-spacing-6 textarea{letter-spacing:.6em;}
-.fl-text-aqua{color:aqua!important;}
-.fl-text-black{color:black!important;}
-.fl-text-blue{color:blue!important;}
-.fl-text-fuchsia{color:fuchsia!important;}
-.fl-text-gray{color:gray!important;}
-.fl-text-green{color:green!important;}
-.fl-text-lime{color:lime!important;}
-.fl-text-maroon{color:maroon!important;}
-.fl-text-navy{color:navy!important;}
-.fl-text-olive{color:olive!important;}
-.fl-text-purple{color:purple!important;}
-.fl-text-red{color:red!important;}
-.fl-text-silver{color:silver!important;}
-.fl-text-teal{color:teal!important;}
-.fl-text-white{color:white!important;}
-.fl-text-yellow{color:yellow!important;}
-.fl-text-underline{text-decoration:underline!important;}
-.fl-text-bold{font-weight:bold!important;}
-.fl-text-larger{font-size:125%!important;}
+.fl-text-aqua{color:aqua;}
+.fl-text-black{color:black;}
+.fl-text-blue{color:blue;}
+.fl-text-fuchsia{color:fuchsia;}
+.fl-text-gray{color:gray;}
+.fl-text-green{color:green;}
+.fl-text-lime{color:lime;}
+.fl-text-maroon{color:maroon;}
+.fl-text-navy{color:navy;}
+.fl-text-olive{color:olive;}
+.fl-text-purple{color:purple;}
+.fl-text-red{color:red;}
+.fl-text-silver{color:silver;}
+.fl-text-teal{color:teal;}
+.fl-text-white{color:white;}
+.fl-text-yellow{color:yellow;}
+.fl-text-underline{text-decoration:underline;}
+.fl-text-bold{font-weight:bold;}
+.fl-text-larger{font-size:125%;}
 .fl-input-outline{border:2px solid;}
-.fl-highlight-yellow,.fl-highlight-hover-yellow:hover,.fl-highlight-focus-yellow:focus{background-color:#FF0!important;background-image:none!important;}
-.fl-highlight-green,.fl-highlight-hover-green:hover,.fl-highlight-focus-green:focus{background-color:#0F0!important;background-image:none!important;}
-.fl-highlight-blue,.fl-highlight-hover-blue:hover,.fl-highlight-focus-blue:focus{background-color:#00F!important;background-image:none!important;}
\ No newline at end of file
+.fl-highlight-yellow,.fl-highlight-hover-yellow:hover,.fl-highlight-focus-yellow:focus{background-color:#FF0;background-image:none;}
+.fl-highlight-green,.fl-highlight-hover-green:hover,.fl-highlight-focus-green:focus{background-color:#0F0;background-image:none;}
+.fl-highlight-blue,.fl-highlight-hover-blue:hover,.fl-highlight-focus-blue:focus{background-color:#00F;background-image:none;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-theme-blackYellow.css b/docs/jscripts/infusion/framework/fss/css/fss-theme-blackYellow.css
new file mode 100644 (file)
index 0000000..a2f3bf1
--- /dev/null
@@ -0,0 +1,41 @@
+.fl-theme-blackYellow{color:#000;background-color:#ff0;}
+.fl-theme-blackYellow div,.fl-theme-blackYellow input{color:#000;background-color:#ff0;border-color:#000;}
+.fl-theme-blackYellow iframe{border-color:#000;}
+.fl-theme-blackYellow a{color:#000;font-weight:bold;background-color:#ff0;}
+.fl-theme-blackYellow h1,.fl-theme-blackYellow h2,.fl-theme-blackYellow h3,.fl-theme-blackYellow h4,.fl-theme-blackYellow h5,.fl-theme-blackYellow h6{color:#000;background-color:#ff0;border-color:#000;}
+.fl-theme-blackYellow th{border:.1em solid #000;background-color:#000;color:#ff0;}
+.fl-theme-blackYellow td{border:.1em solid #000;}
+.fl-theme-blackYellow .fl-focus:focus,.fl-theme-blackYellow .fl-focus :focus,.fl-theme-blackYellow.fl-focus :focus,.fl-theme-blackYellow .selectable{outline:.2em solid #F00;}
+.fl-theme-blackYellow .fl-knockout{background:transparent!important;color:#000;}
+.fl-theme-blackYellow .fl-icon{background-color:#ff0;}
+.fl-theme-blackYellow .fl-tabs{border-bottom-color:#000;}
+.fl-theme-blackYellow .fl-tabs li,.fl-theme-blackYellow .fl-tabs li *{border-color:#000;border-bottom-color:#000;}
+.fl-theme-blackYellow .fl-tabs li{background-color:#000;}
+.fl-theme-blackYellow .fl-tabs li *{color:#ff0;font-weight:bold;background-color:#000;text-decoration:none;}
+.fl-theme-blackYellow .fl-tabs li:hover,.fl-theme-blackYellow .fl-tabs li:hover *,.fl-theme-blackYellow .fl-tabs li a:hover{color:#000;background-color:#ff0;}
+.fl-theme-blackYellow .fl-tabs li.fl-tabs-active,.fl-theme-blackYellow .fl-tabs li.fl-tabs-active a,.fl-theme-blackYellow .fl-tabs li.fl-tabs-active a:hover,.fl-theme-blackYellow .fl-tabs li.fl-activeTab,.fl-theme-blackYellow .fl-tabs li.fl-activeTab:hover,.fl-theme-blackYellow .fl-tabs li.fl-activeTab a,.fl-theme-blackYellow .fl-tabs li.fl-activeTab a:hover{background-color:#ff0;border-bottom-color:#ff0;color:#000;}
+.fl-theme-blackYellow .fl-tab-content{background-color:#ff0;color:#000;}
+.fl-theme-blackYellow .fl-listmenu,.fl-theme-blackYellow .fl-list-menu{border:1px solid #000;border-bottom-width:2px;background-color:#ff0;}
+.fl-theme-blackYellow .fl-listmenu li,.fl-theme-blackYellow .fl-list-menu li,.fl-theme-blackYellow .fl-listmenu li a,.fl-theme-blackYellow .fl-list-menu li a{font-weight:bold;color:#000;background-color:#ff0;border-color:#000;text-decoration:none;}
+.fl-theme-blackYellow .fl-listmenu a:hover,.fl-theme-blackYellow .fl-list-menu a:hover{background-color:#000;color:#ff0;}
+.fl-theme-blackYellow .fl-listmenu .fl-activemenu a,.fl-theme-blackYellow .fl-list-menu .fl-activemenu a,.fl-theme-blackYellow .fl-listmenu .fl-activemenu a:hover,.fl-theme-blackYellow .fl-list-menu .fl-activemenu a:hover{background-color:#000;border-bottom-color:#ff0;color:#ff0;}
+.fl-theme-blackYellow .fl-button-left,.fl-theme-blackYellow .fl-button-right{background-image:url(../images/themes/blackYellow/buttons-med-cap.png);}
+.fl-theme-blackYellow .fl-button-inner{background-image:url(../images/themes/blackYellow/buttons-med-bg.png);}
+.fl-theme-blackYellow .fl-widget{background-color:#000;border:1px solid #ff0;}
+.fl-theme-blackYellow .fl-widget h2{color:#000;}
+.fl-theme-blackYellow .fl-widget a{color:#000;}
+.fl-theme-blackYellow .fl-widget .fl-icon-more{background-image:url('../images/themes/blackYellow/icon-widget-More.png');margin-left:0;}
+.fl-theme-blackYellow .fl-widget .fl-icon-close{background-image:url('../images/themes/blackYellow/icon-widget-Close.png');margin-right:0;}
+.fl-theme-blackYellow .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-blackYellow .fl-grabbable .fl-widget-titlebar{background-image:url('../images/themes/blackYellow/icon-widget-gripper.png');}
+.fl-theme-blackYellow .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-blackYellow .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-blackYellow .fl-widget-titlebar .fl-button-right,.fl-theme-blackYellow .fl-widget-titlebar .fl-button-left{color:#000;background-image:url('../images/themes/blackYellow/buttons-titlebar-cap.png');text-decoration:none;}
+.fl-theme-blackYellow .fl-widget-titlebar .fl-button-inner{background-image:url('../images/themes/blackYellow/buttons-titlebar-bg.png');}
+.fl-theme-blackYellow .fl-widget .fl-widget-options{padding:0;}
+.fl-theme-blackYellow .fl-widget .fl-widget-options li{border-left:1px solid #ff0;}
+.fl-theme-blackYellow .fl-widget .fl-widget-content{background-color:#ff0;}
+.fl-theme-blackYellow .fl-progress-bounds{border-color:#000;background-color:#ff0;}
+.fl-theme-blackYellow .fl-progress-fill{color:#ff0;background-color:#000;}
+.fl-theme-blackYellow .fl-reorderer-dropMarker{background-color:#f00;}
+.fl-theme-blackYellow .fl-inlineEdit-edit{background-color:#000;color:#ff0;border:.1em solid #ff0;padding:.1em;margin:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-theme-bw.css b/docs/jscripts/infusion/framework/fss/css/fss-theme-bw.css
new file mode 100644 (file)
index 0000000..450d27a
--- /dev/null
@@ -0,0 +1,42 @@
+.fl-theme-bw,.fl-theme-bw *,.fl-preview-theme.fl-theme-bw,.fl-theme-wb.fl-inverted-color,.fl-theme-wb .fl-inverted-color,.fl-theme-wb.fl-inverted-color *,.fl-theme-wb .fl-inverted-color *,.fl-preview-theme.fl-theme-wb.fl-inverted-color{color:#000;background-color:#fff;border-color:#000;}
+.fl-theme-bw div,.fl-theme-bw input,.fl-theme-wb .fl-inverted-color div,.fl-theme-wb .fl-inverted-color input{color:#000;background-color:#fff;border-color:#000;}
+.fl-theme-bw iframe,.fl-theme-wb .fl-inverted-color iframe{border-color:#000;}
+.fl-theme-bw a,.fl-theme-wb .fl-inverted-color a{color:#000;font-weight:bold;background-color:#fff;}
+.fl-theme-bw h1,.fl-theme-bw h2,.fl-theme-bw h3,.fl-theme-bw h4,.fl-theme-bw h5,.fl-theme-bw h6,.fl-theme-wb .fl-inverted-color h1,.fl-theme-wb .fl-inverted-color h2,.fl-theme-wb .fl-inverted-color h3,.fl-theme-wb .fl-inverted-color h4,.fl-theme-wb .fl-inverted-color h5,.fl-theme-wb .fl-inverted-color h6{color:#000;background-color:#fff;border-color:#000;}
+.fl-theme-bw th,.fl-theme-wb .fl-inverted-color th{border:.1em solid #000;background-color:#000;color:#fff;}
+.fl-theme-bw td,.fl-theme-wb .fl-inverted-color td{border:.1em solid #000;}
+.fl-theme-bw .fl-focus:focus,.fl-theme-bw .fl-focus :focus,.fl-theme-bw.fl-focus :focus,.fl-theme-bw .selectable,.fl-theme-wb .fl-inverted-color .fl-focus:focus,.fl-theme-wb .fl-inverted-color .fl-focus :focus,.fl-theme-wb.fl-inverted-color.fl-focus :focus,.fl-theme-wb .fl-inverted-color .selectable{outline:.2em solid #F00;}
+.fl-theme-bw .fl-knockout,.fl-theme-wb .fl-inverted-color .fl-knockout{background:transparent!important;color:#000;}
+.fl-theme-bw .fl-icon,.fl-theme-wb .fl-inverted-color .fl-icon{background-color:#fff;}
+.fl-theme-bw .fl-tabs,.fl-theme-wb .fl-inverted-color .fl-tabs{border-bottom-color:#000;}
+.fl-theme-bw .fl-tabs li,.fl-theme-bw .fl-tabs li *,.fl-theme-wb .fl-inverted-color .fl-tabs li,.fl-theme-wb .fl-inverted-color .fl-tabs li *{border-color:#000;border-bottom-color:#000;}
+.fl-theme-bw .fl-tabs li,.fl-theme-wb .fl-inverted-color .fl-tabs li{background-color:#000;}
+.fl-theme-bw .fl-tabs li *,.fl-theme-wb .fl-inverted-color .fl-tabs li *{color:#fff;font-weight:bold;background-color:#000;text-decoration:none;}
+.fl-theme-bw .fl-tabs li:hover,.fl-theme-bw .fl-tabs li:hover *,.fl-theme-bw .fl-tabs li a:hover,.fl-theme-wb .fl-inverted-color .fl-tabs li:hover,.fl-theme-wb .fl-inverted-color .fl-tabs li:hover *,.fl-theme-wb .fl-inverted-color .fl-tabs li a:hover{color:#000;background-color:#fff;}
+.fl-theme-bw .fl-tabs li.fl-tabs-active,.fl-theme-bw .fl-tabs li.fl-tabs-active a,.fl-theme-bw .fl-tabs li.fl-tabs-active a:hover,.fl-theme-bw .fl-tabs li.fl-activeTab,.fl-theme-bw .fl-tabs li.fl-activeTab:hover,.fl-theme-bw .fl-tabs li.fl-activeTab a,.fl-theme-bw .fl-tabs li.fl-activeTab a:hover,.fl-theme-wb .fl-inverted-color .fl-tabs li.fl-tabs-active,.fl-theme-wb .fl-inverted-color .fl-tabs li.fl-tabs-active a,.fl-theme-wb .fl-inverted-color .fl-tabs li.fl-tabs-active a:hover,.fl-theme-wb .fl-inverted-color .fl-tabs li.fl-activeTab,.fl-theme-wb .fl-inverted-color .fl-tabs li.fl-activeTab:hover,.fl-theme-wb .fl-inverted-color .fl-tabs li.fl-activeTab a,.fl-theme-wb .fl-inverted-color .fl-tabs li.fl-activeTab a:hover{background-color:#fff;border-bottom-color:#fff;color:#000;}
+.fl-theme-bw .fl-tab-content,.fl-theme-wb .fl-inverted-color .fl-tab-content{background-color:#fff;color:#000;}
+.fl-theme-bw .fl-listmenu,.fl-theme-bw .fl-list-menu,.fl-theme-wb .fl-inverted-color .fl-listmenu,.fl-theme-wb .fl-inverted-color .fl-list-menu{border:1px solid #000;border-bottom-width:2px;background-color:#fff;}
+.fl-theme-bw .fl-listmenu li,.fl-theme-bw .fl-list-menu li,.fl-theme-bw .fl-listmenu li a,.fl-theme-bw .fl-list-menu li a,.fl-theme-wb .fl-inverted-color .fl-listmenu li,.fl-theme-wb .fl-inverted-color .fl-list-menu li,.fl-theme-wb .fl-inverted-color .fl-listmenu li a,.fl-theme-wb .fl-inverted-color .fl-list-menu li a{font-weight:bold;color:#000;background-color:#fff;border-color:#000;text-decoration:none;}
+.fl-theme-bw .fl-listmenu a:hover,.fl-theme-bw .fl-list-menu a:hover,.fl-theme-wb .fl-inverted-color .fl-listmenu a:hover,.fl-theme-wb .fl-inverted-color .fl-list-menu a:hover{background-color:#000;color:#fff;}
+.fl-theme-bw .fl-listmenu .fl-activemenu a,.fl-theme-bw .fl-list-menu .fl-activemenu a,.fl-theme-bw .fl-listmenu .fl-activemenu a:hover,.fl-theme-bw .fl-list-menu .fl-activemenu a:hover,.fl-theme-wb .fl-inverted-color .fl-listmenu .fl-activemenu a,.fl-theme-wb .fl-inverted-color .fl-list-menu .fl-activemenu a,.fl-theme-wb .fl-inverted-color .fl-listmenu .fl-activemenu a:hover,.fl-theme-wb .fl-inverted-color .fl-list-menu .fl-activemenu a:hover{background-color:#000;border-bottom-color:#fff;color:#fff;}
+.fl-theme-bw .fl-button-left,.fl-theme-bw .fl-button-right,.fl-theme-wb .fl-inverted-color .fl-button-left,.fl-theme-wb .fl-inverted-color .fl-button-right{color:#000;background-color:#fff;}
+.fl-theme-bw .fl-button-left,.fl-theme-bw .fl-button-right,.fl-theme-wb .fl-inverted-color .fl-button-left,.fl-theme-wb .fl-inverted-color .fl-button-right{background-image:url('../images/themes/bw//buttons-med-cap.png');}
+.fl-theme-bw .fl-button-inner,.fl-theme-wb .fl-inverted-color .fl-button-inner{background-image:url('../images/themes/bw/buttons-med-bg.png');}
+.fl-theme-bw .fl-widget,.fl-theme-wb .fl-inverted-color .fl-widget{background-color:#000;border:1px solid #fff;}
+.fl-theme-bw .fl-widget h2,.fl-theme-wb .fl-inverted-color .fl-widget h2{display:inline;}
+.fl-theme-bw .fl-widget a,.fl-theme-wb .fl-inverted-color .fl-widget a{color:#000;}
+.fl-theme-bw .fl-widget .fl-icon-more,.fl-theme-wb .fl-inverted-color .fl-widget .fl-icon-more{background-image:url('../images/themes/bw/icon-widget-More.png');margin-left:0;}
+.fl-theme-bw .fl-widget .fl-icon-close,.fl-theme-wb .fl-inverted-color .fl-widget .fl-icon-close{background-image:url('../images/themes/bw/icon-widget-Close.png');margin-right:0;}
+.fl-theme-bw .fl-widget .fl-widget-titlebar,.fl-theme-wb .fl-inverted-color .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-bw .fl-grabbable .fl-widget-titlebar,.fl-theme-wb .fl-inverted-color .fl-grabbable .fl-widget-titlebar{background-image:url('../images/themes/bw/icon-widget-gripper.png');}
+.fl-theme-bw .fl-grabbable .fl-widget-titlebar h2,.fl-theme-wb .fl-inverted-color .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-bw .fl-widget-titlebar .icon,.fl-theme-wb .fl-inverted-color .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-bw .fl-widget-titlebar .fl-button-right,.fl-theme-bw .fl-widget-titlebar .fl-button-left,.fl-theme-wb .fl-inverted-color .fl-widget-titlebar .fl-button-right,.fl-theme-wb .fl-inverted-color .fl-widget-titlebar .fl-button-left{color:#000;background-image:url('../images/themes/bw/buttons-titlebar-cap.png');text-decoration:none;}
+.fl-theme-bw .fl-widget-titlebar .fl-button-inner,.fl-theme-wb .fl-inverted-color .fl-widget-titlebar .fl-button-inner{background-image:url(../images/themes/bw/buttons-titlebar-bg.png);}
+.fl-theme-bw .fl-widget .fl-widget-options,.fl-theme-wb .fl-inverted-color .fl-widget .fl-widget-options{padding:0;}
+.fl-theme-bw .fl-widget .fl-widget-options li,.fl-theme-wb .fl-inverted-color .fl-widget .fl-widget-options li{border-left:1px solid #fff;}
+.fl-theme-bw .fl-widget .fl-widget-content,.fl-theme-wb .fl-inverted-color .fl-widget .fl-widget-content{background-color:#fff;}
+.fl-theme-bw .fl-progress-bounds,.fl-theme-wb .fl-inverted-color .fl-progress-bounds{border-color:#000;background-color:#fff;}
+.fl-theme-bw .fl-progress-fill,.fl-theme-wb .fl-inverted-color .fl-progress-fill{color:#fff;background-color:#000;}
+.fl-theme-bw .fl-reorderer-dropMarker,.fl-theme-wb .fl-inverted-color .fl-reorderer-dropMarker{background-color:#f00;}
+.fl-theme-bw .fl-inlineEdit-edit,.fl-theme-wb .fl-inverted-color .fl-inlineEdit-edit{background-color:#000;color:#fff;border:.1em solid #fff;padding:.1em;margin:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-theme-by.css b/docs/jscripts/infusion/framework/fss/css/fss-theme-by.css
new file mode 100644 (file)
index 0000000..4f65e0a
--- /dev/null
@@ -0,0 +1,41 @@
+.fl-theme-by,.fl-theme-by *,.fl-preview-theme.fl-theme-by,.fl-theme-yb.fl-inverted-color,.fl-theme-yb .fl-inverted-color,.fl-theme-yb.fl-inverted-color *,.fl-theme-yb .fl-inverted-color *,.fl-preview-theme.fl-theme-yb.fl-inverted-color{color:#000;background-color:#ff0;border-color:#000;}
+.fl-theme-by div,.fl-theme-by input,.fl-theme-yb .fl-inverted-color div,.fl-theme-yb .fl-inverted-color input{color:#000;background-color:#ff0;border-color:#000;}
+.fl-theme-by iframe,.fl-theme-yb .fl-inverted-color iframe{border-color:#000;}
+.fl-theme-by a,.fl-theme-yb .fl-inverted-color a{color:#000;font-weight:bold;background-color:#ff0;}
+.fl-theme-by h1,.fl-theme-by h2,.fl-theme-by h3,.fl-theme-by h4,.fl-theme-by h5,.fl-theme-by h6,.fl-theme-yb .fl-inverted-color h1,.fl-theme-yb .fl-inverted-color h2,.fl-theme-yb .fl-inverted-color h3,.fl-theme-yb .fl-inverted-color h4,.fl-theme-yb .fl-inverted-color h5,.fl-theme-yb .fl-inverted-color h6{color:#000;background-color:#ff0;border-color:#000;}
+.fl-theme-by th,.fl-theme-yb .fl-inverted-color th{border:.1em solid #000;background-color:#000;color:#ff0;}
+.fl-theme-by td,.fl-theme-yb .fl-inverted-color td{border:.1em solid #000;}
+.fl-theme-by .fl-focus:focus,.fl-theme-by .fl-focus :focus,.fl-theme-by.fl-focus :focus,.fl-theme-by .selectable,.fl-theme-yb .fl-inverted-color .fl-focus:focus,.fl-theme-yb .fl-inverted-color .fl-focus :focus,.fl-theme-yb.fl-inverted-color.fl-focus :focus,.fl-theme-yb .fl-inverted-color .selectable{outline:.2em solid #F00;}
+.fl-theme-by .fl-knockout,.fl-theme-yb .fl-inverted-color .fl-knockout{background:transparent!important;color:#000;}
+.fl-theme-by .fl-icon,.fl-theme-yb .fl-inverted-color .fl-icon{background-color:#ff0;}
+.fl-theme-by .fl-tabs,.fl-theme-yb .fl-inverted-color .fl-tabs{border-bottom-color:#000;}
+.fl-theme-by .fl-tabs li,.fl-theme-by .fl-tabs li *,.fl-theme-yb .fl-inverted-color .fl-tabs li,.fl-theme-yb .fl-inverted-color .fl-tabs li *{border-color:#000;border-bottom-color:#000;}
+.fl-theme-by .fl-tabs li,.fl-theme-yb .fl-inverted-color .fl-tabs li{background-color:#000;}
+.fl-theme-by .fl-tabs li *,.fl-theme-yb .fl-inverted-color .fl-tabs li *{color:#ff0;font-weight:bold;background-color:#000;text-decoration:none;}
+.fl-theme-by .fl-tabs li:hover,.fl-theme-by .fl-tabs li:hover *,.fl-theme-by .fl-tabs li a:hover,.fl-theme-yb .fl-inverted-color .fl-tabs li:hover,.fl-theme-yb .fl-inverted-color .fl-tabs li:hover *,.fl-theme-yb .fl-inverted-color .fl-tabs li a:hover{color:#000;background-color:#ff0;}
+.fl-theme-by .fl-tabs li.fl-tabs-active,.fl-theme-by .fl-tabs li.fl-tabs-active a,.fl-theme-by .fl-tabs li.fl-tabs-active a:hover,.fl-theme-by .fl-tabs li.fl-activeTab,.fl-theme-by .fl-tabs li.fl-activeTab:hover,.fl-theme-by .fl-tabs li.fl-activeTab a,.fl-theme-by .fl-tabs li.fl-activeTab a:hover,.fl-theme-yb .fl-inverted-color .fl-tabs li.fl-tabs-active,.fl-theme-yb .fl-inverted-color .fl-tabs li.fl-tabs-active a,.fl-theme-yb .fl-inverted-color .fl-tabs li.fl-tabs-active a:hover,.fl-theme-yb .fl-inverted-color .fl-tabs li.fl-activeTab,.fl-theme-yb .fl-inverted-color .fl-tabs li.fl-activeTab:hover,.fl-theme-yb .fl-inverted-color .fl-tabs li.fl-activeTab a,.fl-theme-yb .fl-inverted-color .fl-tabs li.fl-activeTab a:hover{background-color:#ff0;border-bottom-color:#ff0;color:#000;}
+.fl-theme-by .fl-tab-content,.fl-theme-yb .fl-inverted-color .fl-tab-content{background-color:#ff0;color:#000;}
+.fl-theme-by .fl-listmenu,.fl-theme-by .fl-list-menu,.fl-theme-yb .fl-inverted-color .fl-listmenu,.fl-theme-yb .fl-inverted-color .fl-list-menu{border:1px solid #000;border-bottom-width:2px;background-color:#ff0;}
+.fl-theme-by .fl-listmenu li,.fl-theme-by .fl-list-menu li,.fl-theme-by .fl-listmenu li a,.fl-theme-by .fl-list-menu li a .fl-theme-yb .fl-inverted-color .fl-listmenu li,.fl-theme-yb .fl-inverted-color .fl-list-menu li,.fl-theme-yb .fl-inverted-color .fl-listmenu li a,.fl-theme-yb .fl-inverted-color .fl-list-menu li a{font-weight:bold;color:#000;background-color:#ff0;border-color:#000;text-decoration:none;}
+.fl-theme-by .fl-listmenu a:hover,.fl-theme-by .fl-list-menu a:hover,.fl-theme-yb .fl-inverted-color .fl-listmenu a:hover,.fl-theme-yb .fl-inverted-color .fl-list-menu a:hover{background-color:#000;color:#ff0;}
+.fl-theme-by .fl-listmenu .fl-activemenu a,.fl-theme-by .fl-list-menu .fl-activemenu a,.fl-theme-by .fl-listmenu .fl-activemenu a:hover,.fl-theme-by .fl-list-menu .fl-activemenu a:hover,.fl-theme-yb .fl-inverted-color .fl-listmenu .fl-activemenu a,.fl-theme-yb .fl-inverted-color .fl-list-menu .fl-activemenu a,.fl-theme-yb .fl-inverted-color .fl-listmenu .fl-activemenu a:hover,.fl-theme-yb .fl-inverted-color .fl-list-menu .fl-activemenu a:hover{background-color:#000;border-bottom-color:#ff0;color:#ff0;}
+.fl-theme-by .fl-button-left,.fl-theme-by .fl-button-right,.fl-theme-yb .fl-inverted-color .fl-button-left,.fl-theme-yb .fl-inverted-color .fl-button-right{background-image:url(../images/themes/by/buttons-med-cap.png);}
+.fl-theme-by .fl-button-inner,.fl-theme-yb .fl-inverted-color .fl-button-inner{background-image:url(../images/themes/by/buttons-med-bg.png);}
+.fl-theme-by .fl-widget,.fl-theme-yb .fl-inverted-color .fl-widget{background-color:#000;border:1px solid #ff0;}
+.fl-theme-by .fl-widget h2,.fl-theme-yb .fl-inverted-color .fl-widget h2{color:#000;}
+.fl-theme-by .fl-widget a,.fl-theme-yb .fl-inverted-color .fl-widget a{color:#000;}
+.fl-theme-by .fl-widget .fl-icon-more,.fl-theme-yb .fl-inverted-color .fl-widget .fl-icon-more{background-image:url('../images/themes/by/icon-widget-More.png');margin-left:0;}
+.fl-theme-by .fl-widget .fl-icon-close,.fl-theme-yb .fl-inverted-color .fl-widget .fl-icon-close{background-image:url('../images/themes/by/icon-widget-Close.png');margin-right:0;}
+.fl-theme-by .fl-widget .fl-widget-titlebar,.fl-theme-yb .fl-inverted-color .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-by .fl-grabbable .fl-widget-titlebar,.fl-theme-yb .fl-inverted-color .fl-grabbable .fl-widget-titlebar{background-image:url('../images/themes/by/icon-widget-gripper.png');}
+.fl-theme-by .fl-grabbable .fl-widget-titlebar h2,.fl-theme-yb .fl-inverted-color .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-by .fl-widget-titlebar .icon,.fl-theme-yb .fl-inverted-color .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-by .fl-widget-titlebar .fl-button-right,.fl-theme-by .fl-widget-titlebar .fl-button-left,.fl-theme-yb .fl-inverted-color .fl-widget-titlebar .fl-button-right,.fl-theme-yb .fl-inverted-color .fl-widget-titlebar .fl-button-left{color:#000;background-image:url('../images/themes/by/buttons-titlebar-cap.png');text-decoration:none;}
+.fl-theme-by .fl-widget-titlebar .fl-button-inner,.fl-theme-yb .fl-inverted-color .fl-widget-titlebar .fl-button-inner{background-image:url('../images/themes/by/buttons-titlebar-bg.png');}
+.fl-theme-by .fl-widget .fl-widget-options,.fl-theme-yb .fl-inverted-color .fl-widget .fl-widget-options{padding:0;}
+.fl-theme-by .fl-widget .fl-widget-options li,.fl-theme-yb .fl-inverted-color .fl-widget .fl-widget-options li{border-left:1px solid #ff0;}
+.fl-theme-by .fl-widget .fl-widget-content,.fl-theme-yb .fl-inverted-color .fl-widget .fl-widget-content{background-color:#ff0;}
+.fl-theme-by .fl-progress-bounds,.fl-theme-yb .fl-inverted-color .fl-progress-bounds{border-color:#000;background-color:#ff0;}
+.fl-theme-by .fl-progress-fill,.fl-theme-yb .fl-inverted-color .fl-progress-fill{color:#ff0;background-color:#000;}
+.fl-theme-by .fl-reorderer-dropMarker,.fl-theme-yb .fl-inverted-color .fl-reorderer-dropMarker{background-color:#f00;}
+.fl-theme-by .fl-inlineEdit-edit,.fl-theme-yb .fl-inverted-color .fl-inlineEdit-edit{background-color:#000;color:#ff0;border:.1em solid #ff0;padding:.1em;margin:-0.1em;}
\ No newline at end of file
index 94cc6cf..4aeaea1 100644 (file)
@@ -1,57 +1,57 @@
-.fl-theme-coal :focus,.fl-theme-coal .selectable{outline:.1em solid #000;}
-.fl-theme-coal{color:#000!important;background-color:#ebebeb!important;border-color:#000;}
-.fl-theme-coal a{color:#333!important;font-weight:bold;}
-.fl-theme-coal a:hover{color:#999!important;}
+.fl-theme-coal,.fl-theme-coal.fl-preview-theme{color:#000;background-color:#ebebeb;border-color:#000;}
+.fl-theme-coal a{color:#333;font-weight:bold;}
+.fl-theme-coal a:hover{color:#999;}
 .fl-theme-coal h1{color:#000;border-bottom-width:.2em;border-bottom-style:solid;}
 .fl-theme-coal h2{color:#666;}
-.fl-theme-coal th{border:.1em solid #fff;background-color:#dfefff!important;}
-.fl-theme-coal td{border:.1em solid #999!important;}
+.fl-theme-coal th{border:.1em solid #fff;background-color:#dfefff;}
+.fl-theme-coal td{border:.1em solid #999;}
+.fl-theme-coal .fl-focus:focus,.fl-theme-coal .fl-focus :focus,.fl-theme-coal.fl-focus :focus,.fl-theme-coal .selectable{outline:.1em solid #000;}
 .fl-theme-coal .fl-textfield,.fl-theme-coal .fl-textarea{background-color:#fff;border:1px solid #000;}
 .fl-theme-coal .fl-icon{background-color:#666;}
-.fl-theme-coal .fl-inlineEdit-edit{background-color:#ebebeb!important;border:.1em solid #fff;margin:-0.1em;}
-.fl-theme-coal .fl-button-left,.fl-theme-coal .fl-button-right{color:#FFF!important;background-color:#333!important;}
-.fl-theme-coal .fl-button-left{background-image:url(../images/themes/coal/buttons-med-cap.png);}
-.fl-theme-coal .fl-button-right{background-image:url(../images/themes/coal/buttons-med-cap.png);}
-.fl-theme-coal .fl-button-inner{background-image:url(../images/themes/coal/buttons-med-bg.png);}
-.fl-theme-coal a.fl-button-left:hover,.fl-theme-coal a.fl-button-right:hover{color:#fff!important;}
+.fl-theme-coal .fl-button-left,.fl-theme-coal .fl-button-right{color:#FFF;background-color:#333;}
+.fl-theme-coal .fl-button-left{background-image:url('../images/themes/coal/buttons-med-cap.png');}
+.fl-theme-coal .fl-button-right{background-image:url('../images/themes/coal/buttons-med-cap.png');}
+.fl-theme-coal .fl-button-inner{background-image:url('../images/themes/coal/buttons-med-bg.png');}
+.fl-theme-coal a.fl-button-left:hover,.fl-theme-coal a.fl-button-right:hover{color:#fff;}
 .fl-theme-coal .fl-tabs{border-bottom-color:#333;}
-.fl-theme-coal .fl-tabs li,.fl-theme-coal .fl-tabs li a{font-weight:bold;color:#fff!important;border-color:#333;border-bottom-color:#333;background-color:#666;text-decoration:none;}
-.fl-theme-coal .fl-tabs li a:hover{background-color:#333;color:#fff!important;}
-.fl-theme-coal .fl-tabs li.fl-activeTab,.fl-theme-coal .fl-tabs li.fl-activeTab:hover,.fl-theme-coal .fl-tabs li.fl-activeTab a,.fl-theme-coal .fl-tabs li.fl-activeTab a:hover,.fl-theme-coal .fl-tabs li.fl-tabs-active,.fl-theme-coal .fl-tabs li.fl-tabs-active a,.fl-theme-coal .fl-tabs li.fl-tabs-active a:hover{background-color:#ebebeb;border-bottom-color:#ebebeb;color:#000!important;}
+.fl-theme-coal .fl-tabs li,.fl-theme-coal .fl-tabs li a{font-weight:bold;color:#fff;border-color:#333;border-bottom-color:#333;background-color:#666;text-decoration:none;}
+.fl-theme-coal .fl-tabs li a:hover{background-color:#333;color:#fff;}
+.fl-theme-coal .fl-tabs li.fl-activeTab,.fl-theme-coal .fl-tabs li.fl-activeTab:hover,.fl-theme-coal .fl-tabs li.fl-activeTab a,.fl-theme-coal .fl-tabs li.fl-activeTab a:hover,.fl-theme-coal .fl-tabs li.fl-tabs-active,.fl-theme-coal .fl-tabs li.fl-tabs-active a,.fl-theme-coal .fl-tabs li.fl-tabs-active a:hover{background-color:#ebebeb;border-bottom-color:#ebebeb;color:#000;}
 .fl-theme-coal .fl-tabs-content{background-color:#ebebeb;color:#000;border:1px solid #999;border-top:none;}
-.fl-theme-coal .fl-listmenu{border:1px solid #333;border-bottom-width:2px;background-color:#ebebeb;}
-.fl-theme-coal .fl-listmenu li,.fl-theme-coal .fl-listmenu li a{font-weight:bold;background-color:#ebebeb;border-color:#333;text-decoration:none;}
-.fl-theme-coal .fl-listmenu a:hover{background-color:#fff;color:#333!important;}
-.fl-theme-coal .fl-listmenu .fl-activemenu,.fl-theme-coal .fl-listmenu .fl-activemenu:hover{background-color:#fff;border-bottom-color:#999;color:#d9d9d9;}
+.fl-theme-coal .fl-tabs-content-enhanced{background:#ebebeb url('../images/themes/coal/tabs-med-content-bg.png') repeat-x left top;border:none;}
+.fl-theme-coal .fl-tabs-enhanced{background:url('../images/themes/coal/tabs-med-container-bg.png') repeat-x left bottom;border-bottom:none;margin:10px 0 0;padding:5px 0 6px;*padding:0;}
+.fl-theme-coal .fl-tabs-enhanced li{background:transparent url('../images/themes/coal/tabs-med-cap.png') no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
+.fl-theme-coal .fl-tabs-enhanced li a{background:transparent url('../images/themes/coal/tabs-med-bg.png') no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#ebebeb;*padding-bottom:4px;}
+.fl-theme-coal .fl-tabs-enhanced li.fl-tabs-active{background:transparent url('../images/themes/coal/tabs-med-active-cap.png') no-repeat scroll left top;}
+.fl-theme-coal .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url('../images/themes/coal/tabs-med-active-bg.png') no-repeat scroll right top;color:#fff;}
+.fl-theme-coal .fl-listmenu,.fl-theme-coal .fl-list-menu{border:1px solid #333;border-bottom-width:2px;background-color:#ebebeb;}
+.fl-theme-coal .fl-listmenu li,.fl-theme-coal .fl-list-menu li,.fl-theme-coal .fl-listmenu li a,.fl-theme-coal .fl-list-menu li a{font-weight:bold;background-color:#ebebeb;border-color:#333;text-decoration:none;}
+.fl-theme-coal .fl-listmenu a:hover,.fl-theme-coal .fl-list-menu a:hover{background-color:#fff;color:#333;}
+.fl-theme-coal .fl-listmenu .fl-activemenu a,.fl-theme-coal .fl-list-menu .fl-activemenu a,.fl-theme-coal .fl-listmenu .fl-activemenu a:hover,.fl-theme-coal .fl-list-menu .fl-activemenu a:hover{background-color:#fff;border-bottom-color:#999;color:#666;}
 .fl-theme-coal .fl-grid{border:2px solid #000;background-color:#ccc;}
-.fl-theme-coal .fl-grid li{background-color:#dfefff;border:1px solid #000;}
-.fl-theme-coal .fl-grid .caption{background-color:#dfefff;color:#fff;}
-.fl-theme-coal .fl-widget{background:#333 url(../images/themes/coal/widget-bg.png) repeat-x top left;border:1px solid #000;}
+.fl-theme-coal .fl-grid li{background-color:#EDEDED;border:1px solid #000;}
+.fl-theme-coal .fl-grid .fl-grid-caption{background-color:#666;color:#fff;}
+.fl-theme-coal .fl-widget{background:#333 url('../images/themes/coal/widget-bg.png') repeat-x top left;border:1px solid #000;}
 .fl-theme-coal .fl-widget h2{color:#fff;}
 .fl-theme-coal .fl-widget .fl-icon-more{background-image:url('../images/themes/coal/icon-widget-More.png');margin-left:0;}
 .fl-theme-coal .fl-widget .fl-icon-close{background-image:url('../images/themes/coal/icon-widget-Close.png');margin-right:0;}
 .fl-theme-coal .fl-grabbable .fl-widget-titlebar{background-image:url('../images/themes/coal/icon-widget-gripper.png');}
 .fl-theme-coal .fl-widget-titlebar{background-position:center top;background-repeat:no-repeat;}
 .fl-theme-coal .fl-widget-titlebar .icon{background-position:center center;}
-.fl-theme-coal .fl-widget-titlebar .fl-button-right,.fl-theme-coal .fl-widget-titlebar .fl-button-left{background-image:url(../images/themes/coal/buttons-titlebar-cap.png);text-decoration:none;}
-.fl-theme-coal .fl-widget-titlebar .fl-button-inner{background-image:url(../images/themes/coal/buttons-titlebar-bg.png);padding-bottom:.3em;padding-top:0;}
+.fl-theme-coal .fl-widget-titlebar .fl-button-right,.fl-theme-coal .fl-widget-titlebar .fl-button-left{background-image:url('../images/themes/coal/buttons-titlebar-cap.png');text-decoration:none;}
+.fl-theme-coal .fl-widget-titlebar .fl-button-inner{background-image:url('../images/themes/coal/buttons-titlebar-bg.png');padding-bottom:.3em;padding-top:0;}
 .fl-theme-coal .fl-widget-options li{border-left:1px solid #ccc;}
-.fl-theme-coal .fl-widget-options li a{color:#ebebeb!important;}
-.fl-theme-coal .fl-widget-options li a:hover{color:#fff!important;}
+.fl-theme-coal .fl-widget-options li a{color:#ebebeb;}
+.fl-theme-coal .fl-widget-options li a:hover{color:#fff;}
 .fl-theme-coal .fl-widget-options a.icon:hover{background-color:#fff;border-color:#000;}
 .fl-theme-coal .fl-widget-content{background-color:#fff;}
+.fl-theme-coal .fl-widget-content .fl-tabs-content-enhanced{background:#ebebeb url('../images/themes/coal/tabs-light-content-bg.png') repeat-x left top;border:none;}
+.fl-theme-coal .fl-widget-content .fl-tabs-enhanced{background:url('../images/themes/coal/tabs-light-container-bg.png') repeat-x left bottom;border-bottom:none;margin:10px 0 0;padding:5px 0 6px;*padding:0;}
+.fl-theme-coal .fl-widget-content .fl-tabs-enhanced li{background:transparent url('../images/themes/coal/tabs-light-cap.png') no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
+.fl-theme-coal .fl-widget-content .fl-tabs-enhanced li a{background:transparent url('../images/themes/coal/tabs-light-bg.png') no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#ebebeb;*padding-bottom:4px;}
+.fl-theme-coal .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active{background:transparent url('../images/themes/coal/tabs-light-active-cap.png') no-repeat scroll left top;}
+.fl-theme-coal .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url('../images/themes/coal/tabs-light-active-bg.png') no-repeat scroll right top;color:#fff;}
 .fl-theme-coal .fl-progress-bounds{border-color:#333;background-color:#ebebeb;}
 .fl-theme-coal .fl-progress-fill{color:#fff;background-color:#999;}
-.fl-theme-coal .fl-reorderer-dropMarker{background-color:#f00!important;}
-.fl-theme-coal .fl-tabs-content-enhanced{background:#ebebeb url(../images/themes/coal/tabs-med-content-bg.png) repeat-x left top;border:none;}
-.fl-theme-coal .fl-tabs-enhanced{background:url(../images/themes/coal/tabs-med-container-bg.png) repeat-x left bottom;border-bottom:none;margin:10px 0 0;padding:5px 0 6px;*padding:0;}
-.fl-theme-coal .fl-tabs-enhanced li{background:transparent url(../images/themes/coal/tabs-med-cap.png) no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
-.fl-theme-coal .fl-tabs-enhanced li a{background:transparent url(../images/themes/coal/tabs-med-bg.png) no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#ebebeb!important;*padding-bottom:4px;}
-.fl-theme-coal .fl-tabs-enhanced li.fl-tabs-active{background:transparent url(../images/themes/coal/tabs-med-active-cap.png) no-repeat scroll left top;}
-.fl-theme-coal .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url(../images/themes/coal/tabs-med-active-bg.png) no-repeat scroll right top;color:#fff!important;}
-.fl-theme-coal .fl-widget-content .fl-tabs-content-enhanced{background:#ebebeb url(../images/themes/coal/tabs-light-content-bg.png) repeat-x left top;border:none;}
-.fl-theme-coal .fl-widget-content .fl-tabs-enhanced{background:url(../images/themes/coal/tabs-light-container-bg.png) repeat-x left bottom;border-bottom:none;margin:10px 0 0;padding:5px 0 6px;*padding:0;}
-.fl-theme-coal .fl-widget-content .fl-tabs-enhanced li{background:transparent url(../images/themes/coal/tabs-light-cap.png) no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
-.fl-theme-coal .fl-widget-content .fl-tabs-enhanced li a{background:transparent url(../images/themes/coal/tabs-light-bg.png) no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#ebebeb!important;*padding-bottom:4px;}
-.fl-theme-coal .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active{background:transparent url(../images/themes/coal/tabs-light-active-cap.png) no-repeat scroll left top;}
-.fl-theme-coal .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url(../images/themes/coal/tabs-light-active-bg.png) no-repeat scroll right top;color:#fff!important;}
\ No newline at end of file
+.fl-theme-coal .fl-reorderer-dropMarker{background-color:#f00;}
+.fl-theme-coal .fl-inlineEdit-edit{background-color:#ebebeb;border:.1em solid #fff;margin:-0.1em;}
\ No newline at end of file
index e6cc0e4..3e25d79 100644 (file)
@@ -1,35 +1 @@
-.fl-theme-hc :focus,.fl-theme-hc .selectable{outline:.2em solid #F00;}
-.fl-theme-hc{color:#000!important;background-color:#fff!important;}
-.fl-theme-hc div,.fl-theme-hc input{color:#000;background-color:#fff;border-color:#000;}
-.fl-theme-hc .fl-knockout{background:transparent!important;color:#000;}
-.fl-theme-hc a{color:#000!important;font-weight:bold;background-color:#fff!important;}
-.fl-theme-hc a:hover{color:#fff!important;background-color:#000!important;}
-.fl-theme-hc a:hover *{color:#fff!important;background-color:#000!important;}
-.fl-theme-hc h1,.fl-theme-hc h2,.fl-theme-hc h3,.fl-theme-hc h4,.fl-theme-hc h5,.fl-theme-hc h6{color:#000!important;background-color:#fff!important;border-color:#000!important;border-bottom:.1em dashed #000!important;}
-.fl-theme-hc th{border:.1em solid #000;background-color:#000!important;color:#fff!important;}
-.fl-theme-hc td{border:.1em solid #000;}
-.fl-theme-hc .fl-inlineEdit-edit{background-color:#000!important;color:#fff!important;border:.1em solid #fff;padding:.1em;margin:-0.1em;}
-.fl-theme-hc .fl-tabs{border-bottom-color:#000;}
-.fl-theme-hc .fl-tabs li,.fl-theme-hc .fl-tabs li *{border-color:#000;border-bottom-color:#000;}
-.fl-theme-hc .fl-tabs li{background-color:#000;}
-.fl-theme-hc .fl-tabs li *{color:#fff!important;font-weight:bold;background-color:#000!important;text-decoration:none;}
-.fl-theme-hc .fl-tabs li:hover,.fl-theme-hc .fl-tabs li:hover *,.fl-theme-hc .fl-tabs li a:hover{color:#000!important;background-color:#fff!important;}
-.fl-theme-hc .fl-tabs li.fl-tabs-active,.fl-theme-hc .fl-tabs li.fl-tabs-active a,.fl-theme-hc .fl-tabs li.fl-tabs-active a:hover,.fl-theme-hc .fl-tabs li.fl-activeTab,.fl-theme-hc .fl-tabs li.fl-activeTab:hover,.fl-theme-hc .fl-tabs li.fl-activeTab a,.fl-theme-hc .fl-tabs li.fl-activeTab a:hover{background-color:#fff!important;border-bottom-color:#fff;color:#000!important;}
-.fl-theme-hc .fl-tab-content{background-color:#fff;color:#000;}
-.fl-theme-hc .fl-listmenu{border:1px solid #000;border-bottom-width:2px;background-color:#fff;}
-.fl-theme-hc .fl-listmenu li,.fl-theme-hc .fl-listmenu li a{font-weight:bold;color:#000;background-color:#fff;border-color:#000;text-decoration:none;}
-.fl-theme-hc .fl-listmenu a:hover{background-color:#fff;color:#fff;}
-.fl-theme-hc .fl-listmenu .fl-activemenu,.fl-theme-hc .fl-listmenu .fl-activemenu:hover{background-color:#fff;border-bottom-color:#fff;color:#508cc9;}
-.fl-theme-hc .fl-button-right,.fl-theme-hc .fl-button-left,.fl-theme-hc .fl-button-inner{padding:0;}
-.fl-theme-hc .fl-widget{background-color:#000;border:1px solid #fff;}
-.fl-theme-hc .fl-widget h2{color:#fff;}
-.fl-theme-hc .fl-widget a{color:#000;}
-.fl-theme-hc .fl-widget .fl-icon{color:#000;background-image:none;background-color:#fff;text-indent:0;width:auto;height:auto;margin-left:0;padding:0 2px;display:inline;font-weight:bold;}
-.fl-theme-hc .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
-.fl-theme-hc .fl-widget .fl-widget-options{padding:0;}
-.fl-theme-hc .fl-widget .fl-widget-options li{border-left:1px solid #fff;}
-.fl-theme-hc .fl-widget .fl-widget-options a{color:#fff;}
-.fl-theme-hc .fl-widget .fl-widget-content{background-color:#fff;}
-.fl-theme-hc .fl-progress-bounds{border-color:#000;background-color:#fff;}
-.fl-theme-hc .fl-progress-fill{color:#fff;background-color:#000;}
-.fl-theme-hc .fl-reorderer-dropMarker{background-color:#f00!important;}
\ No newline at end of file
+@import url('fss-theme-bw.css');
\ No newline at end of file
index 7a3a932..2e6aade 100644 (file)
@@ -1,35 +1 @@
-.fl-theme-hci :focus,.fl-theme-hci .selectable{outline:.2em solid #F00;}
-.fl-theme-hci{color:#fff!important;background-color:#000!important;}
-.fl-theme-hci div,.fl-theme-hci input{color:#fff!important;background-color:#000!important;}
-.fl-theme-hci .fl-knockout{background:transparent!important;color:#fff;}
-.fl-theme-hci a{color:#fff!important;font-weight:bold;background-color:#000!important;}
-.fl-theme-hci a:hover{color:#000!important;background-color:#fff!important;}
-.fl-theme-hci a:hover *{color:#000!important;background-color:#fff!important;}
-.fl-theme-hci h1,.fl-theme-hci h2,.fl-theme-hci h3,.fl-theme-hci h4,.fl-theme-hci h5,.fl-theme-hci h6{color:#fff;background-color:#000;border-color:#fff;border-bottom:.1em dashed #fff;}
-.fl-theme-hci th{border:.1em solid #fff;background-color:#fff!important;color:#000!important;}
-.fl-theme-hci td{border:.1em solid #fff;}
-.fl-theme-hci .fl-inlineEdit-edit{background-color:#fff!important;color:#000!important;border:.1em solid #000;padding:.1em;margin:-0.1em;}
-.fl-theme-hci .fl-tabs{border-bottom-color:#fff;}
-.fl-theme-hci .fl-tabs li,.fl-theme-hci .fl-tabs li *{border-color:#fff;border-bottom-color:#fff;}
-.fl-theme-hci .fl-tabs li{background-color:#fff;}
-.fl-theme-hci .fl-tabs li *{color:#000!important;font-weight:bold;background-color:#fff!important;text-decoration:none;}
-.fl-theme-hci .fl-tabs li:hover,.fl-theme-hci .fl-tabs li:hover *,.fl-theme-hci .fl-tabs li a:hover{color:#fff!important;background-color:#000!important;}
-.fl-theme-hci .fl-tabs li.fl-tabs-active,.fl-theme-hci .fl-tabs li.fl-tabs-active a,.fl-theme-hci .fl-tabs li.fl-tabs-active a:hover,.fl-theme-hci .fl-tabs li.fl-activeTab,.fl-theme-hci .fl-tabs li.fl-activeTab:hover,.fl-theme-hci .fl-tabs li.fl-activeTab a,.fl-theme-hci .fl-tabs li.fl-activeTab a:hover{background-color:#000!important;border-bottom-color:#000;color:#fff!important;}
-.fl-theme-hci .fl-tab-content{background-color:#000;border:1px solid #fff;border-top:none;color:#fff;}
-.fl-theme-hci .fl-listmenu{border:1px solid #fff;border-bottom-width:2px;background-color:#000;}
-.fl-theme-hci .fl-listmenu li,.fl-theme-hci .fl-listmenu li a{font-weight:bold;color:#fff;background-color:#dfefff;border-color:#fff;text-decoration:none;}
-.fl-theme-hci .fl-listmenu a:hover{background-color:#5a95cf;color:#000;}
-.fl-theme-hci .fl-listmenu .fl-activemenu,.fl-theme-hci .fl-listmenu .fl-activemenu:hover{background-color:#000;border-bottom-color:#000;color:#508cc9;}
-.fl-theme-hci .fl-button-right,.fl-theme-hci .fl-button-left,.fl-theme-hci .fl-button-inner{padding:0;}
-.fl-theme-hci .fl-widget{background-color:#fff!important;border:1px solid #000;}
-.fl-theme-hci .fl-widget h2{color:#000;background-color:#fff;}
-.fl-theme-hci .fl-widget a{color:#fff;}
-.fl-theme-hci .fl-widget .fl-icon{color:#fff;background-image:none;background-color:#000;text-indent:0;width:auto;height:auto;margin-left:0;padding:0 2px;display:inline;font-weight:bold;}
-.fl-theme-hci .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
-.fl-theme-hci .fl-widget .fl-widget-options{padding:0;}
-.fl-theme-hci .fl-widget .fl-widget-options li{border-left:1px solid #000;}
-.fl-theme-hci .fl-widget .fl-widget-options a{color:#000;}
-.fl-theme-hci .fl-widget .fl-widget-content{background-color:#000;}
-.fl-theme-hci .fl-progress-bounds{border-color:#fff;background-color:#000;}
-.fl-theme-hci .fl-progress-fill{color:#000;background-color:#fff;}
-.fl-theme-hci .fl-reorderer-dropMarker{background-color:#f00!important;}
\ No newline at end of file
+@import url('fss-theme-wb.css');
\ No newline at end of file
index ec71b2f..380794c 100644 (file)
@@ -1,50 +1,49 @@
-.fl-theme-mist :focus,.fl-theme-mist .selectable{outline:.1em solid #F00;}
-.fl-theme-mist{color:#000!important;background-color:#f4f4f4!important;border-color:#4070a1;}
-.fl-theme-mist a{color:#5a95cf!important;font-weight:bold;}
-.fl-theme-mist a:hover{color:#6DB5FB!important;}
+.fl-theme-mist,.fl-theme-mist.fl-preview-theme{color:#000;background-color:#f4f4f4;border-color:#4070a1;}
+.fl-theme-mist a{color:#5a95cf;font-weight:bold;}
+.fl-theme-mist a:hover{color:#6DB5FB;}
 .fl-theme-mist h1{color:#4070a1;border-bottom-width:.2em;border-bottom-style:solid;}
 .fl-theme-mist h2{color:#5a95cf;}
-.fl-theme-mist th{border:.1em solid #5a95cf;background-color:#dfefff!important;}
-.fl-theme-mist td{border:.1em solid #999!important;}
+.fl-theme-mist th{border:.1em solid #5a95cf;background-color:#dfefff;}
+.fl-theme-mist td{border:.1em solid #999;}
+.fl-theme-mist .fl-focus:focus,.fl-theme-mist .fl-focus :focus,.fl-theme-mist.fl-focus :focus,.fl-theme-mist .selectable{outline:.1em solid #F00;}
 .fl-theme-mist .fl-textfield,.fl-theme-mist .fl-textarea{border:1px solid #5a95cf;border-bottom-color:#5a95cf;border-right-color:#5a95cf;background-color:#dfefff;}
 .fl-theme-mist .fl-icon{background-color:#5a95cf;}
-.fl-theme-mist .fl-inlineEdit-edit{background-color:#dfefff!important;border:.1em solid #5a95cf;margin:-0.1em;}
-.fl-theme-mist .fl-button-left{background-image:url(../images/themes/mist/buttons-med-cap.png);}
-.fl-theme-mist .fl-button-right{background-image:url(../images/themes/mist/buttons-med-cap.png);}
-.fl-theme-mist .fl-button-inner{background-image:url(../images/themes/mist/buttons-med-bg.png);}
+.fl-theme-mist .fl-button-left{background-image:url('../images/themes/mist/buttons-med-cap.png');}
+.fl-theme-mist .fl-button-right{background-image:url('../images/themes/mist/buttons-med-cap.png');}
+.fl-theme-mist .fl-button-inner{background-image:url('../images/themes/mist/buttons-med-bg.png');}
 .fl-theme-mist .fl-tabs{border-bottom-color:#4070a1;}
 .fl-theme-mist .fl-tabs li,.fl-theme-mist .fl-tabs li a{font-weight:bold;color:#4070a1;border-color:#4070a1;border-bottom-color:#4070a1;text-decoration:none;background-color:#dfefff;}
-.fl-theme-mist .fl-tabs li a:hover{background-color:#5a95cf;color:#fff!important;}
-.fl-theme-mist .fl-tabs li.fl-activeTab,.fl-theme-mist .fl-tabs li.fl-activeTab:hover,.fl-theme-mist .fl-tabs li.fl-activeTab a,.fl-theme-mist .fl-tabs li.fl-activeTab a:hover .fl-theme-mist .fl-tabs li.fl-tabs-active,.fl-theme-mist .fl-tabs li.fl-tabs-active a,.fl-theme-mist .fl-tabs li.fl-tabs-active a:hover{background-color:#f4f4f4;border-bottom-color:#f4f4f4;color:#508cc9!important;}
+.fl-theme-mist .fl-tabs li a:hover{background-color:#5a95cf;color:#fff;}
+.fl-theme-mist .fl-tabs li.fl-activeTab,.fl-theme-mist .fl-tabs li.fl-activeTab:hover,.fl-theme-mist .fl-tabs li.fl-activeTab a,.fl-theme-mist .fl-tabs li.fl-activeTab a:hover .fl-theme-mist .fl-tabs li.fl-tabs-active,.fl-theme-mist .fl-tabs li.fl-tabs-active a,.fl-theme-mist .fl-tabs li.fl-tabs-active a:hover{background-color:#f4f4f4;border-bottom-color:#f4f4f4;color:#508cc9;}
 .fl-theme-mist .fl-tabs-content{background-color:#f4f4f4;color:#000;border:1px solid #61c5ff;border-top:none;margin-top:-4px;}
-.fl-theme-mist .fl-listmenu{border:1px solid #4070a1;border-bottom-width:2px;background-color:#fff;}
-.fl-theme-mist .fl-listmenu li,.fl-theme-mist .fl-listmenu li a{font-weight:bold;color:#4070a1;background-color:#dfefff;border-color:#4070a1;text-decoration:none;}
-.fl-theme-mist .fl-listmenu li a:hover{background-color:#5a95cf;color:#fff!important;}
-.fl-theme-mist .fl-listmenu .fl-activemenu,.fl-theme-mist .fl-listmenu .fl-activemenu:hover{background-color:#fff;border-bottom-color:#fff;color:#508cc9;}
+.fl-theme-mist .fl-tabs-enhanced{background:url('../images/themes/mist/tabs-med-container-bg.png') repeat-x left bottom;border-bottom:none;margin:10px 1px 0;padding:5px 0 6px;*padding:2px 0;}
+.fl-theme-mist .fl-tabs-enhanced li{background:transparent url('../images/themes/mist/tabs-med-cap.png') no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
+.fl-theme-mist .fl-tabs-enhanced li a{background:transparent url('../images/themes/mist/tabs-med-bg.png') no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#666;*padding-bottom:4px;}
+.fl-theme-mist .fl-tabs-enhanced li.fl-tabs-active{background:transparent url('../images/themes/mist/tabs-med-active-cap.png') no-repeat scroll left top;}
+.fl-theme-mist .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url('../images/themes/mist/tabs-med-active-bg.png') no-repeat scroll right top;color:#000;}
+.fl-theme-mist .fl-listmenu,.fl-theme-mist .fl-list-menu{border:1px solid #4070a1;border-bottom-width:2px;background-color:#fff;}
+.fl-theme-mist .fl-listmenu li,.fl-theme-mist .fl-list-menu li,.fl-theme-mist .fl-listmenu li a,.fl-theme-mist .fl-list-menu li a{font-weight:bold;color:#4070a1;background-color:#dfefff;border-color:#4070a1;text-decoration:none;}
+.fl-theme-mist .fl-listmenu a:hover,.fl-theme-mist .fl-list-menu a:hover{background-color:#5a95cf;color:#fff;}
+.fl-theme-mist .fl-listmenu .fl-activemenu a,.fl-theme-mist .fl-list-menu .fl-activemenu a,.fl-theme-mist .fl-listmenu .fl-activemenu a:hover,.fl-theme-mist .fl-list-menu .fl-activemenu a:hover{background-color:#fff;border-bottom-color:#fff;color:#508cc9;}
 .fl-theme-mist .fl-grid{border:2px solid #4070a1;background-color:#fff;}
 .fl-theme-mist .fl-grid li{background-color:#dfefff;border:1px solid #4070a1;}
-.fl-theme-mist .fl-grid .caption{background-color:#dfefff;color:#5a95cf;}
-.fl-theme-mist .fl-widget{background:#efefef url(../images/themes/mist/widget-bg.png) repeat-x top left;border:1px solid #CCC;}
+.fl-theme-mist .fl-grid .fl-grid-caption{background-color:#dfefff;color:#5a95cf;}
+.fl-theme-mist .fl-widget{background:#efefef url('../images/themes/mist/widget-bg.png') repeat-x top left;border:1px solid #CCC;}
 .fl-theme-mist .fl-widget h2{color:#000;}
 .fl-theme-mist .fl-widget .fl-icon-more{background-image:url('../images/themes/mist/icon-widget-More.png');margin-left:0;}
 .fl-theme-mist .fl-widget .fl-icon-close{background-image:url('../images/themes/mist/icon-widget-Close.png');margin-right:0;}
 .fl-theme-mist .fl-grabbable .fl-widget-titlebar{background-image:url('../images/themes/mist/icon-widget-gripper.png');}
 .fl-theme-mist .fl-widget-titlebar .icon{background-position:center center;}
-.fl-theme-mist .fl-widget-titlebar .fl-button-right,.fl-theme-mist .fl-widget-titlebar .fl-button-left{color:#4070a1!important;background-image:url(../images/themes/mist/buttons-titlebar-cap.png);text-decoration:none;}
+.fl-theme-mist .fl-widget-titlebar .fl-button-right,.fl-theme-mist .fl-widget-titlebar .fl-button-left{color:#4070a1;background-image:url(../images/themes/mist/buttons-titlebar-cap.png);text-decoration:none;}
 .fl-theme-mist .fl-widget-titlebar .fl-button-inner{background-image:url(../images/themes/mist/buttons-titlebar-bg.png);}
-.fl-theme-mist .fl-widget-options li{border-left:1px solid #ccc;}
 .fl-theme-mist .fl-widget-options a.icon:hover{background-color:#5a95cf;border-color:#000;}
 .fl-theme-mist .fl-widget-content{background-color:#fff;}
+.fl-theme-mist .fl-widget-content .fl-tabs-enhanced{background:url('../images/themes/mist/tabs-light-container-bg.png') repeat-x left bottom;border-bottom:none;margin:10px 1px 0;padding:5px 0 6px;*padding:2px 0;}
+.fl-theme-mist .fl-widget-content .fl-tabs-enhanced li{background:transparent url('../images/themes/mist/tabs-light-cap.png') no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
+.fl-theme-mist .fl-widget-content .fl-tabs-enhanced li a{background:transparent url('../images/themes/mist/tabs-light-bg.png') no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#666;*padding-bottom:4px;}
+.fl-theme-mist .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active{background:transparent url('../images/themes/mist/tabs-light-active-cap.png') no-repeat scroll left top;}
+.fl-theme-mist .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url('../images/themes/mist/tabs-light-active-bg.png') no-repeat scroll right top;color:#000;}
 .fl-theme-mist .fl-progress-bounds{border-color:#999;background-color:#fff;}
 .fl-theme-mist .fl-progress-fill{color:#4070a1;background-color:#000;}
-.fl-theme-mist .fl-reorderer-dropMarker{background-color:#f00!important;}
-.fl-theme-mist .fl-tabs-enhanced{background:url(../images/themes/mist/tabs-med-container-bg.png) repeat-x left bottom;border-bottom:none;margin:10px 1px 0;padding:5px 0 6px;*padding:2px 0;}
-.fl-theme-mist .fl-tabs-enhanced li{background:transparent url(../images/themes/mist/tabs-med-cap.png) no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
-.fl-theme-mist .fl-tabs-enhanced li a{background:transparent url(../images/themes/mist/tabs-med-bg.png) no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#666!important;*padding-bottom:4px;}
-.fl-theme-mist .fl-tabs-enhanced li.fl-tabs-active{background:transparent url(../images/themes/mist/tabs-med-active-cap.png) no-repeat scroll left top;}
-.fl-theme-mist .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url(../images/themes/mist/tabs-med-active-bg.png) no-repeat scroll right top;color:#000!important;}
-.fl-theme-mist .fl-widget-content .fl-tabs-enhanced{background:url(../images/themes/mist/tabs-light-container-bg.png) repeat-x left bottom;border-bottom:none;margin:10px 1px 0;padding:5px 0 6px;*padding:2px 0;}
-.fl-theme-mist .fl-widget-content .fl-tabs-enhanced li{background:transparent url(../images/themes/mist/tabs-light-cap.png) no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
-.fl-theme-mist .fl-widget-content .fl-tabs-enhanced li a{background:transparent url(../images/themes/mist/tabs-light-bg.png) no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#666!important;*padding-bottom:4px;}
-.fl-theme-mist .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active{background:transparent url(../images/themes/mist/tabs-light-active-cap.png) no-repeat scroll left top;}
-.fl-theme-mist .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url(../images/themes/mist/tabs-light-active-bg.png) no-repeat scroll right top;color:#000!important;}
\ No newline at end of file
+.fl-theme-mist .fl-reorderer-dropMarker{background-color:#f00;}
+.fl-theme-mist .fl-inlineEdit-edit{background-color:#dfefff;border:.1em solid #5a95cf;margin:-0.1em;}
\ No newline at end of file
index 855b388..d5e7203 100644 (file)
@@ -1,20 +1,20 @@
-.fl-theme-rust :focus,.fl-theme-rust .selectable{outline:.2em solid #662e0f;}
-.fl-theme-rust{color:#000!important;background-color:#F2E0B6!important;border-color:#916535;}
-.fl-theme-rust .fl-knockout{background:transparent;color:#000;}
-.fl-theme-rust a{color:#916535!important;}
-.fl-theme-rust a:hover{color:#914E38!important;}
+.fl-theme-rust .fl-focus:focus,.fl-theme-rust .fl-focus :focus,.fl-theme-rust.fl-focus :focus,.fl-theme-rust .selectable{outline:.2em solid #662e0f;}
+.fl-theme-rust{color:#000;background-color:#F2E0B6;border-color:#916535;}
+.fl-theme-rust .fl-knockout{background:transparent!important;color:#000;}
+.fl-theme-rust a{color:#916535;}
+.fl-theme-rust a:hover{color:#914E38;}
 .fl-theme-rust h1{color:#000;border-bottom-width:1px;border-bottom-style:dotted;}
 .fl-theme-rust h2{color:#453A2E;}
-.fl-theme-rust th{border:.1em solid #453A2E;background-color:#917A61!important;color:#fff!important;}
-.fl-theme-rust td{border:.1em solid #453A2E!important;}
+.fl-theme-rust th{border:.1em solid #453A2E;background-color:#917A61;color:#fff;}
+.fl-theme-rust td{border:.1em solid #453A2E;}
 .fl-theme-rust .fl-inlineEdit-edit{background-color:#dfefff;border:1px solid #5a95cf;margin:-1px;}
 .fl-theme-rust .fl-wrapper-widget{border:3px solid #dfefff;background-color:#333;color:#fff;}
 .fl-theme-rust .fl-wrapper-callout{border-color:#999;background-color:#dfefff;}
 .fl-theme-rust .fl-tabs{border-bottom-color:#916535;}
 .fl-theme-rust .fl-tabs li{background-color:#F2E0B6;}
 .fl-theme-rust .fl-tabs li,.fl-theme-rust .fl-tabs li a{font-weight:bold;border-color:#916535;border-bottom-color:#916535;text-decoration:none;}
-.fl-theme-rust .fl-tabs li:hover,.fl-theme-rust .fl-tabs li:hover a,.fl-theme-rust .fl-tabs li a:hover{background-color:#662e0f;color:#fff!important;}
-.fl-theme-rust .fl-tabs li.fl-tabs-active,.fl-theme-rust .fl-tabs li.fl-tabs-active a,.fl-theme-rust .fl-tabs li.fl-tabs-active a:hover,.fl-theme-rust .fl-tabs li.fl-activeTab,.fl-theme-rust .fl-tabs li.fl-activeTab:hover,.fl-theme-rust .fl-tabs li.fl-activeTab a,.fl-theme-rust .fl-tabs li.fl-activeTab a:hover{background-color:#FFFBC2;border-bottom-color:#FFFBC2;color:#916535!important;}
+.fl-theme-rust .fl-tabs li:hover,.fl-theme-rust .fl-tabs li:hover a,.fl-theme-rust .fl-tabs li a:hover{background-color:#662e0f;color:#fff;}
+.fl-theme-rust .fl-tabs li.fl-tabs-active,.fl-theme-rust .fl-tabs li.fl-tabs-active a,.fl-theme-rust .fl-tabs li.fl-tabs-active a:hover,.fl-theme-rust .fl-tabs li.fl-activeTab,.fl-theme-rust .fl-tabs li.fl-activeTab:hover,.fl-theme-rust .fl-tabs li.fl-activeTab a,.fl-theme-rust .fl-tabs li.fl-activeTab a:hover{background-color:#FFFBC2;border-bottom-color:#FFFBC2;color:#916535;}
 .fl-theme-rust .fl-tab-content{background-color:#FFFBC2;color:#000;border:1px solid #916535;border-top:none;}
 .fl-theme-rust .fl-listmenu{border:1px solid #4070a1;background-color:#fff;}
 .fl-theme-rust .fl-listmenu li,.fl-theme-rust .fl-listmenu li a{font-weight:bold;color:#4070a1;background-color:#fff;border-color:#4070a1;text-decoration:none;}
@@ -25,6 +25,6 @@
 .fl-theme-rust .grabbable{background-image:url('../images/themes/rust/gripper.png');}
 .fl-theme-rust .fl-widget-titlebar .icon{background-position:center center;}
 .fl-theme-rust .fl-widget-options li{border-left:1px solid #cf923e;}
-.fl-theme-rust .fl-widget-options a{color:#cf923e!important;}
+.fl-theme-rust .fl-widget-options a{color:#cf923e;}
 .fl-theme-rust .fl-widget-options a.icon:hover{background-color:#cf923e;border-color:#fffbc2;}
-.fl-theme-rust .fl-widget-content{background-color:#FFFBC2!important;}
\ No newline at end of file
+.fl-theme-rust .fl-widget-content{background-color:#FFFBC2;}
\ No newline at end of file
index da88d04..4fcc8c4 100644 (file)
@@ -1,51 +1,51 @@
-.fl-theme-slate :focus,.fl-theme-slate .selectable{outline:.1em solid #000;}
-.fl-theme-slate{color:#000!important;background-color:#ccc!important;border-color:#999;}
-.fl-theme-slate a{color:#ebebeb!important;font-weight:bold;}
-.fl-theme-slate a:hover{color:#fff!important;}
+.fl-theme-slate,.fl-theme-slate.fl-preview-theme{color:#000;background-color:#ccc;border-color:#999;}
+.fl-theme-slate a{color:#ebebeb;font-weight:bold;}
+.fl-theme-slate a:hover{color:#fff;}
 .fl-theme-slate h1{color:#999;border-bottom-width:.2em;border-bottom-style:solid;}
 .fl-theme-slate h2{color:#fff;}
-.fl-theme-slate th{border:.1em solid #fff;background-color:#dfefff!important;}
-.fl-theme-slate td{border:.1em solid #999!important;}
+.fl-theme-slate th{border:.1em solid #fff;background-color:#dfefff;}
+.fl-theme-slate td{border:.1em solid #999;}
+.fl-theme-slate .fl-focus:focus,.fl-theme-slate .fl-focus :focus,.fl-theme-slate.fl-focus :focus,.fl-theme-slate .selectable{outline:.1em solid #000;}
 .fl-theme-slate .fl-textfield,.fl-theme-slate .fl-textarea{background-color:#ccc;border:1px solid #666;}
 .fl-theme-slate .fl-icon{background-color:#ebebeb;}
-.fl-theme-slate .fl-inlineEdit-edit{background-color:#dfefff!important;border:.1em solid #fff;margin:-0.1em;}
-.fl-theme-slate .fl-button-left,.fl-theme-slate .fl-button-right{color:#FFF!important;background-color:#999!important;}
-.fl-theme-slate .fl-button-left{background-image:url(../images/themes/slate/buttons-med-cap.png);}
-.fl-theme-slate .fl-button-right{background-image:url(../images/themes/slate/buttons-med-cap.png);}
-.fl-theme-slate .fl-button-inner{background-image:url(../images/themes/slate/buttons-med-bg.png);}
+.fl-theme-slate .fl-button-left,.fl-theme-slate .fl-button-right{color:#FFF;background-color:#999;}
+.fl-theme-slate .fl-button-left{background-image:url('../images/themes/slate/buttons-med-cap.png');}
+.fl-theme-slate .fl-button-right{background-image:url('../images/themes/slate/buttons-med-cap.png');}
+.fl-theme-slate .fl-button-inner{background-image:url('../images/themes/slate/buttons-med-bg.png');}
 .fl-theme-slate .fl-tabs{border-bottom-color:#999;}
 .fl-theme-slate .fl-tabs li,.fl-theme-slate .fl-tabs li a{font-weight:bold;color:#999;border-color:#999;border-bottom-color:#999;background-color:#666;text-decoration:none;}
-.fl-theme-slate .fl-tabs li a:hover{background-color:#999;color:#fff!important;}
-.fl-theme-slate .fl-tabs li.fl-activeTab,.fl-theme-slate .fl-tabs li.fl-activeTab:hover,.fl-theme-slate .fl-tabs li.fl-activeTab a,.fl-theme-slate .fl-tabs li.fl-activeTab a:hover,.fl-theme-slate .fl-tabs li.fl-tabs-active,.fl-theme-slate .fl-tabs li.fl-tabs-active a,.fl-theme-slate .fl-tabs li.fl-tabs-active a:hover{background-color:#ebebeb;border-bottom-color:#ccc;color:#000!important;}
+.fl-theme-slate .fl-tabs li a:hover{background-color:#999;color:#fff;}
+.fl-theme-slate .fl-tabs li.fl-activeTab,.fl-theme-slate .fl-tabs li.fl-activeTab:hover,.fl-theme-slate .fl-tabs li.fl-activeTab a,.fl-theme-slate .fl-tabs li.fl-activeTab a:hover,.fl-theme-slate .fl-tabs li.fl-tabs-active,.fl-theme-slate .fl-tabs li.fl-tabs-active a,.fl-theme-slate .fl-tabs li.fl-tabs-active a:hover{background-color:#ebebeb;border-bottom-color:#ccc;color:#000;}
 .fl-theme-slate .fl-tabs-content{background-color:#ebebeb;color:#000;border:1px solid #999;border-top:none;}
-.fl-theme-slate .fl-listmenu{border:1px solid #999;border-bottom-width:2px;background-color:#ccc;}
-.fl-theme-slate .fl-listmenu li,.fl-theme-slate .fl-listmenu li a{font-weight:bold;background-color:#999;border-color:#ccc;text-decoration:none;}
-.fl-theme-slate .fl-listmenu a:hover{background-color:#ebebeb;color:#000!important;}
-.fl-theme-slate .fl-listmenu .fl-activemenu,.fl-theme-slate .fl-listmenu .fl-activemenu:hover{background-color:#ccc;border-bottom-color:#ccc;color:#d9d9d9;}
+.fl-theme-slate .fl-tabs-enhanced{background:url('../images/themes/slate/tabs-light-container-bg.png') repeat-x left bottom;border-bottom:none;margin:10px 1px 0;padding:5px 0 6px;*padding:0;}
+.fl-theme-slate .fl-tabs-enhanced li{background:transparent url('../images/themes/slate/tabs-light-cap.png') no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
+.fl-theme-slate .fl-tabs-enhanced li a{background:transparent url('../images/themes/slate/tabs-light-bg.png') no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#666;*padding-bottom:4px;}
+.fl-theme-slate .fl-tabs-enhanced li.fl-tabs-active{background:transparent url('../images/themes/slate/tabs-light-active-cap.png') no-repeat scroll left top;}
+.fl-theme-slate .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url('../images/themes/slate/tabs-light-active-bg.png') no-repeat scroll right top;color:#000;}
+.fl-theme-slate .fl-listmenu,.fl-theme-slate .fl-list-menu{border:1px solid #999;border-bottom-width:2px;background-color:#ccc;}
+.fl-theme-slate .fl-listmenu li,.fl-theme-slate .fl-list-menu li,.fl-theme-slate .fl-listmenu li a,.fl-theme-slate .fl-list-menu li a{font-weight:bold;background-color:#999;border-color:#ccc;text-decoration:none;}
+.fl-theme-slate .fl-listmenu a:hover,.fl-theme-slate .fl-list-menu a:hover{background-color:#ebebeb;color:#000;}
+.fl-theme-slate .fl-listmenu .fl-activemenu a,.fl-theme-slate .fl-list-menu .fl-activemenu a,.fl-theme-slate .fl-listmenu .fl-activemenu a:hover,.fl-theme-slate .fl-list-menu .fl-activemenu a:hover{background-color:#ccc;border-bottom-color:#ccc;color:#000;}
 .fl-theme-slate .fl-grid{border:2px solid #999;background-color:#ccc;}
-.fl-theme-slate .fl-grid li{background-color:#dfefff;border:1px solid #999;}
-.fl-theme-slate .fl-grid .caption{background-color:#dfefff;color:#fff;}
-.fl-theme-slate .fl-widget{background:#ccc url(../images/themes/slate/widget-bg.png) repeat-x top left;border:1px solid #666;}
+.fl-theme-slate .fl-grid li{background-color:#999;border:1px solid #999;}
+.fl-theme-slate .fl-grid .fl-grid-caption{background-color:#666;color:#fff;}
+.fl-theme-slate .fl-widget{background:#ccc url('../images/themes/slate/widget-bg.png') repeat-x top left;border:1px solid #666;}
 .fl-theme-slate .fl-widget h2{color:#ccc;}
 .fl-theme-slate .fl-widget .fl-icon-more{background-image:url('../images/themes/slate/icon-widget-More.png');margin-left:0;}
 .fl-theme-slate .fl-widget .fl-icon-close{background-image:url('../images/themes/slate/icon-widget-Close.png');margin-right:0;}
 .fl-theme-slate .fl-grabbable .fl-widget-titlebar{background-image:url('../images/themes/slate/icon-widget-gripper.png');}
 .fl-theme-slate .fl-widget-titlebar .icon{background-position:center center;}
-.fl-theme-slate .fl-widget-titlebar .fl-button-right,.fl-theme-slate .fl-widget-titlebar .fl-button-left{color:#333!important;background-image:url(../images/themes/slate/buttons-titlebar-cap.png);text-decoration:none;}
-.fl-theme-slate .fl-widget-titlebar .fl-button-inner{background-image:url(../images/themes/slate/buttons-titlebar-bg.png);padding-bottom:.3em;padding-top:0;}
+.fl-theme-slate .fl-widget-titlebar .fl-button-right,.fl-theme-slate .fl-widget-titlebar .fl-button-left{color:#333;background-image:url('../images/themes/slate/buttons-titlebar-cap.png');text-decoration:none;}
+.fl-theme-slate .fl-widget-titlebar .fl-button-inner{background-image:url('../images/themes/slate/buttons-titlebar-bg.png');padding-bottom:.3em;padding-top:0;}
 .fl-theme-slate .fl-widget-options li{border-left:1px solid #ccc;}
 .fl-theme-slate .fl-widget-options a.icon:hover{background-color:#fff;border-color:#000;}
 .fl-theme-slate .fl-widget-content{background-color:#bfbfbf;}
+.fl-theme-slate .fl-widget-content .fl-tabs-enhanced{background:url('../images/themes/slate/tabs-med-container-bg.png') repeat-x left bottom;border-bottom:none;margin:10px 1px 0;padding:5px 0 6px;*padding:0;}
+.fl-theme-slate .fl-widget-content .fl-tabs-enhanced li{background:transparent url('../images/themes/slate/tabs-med-cap.png') no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
+.fl-theme-slate .fl-widget-content .fl-tabs-enhanced li a{background:transparent url('../images/themes/slate/tabs-med-bg.png') no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#666;*padding-bottom:4px;}
+.fl-theme-slate .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active{background:transparent url('../images/themes/slate/tabs-med-active-cap.png') no-repeat scroll left top;}
+.fl-theme-slate .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url('../images/themes/slate/tabs-med-active-bg.png') no-repeat scroll right top;color:#000;}
 .fl-theme-slate .fl-progress-bounds{border-color:#999;background-color:#ccc;}
 .fl-theme-slate .fl-progress-fill{color:#999;background-color:#000;}
-.fl-theme-slate .fl-reorderer-dropMarker{background-color:#f00!important;}
-.fl-theme-slate .fl-tabs-enhanced{background:url(../images/themes/slate/tabs-light-container-bg.png) repeat-x left bottom;border-bottom:none;margin:10px 1px 0;padding:5px 0 6px;*padding:0;}
-.fl-theme-slate .fl-tabs-enhanced li{background:transparent url(../images/themes/slate/tabs-light-cap.png) no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
-.fl-theme-slate .fl-tabs-enhanced li a{background:transparent url(../images/themes/slate/tabs-light-bg.png) no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#666!important;*padding-bottom:4px;}
-.fl-theme-slate .fl-tabs-enhanced li.fl-tabs-active{background:transparent url(../images/themes/slate/tabs-light-active-cap.png) no-repeat scroll left top;}
-.fl-theme-slate .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url(../images/themes/slate/tabs-light-active-bg.png) no-repeat scroll right top;color:#000!important;}
-.fl-theme-slate .fl-widget-content .fl-tabs-enhanced{background:url(../images/themes/slate/tabs-med-container-bg.png) repeat-x left bottom;border-bottom:none;margin:10px 1px 0;padding:5px 0 6px;*padding:0;}
-.fl-theme-slate .fl-widget-content .fl-tabs-enhanced li{background:transparent url(../images/themes/slate/tabs-med-cap.png) no-repeat left top;padding:4px 0 6px 16px;*padding-top:0;}
-.fl-theme-slate .fl-widget-content .fl-tabs-enhanced li a{background:transparent url(../images/themes/slate/tabs-med-bg.png) no-repeat right top;border:none;margin:0;padding:4px 16px 6px 0;color:#666!important;*padding-bottom:4px;}
-.fl-theme-slate .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active{background:transparent url(../images/themes/slate/tabs-med-active-cap.png) no-repeat scroll left top;}
-.fl-theme-slate .fl-widget-content .fl-tabs-enhanced li.fl-tabs-active a{background:transparent url(../images/themes/slate/tabs-med-active-bg.png) no-repeat scroll right top;color:#000!important;}
\ No newline at end of file
+.fl-theme-slate .fl-reorderer-dropMarker{background-color:#f00;}
+.fl-theme-slate .fl-inlineEdit-edit{background-color:#dfefff;border:.1em solid #fff;margin:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-theme-wb.css b/docs/jscripts/infusion/framework/fss/css/fss-theme-wb.css
new file mode 100644 (file)
index 0000000..ffa08d7
--- /dev/null
@@ -0,0 +1,42 @@
+.fl-theme-wb,.fl-theme-wb *,.fl-preview-theme.fl-theme-wb,.fl-theme-bw.fl-inverted-color,.fl-theme-bw .fl-inverted-color,.fl-theme-bw.fl-inverted-color *,.fl-theme-bw .fl-inverted-color *,.fl-preview-theme.fl-theme-bw.fl-inverted-color{color:#fff;background-color:#000;border-color:#fff;}
+.fl-theme-wb div,.fl-theme-wb input,.fl-theme-bw .fl-inverted-color div,.fl-theme-bw .fl-inverted-color input{color:#fff;background-color:#000;border-color:#fff;}
+.fl-theme-wb iframe,.fl-theme-bw .fl-inverted-color iframe{border-color:#fff;}
+.fl-theme-wb a,.fl-theme-bw .fl-inverted-color a{color:#fff;font-weight:bold;background-color:#000;}
+.fl-theme-wb h1,.fl-theme-wb h2,.fl-theme-wb h3,.fl-theme-wb h4,.fl-theme-wb h5,.fl-theme-wb h6,.fl-theme-bw .fl-inverted-color h1,.fl-theme-bw .fl-inverted-color h2,.fl-theme-bw .fl-inverted-color h3,.fl-theme-bw .fl-inverted-color h4,.fl-theme-bw .fl-inverted-color h5,.fl-theme-bw .fl-inverted-color h6{color:#fff;background-color:#000;border-color:#fff;}
+.fl-theme-wb th,.fl-theme-bw .fl-inverted-color th{border:.1em solid #fff;background-color:#fff;color:#000;}
+.fl-theme-wb td,.fl-theme-bw .fl-inverted-color td{border:.1em solid #fff;}
+.fl-theme-wb .fl-focus:focus,.fl-theme-wb .fl-focus :focus,.fl-theme-wb.fl-focus :focus,.fl-theme-wb .selectable,.fl-theme-bw .fl-inverted-color .fl-focus:focus,.fl-theme-bw .fl-inverted-color .fl-focus :focus,.fl-theme-bw.fl-inverted-color.fl-focus :focus,.fl-theme-bw .fl-inverted-color .selectable{outline:.2em solid #F00;}
+.fl-theme-wb .fl-knockout,.fl-theme-bw .fl-inverted-color .fl-knockout{background:transparent!important;color:#fff;}
+.fl-theme-wb .fl-icon,.fl-theme-bw .fl-inverted-color .fl-icon{background-color:#000;}
+.fl-theme-wb .fl-tabs,.fl-theme-bw .fl-inverted-color .fl-tabs{border-bottom-color:#fff;}
+.fl-theme-wb .fl-tabs li,.fl-theme-wb .fl-tabs li *,.fl-theme-bw .fl-inverted-color .fl-tabs li,.fl-theme-bw .fl-inverted-color .fl-tabs li *{border-color:#fff;border-bottom-color:#fff;}
+.fl-theme-wb .fl-tabs li,.fl-theme-bw .fl-inverted-color .fl-tabs li{background-color:#fff;}
+.fl-theme-wb .fl-tabs li *,.fl-theme-bw .fl-inverted-color .fl-tabs li *{color:#000;font-weight:bold;background-color:#fff;text-decoration:none;}
+.fl-theme-wb .fl-tabs li:hover,.fl-theme-wb .fl-tabs li:hover *,.fl-theme-wb .fl-tabs li a:hover,.fl-theme-bw .fl-inverted-color .fl-tabs li:hover,.fl-theme-bw .fl-inverted-color .fl-tabs li:hover *,.fl-theme-bw .fl-inverted-color .fl-tabs li a:hover{color:#fff;background-color:#000;}
+.fl-theme-wb .fl-tabs li.fl-tabs-active,.fl-theme-wb .fl-tabs li.fl-tabs-active a,.fl-theme-wb .fl-tabs li.fl-tabs-active a:hover,.fl-theme-wb .fl-tabs li.fl-activeTab,.fl-theme-wb .fl-tabs li.fl-activeTab:hover,.fl-theme-wb .fl-tabs li.fl-activeTab a,.fl-theme-wb .fl-tabs li.fl-activeTab a:hover,.fl-theme-bw .fl-inverted-color .fl-tabs li.fl-tabs-active,.fl-theme-bw .fl-inverted-color .fl-tabs li.fl-tabs-active a,.fl-theme-bw .fl-inverted-color .fl-tabs li.fl-tabs-active a:hover,.fl-theme-bw .fl-inverted-color .fl-tabs li.fl-activeTab,.fl-theme-bw .fl-inverted-color .fl-tabs li.fl-activeTab a,.fl-theme-bw .fl-inverted-color .fl-tabs li.fl-activeTabe a:hover{background-color:#000;border-bottom-color:#000;color:#fff;}
+.fl-theme-wb .fl-tab-content,.fl-theme-bw .fl-inverted-color .fl-tab-content{background-color:#000;border:1px solid #fff;border-top:none;color:#fff;}
+.fl-theme-wb .fl-listmenu,.fl-theme-wb .fl-list-menu,.fl-theme-bw .fl-inverted-color .fl-listmenu,.fl-theme-bw .fl-inverted-color .fl-list-menu{border:1px solid #fff;border-bottom-width:2px;background-color:#000;}
+.fl-theme-wb .fl-listmenu li,.fl-theme-wb .fl-list-menu li,.fl-theme-wb .fl-listmenu li a,.fl-theme-wb .fl-list-menu li a,.fl-theme-bw .fl-inverted-color .fl-listmenu li,.fl-theme-bw .fl-inverted-color .fl-list-menu li,.fl-theme-bw .fl-inverted-color .fl-listmenu li a,.fl-theme-bw .fl-inverted-color .fl-list-menu li a{font-weight:bold;color:#fff;background-color:#000;border-color:#fff;text-decoration:none;}
+.fl-theme-wb .fl-listmenu a:hover,.fl-theme-wb .fl-list-menu a:hover,.fl-theme-bw .fl-inverted-color .fl-listmenu a:hover,.fl-theme-bw .fl-inverted-color .fl-list-menu a:hover{background-color:#fff;color:#000;}
+.fl-theme-wb .fl-listmenu .fl-activemenu a,.fl-theme-wb .fl-list-menu .fl-activemenu a,.fl-theme-wb .fl-listmenu .fl-activemenu a:hover,.fl-theme-wb .fl-list-menu .fl-activemenu a:hover,.fl-theme-bw .fl-inverted-color .fl-listmenu .fl-activemenu a,.fl-theme-bw .fl-inverted-color .fl-list-menu .fl-activemenu a,.fl-theme-bw .fl-inverted-color .fl-listmenu .fl-activemenu a:hover,.fl-theme-bw .fl-inverted-color .fl-list-menu .fl-activemenu a:hover{background-color:#fff;border-bottom-color:#000;color:#000;}
+.fl-theme-wb .fl-button-left,.fl-theme-wb .fl-button-right,.fl-theme-bw .fl-inverted-color .fl-button-left,.fl-theme-bw .fl-inverted-color .fl-button-right{color:#fff;background-color:#000;}
+.fl-theme-wb .fl-button-left,.fl-theme-wb .fl-button-right,.fl-theme-bw .fl-inverted-color .fl-button-left,.fl-theme-bw .fl-inverted-color .fl-button-right{background-image:url('../images/themes/wb/buttons-med-cap.png');}
+.fl-theme-wb .fl-button-inner,.fl-theme-bw .fl-inverted-color .fl-button-inner{background-image:url('../images/themes/wb/buttons-med-bg.png');}
+.fl-theme-wb .fl-widget,.fl-theme-bw .fl-inverted-color .fl-widget{background-color:#fff;border:1px solid #000;}
+.fl-theme-wb .fl-widget h2,.fl-theme-bw .fl-inverted-color .fl-widget h2{color:#fff0;background-color:#00000;}
+.fl-theme-wb .fl-widget a,.fl-theme-bw .fl-inverted-color .fl-widget a{color:#fff;}
+.fl-theme-wb .fl-widget .fl-icon-more,.fl-theme-bw .fl-inverted-color .fl-widget .fl-icon-more{background-image:url('../images/themes/wb/icon-widget-More.png');margin-left:0;}
+.fl-theme-wb .fl-widget .fl-icon-close,.fl-theme-bw .fl-inverted-color .fl-widget .fl-icon-close{background-image:url('../images/themes/wb/icon-widget-Close.png');margin-right:0;}
+.fl-theme-wb .fl-widget .fl-widget-titlebar,.fl-theme-bw .fl-inverted-color .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-wb .fl-grabbable .fl-widget-titlebar,.fl-theme-bw .fl-inverted-color .fl-grabbable .fl-widget-titlebar{background-image:url('../images/themes/wb/icon-widget-gripper.png');}
+.fl-theme-wb .fl-grabbable .fl-widget-titlebar h2,.fl-theme-bw .fl-inverted-color .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-wb .fl-widget-titlebar .icon,.fl-theme-bw .fl-inverted-color .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-wb .fl-widget-titlebar .fl-button-right,.fl-theme-wb .fl-widget-titlebar .fl-button-left,.fl-theme-bw .fl-inverted-color .fl-widget-titlebar .fl-button-right,.fl-theme-bw .fl-inverted-color .fl-widget-titlebar .fl-button-left{color:#fff;background-image:url('../images/themes/wb/buttons-titlebar-cap.png');text-decoration:none;}
+.fl-theme-wb .fl-widget-titlebar .fl-button-inner,.fl-theme-bw .fl-inverted-color .fl-widget-titlebar .fl-button-inner{background-image:url(../images/themes/wb/buttons-titlebar-bg.png);}
+.fl-theme-wb .fl-widget .fl-widget-options,.fl-theme-bw .fl-inverted-color .fl-widget .fl-widget-options{padding:0;}
+.fl-theme-wb .fl-widget .fl-widget-options li,.fl-theme-bw .fl-inverted-color .fl-widget .fl-widget-options li{border-left:1px solid #000;}
+.fl-theme-wb .fl-widget .fl-widget-content,.fl-theme-bw .fl-inverted-color .fl-widget .fl-widget-content{background-color:#000;}
+.fl-theme-wb .fl-progress-bounds,.fl-theme-bw .fl-inverted-color .fl-progress-bounds{border-color:#fff;background-color:#000;}
+.fl-theme-wb .fl-progress-fill,.fl-theme-bw .fl-inverted-color .fl-progress-fill{color:#000;background-color:#fff;}
+.fl-theme-wb .fl-reorderer-dropMarker,.fl-theme-bw .fl-inverted-color .fl-reorderer-dropMarker{background-color:#f00;}
+.fl-theme-wb .fl-inlineEdit-edit,.fl-theme-bw .fl-inverted-color .fl-inlineEdit-edit{background-color:#fff;color:#000;border:.1em solid #000;padding:.1em;margin:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-theme-yb.css b/docs/jscripts/infusion/framework/fss/css/fss-theme-yb.css
new file mode 100644 (file)
index 0000000..2761b51
--- /dev/null
@@ -0,0 +1,41 @@
+.fl-theme-yb,.fl-theme-yb *,.fl-preview-theme.fl-theme-yb,.fl-theme-by.fl-inverted-color,.fl-theme-by .fl-inverted-color,.fl-theme-by.fl-inverted-color *,.fl-theme-by .fl-inverted-color *,.fl-preview-theme.fl-theme-by.fl-inverted-color{color:#ff0;background-color:#000;border-color:#ff0;}
+.fl-theme-yb div,.fl-theme-yb input,.fl-theme-by .fl-inverted-color div,.fl-theme-by .fl-inverted-color input{color:#ff0;background-color:#000;border-color:#ff0;}
+.fl-theme-yb iframe,.fl-theme-by .fl-inverted-color iframe{border-color:#ff0;}
+.fl-theme-yb a,.fl-theme-by .fl-inverted-color a{color:#ff0;font-weight:bold;background-color:#000;}
+.fl-theme-yb h1,.fl-theme-yb h2,.fl-theme-yb h3,.fl-theme-yb h4,.fl-theme-yb h5,.fl-theme-yb h6,.fl-theme-by .fl-inverted-color h1,.fl-theme-by .fl-inverted-color h2,.fl-theme-by .fl-inverted-color h3,.fl-theme-by .fl-inverted-color h4,.fl-theme-by .fl-inverted-color h5,.fl-theme-by .fl-inverted-color h6{color:#ff0;background-color:#000;border-color:#ff0;}
+.fl-theme-yb th,.fl-theme-by .fl-inverted-color th{border:.1em solid #ff0;background-color:#ff0;color:#000;}
+.fl-theme-yb td,.fl-theme-by .fl-inverted-color td{border:.1em solid #ff0;}
+.fl-theme-yb .fl-focus:focus,.fl-theme-yb .fl-focus :focus,.fl-theme-yb.fl-focus :focus,.fl-theme-yb .selectable,.fl-theme-by .fl-inverted-color .fl-focus:focus,.fl-theme-by .fl-inverted-color .fl-focus :focus,.fl-theme-by.fl-inverted-color.fl-focus :focus,.fl-theme-by .fl-inverted-color .selectable{outline:.2em solid #F00;}
+.fl-theme-yb .fl-knockout,.fl-theme-by .fl-inverted-color .fl-knockout{background:transparent!important;color:#ff0;}
+.fl-theme-yb .fl-icon,.fl-theme-by .fl-inverted-color .fl-icon{background-color:#000;}
+.fl-theme-yb .fl-tabs,.fl-theme-by .fl-inverted-color .fl-tabs{border-bottom-color:#ff0;}
+.fl-theme-yb .fl-tabs li,.fl-theme-yb .fl-tabs li *,.fl-theme-by .fl-inverted-color .fl-tabs li,.fl-theme-by .fl-inverted-color .fl-tabs li *{border-color:#ff0;border-bottom-color:#ff0;}
+.fl-theme-yb .fl-tabs li,.fl-theme-by .fl-inverted-color .fl-tabs li{background-color:#ff0;}
+.fl-theme-yb .fl-tabs li *,.fl-theme-by .fl-inverted-color .fl-tabs li *{color:#000;font-weight:bold;background-color:#ff0;text-decoration:none;}
+.fl-theme-yb .fl-tabs li:hover,.fl-theme-yb .fl-tabs li:hover *,.fl-theme-yb .fl-tabs li a:hover,.fl-theme-by .fl-inverted-color .fl-tabs li:hover,.fl-theme-by .fl-inverted-color .fl-tabs li:hover *,.fl-theme-by .fl-inverted-color .fl-tabs li a:hover{color:#ff0;background-color:#000;}
+.fl-theme-yb .fl-tabs li.fl-tabs-active,.fl-theme-yb .fl-tabs li.fl-tabs-active a,.fl-theme-yb .fl-tabs li.fl-tabs-active a:hover,.fl-theme-yb .fl-tabs li.fl-activeTab,.fl-theme-yb .fl-tabs li.fl-activeTab:hover,.fl-theme-yb .fl-tabs li.fl-activeTab a,.fl-theme-yb .fl-tabs li.fl-activeTab a:hover,.fl-theme-by .fl-inverted-color .fl-tabs li.fl-tabs-active,.fl-theme-by .fl-inverted-color .fl-tabs li.fl-tabs-active a,.fl-theme-by .fl-inverted-color .fl-tabs li.fl-tabs-active a:hover,.fl-theme-by .fl-inverted-color .fl-tabs li.fl-activeTab,.fl-theme-by .fl-inverted-color .fl-tabs li.fl-activeTab:hover,.fl-theme-by .fl-inverted-color .fl-tabs li.fl-activeTab a,.fl-theme-by .fl-inverted-color .fl-tabs li.fl-activeTab a:hover{background-color:#000;border-bottom-color:#000;color:#ff0;}
+.fl-theme-yb .fl-tab-content,.fl-theme-by .fl-inverted-color .fl-tab-content{background-color:#000;border:1px solid #ff0;border-top:none;color:#ff0;}
+.fl-theme-yb .fl-listmenu,.fl-theme-yb .fl-list-menu,.fl-theme-by .fl-inverted-color .fl-listmenu,.fl-theme-by .fl-inverted-color .fl-list-menu{border:1px solid #ff0;border-bottom-width:2px;background-color:#000;}
+.fl-theme-yb .fl-listmenu li,.fl-theme-yb .fl-list-menu li,.fl-theme-yb .fl-listmenu li a,.fl-theme-yb .fl-list-menu li a,.fl-theme-by .fl-inverted-color .fl-listmenu li,.fl-theme-by .fl-inverted-color .fl-list-menu li,.fl-theme-by .fl-inverted-color .fl-listmenu li a,.fl-theme-by .fl-inverted-color .fl-list-menu li a{font-weight:bold;color:#ff0;background-color:#000;border-color:#ff0;text-decoration:none;}
+.fl-theme-yb .fl-listmenu a:hover,.fl-theme-yb .fl-list-menu a:hover,.fl-theme-by .fl-inverted-color .fl-listmenu a:hover,.fl-theme-by .fl-inverted-color .fl-list-menu a:hover{background-color:#ff0;color:#000;}
+.fl-theme-yb .fl-listmenu .fl-activemenu a,.fl-theme-yb .fl-list-menu .fl-activemenu a,.fl-theme-yb .fl-listmenu .fl-activemenu a:hover,.fl-theme-yb .fl-list-menu .fl-activemenu a:hover,.fl-theme-by .fl-inverted-color .fl-listmenu .fl-activemenu a,.fl-theme-by .fl-inverted-color .fl-list-menu .fl-activemenu a,.fl-theme-by .fl-inverted-color .fl-listmenu .fl-activemenu a:hover,.fl-theme-by .fl-inverted-color .fl-list-menu .fl-activemenu a:hover{background-color:#ff0;border-bottom-color:#000;color:#000;}
+.fl-theme-yb .fl-button-left,.fl-theme-yb .fl-button-right,.fl-theme-by .fl-inverted-color .fl-button-left,.fl-theme-by .fl-inverted-color .fl-button-right{background-image:url('../images/themes/yb/buttons-med-cap.png');}
+.fl-theme-yb .fl-button-inner,.fl-theme-by .fl-inverted-color .fl-button-inner{background-image:url('../images/themes/yb/buttons-med-bg.png');}
+.fl-theme-yb .fl-widget,.fl-theme-by .fl-inverted-color .fl-widget{background-color:#ff0;border:1px solid #000;}
+.fl-theme-yb .fl-widget h2,.fl-theme-by .fl-inverted-color .fl-widget h2{color:#ff0;background-color:#000;}
+.fl-theme-yb .fl-widget a,.fl-theme-by .fl-inverted-color .fl-widget a{color:#ff0;}
+.fl-theme-yb .fl-widget .fl-icon-more,.fl-theme-by .fl-inverted-color .fl-widget .fl-icon-more{background-image:url('../images/themes/yb/icon-widget-More.png');margin-left:0;}
+.fl-theme-yb .fl-widget .fl-icon-close,.fl-theme-by .fl-inverted-color .fl-widget .fl-icon-close{background-image:url('../images/themes/yb/icon-widget-Close.png');margin-right:0;}
+.fl-theme-yb .fl-widget .fl-widget-titlebar,.fl-theme-by .fl-inverted-color .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-yb .fl-grabbable .fl-widget-titlebar,.fl-theme-by .fl-inverted-color .fl-grabbable .fl-widget-titlebar{background-image:url('../images/themes/yb/icon-widget-gripper.png');}
+.fl-theme-yb .fl-grabbable .fl-widget-titlebar h2,.fl-theme-by .fl-inverted-color .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-yb .fl-widget-titlebar .icon,.fl-theme-by .fl-inverted-color .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-yb .fl-widget-titlebar .fl-button-right,.fl-theme-yb .fl-widget-titlebar .fl-button-left,.fl-theme-by .fl-inverted-color .fl-widget-titlebar .fl-button-right,.fl-theme-by .fl-inverted-color .fl-widget-titlebar .fl-button-left{color:#ff0;background-image:url('../images/themes/yb/buttons-titlebar-cap.png');text-decoration:none;}
+.fl-theme-yb .fl-widget-titlebar .fl-button-inner,.fl-theme-by .fl-inverted-color .fl-widget-titlebar .fl-button-inner{background-image:url('../images/themes/yb/buttons-titlebar-bg.png');}
+.fl-theme-yb .fl-widget .fl-widget-options,.fl-theme-by .fl-inverted-color .fl-widget .fl-widget-options{padding:0;}
+.fl-theme-yb .fl-widget .fl-widget-options li,.fl-theme-by .fl-inverted-color .fl-widget .fl-widget0options li{border-left:1px solid #000;}
+.fl-theme-yb .fl-widget .fl-widget-content,.fl-theme-by .fl-inverted-color .fl-widget .fl-widget-content{background-color:#000;}
+.fl-theme-yb .fl-progress-bounds,.fl-theme-by .fl-inverted-color .fl-progress-bounds{border-color:#ff0;background-color:#000;}
+.fl-theme-yb .fl-progress-fill,.fl-theme-by .fl-inverted-color .fl-progress-fill{color:#000;background-color:#ff0;}
+.fl-theme-yb .fl-reorderer-dropMarker,.fl-theme-by .fl-inverted-color .fl-reorderer-dropMarker{background-color:#f00;}
+.fl-theme-yb .fl-inlineEdit-edit,.fl-theme-by .fl-inverted-color .fl-inlineEdit-edit{background-color:#ff0;color:#000;border:.1em solid #000;padding:.1em;margin:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-theme-yellowBlack.css b/docs/jscripts/infusion/framework/fss/css/fss-theme-yellowBlack.css
new file mode 100644 (file)
index 0000000..014b0c6
--- /dev/null
@@ -0,0 +1,41 @@
+.fl-theme-yellowBlack{color:#ff0;background-color:#000;}
+.fl-theme-yellowBlack div,.fl-theme-yellowBlack input{color:#ff0;background-color:#000;border-color:#ff0;}
+.fl-theme-yellowBlack iframe{border-color:#ff0;}
+.fl-theme-yellowBlack a{color:#ff0;font-weight:bold;background-color:#000;}
+.fl-theme-yellowBlack h1,.fl-theme-yellowBlack h2,.fl-theme-yellowBlack h3,.fl-theme-yellowBlack h4,.fl-theme-yellowBlack h5,.fl-theme-yellowBlack h6{color:#ff0;background-color:#000;border-color:#ff0;}
+.fl-theme-yellowBlack th{border:.1em solid #ff0;background-color:#ff0;color:#000;}
+.fl-theme-yellowBlack td{border:.1em solid #ff0;}
+.fl-theme-yellowBlack .fl-focus:focus,.fl-theme-yellowBlack .fl-focus :focus,.fl-theme-yellowBlack.fl-focus :focus,.fl-theme-yellowBlack .selectable{outline:.2em solid #F00;}
+.fl-theme-yellowBlack .fl-knockout{background:transparent!important;color:#ff0;}
+.fl-theme-yellowBlack .fl-icon{background-color:#000;}
+.fl-theme-yellowBlack .fl-tabs{border-bottom-color:#ff0;}
+.fl-theme-yellowBlack .fl-tabs li,.fl-theme-yellowBlack .fl-tabs li *{border-color:#ff0;border-bottom-color:#ff0;}
+.fl-theme-yellowBlack .fl-tabs li{background-color:#ff0;}
+.fl-theme-yellowBlack .fl-tabs li *{color:#000;font-weight:bold;background-color:#ff0;text-decoration:none;}
+.fl-theme-yellowBlack .fl-tabs li:hover,.fl-theme-yellowBlack .fl-tabs li:hover *,.fl-theme-yellowBlack .fl-tabs li a:hover{color:#ff0;background-color:#000;}
+.fl-theme-yellowBlack .fl-tabs li.fl-tabs-active,.fl-theme-yellowBlack .fl-tabs li.fl-tabs-active a,.fl-theme-yellowBlack .fl-tabs li.fl-tabs-active a:hover,.fl-theme-yellowBlack .fl-tabs li.fl-activeTab,.fl-theme-yellowBlack .fl-tabs li.fl-activeTab:hover,.fl-theme-yellowBlack .fl-tabs li.fl-activeTab a,.fl-theme-yellowBlack .fl-tabs li.fl-activeTab a:hover{background-color:#000;border-bottom-color:#000;color:#ff0;}
+.fl-theme-yellowBlack .fl-tab-content{background-color:#000;border:1px solid #ff0;border-top:none;color:#ff0;}
+.fl-theme-yellowBlack .fl-listmenu,.fl-theme-yellowBlack .fl-list-menu{border:1px solid #ff0;border-bottom-width:2px;background-color:#000;}
+.fl-theme-yellowBlack .fl-listmenu li,.fl-theme-yellowBlack .fl-list-menu li,.fl-theme-yellowBlack .fl-listmenu li a,.fl-theme-yellowBlack .fl-list-menu li a{font-weight:bold;color:#ff0;background-color:#000;border-color:#ff0;text-decoration:none;}
+.fl-theme-yellowBlack .fl-listmenu a:hover,.fl-theme-yellowBlack .fl-list-menu a:hover{background-color:#ff0;color:#000;}
+.fl-theme-yellowBlack .fl-listmenu .fl-activemenu a,.fl-theme-yellowBlack .fl-list-menu .fl-activemenu a,.fl-theme-yellowBlack .fl-listmenu .fl-activemenu a:hover,.fl-theme-yellowBlack .fl-list-menu .fl-activemenu a:hover{background-color:#ff0;border-bottom-color:#000;color:#000;}
+.fl-theme-yellowBlack .fl-button-left,.fl-theme-yellowBlack .fl-button-right{background-image:url('../images/themes/yellowBlack/buttons-med-cap.png');}
+.fl-theme-yellowBlack .fl-button-inner{background-image:url('../images/themes/yellowBlack/buttons-med-bg.png');}
+.fl-theme-yellowBlack .fl-widget{background-color:#ff0;border:1px solid #000;}
+.fl-theme-yellowBlack .fl-widget h2{color:#ff0;background-color:#000;}
+.fl-theme-yellowBlack .fl-widget a{color:#ff0;}
+.fl-theme-yellowBlack .fl-widget .fl-icon-more{background-image:url('../images/themes/yellowBlack/icon-widget-More.png');margin-left:0;}
+.fl-theme-yellowBlack .fl-widget .fl-icon-close{background-image:url('../images/themes/yellowBlack/icon-widget-Close.png');margin-right:0;}
+.fl-theme-yellowBlack .fl-widget .fl-widget-titlebar{margin-bottom:3px;}
+.fl-theme-yellowBlack .fl-grabbable .fl-widget-titlebar{background-image:url('../images/themes/yellowBlack/icon-widget-gripper.png');}
+.fl-theme-yellowBlack .fl-grabbable .fl-widget-titlebar h2{display:inline;}
+.fl-theme-yellowBlack .fl-widget-titlebar .icon{background-position:center center;}
+.fl-theme-yellowBlack .fl-widget-titlebar .fl-button-right,.fl-theme-yellowBlack .fl-widget-titlebar .fl-button-left{color:#ff0;background-image:url('../images/themes/yellowBlack/buttons-titlebar-cap.png');text-decoration:none;}
+.fl-theme-yellowBlack .fl-widget-titlebar .fl-button-inner{background-image:url('../images/themes/yellowBlack/buttons-titlebar-bg.png');}
+.fl-theme-yellowBlack .fl-widget .fl-widget-options{padding:0;}
+.fl-theme-yellowBlack .fl-widget .fl-widget-options li{border-left:1px solid #000;}
+.fl-theme-yellowBlack .fl-widget .fl-widget-content{background-color:#000;}
+.fl-theme-yellowBlack .fl-progress-bounds{border-color:#ff0;background-color:#000;}
+.fl-theme-yellowBlack .fl-progress-fill{color:#000;background-color:#ff0;}
+.fl-theme-yellowBlack .fl-reorderer-dropMarker{background-color:#f00;}
+.fl-theme-yellowBlack .fl-inlineEdit-edit{background-color:#ff0;color:#000;border:.1em solid #000;padding:.1em;margin:-0.1em;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/css/fss-transitions.css b/docs/jscripts/infusion/framework/fss/css/fss-transitions.css
new file mode 100644 (file)
index 0000000..afc9062
--- /dev/null
@@ -0,0 +1,9 @@
+.fl-transition-slide{-webkit-transition:-webkit-transform .75s ease-in-out;}
+.fl-transition-grow{-webkit-transition:height .75s ease-in-out;}
+.fl-transition-fade{-webkit-transition:opacity .75s linear;}
+@-webkit-keyframes fadeOut{from{opacity:1;}
+to{opacity:0;}
+}
+@-webkit-keyframes loading_spinner{from{-webkit-transform:rotate(0deg);-webkit-animation-timing-function:linear;}
+to{-webkit-transform:rotate(360deg);-webkit-animation-timing-function:linear;}
+}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-med-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-med-bg.png
new file mode 100644 (file)
index 0000000..e535873
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-med-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-med-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-med-cap.png
new file mode 100644 (file)
index 0000000..8962fe9
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-med-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-titlebar-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-titlebar-bg.png
new file mode 100644 (file)
index 0000000..954abe4
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-titlebar-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-titlebar-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-titlebar-cap.png
new file mode 100644 (file)
index 0000000..b7d8b5f
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/buttons-titlebar-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-Close.png b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-Close.png
new file mode 100644 (file)
index 0000000..2551d05
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-Close.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-More.png b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-More.png
new file mode 100644 (file)
index 0000000..fe994e2
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-More.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-gripper.png b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-gripper.png
new file mode 100644 (file)
index 0000000..bf9d98c
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/blackYellow/icon-widget-gripper.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-med-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-med-bg.png
new file mode 100644 (file)
index 0000000..e535873
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-med-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-med-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-med-cap.png
new file mode 100644 (file)
index 0000000..8962fe9
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-med-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-titlebar-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-titlebar-bg.png
new file mode 100644 (file)
index 0000000..954abe4
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-titlebar-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-titlebar-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-titlebar-cap.png
new file mode 100644 (file)
index 0000000..b7d8b5f
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/bw/buttons-titlebar-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-Close.png b/docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-Close.png
new file mode 100644 (file)
index 0000000..eb90dcb
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-Close.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-More.png b/docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-More.png
new file mode 100644 (file)
index 0000000..9bb7b57
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-More.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-gripper.png b/docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-gripper.png
new file mode 100644 (file)
index 0000000..bf9d98c
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/bw/icon-widget-gripper.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-med-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-med-bg.png
new file mode 100644 (file)
index 0000000..e535873
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-med-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-med-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-med-cap.png
new file mode 100644 (file)
index 0000000..8962fe9
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-med-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-titlebar-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-titlebar-bg.png
new file mode 100644 (file)
index 0000000..954abe4
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-titlebar-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-titlebar-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-titlebar-cap.png
new file mode 100644 (file)
index 0000000..b7d8b5f
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/by/buttons-titlebar-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-Close.png b/docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-Close.png
new file mode 100644 (file)
index 0000000..2551d05
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-Close.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-More.png b/docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-More.png
new file mode 100644 (file)
index 0000000..fe994e2
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-More.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-gripper.png b/docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-gripper.png
new file mode 100644 (file)
index 0000000..bf9d98c
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/by/icon-widget-gripper.png differ
index 606c730..d661752 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-light-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-light-bg.png differ
index 4b43a2e..9b4c6cb 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-light-cap.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-light-cap.png differ
index 08adba5..5d25958 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-med-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-med-bg.png differ
index d5b284b..61eeecb 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-med-cap.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/buttons-med-cap.png differ
index 636b637..16c34a6 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-active-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-active-bg.png differ
index 3099399..8c8b587 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-active-cap.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-active-cap.png differ
index 70c3025..ceffc5e 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-bg.png differ
index 55b6167..877c88c 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-cap.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-cap.png differ
index 1fe4dd0..e585983 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-container-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-container-bg.png differ
index 6feba9c..cc5368a 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-content-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-light-content-bg.png differ
index 742fe13..40c7d14 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-active-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-active-bg.png differ
index 4df34a5..6be7f9a 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-active-cap.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-active-cap.png differ
index 9dfff09..37e20ca 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-bg.png differ
index 2d22070..bab78aa 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-cap.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-cap.png differ
index 112a5b7..6d0919d 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-container-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-container-bg.png differ
index 6feba9c..cc5368a 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-content-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/coal/tabs-med-content-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-med-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-med-bg.png
new file mode 100644 (file)
index 0000000..e535873
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-med-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-med-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-med-cap.png
new file mode 100644 (file)
index 0000000..8962fe9
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-med-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-titlebar-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-titlebar-bg.png
new file mode 100644 (file)
index 0000000..954abe4
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-titlebar-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-titlebar-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-titlebar-cap.png
new file mode 100644 (file)
index 0000000..b7d8b5f
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hc/buttons-titlebar-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-Close.png b/docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-Close.png
new file mode 100644 (file)
index 0000000..eb90dcb
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-Close.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-More.png b/docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-More.png
new file mode 100644 (file)
index 0000000..9bb7b57
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-More.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-gripper.png b/docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-gripper.png
new file mode 100644 (file)
index 0000000..bf9d98c
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hc/icon-widget-gripper.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-med-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-med-bg.png
new file mode 100644 (file)
index 0000000..625315f
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-med-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-med-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-med-cap.png
new file mode 100644 (file)
index 0000000..f759781
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-med-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-titlebar-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-titlebar-bg.png
new file mode 100644 (file)
index 0000000..bbcdf6e
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-titlebar-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-titlebar-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-titlebar-cap.png
new file mode 100644 (file)
index 0000000..6228a50
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hci/buttons-titlebar-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-Close.png b/docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-Close.png
new file mode 100644 (file)
index 0000000..7944ae1
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-Close.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-More.png b/docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-More.png
new file mode 100644 (file)
index 0000000..bf3f39c
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-More.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-gripper.png b/docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-gripper.png
new file mode 100644 (file)
index 0000000..5750c04
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/hci/icon-widget-gripper.png differ
index e617b68..086c50a 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/mist/buttons-light-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/mist/buttons-light-bg.png differ
index 6704779..3ff61be 100644 (file)
Binary files a/docs/jscripts/infusion/framework/fss/images/themes/mist/buttons-med-bg.png and b/docs/jscripts/infusion/framework/fss/images/themes/mist/buttons-med-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-med-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-med-bg.png
new file mode 100644 (file)
index 0000000..625315f
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-med-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-med-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-med-cap.png
new file mode 100644 (file)
index 0000000..f759781
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-med-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-titlebar-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-titlebar-bg.png
new file mode 100644 (file)
index 0000000..bbcdf6e
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-titlebar-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-titlebar-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-titlebar-cap.png
new file mode 100644 (file)
index 0000000..6228a50
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/wb/buttons-titlebar-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-Close.png b/docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-Close.png
new file mode 100644 (file)
index 0000000..7944ae1
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-Close.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-More.png b/docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-More.png
new file mode 100644 (file)
index 0000000..bf3f39c
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-More.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-gripper.png b/docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-gripper.png
new file mode 100644 (file)
index 0000000..5750c04
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/wb/icon-widget-gripper.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-med-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-med-bg.png
new file mode 100644 (file)
index 0000000..5b4f585
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-med-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-med-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-med-cap.png
new file mode 100644 (file)
index 0000000..49643c7
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-med-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-titlebar-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-titlebar-bg.png
new file mode 100644 (file)
index 0000000..791883f
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-titlebar-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-titlebar-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-titlebar-cap.png
new file mode 100644 (file)
index 0000000..c2e0312
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yb/buttons-titlebar-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-Close.png b/docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-Close.png
new file mode 100644 (file)
index 0000000..cba7ac0
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-Close.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-More.png b/docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-More.png
new file mode 100644 (file)
index 0000000..05667c5
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-More.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-gripper.png b/docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-gripper.png
new file mode 100644 (file)
index 0000000..07195ff
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yb/icon-widget-gripper.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-med-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-med-bg.png
new file mode 100644 (file)
index 0000000..5b4f585
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-med-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-med-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-med-cap.png
new file mode 100644 (file)
index 0000000..49643c7
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-med-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-titlebar-bg.png b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-titlebar-bg.png
new file mode 100644 (file)
index 0000000..791883f
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-titlebar-bg.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-titlebar-cap.png b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-titlebar-cap.png
new file mode 100644 (file)
index 0000000..c2e0312
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/buttons-titlebar-cap.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-Close.png b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-Close.png
new file mode 100644 (file)
index 0000000..cba7ac0
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-Close.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-More.png b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-More.png
new file mode 100644 (file)
index 0000000..05667c5
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-More.png differ
diff --git a/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-gripper.png b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-gripper.png
new file mode 100644 (file)
index 0000000..07195ff
Binary files /dev/null and b/docs/jscripts/infusion/framework/fss/images/themes/yellowBlack/icon-widget-gripper.png differ
diff --git a/docs/jscripts/infusion/framework/renderer/js/RendererUtilities.js b/docs/jscripts/infusion/framework/renderer/js/RendererUtilities.js
new file mode 100644 (file)
index 0000000..080d5ef
--- /dev/null
@@ -0,0 +1 @@
+fluid_1_4=fluid_1_4||{};(function($,fluid){if(!fluid.renderer){fluid.fail("fluidRenderer.js is a necessary dependency of RendererUtilities")}fluid.iota=function(count,first){first=first||0;var togo=[];for(var i=0;i<count;++i){togo[togo.length]=first++}return togo};fluid.renderer.visitDecorators=function(that,visitor){fluid.visitComponentChildren(that,function(component,name){if(name.indexOf(fluid.renderer.decoratorComponentPrefix)===0){visitor(component,name)}},{flat:true})};fluid.renderer.clearDecorators=function(instantiator,that){fluid.renderer.visitDecorators(that,function(component,name){instantiator.clearComponent(that,name)})};fluid.renderer.getDecoratorComponents=function(that){var togo={};fluid.renderer.visitDecorators(that,function(component,name){togo[name]=component});return togo};fluid.renderer.modeliseOptions=function(options,defaults,baseOptions){return $.extend({},defaults,options,fluid.filterKeys(baseOptions,["model","applier"]))};fluid.renderer.reverseMerge=function(target,source,names){names=fluid.makeArray(names);fluid.each(names,function(name){if(target[name]===undefined&&source[name]!==undefined){target[name]=source[name]}})};fluid.renderer.createRendererSubcomponent=function(container,selectors,options,baseObject,fossils){options=options||{};var source=options.templateSource?options.templateSource:{node:$(container)};var rendererOptions=fluid.renderer.modeliseOptions(options.rendererOptions,null,baseObject);rendererOptions.fossils=fossils||{};var expanderOptions=fluid.renderer.modeliseOptions(options.expanderOptions,{ELstyle:"${}"},baseObject);fluid.renderer.reverseMerge(expanderOptions,options,["resolverGetConfig","resolverSetConfig"]);var that={};if(!options.noexpand){that.expander=fluid.renderer.makeProtoExpander(expanderOptions)}var templates=null;that.render=function(tree){var cutpointFn=options.cutpointGenerator||"fluid.renderer.selectorsToCutpoints";rendererOptions.cutpoints=rendererOptions.cutpoints||fluid.invokeGlobalFunction(cutpointFn,[selectors,options]);container=typeof (container)==="function"?container():$(container);if(templates){fluid.clear(rendererOptions.fossils);fluid.reRender(templates,container,tree,rendererOptions)}else{if(typeof (source)==="function"){source=source()}templates=fluid.render(source,container,tree,rendererOptions)}};return that};fluid.defaults("fluid.rendererComponent",{gradeNames:["fluid.viewComponent"],initFunction:"fluid.initRendererComponent",mergePolicy:{protoTree:"noexpand, replace"},rendererOptions:{autoBind:true},events:{prepareModelForRender:null,onRenderTree:null,afterRender:null,produceTree:"unicast"}});fluid.initRendererComponent=function(componentName,container,options){var that=fluid.initView(componentName,container,options,{gradeNames:["fluid.rendererComponent"]});fluid.fetchResources(that.options.resources);var rendererOptions=fluid.renderer.modeliseOptions(that.options.rendererOptions,null,that);if(!that.options.noUpgradeDecorators){fluid.withInstantiator(that,function(currentInst){rendererOptions.instantiator=currentInst;rendererOptions.parentComponent=that})}var messageResolver;if(!rendererOptions.messageSource&&that.options.strings){messageResolver=fluid.messageResolver({messageBase:that.options.strings,resolveFunc:that.options.messageResolverFunction,parents:fluid.makeArray(that.options.parentBundle)});rendererOptions.messageSource={type:"resolver",resolver:messageResolver}}fluid.renderer.reverseMerge(rendererOptions,that.options,["resolverGetConfig","resolverSetConfig"]);var rendererFnOptions=$.extend({},that.options.rendererFnOptions,{rendererOptions:rendererOptions,repeatingSelectors:that.options.repeatingSelectors,selectorsToIgnore:that.options.selectorsToIgnore,expanderOptions:{envAdd:{styles:that.options.styles}}});if(that.options.resources&&that.options.resources.template){rendererFnOptions.templateSource=function(){return that.options.resources.template.resourceText}}var produceTree=that.events.produceTree;produceTree.addListener(function(){return that.options.protoTree});if(that.options.produceTree){produceTree.addListener(that.options.produceTree)}fluid.renderer.reverseMerge(rendererFnOptions,that.options,["resolverGetConfig","resolverSetConfig"]);if(rendererFnOptions.rendererTargetSelector){container=function(){return that.dom.locate(rendererFnOptions.rendererTargetSelector)}}var renderer={fossils:{},boundPathForNode:function(node){return fluid.boundPathForNode(node,renderer.fossils)}};var rendererSub=fluid.renderer.createRendererSubcomponent(container,that.options.selectors,rendererFnOptions,that,renderer.fossils);that.renderer=$.extend(renderer,rendererSub);if(messageResolver){that.messageResolver=messageResolver}that.refreshView=renderer.refreshView=function(){if(rendererOptions.instantiator&&rendererOptions.parentComponent){fluid.renderer.clearDecorators(rendererOptions.instantiator,rendererOptions.parentComponent)}that.events.prepareModelForRender.fire(that.model,that.applier,that);var tree=produceTree.fire(that);if(that.renderer.expander){tree=that.renderer.expander(tree)}that.events.onRenderTree.fire(that,tree);that.renderer.render(tree);that.events.afterRender.fire(that)};if(that.options.renderOnInit){that.refreshView()}return that};var removeSelectors=function(selectors,selectorsToIgnore){fluid.each(fluid.makeArray(selectorsToIgnore),function(selectorToIgnore){delete selectors[selectorToIgnore]});return selectors};var markRepeated=function(selectorKey,repeatingSelectors){if(repeatingSelectors){fluid.each(repeatingSelectors,function(repeatingSelector){if(selectorKey===repeatingSelector){selectorKey=selectorKey+":"}})}return selectorKey};fluid.renderer.selectorsToCutpoints=function(selectors,options){var togo=[];options=options||{};selectors=fluid.copy(selectors);if(options.selectorsToIgnore){selectors=removeSelectors(selectors,options.selectorsToIgnore)}for(var selectorKey in selectors){togo.push({id:markRepeated(selectorKey,options.repeatingSelectors),selector:selectors[selectorKey]})}return togo};fluid.renderer.NO_COMPONENT={};fluid.renderer.mergeComponents=function(target,source){for(var key in source){target[key]=source[key]}return target};fluid.registerNamespace("fluid.renderer.selection");fluid.renderer.selection.inputs=function(options,container,key,config){fluid.expect("Selection to inputs expander",["selectID","inputID","labelID","rowID"],options);var selection=config.expander(options.tree);var rows=fluid.transform(selection.optionlist.value,function(option,index){var togo={};var element={parentRelativeID:"..::"+options.selectID,choiceindex:index};togo[options.inputID]=element;togo[options.labelID]=fluid.copy(element);return togo});var togo={};togo[options.selectID]=selection;togo[options.rowID]={children:rows};togo=config.expander(togo);return togo};fluid.renderer.repeat=function(options,container,key,config){fluid.expect("Repetition expander",["controlledBy","tree"],options);var path=fluid.extractContextualPath(options.controlledBy,{ELstyle:"ALL"},fluid.threadLocal());var list=fluid.get(config.model,path,config.resolverGetConfig);var togo={};if(!list||list.length===0){return options.ifEmpty?config.expander(options.ifEmpty):togo}var expanded=[];fluid.each(list,function(element,i){var EL=fluid.model.composePath(path,i);var envAdd={};if(options.pathAs){envAdd[options.pathAs]=EL}if(options.valueAs){envAdd[options.valueAs]=fluid.get(config.model,EL,config.resolverGetConfig)}var expandrow=fluid.withEnvironment(envAdd,function(){return config.expander(options.tree)},"rendererEnvironment");if(fluid.isArrayable(expandrow)){if(expandrow.length>0){expanded.push({children:expandrow})}}else{if(expandrow!==fluid.renderer.NO_COMPONENT){expanded.push(expandrow)}}});var repeatID=options.repeatID;if(repeatID.indexOf(":")===-1){repeatID=repeatID+":"}fluid.each(expanded,function(entry){entry.ID=repeatID});return expanded};fluid.renderer.condition=function(options,container,key,config){fluid.expect("Selection to condition expander",["condition"],options);var condition;if(options.condition.funcName){var args=config.expandLight(options.condition.args);condition=fluid.invoke(options.condition.funcName,args)}else{if(options.condition.expander){condition=config.expander(options.condition)}else{condition=config.expandLight(options.condition)}}var tree=(condition?options.trueTree:options.falseTree);if(!tree){tree=fluid.renderer.NO_COMPONENT}return config.expander(tree)};fluid.extractContextualPath=function(string,options,env){var parsed=fluid.extractELWithContext(string,options);if(parsed){if(parsed.context){var fetched=env[parsed.context];if(typeof (fetched)!=="string"){fluid.fail("Could not look up context path named "+parsed.context+" to string value")}return fluid.model.composePath(fetched,parsed.path)}else{return parsed.path}}};fluid.renderer.makeProtoExpander=function(expandOptions){var options=$.extend({ELstyle:"${}"},expandOptions);options.fetcher=fluid.makeEnvironmentFetcher("rendererEnvironment",options.model);var IDescape=options.IDescape||"\\";function fetchEL(string){var env=fluid.threadLocal().rendererEnvironment;return fluid.extractContextualPath(string,options,env)}var expandLight=function(source){return fluid.resolveEnvironment(source,options)};var expandBound=function(value,concrete){if(value.messagekey!==undefined){return{componentType:"UIMessage",messagekey:expandBound(value.messagekey),args:expandLight(value.args)}}var proto;if(!fluid.isPrimitive(value)&&!fluid.isArrayable(value)){proto=$.extend({},value);if(proto.decorators){proto.decorators=expandLight(proto.decorators)}value=proto.value;delete proto.value}else{proto={}}var EL=typeof (value)==="string"?fetchEL(value):null;if(EL){proto.valuebinding=EL}else{if(value!==undefined){proto.value=value}}if(options.model&&proto.valuebinding&&proto.value===undefined){proto.value=fluid.get(options.model,proto.valuebinding,options.resolverGetConfig)}if(concrete){proto.componentType="UIBound"}return proto};options.filter=fluid.expander.lightFilter;var expandCond;var expandLeafOrCond;var expandEntry=function(entry){var comp=[];expandCond(entry,comp);return{children:comp}};var expandExternal=function(entry){if(entry===fluid.renderer.NO_COMPONENT){return entry}var singleTarget;var target=[];var pusher=function(comp){singleTarget=comp};expandLeafOrCond(entry,target,pusher);return singleTarget||target};var expandConfig={model:options.model,resolverGetConfig:options.resolverGetConfig,resolverSetConfig:options.resolverSetConfig,expander:expandExternal,expandLight:expandLight};var expandLeaf=function(leaf,componentType){var togo={componentType:componentType};var map=fluid.renderer.boundMap[componentType]||{};for(var key in leaf){if(/decorators|args/.test(key)){togo[key]=expandLight(leaf[key]);continue}else{if(map[key]){togo[key]=expandBound(leaf[key])}else{togo[key]=leaf[key]}}}return togo};var expandChildren=function(entry,pusher){var children=entry.children;for(var i=0;i<children.length;++i){var target=[];var comp={children:target};var child=children[i];var childPusher=function(comp){target[target.length]=comp};expandLeafOrCond(child,target,childPusher);if(comp.children.length===1&&!comp.children[0].ID){comp=comp.children[0]}pusher(comp)}};function detectBareBound(entry){return fluid.find(entry,function(value,key){return key==="decorators"})!==false}var expandLeafOrCond=function(entry,target,pusher){var componentType=fluid.renderer.inferComponentType(entry);if(!componentType&&(fluid.isPrimitive(entry)||detectBareBound(entry))){componentType="UIBound"}if(componentType){pusher(componentType==="UIBound"?expandBound(entry,true):expandLeaf(entry,componentType))}else{if(!target){fluid.fail("Illegal cond->cond transition")}expandCond(entry,target)}};expandCond=function(proto,target){for(var key in proto){var entry=proto[key];if(key.charAt(0)===IDescape){key=key.substring(1)}if(key==="expander"){var expanders=fluid.makeArray(entry);fluid.each(expanders,function(expander){var expanded=fluid.invokeGlobalFunction(expander.type,[expander,proto,key,expandConfig]);if(expanded!==fluid.renderer.NO_COMPONENT){fluid.each(expanded,function(el){target[target.length]=el})}})}else{if(entry){var condPusher=function(comp){comp.ID=key;target[target.length]=comp};if(entry.children){if(key.indexOf(":")===-1){key=key+":"}expandChildren(entry,condPusher)}else{if(fluid.renderer.isBoundPrimitive(entry)){condPusher(expandBound(entry,true))}else{expandLeafOrCond(entry,null,condPusher)}}}}}};return function(entry){var initEnvironment=$.extend({},options.envAdd);return fluid.withEnvironment({rendererEnvironment:initEnvironment},function(){return expandEntry(entry)})}}})(jQuery,fluid_1_4);
\ No newline at end of file
index d27d83d..4d3d638 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){var t;var parser;var tagstack;var lumpindex=0;var nestingdepth=0;var justended=false;var defstart=-1;var defend=-1;var baseURL;var debugMode=false;var cutpoints=[];var cutstatus=[];function init(baseURLin,debugModeIn,cutpointsIn){t.rootlump=fluid.XMLLump(0,-1);tagstack=[t.rootlump];lumpindex=0;nestingdepth=0;justended=false;defstart=-1;defend=-1;baseURL=baseURLin;debugMode=debugModeIn;cutpoints=cutpointsIn;if(cutpoints){for(var i=0;i<cutpoints.length;++i){cutstatus[i]=[];cutpoints[i].tree=fluid.parseSelector(cutpoints[i].selector)}}}function findTopContainer(){for(var i=tagstack.length-1;i>=0;--i){var lump=tagstack[i];if(lump.rsfID!==undefined){return lump}}return t.rootlump}function newLump(){var togo=fluid.XMLLump(lumpindex,nestingdepth);if(debugMode){togo.line=parser.getLineNumber();togo.column=parser.getColumnNumber()}t.lumps[lumpindex]=togo;++lumpindex;return togo}function addLump(mmap,ID,lump){var list=mmap[ID];if(!list){list=[];mmap[ID]=list}list[list.length]=lump}function checkContribute(ID,lump){if(ID.indexOf("scr=contribute-")!==-1){var scr=ID.substring("scr=contribute-".length);addLump(t.collectmap,scr,lump)}}var parseUri=function(source){var o=parseUri.options,value=o.parser[o.strictMode?"strict":"loose"].exec(source);for(var i=0,uri={};i<14;i++){uri[o.key[i]]=value[i]||""}uri[o.q.name]={};uri[o.key[12]].replace(o.q.parser,function($0,$1,$2){if($1){uri[o.q.name][$1]=$2}});return uri};parseUri.options={strictMode:false,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}};function rewriteUrl(url){var po=parseUri(url);if(po.protocol||url.charAt(0)==="/"){return url}else{return baseURL+url}}fluid.debugLump=function(lump){var togo=lump.text;togo+=" at ";togo+="lump line "+lump.line+" column "+lump.column+" index "+lump.lumpindex;togo+=parent.href===null?"":" in file "+parent.href;return togo};function debugLump(lump){return"<"+lump.tagname+">"}function hasCssClass(clazz,totest){if(!totest){return false}return(" "+totest+" ").indexOf(" "+clazz+" ")!==-1}function matchNode(term,headlump){if(term.predList){for(var i=0;i<term.predList.length;++i){var pred=term.predList[i];if(pred.id&&headlump.attributemap.id!==pred.id){return false}if(pred.clazz&&!hasCssClass(pred.clazz,headlump.attributemap["class"])){return false}if(pred.tag&&headlump.tagname!==pred.tag){return false}}return true}}function tagStartCut(headlump){var togo=undefined;if(cutpoints){for(var i=0;i<cutpoints.length;++i){var cut=cutpoints[i];var cutstat=cutstatus[i];var nextterm=cutstat.length;if(nextterm<cut.tree.length){var term=cut.tree[nextterm];if(nextterm>0){if(cut.tree[nextterm-1].child&&cutstat[nextterm-1]!==headlump.nestingdepth-1){continue}}var isMatch=matchNode(term,headlump);if(isMatch){cutstat[cutstat.length]=headlump.nestingdepth;if(cutstat.length===cut.tree.length){if(togo!==undefined){fluid.fail("Cutpoint specification error - node "+debugLump(headlump)+" has already matched with rsf:id of "+togo)}if(cut.id===undefined||cut.id===null){fluid.fail("Error in cutpoints list - entry at position "+i+" does not have an id set")}togo=cut.id}}}}}return togo}function tagEndCut(){if(cutpoints){for(var i=0;i<cutpoints.length;++i){var cutstat=cutstatus[i];if(cutstat.length>0&&cutstat[cutstat.length-1]===nestingdepth){cutstat.length--}}}}function processTagStart(isempty,text){++nestingdepth;if(justended){justended=false;var backlump=newLump();backlump.nestingdepth--}if(t.firstdocumentindex===-1){t.firstdocumentindex=lumpindex}var headlump=newLump();var stacktop=tagstack[tagstack.length-1];headlump.uplump=stacktop;var tagname=parser.getName();headlump.tagname=tagname;var attrs=headlump.attributemap=parser.m_attributes;var ID=attrs[fluid.ID_ATTRIBUTE];if(ID===undefined){ID=tagStartCut(headlump)}for(var attrname in attrs){var attrval=attrs[attrname];if(/href|src|codebase|action/.test(attrname)){attrval=rewriteUrl(attrval);attrs[attrname]=attrval}else{if(ID===undefined&&/for|headers/.test(attrname)){ID=attrs[fluid.ID_ATTRIBUTE]="scr=null"}}}if(ID){if(ID.charCodeAt(0)===126){ID=ID.substring(1);headlump.elide=true}checkContribute(ID,headlump);headlump.rsfID=ID;var downreg=findTopContainer();if(!downreg.downmap){downreg.downmap={}}addLump(downreg.downmap,ID,headlump);addLump(t.globalmap,ID,headlump);var colpos=ID.indexOf(":");if(colpos!==-1){var prefix=ID.substring(0,colpos);if(!stacktop.finallump){stacktop.finallump={}}stacktop.finallump[prefix]=headlump}}headlump.text="<"+tagname+fluid.dumpAttributes(attrs)+">";tagstack[tagstack.length]=headlump;if(isempty){processTagEnd()}}function processTagEnd(){tagEndCut();var endlump=newLump();--nestingdepth;endlump.text="</"+parser.getName()+">";var oldtop=tagstack[tagstack.length-1];oldtop.close_tag=t.lumps[lumpindex-1];tagstack.length--;justended=true}function processDefaultTag(){if(defstart!==-1){if(t.firstdocumentindex===-1){t.firstdocumentindex=lumpindex}var text=parser.getContent().substr(defstart,defend-defstart);justended=false;var newlump=newLump();newlump.text=text;defstart=-1}}fluid.ID_ATTRIBUTE="rsf:id";fluid.getPrefix=function(id){var colpos=id.indexOf(":");return colpos===-1?id:id.substring(0,colpos)};fluid.SplitID=function(id){var that={};var colpos=id.indexOf(":");if(colpos===-1){that.prefix=id}else{that.prefix=id.substring(0,colpos);that.suffix=id.substring(colpos+1)}return that};fluid.XMLLump=function(lumpindex,nestingdepth){return{nestingdepth:nestingdepth,lumpindex:lumpindex,parent:t}};fluid.XMLViewTemplate=function(){return{globalmap:{},collectmap:{},lumps:[],firstdocumentindex:-1}};fluid.fetchResources=function(resourceSpecs,callback){var resourceCallback=function(thisSpec){return{success:function(response){thisSpec.resourceText=response;thisSpec.resourceKey=thisSpec.href;thisSpec.queued=false;fluid.fetchResources(resourceSpecs,callback)},error:function(response,textStatus,errorThrown){thisSpec.fetchError={status:response.status,textStatus:textStatus,errorThrown:errorThrown}}}};var complete=true;for(var key in resourceSpecs){var resourceSpec=resourceSpecs[key];if(resourceSpec.href&&!resourceSpec.resourceText){if(!resourceSpec.queued){var thisCallback=resourceCallback(resourceSpec);$.ajax({url:resourceSpec.href,success:thisCallback.success,error:thisCallback.error});resourceSpec.queued=true}complete=false}else{if(resourceSpec.nodeId&&!resourceSpec.resourceText){var node=document.getElementById(resourceSpec.nodeId);resourceSpec.resourceText=fluid.dom.getElementText(node);resourceSpec.resourceKey=resourceSpec.nodeId}}}if(complete){if($.browser.mozilla){setTimeout(function(){callback(resourceSpecs)},1)}else{callback(resourceSpecs)}}};fluid.XMLEncode=function(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};fluid.dumpAttributes=function(attrcopy){var togo="";for(var attrname in attrcopy){var attrvalue=attrcopy[attrname];if(attrvalue!==null&&attrvalue!==undefined){togo+=" "+attrname+'="'+attrvalue+'"'}}return togo};fluid.aggregateMMap=function(target,source){for(var key in source){var targhas=target[key];if(!targhas){target[key]=[]}target[key]=target[key].concat(source[key])}};var unUnicode=/(\\u[\dabcdef]{4}|\\x[\dabcdef]{2})/g;fluid.unescapeProperties=function(string){string=string.replace(unUnicode,function(match){var code=match.substring(2);var parsed=parseInt(code,16);return String.fromCharCode(parsed)});var pos=0;while(true){var backpos=string.indexOf("\\",pos);if(backpos===-1){break}if(backpos===string.length-1){return[string.substring(0,string.length-1),true]}var replace=string.charAt(backpos+1);if(replace==="n"){replace="\n"}if(replace==="r"){replace="\r"}if(replace==="t"){replace="\t"}string=string.substring(0,backpos)+replace+string.substring(backpos+2);pos=backpos+1}return[string,false]};var breakPos=/[^\\][\s:=]/;fluid.parseJavaProperties=function(text){var togo={};text=text.replace(/\r\n/g,"\n");text=text.replace(/\r/g,"\n");lines=text.split("\n");var contin,key,valueComp,valueRaw,valueEsc;for(var i=0;i<lines.length;++i){var line=$.trim(lines[i]);if(!line||line.charAt(0)==="#"||line.charAt(0)==="!"){continue}if(!contin){valueComp="";var breakpos=line.search(breakPos);if(breakpos===-1){key=line;valueRaw=""}else{key=$.trim(line.substring(0,breakpos+1));valueRaw=$.trim(line.substring(breakpos+2));if(valueRaw.charAt(0)===":"||valueRaw.charAt(0)==="="){valueRaw=$.trim(valueRaw.substring(1))}}key=fluid.unescapeProperties(key)[0];valueEsc=fluid.unescapeProperties(valueRaw)}else{valueEsc=fluid.unescapeProperties(line)}contin=valueEsc[1];if(!valueEsc[1]){togo[key]=valueComp+valueEsc[0]}else{valueComp+=valueEsc[0]}}return togo};fluid.parseTemplates=function(resourceSpec,templateList,opts){var togo=[];togo.globalmap={};for(var i=0;i<templateList.length;++i){var resource=resourceSpec[templateList[i]];var lastslash=resource.href.lastIndexOf("/");var baseURL=lastslash===-1?"":resource.href.substring(0,lastslash+1);var template=fluid.parseTemplate(resource.resourceText,baseURL,opts.scanStart&&i===0,resource.cutpoints,opts);if(i===0){fluid.aggregateMMap(togo.globalmap,template.globalmap)}template.href=resource.href;template.baseURL=baseURL;template.resourceKey=resource.resourceKey;togo[i]=template;fluid.aggregateMMap(togo.globalmap,template.rootlump.downmap)}return togo};fluid.parseTemplate=function(template,baseURL,scanStart,cutpoints_in,opts){t=fluid.XMLViewTemplate();opts=opts||{};init(baseURL,opts.debugMode,cutpoints_in);var idpos=template.indexOf(fluid.ID_ATTRIBUTE);if(scanStart){var brackpos=template.indexOf(">",idpos);parser=new XMLP(template.substring(brackpos+1))}else{parser=new XMLP(template)}parseloop:while(true){var iEvent=parser.next();switch(iEvent){case XMLP._ELM_B:processDefaultTag();processTagStart(false,"");break;case XMLP._ELM_E:processDefaultTag();processTagEnd();break;case XMLP._ELM_EMP:processDefaultTag();processTagStart(true,"");break;case XMLP._PI:case XMLP._DTD:defstart=-1;continue;case XMLP._TEXT:case XMLP._ENTITY:case XMLP._CDATA:case XMLP._COMMENT:if(defstart===-1){defstart=parser.m_cB}defend=parser.m_cE;break;case XMLP._ERROR:fluid.setLogging(true);var message="Error parsing template: "+parser.m_cAlt+" at line "+parser.getLineNumber();fluid.log(message);fluid.log("Just read: "+parser.m_xml.substring(parser.m_iP-30,parser.m_iP));fluid.log("Still to read: "+parser.m_xml.substring(parser.m_iP,parser.m_iP+30));fluid.fail(message);break parseloop;case XMLP._NONE:break parseloop}}return t};var chars="(?:[\\w\u0128-\uFFFF*_-]|\\\\.)";var quickChild=new RegExp("^>\\s*("+chars+"+)");var quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)");var selSeg=new RegExp("^s*([#.]?)("+chars+"*)");var quickClass=new RegExp("([#.]?)("+chars+"+)","g");var childSeg=new RegExp("\\s*(>)?\\s*","g");var whiteSpace=new RegExp("^\\w*$");fluid.parseSelector=function(selstring){var togo=[];selstring=$.trim(selstring);quickClass.lastIndex=0;var lastIndex=0;while(true){var atNode=[];while(true){var segMatch=quickClass.exec(selstring);if(!segMatch||segMatch.index!==lastIndex){break}var thisNode={};var text=segMatch[2];if(segMatch[1]===""){thisNode.tag=text}else{if(segMatch[1]==="#"){thisNode.id=text}else{if(segMatch[1]==="."){thisNode.clazz=text}}}atNode[atNode.length]=thisNode;lastIndex=quickClass.lastIndex}childSeg.lastIndex=lastIndex;var fullAtNode={predList:atNode};var childMatch=childSeg.exec(selstring);if(!childMatch||childMatch.index!==lastIndex){var remainder=selstring.substring(lastIndex);fluid.fail("Error in selector string - can not match child selector expression at "+remainder)}if(childMatch[1]===">"){fullAtNode.child=true}togo[togo.length]=fullAtNode;if(childSeg.lastIndex>=selstring.length){break}lastIndex=childSeg.lastIndex;quickClass.lastIndex=childSeg.lastIndex}return togo}})(jQuery,fluid_1_1);
\ No newline at end of file
+fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.parseTemplate=function(template,baseURL,scanStart,cutpoints_in,opts){opts=opts||{};if(!template){fluid.fail("empty template supplied to fluid.parseTemplate")}var t;var parser;var tagstack;var lumpindex=0;var nestingdepth=0;var justended=false;var defstart=-1;var defend=-1;var debugMode=false;var cutpoints=[];var simpleClassCutpoints={};var cutstatus=[];var XMLLump=function(lumpindex,nestingdepth){return{nestingdepth:nestingdepth,lumpindex:lumpindex,parent:t}};function isSimpleClassCutpoint(tree){return tree.length===1&&tree[0].predList.length===1&&tree[0].predList[0].clazz}function init(baseURLin,debugModeIn,cutpointsIn){t.rootlump=XMLLump(0,-1);tagstack=[t.rootlump];lumpindex=0;nestingdepth=0;justended=false;defstart=-1;defend=-1;baseURL=baseURLin;debugMode=debugModeIn;if(cutpointsIn){for(var i=0;i<cutpointsIn.length;++i){var tree=fluid.parseSelector(cutpointsIn[i].selector);var clazz=isSimpleClassCutpoint(tree);if(clazz){simpleClassCutpoints[clazz]=cutpointsIn[i].id}else{cutstatus.push([]);cutpoints.push($.extend({},cutpointsIn[i],{tree:tree}))}}}}function findTopContainer(){for(var i=tagstack.length-1;i>=0;--i){var lump=tagstack[i];if(lump.rsfID!==undefined){return lump}}return t.rootlump}function newLump(){var togo=XMLLump(lumpindex,nestingdepth);if(debugMode){togo.line=parser.getLineNumber();togo.column=parser.getColumnNumber()}t.lumps[lumpindex]=togo;++lumpindex;return togo}function addLump(mmap,ID,lump){var list=mmap[ID];if(!list){list=[];mmap[ID]=list}list[list.length]=lump}function checkContribute(ID,lump){if(ID.indexOf("scr=contribute-")!==-1){var scr=ID.substring("scr=contribute-".length);addLump(t.collectmap,scr,lump)}}function debugLump(lump){return"<"+lump.tagname+">"}function hasCssClass(clazz,totest){if(!totest){return false}return(" "+totest+" ").indexOf(" "+clazz+" ")!==-1}function matchNode(term,headlump,headclazz){if(term.predList){for(var i=0;i<term.predList.length;++i){var pred=term.predList[i];if(pred.id&&headlump.attributemap.id!==pred.id){return false}if(pred.clazz&&!hasCssClass(pred.clazz,headclazz)){return false}if(pred.tag&&headlump.tagname!==pred.tag){return false}}return true}}function tagStartCut(headlump){var togo;var headclazz=headlump.attributemap["class"];if(headclazz){var split=headclazz.split(" ");for(var i=0;i<split.length;++i){var simpleCut=simpleClassCutpoints[$.trim(split[i])];if(simpleCut){return simpleCut}}}for(var i=0;i<cutpoints.length;++i){var cut=cutpoints[i];var cutstat=cutstatus[i];var nextterm=cutstat.length;if(nextterm<cut.tree.length){var term=cut.tree[nextterm];if(nextterm>0){if(cut.tree[nextterm-1].child&&cutstat[nextterm-1]!==headlump.nestingdepth-1){continue}}var isMatch=matchNode(term,headlump,headclazz);if(isMatch){cutstat[cutstat.length]=headlump.nestingdepth;if(cutstat.length===cut.tree.length){if(togo!==undefined){fluid.fail("Cutpoint specification error - node "+debugLump(headlump)+" has already matched with rsf:id of "+togo)}if(cut.id===undefined||cut.id===null){fluid.fail("Error in cutpoints list - entry at position "+i+" does not have an id set")}togo=cut.id}}}}return togo}function tagEndCut(){if(cutpoints){for(var i=0;i<cutpoints.length;++i){var cutstat=cutstatus[i];if(cutstat.length>0&&cutstat[cutstat.length-1]===nestingdepth){cutstat.length--}}}}function processTagEnd(){tagEndCut();var endlump=newLump();--nestingdepth;endlump.text="</"+parser.getName()+">";var oldtop=tagstack[tagstack.length-1];oldtop.close_tag=t.lumps[lumpindex-1];tagstack.length--;justended=true}function processTagStart(isempty,text){++nestingdepth;if(justended){justended=false;var backlump=newLump();backlump.nestingdepth--}if(t.firstdocumentindex===-1){t.firstdocumentindex=lumpindex}var headlump=newLump();var stacktop=tagstack[tagstack.length-1];headlump.uplump=stacktop;var tagname=parser.getName();headlump.tagname=tagname;var attrs=headlump.attributemap=parser.m_attributes;var ID=attrs[fluid.ID_ATTRIBUTE];if(ID===undefined){ID=tagStartCut(headlump)}for(var attrname in attrs){if(ID===undefined){if(/href|src|codebase|action/.test(attrname)){ID="scr=rewrite-url"}else{if(ID===undefined&&/for|headers/.test(attrname)){ID="scr=null"}}}}if(ID){if(ID.charCodeAt(0)===126){ID=ID.substring(1);headlump.elide=true}checkContribute(ID,headlump);headlump.rsfID=ID;var downreg=findTopContainer();if(!downreg.downmap){downreg.downmap={}}while(downreg){if(downreg.downmap){addLump(downreg.downmap,ID,headlump)}downreg=downreg.uplump}addLump(t.globalmap,ID,headlump);var colpos=ID.indexOf(":");if(colpos!==-1){var prefix=ID.substring(0,colpos);if(!stacktop.finallump){stacktop.finallump={}}stacktop.finallump[prefix]=headlump}}headlump.text="<"+tagname+fluid.dumpAttributes(attrs)+(isempty&&!ID?"/>":">");tagstack[tagstack.length]=headlump;if(isempty){if(ID){processTagEnd()}else{--nestingdepth;tagstack.length--}}}function processDefaultTag(){if(defstart!==-1){if(t.firstdocumentindex===-1){t.firstdocumentindex=lumpindex}var text=parser.getContent().substr(defstart,defend-defstart);justended=false;var newlump=newLump();newlump.text=text;defstart=-1}}t=fluid.XMLViewTemplate();init(baseURL,opts.debugMode,cutpoints_in);var idpos=template.indexOf(fluid.ID_ATTRIBUTE);if(scanStart){var brackpos=template.indexOf(">",idpos);parser=fluid.XMLP(template.substring(brackpos+1))}else{parser=fluid.XMLP(template)}parseloop:while(true){var iEvent=parser.next();switch(iEvent){case fluid.XMLP._ELM_B:processDefaultTag();processTagStart(false,"");break;case fluid.XMLP._ELM_E:processDefaultTag();processTagEnd();break;case fluid.XMLP._ELM_EMP:processDefaultTag();processTagStart(true,"");break;case fluid.XMLP._PI:case fluid.XMLP._DTD:defstart=-1;continue;case fluid.XMLP._TEXT:case fluid.XMLP._ENTITY:case fluid.XMLP._CDATA:case fluid.XMLP._COMMENT:if(defstart===-1){defstart=parser.m_cB}defend=parser.m_cE;break;case fluid.XMLP._ERROR:fluid.setLogging(true);var message="Error parsing template: "+parser.m_cAlt+" at line "+parser.getLineNumber();fluid.log(message);fluid.log("Just read: "+parser.m_xml.substring(parser.m_iP-30,parser.m_iP));fluid.log("Still to read: "+parser.m_xml.substring(parser.m_iP,parser.m_iP+30));fluid.fail(message);break parseloop;case fluid.XMLP._NONE:break parseloop}}processDefaultTag();var excess=tagstack.length-1;if(excess){fluid.fail("Error parsing template - unclosed tag(s) of depth "+(excess)+": "+fluid.transform(tagstack.splice(1,excess),function(lump){return debugLump(lump)}).join(", "))}return t};fluid.debugLump=function(lump){var togo=lump.text;togo+=" at ";togo+="lump line "+lump.line+" column "+lump.column+" index "+lump.lumpindex;togo+=lump.parent.href===null?"":" in file "+lump.parent.href;return togo};fluid.ID_ATTRIBUTE="rsf:id";fluid.getPrefix=function(id){var colpos=id.indexOf(":");return colpos===-1?id:id.substring(0,colpos)};fluid.SplitID=function(id){var that={};var colpos=id.indexOf(":");if(colpos===-1){that.prefix=id}else{that.prefix=id.substring(0,colpos);that.suffix=id.substring(colpos+1)}return that};fluid.XMLViewTemplate=function(){return{globalmap:{},collectmap:{},lumps:[],firstdocumentindex:-1}};fluid.XMLEncode=function(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;")};fluid.dumpAttributes=function(attrcopy){var togo="";for(var attrname in attrcopy){var attrvalue=attrcopy[attrname];if(attrvalue!==null&&attrvalue!==undefined){togo+=" "+attrname+'="'+attrvalue+'"'}}return togo};fluid.aggregateMMap=function(target,source){for(var key in source){var targhas=target[key];if(!targhas){target[key]=[]}target[key]=target[key].concat(source[key])}};fluid.parseTemplates=function(resourceSpec,templateList,opts){var togo=[];opts=opts||{};togo.globalmap={};for(var i=0;i<templateList.length;++i){var resource=resourceSpec[templateList[i]];var lastslash=resource.href.lastIndexOf("/");var baseURL=lastslash===-1?"":resource.href.substring(0,lastslash+1);var template=fluid.parseTemplate(resource.resourceText,baseURL,opts.scanStart&&i===0,resource.cutpoints,opts);if(i===0){fluid.aggregateMMap(togo.globalmap,template.globalmap)}template.href=resource.href;template.baseURL=baseURL;template.resourceKey=resource.resourceKey;togo[i]=template;fluid.aggregateMMap(togo.globalmap,template.rootlump.downmap)}return togo};var chars="(?:[\\w\u0128-\uFFFF*_-]|\\\\.)";var quickClass=new RegExp("([#.]?)("+chars+"+)","g");var childSeg=new RegExp("\\s*(>)?\\s*","g");fluid.parseSelector=function(selstring){var togo=[];selstring=$.trim(selstring);quickClass.lastIndex=0;var lastIndex=0;while(true){var atNode=[];while(true){var segMatch=quickClass.exec(selstring);if(!segMatch||segMatch.index!==lastIndex){break}var thisNode={};var text=segMatch[2];if(segMatch[1]===""){thisNode.tag=text}else{if(segMatch[1]==="#"){thisNode.id=text}else{if(segMatch[1]==="."){thisNode.clazz=text}}}atNode[atNode.length]=thisNode;lastIndex=quickClass.lastIndex}childSeg.lastIndex=lastIndex;var fullAtNode={predList:atNode};var childMatch=childSeg.exec(selstring);if(!childMatch||childMatch.index!==lastIndex){var remainder=selstring.substring(lastIndex);fluid.fail("Error in selector string - can not match child selector expression at "+remainder)}if(childMatch[1]===">"){fullAtNode.child=true}togo[togo.length]=fullAtNode;if(childSeg.lastIndex>=selstring.length){break}lastIndex=childSeg.lastIndex;quickClass.lastIndex=childSeg.lastIndex}return togo}})(jQuery,fluid_1_4);
\ No newline at end of file
index 0536055..d40eef6 100644 (file)
@@ -1 +1 @@
-fluid_1_1=fluid_1_1||{};(function($,fluid){function debugPosition(component){return"as child of "+(component.parent.fullID?"component with full ID "+component.parent.fullID:"root")}function computeFullID(component){var togo="";var move=component;if(component.children===undefined){togo=component.ID+(component.localID!==undefined?component.localID:"");move=component.parent}while(move.parent){var parent=move.parent;if(move.fullID!==undefined){togo=move.fullID+togo;return togo}if(move.noID===undefined){var ID=move.ID;if(ID===undefined){fluid.fail("Error in component tree - component found with no ID "+debugPosition(parent)+": please check structure")}var colpos=ID.indexOf(":");var prefix=colpos===-1?ID:ID.substring(0,colpos);togo=prefix+":"+(move.localID===undefined?"":move.localID)+":"+togo}move=parent}return togo}function isBoundPrimitive(value){return fluid.isPrimitive(value)||value instanceof Array&&(value.length===0||typeof (value[0])==="string")}function processChild(value,key){if(isBoundPrimitive(value)){return{componentType:"UIBound",value:value,ID:key}}else{var unzip=unzipComponent(value);if(unzip.ID){return{ID:key,componentType:"UIContainer",children:[unzip]}}else{unzip.ID=key;return unzip}}}function fixChildren(children){if(!(children instanceof Array)){var togo=[];for(var key in children){var value=children[key];if(value instanceof Array){for(var i=0;i<value.length;++i){var processed=processChild(value[i],key);togo[togo.length]=processed}}else{togo[togo.length]=processChild(value,key)}}return togo}else{return children}}function fixupValue(uibound,model){if(uibound.value===undefined&&uibound.valuebinding!==undefined){if(!model){fluid.fail("Cannot perform value fixup for valuebinding "+uibound.valuebinding+" since no model was supplied to rendering")}uibound.value=fluid.model.getBeanValue(model,uibound.valuebinding)}}function upgradeBound(holder,property,model){if(holder[property]!==undefined){if(isBoundPrimitive(holder[property])){holder[property]={value:holder[property]}}}else{holder[property]={value:null}}fixupValue(holder[property],model)}var duckMap={children:"UIContainer",value:"UIBound",valuebinding:"UIBound",messagekey:"UIMessage",markup:"UIVerbatim",selection:"UISelect",target:"UILink",choiceindex:"UISelectChoice",functionname:"UIInitBlock"};function unzipComponent(component,model){if(component){for(var key in duckMap){if(component[key]!==undefined){component.componentType=duckMap[key];break}}if(component.componentType===undefined&&component.ID!==undefined){component.componentType="UIBound"}}if(!component||component.componentType===undefined){var decorators=component.decorators;if(decorators){delete component.decorators}component={componentType:"UIContainer",children:component};component.decorators=decorators}var cType=component.componentType;if(cType==="UIContainer"){component.children=fixChildren(component.children)}else{if(cType==="UISelect"){upgradeBound(component,"selection",model);upgradeBound(component,"optionlist",model);upgradeBound(component,"optionnames",model)}else{if(cType==="UILink"){upgradeBound(component,"target",model);upgradeBound(component,"linktext",model)}}}return component}function assignSubmittingName(component,defaultname){if(component.submittingname===undefined&&component.willinput!==false){component.submittingname=defaultname?defaultname:component.fullID}return component.submittingname}function fixupTree(tree,model){if(tree.componentType===undefined){tree=unzipComponent(tree,model)}if(tree.componentType!=="UIContainer"&&!tree.parent){tree={children:[tree]}}if(tree.children){tree.childmap={};for(var i=0;i<tree.children.length;++i){var child=tree.children[i];if(child.componentType===undefined){child=unzipComponent(child,model);tree.children[i]=child}child.parent=tree;if(child.ID===undefined){fluid.fail("Error in component tree: component found with no ID "+debugPosition(child))}tree.childmap[child.ID]=child;var colpos=child.ID.indexOf(":");if(colpos===-1){}else{var prefix=child.ID.substring(0,colpos);var childlist=tree.childmap[prefix];if(!childlist){childlist=[];tree.childmap[prefix]=childlist}if(child.localID===undefined&&childlist.length!==0){child.localID=childlist.length}childlist[childlist.length]=child}child.fullID=computeFullID(child);var componentType=child.componentType;if(componentType=="UISelect"){child.selection.fullID=child.fullID+"-selection"}else{if(componentType=="UIInitBlock"){var call=child.functionname+"(";for(var j=0;j<child.arguments.length;++j){if(child.arguments[j] instanceof fluid.ComponentReference){child.arguments[j]=child.parent.fullID+child.arguments[j].reference}call+='"'+child.arguments[j]+'"';if(j<child.arguments.length-1){call+=", "}}child.markup=call+")\n";child.componentType="UIVerbatim"}else{if(componentType=="UIBound"){fixupValue(child,model)}}}fixupTree(child,model)}}return tree}var globalmap={};var branchmap={};var rewritemap={};var seenset={};var collected={};var out="";var debugMode=false;var directFossils={};var renderOptions={};var decoratorQueue=[];var renderedbindings={};function getRewriteKey(template,parent,id){return template.resourceKey+parent.fullID+id}function resolveInScope(searchID,defprefix,scope,child){var deflump;var scopelook=scope?scope[searchID]:null;if(scopelook){for(var i=0;i<scopelook.length;++i){var scopelump=scopelook[i];if(!deflump&&scopelump.rsfID==defprefix){deflump=scopelump}if(scopelump.rsfID==searchID){return scopelump}}}return deflump}function resolveCall(sourcescope,child){var searchID=child.jointID?child.jointID:child.ID;var split=fluid.SplitID(searchID);var defprefix=split.prefix+":";var match=resolveInScope(searchID,defprefix,sourcescope.downmap,child);if(match){return match}if(child.children){match=resolveInScope(searchID,defprefix,globalmap,child);if(match){return match}}return null}function noteCollected(template){if(!seenset[template.href]){fluid.aggregateMMap(collected,template.collectmap);seenset[template.href]=true}}function resolveRecurse(basecontainer,parentlump){for(var i=0;i<basecontainer.children.length;++i){var branch=basecontainer.children[i];if(branch.children){var resolved=resolveCall(parentlump,branch);if(resolved){branchmap[branch.fullID]=resolved;var id=resolved.attributemap.id;if(id!==undefined){rewritemap[getRewriteKey(parentlump.parent,basecontainer,id)]=branch.fullID}noteCollected(resolved.parent);resolveRecurse(branch,resolved)}}}if(parentlump.downmap){for(var id in parentlump.downmap){var lumps=parentlump.downmap[id];for(var i=0;i<lumps.length;++i){var lump=lumps[i];var lumpid=lump.attributemap.id;if(lumpid!==undefined&&lump.rsfID!==undefined){var resolved=fetchComponent(basecontainer,lump.rsfID);if(resolved!==null){var resolveID=resolved.fullID;if(resolved.componentType==="UISelect"){resolveID=resolveID+"-selection"}rewritemap[getRewriteKey(parentlump.parent,basecontainer,lumpid)]=resolveID}}}}}}function resolveBranches(globalmapp,basecontainer,parentlump){branchmap={};rewritemap={};seenset={};collected={};globalmap=globalmapp;branchmap[basecontainer.fullID]=parentlump;resolveRecurse(basecontainer,parentlump)}function dumpBranchHead(branch,targetlump){if(targetlump.elide){return }var attrcopy={};$.extend(true,attrcopy,targetlump.attributemap);adjustForID(attrcopy,branch);outDecorators(branch,attrcopy);out+="<"+targetlump.tagname+" ";out+=fluid.dumpAttributes(attrcopy);out+=">"}function dumpTillLump(lumps,start,limit){for(;start<limit;++start){var text=lumps[start].text;if(text){out+=lumps[start].text}}}function dumpScan(lumps,renderindex,basedepth,closeparent,insideleaf){var start=renderindex;while(true){if(renderindex===lumps.length){break}var lump=lumps[renderindex];if(lump.nestingdepth<basedepth){break}if(lump.rsfID!==undefined){if(!insideleaf){break}if(insideleaf&&lump.nestingdepth>basedepth+(closeparent?0:1)){fluid.log("Error in component tree - leaf component found to contain further components - at "+lump.toString())}else{break}}++renderindex}if(!closeparent&&(renderindex==lumps.length||!lumps[renderindex].rsfID)){--renderindex}dumpTillLump(lumps,start,renderindex);return renderindex}var trc={};function openTag(){if(!trc.iselide){out+="<"+trc.uselump.tagname}}function closeTag(){if(!trc.iselide){out+="</"+trc.uselump.tagname+">"}}function renderUnchanged(){dumpTillLump(trc.uselump.parent.lumps,trc.uselump.lumpindex+1,trc.close.lumpindex+(trc.iselide?0:1))}function replaceAttributes(){if(!trc.iselide){out+=fluid.dumpAttributes(trc.attrcopy)}dumpTemplateBody()}function replaceAttributesOpen(){if(trc.iselide){replaceAttributes()}else{out+=fluid.dumpAttributes(trc.attrcopy);out+=">";trc.nextpos=trc.endopen.lumpindex}}function dumpTemplateBody(){if(trc.endopen.lumpindex===trc.close.lumpindex){if(!trc.iselide){out+="/>"}}else{if(!trc.iselide){out+=">"}dumpTillLump(trc.uselump.parent.lumps,trc.endopen.lumpindex,trc.close.lumpindex+(trc.iselide?0:1))}}function rewriteLeaf(value){if(isValue(value)){replaceBody(value)}else{replaceAttributes()}}function rewriteLeafOpen(value){if(trc.iselide){rewriteLeaf(trc.value)}else{if(isValue(value)){replaceBody(value)}else{replaceAttributesOpen()}}}function replaceBody(value){out+=fluid.dumpAttributes(trc.attrcopy);if(!trc.iselide){out+=">"}out+=fluid.XMLEncode(value.toString());closeTag()}function isValue(value){return value!==null&&value!==undefined&&!isPlaceholder(value)}function isPlaceholder(value){return false}function rewriteURL(template,URL){return URL}function dumpHiddenField(todump){out+='<input type="hidden" ';var isvirtual=todump.virtual;var outattrs={};outattrs[isvirtual?"id":"name"]=todump.name;outattrs.value=todump.value;out+=fluid.dumpAttributes(outattrs);out+=" />\n"}function applyAutoBind(torender,finalID){var tagname=trc.uselump.tagname;var applier=renderOptions.applier;function applyFunc(){fluid.applyChange(fluid.byId(finalID),undefined,applier)}if(renderOptions.autoBind&&/input|select|textarea/.test(tagname)&&!renderedbindings[finalID]){var decorators=[{jQuery:["change",applyFunc]}];if($.browser.msie&&tagname==="input"&&/radio|checkbox/.test(trc.attrcopy.type)){decorators.push({jQuery:["click",applyFunc]})}outDecoratorsImpl(torender,decorators,trc.attrcopy,finalID)}}function dumpBoundFields(torender,parent){if(torender){var holder=parent?parent:torender;if(directFossils&&holder.submittingname&&holder.valuebinding){directFossils[holder.submittingname]={name:holder.submittingname,EL:holder.valuebinding,oldvalue:holder.value};applyAutoBind(torender,torender.fullID)}if(torender.fossilizedbinding){dumpHiddenField(torender.fossilizedbinding)}if(torender.fossilizedshaper){dumpHiddenField(torender.fossilizedshaper)}}}function dumpSelectionBindings(uiselect){if(!renderedbindings[uiselect.selection.fullID]){renderedbindings[uiselect.selection.fullID]=true;dumpBoundFields(uiselect.selection);dumpBoundFields(uiselect.optionlist);dumpBoundFields(uiselect.optionnames)}}fluid.NULL_STRING="\u25a9null\u25a9";var LINK_ATTRIBUTES={a:"href",link:"href",img:"src",frame:"src",script:"src",style:"src",input:"src",embed:"src",form:"action",applet:"codebase",object:"codebase"};function isSelectedValue(torender,value){var selection=torender.selection;return selection.value&&typeof (selection.value)!=="string"&&typeof (selection.value.length)==="number"?$.inArray(value,selection.value,value)!==-1:selection.value===value}function getRelativeComponent(component,relativeID){component=component.parent;if(relativeID.indexOf("..::")===0){relativeID=relativeID.substring(4);component=component.parent}return component.childmap[relativeID]}function explodeDecorators(decorators){var togo=[];if(decorators.type){togo[0]=decorators}else{for(var key in decorators){if(key==="$"){key="jQuery"}var value=decorators[key];var decorator={type:key};if(key==="jQuery"){decorator.func=value[0];decorator.args=value.slice(1)}else{if(key==="addClass"||key==="removeClass"){decorator.classes=value}else{if(key==="attrs"){decorator.attributes=value}else{if(key==="identify"){decorator.key=value}}}}togo[togo.length]=decorator}}return togo}function outDecoratorsImpl(torender,decorators,attrcopy,finalID){renderOptions.idMap=renderOptions.idMap||{};for(var i=0;i<decorators.length;++i){var decorator=decorators[i];var type=decorator.type;if(!type){var explodedDecorators=explodeDecorators(decorator);outDecoratorsImpl(torender,explodedDecorators,attrcopy,finalID);continue}if(type==="$"){type=decorator.type="jQuery"}if(type==="jQuery"||type==="event"||type==="fluid"){var id=adjustForID(attrcopy,torender,true,finalID);decorator.id=id;decoratorQueue[decoratorQueue.length]=decorator}else{if(type==="attrs"){$.extend(true,attrcopy,decorator.attributes)}else{if(type==="addClass"||type==="removeClass"){var fakeNode={nodeType:1,className:attrcopy["class"]||""};$(fakeNode)[type](decorator.classes);attrcopy["class"]=fakeNode.className}else{if(type==="identify"){var id=adjustForID(attrcopy,torender,true,finalID);renderOptions.idMap[decorator.key]=id}}}}}}function outDecorators(torender,attrcopy){if(!torender.decorators){return }if(torender.decorators.length===undefined){torender.decorators=explodeDecorators(torender.decorators)}outDecoratorsImpl(torender,torender.decorators,attrcopy)}function renderComponent(torender){var attrcopy=trc.attrcopy;var lumps=trc.uselump.parent.lumps;var lumpindex=trc.uselump.lumpindex;var componentType=torender.componentType;var tagname=trc.uselump.tagname;outDecorators(torender,attrcopy);if(componentType==="UIMessage"){componentType="UIBound";if(!renderOptions.messageLocator){torender.value="[No messageLocator is configured in options - please consult documentation on options.messageSource]"}else{torender.value=renderOptions.messageLocator(torender.messagekey,torender.args)}}function makeFail(torender,end){fluid.fail("Error in component tree - UISelectChoice with id "+torender.fullID+end)}if(componentType==="UIBound"||componentType==="UISelectChoice"){var parent;if(torender.choiceindex!==undefined){if(torender.parentFullID){parent=getAbsoluteComponent(view,torender.parentFullID);if(!parent){makeFail(torender," has parentFullID of "+torender.parentFullID+" which cannot be resolved")}}else{if(torender.parentRelativeID!==undefined){parent=getRelativeComponent(torender,torender.parentRelativeID);if(!parent){makeFail(torender," has parentRelativeID of "+torender.parentRelativeID+" which cannot be resolved")}}else{makeFail(torender," does not have either parentFullID or parentRelativeID set")}}assignSubmittingName(parent.selection);dumpSelectionBindings(parent)}var submittingname=parent?parent.selection.submittingname:torender.submittingname;if(tagname==="input"||tagname==="textarea"){if(!parent){submittingname=assignSubmittingName(torender)}if(submittingname!==undefined){attrcopy.name=submittingname}}dumpBoundFields(torender,parent?parent.selection:null);if(typeof (torender.value)==="boolean"||attrcopy.type==="radio"||attrcopy.type==="checkbox"){var underlyingValue;var directValue=torender.value;if(torender.choiceindex!==undefined){if(!parent.optionlist.value){fluid.fail("Error in component tree - selection control with full ID "+parent.fullID+" has no values")}underlyingValue=parent.optionlist.value[torender.choiceindex];directValue=isSelectedValue(parent,underlyingValue)}if(isValue(directValue)){if(directValue){attrcopy.checked="checked"}else{delete attrcopy.checked}}attrcopy.value=underlyingValue?underlyingValue:"true";rewriteLeaf(null)}else{if(torender.value instanceof Array){renderUnchanged()}else{var value=parent?parent[tagname==="textarea"||tagname==="input"?"optionlist":"optionnames"].value[torender.choiceindex]:torender.value;if(tagname==="textarea"){if(isPlaceholder(value)&&torender.willinput){value=""}rewriteLeaf(value)}else{if(tagname==="input"){if(torender.willinput||isValue(value)){attrcopy.value=value}rewriteLeaf(null)}else{delete attrcopy.name;rewriteLeafOpen(value)}}}}}else{if(componentType==="UISelect"){applyAutoBind(torender,torender.selection.fullID);var ishtmlselect=tagname==="select";var ismultiple=false;if(torender.selection.value instanceof Array){ismultiple=true;if(ishtmlselect){attrcopy.multiple="multiple"}}assignSubmittingName(torender.selection,attrcopy.id);if(ishtmlselect){if(torender.selection.willinput!==false){attrcopy.name=torender.selection.submittingname}}out+=fluid.dumpAttributes(attrcopy);if(ishtmlselect){out+=">";var values=torender.optionlist.value;var names=torender.optionnames===null||torender.optionnames===undefined||!torender.optionnames.value?values:torender.optionnames.value;if(!names||!names.length){fluid.fail("Error in component tree - UISelect component with fullID "+torender.fullID+" does not have optionnames set")}for(var i=0;i<names.length;++i){out+='<option value="';var value=values[i];if(value===null){value=fluid.NULL_STRING}out+=fluid.XMLEncode(value);if(isSelectedValue(torender,value)){out+='" selected="selected'}out+='">';out+=fluid.XMLEncode(names[i]);out+="</option>\n"}closeTag()}else{dumpTemplateBody()}dumpSelectionBindings(torender)}else{if(componentType==="UILink"){var attrname=LINK_ATTRIBUTES[tagname];if(attrname){var target=torender.target.value;if(!isValue(target)){target=attrcopy[attname]}else{target=rewriteURL(trc.uselump.parent,target)}attrcopy[attrname]=target}var value=torender.linktext.value;if(!isValue(value)){replaceAttributesOpen()}else{rewriteLeaf(value)}}else{if(torender.markup!==undefined){var rendered=torender.markup;if(rendered===null){out+=fluid.dumpAttributes(attrcopy);out+=">";renderUnchanged()}else{if(!trc.iselide){out+=fluid.dumpAttributes(attrcopy);out+=">"}out+=rendered;closeTag()}}else{}}}}}function adjustForID(attrcopy,component,late,forceID){if(!late){delete attrcopy["rsf:id"]}if(forceID!==undefined){attrcopy.id=forceID}else{if(attrcopy.id||late){attrcopy.id=component.fullID}}var count=1;var baseid=attrcopy.id;while(renderOptions.document.getElementById(attrcopy.id)){attrcopy.id=baseid+"-"+(count++)}return attrcopy.id}function rewriteIDRelation(context){var attrname;var attrval=trc.attrcopy["for"];if(attrval!==undefined){attrname="for"}else{attrval=trc.attrcopy.headers;if(attrval!==undefined){attrname="headers"}}if(!attrname){return }var tagname=trc.uselump.tagname;if(attrname==="for"&&tagname!=="label"){return }if(attrname==="headers"&&tagname!=="td"&&tagname!=="th"){return }var rewritten=rewritemap[getRewriteKey(trc.uselump.parent,context,attrval)];if(rewritten!==undefined){trc.attrcopy[attrname]=rewritten}}function renderComment(message){out+=("<!-- "+fluid.XMLEncode(message)+"-->")}function renderDebugMessage(message){out+='<span style="background-color:#FF466B;color:white;padding:1px;">';out+=message;out+="</span><br/>"}function reportPath(branch){var path=branch.fullID;return !path?"component tree root":"full path "+path}function renderComponentSystem(context,torendero,lump){var lumpindex=lump.lumpindex;var lumps=lump.parent.lumps;var nextpos=-1;var outerendopen=lumps[lumpindex+1];var outerclose=lump.close_tag;nextpos=outerclose.lumpindex+1;var payloadlist=lump.downmap?lump.downmap["payload-component"]:null;var payload=payloadlist?payloadlist[0]:null;var iselide=lump.rsfID.charCodeAt(0)===126;var endopen=outerendopen;var close=outerclose;var uselump=lump;var attrcopy={};$.extend(true,attrcopy,(payload===null?lump:payload).attributemap);trc.attrcopy=attrcopy;trc.uselump=uselump;trc.endopen=endopen;trc.close=close;trc.nextpos=nextpos;trc.iselide=iselide;rewriteIDRelation(context);if(torendero===null){if(lump.rsfID.indexOf("scr=")===(iselide?1:0)){var scrname=lump.rsfID.substring(4+(iselide?1:0));if(scrname==="ignore"){nextpos=trc.close.lumpindex+1}else{openTag();replaceAttributesOpen();nextpos=trc.endopen.lumpindex}}}else{if(payload){trc.endopen=lumps[payload.lumpindex+1];trc.close=payload.close_tag;trc.uselump=payload;dumpTillLump(lumps,lumpindex,payload.lumpindex);lumpindex=payload.lumpindex}adjustForID(attrcopy,torendero);openTag();renderComponent(torendero);if(payload!==null){if(trc.nextpos===nextpos){dumpTillLump(lumps,trc.close.lumpindex+1,outerclose.lumpindex+1)}}nextpos=trc.nextpos}return nextpos}function renderContainer(child,targetlump){var t2=targetlump.parent;var firstchild=t2.lumps[targetlump.lumpindex+1];if(child.children!==undefined){dumpBranchHead(child,targetlump)}else{renderComponentSystem(child.parent,child,targetlump)}renderRecurse(child,targetlump,firstchild)}function fetchComponent(basecontainer,id,lump){if(id.indexOf("msg=")===0){var key=id.substring(4);return{componentType:"UIMessage",messagekey:key}}while(basecontainer){var togo=basecontainer.childmap[id];if(togo){return togo}basecontainer=basecontainer.parent}return null}function fetchComponents(basecontainer,id){var togo;while(basecontainer){togo=basecontainer.childmap[id];if(togo){break}basecontainer=basecontainer.parent}return togo}function findChild(sourcescope,child){var split=fluid.SplitID(child.ID);var headlumps=sourcescope.downmap[child.ID];if(headlumps===null){headlumps=sourcescope.downmap[split.prefix+":"]}return headlumps===null?null:headlumps[0]}function renderRecurse(basecontainer,parentlump,baselump){var renderindex=baselump.lumpindex;var basedepth=parentlump.nestingdepth;var t1=parentlump.parent;if(debugMode){var rendered={}}while(true){renderindex=dumpScan(t1.lumps,renderindex,basedepth,!parentlump.elide,false);if(renderindex===t1.lumps.length){break}var lump=t1.lumps[renderindex];var id=lump.rsfID;if(lump.nestingdepth<basedepth||id===undefined){break}if(id.charCodeAt(0)===126){id=id.substring(1)}if(id.indexOf(":")!==-1){var prefix=fluid.getPrefix(id);var children=fetchComponents(basecontainer,prefix);var finallump=lump.uplump.finallump[prefix];var closefinal=finallump.close_tag;if(children){for(var i=0;i<children.length;++i){var child=children[i];if(child.children){var targetlump=branchmap[child.fullID];if(targetlump){if(debugMode){renderComment("Branching for "+child.fullID+" from "+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump))}renderContainer(child,targetlump);if(debugMode){renderComment("Branch returned for "+child.fullID+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump))}}else{if(debugMode){renderDebugMessage("No matching template branch found for branch container with full ID "+child.fullID+" rendering from parent template branch "+fluid.debugLump(baselump))}}}else{var targetlump=findChild(parentlump,child);if(!targetlump){if(debugMode){renderDebugMessage("Repetitive leaf with full ID "+child.fullID+" could not be rendered from parent template branch "+fluid.debugLump(baselump))}continue}var renderend=renderComponentSystem(basecontainer,child,targetlump);var wasopentag=renderend<t1.lumps.lengtn&&t1.lumps[renderend].nestingdepth>=targetlump.nestingdepth;var newbase=child.children?child:basecontainer;if(wasopentag){renderRecurse(newbase,targetlump,t1.lumps[renderend]);renderend=targetlump.close_tag.lumpindex+1}if(i!==children.length-1){if(renderend<closefinal.lumpindex){dumpScan(t1.lumps,renderend,targetlump.nestingdepth-1,false,false)}}else{dumpScan(t1.lumps,renderend,targetlump.nestingdepth,true,false)}}}}else{if(debugMode){renderDebugMessage("No branch container with prefix "+prefix+": found in container "+reportPath(basecontainer)+" rendering at template position "+fluid.debugLump(baselump)+", skipping")}}renderindex=closefinal.lumpindex+1;if(debugMode){renderComment("Stack returned from branch for ID "+id+" to "+fluid.debugLump(baselump)+": skipping from "+fluid.debugLump(lump)+" to "+fluid.debugLump(closefinal))}}else{var component;if(id){if(debugMode){rendered[id]=true}component=fetchComponent(basecontainer,id,lump)}if(component&&component.children!==undefined){renderContainer(component);renderindex=lump.close_tag.lumpindex+1}else{renderindex=renderComponentSystem(basecontainer,component,lump)}}if(renderindex===t1.lumps.length){break}}if(debugMode){var children=basecontainer.children;for(var key=0;key<children.length;++key){var child=children[key];if(!(child.ID.indexOf(":")!==-1)&&!rendered[child.ID]){renderDebugMessage("Leaf child component "+child.componentType+" with full ID "+child.fullID+" could not be found within template "+fluid.debugLump(baselump))}}}}function renderCollect(collump){dumpTillLump(collump.parent.lumps,collump.lumpindex,collump.close_tag.lumpindex+1)}function renderCollects(){for(var key in collected){var collist=collected[key];for(var i=0;i<collist.length;++i){renderCollect(collist[i])}}}function processDecoratorQueue(){for(var i=0;i<decoratorQueue.length;++i){var decorator=decoratorQueue[i];var node=fluid.byId(decorator.id);if(!node){fluid.fail("Error during rendering - component with id "+decorator.id+" which has a queued decorator was not found in the output markup")}if(decorator.type==="jQuery"){var jnode=$(node);jnode[decorator.func].apply(jnode,$.makeArray(decorator.args))}else{if(decorator.type==="fluid"){var args=decorator.args;if(!args){if(!decorator.container){decorator.container=node}args=[decorator.container,decorator.options]}var that=fluid.invokeGlobalFunction(decorator.func,args,fluid);decorator.that=that}else{if(decorator.type==="event"){node[decorator.event]=decorator.handler}}}}}fluid.ComponentReference=function(reference){this.reference=reference};fluid.explode=function(hash,basepath){var togo=[];for(var key in hash){var binding=basepath===undefined?key:basepath+"."+key;togo[togo.length]={ID:key,value:hash[key],valuebinding:binding}}return togo};fluid.explodeSelectionToInputs=function(optionlist,opts){return fluid.transform(optionlist,function(option,index){return{ID:opts.rowID,children:[{ID:opts.inputID,parentRelativeID:"..::"+opts.selectID,choiceindex:index},{ID:opts.labelID,parentRelativeID:"..::"+opts.selectID,choiceindex:index}]}})};fluid.resolveMessageSource=function(messageSource){if(messageSource.type==="data"){if(messageSource.url===undefined){return fluid.messageLocator(messageSource.messages)}else{}}};fluid.makeBranches=function(){var firstBranch;var thisBranch;for(var i=0;i<arguments.length;++i){var thisarg=arguments[i];var nextBranch;if(typeof (thisarg)==="string"){nextBranch={ID:thisarg}}else{if(thisarg instanceof Array){nextBranch={ID:thisarg[0],jointID:thisarg[1]}}else{$.extend(true,thisBranch,thisarg);nextBranch=thisBranch}}if(thisBranch&&nextBranch!==thisBranch){if(!thisBranch.children){thisBranch.children=[]}thisBranch.children[thisBranch.children.length]=nextBranch}thisBranch=nextBranch;if(!firstBranch){firstBranch=nextBranch}}return firstBranch};fluid.renderTemplates=function(templates,tree,options,fossilsIn){options=options||{};tree=tree||{};debugMode=options.debugMode;if(!options.messageLocator&&options.messageSource){options.messageLocator=fluid.resolveMessageSource(options.messageSource)}options.document=options.document||document;directFossils=fossilsIn;decoratorQueue=[];tree=fixupTree(tree,options.model);var template=templates[0];resolveBranches(templates.globalmap,tree,template.rootlump);out="";renderedbindings={};renderOptions=options;renderCollects();renderRecurse(tree,template.rootlump,template.lumps[template.firstdocumentindex]);return out};fluid.reRender=function(templates,node,tree,options){options=options||{};node=fluid.unwrap(node);var lastFocusedElement=fluid.getLastFocusedElement?fluid.getLastFocusedElement():null;var lastId;if(lastFocusedElement&&fluid.dom.isContainer(node,lastFocusedElement)){lastId=lastFocusedElement.id}if($.browser.msie){$(node).empty()}else{node.innerHTML=""}var fossils={};var rendered=fluid.renderTemplates(templates,tree,options,fossils);if(options.renderRaw){rendered=fluid.XMLEncode(rendered);rendered=rendered.replace(/\n/g,"<br/>")}if(options.model){fluid.bindFossils(node,options.model,fossils)}if($.browser.msie){$(node).html(rendered)}else{node.innerHTML=rendered}processDecoratorQueue();if(lastId){var element=fluid.byId(lastId);if(element){$(element).focus()}}return templates};function findNodeValue(rootNode){var node=fluid.dom.iterateDom(rootNode,function(node){return node.nodeType===8||node.nodeType===4?"stop":null},true);var value=node.nodeValue;if(value.indexOf("[CDATA[")===0){return value.substring(6,value.length-2)}else{return value}}fluid.extractTemplate=function(node,armouring){if(!armouring){return node.innerHTML}else{return findNodeValue(node)}};fluid.selfRender=function(node,tree,options){options=options||{};node=fluid.unwrap(node);var resourceSpec={base:{resourceText:fluid.extractTemplate(node,options.armouring),href:".",resourceKey:".",cutpoints:options.cutpoints}};var templates=fluid.parseTemplates(resourceSpec,["base"],options);return fluid.reRender(templates,node,tree,options)}})(jQuery,fluid_1_1);
\ No newline at end of file
+fluid_1_4=fluid_1_4||{};(function($,fluid){function debugPosition(component){return"as child of "+(component.parent.fullID?"component with full ID "+component.parent.fullID:"root")}function computeFullID(component){var togo="";var move=component;if(component.children===undefined){togo=component.ID+(component.localID!==undefined?component.localID:"");move=component.parent}while(move.parent){var parent=move.parent;if(move.fullID!==undefined){togo=move.fullID+togo;return togo}if(move.noID===undefined){var ID=move.ID;if(ID===undefined){fluid.fail("Error in component tree - component found with no ID "+debugPosition(parent)+": please check structure")}var colpos=ID.indexOf(":");var prefix=colpos===-1?ID:ID.substring(0,colpos);togo=prefix+":"+(move.localID===undefined?"":move.localID)+":"+togo}move=parent}return togo}var renderer={};renderer.isBoundPrimitive=function(value){return fluid.isPrimitive(value)||value instanceof Array&&(value.length===0||typeof (value[0])==="string")};var unzipComponent;function processChild(value,key){if(renderer.isBoundPrimitive(value)){return{componentType:"UIBound",value:value,ID:key}}else{var unzip=unzipComponent(value);if(unzip.ID){return{ID:key,componentType:"UIContainer",children:[unzip]}}else{unzip.ID=key;return unzip}}}function fixChildren(children){if(!(children instanceof Array)){var togo=[];for(var key in children){var value=children[key];if(value instanceof Array){for(var i=0;i<value.length;++i){var processed=processChild(value[i],key);togo[togo.length]=processed}}else{togo[togo.length]=processChild(value,key)}}return togo}else{return children}}function fixupValue(uibound,model,resolverGetConfig){if(uibound.value===undefined&&uibound.valuebinding!==undefined){if(!model){fluid.fail("Cannot perform value fixup for valuebinding "+uibound.valuebinding+" since no model was supplied to rendering")}uibound.value=fluid.get(model,uibound.valuebinding,resolverGetConfig)}}function upgradeBound(holder,property,model,resolverGetConfig){if(holder[property]!==undefined){if(renderer.isBoundPrimitive(holder[property])){holder[property]={value:holder[property]}}else{if(holder[property].messagekey){holder[property].componentType="UIMessage"}}}else{holder[property]={value:null}}fixupValue(holder[property],model,resolverGetConfig)}renderer.duckMap={children:"UIContainer",value:"UIBound",valuebinding:"UIBound",messagekey:"UIMessage",markup:"UIVerbatim",selection:"UISelect",target:"UILink",choiceindex:"UISelectChoice",functionname:"UIInitBlock"};var boundMap={UISelect:["selection","optionlist","optionnames"],UILink:["target","linktext"],UIVerbatim:["markup"],UIMessage:["messagekey"]};renderer.boundMap=fluid.transform(boundMap,fluid.arrayToHash);renderer.inferComponentType=function(component){for(var key in renderer.duckMap){if(component[key]!==undefined){return renderer.duckMap[key]}}};renderer.applyComponentType=function(component){component.componentType=renderer.inferComponentType(component);if(component.componentType===undefined&&component.ID!==undefined){component.componentType="UIBound"}};unzipComponent=function(component,model,resolverGetConfig){if(component){renderer.applyComponentType(component)}if(!component||component.componentType===undefined){var decorators=component.decorators;if(decorators){delete component.decorators}component={componentType:"UIContainer",children:component};component.decorators=decorators}var cType=component.componentType;if(cType==="UIContainer"){component.children=fixChildren(component.children)}else{var map=renderer.boundMap[cType];if(map){fluid.each(map,function(value,key){upgradeBound(component,key,model,resolverGetConfig)})}}return component};function fixupTree(tree,model,resolverGetConfig){if(tree.componentType===undefined){tree=unzipComponent(tree,model,resolverGetConfig)}if(tree.componentType!=="UIContainer"&&!tree.parent){tree={children:[tree]}}if(tree.children){tree.childmap={};for(var i=0;i<tree.children.length;++i){var child=tree.children[i];if(child.componentType===undefined){child=unzipComponent(child,model,resolverGetConfig);tree.children[i]=child}child.parent=tree;if(child.ID===undefined){fluid.fail("Error in component tree: component found with no ID "+debugPosition(child))}tree.childmap[child.ID]=child;var colpos=child.ID.indexOf(":");if(colpos===-1){}else{var prefix=child.ID.substring(0,colpos);var childlist=tree.childmap[prefix];if(!childlist){childlist=[];tree.childmap[prefix]=childlist}if(child.localID===undefined&&childlist.length!==0){child.localID=childlist.length}childlist[childlist.length]=child}child.fullID=computeFullID(child);var componentType=child.componentType;if(componentType==="UISelect"){child.selection.fullID=child.fullID+"-selection"}else{if(componentType==="UIInitBlock"){var call=child.functionname+"(";for(var j=0;j<child.arguments.length;++j){if(child.arguments[j] instanceof fluid.ComponentReference){child.arguments[j]=child.parent.fullID+child.arguments[j].reference}call+=JSON.stringify(child.arguments[j]);if(j<child.arguments.length-1){call+=", "}}child.markup={value:call+")\n"};child.componentType="UIVerbatim"}else{if(componentType==="UIBound"){fixupValue(child,model,resolverGetConfig)}}}fixupTree(child,model,resolverGetConfig)}}return tree}fluid.NULL_STRING="\u25a9null\u25a9";var LINK_ATTRIBUTES={a:"href",link:"href",img:"src",frame:"src",script:"src",style:"src",input:"src",embed:"src",form:"action",applet:"codebase",object:"codebase"};renderer.decoratorComponentPrefix="**-renderer-";renderer.IDtoComponentName=function(ID,num){return renderer.decoratorComponentPrefix+ID.replace(/\./g,"")+"-"+num};renderer.invokeFluidDecorator=function(func,args,ID,num,options){var that;if(options.instantiator&&options.parentComponent){var parent=options.parentComponent;var name=renderer.IDtoComponentName(ID,num);fluid.set(parent,fluid.path("options","components",name),{type:func});that=fluid.initDependent(options.parentComponent,name,options.instantiator,args)}else{that=fluid.invokeGlobalFunction(func,args)}return that};fluid.renderer=function(templates,tree,options,fossilsIn){options=options||{};tree=tree||{};var debugMode=options.debugMode;if(!options.messageLocator&&options.messageSource){options.messageLocator=fluid.resolveMessageSource(options.messageSource)}options.document=options.document||document;var directFossils=fossilsIn||{};var globalmap={};var branchmap={};var rewritemap={};var seenset={};var collected={};var out="";var renderOptions=options;var decoratorQueue=[];var renderedbindings={};var usedIDs={};var that={};function getRewriteKey(template,parent,id){return template.resourceKey+parent.fullID+id}function resolveInScope(searchID,defprefix,scope,child){var deflump;var scopelook=scope?scope[searchID]:null;if(scopelook){for(var i=0;i<scopelook.length;++i){var scopelump=scopelook[i];if(!deflump&&scopelump.rsfID===defprefix){deflump=scopelump}if(scopelump.rsfID===searchID){return scopelump}}}return deflump}function resolveCall(sourcescope,child){var searchID=child.jointID?child.jointID:child.ID;var split=fluid.SplitID(searchID);var defprefix=split.prefix+":";var match=resolveInScope(searchID,defprefix,sourcescope.downmap,child);if(match){return match}if(child.children){match=resolveInScope(searchID,defprefix,globalmap,child);if(match){return match}}return null}function noteCollected(template){if(!seenset[template.href]){fluid.aggregateMMap(collected,template.collectmap);seenset[template.href]=true}}var fetchComponent;function resolveRecurse(basecontainer,parentlump){for(var i=0;i<basecontainer.children.length;++i){var branch=basecontainer.children[i];if(branch.children){var resolved=resolveCall(parentlump,branch);if(resolved){branchmap[branch.fullID]=resolved;var id=resolved.attributemap.id;if(id!==undefined){rewritemap[getRewriteKey(parentlump.parent,basecontainer,id)]=branch.fullID}noteCollected(resolved.parent);resolveRecurse(branch,resolved)}}}if(parentlump.downmap){for(var id in parentlump.downmap){var lumps=parentlump.downmap[id];for(var i=0;i<lumps.length;++i){var lump=lumps[i];var lumpid=lump.attributemap.id;if(lumpid!==undefined&&lump.rsfID!==undefined){var resolved=fetchComponent(basecontainer,lump.rsfID);if(resolved!==null){var resolveID=resolved.fullID;if(resolved.componentType==="UISelect"){resolveID=resolveID+"-selection"}rewritemap[getRewriteKey(parentlump.parent,basecontainer,lumpid)]=resolveID}}}}}}function resolveBranches(globalmapp,basecontainer,parentlump){branchmap={};rewritemap={};seenset={};collected={};globalmap=globalmapp;branchmap[basecontainer.fullID]=parentlump;resolveRecurse(basecontainer,parentlump)}function dumpTillLump(lumps,start,limit){for(;start<limit;++start){var text=lumps[start].text;if(text){out+=lumps[start].text}}}function dumpScan(lumps,renderindex,basedepth,closeparent,insideleaf){var start=renderindex;while(true){if(renderindex===lumps.length){break}var lump=lumps[renderindex];if(lump.nestingdepth<basedepth){break}if(lump.rsfID!==undefined){if(!insideleaf){break}if(insideleaf&&lump.nestingdepth>basedepth+(closeparent?0:1)){fluid.log("Error in component tree - leaf component found to contain further components - at "+lump.toString())}else{break}}++renderindex}if(!closeparent&&(renderindex===lumps.length||!lumps[renderindex].rsfID)){--renderindex}dumpTillLump(lumps,start,renderindex);return renderindex}function isPlaceholder(value){return false}function isValue(value){return value!==null&&value!==undefined&&!isPlaceholder(value)}var trc={};function openTag(){if(!trc.iselide){out+="<"+trc.uselump.tagname}}function closeTag(){if(!trc.iselide){out+="</"+trc.uselump.tagname+">"}}function renderUnchanged(){dumpTillLump(trc.uselump.parent.lumps,trc.uselump.lumpindex+1,trc.close.lumpindex+(trc.iselide?0:1))}function isSelfClose(){return trc.endopen.lumpindex===trc.close.lumpindex&&fluid.XMLP.closedTags[trc.uselump.tagname]}function dumpTemplateBody(){if(isSelfClose()){if(!trc.iselide){out+="/>"}}else{if(!trc.iselide){out+=">"}dumpTillLump(trc.uselump.parent.lumps,trc.endopen.lumpindex,trc.close.lumpindex+(trc.iselide?0:1))}}function replaceAttributes(){if(!trc.iselide){out+=fluid.dumpAttributes(trc.attrcopy)}dumpTemplateBody()}function replaceAttributesOpen(){if(trc.iselide){replaceAttributes()}else{out+=fluid.dumpAttributes(trc.attrcopy);var selfClose=isSelfClose();out+=selfClose?"/>":">";trc.nextpos=selfClose?trc.close.lumpindex+1:trc.endopen.lumpindex}}function replaceBody(value){out+=fluid.dumpAttributes(trc.attrcopy);if(!trc.iselide){out+=">"}out+=fluid.XMLEncode(value.toString());closeTag()}function rewriteLeaf(value){if(isValue(value)){replaceBody(value)}else{replaceAttributes()}}function rewriteLeafOpen(value){if(trc.iselide){rewriteLeaf(trc.value)}else{if(isValue(value)){replaceBody(value)}else{replaceAttributesOpen()}}}function rewriteUrl(template,url){if(renderOptions.urlRewriter){var rewritten=renderOptions.urlRewriter(url);if(rewritten){return rewritten}}if(!renderOptions.rebaseURLs){return url}var protpos=url.indexOf(":/");if(url.charAt(0)==="/"||protpos!==-1&&protpos<7){return url}else{return renderOptions.baseURL+url}}function dumpHiddenField(todump){out+='<input type="hidden" ';var isvirtual=todump.virtual;var outattrs={};outattrs[isvirtual?"id":"name"]=todump.name;outattrs.value=todump.value;out+=fluid.dumpAttributes(outattrs);out+=" />\n"}var outDecoratorsImpl;function applyAutoBind(torender,finalID){if(!finalID){return }var tagname=trc.uselump.tagname;var applier=renderOptions.applier;function applyFunc(){fluid.applyChange(fluid.byId(finalID),undefined,applier)}if(renderOptions.autoBind&&/input|select|textarea/.test(tagname)&&!renderedbindings[finalID]){var decorators=[{jQuery:["change",applyFunc]}];if($.browser.msie&&tagname==="input"&&/radio|checkbox/.test(trc.attrcopy.type)){decorators.push({jQuery:["click",applyFunc]})}if($.browser.safari&&tagname==="input"&&trc.attrcopy.type==="radio"){decorators.push({jQuery:["keyup",applyFunc]})}outDecoratorsImpl(torender,decorators,trc.attrcopy,finalID)}}function dumpBoundFields(torender,parent){if(torender){var holder=parent?parent:torender;if(directFossils&&holder.valuebinding){var fossilKey=holder.submittingname||torender.finalID;directFossils[fossilKey]={name:fossilKey,EL:holder.valuebinding,oldvalue:holder.value};applyAutoBind(torender,torender.finalID)}if(torender.fossilizedbinding){dumpHiddenField(torender.fossilizedbinding)}if(torender.fossilizedshaper){dumpHiddenField(torender.fossilizedshaper)}}}function dumpSelectionBindings(uiselect){if(!renderedbindings[uiselect.selection.fullID]){renderedbindings[uiselect.selection.fullID]=true;dumpBoundFields(uiselect.selection);dumpBoundFields(uiselect.optionlist);dumpBoundFields(uiselect.optionnames)}}function isSelectedValue(torender,value){var selection=torender.selection;return selection.value&&typeof (selection.value)!=="string"&&typeof (selection.value.length)==="number"?$.inArray(value,selection.value,value)!==-1:selection.value===value}function getRelativeComponent(component,relativeID){component=component.parent;while(relativeID.indexOf("..::")===0){relativeID=relativeID.substring(4);component=component.parent}return component.childmap[relativeID]}function adjustForID(attrcopy,component,late,forceID){if(!late){delete attrcopy["rsf:id"]}if(component.finalID!==undefined){attrcopy.id=component.finalID}else{if(forceID!==undefined){attrcopy.id=forceID}else{if(attrcopy.id||late){attrcopy.id=component.fullID}}}var count=1;var baseid=attrcopy.id;while(renderOptions.document.getElementById(attrcopy.id)||usedIDs[attrcopy.id]){attrcopy.id=baseid+"-"+(count++)}component.finalID=attrcopy.id;return attrcopy.id}function assignSubmittingName(attrcopy,component,parent){var submitting=parent||component;adjustForID(attrcopy,component,true,component.fullID);if(submitting.submittingname===undefined&&submitting.willinput!==false){submitting.submittingname=submitting.finalID||submitting.fullID}return submitting.submittingname}function explodeDecorators(decorators){var togo=[];if(decorators.type){togo[0]=decorators}else{for(var key in decorators){if(key==="$"){key="jQuery"}var value=decorators[key];var decorator={type:key};if(key==="jQuery"){decorator.func=value[0];decorator.args=value.slice(1)}else{if(key==="addClass"||key==="removeClass"){decorator.classes=value}else{if(key==="attrs"){decorator.attributes=value}else{if(key==="identify"){decorator.key=value}}}}togo[togo.length]=decorator}}return togo}outDecoratorsImpl=function(torender,decorators,attrcopy,finalID){renderOptions.idMap=renderOptions.idMap||{};for(var i=0;i<decorators.length;++i){var decorator=decorators[i];var type=decorator.type;if(!type){var explodedDecorators=explodeDecorators(decorator);outDecoratorsImpl(torender,explodedDecorators,attrcopy,finalID);continue}if(type==="$"){type=decorator.type="jQuery"}if(type==="jQuery"||type==="event"||type==="fluid"){var id=adjustForID(attrcopy,torender,true,finalID);if(decorator.ids===undefined){decorator.ids=[];decoratorQueue[decoratorQueue.length]=decorator}decorator.ids.push(id)}else{if(type==="attrs"){fluid.each(decorator.attributes,function(value,key){if(value===null||value===undefined){delete attrcopy[key]}else{attrcopy[key]=fluid.XMLEncode(value)}})}else{if(type==="addClass"||type==="removeClass"){var fakeNode={nodeType:1,className:attrcopy["class"]||""};$(fakeNode)[type](decorator.classes);attrcopy["class"]=fakeNode.className}else{if(type==="identify"){var id=adjustForID(attrcopy,torender,true,finalID);renderOptions.idMap[decorator.key]=id}else{if(type!=="null"){fluid.log("Unrecognised decorator of type "+type+" found at component of ID "+finalID)}}}}}}};function outDecorators(torender,attrcopy){if(!torender.decorators){return }if(torender.decorators.length===undefined){torender.decorators=explodeDecorators(torender.decorators)}outDecoratorsImpl(torender,torender.decorators,attrcopy)}function dumpBranchHead(branch,targetlump){if(targetlump.elide){return }var attrcopy={};$.extend(true,attrcopy,targetlump.attributemap);adjustForID(attrcopy,branch);outDecorators(branch,attrcopy);out+="<"+targetlump.tagname+" ";out+=fluid.dumpAttributes(attrcopy);out+=">"}function resolveArgs(args){if(!args){return args}return fluid.transform(args,function(arg,index){upgradeBound(args,index,renderOptions.model,renderOptions.resolverGetConfig);return args[index].value})}function degradeMessage(torender){if(torender.componentType==="UIMessage"){torender.componentType="UIBound";if(!renderOptions.messageLocator){torender.value="[No messageLocator is configured in options - please consult documentation on options.messageSource]"}else{upgradeBound(torender,"messagekey",renderOptions.model,renderOptions.resolverGetConfig);var resArgs=resolveArgs(torender.args);torender.value=renderOptions.messageLocator(torender.messagekey.value,resArgs)}}}function renderComponent(torender){var attrcopy=trc.attrcopy;degradeMessage(torender);var componentType=torender.componentType;var tagname=trc.uselump.tagname;outDecorators(torender,attrcopy);function makeFail(torender,end){fluid.fail("Error in component tree - UISelectChoice with id "+torender.fullID+end)}if(componentType==="UIBound"||componentType==="UISelectChoice"){var parent;if(torender.choiceindex!==undefined){if(torender.parentRelativeID!==undefined){parent=getRelativeComponent(torender,torender.parentRelativeID);if(!parent){makeFail(torender," has parentRelativeID of "+torender.parentRelativeID+" which cannot be resolved")}}else{makeFail(torender," does not have parentRelativeID set")}assignSubmittingName(attrcopy,torender,parent.selection);dumpSelectionBindings(parent)}var submittingname=parent?parent.selection.submittingname:torender.submittingname;if(!parent&&torender.valuebinding){submittingname=assignSubmittingName(attrcopy,torender)}if(tagname==="input"||tagname==="textarea"){if(submittingname!==undefined){attrcopy.name=submittingname}}dumpBoundFields(torender,parent?parent.selection:null);if(typeof (torender.value)==="boolean"||attrcopy.type==="radio"||attrcopy.type==="checkbox"){var underlyingValue;var directValue=torender.value;if(torender.choiceindex!==undefined){if(!parent.optionlist.value){fluid.fail("Error in component tree - selection control with full ID "+parent.fullID+" has no values")}underlyingValue=parent.optionlist.value[torender.choiceindex];directValue=isSelectedValue(parent,underlyingValue)}if(isValue(directValue)){if(directValue){attrcopy.checked="checked"}else{delete attrcopy.checked}}attrcopy.value=fluid.XMLEncode(underlyingValue?underlyingValue:"true");rewriteLeaf(null)}else{if(torender.value instanceof Array){renderUnchanged()}else{var value=parent?parent[tagname==="textarea"||tagname==="input"?"optionlist":"optionnames"].value[torender.choiceindex]:torender.value;if(tagname==="textarea"){if(isPlaceholder(value)&&torender.willinput){value=""}rewriteLeaf(value)}else{if(tagname==="input"){if(torender.willinput||isValue(value)){attrcopy.value=fluid.XMLEncode(String(value))}rewriteLeaf(null)}else{delete attrcopy.name;rewriteLeafOpen(value)}}}}}else{if(componentType==="UISelect"){var ishtmlselect=tagname==="select";var ismultiple=false;if(torender.selection.value instanceof Array){ismultiple=true;if(ishtmlselect){attrcopy.multiple="multiple"}}var oldid=attrcopy.id;assignSubmittingName(attrcopy,torender.selection);if(oldid!==undefined){attrcopy.id=oldid}if(ishtmlselect){if(torender.selection.willinput!==false){attrcopy.name=torender.selection.submittingname}applyAutoBind(torender,attrcopy.id)}out+=fluid.dumpAttributes(attrcopy);if(ishtmlselect){out+=">";var values=torender.optionlist.value;var names=torender.optionnames===null||torender.optionnames===undefined||!torender.optionnames.value?values:torender.optionnames.value;if(!names||!names.length){fluid.fail("Error in component tree - UISelect component with fullID "+torender.fullID+" does not have optionnames set")}for(var i=0;i<names.length;++i){out+='<option value="';var value=values[i];if(value===null){value=fluid.NULL_STRING}out+=fluid.XMLEncode(value);if(isSelectedValue(torender,value)){out+='" selected="selected'}out+='">';out+=fluid.XMLEncode(names[i]);out+="</option>\n"}closeTag()}else{dumpTemplateBody()}dumpSelectionBindings(torender)}else{if(componentType==="UILink"){var attrname=LINK_ATTRIBUTES[tagname];if(attrname){degradeMessage(torender.target);var target=torender.target.value;if(!isValue(target)){target=attrcopy[attrname]}target=rewriteUrl(trc.uselump.parent,target);attrcopy[attrname]=fluid.XMLEncode(target)}var value;if(torender.linktext){degradeMessage(torender.linktext);value=torender.linktext.value}if(!isValue(value)){replaceAttributesOpen()}else{rewriteLeaf(value)}}else{if(torender.markup!==undefined){degradeMessage(torender.markup);var rendered=torender.markup.value;if(rendered===null){out+=fluid.dumpAttributes(attrcopy);out+=">";renderUnchanged()}else{if(!trc.iselide){out+=fluid.dumpAttributes(attrcopy);out+=">"}out+=rendered;closeTag()}}}}}if(attrcopy.id!==undefined){usedIDs[attrcopy.id]=true}}function rewriteIDRelation(context){var attrname;var attrval=trc.attrcopy["for"];if(attrval!==undefined){attrname="for"}else{attrval=trc.attrcopy.headers;if(attrval!==undefined){attrname="headers"}}if(!attrname){return }var tagname=trc.uselump.tagname;if(attrname==="for"&&tagname!=="label"){return }if(attrname==="headers"&&tagname!=="td"&&tagname!=="th"){return }var rewritten=rewritemap[getRewriteKey(trc.uselump.parent,context,attrval)];if(rewritten!==undefined){trc.attrcopy[attrname]=rewritten}}function renderComment(message){out+=("<!-- "+fluid.XMLEncode(message)+"-->")}function renderDebugMessage(message){out+='<span style="background-color:#FF466B;color:white;padding:1px;">';out+=message;out+="</span><br/>"}function reportPath(branch){var path=branch.fullID;return !path?"component tree root":"full path "+path}function renderComponentSystem(context,torendero,lump){var lumpindex=lump.lumpindex;var lumps=lump.parent.lumps;var nextpos=-1;var outerendopen=lumps[lumpindex+1];var outerclose=lump.close_tag;nextpos=outerclose.lumpindex+1;var payloadlist=lump.downmap?lump.downmap["payload-component"]:null;var payload=payloadlist?payloadlist[0]:null;var iselide=lump.rsfID.charCodeAt(0)===126;var endopen=outerendopen;var close=outerclose;var uselump=lump;var attrcopy={};$.extend(true,attrcopy,(payload===null?lump:payload).attributemap);trc.attrcopy=attrcopy;trc.uselump=uselump;trc.endopen=endopen;trc.close=close;trc.nextpos=nextpos;trc.iselide=iselide;rewriteIDRelation(context);if(torendero===null){if(lump.rsfID.indexOf("scr=")===(iselide?1:0)){var scrname=lump.rsfID.substring(4+(iselide?1:0));if(scrname==="ignore"){nextpos=trc.close.lumpindex+1}else{if(scrname==="rewrite-url"){torendero={componentType:"UILink",target:{}}}else{openTag();replaceAttributesOpen();nextpos=trc.endopen.lumpindex}}}}if(torendero!==null){if(payload){trc.endopen=lumps[payload.lumpindex+1];trc.close=payload.close_tag;trc.uselump=payload;dumpTillLump(lumps,lumpindex,payload.lumpindex);lumpindex=payload.lumpindex}adjustForID(attrcopy,torendero);openTag();renderComponent(torendero);if(payload!==null){if(trc.nextpos===nextpos){dumpTillLump(lumps,trc.close.lumpindex+1,outerclose.lumpindex+1)}}nextpos=trc.nextpos}return nextpos}var renderRecurse;function renderContainer(child,targetlump){var t2=targetlump.parent;var firstchild=t2.lumps[targetlump.lumpindex+1];if(child.children!==undefined){dumpBranchHead(child,targetlump)}else{renderComponentSystem(child.parent,child,targetlump)}renderRecurse(child,targetlump,firstchild)}fetchComponent=function(basecontainer,id,lump){if(id.indexOf("msg=")===0){var key=id.substring(4);return{componentType:"UIMessage",messagekey:key}}while(basecontainer){var togo=basecontainer.childmap[id];if(togo){return togo}basecontainer=basecontainer.parent}return null};function fetchComponents(basecontainer,id){var togo;while(basecontainer){togo=basecontainer.childmap[id];if(togo){break}basecontainer=basecontainer.parent}return togo}function findChild(sourcescope,child){var split=fluid.SplitID(child.ID);var headlumps=sourcescope.downmap[child.ID];if(!headlumps){headlumps=sourcescope.downmap[split.prefix+":"]}return headlumps?headlumps[0]:null}renderRecurse=function(basecontainer,parentlump,baselump){var renderindex=baselump.lumpindex;var basedepth=parentlump.nestingdepth;var t1=parentlump.parent;var rendered;if(debugMode){rendered={}}while(true){renderindex=dumpScan(t1.lumps,renderindex,basedepth,!parentlump.elide,false);if(renderindex===t1.lumps.length){break}var lump=t1.lumps[renderindex];var id=lump.rsfID;if(lump.nestingdepth<basedepth||id===undefined){break}if(id.charCodeAt(0)===126){id=id.substring(1)}if(id.indexOf(":")!==-1){var prefix=fluid.getPrefix(id);var children=fetchComponents(basecontainer,prefix);var finallump=lump.uplump.finallump[prefix];var closefinal=finallump.close_tag;if(children){for(var i=0;i<children.length;++i){var child=children[i];if(child.children){if(debugMode){rendered[child.fullID]=true}var targetlump=branchmap[child.fullID];if(targetlump){if(debugMode){renderComment("Branching for "+child.fullID+" from "+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump))}renderContainer(child,targetlump);if(debugMode){renderComment("Branch returned for "+child.fullID+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump))}}else{if(debugMode){renderDebugMessage("No matching template branch found for branch container with full ID "+child.fullID+" rendering from parent template branch "+fluid.debugLump(baselump))}}}else{var targetlump=findChild(parentlump,child);if(!targetlump){if(debugMode){renderDebugMessage("Repetitive leaf with full ID "+child.fullID+" could not be rendered from parent template branch "+fluid.debugLump(baselump))}continue}var renderend=renderComponentSystem(basecontainer,child,targetlump);var wasopentag=renderend<t1.lumps.lengtn&&t1.lumps[renderend].nestingdepth>=targetlump.nestingdepth;var newbase=child.children?child:basecontainer;if(wasopentag){renderRecurse(newbase,targetlump,t1.lumps[renderend]);renderend=targetlump.close_tag.lumpindex+1}if(i!==children.length-1){if(renderend<closefinal.lumpindex){dumpScan(t1.lumps,renderend,targetlump.nestingdepth-1,false,false)}}else{dumpScan(t1.lumps,renderend,targetlump.nestingdepth,true,false)}}}}else{if(debugMode){renderDebugMessage("No branch container with prefix "+prefix+": found in container "+reportPath(basecontainer)+" rendering at template position "+fluid.debugLump(baselump)+", skipping")}}renderindex=closefinal.lumpindex+1;if(debugMode){renderComment("Stack returned from branch for ID "+id+" to "+fluid.debugLump(baselump)+": skipping from "+fluid.debugLump(lump)+" to "+fluid.debugLump(closefinal))}}else{var component;if(id){component=fetchComponent(basecontainer,id,lump);if(debugMode&&component){rendered[component.fullID]=true}}if(component&&component.children!==undefined){renderContainer(component);renderindex=lump.close_tag.lumpindex+1}else{renderindex=renderComponentSystem(basecontainer,component,lump)}}if(renderindex===t1.lumps.length){break}}if(debugMode){var children=basecontainer.children;for(var key=0;key<children.length;++key){var child=children[key];if(!rendered[child.fullID]){renderDebugMessage("Component "+child.componentType+" with full ID "+child.fullID+" could not be found within template "+fluid.debugLump(baselump))}}}};function renderCollect(collump){dumpTillLump(collump.parent.lumps,collump.lumpindex,collump.close_tag.lumpindex+1)}function renderCollects(){for(var key in collected){var collist=collected[key];for(var i=0;i<collist.length;++i){renderCollect(collist[i])}}}function processDecoratorQueue(){for(var i=0;i<decoratorQueue.length;++i){var decorator=decoratorQueue[i];for(var j=0;j<decorator.ids.length;++j){var id=decorator.ids[j];var node=fluid.byId(id,renderOptions.document);if(!node){fluid.fail("Error during rendering - component with id "+id+" which has a queued decorator was not found in the output markup")}if(decorator.type==="jQuery"){var jnode=$(node);jnode[decorator.func].apply(jnode,$.makeArray(decorator.args))}else{if(decorator.type==="fluid"){var args=decorator.args;if(!args){if(!decorator.container){decorator.container=$(node)}else{decorator.container.push(node)}args=[node,decorator.options]}var that=renderer.invokeFluidDecorator(decorator.func,args,id,i,options);decorator.that=that}else{if(decorator.type==="event"){node[decorator.event]=decorator.handler}}}}}}that.renderTemplates=function(){tree=fixupTree(tree,options.model,options.resolverGetConfig);var template=templates[0];resolveBranches(templates.globalmap,tree,template.rootlump);renderedbindings={};renderCollects();renderRecurse(tree,template.rootlump,template.lumps[template.firstdocumentindex]);return out};that.processDecoratorQueue=function(){processDecoratorQueue()};return that};jQuery.extend(true,fluid.renderer,renderer);fluid.ComponentReference=function(reference){this.reference=reference};fluid.explode=function(hash,basepath){var togo=[];for(var key in hash){var binding=basepath===undefined?key:basepath+"."+key;togo[togo.length]={ID:key,value:hash[key],valuebinding:binding}}return togo};fluid.explodeSelectionToInputs=function(optionlist,opts){return fluid.transform(optionlist,function(option,index){return{ID:opts.rowID,children:[{ID:opts.inputID,parentRelativeID:"..::"+opts.selectID,choiceindex:index},{ID:opts.labelID,parentRelativeID:"..::"+opts.selectID,choiceindex:index}]}})};fluid.resolveMessageSource=function(messageSource){if(messageSource.type==="data"){if(messageSource.url===undefined){return fluid.messageLocator(messageSource.messages,messageSource.resolveFunc)}else{}}else{if(messageSource.type==="resolver"){return messageSource.resolver.resolve}}};fluid.renderTemplates=function(templates,tree,options,fossilsIn){var renderer=fluid.renderer(templates,tree,options,fossilsIn);var rendered=renderer.renderTemplates();return rendered};fluid.reRender=function(templates,node,tree,options){options=options||{};node=fluid.unwrap(node);var lastFocusedElement=fluid.getLastFocusedElement?fluid.getLastFocusedElement():null;var lastId;if(lastFocusedElement&&fluid.dom.isContainer(node,lastFocusedElement)){lastId=lastFocusedElement.id}if($.browser.msie){$(node).empty()}else{node.innerHTML=""}var fossils=options.fossils||{};var renderer=fluid.renderer(templates,tree,options,fossils);var rendered=renderer.renderTemplates();if(options.renderRaw){rendered=fluid.XMLEncode(rendered);rendered=rendered.replace(/\n/g,"<br/>")}if(options.model){fluid.bindFossils(node,options.model,fossils)}if($.browser.msie){$(node).html(rendered)}else{node.innerHTML=rendered}renderer.processDecoratorQueue();if(lastId){var element=fluid.byId(lastId);if(element){$(element).focus()}}return templates};function findNodeValue(rootNode){var node=fluid.dom.iterateDom(rootNode,function(node){return node.nodeType===8||node.nodeType===4?"stop":null},true);var value=node.nodeValue;if(value.indexOf("[CDATA[")===0){return value.substring(6,value.length-2)}else{return value}}fluid.extractTemplate=function(node,armouring){if(!armouring){return node.innerHTML}else{return findNodeValue(node)}};fluid.render=function(source,target,tree,options){options=options||{};var template=source;if(typeof (source)==="object"){template=fluid.extractTemplate(fluid.unwrap(source.node),source.armouring)}target=fluid.unwrap(target);var resourceSpec={base:{resourceText:template,href:".",resourceKey:".",cutpoints:options.cutpoints}};var templates=fluid.parseTemplates(resourceSpec,["base"],options);return fluid.reRender(templates,target,tree,options)};fluid.selfRender=function(node,tree,options){options=options||{};return fluid.render({node:node,armouring:options.armouring},node,tree,options)}})(jQuery,fluid_1_4);
\ No newline at end of file
index 3f7f1fe..3514af6 100644 (file)
@@ -1 +1 @@
-var whitespace="\n\r\t ";var closedTags={abbr:true,br:true,col:true,img:true,input:true,link:true,meta:true,param:true,hr:true,area:true,embed:true};XMLP=function(strXML){this.m_xml=strXML;this.m_iP=0;this.m_iState=XMLP._STATE_PROLOG;this.m_stack=[];this.m_attributes={};this.m_emitSynthetic=false};XMLP._NONE=0;XMLP._ELM_B=1;XMLP._ELM_E=2;XMLP._ELM_EMP=3;XMLP._ATT=4;XMLP._TEXT=5;XMLP._ENTITY=6;XMLP._PI=7;XMLP._CDATA=8;XMLP._COMMENT=9;XMLP._DTD=10;XMLP._ERROR=11;XMLP._CONT_XML=0;XMLP._CONT_ALT=1;XMLP._ATT_NAME=0;XMLP._ATT_VAL=1;XMLP._STATE_PROLOG=1;XMLP._STATE_DOCUMENT=2;XMLP._STATE_MISC=3;XMLP._errs=[];XMLP._errs[XMLP.ERR_CLOSE_PI=0]="PI: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_DTD=1]="DTD: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_COMMENT=2]="Comment: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_CDATA=3]="CDATA: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_ELM=4]="Element: missing closing sequence";XMLP._errs[XMLP.ERR_CLOSE_ENTITY=5]="Entity: missing closing sequence";XMLP._errs[XMLP.ERR_PI_TARGET=6]="PI: target is required";XMLP._errs[XMLP.ERR_ELM_EMPTY=7]="Element: cannot be both empty and closing";XMLP._errs[XMLP.ERR_ELM_NAME=8]='Element: name must immediatly follow "<"';XMLP._errs[XMLP.ERR_ELM_LT_NAME=9]='Element: "<" not allowed in element names';XMLP._errs[XMLP.ERR_ATT_VALUES=10]="Attribute: values are required and must be in quotes";XMLP._errs[XMLP.ERR_ATT_LT_NAME=11]='Element: "<" not allowed in attribute names';XMLP._errs[XMLP.ERR_ATT_LT_VALUE=12]='Attribute: "<" not allowed in attribute values';XMLP._errs[XMLP.ERR_ATT_DUP=13]="Attribute: duplicate attributes not allowed";XMLP._errs[XMLP.ERR_ENTITY_UNKNOWN=14]="Entity: unknown entity";XMLP._errs[XMLP.ERR_INFINITELOOP=15]="Infinite loop";XMLP._errs[XMLP.ERR_DOC_STRUCTURE=16]="Document: only comments, processing instructions, or whitespace allowed outside of document element";XMLP._errs[XMLP.ERR_ELM_NESTING=17]="Element: must be nested correctly";XMLP.prototype._checkStructure=function(iEvent){var stack=this.m_stack;if(XMLP._STATE_PROLOG==this.m_iState){this.m_iState=XMLP._STATE_DOCUMENT}if(XMLP._STATE_DOCUMENT===this.m_iState){if((XMLP._ELM_B==iEvent)||(XMLP._ELM_EMP==iEvent)){this.m_stack[stack.length]=this.getName()}if((XMLP._ELM_E==iEvent)||(XMLP._ELM_EMP==iEvent)){if(stack.length===0){return XMLP._NONE}var strTop=stack[stack.length-1];this.m_stack.length--;if(strTop===null||strTop!==this.getName()){return this._setErr(XMLP.ERR_ELM_NESTING)}}}return iEvent};XMLP.prototype.getColumnNumber=function(){return SAXStrings.getColumnNumber(this.m_xml,this.m_iP)};XMLP.prototype.getContent=function(){return(this.m_cSrc==XMLP._CONT_XML)?this.m_xml:this.m_cAlt};XMLP.prototype.getContentBegin=function(){return this.m_cB};XMLP.prototype.getContentEnd=function(){return this.m_cE};XMLP.prototype.getLineNumber=function(){return SAXStrings.getLineNumber(this.m_xml,this.m_iP)};XMLP.prototype.getName=function(){return this.m_name};XMLP.prototype.next=function(){return this._checkStructure(this._parse())};XMLP.prototype._parse=function(){var iP=this.m_iP;var xml=this.m_xml;if(iP===xml.length){return XMLP._NONE}var c=xml.charAt(iP);if(c==="<"){var c2=xml.charAt(iP+1);if(c2==="?"){return this._parsePI(iP+2)}else{if(c2==="!"){if(iP===xml.indexOf("<!DOCTYPE",iP)){return this._parseDTD(iP+9)}else{if(iP===xml.indexOf("<!--",iP)){return this._parseComment(iP+4)}else{if(iP===xml.indexOf("<![CDATA[",iP)){return this._parseCDATA(iP+9)}}}}else{return this._parseElement(iP+1)}}}else{return this._parseText(iP)}};var nameRegex=/([^\s>]+)/g;var attrStartRegex=/\s*([\w:]+)/gm;var attrValRegex=/\"([^\"]*)\"\s*/gm;var attrValIERegex=/([^\>\s]+)\s*/gm;var closeRegex=/\s*<\//g;XMLP.prototype._parseElement=function(iB){var iE,iDE,iRet;var iType,strN,iLast;iDE=iE=this.m_xml.indexOf(">",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_ELM)}if(this.m_xml.charAt(iB)=="/"){iType=XMLP._ELM_E;iB++}else{iType=XMLP._ELM_B}if(this.m_xml.charAt(iE-1)=="/"){if(iType==XMLP._ELM_E){return this._setErr(XMLP.ERR_ELM_EMPTY)}iType=XMLP._ELM_EMP;iDE--}nameRegex.lastIndex=iB;var nameMatch=nameRegex.exec(this.m_xml);if(!nameMatch){return this._setErr(XMLP.ERR_ELM_NAME)}strN=nameMatch[1].toLowerCase();if("li"===strN&&iType!==XMLP._ELM_E&&this.m_stack.length>0&&this.m_stack[this.m_stack.length-1]==="li"&&!this.m_emitSynthetic){this.m_name="li";this.m_emitSynthetic=true;return XMLP._ELM_E}this.m_attributes={};this.m_cAlt="";if(nameRegex.lastIndex<iDE){this.m_iP=nameRegex.lastIndex;while(this.m_iP<iDE){attrStartRegex.lastIndex=this.m_iP;var attrMatch=attrStartRegex.exec(this.m_xml);if(!attrMatch){return this._setErr(XMLP.ERR_ATT_VALUES)}var attrname=attrMatch[1].toLowerCase();var attrval;if(this.m_xml.charCodeAt(attrStartRegex.lastIndex)===61){var valRegex=this.m_xml.charCodeAt(attrStartRegex.lastIndex+1)===34?attrValRegex:attrValIERegex;valRegex.lastIndex=attrStartRegex.lastIndex+1;attrMatch=valRegex.exec(this.m_xml);if(!attrMatch){return this._setErr(XMLP.ERR_ATT_VALUES)}attrval=attrMatch[1]}else{attrval=attrname;valRegex=attrStartRegex}if(!this.m_attributes[attrname]){this.m_attributes[attrname]=attrval}else{return this._setErr(XMLP.ERR_ATT_DUP)}this.m_iP=valRegex.lastIndex}}if(strN.indexOf("<")!=-1){return this._setErr(XMLP.ERR_ELM_LT_NAME)}this.m_name=strN;this.m_iP=iE+1;if(closedTags[strN]){closeRegex.lastIndex=iE+1;var closeMatch=closeRegex.exec;if(closeMatch){var matchclose=this.m_xml.indexOf(strN,closeMatch.lastIndex);if(matchclose===closeMatch.lastIndex){return iType}else{return XMLP._ELM_EMP}}}this.m_emitSynthetic=false;return iType};XMLP.prototype._parseCDATA=function(iB){var iE=this.m_xml.indexOf("]]>",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_CDATA)}this._setContent(XMLP._CONT_XML,iB,iE);this.m_iP=iE+3;return XMLP._CDATA};XMLP.prototype._parseComment=function(iB){var iE=this.m_xml.indexOf("-->",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_COMMENT)}this._setContent(XMLP._CONT_XML,iB-4,iE+3);this.m_iP=iE+3;return XMLP._COMMENT};XMLP.prototype._parseDTD=function(iB){var iE,strClose,iInt,iLast;iE=this.m_xml.indexOf(">",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_DTD)}iInt=this.m_xml.indexOf("[",iB);strClose=((iInt!=-1)&&(iInt<iE))?"]>":">";while(true){if(iE==iLast){return this._setErr(XMLP.ERR_INFINITELOOP)}iLast=iE;iE=this.m_xml.indexOf(strClose,iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_DTD)}if(this.m_xml.substring(iE-1,iE+2)!="]]>"){break}}this.m_iP=iE+strClose.length;return XMLP._DTD};XMLP.prototype._parsePI=function(iB){var iE,iTB,iTE,iCB,iCE;iE=this.m_xml.indexOf("?>",iB);if(iE==-1){return this._setErr(XMLP.ERR_CLOSE_PI)}iTB=SAXStrings.indexOfNonWhitespace(this.m_xml,iB,iE);if(iTB==-1){return this._setErr(XMLP.ERR_PI_TARGET)}iTE=SAXStrings.indexOfWhitespace(this.m_xml,iTB,iE);if(iTE==-1){iTE=iE}iCB=SAXStrings.indexOfNonWhitespace(this.m_xml,iTE,iE);if(iCB==-1){iCB=iE}iCE=SAXStrings.lastIndexOfNonWhitespace(this.m_xml,iCB,iE);if(iCE==-1){iCE=iE-1}this.m_name=this.m_xml.substring(iTB,iTE);this._setContent(XMLP._CONT_XML,iCB,iCE+1);this.m_iP=iE+2;return XMLP._PI};XMLP.prototype._parseText=function(iB){var iE=this.m_xml.indexOf("<",iB);if(iE==-1){iE=this.m_xml.length}this._setContent(XMLP._CONT_XML,iB,iE);this.m_iP=iE;return XMLP._TEXT};XMLP.prototype._setContent=function(iSrc){var args=arguments;if(XMLP._CONT_XML==iSrc){this.m_cAlt=null;this.m_cB=args[1];this.m_cE=args[2]}else{this.m_cAlt=args[1];this.m_cB=0;this.m_cE=args[1].length}this.m_cSrc=iSrc};XMLP.prototype._setErr=function(iErr){var strErr=XMLP._errs[iErr];this.m_cAlt=strErr;this.m_cB=0;this.m_cE=strErr.length;this.m_cSrc=XMLP._CONT_ALT;return XMLP._ERROR};SAXStrings={};SAXStrings.WHITESPACE=" \t\n\r";SAXStrings.QUOTES="\"'";SAXStrings.getColumnNumber=function(strD,iP){if(!strD){return -1}iP=iP||strD.length;var arrD=strD.substring(0,iP).split("\n");arrD.length--;var iLinePos=arrD.join("\n").length;return iP-iLinePos};SAXStrings.getLineNumber=function(strD,iP){if(!strD){return -1}iP=iP||strD.length;return strD.substring(0,iP).split("\n").length};SAXStrings.indexOfNonWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;++i){var c=strD.charAt(i);if(c!==" "&&c!=="\t"&&c!=="\n"&&c!=="\r"){return i}}return -1};SAXStrings.indexOfWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;i++){if(SAXStrings.WHITESPACE.indexOf(strD.charAt(i))!=-1){return i}}return -1};SAXStrings.lastIndexOfNonWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iE-1;i>=iB;i--){if(SAXStrings.WHITESPACE.indexOf(strD.charAt(i))==-1){return i}}return -1};SAXStrings.replace=function(strD,iB,iE,strF,strR){if(!strD){return""}iB=iB||0;iE=iE||strD.length;return strD.substring(iB,iE).split(strF).join(strR)};function __unescapeString(str){return str.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&apos;/g,"'")}function __escapeString(str){var escAmpRegEx=/&/g;var escLtRegEx=/</g;var escGtRegEx=/>/g;var quotRegEx=/"/g;var aposRegEx=/'/g;str=str.replace(escAmpRegEx,"&amp;");str=str.replace(escLtRegEx,"&lt;");str=str.replace(escGtRegEx,"&gt;");str=str.replace(quotRegEx,"&quot;");str=str.replace(aposRegEx,"&apos;");return str};
\ No newline at end of file
+var fluid_1_4=fluid_1_4||{};(function($,fluid){fluid.XMLP=function(strXML){return fluid.XMLP.XMLPImpl(strXML)};fluid.XMLP.closedTags={abbr:true,br:true,col:true,img:true,input:true,link:true,meta:true,param:true,hr:true,area:true,embed:true};fluid.XMLP._NONE=0;fluid.XMLP._ELM_B=1;fluid.XMLP._ELM_E=2;fluid.XMLP._ELM_EMP=3;fluid.XMLP._ATT=4;fluid.XMLP._TEXT=5;fluid.XMLP._ENTITY=6;fluid.XMLP._PI=7;fluid.XMLP._CDATA=8;fluid.XMLP._COMMENT=9;fluid.XMLP._DTD=10;fluid.XMLP._ERROR=11;fluid.XMLP._CONT_XML=0;fluid.XMLP._CONT_ALT=1;fluid.XMLP._ATT_NAME=0;fluid.XMLP._ATT_VAL=1;fluid.XMLP._STATE_PROLOG=1;fluid.XMLP._STATE_DOCUMENT=2;fluid.XMLP._STATE_MISC=3;fluid.XMLP._errs=[];fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_PI=0]="PI: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_DTD=1]="DTD: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_COMMENT=2]="Comment: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_CDATA=3]="CDATA: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_ELM=4]="Element: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_ENTITY=5]="Entity: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_PI_TARGET=6]="PI: target is required";fluid.XMLP._errs[fluid.XMLP.ERR_ELM_EMPTY=7]="Element: cannot be both empty and closing";fluid.XMLP._errs[fluid.XMLP.ERR_ELM_NAME=8]='Element: name must immediatly follow "<"';fluid.XMLP._errs[fluid.XMLP.ERR_ELM_LT_NAME=9]='Element: "<" not allowed in element names';fluid.XMLP._errs[fluid.XMLP.ERR_ATT_VALUES=10]="Attribute: values are required and must be in quotes";fluid.XMLP._errs[fluid.XMLP.ERR_ATT_LT_NAME=11]='Element: "<" not allowed in attribute names';fluid.XMLP._errs[fluid.XMLP.ERR_ATT_LT_VALUE=12]='Attribute: "<" not allowed in attribute values';fluid.XMLP._errs[fluid.XMLP.ERR_ATT_DUP=13]="Attribute: duplicate attributes not allowed";fluid.XMLP._errs[fluid.XMLP.ERR_ENTITY_UNKNOWN=14]="Entity: unknown entity";fluid.XMLP._errs[fluid.XMLP.ERR_INFINITELOOP=15]="Infinite loop";fluid.XMLP._errs[fluid.XMLP.ERR_DOC_STRUCTURE=16]="Document: only comments, processing instructions, or whitespace allowed outside of document element";fluid.XMLP._errs[fluid.XMLP.ERR_ELM_NESTING=17]="Element: must be nested correctly";fluid.XMLP._checkStructure=function(that,iEvent){var stack=that.m_stack;if(fluid.XMLP._STATE_PROLOG==that.m_iState){that.m_iState=fluid.XMLP._STATE_DOCUMENT}if(fluid.XMLP._STATE_DOCUMENT===that.m_iState){if((fluid.XMLP._ELM_B==iEvent)||(fluid.XMLP._ELM_EMP==iEvent)){that.m_stack[stack.length]=that.getName()}if((fluid.XMLP._ELM_E==iEvent)||(fluid.XMLP._ELM_EMP==iEvent)){if(stack.length===0){return fluid.XMLP._NONE}var strTop=stack[stack.length-1];that.m_stack.length--;if(strTop===null||strTop!==that.getName()){return that._setErr(that,fluid.XMLP.ERR_ELM_NESTING)}}}return iEvent};fluid.XMLP._parseCDATA=function(that,iB){var iE=that.m_xml.indexOf("]]>",iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_CDATA)}fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iB,iE);that.m_iP=iE+3;return fluid.XMLP._CDATA};fluid.XMLP._parseComment=function(that,iB){var iE=that.m_xml.indexOf("-->",iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_COMMENT)}fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iB-4,iE+3);that.m_iP=iE+3;return fluid.XMLP._COMMENT};fluid.XMLP._parseDTD=function(that,iB){var iE,strClose,iInt,iLast;iE=that.m_xml.indexOf(">",iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_DTD)}iInt=that.m_xml.indexOf("[",iB);strClose=((iInt!=-1)&&(iInt<iE))?"]>":">";while(true){if(iE==iLast){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_INFINITELOOP)}iLast=iE;iE=that.m_xml.indexOf(strClose,iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_DTD)}if(that.m_xml.substring(iE-1,iE+2)!="]]>"){break}}that.m_iP=iE+strClose.length;return fluid.XMLP._DTD};fluid.XMLP._parsePI=function(that,iB){var iE,iTB,iTE,iCB,iCE;iE=that.m_xml.indexOf("?>",iB);if(iE==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_PI)}iTB=fluid.SAXStrings.indexOfNonWhitespace(that.m_xml,iB,iE);if(iTB==-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_PI_TARGET)}iTE=fluid.SAXStrings.indexOfWhitespace(that.m_xml,iTB,iE);if(iTE==-1){iTE=iE}iCB=fluid.SAXStrings.indexOfNonWhitespace(that.m_xml,iTE,iE);if(iCB==-1){iCB=iE}iCE=fluid.SAXStrings.lastIndexOfNonWhitespace(that.m_xml,iCB,iE);if(iCE==-1){iCE=iE-1}that.m_name=that.m_xml.substring(iTB,iTE);fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iCB,iCE+1);that.m_iP=iE+2;return fluid.XMLP._PI};fluid.XMLP._parseText=function(that,iB){var iE=that.m_xml.indexOf("<",iB);if(iE==-1){iE=that.m_xml.length}fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iB,iE);that.m_iP=iE;return fluid.XMLP._TEXT};fluid.XMLP._setContent=function(that,iSrc){var args=arguments;if(fluid.XMLP._CONT_XML==iSrc){that.m_cAlt=null;that.m_cB=args[2];that.m_cE=args[3]}else{that.m_cAlt=args[2];that.m_cB=0;that.m_cE=args[2].length}that.m_cSrc=iSrc};fluid.XMLP._setErr=function(that,iErr){var strErr=fluid.XMLP._errs[iErr];that.m_cAlt=strErr;that.m_cB=0;that.m_cE=strErr.length;that.m_cSrc=fluid.XMLP._CONT_ALT;return fluid.XMLP._ERROR};fluid.XMLP._parseElement=function(that,iB){var iE,iDE,iRet;var iType,strN,iLast;iDE=iE=that.m_xml.indexOf(">",iB);if(iE==-1){return that._setErr(that,fluid.XMLP.ERR_CLOSE_ELM)}if(that.m_xml.charAt(iB)=="/"){iType=fluid.XMLP._ELM_E;iB++}else{iType=fluid.XMLP._ELM_B}if(that.m_xml.charAt(iE-1)=="/"){if(iType==fluid.XMLP._ELM_E){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_EMPTY)}iType=fluid.XMLP._ELM_EMP;iDE--}that.nameRegex.lastIndex=iB;var nameMatch=that.nameRegex.exec(that.m_xml);if(!nameMatch){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_NAME)}strN=nameMatch[1].toLowerCase();if("li"===strN&&iType!==fluid.XMLP._ELM_E&&that.m_stack.length>0&&that.m_stack[that.m_stack.length-1]==="li"&&!that.m_emitSynthetic){that.m_name="li";that.m_emitSynthetic=true;return fluid.XMLP._ELM_E}that.m_attributes={};that.m_cAlt="";if(that.nameRegex.lastIndex<iDE){that.m_iP=that.nameRegex.lastIndex;while(that.m_iP<iDE){that.attrStartRegex.lastIndex=that.m_iP;var attrMatch=that.attrStartRegex.exec(that.m_xml);if(!attrMatch){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ATT_VALUES)}var attrname=attrMatch[1].toLowerCase();var attrval;if(that.m_xml.charCodeAt(that.attrStartRegex.lastIndex)===61){var valRegex=that.m_xml.charCodeAt(that.attrStartRegex.lastIndex+1)===34?that.attrValRegex:that.attrValIERegex;valRegex.lastIndex=that.attrStartRegex.lastIndex+1;attrMatch=valRegex.exec(that.m_xml);if(!attrMatch){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ATT_VALUES)}attrval=attrMatch[1]}else{attrval=attrname;valRegex=that.attrStartRegex}if(!that.m_attributes[attrname]){that.m_attributes[attrname]=attrval}else{return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ATT_DUP)}that.m_iP=valRegex.lastIndex}}if(strN.indexOf("<")!=-1){return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_LT_NAME)}that.m_name=strN;that.m_iP=iE+1;if(fluid.XMLP.closedTags[strN]){that.closeRegex.lastIndex=iE+1;var closeMatch=that.closeRegex.exec;if(closeMatch){var matchclose=that.m_xml.indexOf(strN,closeMatch.lastIndex);if(matchclose===closeMatch.lastIndex){return iType}else{return fluid.XMLP._ELM_EMP}}}that.m_emitSynthetic=false;return iType};fluid.XMLP._parse=function(that){var iP=that.m_iP;var xml=that.m_xml;if(iP===xml.length){return fluid.XMLP._NONE}var c=xml.charAt(iP);if(c==="<"){var c2=xml.charAt(iP+1);if(c2==="?"){return fluid.XMLP._parsePI(that,iP+2)}else{if(c2==="!"){if(iP===xml.indexOf("<!DOCTYPE",iP)){return fluid.XMLP._parseDTD(that,iP+9)}else{if(iP===xml.indexOf("<!--",iP)){return fluid.XMLP._parseComment(that,iP+4)}else{if(iP===xml.indexOf("<![CDATA[",iP)){return fluid.XMLP._parseCDATA(that,iP+9)}}}}else{return fluid.XMLP._parseElement(that,iP+1)}}}else{return fluid.XMLP._parseText(that,iP)}};fluid.XMLP.XMLPImpl=function(strXML){var that={};that.m_xml=strXML;that.m_iP=0;that.m_iState=fluid.XMLP._STATE_PROLOG;that.m_stack=[];that.m_attributes={};that.m_emitSynthetic=false;that.getColumnNumber=function(){return fluid.SAXStrings.getColumnNumber(that.m_xml,that.m_iP)};that.getContent=function(){return(that.m_cSrc==fluid.XMLP._CONT_XML)?that.m_xml:that.m_cAlt};that.getContentBegin=function(){return that.m_cB};that.getContentEnd=function(){return that.m_cE};that.getLineNumber=function(){return fluid.SAXStrings.getLineNumber(that.m_xml,that.m_iP)};that.getName=function(){return that.m_name};that.next=function(){return fluid.XMLP._checkStructure(that,fluid.XMLP._parse(that))};that.nameRegex=/([^\s\/>]+)/g;that.attrStartRegex=/\s*([\w:_][\w:_\-\.]*)/gm;that.attrValRegex=/\"([^\"]*)\"\s*/gm;that.attrValIERegex=/([^\>\s]+)\s*/gm;that.closeRegex=/\s*<\//g;return that};fluid.SAXStrings={};fluid.SAXStrings.WHITESPACE=" \t\n\r";fluid.SAXStrings.QUOTES="\"'";fluid.SAXStrings.getColumnNumber=function(strD,iP){if(!strD){return -1}iP=iP||strD.length;var arrD=strD.substring(0,iP).split("\n");arrD.length--;var iLinePos=arrD.join("\n").length;return iP-iLinePos};fluid.SAXStrings.getLineNumber=function(strD,iP){if(!strD){return -1}iP=iP||strD.length;return strD.substring(0,iP).split("\n").length};fluid.SAXStrings.indexOfNonWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;++i){var c=strD.charAt(i);if(c!==" "&&c!=="\t"&&c!=="\n"&&c!=="\r"){return i}}return -1};fluid.SAXStrings.indexOfWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;i++){if(fluid.SAXStrings.WHITESPACE.indexOf(strD.charAt(i))!=-1){return i}}return -1};fluid.SAXStrings.lastIndexOfNonWhitespace=function(strD,iB,iE){if(!strD){return -1}iB=iB||0;iE=iE||strD.length;for(var i=iE-1;i>=iB;i--){if(fluid.SAXStrings.WHITESPACE.indexOf(strD.charAt(i))==-1){return i}}return -1};fluid.SAXStrings.replace=function(strD,iB,iE,strF,strR){if(!strD){return""}iB=iB||0;iE=iE||strD.length;return strD.substring(iB,iE).split(strF).join(strR)}})(jQuery,fluid_1_4);
\ No newline at end of file
index 0de899d..fc3b8bd 100644 (file)
@@ -1,19 +1,23 @@
 /*
- * jQuery JavaScript Library v1.3.2
+ * jQuery JavaScript Library v1.6.1
  * http://jquery.com/
  *
- * Copyright (c) 2009 John Resig
- * Dual licensed under the MIT and GPL licenses.
- * http://docs.jquery.com/License
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
- * Revision: 6246
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu May 12 15:04:36 2011 -0400
  */
-(function(){var window=this,undefined,_jQuery=window.jQuery,_$=window.$,jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context)},quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,isSimple=/^.[^:#\[\.,]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;this.context=selector;return this}if(typeof selector==="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1]){selector=jQuery.clean([match[1]],context)}else{var elem=document.getElementById(match[3]);if(elem&&elem.id!=match[3]){return jQuery().find(selector)}var ret=jQuery(elem||[]);ret.context=document;ret.selector=selector;return ret}}else{return jQuery(context).find(selector)}}else{if(jQuery.isFunction(selector)){return jQuery(document).ready(selector)}}if(selector.selector&&selector.context){this.selector=selector.selector;this.context=selector.context}return this.setArray(jQuery.isArray(selector)?selector:jQuery.makeArray(selector))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(num){return num===undefined?Array.prototype.slice.call(this):this[num]},pushStack:function(elems,name,selector){var ret=jQuery(elems);ret.prevObject=this;ret.context=this.context;if(name==="find"){ret.selector=this.selector+(this.selector?" ":"")+selector}else{if(name){ret.selector=this.selector+"."+name+"("+selector+")"}}return ret},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this},each:function(callback,args){return jQuery.each(this,callback,args)},index:function(elem){return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this)},attr:function(name,value,type){var options=name;if(typeof name==="string"){if(value===undefined){return this[0]&&jQuery[type||"attr"](this[0],name)}else{options={};options[name]=value}}return this.each(function(i){for(name in options){jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name))}})},css:function(key,value){if((key=="width"||key=="height")&&parseFloat(value)<0){value=undefined}return this.attr(key,value,"curCSS")},text:function(text){if(typeof text!=="object"&&text!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text))}var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8){ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this])}})});return ret},wrapAll:function(html){if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).clone();if(this[0].parentNode){wrap.insertBefore(this[0])}wrap.map(function(){var elem=this;while(elem.firstChild){elem=elem.firstChild}return elem}).append(this)}return this},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html)})},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html)})},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1){this.appendChild(elem)}})},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1){this.insertBefore(elem,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this)})},after:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling)})},end:function(){return this.prevObject||jQuery([])},push:[].push,sort:[].sort,splice:[].splice,find:function(selector){if(this.length===1){var ret=this.pushStack([],"find",selector);ret.length=0;jQuery.find(selector,this[0],ret);return ret}else{return this.pushStack(jQuery.unique(jQuery.map(this,function(elem){return jQuery.find(selector,elem)})),"find",selector)}},clone:function(events){var ret=this.map(function(){if(!jQuery.support.noCloneEvent&&!jQuery.isXMLDoc(this)){var html=this.outerHTML;if(!html){var div=this.ownerDocument.createElement("div");div.appendChild(this.cloneNode(true));html=div.innerHTML}return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(events===true){var orig=this.find("*").andSelf(),i=0;ret.find("*").andSelf().each(function(){if(this.nodeName!==orig[i].nodeName){return }var events=jQuery.data(orig[i],"events");for(var type in events){for(var handler in events[type]){jQuery.event.add(this,type,events[type][handler],events[type][handler].data)}}i++})}return ret},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i)})||jQuery.multiFilter(selector,jQuery.grep(this,function(elem){return elem.nodeType===1})),"filter",selector)},closest:function(selector){var pos=jQuery.expr.match.POS.test(selector)?jQuery(selector):null,closer=0;return this.map(function(){var cur=this;while(cur&&cur.ownerDocument){if(pos?pos.index(cur)>-1:jQuery(cur).is(selector)){jQuery.data(cur,"closest",closer);return cur}cur=cur.parentNode;closer++}})},not:function(selector){if(typeof selector==="string"){if(isSimple.test(selector)){return this.pushStack(jQuery.multiFilter(selector,this,true),"not",selector)}else{selector=jQuery.multiFilter(selector,this)}}var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector})},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector==="string"?jQuery(selector):jQuery.makeArray(selector))))},is:function(selector){return !!selector&&jQuery.multiFilter(selector,this).length>0},hasClass:function(selector){return !!selector&&this.is("."+selector)},val:function(value){if(value===undefined){var elem=this[0];if(elem){if(jQuery.nodeName(elem,"option")){return(elem.attributes.value||{}).specified?elem.value:elem.text}if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0){return null}for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery(option).val();if(one){return value}values.push(value)}}return values}return(elem.value||"").replace(/\r/g,"")}return undefined}if(typeof value==="number"){value+=""}return this.each(function(){if(this.nodeType!=1){return }if(jQuery.isArray(value)&&/radio|checkbox/.test(this.type)){this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0)}else{if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0)});if(!values.length){this.selectedIndex=-1}}else{this.value=value}}})},html:function(value){return value===undefined?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(value)},replaceWith:function(value){return this.after(value).remove()},eq:function(i){return this.slice(i,+i+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(args,table,callback){if(this[0]){var fragment=(this[0].ownerDocument||this[0]).createDocumentFragment(),scripts=jQuery.clean(args,(this[0].ownerDocument||this[0]),fragment),first=fragment.firstChild;if(first){for(var i=0,l=this.length;i<l;i++){callback.call(root(this[i],first),this.length>1||i>0?fragment.cloneNode(true):fragment)}}if(scripts){jQuery.each(scripts,evalScript)}}return this;function root(elem,cur){return table&&jQuery.nodeName(elem,"table")&&jQuery.nodeName(cur,"tr")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem}}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dataType:"script"})}else{jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"")}if(elem.parentNode){elem.parentNode.removeChild(elem)}}function now(){return +new Date}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={}}if(length==i){target=this;--i}for(;i<length;i++){if((options=arguments[i])!=null){for(var name in options){var src=target[name],copy=options[name];if(target===copy){continue}if(deep&&copy&&typeof copy==="object"&&!copy.nodeType){target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy)}else{if(copy!==undefined){target[name]=copy}}}}}return target};var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{},toString=Object.prototype.toString;jQuery.extend({noConflict:function(deep){window.$=_$;if(deep){window.jQuery=_jQuery}return jQuery},isFunction:function(obj){return toString.call(obj)==="[object Function]"},isArray:function(obj){return toString.call(obj)==="[object Array]"},isXMLDoc:function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&jQuery.isXMLDoc(elem.ownerDocument)},globalEval:function(data){if(data&&/\S/.test(data)){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.support.scriptEval){script.appendChild(document.createTextNode(data))}else{script.text=data}head.insertBefore(script,head.firstChild);head.removeChild(script)}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase()},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length===undefined){for(name in object){if(callback.apply(object[name],args)===false){break}}}else{for(;i<length;){if(callback.apply(object[i++],args)===false){break}}}}else{if(length===undefined){for(name in object){if(callback.call(object[name],name,object[name])===false){break}}}else{for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}}return object},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value)){value=value.call(elem,i)}return typeof value==="number"&&type=="curCSS"&&!exclude.test(name)?value+"px":value},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className)){elem.className+=(elem.className?" ":"")+className}})},remove:function(elem,classNames){if(elem.nodeType==1){elem.className=classNames!==undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return !jQuery.className.has(classNames,className)}).join(" "):""}},has:function(elem,className){return elem&&jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name]}callback.call(elem);for(var name in options){elem.style[name]=old[name]}},css:function(elem,name,force,extra){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;if(extra==="border"){return }jQuery.each(which,function(){if(!extra){val-=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0}if(extra==="margin"){val+=parseFloat(jQuery.curCSS(elem,"margin"+this,true))||0}else{val-=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0}})}if(elem.offsetWidth!==0){getWH()}else{jQuery.swap(elem,props,getWH)}return Math.max(0,Math.round(val))}return jQuery.curCSS(elem,name,force)},curCSS:function(elem,name,force){var ret,style=elem.style;if(name=="opacity"&&!jQuery.support.opacity){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret}if(name.match(/float/i)){name=styleFloat}if(!force&&style&&style[name]){ret=style[name]}else{if(defaultView.getComputedStyle){if(name.match(/float/i)){name="float"}name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle){ret=computedStyle.getPropertyValue(name)}if(name=="opacity"&&ret==""){ret="1"}}else{if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase()});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft}}}}return ret},clean:function(elems,context,fragment){context=context||document;if(typeof context.createElement==="undefined"){context=context.ownerDocument||context[0]&&context[0].ownerDocument||document}if(!fragment&&elems.length===1&&typeof elems[0]==="string"){var match=/^<(\w+)\s*\/?>$/.exec(elems[0]);if(match){return[context.createElement(match[1])]}}var ret=[],scripts=[],div=context.createElement("div");jQuery.each(elems,function(i,elem){if(typeof elem==="number"){elem+=""}if(!elem){return }if(typeof elem==="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">"});var tags=elem.replace(/^\s+/,"").substring(0,10).toLowerCase();var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!jQuery.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--){div=div.lastChild}if(!jQuery.support.tbody){var hasBody=/<tbody/i.test(elem),tbody=!tags.indexOf("<table")&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&!hasBody?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j])}}}if(!jQuery.support.leadingWhitespace&&/^\s/.test(elem)){div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild)}elem=jQuery.makeArray(div.childNodes)}if(elem.nodeType){ret.push(elem)}else{ret=jQuery.merge(ret,elem)}});if(fragment){for(var i=0;ret[i];i++){if(jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i])}else{if(ret[i].nodeType===1){ret.splice.apply(ret,[i+1,0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))))}fragment.appendChild(ret[i])}}return scripts}return ret},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8){return undefined}var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&elem.parentNode){elem.parentNode.selectedIndex}if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode){throw"type property can't be changed"}elem[name]=value}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name)){return elem.getAttributeNode(name).nodeValue}if(name=="tabIndex"){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?attributeNode.value:elem.nodeName.match(/(button|input|object|select|textarea)/i)?0:elem.nodeName.match(/^(a|area)$/i)&&elem.href?0:undefined}return elem[name]}if(!jQuery.support.style&&notxml&&name=="style"){return jQuery.attr(elem.style,"cssText",value)}if(set){elem.setAttribute(name,""+value)}var attr=!jQuery.support.hrefNormalized&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr}if(!jQuery.support.opacity&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+""=="NaN"?"":"alpha(opacity="+value*100+")")}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase()});if(set){elem[name]=value}return elem[name]},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"")},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||typeof array==="string"||jQuery.isFunction(array)||array.setInterval){ret[0]=array}else{while(i){ret[--i]=array[i]}}}return ret},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++){if(array[i]===elem){return i}}return -1},merge:function(first,second){var i=0,elem,pos=first.length;if(!jQuery.support.getAll){while((elem=second[i++])!=null){if(elem.nodeType!=8){first[pos++]=elem}}}else{while((elem=second[i++])!=null){first[pos++]=elem}}return first},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i])}}}catch(e){ret=array}return ret},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++){if(!inv!=!callback(elems[i],i)){ret.push(elems[i])}}return ret},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null){ret[ret.length]=value}}return ret.concat.apply([],ret)}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};jQuery.each({parent:function(elem){return elem.parentNode},parents:function(elem){return jQuery.dir(elem,"parentNode")},next:function(elem){return jQuery.nth(elem,2,"nextSibling")},prev:function(elem){return jQuery.nth(elem,2,"previousSibling")},nextAll:function(elem){return jQuery.dir(elem,"nextSibling")},prevAll:function(elem){return jQuery.dir(elem,"previousSibling")},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string"){ret=jQuery.multiFilter(selector,ret)}return this.pushStack(jQuery.unique(ret),name,selector)}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector);for(var i=0,l=insert.length;i<l;i++){var elems=(i>0?this.clone(true):this).get();jQuery.fn[original].apply(jQuery(insert[i]),elems);ret=ret.concat(elems)}return this.pushStack(ret,name,selector)}});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1){this.removeAttribute(name)}},addClass:function(classNames){jQuery.className.add(this,classNames)},removeClass:function(classNames){jQuery.className.remove(this,classNames)},toggleClass:function(classNames,state){if(typeof state!=="boolean"){state=!jQuery.className.has(this,classNames)}jQuery.className[state?"add":"remove"](this,classNames)},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).length){jQuery("*",this).add([this]).each(function(){jQuery.event.remove(this);jQuery.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){jQuery(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments)}});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0}var expando="jQuery"+now(),uuid=0,windowData={};jQuery.extend({cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id){id=elem[expando]=++uuid}if(name&&!jQuery.cache[id]){jQuery.cache[id]={}}if(data!==undefined){jQuery.cache[id][name]=data}return name?jQuery.cache[id][name]:id},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id]){break}if(!name){jQuery.removeData(elem)}}}else{try{delete elem[expando]}catch(e){if(elem.removeAttribute){elem.removeAttribute(expando)}}delete jQuery.cache[id]}},queue:function(elem,type,data){if(elem){type=(type||"fx")+"queue";var q=jQuery.data(elem,type);if(!q||jQuery.isArray(data)){q=jQuery.data(elem,type,jQuery.makeArray(data))}else{if(data){q.push(data)}}}return q},dequeue:function(elem,type){var queue=jQuery.queue(elem,type),fn=queue.shift();if(!type||type==="fx"){fn=queue[0]}if(fn!==undefined){fn.call(elem)}}});jQuery.fn.extend({data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length){data=jQuery.data(this[0],key)}return data===undefined&&parts[1]?this.data(parts[0]):data}else{return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value)})}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key)})},queue:function(type,data){if(typeof type!=="string"){data=type;type="fx"}if(data===undefined){return jQuery.queue(this[0],type)}return this.each(function(){var queue=jQuery.queue(this,type,data);if(type=="fx"&&queue.length==1){queue[0].call(this)}})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})}});
+(function(window,undefined){var document=window.document,navigator=window.navigator,location=window.location;var jQuery=(function(){var jQuery=function(selector,context){return new jQuery.fn.init(selector,context,rootjQuery)},_jQuery=window.jQuery,_$=window.$,rootjQuery,quickExpr=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,rnotwhite=/\S/,trimLeft=/^\s+/,trimRight=/\s+$/,rdigit=/\d/,rsingleTag=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,rvalidchars=/^[\],:{}\s]*$/,rvalidescape=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rvalidtokens=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rvalidbraces=/(?:^|:|,)(?:\s*\[)+/g,rwebkit=/(webkit)[ \/]([\w.]+)/,ropera=/(opera)(?:.*version)?[ \/]([\w.]+)/,rmsie=/(msie) ([\w.]+)/,rmozilla=/(mozilla)(?:.*? rv:([\w.]+))?/,userAgent=navigator.userAgent,browserMatch,readyList,DOMContentLoaded,toString=Object.prototype.toString,hasOwn=Object.prototype.hasOwnProperty,push=Array.prototype.push,slice=Array.prototype.slice,trim=String.prototype.trim,indexOf=Array.prototype.indexOf,class2type={};jQuery.fn=jQuery.prototype={constructor:jQuery,init:function(selector,context,rootjQuery){var match,elem,ret,doc;if(!selector){return this}if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this}if(selector==="body"&&!context&&document.body){this.context=document;this[0]=document.body;this.selector=selector;this.length=1;return this}if(typeof selector==="string"){if(selector.charAt(0)==="<"&&selector.charAt(selector.length-1)===">"&&selector.length>=3){match=[null,selector,null]}else{match=quickExpr.exec(selector)}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;doc=(context?context.ownerDocument||context:document);ret=rsingleTag.exec(selector);if(ret){if(jQuery.isPlainObject(context)){selector=[document.createElement(ret[1])];jQuery.fn.attr.call(selector,context,true)}else{selector=[doc.createElement(ret[1])]}}else{ret=jQuery.buildFragment([match[1]],[doc]);selector=(ret.cacheable?jQuery.clone(ret.fragment):ret.fragment).childNodes}return jQuery.merge(this,selector)}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){if(elem.id!==match[2]){return rootjQuery.find(selector)}this.length=1;this[0]=elem}this.context=document;this.selector=selector;return this}}else{if(!context||context.jquery){return(context||rootjQuery).find(selector)}else{return this.constructor(context).find(selector)}}}else{if(jQuery.isFunction(selector)){return rootjQuery.ready(selector)}}if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context}return jQuery.makeArray(selector,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return slice.call(this,0)},get:function(num){return num==null?this.toArray():(num<0?this[this.length+num]:this[num])},pushStack:function(elems,name,selector){var ret=this.constructor();if(jQuery.isArray(elems)){push.apply(ret,elems)}else{jQuery.merge(ret,elems)}ret.prevObject=this;ret.context=this.context;if(name==="find"){ret.selector=this.selector+(this.selector?" ":"")+selector}else{if(name){ret.selector=this.selector+"."+name+"("+selector+")"}}return ret},each:function(callback,args){return jQuery.each(this,callback,args)},ready:function(fn){jQuery.bindReady();readyList.done(fn);return this},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(slice.apply(this,arguments),"slice",slice.call(arguments).join(","))},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},end:function(){return this.prevObject||this.constructor(null)},push:push,sort:[].sort,splice:[].splice};jQuery.fn.init.prototype=jQuery.fn;jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={}}if(length===i){target=this;--i}for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue}if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[]}else{clone=src&&jQuery.isPlainObject(src)?src:{}}target[name]=jQuery.extend(deep,clone,copy)}else{if(copy!==undefined){target[name]=copy}}}}}return target};jQuery.extend({noConflict:function(deep){if(window.$===jQuery){window.$=_$}if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery}return jQuery},isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++}else{jQuery.ready(true)}},ready:function(wait){if((wait===true&&!--jQuery.readyWait)||(wait!==true&&!jQuery.isReady)){if(!document.body){return setTimeout(jQuery.ready,1)}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return }readyList.resolveWith(document,[jQuery]);if(jQuery.fn.trigger){jQuery(document).trigger("ready").unbind("ready")}}},bindReady:function(){if(readyList){return }readyList=jQuery._Deferred();if(document.readyState==="complete"){return setTimeout(jQuery.ready,1)}if(document.addEventListener){document.addEventListener("DOMContentLoaded",DOMContentLoaded,false);window.addEventListener("load",jQuery.ready,false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",DOMContentLoaded);window.attachEvent("onload",jQuery.ready);var toplevel=false;try{toplevel=window.frameElement==null}catch(e){}if(document.documentElement.doScroll&&toplevel){doScrollCheck()}}}},isFunction:function(obj){return jQuery.type(obj)==="function"},isArray:Array.isArray||function(obj){return jQuery.type(obj)==="array"},isWindow:function(obj){return obj&&typeof obj==="object"&&"setInterval" in obj},isNaN:function(obj){return obj==null||!rdigit.test(obj)||isNaN(obj)},type:function(obj){return obj==null?String(obj):class2type[toString.call(obj)]||"object"},isPlainObject:function(obj){if(!obj||jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false}if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false}var key;for(key in obj){}return key===undefined||hasOwn.call(obj,key)},isEmptyObject:function(obj){for(var name in obj){return false}return true},error:function(msg){throw msg},parseJSON:function(data){if(typeof data!=="string"||!data){return null}data=jQuery.trim(data);if(window.JSON&&window.JSON.parse){return window.JSON.parse(data)}if(rvalidchars.test(data.replace(rvalidescape,"@").replace(rvalidtokens,"]").replace(rvalidbraces,""))){return(new Function("return "+data))()}jQuery.error("Invalid JSON: "+data)},parseXML:function(data,xml,tmp){if(window.DOMParser){tmp=new DOMParser();xml=tmp.parseFromString(data,"text/xml")}else{xml=new ActiveXObject("Microsoft.XMLDOM");xml.async="false";xml.loadXML(data)}tmp=xml.documentElement;if(!tmp||!tmp.nodeName||tmp.nodeName==="parsererror"){jQuery.error("Invalid XML: "+data)}return xml},noop:function(){},globalEval:function(data){if(data&&rnotwhite.test(data)){(window.execScript||function(data){window.eval.call(window,data)})(data)}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()===name.toUpperCase()},each:function(object,callback,args){var name,i=0,length=object.length,isObj=length===undefined||jQuery.isFunction(object);if(args){if(isObj){for(name in object){if(callback.apply(object[name],args)===false){break}}}else{for(;i<length;){if(callback.apply(object[i++],args)===false){break}}}}else{if(isObj){for(name in object){if(callback.call(object[name],name,object[name])===false){break}}}else{for(;i<length;){if(callback.call(object[i],i,object[i++])===false){break}}}}return object},trim:trim?function(text){return text==null?"":trim.call(text)}:function(text){return text==null?"":text.toString().replace(trimLeft,"").replace(trimRight,"")},makeArray:function(array,results){var ret=results||[];if(array!=null){var type=jQuery.type(array);if(array.length==null||type==="string"||type==="function"||type==="regexp"||jQuery.isWindow(array)){push.call(ret,array)}else{jQuery.merge(ret,array)}}return ret},inArray:function(elem,array){if(indexOf){return indexOf.call(array,elem)}for(var i=0,length=array.length;i<length;i++){if(array[i]===elem){return i}}return -1},merge:function(first,second){var i=first.length,j=0;if(typeof second.length==="number"){for(var l=second.length;j<l;j++){first[i++]=second[j]}}else{while(second[j]!==undefined){first[i++]=second[j++]}}first.length=i;return first},grep:function(elems,callback,inv){var ret=[],retVal;inv=!!inv;for(var i=0,length=elems.length;i<length;i++){retVal=!!callback(elems[i],i);if(inv!==retVal){ret.push(elems[i])}}return ret},map:function(elems,callback,arg){var value,key,ret=[],i=0,length=elems.length,isArray=elems instanceof jQuery||length!==undefined&&typeof length==="number"&&((length>0&&elems[0]&&elems[length-1])||length===0||jQuery.isArray(elems));if(isArray){for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret[ret.length]=value}}}else{for(key in elems){value=callback(elems[key],key,arg);if(value!=null){ret[ret.length]=value}}}return ret.concat.apply([],ret)},guid:1,proxy:function(fn,context){if(typeof context==="string"){var tmp=fn[context];context=fn;fn=tmp}if(!jQuery.isFunction(fn)){return undefined}var args=slice.call(arguments,2),proxy=function(){return fn.apply(context,args.concat(slice.call(arguments)))};proxy.guid=fn.guid=fn.guid||proxy.guid||jQuery.guid++;return proxy},access:function(elems,key,value,exec,fn,pass){var length=elems.length;if(typeof key==="object"){for(var k in key){jQuery.access(elems,k,key[k],exec,fn,value)}return elems}if(value!==undefined){exec=!pass&&exec&&jQuery.isFunction(value);for(var i=0;i<length;i++){fn(elems[i],key,exec?value.call(elems[i],i,fn(elems[i],key)):value,pass)}return elems}return length?fn(elems[0],key):undefined},now:function(){return(new Date()).getTime()},uaMatch:function(ua){ua=ua.toLowerCase();var match=rwebkit.exec(ua)||ropera.exec(ua)||rmsie.exec(ua)||ua.indexOf("compatible")<0&&rmozilla.exec(ua)||[];return{browser:match[1]||"",version:match[2]||"0"}},sub:function(){function jQuerySub(selector,context){return new jQuerySub.fn.init(selector,context)}jQuery.extend(true,jQuerySub,this);jQuerySub.superclass=this;jQuerySub.fn=jQuerySub.prototype=this();jQuerySub.fn.constructor=jQuerySub;jQuerySub.sub=this.sub;jQuerySub.fn.init=function init(selector,context){if(context&&context instanceof jQuery&&!(context instanceof jQuerySub)){context=jQuerySub(context)}return jQuery.fn.init.call(this,selector,context,rootjQuerySub)};jQuerySub.fn.init.prototype=jQuerySub.fn;var rootjQuerySub=jQuerySub(document);return jQuerySub},browser:{}});jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});browserMatch=jQuery.uaMatch(userAgent);if(browserMatch.browser){jQuery.browser[browserMatch.browser]=true;jQuery.browser.version=browserMatch.version}if(jQuery.browser.webkit){jQuery.browser.safari=true}if(rnotwhite.test("\xA0")){trimLeft=/^[\s\xA0]+/;trimRight=/[\s\xA0]+$/}rootjQuery=jQuery(document);if(document.addEventListener){DOMContentLoaded=function(){document.removeEventListener("DOMContentLoaded",DOMContentLoaded,false);jQuery.ready()}}else{if(document.attachEvent){DOMContentLoaded=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",DOMContentLoaded);jQuery.ready()}}}}function doScrollCheck(){if(jQuery.isReady){return }try{document.documentElement.doScroll("left")}catch(e){setTimeout(doScrollCheck,1);return }jQuery.ready()}return jQuery})();var promiseMethods="done fail isResolved isRejected promise then always pipe".split(" "),sliceDeferred=[].slice;jQuery.extend({_Deferred:function(){var callbacks=[],fired,firing,cancelled,deferred={done:function(){if(!cancelled){var args=arguments,i,length,elem,type,_fired;if(fired){_fired=fired;fired=0}for(i=0,length=args.length;i<length;i++){elem=args[i];type=jQuery.type(elem);if(type==="array"){deferred.done.apply(deferred,elem)}else{if(type==="function"){callbacks.push(elem)}}}if(_fired){deferred.resolveWith(_fired[0],_fired[1])}}return this},resolveWith:function(context,args){if(!cancelled&&!fired&&!firing){args=args||[];firing=1;try{while(callbacks[0]){callbacks.shift().apply(context,args)}}finally{fired=[context,args];firing=0}}return this},resolve:function(){deferred.resolveWith(this,arguments);return this},isResolved:function(){return !!(firing||fired)},cancel:function(){cancelled=1;callbacks=[];return this}};return deferred},Deferred:function(func){var deferred=jQuery._Deferred(),failDeferred=jQuery._Deferred(),promise;jQuery.extend(deferred,{then:function(doneCallbacks,failCallbacks){deferred.done(doneCallbacks).fail(failCallbacks);return this},always:function(){return deferred.done.apply(deferred,arguments).fail.apply(this,arguments)},fail:failDeferred.done,rejectWith:failDeferred.resolveWith,reject:failDeferred.resolve,isRejected:failDeferred.isResolved,pipe:function(fnDone,fnFail){return jQuery.Deferred(function(newDefer){jQuery.each({done:[fnDone,"resolve"],fail:[fnFail,"reject"]},function(handler,data){var fn=data[0],action=data[1],returned;if(jQuery.isFunction(fn)){deferred[handler](function(){returned=fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().then(newDefer.resolve,newDefer.reject)}else{newDefer[action](returned)}})}else{deferred[handler](newDefer[action])}})}).promise()},promise:function(obj){if(obj==null){if(promise){return promise}promise=obj={}}var i=promiseMethods.length;while(i--){obj[promiseMethods[i]]=deferred[promiseMethods[i]]}return obj}});deferred.done(failDeferred.cancel).fail(deferred.cancel);delete deferred.cancel;if(func){func.call(deferred,deferred)}return deferred},when:function(firstParam){var args=arguments,i=0,length=args.length,count=length,deferred=length<=1&&firstParam&&jQuery.isFunction(firstParam.promise)?firstParam:jQuery.Deferred();function resolveFunc(i){return function(value){args[i]=arguments.length>1?sliceDeferred.call(arguments,0):value;if(!(--count)){deferred.resolveWith(deferred,sliceDeferred.call(args,0))}}}if(length>1){for(;i<length;i++){if(args[i]&&jQuery.isFunction(args[i].promise)){args[i].promise().then(resolveFunc(i),deferred.reject)}else{--count}}if(!count){deferred.resolveWith(deferred,args)}}else{if(deferred!==firstParam){deferred.resolveWith(deferred,length?[firstParam]:[])}}return deferred.promise()}});jQuery.support=(function(){var div=document.createElement("div"),documentElement=document.documentElement,all,a,select,opt,input,marginDiv,support,fragment,body,bodyStyle,tds,events,eventName,i,isSupported;div.setAttribute("className","t");div.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";all=div.getElementsByTagName("*");a=div.getElementsByTagName("a")[0];if(!all||!all.length||!a){return{}}select=document.createElement("select");opt=select.appendChild(document.createElement("option"));input=div.getElementsByTagName("input")[0];support={leadingWhitespace:(div.firstChild.nodeType===3),tbody:!div.getElementsByTagName("tbody").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/top/.test(a.getAttribute("style")),hrefNormalized:(a.getAttribute("href")==="/a"),opacity:/^0.55$/.test(a.style.opacity),cssFloat:!!a.style.cssFloat,checkOn:(input.value==="on"),optSelected:opt.selected,getSetAttribute:div.className!=="t",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};input.checked=true;support.noCloneChecked=input.cloneNode(true).checked;select.disabled=true;support.optDisabled=!opt.disabled;try{delete div.test}catch(e){support.deleteExpando=false}if(!div.addEventListener&&div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function click(){support.noCloneEvent=false;div.detachEvent("onclick",click)});div.cloneNode(true).fireEvent("onclick")}input=document.createElement("input");input.value="t";input.setAttribute("type","radio");support.radioValue=input.value==="t";input.setAttribute("checked","checked");div.appendChild(input);fragment=document.createDocumentFragment();fragment.appendChild(div.firstChild);support.checkClone=fragment.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="";div.style.width=div.style.paddingLeft="1px";body=document.createElement("body");bodyStyle={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(i in bodyStyle){body.style[i]=bodyStyle[i]}body.appendChild(div);documentElement.insertBefore(body,documentElement.firstChild);support.appendChecked=input.checked;support.boxModel=div.offsetWidth===2;if("zoom" in div.style){div.style.display="inline";div.style.zoom=1;support.inlineBlockNeedsLayout=(div.offsetWidth===2);div.style.display="";div.innerHTML="<div style='width:4px;'></div>";support.shrinkWrapBlocks=(div.offsetWidth!==2)}div.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";tds=div.getElementsByTagName("td");isSupported=(tds[0].offsetHeight===0);tds[0].style.display="";tds[1].style.display="none";support.reliableHiddenOffsets=isSupported&&(tds[0].offsetHeight===0);div.innerHTML="";if(document.defaultView&&document.defaultView.getComputedStyle){marginDiv=document.createElement("div");marginDiv.style.width="0";marginDiv.style.marginRight="0";div.appendChild(marginDiv);support.reliableMarginRight=(parseInt((document.defaultView.getComputedStyle(marginDiv,null)||{marginRight:0}).marginRight,10)||0)===0}body.innerHTML="";documentElement.removeChild(body);if(div.attachEvent){for(i in {submit:1,change:1,focusin:1}){eventName="on"+i;isSupported=(eventName in div);if(!isSupported){div.setAttribute(eventName,"return;");isSupported=(typeof div[eventName]==="function")}support[i+"Bubbles"]=isSupported}}return support})();jQuery.boxModel=jQuery.support.boxModel;var rbrace=/^(?:\{.*\}|\[.*\])$/,rmultiDash=/([a-z])([A-Z])/g;jQuery.extend({cache:{},uuid:0,expando:"jQuery"+(jQuery.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(elem){elem=elem.nodeType?jQuery.cache[elem[jQuery.expando]]:elem[jQuery.expando];return !!elem&&!isEmptyDataObject(elem)},data:function(elem,name,data,pvt){if(!jQuery.acceptData(elem)){return }var internalKey=jQuery.expando,getByName=typeof name==="string",thisCache,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:elem[jQuery.expando]&&jQuery.expando;if((!id||(pvt&&id&&!cache[id][internalKey]))&&getByName&&data===undefined){return }if(!id){if(isNode){elem[jQuery.expando]=id=++jQuery.uuid}else{id=jQuery.expando}}if(!cache[id]){cache[id]={};if(!isNode){cache[id].toJSON=jQuery.noop}}if(typeof name==="object"||typeof name==="function"){if(pvt){cache[id][internalKey]=jQuery.extend(cache[id][internalKey],name)}else{cache[id]=jQuery.extend(cache[id],name)}}thisCache=cache[id];if(pvt){if(!thisCache[internalKey]){thisCache[internalKey]={}}thisCache=thisCache[internalKey]}if(data!==undefined){thisCache[jQuery.camelCase(name)]=data}if(name==="events"&&!thisCache[name]){return thisCache[internalKey]&&thisCache[internalKey].events}return getByName?thisCache[jQuery.camelCase(name)]:thisCache},removeData:function(elem,name,pvt){if(!jQuery.acceptData(elem)){return }var internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(!cache[id]){return }if(name){var thisCache=pvt?cache[id][internalKey]:cache[id];if(thisCache){delete thisCache[name];if(!isEmptyDataObject(thisCache)){return }}}if(pvt){delete cache[id][internalKey];if(!isEmptyDataObject(cache[id])){return }}var internalCache=cache[id][internalKey];if(jQuery.support.deleteExpando||cache!=window){delete cache[id]}else{cache[id]=null}if(internalCache){cache[id]={};if(!isNode){cache[id].toJSON=jQuery.noop}cache[id][internalKey]=internalCache}else{if(isNode){if(jQuery.support.deleteExpando){delete elem[jQuery.expando]}else{if(elem.removeAttribute){elem.removeAttribute(jQuery.expando)}else{elem[jQuery.expando]=null}}}}},_data:function(elem,name,data){return jQuery.data(elem,name,data,true)},acceptData:function(elem){if(elem.nodeName){var match=jQuery.noData[elem.nodeName.toLowerCase()];if(match){return !(match===true||elem.getAttribute("classid")!==match)}}return true}});jQuery.fn.extend({data:function(key,value){var data=null;if(typeof key==="undefined"){if(this.length){data=jQuery.data(this[0]);if(this[0].nodeType===1){var attr=this[0].attributes,name;for(var i=0,l=attr.length;i<l;i++){name=attr[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.substring(5));dataAttr(this[0],name,data[name])}}}}return data}else{if(typeof key==="object"){return this.each(function(){jQuery.data(this,key)})}}var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length){data=jQuery.data(this[0],key);data=dataAttr(this[0],key,data)}return data===undefined&&parts[1]?this.data(parts[0]):data}else{return this.each(function(){var $this=jQuery(this),args=[parts[0],value];$this.triggerHandler("setData"+parts[1]+"!",args);jQuery.data(this,key,value);$this.triggerHandler("changeData"+parts[1]+"!",args)})}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key)})}});function dataAttr(elem,key,data){if(data===undefined&&elem.nodeType===1){var name="data-"+key.replace(rmultiDash,"$1-$2").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:!jQuery.isNaN(data)?parseFloat(data):rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}jQuery.data(elem,key,data)}else{data=undefined}}return data}function isEmptyDataObject(obj){for(var name in obj){if(name!=="toJSON"){return false}}return true}function handleQueueMarkDefer(elem,type,src){var deferDataKey=type+"defer",queueDataKey=type+"queue",markDataKey=type+"mark",defer=jQuery.data(elem,deferDataKey,undefined,true);if(defer&&(src==="queue"||!jQuery.data(elem,queueDataKey,undefined,true))&&(src==="mark"||!jQuery.data(elem,markDataKey,undefined,true))){setTimeout(function(){if(!jQuery.data(elem,queueDataKey,undefined,true)&&!jQuery.data(elem,markDataKey,undefined,true)){jQuery.removeData(elem,deferDataKey,true);defer.resolve()}},0)}}jQuery.extend({_mark:function(elem,type){if(elem){type=(type||"fx")+"mark";jQuery.data(elem,type,(jQuery.data(elem,type,undefined,true)||0)+1,true)}},_unmark:function(force,elem,type){if(force!==true){type=elem;elem=force;force=false}if(elem){type=type||"fx";var key=type+"mark",count=force?0:((jQuery.data(elem,key,undefined,true)||1)-1);if(count){jQuery.data(elem,key,count,true)}else{jQuery.removeData(elem,key,true);handleQueueMarkDefer(elem,type,"mark")}}},queue:function(elem,type,data){if(elem){type=(type||"fx")+"queue";var q=jQuery.data(elem,type,undefined,true);if(data){if(!q||jQuery.isArray(data)){q=jQuery.data(elem,type,jQuery.makeArray(data),true)}else{q.push(data)}}return q||[]}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),fn=queue.shift(),defer;if(fn==="inprogress"){fn=queue.shift()}if(fn){if(type==="fx"){queue.unshift("inprogress")}fn.call(elem,function(){jQuery.dequeue(elem,type)})}if(!queue.length){jQuery.removeData(elem,type+"queue",true);handleQueueMarkDefer(elem,type,"queue")}}});jQuery.fn.extend({queue:function(type,data){if(typeof type!=="string"){data=type;type="fx"}if(data===undefined){return jQuery.queue(this[0],type)}return this.each(function(){var queue=jQuery.queue(this,type,data);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type)}})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},delay:function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(){var elem=this;setTimeout(function(){jQuery.dequeue(elem,type)},time)})},clearQueue:function(type){return this.queue(type||"fx",[])},promise:function(type,object){if(typeof type!=="string"){object=type;type=undefined}type=type||"fx";var defer=jQuery.Deferred(),elements=this,i=elements.length,count=1,deferDataKey=type+"defer",queueDataKey=type+"queue",markDataKey=type+"mark",tmp;function resolve(){if(!(--count)){defer.resolveWith(elements,[elements])}}while(i--){if((tmp=jQuery.data(elements[i],deferDataKey,undefined,true)||(jQuery.data(elements[i],queueDataKey,undefined,true)||jQuery.data(elements[i],markDataKey,undefined,true))&&jQuery.data(elements[i],deferDataKey,jQuery._Deferred(),true))){count++;tmp.done(resolve)}}resolve();return defer.promise()}});var rclass=/[\n\t\r]/g,rspace=/\s+/,rreturn=/\r/g,rtype=/^(?:button|input)$/i,rfocusable=/^(?:button|input|object|select|textarea)$/i,rclickable=/^a(?:rea)?$/i,rboolean=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,rinvalidChar=/\:/,formHook,boolHook;jQuery.fn.extend({attr:function(name,value){return jQuery.access(this,name,value,true,jQuery.attr)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})},prop:function(name,value){return jQuery.access(this,name,value,true,jQuery.prop)},removeProp:function(name){name=jQuery.propFix[name]||name;return this.each(function(){try{this[name]=undefined;delete this[name]}catch(e){}})},addClass:function(value){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.addClass(value.call(this,i,self.attr("class")||""))})}if(value&&typeof value==="string"){var classNames=(value||"").split(rspace);for(var i=0,l=this.length;i<l;i++){var elem=this[i];if(elem.nodeType===1){if(!elem.className){elem.className=value}else{var className=" "+elem.className+" ",setClass=elem.className;for(var c=0,cl=classNames.length;c<cl;c++){if(className.indexOf(" "+classNames[c]+" ")<0){setClass+=" "+classNames[c]}}elem.className=jQuery.trim(setClass)}}}}return this},removeClass:function(value){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.removeClass(value.call(this,i,self.attr("class")))})}if((value&&typeof value==="string")||value===undefined){var classNames=(value||"").split(rspace);for(var i=0,l=this.length;i<l;i++){var elem=this[i];if(elem.nodeType===1&&elem.className){if(value){var className=(" "+elem.className+" ").replace(rclass," ");for(var c=0,cl=classNames.length;c<cl;c++){className=className.replace(" "+classNames[c]+" "," ")}elem.className=jQuery.trim(className)}else{elem.className=""}}}}return this},toggleClass:function(value,stateVal){var type=typeof value,isBool=typeof stateVal==="boolean";if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.toggleClass(value.call(this,i,self.attr("class"),stateVal),stateVal)})}return this.each(function(){if(type==="string"){var className,i=0,self=jQuery(this),state=stateVal,classNames=value.split(rspace);while((className=classNames[i++])){state=isBool?state:!self.hasClass(className);self[state?"addClass":"removeClass"](className)}}else{if(type==="undefined"||type==="boolean"){if(this.className){jQuery._data(this,"__className__",this.className)}this.className=this.className||value===false?"":jQuery._data(this,"__className__")||""}}})},hasClass:function(selector){var className=" "+selector+" ";for(var i=0,l=this.length;i<l;i++){if((" "+this[i].className+" ").replace(rclass," ").indexOf(className)>-1){return true}}return false},val:function(value){var hooks,ret,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.nodeName.toLowerCase()]||jQuery.valHooks[elem.type];if(hooks&&"get" in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret}return(elem.value||"").replace(rreturn,"")}return undefined}var isFunction=jQuery.isFunction(value);return this.each(function(i){var self=jQuery(this),val;if(this.nodeType!==1){return }if(isFunction){val=value.call(this,i,self.val())}else{val=value}if(val==null){val=""}else{if(typeof val==="number"){val+=""}else{if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+""})}}}hooks=jQuery.valHooks[this.nodeName.toLowerCase()]||jQuery.valHooks[this.type];if(!hooks||!("set" in hooks)||hooks.set(this,val,"value")===undefined){this.value=val}})}});jQuery.extend({valHooks:{option:{get:function(elem){var val=elem.attributes.value;return !val||val.specified?elem.value:elem.text}},select:{get:function(elem){var value,index=elem.selectedIndex,values=[],options=elem.options,one=elem.type==="select-one";if(index<0){return null}for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected&&(jQuery.support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value}values.push(value)}}if(one&&!values.length&&options.length){return jQuery(options[index]).val()}return values},set:function(elem,value){var values=jQuery.makeArray(value);jQuery(elem).find("option").each(function(){this.selected=jQuery.inArray(jQuery(this).val(),values)>=0});if(!values.length){elem.selectedIndex=-1}return values}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attrFix:{tabindex:"tabIndex"},attr:function(elem,name,value,pass){var nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return undefined}if(pass&&name in jQuery.attrFn){return jQuery(elem)[name](value)}if(!("getAttribute" in elem)){return jQuery.prop(elem,name,value)}var ret,hooks,notxml=nType!==1||!jQuery.isXMLDoc(elem);name=notxml&&jQuery.attrFix[name]||name;hooks=jQuery.attrHooks[name];if(!hooks){if(rboolean.test(name)&&(typeof value==="boolean"||value===undefined||value.toLowerCase()===name.toLowerCase())){hooks=boolHook}else{if(formHook&&(jQuery.nodeName(elem,"form")||rinvalidChar.test(name))){hooks=formHook}}}if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);return undefined}else{if(hooks&&"set" in hooks&&notxml&&(ret=hooks.set(elem,value,name))!==undefined){return ret}else{elem.setAttribute(name,""+value);return value}}}else{if(hooks&&"get" in hooks&&notxml){return hooks.get(elem,name)}else{ret=elem.getAttribute(name);return ret===null?undefined:ret}}},removeAttr:function(elem,name){var propName;if(elem.nodeType===1){name=jQuery.attrFix[name]||name;if(jQuery.support.getSetAttribute){elem.removeAttribute(name)}else{jQuery.attr(elem,name,"");elem.removeAttributeNode(elem.getAttributeNode(name))}if(rboolean.test(name)&&(propName=jQuery.propFix[name]||name) in elem){elem[propName]=false}}},attrHooks:{type:{set:function(elem,value){if(rtype.test(elem.nodeName)&&elem.parentNode){jQuery.error("type property can't be changed")}else{if(!jQuery.support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val}return value}}}},tabIndex:{get:function(elem){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?parseInt(attributeNode.value,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:undefined}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(elem,name,value){var nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return undefined}var ret,hooks,notxml=nType!==1||!jQuery.isXMLDoc(elem);name=notxml&&jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];if(value!==undefined){if(hooks&&"set" in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret}else{return(elem[name]=value)}}else{if(hooks&&"get" in hooks&&(ret=hooks.get(elem,name))!==undefined){return ret}else{return elem[name]}}},propHooks:{}});boolHook={get:function(elem,name){return elem[jQuery.propFix[name]||name]?name.toLowerCase():undefined},set:function(elem,value,name){var propName;if(value===false){jQuery.removeAttr(elem,name)}else{propName=jQuery.propFix[name]||name;if(propName in elem){elem[propName]=value}elem.setAttribute(name,name.toLowerCase())}return name}};jQuery.attrHooks.value={get:function(elem,name){if(formHook&&jQuery.nodeName(elem,"button")){return formHook.get(elem,name)}return elem.value},set:function(elem,value,name){if(formHook&&jQuery.nodeName(elem,"button")){return formHook.set(elem,value,name)}elem.value=value}};if(!jQuery.support.getSetAttribute){jQuery.attrFix=jQuery.propFix;formHook=jQuery.attrHooks.name=jQuery.valHooks.button={get:function(elem,name){var ret;ret=elem.getAttributeNode(name);return ret&&ret.nodeValue!==""?ret.nodeValue:undefined},set:function(elem,value,name){var ret=elem.getAttributeNode(name);if(ret){ret.nodeValue=value;return value}}};jQuery.each(["width","height"],function(i,name){jQuery.attrHooks[name]=jQuery.extend(jQuery.attrHooks[name],{set:function(elem,value){if(value===""){elem.setAttribute(name,"auto");return value}}})})}if(!jQuery.support.hrefNormalized){jQuery.each(["href","src","width","height"],function(i,name){jQuery.attrHooks[name]=jQuery.extend(jQuery.attrHooks[name],{get:function(elem){var ret=elem.getAttribute(name,2);return ret===null?undefined:ret}})})}if(!jQuery.support.style){jQuery.attrHooks.style={get:function(elem){return elem.style.cssText.toLowerCase()||undefined},set:function(elem,value){return(elem.style.cssText=""+value)}}}if(!jQuery.support.optSelected){jQuery.propHooks.selected=jQuery.extend(jQuery.propHooks.selected,{get:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex}}}})}if(!jQuery.support.checkOn){jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={get:function(elem){return elem.getAttribute("value")===null?"on":elem.value}}})}jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]=jQuery.extend(jQuery.valHooks[this],{set:function(elem,value){if(jQuery.isArray(value)){return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0)}}})});var hasOwn=Object.prototype.hasOwnProperty,rnamespaces=/\.(.*)$/,rformElems=/^(?:textarea|input|select)$/i,rperiod=/\./g,rspaces=/ /g,rescape=/[^\w\s.|`]/g,fcleanup=function(nm){return nm.replace(rescape,"\\$&")};jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType===3||elem.nodeType===8){return }if(handler===false){handler=returnFalse}else{if(!handler){return }}var handleObjIn,handleObj;if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler}if(!handler.guid){handler.guid=jQuery.guid++}var elemData=jQuery._data(elem);if(!elemData){return }var events=elemData.events,eventHandle=elemData.handle;if(!events){elemData.events=events={}}if(!eventHandle){elemData.handle=eventHandle=function(e){return typeof jQuery!=="undefined"&&(!e||jQuery.event.triggered!==e.type)?jQuery.event.handle.apply(eventHandle.elem,arguments):undefined}}eventHandle.elem=elem;types=types.split(" ");var type,i=0,namespaces;while((type=types[i++])){handleObj=handleObjIn?jQuery.extend({},handleObjIn):{handler:handler,data:data};if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();handleObj.namespace=namespaces.slice(0).sort().join(".")}else{namespaces=[];handleObj.namespace=""}handleObj.type=type;if(!handleObj.guid){handleObj.guid=handler.guid}var handlers=events[type],special=jQuery.event.special[type]||{};if(!handlers){handlers=events[type]=[];if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false)}else{if(elem.attachEvent){elem.attachEvent("on"+type,eventHandle)}}}}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid}}handlers.push(handleObj);jQuery.event.global[type]=true}elem=null},global:{},remove:function(elem,types,handler,pos){if(elem.nodeType===3||elem.nodeType===8){return }if(handler===false){handler=returnFalse}var ret,type,fn,j,i=0,all,namespaces,namespace,special,eventType,handleObj,origType,elemData=jQuery.hasData(elem)&&jQuery._data(elem),events=elemData&&elemData.events;if(!elemData||!events){return }if(types&&types.type){handler=types.handler;types=types.type}if(!types||typeof types==="string"&&types.charAt(0)==="."){types=types||"";for(type in events){jQuery.event.remove(elem,type+types)}return }types=types.split(" ");while((type=types[i++])){origType=type;handleObj=null;all=type.indexOf(".")<0;namespaces=[];if(!all){namespaces=type.split(".");type=namespaces.shift();namespace=new RegExp("(^|\\.)"+jQuery.map(namespaces.slice(0).sort(),fcleanup).join("\\.(?:.*\\.)?")+"(\\.|$)")}eventType=events[type];if(!eventType){continue}if(!handler){for(j=0;j<eventType.length;j++){handleObj=eventType[j];if(all||namespace.test(handleObj.namespace)){jQuery.event.remove(elem,origType,handleObj.handler,j);eventType.splice(j--,1)}}continue}special=jQuery.event.special[type]||{};for(j=pos||0;j<eventType.length;j++){handleObj=eventType[j];if(handler.guid===handleObj.guid){if(all||namespace.test(handleObj.namespace)){if(pos==null){eventType.splice(j--,1)}if(special.remove){special.remove.call(elem,handleObj)}}if(pos!=null){break}}}if(eventType.length===0||pos!=null&&eventType.length===1){if(!special.teardown||special.teardown.call(elem,namespaces)===false){jQuery.removeEvent(elem,type,elemData.handle)}ret=null;delete events[type]}}if(jQuery.isEmptyObject(events)){var handle=elemData.handle;if(handle){handle.elem=null}delete elemData.events;delete elemData.handle;if(jQuery.isEmptyObject(elemData)){jQuery.removeData(elem,undefined,true)}}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(event,data,elem,onlyHandlers){var type=event.type||event,namespaces=[],exclusive;if(type.indexOf("!")>=0){type=type.slice(0,-1);exclusive=true}if(type.indexOf(".")>=0){namespaces=type.split(".");type=namespaces.shift();namespaces.sort()}if((!elem||jQuery.event.customEvent[type])&&!jQuery.event.global[type]){return }event=typeof event==="object"?event[jQuery.expando]?event:new jQuery.Event(type,event):new jQuery.Event(type);event.type=type;event.exclusive=exclusive;event.namespace=namespaces.join(".");event.namespace_re=new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.)?")+"(\\.|$)");if(onlyHandlers||!elem){event.preventDefault();event.stopPropagation()}if(!elem){jQuery.each(jQuery.cache,function(){var internalKey=jQuery.expando,internalCache=this[internalKey];if(internalCache&&internalCache.events&&internalCache.events[type]){jQuery.event.trigger(event,data,internalCache.handle.elem)}});return }if(elem.nodeType===3||elem.nodeType===8){return }event.result=undefined;event.target=elem;data=data?jQuery.makeArray(data):[];data.unshift(event);var cur=elem,ontype=type.indexOf(":")<0?"on"+type:"";do{var handle=jQuery._data(cur,"handle");event.currentTarget=cur;if(handle){handle.apply(cur,data)}if(ontype&&jQuery.acceptData(cur)&&cur[ontype]&&cur[ontype].apply(cur,data)===false){event.result=false;event.preventDefault()}cur=cur.parentNode||cur.ownerDocument||cur===event.target.ownerDocument&&window}while(cur&&!event.isPropagationStopped());if(!event.isDefaultPrevented()){var old,special=jQuery.event.special[type]||{};if((!special._default||special._default.call(elem.ownerDocument,event)===false)&&!(type==="click"&&jQuery.nodeName(elem,"a"))&&jQuery.acceptData(elem)){try{if(ontype&&elem[type]){old=elem[ontype];if(old){elem[ontype]=null}jQuery.event.triggered=type;elem[type]()}}catch(ieError){}if(old){elem[ontype]=old}jQuery.event.triggered=undefined}}return event.result},handle:function(event){event=jQuery.event.fix(event||window.event);var handlers=((jQuery._data(this,"events")||{})[event.type]||[]).slice(0),run_all=!event.exclusive&&!event.namespace,args=Array.prototype.slice.call(arguments,0);args[0]=event;event.currentTarget=this;for(var j=0,l=handlers.length;j<l;j++){var handleObj=handlers[j];if(run_all||event.namespace_re.test(handleObj.namespace)){event.handler=handleObj.handler;event.data=handleObj.data;event.handleObj=handleObj;var ret=handleObj.handler.apply(this,args);if(ret!==undefined){event.result=ret;if(ret===false){event.preventDefault();event.stopPropagation()}}if(event.isImmediatePropagationStopped()){break}}}return event.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(event){if(event[jQuery.expando]){return event}var originalEvent=event;event=jQuery.Event(originalEvent);for(var i=this.props.length,prop;i;){prop=this.props[--i];event[prop]=originalEvent[prop]}if(!event.target){event.target=event.srcElement||document}if(event.target.nodeType===3){event.target=event.target.parentNode}if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement===event.target?event.toElement:event.fromElement}if(event.pageX==null&&event.clientX!=null){var eventDocument=event.target.ownerDocument||document,doc=eventDocument.documentElement,body=eventDocument.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}if(event.which==null&&(event.charCode!=null||event.keyCode!=null)){event.which=event.charCode!=null?event.charCode:event.keyCode}if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey}if(!event.which&&event.button!==undefined){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)))}return event},guid:100000000,proxy:jQuery.proxy,special:{ready:{setup:jQuery.bindReady,teardown:jQuery.noop},live:{add:function(handleObj){jQuery.event.add(this,liveConvert(handleObj.origType,handleObj.selector),jQuery.extend({},handleObj,{handler:liveHandler,guid:handleObj.handler.guid}))},remove:function(handleObj){jQuery.event.remove(this,liveConvert(handleObj.origType,handleObj.selector),handleObj)}},beforeunload:{setup:function(data,namespaces,eventHandle){if(jQuery.isWindow(this)){this.onbeforeunload=eventHandle}},teardown:function(namespaces,eventHandle){if(this.onbeforeunload===eventHandle){this.onbeforeunload=null}}}}};jQuery.removeEvent=document.removeEventListener?function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false)}}:function(elem,type,handle){if(elem.detachEvent){elem.detachEvent("on"+type,handle)}};jQuery.Event=function(src,props){if(!this.preventDefault){return new jQuery.Event(src,props)}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=(src.defaultPrevented||src.returnValue===false||src.getPreventDefault&&src.getPreventDefault())?returnTrue:returnFalse}else{this.type=src}if(props){jQuery.extend(this,props)}this.timeStamp=jQuery.now();this[jQuery.expando]=true};function returnFalse(){return false}function returnTrue(){return true}jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e){return }if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e){return }if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation()},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var withinElement=function(event){var parent=event.relatedTarget;event.type=event.data;try{if(parent&&parent!==document&&!parent.parentNode){return }while(parent&&parent!==this){parent=parent.parentNode}if(parent!==this){jQuery.event.handle.apply(this,arguments)}}catch(e){}},delegate=function(event){event.type=event.data;jQuery.event.handle.apply(this,arguments)};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(orig,fix){jQuery.event.special[orig]={setup:function(data){jQuery.event.add(this,fix,data&&data.selector?delegate:withinElement,orig)},teardown:function(data){jQuery.event.remove(this,fix,data&&data.selector?delegate:withinElement)}}});if(!jQuery.support.submitBubbles){jQuery.event.special.submit={setup:function(data,namespaces){if(!jQuery.nodeName(this,"form")){jQuery.event.add(this,"click.specialSubmit",function(e){var elem=e.target,type=elem.type;if((type==="submit"||type==="image")&&jQuery(elem).closest("form").length){trigger("submit",this,arguments)}});jQuery.event.add(this,"keypress.specialSubmit",function(e){var elem=e.target,type=elem.type;if((type==="text"||type==="password")&&jQuery(elem).closest("form").length&&e.keyCode===13){trigger("submit",this,arguments)}})}else{return false}},teardown:function(namespaces){jQuery.event.remove(this,".specialSubmit")}}}if(!jQuery.support.changeBubbles){var changeFilters,getVal=function(elem){var type=elem.type,val=elem.value;if(type==="radio"||type==="checkbox"){val=elem.checked}else{if(type==="select-multiple"){val=elem.selectedIndex>-1?jQuery.map(elem.options,function(elem){return elem.selected}).join("-"):""}else{if(jQuery.nodeName(elem,"select")){val=elem.selectedIndex}}}return val},testChange=function testChange(e){var elem=e.target,data,val;if(!rformElems.test(elem.nodeName)||elem.readOnly){return }data=jQuery._data(elem,"_change_data");val=getVal(elem);if(e.type!=="focusout"||elem.type!=="radio"){jQuery._data(elem,"_change_data",val)}if(data===undefined||val===data){return }if(data!=null||val){e.type="change";e.liveFired=undefined;jQuery.event.trigger(e,arguments[1],elem)}};jQuery.event.special.change={filters:{focusout:testChange,beforedeactivate:testChange,click:function(e){var elem=e.target,type=jQuery.nodeName(elem,"input")?elem.type:"";if(type==="radio"||type==="checkbox"||jQuery.nodeName(elem,"select")){testChange.call(this,e)}},keydown:function(e){var elem=e.target,type=jQuery.nodeName(elem,"input")?elem.type:"";if((e.keyCode===13&&!jQuery.nodeName(elem,"textarea"))||(e.keyCode===32&&(type==="checkbox"||type==="radio"))||type==="select-multiple"){testChange.call(this,e)}},beforeactivate:function(e){var elem=e.target;jQuery._data(elem,"_change_data",getVal(elem))}},setup:function(data,namespaces){if(this.type==="file"){return false}for(var type in changeFilters){jQuery.event.add(this,type+".specialChange",changeFilters[type])}return rformElems.test(this.nodeName)},teardown:function(namespaces){jQuery.event.remove(this,".specialChange");return rformElems.test(this.nodeName)}};changeFilters=jQuery.event.special.change.filters;changeFilters.focus=changeFilters.beforeactivate}function trigger(type,elem,args){var event=jQuery.extend({},args[0]);event.type=type;event.originalEvent={};event.liveFired=undefined;jQuery.event.handle.call(elem,event);if(event.isDefaultPrevented()){args[0].preventDefault()}}if(!jQuery.support.focusinBubbles){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var attaches=0;jQuery.event.special[fix]={setup:function(){if(attaches++===0){document.addEventListener(orig,handler,true)}},teardown:function(){if(--attaches===0){document.removeEventListener(orig,handler,true)}}};function handler(donor){var e=jQuery.event.fix(donor);e.type=fix;e.originalEvent={};jQuery.event.trigger(e,null,e.target);if(e.isDefaultPrevented()){donor.preventDefault()}}})}jQuery.each(["bind","one"],function(i,name){jQuery.fn[name]=function(type,data,fn){var handler;if(typeof type==="object"){for(var key in type){this[name](key,data,type[key],fn)}return this}if(arguments.length===2||data===false){fn=data;data=undefined}if(name==="one"){handler=function(event){jQuery(this).unbind(event,handler);return fn.apply(this,arguments)};handler.guid=fn.guid||jQuery.guid++}else{handler=fn}if(type==="unload"&&name!=="one"){this.one(type,data,fn)}else{for(var i=0,l=this.length;i<l;i++){jQuery.event.add(this[i],type,handler,data)}}return this}});jQuery.fn.extend({unbind:function(type,fn){if(typeof type==="object"&&!type.preventDefault){for(var key in type){this.unbind(key,type[key])}}else{for(var i=0,l=this.length;i<l;i++){jQuery.event.remove(this[i],type,fn)}}return this},delegate:function(selector,types,data,fn){return this.live(types,data,fn,selector)},undelegate:function(selector,types,fn){if(arguments.length===0){return this.unbind("live")}else{return this.die(types,null,fn,selector)}},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){if(this[0]){return jQuery.event.trigger(type,data,this[0],true)}},toggle:function(fn){var args=arguments,guid=fn.guid||jQuery.guid++,i=0,toggler=function(event){var lastToggle=(jQuery.data(this,"lastToggle"+fn.guid)||0)%i;jQuery.data(this,"lastToggle"+fn.guid,lastToggle+1);event.preventDefault();return args[lastToggle].apply(this,arguments)||false};toggler.guid=guid;while(i<args.length){args[i++].guid=guid}return this.click(toggler)},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)}});var liveMap={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};jQuery.each(["live","die"],function(i,name){jQuery.fn[name]=function(types,data,fn,origSelector){var type,i=0,match,namespaces,preType,selector=origSelector||this.selector,context=origSelector?this:jQuery(this.context);if(typeof types==="object"&&!types.preventDefault){for(var key in types){context[name](key,data,types[key],selector)}return this}if(name==="die"&&!types&&origSelector&&origSelector.charAt(0)==="."){context.unbind(origSelector);return this}if(data===false||jQuery.isFunction(data)){fn=data||returnFalse;data=undefined}types=(types||"").split(" ");while((type=types[i++])!=null){match=rnamespaces.exec(type);namespaces="";if(match){namespaces=match[0];type=type.replace(rnamespaces,"")}if(type==="hover"){types.push("mouseenter"+namespaces,"mouseleave"+namespaces);continue}preType=type;if(liveMap[type]){types.push(liveMap[type]+namespaces);type=type+namespaces}else{type=(liveMap[type]||type)+namespaces}if(name==="live"){for(var j=0,l=context.length;j<l;j++){jQuery.event.add(context[j],"live."+liveConvert(type,selector),{data:data,selector:selector,handler:fn,origType:type,origHandler:fn,preType:preType})}}else{context.unbind("live."+liveConvert(type,selector),fn)}}return this}});function liveHandler(event){var stop,maxLevel,related,match,handleObj,elem,j,i,l,data,close,namespace,ret,elems=[],selectors=[],events=jQuery._data(this,"events");if(event.liveFired===this||!events||!events.live||event.target.disabled||event.button&&event.type==="click"){return }if(event.namespace){namespace=new RegExp("(^|\\.)"+event.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")}event.liveFired=this;var live=events.live.slice(0);for(j=0;j<live.length;j++){handleObj=live[j];if(handleObj.origType.replace(rnamespaces,"")===event.type){selectors.push(handleObj.selector)}else{live.splice(j--,1)}}match=jQuery(event.target).closest(selectors,event.currentTarget);for(i=0,l=match.length;i<l;i++){close=match[i];for(j=0;j<live.length;j++){handleObj=live[j];if(close.selector===handleObj.selector&&(!namespace||namespace.test(handleObj.namespace))&&!close.elem.disabled){elem=close.elem;related=null;if(handleObj.preType==="mouseenter"||handleObj.preType==="mouseleave"){event.type=handleObj.preType;related=jQuery(event.relatedTarget).closest(handleObj.selector)[0];if(related&&jQuery.contains(elem,related)){related=elem}}if(!related||related!==elem){elems.push({elem:elem,handleObj:handleObj,level:close.level})}}}}for(i=0,l=elems.length;i<l;i++){match=elems[i];if(maxLevel&&match.level>maxLevel){break}event.currentTarget=match.elem;event.data=match.handleObj.data;event.handleObj=match.handleObj;ret=match.handleObj.origHandler.apply(match.elem,arguments);if(ret===false||event.isPropagationStopped()){maxLevel=match.level;if(ret===false){stop=false}if(event.isImmediatePropagationStopped()){break}}}return stop}function liveConvert(type,selector){return(type&&type!=="*"?type+".":"")+selector.replace(rperiod,"`").replace(rspaces,"&")}jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){if(fn==null){fn=data;data=null}return arguments.length>0?this.bind(name,data,fn):this.trigger(name)};if(jQuery.attrFn){jQuery.attrFn[name]=true}});
 /*
- * Sizzle CSS Selector Engine - v0.9.3
- *  Copyright 2009, The Dojo Foundation
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
  *  Released under the MIT, BSD, and GPL Licenses.
  *  More information: http://sizzlejs.com/
  */
-(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,done=0,toString=Object.prototype.toString;var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;if(context.nodeType!==1&&context.nodeType!==9){return[]}if(!selector||typeof selector!=="string"){return results}var parts=[],m,set,checkSet,check,mode,extra,prune=true;chunker.lastIndex=0;while((m=chunker.exec(selector))!==null){parts.push(m[1]);if(m[2]){extra=RegExp.rightContext;break}}if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context)}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector]){selector+=parts.shift()}set=posProcess(selector,set)}}}else{var ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&context.parentNode?context.parentNode:context,isXML(context));set=Sizzle.filter(ret.expr,ret.set);if(parts.length>0){checkSet=makeArray(set)}else{prune=false}while(parts.length){var cur=parts.pop(),pop=cur;if(!Expr.relative[cur]){cur=""}else{pop=parts.pop()}if(pop==null){pop=context}Expr.relative[cur](checkSet,pop,isXML(context))}}if(!checkSet){checkSet=set}if(!checkSet){throw"Syntax error, unrecognized expression: "+(cur||selector)}if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet)}else{if(context.nodeType===1){for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context,checkSet[i]))){results.push(set[i])}}}else{for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i])}}}}}else{makeArray(checkSet,results)}if(extra){Sizzle(extra,context,results,seed);if(sortOrder){hasDuplicate=false;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1)}}}}}return results};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set)};Sizzle.find=function(expr,context,isXML){var set,match;if(!expr){return[]}for(var i=0,l=Expr.order.length;i<l;i++){var type=Expr.order[i],match;if((match=Expr.match[type].exec(expr))){var left=RegExp.leftContext;if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(/\\/g,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break}}}}if(!set){set=context.getElementsByTagName("*")}return{set:set,expr:expr}};Sizzle.filter=function(expr,set,inplace,not){var old=expr,result=[],curLoop=set,match,anyFound,isXMLFilter=set&&set[0]&&isXML(set[0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.match[type].exec(expr))!=null){var filter=Expr.filter[type],found,item;anyFound=false;if(curLoop==result){result=[]}if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true}else{if(match===true){continue}}}if(match){for(var i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true}else{curLoop[i]=false}}else{if(pass){result.push(item);anyFound=true}}}}}if(found!==undefined){if(!inplace){curLoop=result}expr=expr.replace(Expr.match[type],"");if(!anyFound){return[]}break}}}if(expr==old){if(anyFound==null){throw"Syntax error, unrecognized expression: "+expr}else{break}}old=expr}return curLoop};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href")}},relative:{"+":function(checkSet,part,isXML){var isPartStr=typeof part==="string",isTag=isPartStr&&!/\W/.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag&&!isXML){part=part.toUpperCase()}for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}checkSet[i]=isPartStrNotTag||elem&&elem.nodeName===part?elem||false:elem===part}}if(isPartStrNotTag){Sizzle.filter(part,checkSet,true)}},">":function(checkSet,part,isXML){var isPartStr=typeof part==="string";if(isPartStr&&!/\W/.test(part)){part=isXML?part:part.toUpperCase();for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName===part?parent:false}}}else{for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part}}if(isPartStr){Sizzle.filter(part,checkSet,true)}}},"":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck}checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML)},"~":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck}checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML)}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?[m]:[]}},NAME:function(match,context,isXML){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i])}}return ret.length===0?null:ret}},TAG:function(match,context){return context.getElementsByTagName(match[1])}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(/\\/g,"")+" ";if(isXML){return match}for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").indexOf(match)>=0)){if(!inplace){result.push(elem)}}else{if(inplace){curLoop[i]=false}}}}return false},ID:function(match){return match[1].replace(/\\/g,"")},TAG:function(match,curLoop){for(var i=0;curLoop[i]===false;i++){}return curLoop[i]&&isXML(curLoop[i])?match[1]:match[1].toUpperCase()},CHILD:function(match){if(match[1]=="nth"){var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2]=="even"&&"2n"||match[2]=="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0}match[0]=done++;return match},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1].replace(/\\/g,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name]}if(match[2]==="~="){match[4]=" "+match[4]+" "}return match},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if(match[3].match(chunker).length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop)}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret)}return false}}else{if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true}}return match},POS:function(match){match.unshift(true);return match}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden"},disabled:function(elem){return elem.disabled===true},checked:function(elem){return elem.checked===true},selected:function(elem){elem.parentNode.selectedIndex;return elem.selected===true},parent:function(elem){return !!elem.firstChild},empty:function(elem){return !elem.firstChild},has:function(elem,i,match){return !!Sizzle(match[3],elem).length},header:function(elem){return/h\d/i.test(elem.nodeName)},text:function(elem){return"text"===elem.type},radio:function(elem){return"radio"===elem.type},checkbox:function(elem){return"checkbox"===elem.type},file:function(elem){return"file"===elem.type},password:function(elem){return"password"===elem.type},submit:function(elem){return"submit"===elem.type},image:function(elem){return"image"===elem.type},reset:function(elem){return"reset"===elem.type},button:function(elem){return"button"===elem.type||elem.nodeName.toUpperCase()==="BUTTON"},input:function(elem){return/input|select|textarea|button/i.test(elem.nodeName)}},setFilters:{first:function(elem,i){return i===0},last:function(elem,i,match,array){return i===array.length-1},even:function(elem,i){return i%2===0},odd:function(elem,i){return i%2===1},lt:function(elem,i,match){return i<match[3]-0},gt:function(elem,i,match){return i>match[3]-0},nth:function(elem,i,match){return match[3]-0==i},eq:function(elem,i,match){return match[3]-0==i}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array)}else{if(name==="contains"){return(elem.textContent||elem.innerText||"").indexOf(match[3])>=0}else{if(name==="not"){var not=match[3];for(var i=0,l=not.length;i<l;i++){if(not[i]===elem){return false}}return true}}}},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case"only":case"first":while(node=node.previousSibling){if(node.nodeType===1){return false}}if(type=="first"){return true}node=elem;case"last":while(node=node.nextSibling){if(node.nodeType===1){return false}}return true;case"nth":var first=match[2],last=match[3];if(first==1&&last==0){return true}var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count}}parent.sizcache=doneName}var diff=elem.nodeIndex-last;if(first==0){return diff==0}else{return(diff%first==0&&diff/first>=0)}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName===match},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!=check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array)}}}};var origPOS=Expr.match.POS;for(var type in Expr.match){Expr.match[type]=RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var makeArray=function(array,results){array=Array.prototype.slice.call(array);if(results){results.push.apply(results,array);return results}return array};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(e){makeArray=function(array,results){var ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array)}else{if(typeof array.length==="number"){for(var i=0,l=array.length;i<l;i++){ret.push(array[i])}}else{for(var i=0;array[i];i++){ret.push(array[i])}}}return ret}}var sortOrder;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){var ret=a.compareDocumentPosition(b)&4?-1:a===b?0:1;if(ret===0){hasDuplicate=true}return ret}}else{if("sourceIndex" in document.documentElement){sortOrder=function(a,b){var ret=a.sourceIndex-b.sourceIndex;if(ret===0){hasDuplicate=true}return ret}}else{if(document.createRange){sortOrder=function(a,b){var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.selectNode(a);aRange.collapse(true);bRange.selectNode(b);bRange.collapse(true);var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);if(ret===0){hasDuplicate=true}return ret}}}}(function(){var form=document.createElement("form"),id="script"+(new Date).getTime();form.innerHTML="<input name='"+id+"'/>";var root=document.documentElement;root.insertBefore(form,root.firstChild);if(!!document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[]}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match}}root.removeChild(form)})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i])}}results=tmp}return results}}div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div");div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return }Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&context.nodeType===9&&!isXML(context)){try{return makeArray(context.querySelectorAll(query),extra)}catch(e){}}return oldSizzle(query,context,extra,seed)};Sizzle.find=oldSizzle.find;Sizzle.filter=oldSizzle.filter;Sizzle.selectors=oldSizzle.selectors;Sizzle.matches=oldSizzle.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(div.getElementsByClassName("e").length===0){return }div.lastChild.className="e";if(div.getElementsByClassName("e").length===1){return }Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1])}}})()}function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i}elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;elem.sizset=i}if(elem.nodeName===cur){match=elem;break}elem=elem[dir]}checkSet[i]=match}}}function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i}elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;elem.sizset=i}if(typeof cur!=="string"){if(elem===cur){match=true;break}}else{if(Sizzle.filter(cur,[elem]).length>0){match=elem;break}}}elem=elem[dir]}checkSet[i]=match}}}var contains=document.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)&16}:function(a,b){return a!==b&&(a.contains?a.contains(b):true)};var isXML=function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&isXML(elem.ownerDocument)};var posProcess=function(selector,context){var tmpSet=[],later="",match,root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"")}selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet)}return Sizzle.filter(later,tmpSet)};jQuery.find=Sizzle;jQuery.filter=Sizzle.filter;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.filters;Sizzle.selectors.filters.hidden=function(elem){return elem.offsetWidth===0||elem.offsetHeight===0};Sizzle.selectors.filters.visible=function(elem){return elem.offsetWidth>0||elem.offsetHeight>0};Sizzle.selectors.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length};jQuery.multiFilter=function(expr,elems,not){if(not){expr=":not("+expr+")"}return Sizzle.matches(expr,elems)};jQuery.dir=function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1){matched.push(cur)}cur=cur[dir]}return matched};jQuery.nth=function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir]){if(cur.nodeType==1&&++num==result){break}}return cur};jQuery.sibling=function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem){r.push(n)}}return r};return ;window.Sizzle=Sizzle})();jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8){return }if(elem.setInterval&&elem!=window){elem=window}if(!handler.guid){handler.guid=this.guid++}if(data!==undefined){var fn=handler;handler=this.proxy(fn);handler.data=data}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){return typeof jQuery!=="undefined"&&!jQuery.event.triggered?jQuery.event.handle.apply(arguments.callee.elem,arguments):undefined});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();handler.type=namespaces.slice().sort().join(".");var handlers=events[type];if(jQuery.event.specialAll[type]){jQuery.event.specialAll[type].setup.call(elem,data,namespaces)}if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem,data,namespaces)===false){if(elem.addEventListener){elem.addEventListener(type,handle,false)}else{if(elem.attachEvent){elem.attachEvent("on"+type,handle)}}}}handlers[handler.guid]=handler;jQuery.event.global[type]=true});elem=null},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8){return }var events=jQuery.data(elem,"events"),ret,index;if(events){if(types===undefined||(typeof types==="string"&&types.charAt(0)==".")){for(var type in events){this.remove(elem,type+(types||""))}}else{if(types.type){handler=types.handler;types=types.type}jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");if(events[type]){if(handler){delete events[type][handler.guid]}else{for(var handle in events[type]){if(namespace.test(events[type][handle].type)){delete events[type][handle]}}}if(jQuery.event.specialAll[type]){jQuery.event.specialAll[type].teardown.call(elem,namespaces)}for(ret in events[type]){break}if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem,namespaces)===false){if(elem.removeEventListener){elem.removeEventListener(type,jQuery.data(elem,"handle"),false)}else{if(elem.detachEvent){elem.detachEvent("on"+type,jQuery.data(elem,"handle"))}}}ret=null;delete events[type]}}})}for(ret in events){break}if(!ret){var handle=jQuery.data(elem,"handle");if(handle){handle.elem=null}jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle")}}},trigger:function(event,data,elem,bubbling){var type=event.type||event;if(!bubbling){event=typeof event==="object"?event[expando]?event:jQuery.extend(jQuery.Event(type),event):jQuery.Event(type);if(type.indexOf("!")>=0){event.type=type=type.slice(0,-1);event.exclusive=true}if(!elem){event.stopPropagation();if(this.global[type]){jQuery.each(jQuery.cache,function(){if(this.events&&this.events[type]){jQuery.event.trigger(event,data,this.handle.elem)}})}}if(!elem||elem.nodeType==3||elem.nodeType==8){return undefined}event.result=undefined;event.target=elem;data=jQuery.makeArray(data);data.unshift(event)}event.currentTarget=elem;var handle=jQuery.data(elem,"handle");if(handle){handle.apply(elem,data)}if((!elem[type]||(jQuery.nodeName(elem,"a")&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false){event.result=false}if(!bubbling&&elem[type]&&!event.isDefaultPrevented()&&!(jQuery.nodeName(elem,"a")&&type=="click")){this.triggered=true;try{elem[type]()}catch(e){}}this.triggered=false;if(!event.isPropagationStopped()){var parent=elem.parentNode||elem.ownerDocument;if(parent){jQuery.event.trigger(event,data,parent,true)}}},handle:function(event){var all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);event.currentTarget=this;var namespaces=event.type.split(".");event.type=namespaces.shift();all=!namespaces.length&&!event.exclusive;var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||namespace.test(handler.type)){event.handler=handler;event.data=handler.data;var ret=handler.apply(this,arguments);if(ret!==undefined){event.result=ret;if(ret===false){event.preventDefault();event.stopPropagation()}}if(event.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(event){if(event[expando]){return event}var originalEvent=event;event=jQuery.Event(originalEvent);for(var i=this.props.length,prop;i;){prop=this.props[--i];event[prop]=originalEvent[prop]}if(!event.target){event.target=event.srcElement||document}if(event.target.nodeType==3){event.target=event.target.parentNode}if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement}if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0)}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode)){event.which=event.charCode||event.keyCode}if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey}if(!event.which&&event.button){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)))}return event},proxy:function(fn,proxy){proxy=proxy||function(){return fn.apply(this,arguments)};proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy},special:{ready:{setup:bindReady,teardown:function(){}}},specialAll:{live:{setup:function(selector,namespaces){jQuery.event.add(this,namespaces[0],liveHandler)},teardown:function(namespaces){if(namespaces.length){var remove=0,name=RegExp("(^|\\.)"+namespaces[0]+"(\\.|$)");jQuery.each((jQuery.data(this,"events").live||{}),function(){if(name.test(this.type)){remove++}});if(remove<1){jQuery.event.remove(this,namespaces[0],liveHandler)}}}}}};jQuery.Event=function(src){if(!this.preventDefault){return new jQuery.Event(src)}if(src&&src.type){this.originalEvent=src;this.type=src.type}else{this.type=src}this.timeStamp=now();this[expando]=true};function returnFalse(){return false}function returnTrue(){return true}jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e){return }if(e.preventDefault){e.preventDefault()}e.returnValue=false},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e){return }if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation()},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var withinElement=function(event){var parent=event.relatedTarget;while(parent&&parent!=this){try{parent=parent.parentNode}catch(e){parent=this}}if(parent!=this){event.type=event.data;jQuery.event.handle.apply(this,arguments)}};jQuery.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(orig,fix){jQuery.event.special[fix]={setup:function(){jQuery.event.add(this,orig,withinElement,fix)},teardown:function(){jQuery.event.remove(this,orig,withinElement)}}});jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data)})},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments)});return this.each(function(){jQuery.event.add(this,type,one,fn&&data)})},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn)})},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){if(this[0]){var event=jQuery.Event(type);event.preventDefault();event.stopPropagation();jQuery.event.trigger(event,data,this[0]);return event.result}},toggle:function(fn){var args=arguments,i=1;while(i<args.length){jQuery.event.proxy(fn,args[i++])}return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false}))},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut)},ready:function(fn){bindReady();if(jQuery.isReady){fn.call(document,jQuery)}else{jQuery.readyList.push(fn)}return this},live:function(type,fn){var proxy=jQuery.event.proxy(fn);proxy.guid+=this.selector+type;jQuery(document).bind(liveConvert(type,this.selector),this.selector,proxy);return this},die:function(type,fn){jQuery(document).unbind(liveConvert(type,this.selector),fn?{guid:fn.guid+this.selector+type}:null);return this}});function liveHandler(event){var check=RegExp("(^|\\.)"+event.type+"(\\.|$)"),stop=true,elems=[];jQuery.each(jQuery.data(this,"events").live||[],function(i,fn){if(check.test(fn.type)){var elem=jQuery(event.target).closest(fn.data)[0];if(elem){elems.push({elem:elem,fn:fn})}}});elems.sort(function(a,b){return jQuery.data(a.elem,"closest")-jQuery.data(b.elem,"closest")});jQuery.each(elems,function(){if(this.fn.call(this.elem,event,this.fn.data)===false){return(stop=false)}});return stop}function liveConvert(type,selector){return["live",type,selector.replace(/\./g,"`").replace(/ /g,"|")].join(".")}jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document,jQuery)});jQuery.readyList=null}jQuery(document).triggerHandler("ready")}}});var readyBound=false;function bindReady(){if(readyBound){return }readyBound=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);jQuery.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);jQuery.ready()}});if(document.documentElement.doScroll&&window==window.top){(function(){if(jQuery.isReady){return }try{document.documentElement.doScroll("left")}catch(error){setTimeout(arguments.callee,0);return }jQuery.ready()})()}}}jQuery.event.add(window,"load",jQuery.ready)}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name)}});jQuery(window).bind("unload",function(){for(var id in jQuery.cache){if(id!=1&&jQuery.cache[id].handle){jQuery.event.remove(jQuery.cache[id].handle.elem)}}});(function(){jQuery.support={};var root=document.documentElement,script=document.createElement("script"),div=document.createElement("div"),id="script"+(new Date).getTime();div.style.display="none";div.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var all=div.getElementsByTagName("*"),a=div.getElementsByTagName("a")[0];if(!all||!all.length||!a){return }jQuery.support={leadingWhitespace:div.firstChild.nodeType==3,tbody:!div.getElementsByTagName("tbody").length,objectAll:!!div.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/red/.test(a.getAttribute("style")),hrefNormalized:a.getAttribute("href")==="/a",opacity:a.style.opacity==="0.5",cssFloat:!!a.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};script.type="text/javascript";try{script.appendChild(document.createTextNode("window."+id+"=1;"))}catch(e){}root.insertBefore(script,root.firstChild);if(window[id]){jQuery.support.scriptEval=true;delete window[id]}root.removeChild(script);if(div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function(){jQuery.support.noCloneEvent=false;div.detachEvent("onclick",arguments.callee)});div.cloneNode(true).fireEvent("onclick")}jQuery(function(){var div=document.createElement("div");div.style.width=div.style.paddingLeft="1px";document.body.appendChild(div);jQuery.boxModel=jQuery.support.boxModel=div.offsetWidth===2;document.body.removeChild(div).style.display="none"})})();var styleFloat=jQuery.support.cssFloat?"cssFloat":"styleFloat";jQuery.props={"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!=="string"){return this._load(url)}var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off)}var type="GET";if(params){if(jQuery.isFunction(params)){callback=params;params=null}else{if(typeof params==="object"){params=jQuery.param(params);type="POST"}}}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified"){self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText)}if(callback){self.each(callback,[res.responseText,status,res])}}});return this},serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?jQuery.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){return{name:elem.name,value:val}}):{name:elem.name,value:val}}).get()}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f)}});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type})},getScript:function(url,callback){return jQuery.get(url,null,callback,"script")},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={}}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type})},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data)}if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre)){s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?"}}else{if(!s.data||!s.data.match(jsre)){s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?"}}s.dataType="json"}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data){s.data=(s.data+"").replace(jsre,"="+jsonp+"$1")}s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp]}catch(e){}if(head){head.removeChild(script)}}}if(s.dataType=="script"&&s.cache==null){s.cache=false}if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"")}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null}if(s.global&&!jQuery.active++){jQuery.event.trigger("ajaxStart")}var parts=/^(\w+:)?\/\/([^\/?#]+)/.exec(s.url);if(s.dataType=="script"&&type=="GET"&&parts&&(parts[1]&&parts[1]!=location.protocol||parts[2]!=location.host)){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset){script.charset=s.scriptCharset}if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();script.onload=script.onreadystatechange=null;head.removeChild(script)}}}head.appendChild(script);return undefined}var requestDone=false;var xhr=s.xhr();if(s.username){xhr.open(type,s.url,s.async,s.username,s.password)}else{xhr.open(type,s.url,s.async)}try{if(s.data){xhr.setRequestHeader("Content-Type",s.contentType)}if(s.ifModified){xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default)}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop")}xhr.abort();return false}if(s.global){jQuery.event.trigger("ajaxSend",[xhr,s])}var onreadystatechange=function(isTimeout){if(xhr.readyState==0){if(ival){clearInterval(ival);ival=null;if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop")}}}else{if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null}status=isTimeout=="timeout"?"timeout":!jQuery.httpSuccess(xhr)?"error":s.ifModified&&jQuery.httpNotModified(xhr,s.url)?"notmodified":"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s)}catch(e){status="parsererror"}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified")}catch(e){}if(s.ifModified&&modRes){jQuery.lastModified[s.url]=modRes}if(!jsonp){success()}}else{jQuery.handleError(s,xhr,status)}complete();if(isTimeout){xhr.abort()}if(s.async){xhr=null}}}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0){setTimeout(function(){if(xhr&&!requestDone){onreadystatechange("timeout")}},s.timeout)}}try{xhr.send(s.data)}catch(e){jQuery.handleError(s,xhr,null,e)}if(!s.async){onreadystatechange()}function success(){if(s.success){s.success(data,status)}if(s.global){jQuery.event.trigger("ajaxSuccess",[xhr,s])}}function complete(){if(s.complete){s.complete(xhr,status)}if(s.global){jQuery.event.trigger("ajaxComplete",[xhr,s])}if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop")}}return xhr},handleError:function(s,xhr,status,e){if(s.error){s.error(xhr,status,e)}if(s.global){jQuery.event.trigger("ajaxError",[xhr,s,e])}},active:0,httpSuccess:function(xhr){try{return !xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223}catch(e){}return false},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]}catch(e){}return false},httpData:function(xhr,type,s){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror"){throw"parsererror"}if(s&&s.dataFilter){data=s.dataFilter(data,type)}if(typeof data==="string"){if(type=="script"){jQuery.globalEval(data)}if(type=="json"){data=window.eval("("+data+")")}}return data},param:function(a){var s=[];function add(key,value){s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)}if(jQuery.isArray(a)||a.jquery){jQuery.each(a,function(){add(this.name,this.value)})}else{for(var j in a){if(jQuery.isArray(a[j])){jQuery.each(a[j],function(){add(j,this)})}else{add(j,jQuery.isFunction(a[j])?a[j]():a[j])}}}return s.join("&").replace(/%20/g,"+")}});var elemdisplay={},timerId,fxAttrs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function genFx(type,num){var obj={};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type});return obj}jQuery.fn.extend({show:function(speed,callback){if(speed){return this.animate(genFx("show",3),speed,callback)}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");this[i].style.display=old||"";if(jQuery.css(this[i],"display")==="none"){var tagName=this[i].tagName,display;if(elemdisplay[tagName]){display=elemdisplay[tagName]}else{var elem=jQuery("<"+tagName+" />").appendTo("body");display=elem.css("display");if(display==="none"){display="block"}elem.remove();elemdisplay[tagName]=display}jQuery.data(this[i],"olddisplay",display)}}for(var i=0,l=this.length;i<l;i++){this[i].style.display=jQuery.data(this[i],"olddisplay")||""}return this}},hide:function(speed,callback){if(speed){return this.animate(genFx("hide",3),speed,callback)}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");if(!old&&old!=="none"){jQuery.data(this[i],"olddisplay",jQuery.css(this[i],"display"))}}for(var i=0,l=this.length;i<l;i++){this[i].style.display="none"}return this}},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){var bool=typeof fn==="boolean";return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn==null||bool?this.each(function(){var state=bool?fn:jQuery(this).is(":hidden");jQuery(this)[state?"show":"hide"]()}):this.animate(genFx("toggle",3),fn,fn2)},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback)},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){var opt=jQuery.extend({},optall),p,hidden=this.nodeType==1&&jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden){return opt.complete.call(this)}if((p=="height"||p=="width")&&this.style){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow}}if(opt.overflow!=null){this.style.overflow="hidden"}opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val)){e[val=="toggle"?hidden?"show":"hide":val](prop)}else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit}if(parts[1]){end=((parts[1]=="-="?-1:1)*end)+start}e.custom(start,end,unit)}else{e.custom(start,val,"")}}});return true})},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue){this.queue([])}this.each(function(){for(var i=timers.length-1;i>=0;i--){if(timers[i].elem==this){if(gotoEnd){timers[i](true)}timers.splice(i,1)}}});if(!gotoEnd){this.dequeue()}return this}});jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),slideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(name,props){jQuery.fn[name]=function(speed,callback){return this.animate(props,speed,callback)}});jQuery.extend({speed:function(speed,easing,fn){var opt=typeof speed==="object"?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:jQuery.fx.speeds[opt.duration]||jQuery.fx.speeds._default;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false){jQuery(this).dequeue()}if(jQuery.isFunction(opt.old)){opt.old.call(this)}};return opt},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum}},timers:[],fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig){options.orig={}}}});jQuery.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(force){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;var self=this;function t(gotoEnd){return self.step(gotoEnd)}t.elem=this.elem;if(t()&&jQuery.timers.push(t)&&!timerId){timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++){if(!timers[i]()){timers.splice(i--,1)}}if(!timers.length){clearInterval(timerId);timerId=undefined}},13)}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());jQuery(this.elem).show()},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(gotoEnd){var t=now();if(gotoEnd||t>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim){if(this.options.curAnim[i]!==true){done=false}}if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){jQuery(this.elem).hide()}if(this.options.hide||this.options.show){for(var p in this.options.curAnim){jQuery.attr(this.elem.style,p,this.options.orig[p])}}this.options.complete.call(this.elem)}return false}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now)},_default:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=null){fx.elem.style[fx.prop]=fx.now+fx.unit}else{fx.elem[fx.prop]=fx.now}}}});if(document.documentElement.getBoundingClientRect){jQuery.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return jQuery.offset.bodyOffset(this[0])}var box=this[0].getBoundingClientRect(),doc=this[0].ownerDocument,body=doc.body,docElem=doc.documentElement,clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,top=box.top+(self.pageYOffset||jQuery.boxModel&&docElem.scrollTop||body.scrollTop)-clientTop,left=box.left+(self.pageXOffset||jQuery.boxModel&&docElem.scrollLeft||body.scrollLeft)-clientLeft;return{top:top,left:left}}}else{jQuery.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return jQuery.offset.bodyOffset(this[0])}jQuery.offset.initialized||jQuery.offset.initialize();var elem=this[0],offsetParent=elem.offsetParent,prevOffsetParent=elem,doc=elem.ownerDocument,computedStyle,docElem=doc.documentElement,body=doc.body,defaultView=doc.defaultView,prevComputedStyle=defaultView.getComputedStyle(elem,null),top=elem.offsetTop,left=elem.offsetLeft;while((elem=elem.parentNode)&&elem!==body&&elem!==docElem){computedStyle=defaultView.getComputedStyle(elem,null);top-=elem.scrollTop,left-=elem.scrollLeft;if(elem===offsetParent){top+=elem.offsetTop,left+=elem.offsetLeft;if(jQuery.offset.doesNotAddBorder&&!(jQuery.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(elem.tagName))){top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0}prevOffsetParent=offsetParent,offsetParent=elem.offsetParent}if(jQuery.offset.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible"){top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0}prevComputedStyle=computedStyle}if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static"){top+=body.offsetTop,left+=body.offsetLeft}if(prevComputedStyle.position==="fixed"){top+=Math.max(docElem.scrollTop,body.scrollTop),left+=Math.max(docElem.scrollLeft,body.scrollLeft)}return{top:top,left:left}}}jQuery.offset={initialize:function(){if(this.initialized){return }var body=document.body,container=document.createElement("div"),innerDiv,checkDiv,table,td,rules,prop,bodyMarginTop=body.style.marginTop,html='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';rules={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(prop in rules){container.style[prop]=rules[prop]}container.innerHTML=html;body.insertBefore(container,body.firstChild);innerDiv=container.firstChild,checkDiv=innerDiv.firstChild,td=innerDiv.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(checkDiv.offsetTop!==5);this.doesAddBorderForTableAndCells=(td.offsetTop===5);innerDiv.style.overflow="hidden",innerDiv.style.position="relative";this.subtractsBorderForOverflowNotVisible=(checkDiv.offsetTop===-5);body.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(body.offsetTop===0);body.style.marginTop=bodyMarginTop;body.removeChild(container);this.initialized=true},bodyOffset:function(body){jQuery.offset.initialized||jQuery.offset.initialize();var top=body.offsetTop,left=body.offsetLeft;if(jQuery.offset.doesNotIncludeMarginInBodyOffset){top+=parseInt(jQuery.curCSS(body,"marginTop",true),10)||0,left+=parseInt(jQuery.curCSS(body,"marginLeft",true),10)||0}return{top:top,left:left}}};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,"marginTop");offset.left-=num(this,"marginLeft");parentOffset.top+=num(offsetParent,"borderTopWidth");parentOffset.left+=num(offsetParent,"borderLeftWidth");results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left}}return results},offsetParent:function(){var offsetParent=this[0].offsetParent||document.body;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,"position")=="static")){offsetParent=offsetParent.offsetParent}return jQuery(offsetParent)}});jQuery.each(["Left","Top"],function(i,name){var method="scroll"+name;jQuery.fn[method]=function(val){if(!this[0]){return null}return val!==undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val}):this[0]==window||this[0]==document?self[i?"pageYOffset":"pageXOffset"]||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method]}});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom",lower=name.toLowerCase();jQuery.fn["inner"+name]=function(){return this[0]?jQuery.css(this[0],lower,false,"padding"):null};jQuery.fn["outer"+name]=function(margin){return this[0]?jQuery.css(this[0],lower,false,margin?"margin":"border"):null};var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(document.documentElement["client"+name],document.body["scroll"+name],document.documentElement["scroll"+name],document.body["offset"+name],document.documentElement["offset"+name]):size===undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,typeof size==="string"?size:size+"px")}})})();
\ No newline at end of file
+(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,done=0,toString=Object.prototype.toString,hasDuplicate=false,baseHasDuplicate=true,rBackslash=/\\/g,rNonWord=/\W/;[0,0].sort(function(){baseHasDuplicate=false;return 0});var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;var origContext=context;if(context.nodeType!==1&&context.nodeType!==9){return[]}if(!selector||typeof selector!=="string"){return results}var m,set,checkSet,extra,ret,cur,pop,i,prune=true,contextXML=Sizzle.isXML(context),parts=[],soFar=selector;do{chunker.exec("");m=chunker.exec(soFar);if(m){soFar=m[3];parts.push(m[1]);if(m[2]){extra=m[3];break}}}while(m);if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context)}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector]){selector+=parts.shift()}set=posProcess(selector,set)}}}else{if(!seed&&parts.length>1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1])){ret=Sizzle.find(parts.shift(),context,contextXML);context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0]}if(context){ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode?context.parentNode:context,contextXML);set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;if(parts.length>0){checkSet=makeArray(set)}else{prune=false}while(parts.length){cur=parts.pop();pop=cur;if(!Expr.relative[cur]){cur=""}else{pop=parts.pop()}if(pop==null){pop=context}Expr.relative[cur](checkSet,pop,contextXML)}}else{checkSet=parts=[]}}if(!checkSet){checkSet=set}if(!checkSet){Sizzle.error(cur||selector)}if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet)}else{if(context&&context.nodeType===1){for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&Sizzle.contains(context,checkSet[i]))){results.push(set[i])}}}else{for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i])}}}}}else{makeArray(checkSet,results)}if(extra){Sizzle(extra,origContext,results,seed);Sizzle.uniqueSort(results)}return results};Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate=baseHasDuplicate;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1)}}}}return results};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set)};Sizzle.matchesSelector=function(node,expr){return Sizzle(expr,null,null,[node]).length>0};Sizzle.find=function(expr,context,isXML){var set;if(!expr){return[]}for(var i=0,l=Expr.order.length;i<l;i++){var match,type=Expr.order[i];if((match=Expr.leftMatch[type].exec(expr))){var left=match[1];match.splice(1,1);if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(rBackslash,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break}}}}if(!set){set=typeof context.getElementsByTagName!=="undefined"?context.getElementsByTagName("*"):[]}return{set:set,expr:expr}};Sizzle.filter=function(expr,set,inplace,not){var match,anyFound,old=expr,result=[],curLoop=set,isXMLFilter=set&&set[0]&&Sizzle.isXML(set[0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.leftMatch[type].exec(expr))!=null&&match[2]){var found,item,filter=Expr.filter[type],left=match[1];anyFound=false;match.splice(1,1);if(left.substr(left.length-1)==="\\"){continue}if(curLoop===result){result=[]}if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true}else{if(match===true){continue}}}if(match){for(var i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true}else{curLoop[i]=false}}else{if(pass){result.push(item);anyFound=true}}}}}if(found!==undefined){if(!inplace){curLoop=result}expr=expr.replace(Expr.match[type],"");if(!anyFound){return[]}break}}}if(expr===old){if(anyFound==null){Sizzle.error(expr)}else{break}}old=expr}return curLoop};Sizzle.error=function(msg){throw"Syntax error, unrecognized expression: "+msg};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href")},type:function(elem){return elem.getAttribute("type")}},relative:{"+":function(checkSet,part){var isPartStr=typeof part==="string",isTag=isPartStr&&!rNonWord.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag){part=part.toLowerCase()}for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}checkSet[i]=isPartStrNotTag||elem&&elem.nodeName.toLowerCase()===part?elem||false:elem===part}}if(isPartStrNotTag){Sizzle.filter(part,checkSet,true)}},">":function(checkSet,part){var elem,isPartStr=typeof part==="string",i=0,l=checkSet.length;if(isPartStr&&!rNonWord.test(part)){part=part.toLowerCase();for(;i<l;i++){elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName.toLowerCase()===part?parent:false}}}else{for(;i<l;i++){elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part}}if(isPartStr){Sizzle.filter(part,checkSet,true)}}},"":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!rNonWord.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck}checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML)},"~":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!rNonWord.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck}checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML)}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m&&m.parentNode?[m]:[]}},NAME:function(match,context){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i])}}return ret.length===0?null:ret}},TAG:function(match,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(match[1])}}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(rBackslash,"")+" ";if(isXML){return match}for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").replace(/[\t\n\r]/g," ").indexOf(match)>=0)){if(!inplace){result.push(elem)}}else{if(inplace){curLoop[i]=false}}}}return false},ID:function(match){return match[1].replace(rBackslash,"")},TAG:function(match,curLoop){return match[1].replace(rBackslash,"").toLowerCase()},CHILD:function(match){if(match[1]==="nth"){if(!match[2]){Sizzle.error(match[0])}match[2]=match[2].replace(/^\+|\s*/g,"");var test=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(match[2]==="even"&&"2n"||match[2]==="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0}else{if(match[2]){Sizzle.error(match[0])}}match[0]=done++;return match},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1]=match[1].replace(rBackslash,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name]}match[4]=(match[4]||match[5]||"").replace(rBackslash,"");if(match[2]==="~="){match[4]=" "+match[4]+" "}return match},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if((chunker.exec(match[3])||"").length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop)}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret)}return false}}else{if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true}}return match},POS:function(match){match.unshift(true);return match}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden"},disabled:function(elem){return elem.disabled===true},checked:function(elem){return elem.checked===true},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex}return elem.selected===true},parent:function(elem){return !!elem.firstChild},empty:function(elem){return !elem.firstChild},has:function(elem,i,match){return !!Sizzle(match[3],elem).length},header:function(elem){return(/h\d/i).test(elem.nodeName)},text:function(elem){var attr=elem.getAttribute("type"),type=elem.type;return elem.nodeName.toLowerCase()==="input"&&"text"===type&&(attr===type||attr===null)},radio:function(elem){return elem.nodeName.toLowerCase()==="input"&&"radio"===elem.type},checkbox:function(elem){return elem.nodeName.toLowerCase()==="input"&&"checkbox"===elem.type},file:function(elem){return elem.nodeName.toLowerCase()==="input"&&"file"===elem.type},password:function(elem){return elem.nodeName.toLowerCase()==="input"&&"password"===elem.type},submit:function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&"submit"===elem.type},image:function(elem){return elem.nodeName.toLowerCase()==="input"&&"image"===elem.type},reset:function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&"reset"===elem.type},button:function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&"button"===elem.type||name==="button"},input:function(elem){return(/input|select|textarea|button/i).test(elem.nodeName)},focus:function(elem){return elem===elem.ownerDocument.activeElement}},setFilters:{first:function(elem,i){return i===0},last:function(elem,i,match,array){return i===array.length-1},even:function(elem,i){return i%2===0},odd:function(elem,i){return i%2===1},lt:function(elem,i,match){return i<match[3]-0},gt:function(elem,i,match){return i>match[3]-0},nth:function(elem,i,match){return match[3]-0===i},eq:function(elem,i,match){return match[3]-0===i}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array)}else{if(name==="contains"){return(elem.textContent||elem.innerText||Sizzle.getText([elem])||"").indexOf(match[3])>=0}else{if(name==="not"){var not=match[3];for(var j=0,l=not.length;j<l;j++){if(not[j]===elem){return false}}return true}else{Sizzle.error(name)}}}},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case"only":case"first":while((node=node.previousSibling)){if(node.nodeType===1){return false}}if(type==="first"){return true}node=elem;case"last":while((node=node.nextSibling)){if(node.nodeType===1){return false}}return true;case"nth":var first=match[2],last=match[3];if(first===1&&last===0){return true}var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count}}parent.sizcache=doneName}var diff=elem.nodeIndex-last;if(first===0){return diff===0}else{return(diff%first===0&&diff/first>=0)}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName.toLowerCase()===match},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!==check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array)}}}};var origPOS=Expr.match.POS,fescape=function(all,num){return"\\"+(num-0+1)};for(var type in Expr.match){Expr.match[type]=new RegExp(Expr.match[type].source+(/(?![^\[]*\])(?![^\(]*\))/.source));Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source.replace(/\\(\d+)/g,fescape))}var makeArray=function(array,results){array=Array.prototype.slice.call(array,0);if(results){results.push.apply(results,array);return results}return array};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(e){makeArray=function(array,results){var i=0,ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array)}else{if(typeof array.length==="number"){for(var l=array.length;i<l;i++){ret.push(array[i])}}else{for(;array[i];i++){ret.push(array[i])}}}return ret}}var sortOrder,siblingCheck;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition){return a.compareDocumentPosition?-1:1}return a.compareDocumentPosition(b)&4?-1:1}}else{sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0}else{if(a.sourceIndex&&b.sourceIndex){return a.sourceIndex-b.sourceIndex}}var al,bl,ap=[],bp=[],aup=a.parentNode,bup=b.parentNode,cur=aup;if(aup===bup){return siblingCheck(a,b)}else{if(!aup){return -1}else{if(!bup){return 1}}}while(cur){ap.unshift(cur);cur=cur.parentNode}cur=bup;while(cur){bp.unshift(cur);cur=cur.parentNode}al=ap.length;bl=bp.length;for(var i=0;i<al&&i<bl;i++){if(ap[i]!==bp[i]){return siblingCheck(ap[i],bp[i])}}return i===al?siblingCheck(a,bp[i],-1):siblingCheck(ap[i],b,1)};siblingCheck=function(a,b,ret){if(a===b){return ret}var cur=a.nextSibling;while(cur){if(cur===b){return -1}cur=cur.nextSibling}return 1}}Sizzle.getText=function(elems){var ret="",elem;for(var i=0;elems[i];i++){elem=elems[i];if(elem.nodeType===3||elem.nodeType===4){ret+=elem.nodeValue}else{if(elem.nodeType!==8){ret+=Sizzle.getText(elem.childNodes)}}}return ret};(function(){var form=document.createElement("div"),id="script"+(new Date()).getTime(),root=document.documentElement;form.innerHTML="<a name='"+id+"'/>";root.insertBefore(form,root.firstChild);if(document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[]}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match}}root.removeChild(form);root=form=null})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i])}}results=tmp}return results}}div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2)}}div=null})();if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div"),id="__sizzle__";div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return }Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&!Sizzle.isXML(context)){var match=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(query);if(match&&(context.nodeType===1||context.nodeType===9)){if(match[1]){return makeArray(context.getElementsByTagName(query),extra)}else{if(match[2]&&Expr.find.CLASS&&context.getElementsByClassName){return makeArray(context.getElementsByClassName(match[2]),extra)}}}if(context.nodeType===9){if(query==="body"&&context.body){return makeArray([context.body],extra)}else{if(match&&match[3]){var elem=context.getElementById(match[3]);if(elem&&elem.parentNode){if(elem.id===match[3]){return makeArray([elem],extra)}}else{return makeArray([],extra)}}}try{return makeArray(context.querySelectorAll(query),extra)}catch(qsaError){}}else{if(context.nodeType===1&&context.nodeName.toLowerCase()!=="object"){var oldContext=context,old=context.getAttribute("id"),nid=old||id,hasParent=context.parentNode,relativeHierarchySelector=/^\s*[+~]/.test(query);if(!old){context.setAttribute("id",nid)}else{nid=nid.replace(/'/g,"\\$&")}if(relativeHierarchySelector&&hasParent){context=context.parentNode}try{if(!relativeHierarchySelector||hasParent){return makeArray(context.querySelectorAll("[id='"+nid+"'] "+query),extra)}}catch(pseudoError){}finally{if(!old){oldContext.removeAttribute("id")}}}}}return oldSizzle(query,context,extra,seed)};for(var prop in oldSizzle){Sizzle[prop]=oldSizzle[prop]}div=null})()}(function(){var html=document.documentElement,matches=html.matchesSelector||html.mozMatchesSelector||html.webkitMatchesSelector||html.msMatchesSelector;if(matches){var disconnectedMatch=!matches.call(document.createElement("div"),"div"),pseudoWorks=false;try{matches.call(document.documentElement,"[test!='']:sizzle")}catch(pseudoError){pseudoWorks=true}Sizzle.matchesSelector=function(node,expr){expr=expr.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!Sizzle.isXML(node)){try{if(pseudoWorks||!Expr.match.PSEUDO.test(expr)&&!/!=/.test(expr)){var ret=matches.call(node,expr);if(ret||!disconnectedMatch||node.document&&node.document.nodeType!==11){return ret}}}catch(e){}}return Sizzle(expr,null,null,[node]).length>0}}})();(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(!div.getElementsByClassName||div.getElementsByClassName("e").length===0){return }div.lastChild.className="e";if(div.getElementsByClassName("e").length===1){return }Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1])}};div=null})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var match=false;elem=elem[dir];while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;elem.sizset=i}if(elem.nodeName.toLowerCase()===cur){match=elem;break}elem=elem[dir]}checkSet[i]=match}}}function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var match=false;elem=elem[dir];while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;elem.sizset=i}if(typeof cur!=="string"){if(elem===cur){match=true;break}}else{if(Sizzle.filter(cur,[elem]).length>0){match=elem;break}}}elem=elem[dir]}checkSet[i]=match}}}if(document.documentElement.contains){Sizzle.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):true)}}else{if(document.documentElement.compareDocumentPosition){Sizzle.contains=function(a,b){return !!(a.compareDocumentPosition(b)&16)}}else{Sizzle.contains=function(){return false}}}Sizzle.isXML=function(elem){var documentElement=(elem?elem.ownerDocument||elem:0).documentElement;return documentElement?documentElement.nodeName!=="HTML":false};var posProcess=function(selector,context){var match,tmpSet=[],later="",root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"")}selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet)}return Sizzle.filter(later,tmpSet)};jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.filters;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains})();var runtil=/Until$/,rparentsprev=/^(?:parents|prevUntil|prevAll)/,rmultiselector=/,/,isSimple=/^.[^:#\[\.,]*$/,slice=Array.prototype.slice,POS=jQuery.expr.match.POS,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.fn.extend({find:function(selector){var self=this,i,l;if(typeof selector!=="string"){return jQuery(selector).filter(function(){for(i=0,l=self.length;i<l;i++){if(jQuery.contains(self[i],this)){return true}}})}var ret=this.pushStack("","find",selector),length,n,r;for(i=0,l=this.length;i<l;i++){length=ret.length;jQuery.find(selector,this[i],ret);if(i>0){for(n=length;n<ret.length;n++){for(r=0;r<length;r++){if(ret[r]===ret[n]){ret.splice(n--,1);break}}}}}return ret},has:function(target){var targets=jQuery(target);return this.filter(function(){for(var i=0,l=targets.length;i<l;i++){if(jQuery.contains(this,targets[i])){return true}}})},not:function(selector){return this.pushStack(winnow(this,selector,false),"not",selector)},filter:function(selector){return this.pushStack(winnow(this,selector,true),"filter",selector)},is:function(selector){return !!selector&&(typeof selector==="string"?jQuery.filter(selector,this).length>0:this.filter(selector).length>0)},closest:function(selectors,context){var ret=[],i,l,cur=this[0];if(jQuery.isArray(selectors)){var match,selector,matches={},level=1;if(cur&&selectors.length){for(i=0,l=selectors.length;i<l;i++){selector=selectors[i];if(!matches[selector]){matches[selector]=POS.test(selector)?jQuery(selector,context||this.context):selector}}while(cur&&cur.ownerDocument&&cur!==context){for(selector in matches){match=matches[selector];if(match.jquery?match.index(cur)>-1:jQuery(cur).is(match)){ret.push({selector:selector,elem:cur,level:level})}}cur=cur.parentNode;level++}}return ret}var pos=POS.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(i=0,l=this.length;i<l;i++){cur=this[i];while(cur){if(pos?pos.index(cur)>-1:jQuery.find.matchesSelector(cur,selectors)){ret.push(cur);break}else{cur=cur.parentNode;if(!cur||!cur.ownerDocument||cur===context||cur.nodeType===11){break}}}}ret=ret.length>1?jQuery.unique(ret):ret;return this.pushStack(ret,"closest",selectors)},index:function(elem){if(!elem||typeof elem==="string"){return jQuery.inArray(this[0],elem?jQuery(elem):this.parent().children())}return jQuery.inArray(elem.jquery?elem[0]:elem,this)},add:function(selector,context){var set=typeof selector==="string"?jQuery(selector,context):jQuery.makeArray(selector&&selector.nodeType?[selector]:selector),all=jQuery.merge(this.get(),set);return this.pushStack(isDisconnected(set[0])||isDisconnected(all[0])?all:jQuery.unique(all))},andSelf:function(){return this.add(this.prevObject)}});function isDisconnected(node){return !node||!node.parentNode||node.parentNode.nodeType===11}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null},parents:function(elem){return jQuery.dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until)},next:function(elem){return jQuery.nth(elem,2,"nextSibling")},prev:function(elem){return jQuery.nth(elem,2,"previousSibling")},nextAll:function(elem){return jQuery.dir(elem,"nextSibling")},prevAll:function(elem){return jQuery.dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until)},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var ret=jQuery.map(this,fn,until),args=slice.call(arguments);if(!runtil.test(name)){selector=until}if(selector&&typeof selector==="string"){ret=jQuery.filter(selector,ret)}ret=this.length>1&&!guaranteedUnique[name]?jQuery.unique(ret):ret;if((this.length>1||rmultiselector.test(selector))&&rparentsprev.test(name)){ret=ret.reverse()}return this.pushStack(ret,name,args.join(","))}});jQuery.extend({filter:function(expr,elems,not){if(not){expr=":not("+expr+")"}return elems.length===1?jQuery.find.matchesSelector(elems[0],expr)?[elems[0]]:[]:jQuery.find.matches(expr,elems)},dir:function(elem,dir,until){var matched=[],cur=elem[dir];while(cur&&cur.nodeType!==9&&(until===undefined||cur.nodeType!==1||!jQuery(cur).is(until))){if(cur.nodeType===1){matched.push(cur)}cur=cur[dir]}return matched},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir]){if(cur.nodeType===1&&++num===result){break}}return cur},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){r.push(n)}}return r}});function winnow(elements,qualifier,keep){qualifier=qualifier||0;if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){var retVal=!!qualifier.call(elem,i,elem);return retVal===keep})}else{if(qualifier.nodeType){return jQuery.grep(elements,function(elem,i){return(elem===qualifier)===keep})}else{if(typeof qualifier==="string"){var filtered=jQuery.grep(elements,function(elem){return elem.nodeType===1});if(isSimple.test(qualifier)){return jQuery.filter(qualifier,filtered,!keep)}else{qualifier=jQuery.filter(qualifier,filtered)}}}}return jQuery.grep(elements,function(elem,i){return(jQuery.inArray(elem,qualifier)>=0)===keep})}var rinlinejQuery=/ jQuery\d+="(?:\d+|null)"/g,rleadingWhitespace=/^\s+/,rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,rtagName=/<([\w:]+)/,rtbody=/<tbody/i,rhtml=/<|&#?\w+;/,rnocache=/<(?:script|object|embed|option|style)/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptType=/\/(java|ecma)script/i,rcleanScript=/^\s*<!(?:\[CDATA\[|\-\-)/,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;if(!jQuery.support.htmlSerialize){wrapMap._default=[1,"div<div>","</div>"]}jQuery.fn.extend({text:function(text){if(jQuery.isFunction(text)){return this.each(function(i){var self=jQuery(this);self.text(text.call(this,i,self.text()))})}if(typeof text!=="object"&&text!==undefined){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text))}return jQuery.text(this)},wrapAll:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i))})}if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0])}wrap.map(function(){var elem=this;while(elem.firstChild&&elem.firstChild.nodeType===1){elem=elem.firstChild}return elem}).append(this)}return this},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i))})}return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html)}else{self.append(html)}})},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html)})},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.appendChild(elem)}})},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.insertBefore(elem,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this)})}else{if(arguments.length){var set=jQuery(arguments[0]);set.push.apply(set,this.toArray());return this.pushStack(set,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling)})}else{if(arguments.length){var set=this.pushStack(this,"after",arguments);set.push.apply(set,jQuery(arguments[0]).toArray());return set}}},remove:function(selector,keepData){for(var i=0,elem;(elem=this[i])!=null;i++){if(!selector||jQuery.filter(selector,[elem]).length){if(!keepData&&elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"));jQuery.cleanData([elem])}if(elem.parentNode){elem.parentNode.removeChild(elem)}}}return this},empty:function(){for(var i=0,elem;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"))}while(elem.firstChild){elem.removeChild(elem.firstChild)}}return this},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){if(value===undefined){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(rinlinejQuery,""):null}else{if(typeof value==="string"&&!rnocache.test(value)&&(jQuery.support.leadingWhitespace||!rleadingWhitespace.test(value))&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(var i=0,l=this.length;i<l;i++){if(this[i].nodeType===1){jQuery.cleanData(this[i].getElementsByTagName("*"));this[i].innerHTML=value}}}catch(e){this.empty().append(value)}}else{if(jQuery.isFunction(value)){this.each(function(i){var self=jQuery(this);self.html(value.call(this,i,self.html()))})}else{this.empty().append(value)}}}return this},replaceWith:function(value){if(this[0]&&this[0].parentNode){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this),old=self.html();self.replaceWith(value.call(this,i,old))})}if(typeof value!=="string"){value=jQuery(value).detach()}return this.each(function(){var next=this.nextSibling,parent=this.parentNode;jQuery(this).remove();if(next){jQuery(next).before(value)}else{jQuery(parent).append(value)}})}else{return this.length?this.pushStack(jQuery(jQuery.isFunction(value)?value():value),"replaceWith",value):this}},detach:function(selector){return this.remove(selector,true)},domManip:function(args,table,callback){var results,first,fragment,parent,value=args[0],scripts=[];if(!jQuery.support.checkClone&&arguments.length===3&&typeof value==="string"&&rchecked.test(value)){return this.each(function(){jQuery(this).domManip(args,table,callback,true)})}if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);args[0]=value.call(this,i,table?self.html():undefined);self.domManip(args,table,callback)})}if(this[0]){parent=value&&value.parentNode;if(jQuery.support.parentNode&&parent&&parent.nodeType===11&&parent.childNodes.length===this.length){results={fragment:parent}}else{results=jQuery.buildFragment(args,this,scripts)}fragment=results.fragment;if(fragment.childNodes.length===1){first=fragment=fragment.firstChild}else{first=fragment.firstChild}if(first){table=table&&jQuery.nodeName(first,"tr");for(var i=0,l=this.length,lastIndex=l-1;i<l;i++){callback.call(table?root(this[i],first):this[i],results.cacheable||(l>1&&i<lastIndex)?jQuery.clone(fragment,true,true):fragment)}}if(scripts.length){jQuery.each(scripts,evalScript)}}return this}});function root(elem,cur){return jQuery.nodeName(elem,"table")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem}function cloneCopyEvent(src,dest){if(dest.nodeType!==1||!jQuery.hasData(src)){return }var internalKey=jQuery.expando,oldData=jQuery.data(src),curData=jQuery.data(dest,oldData);if((oldData=oldData[internalKey])){var events=oldData.events;curData=curData[internalKey]=jQuery.extend({},oldData);if(events){delete curData.handle;curData.events={};for(var type in events){for(var i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type+(events[type][i].namespace?".":"")+events[type][i].namespace,events[type][i],events[type][i].data)}}}}}function cloneFixAttributes(src,dest){var nodeName;if(dest.nodeType!==1){return }if(dest.clearAttributes){dest.clearAttributes()}if(dest.mergeAttributes){dest.mergeAttributes(src)}nodeName=dest.nodeName.toLowerCase();if(nodeName==="object"){dest.outerHTML=src.outerHTML}else{if(nodeName==="input"&&(src.type==="checkbox"||src.type==="radio")){if(src.checked){dest.defaultChecked=dest.checked=src.checked}if(dest.value!==src.value){dest.value=src.value}}else{if(nodeName==="option"){dest.selected=src.defaultSelected}else{if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue}}}}dest.removeAttribute(jQuery.expando)}jQuery.buildFragment=function(args,nodes,scripts){var fragment,cacheable,cacheresults,doc=(nodes&&nodes[0]?nodes[0].ownerDocument||nodes[0]:document);if(args.length===1&&typeof args[0]==="string"&&args[0].length<512&&doc===document&&args[0].charAt(0)==="<"&&!rnocache.test(args[0])&&(jQuery.support.checkClone||!rchecked.test(args[0]))){cacheable=true;cacheresults=jQuery.fragments[args[0]];if(cacheresults&&cacheresults!==1){fragment=cacheresults}}if(!fragment){fragment=doc.createDocumentFragment();jQuery.clean(args,doc,fragment,scripts)}if(cacheable){jQuery.fragments[args[0]]=cacheresults?fragment:1}return{fragment:fragment,cacheable:cacheable}};jQuery.fragments={};jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector),parent=this.length===1&&this[0].parentNode;if(parent&&parent.nodeType===11&&parent.childNodes.length===1&&insert.length===1){insert[original](this[0]);return this}else{for(var i=0,l=insert.length;i<l;i++){var elems=(i>0?this.clone(true):this).get();jQuery(insert[i])[original](elems);ret=ret.concat(elems)}return this.pushStack(ret,name,insert.selector)}}});function getAll(elem){if("getElementsByTagName" in elem){return elem.getElementsByTagName("*")}else{if("querySelectorAll" in elem){return elem.querySelectorAll("*")}else{return[]}}}function fixDefaultChecked(elem){if(elem.type==="checkbox"||elem.type==="radio"){elem.defaultChecked=elem.checked}}function findInputs(elem){if(jQuery.nodeName(elem,"input")){fixDefaultChecked(elem)}else{if(elem.getElementsByTagName){jQuery.grep(elem.getElementsByTagName("input"),fixDefaultChecked)}}}jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var clone=elem.cloneNode(true),srcElements,destElements,i;if((!jQuery.support.noCloneEvent||!jQuery.support.noCloneChecked)&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){cloneFixAttributes(elem,clone);srcElements=getAll(elem);destElements=getAll(clone);for(i=0;srcElements[i];++i){cloneFixAttributes(srcElements[i],destElements[i])}}if(dataAndEvents){cloneCopyEvent(elem,clone);if(deepDataAndEvents){srcElements=getAll(elem);destElements=getAll(clone);for(i=0;srcElements[i];++i){cloneCopyEvent(srcElements[i],destElements[i])}}}return clone},clean:function(elems,context,fragment,scripts){var checkScriptType;context=context||document;if(typeof context.createElement==="undefined"){context=context.ownerDocument||context[0]&&context[0].ownerDocument||document}var ret=[],j;for(var i=0,elem;(elem=elems[i])!=null;i++){if(typeof elem==="number"){elem+=""}if(!elem){continue}if(typeof elem==="string"){if(!rhtml.test(elem)){elem=context.createTextNode(elem)}else{elem=elem.replace(rxhtmlTag,"<$1></$2>");var tag=(rtagName.exec(elem)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,depth=wrap[0],div=context.createElement("div");div.innerHTML=wrap[1]+elem+wrap[2];while(depth--){div=div.lastChild}if(!jQuery.support.tbody){var hasBody=rtbody.test(elem),tbody=tag==="table"&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]==="<table>"&&!hasBody?div.childNodes:[];for(j=tbody.length-1;j>=0;--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j])}}}if(!jQuery.support.leadingWhitespace&&rleadingWhitespace.test(elem)){div.insertBefore(context.createTextNode(rleadingWhitespace.exec(elem)[0]),div.firstChild)}elem=div.childNodes}}var len;if(!jQuery.support.appendChecked){if(elem[0]&&typeof (len=elem.length)==="number"){for(j=0;j<len;j++){findInputs(elem[j])}}else{findInputs(elem)}}if(elem.nodeType){ret.push(elem)}else{ret=jQuery.merge(ret,elem)}}if(fragment){checkScriptType=function(elem){return !elem.type||rscriptType.test(elem.type)};for(i=0;ret[i];i++){if(scripts&&jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i])}else{if(ret[i].nodeType===1){var jsTags=jQuery.grep(ret[i].getElementsByTagName("script"),checkScriptType);ret.splice.apply(ret,[i+1,0].concat(jsTags))}fragment.appendChild(ret[i])}}}return ret},cleanData:function(elems){var data,id,cache=jQuery.cache,internalKey=jQuery.expando,special=jQuery.event.special,deleteExpando=jQuery.support.deleteExpando;for(var i=0,elem;(elem=elems[i])!=null;i++){if(elem.nodeName&&jQuery.noData[elem.nodeName.toLowerCase()]){continue}id=elem[jQuery.expando];if(id){data=cache[id]&&cache[id][internalKey];if(data&&data.events){for(var type in data.events){if(special[type]){jQuery.event.remove(elem,type)}else{jQuery.removeEvent(elem,type,data.handle)}}if(data.handle){data.handle.elem=null}}if(deleteExpando){delete elem[jQuery.expando]}else{if(elem.removeAttribute){elem.removeAttribute(jQuery.expando)}}delete cache[id]}}}});function evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dataType:"script"})}else{jQuery.globalEval((elem.text||elem.textContent||elem.innerHTML||"").replace(rcleanScript,"/*$0*/"))}if(elem.parentNode){elem.parentNode.removeChild(elem)}}var ralpha=/alpha\([^)]*\)/i,ropacity=/opacity=([^)]*)/,rdashAlpha=/-([a-z])/ig,rupper=/([A-Z]|^ms)/g,rnumpx=/^-?\d+(?:px)?$/i,rnum=/^-?\d/,rrelNum=/^[+\-]=/,rrelNumFilter=/[^+\-\.\de]+/g,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssWidth=["Left","Right"],cssHeight=["Top","Bottom"],curCSS,getComputedStyle,currentStyle,fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn.css=function(name,value){if(arguments.length===2&&value===undefined){return this}return jQuery.access(this,name,value,true,function(elem,name,value){return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name)})};jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity","opacity");return ret===""?"1":ret}else{return elem.style.opacity}}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true,widows:true,orphans:true},cssProps:{"float":jQuery.support.cssFloat?"cssFloat":"styleFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return }var ret,type,origName=jQuery.camelCase(name),style=elem.style,hooks=jQuery.cssHooks[origName];name=jQuery.cssProps[origName]||origName;if(value!==undefined){type=typeof value;if(type==="number"&&isNaN(value)||value==null){return }if(type==="string"&&rrelNum.test(value)){value=+value.replace(rrelNumFilter,"")+parseFloat(jQuery.css(elem,name))}if(type==="number"&&!jQuery.cssNumber[origName]){value+="px"}if(!hooks||!("set" in hooks)||(value=hooks.set(elem,value))!==undefined){try{style[name]=value}catch(e){}}}else{if(hooks&&"get" in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret}return style[name]}},css:function(elem,name,extra){var ret,hooks;name=jQuery.camelCase(name);hooks=jQuery.cssHooks[name];name=jQuery.cssProps[name]||name;if(name==="cssFloat"){name="float"}if(hooks&&"get" in hooks&&(ret=hooks.get(elem,true,extra))!==undefined){return ret}else{if(curCSS){return curCSS(elem,name)}}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name]}callback.call(elem);for(name in options){elem.style[name]=old[name]}},camelCase:function(string){return string.replace(rdashAlpha,fcamelCase)}});jQuery.curCSS=jQuery.css;jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){var val;if(computed){if(elem.offsetWidth!==0){val=getWH(elem,name,extra)}else{jQuery.swap(elem,cssShow,function(){val=getWH(elem,name,extra)})}if(val<=0){val=curCSS(elem,name,name);if(val==="0px"&&currentStyle){val=currentStyle(elem,name,name)}if(val!=null){return val===""||val==="auto"?"0px":val}}if(val<0||val==null){val=elem.style[name];return val===""||val==="auto"?"0px":val}return typeof val==="string"?val:val+"px"}},set:function(elem,value){if(rnumpx.test(value)){value=parseFloat(value);if(value>=0){return value+"px"}}else{return value}}}});if(!jQuery.support.opacity){jQuery.cssHooks.opacity={get:function(elem,computed){return ropacity.test((computed&&elem.currentStyle?elem.currentStyle.filter:elem.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":computed?"1":""},set:function(elem,value){var style=elem.style,currentStyle=elem.currentStyle;style.zoom=1;var opacity=jQuery.isNaN(value)?"":"alpha(opacity="+value*100+")",filter=currentStyle&&currentStyle.filter||style.filter||"";style.filter=ralpha.test(filter)?filter.replace(ralpha,opacity):filter+" "+opacity}}}jQuery(function(){if(!jQuery.support.reliableMarginRight){jQuery.cssHooks.marginRight={get:function(elem,computed){var ret;jQuery.swap(elem,{display:"inline-block"},function(){if(computed){ret=curCSS(elem,"margin-right","marginRight")}else{ret=elem.style.marginRight}});return ret}}}});if(document.defaultView&&document.defaultView.getComputedStyle){getComputedStyle=function(elem,name){var ret,defaultView,computedStyle;name=name.replace(rupper,"-$1").toLowerCase();if(!(defaultView=elem.ownerDocument.defaultView)){return undefined}if((computedStyle=defaultView.getComputedStyle(elem,null))){ret=computedStyle.getPropertyValue(name);if(ret===""&&!jQuery.contains(elem.ownerDocument.documentElement,elem)){ret=jQuery.style(elem,name)}}return ret}}if(document.documentElement.currentStyle){currentStyle=function(elem,name){var left,ret=elem.currentStyle&&elem.currentStyle[name],rsLeft=elem.runtimeStyle&&elem.runtimeStyle[name],style=elem.style;if(!rnumpx.test(ret)&&rnum.test(ret)){left=style.left;if(rsLeft){elem.runtimeStyle.left=elem.currentStyle.left}style.left=name==="fontSize"?"1em":(ret||0);ret=style.pixelLeft+"px";style.left=left;if(rsLeft){elem.runtimeStyle.left=rsLeft}}return ret===""?"auto":ret}}curCSS=getComputedStyle||currentStyle;function getWH(elem,name,extra){var which=name==="width"?cssWidth:cssHeight,val=name==="width"?elem.offsetWidth:elem.offsetHeight;if(extra==="border"){return val}jQuery.each(which,function(){if(!extra){val-=parseFloat(jQuery.css(elem,"padding"+this))||0}if(extra==="margin"){val+=parseFloat(jQuery.css(elem,"margin"+this))||0}else{val-=parseFloat(jQuery.css(elem,"border"+this+"Width"))||0}});return val}if(jQuery.expr&&jQuery.expr.filters){jQuery.expr.filters.hidden=function(elem){var width=elem.offsetWidth,height=elem.offsetHeight;return(width===0&&height===0)||(!jQuery.support.reliableHiddenOffsets&&(elem.style.display||jQuery.css(elem,"display"))==="none")};jQuery.expr.filters.visible=function(elem){return !jQuery.expr.filters.hidden(elem)}}var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rhash=/#.*$/,rheaders=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,rinput=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,rlocalProtocol=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rquery=/\?/,rscript=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,rselectTextarea=/^(?:select|textarea)/i,rspacesAjax=/\s+/,rts=/([?&])_=[^&]*/,rurl=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,_load=jQuery.fn.load,prefilters={},transports={},ajaxLocation,ajaxLocParts;try{ajaxLocation=location.href}catch(e){ajaxLocation=document.createElement("a");ajaxLocation.href="";ajaxLocation=ajaxLocation.href}ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*"}if(jQuery.isFunction(func)){var dataTypes=dataTypeExpression.toLowerCase().split(rspacesAjax),i=0,length=dataTypes.length,dataType,list,placeBefore;for(;i<length;i++){dataType=dataTypes[i];placeBefore=/^\+/.test(dataType);if(placeBefore){dataType=dataType.substr(1)||"*"}list=structure[dataType]=structure[dataType]||[];list[placeBefore?"unshift":"push"](func)}}}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,dataType,inspected){dataType=dataType||options.dataTypes[0];inspected=inspected||{};inspected[dataType]=true;var list=structure[dataType],i=0,length=list?list.length:0,executeOnly=(structure===prefilters),selection;for(;i<length&&(executeOnly||!selection);i++){selection=list[i](options,originalOptions,jqXHR);if(typeof selection==="string"){if(!executeOnly||inspected[selection]){selection=undefined}else{options.dataTypes.unshift(selection);selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,selection,inspected)}}}if((executeOnly||!selection)&&!inspected["*"]){selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,"*",inspected)}return selection}jQuery.fn.extend({load:function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments)}else{if(!this.length){return this}}var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off)}var type="GET";if(params){if(jQuery.isFunction(params)){callback=params;params=undefined}else{if(typeof params==="object"){params=jQuery.param(params,jQuery.ajaxSettings.traditional);type="POST"}}}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(jqXHR,status,responseText){responseText=jqXHR.responseText;if(jqXHR.isResolved()){jqXHR.done(function(r){responseText=r});self.html(selector?jQuery("<div>").append(responseText.replace(rscript,"")).find(selector):responseText)}if(callback){self.each(callback,[responseText,status,jqXHR])}}});return this},serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?jQuery.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||rselectTextarea.test(this.nodeName)||rinput.test(this.type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});jQuery.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f)}});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined}return jQuery.ajax({type:method,url:url,data:data,success:callback,dataType:type})}});jQuery.extend({getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script")},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},ajaxSetup:function(target,settings){if(!settings){settings=target;target=jQuery.extend(true,jQuery.ajaxSettings,settings)}else{jQuery.extend(true,target,jQuery.ajaxSettings,settings)}for(var field in {context:1,url:1}){if(field in settings){target[field]=settings[field]}else{if(field in jQuery.ajaxSettings){target[field]=jQuery.ajaxSettings[field]}}}return target},ajaxSettings:{url:ajaxLocation,isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":window.String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML}},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined}options=options||{};var s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=callbackContext!==s&&(callbackContext.nodeType||callbackContext instanceof jQuery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery._Deferred(),statusCode=s.statusCode||{},ifModifiedKey,requestHeaders={},requestHeadersNames={},responseHeadersString,responseHeaders,transport,timeoutTimer,parts,state=0,fireGlobals,i,jqXHR={readyState:0,setRequestHeader:function(name,value){if(!state){var lname=name.toLowerCase();name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value}return this},getAllResponseHeaders:function(){return state===2?responseHeadersString:null},getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()]=match[2]}}match=responseHeaders[key.toLowerCase()]}return match===undefined?null:match},overrideMimeType:function(type){if(!state){s.mimeType=type}return this},abort:function(statusText){statusText=statusText||"abort";if(transport){transport.abort(statusText)}done(0,statusText);return this}};function done(status,statusText,responses,headers){if(state===2){return }state=2;if(timeoutTimer){clearTimeout(timeoutTimer)}transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status?4:0;var isSuccess,success,error,response=responses?ajaxHandleResponses(s,jqXHR,responses):undefined,lastModified,etag;if(status>=200&&status<300||status===304){if(s.ifModified){if((lastModified=jqXHR.getResponseHeader("Last-Modified"))){jQuery.lastModified[ifModifiedKey]=lastModified}if((etag=jqXHR.getResponseHeader("Etag"))){jQuery.etag[ifModifiedKey]=etag}}if(status===304){statusText="notmodified";isSuccess=true}else{try{success=ajaxConvert(s,response);statusText="success";isSuccess=true}catch(e){statusText="parsererror";error=e}}}else{error=statusText;if(!statusText||status){statusText="error";if(status<0){status=0}}}jqXHR.status=status;jqXHR.statusText=statusText;if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR])}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error])}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger("ajax"+(isSuccess?"Success":"Error"),[jqXHR,s,isSuccess?success:error])}completeDeferred.resolveWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop")}}}deferred.promise(jqXHR);jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;jqXHR.complete=completeDeferred.done;jqXHR.statusCode=function(map){if(map){var tmp;if(state<2){for(tmp in map){statusCode[tmp]=[statusCode[tmp],map[tmp]]}}else{tmp=map[jqXHR.status];jqXHR.then(tmp,tmp)}}return this};s.url=((url||s.url)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().split(rspacesAjax);if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!=ajaxLocParts[1]||parts[2]!=ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?80:443))!=(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?80:443))))}if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional)}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return false}fireGlobals=s.global;s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart")}if(!s.hasContent){if(s.data){s.url+=(rquery.test(s.url)?"&":"?")+s.data}ifModifiedKey=s.url;if(s.cache===false){var ts=jQuery.now(),ret=s.url.replace(rts,"$1_="+ts);s.url=ret+((ret===s.url)?(rquery.test(s.url)?"&":"?")+"_="+ts:"")}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType)}if(s.ifModified){ifModifiedKey=ifModifiedKey||s.url;if(jQuery.lastModified[ifModifiedKey]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[ifModifiedKey])}if(jQuery.etag[ifModifiedKey]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[ifModifiedKey])}}jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", */*; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i])}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){jqXHR.abort();return false}for(i in {success:1,error:1,complete:1}){jqXHR[i](s[i])}transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport")}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s])}if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort("timeout")},s.timeout)}try{state=1;transport.send(requestHeaders,done)}catch(e){if(status<2){done(-1,e)}else{jQuery.error(e)}}}return jqXHR},param:function(a,traditional){var s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)};if(traditional===undefined){traditional=jQuery.ajaxSettings.traditional}if(jQuery.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value)})}else{for(var prefix in a){buildParams(prefix,a[prefix],traditional,add)}}return s.join("&").replace(r20,"+")}});function buildParams(prefix,obj,traditional,add){if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v)}else{buildParams(prefix+"["+(typeof v==="object"||jQuery.isArray(v)?i:"")+"]",v,traditional,add)}})}else{if(!traditional&&obj!=null&&typeof obj==="object"){for(var name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add)}}else{add(prefix,obj)}}}jQuery.extend({active:0,lastModified:{},etag:{}});function ajaxHandleResponses(s,jqXHR,responses){var contents=s.contents,dataTypes=s.dataTypes,responseFields=s.responseFields,ct,type,finalDataType,firstDataType;for(type in responseFields){if(type in responses){jqXHR[responseFields[type]]=responses[type]}}while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("content-type")}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}}}if(dataTypes[0] in responses){finalDataType=dataTypes[0]}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}if(!firstDataType){firstDataType=type}}finalDataType=finalDataType||firstDataType}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType)}return responses[finalDataType]}}function ajaxConvert(s,response){if(s.dataFilter){response=s.dataFilter(response,s.dataType)}var dataTypes=s.dataTypes,converters={},i,key,length=dataTypes.length,tmp,current=dataTypes[0],prev,conversion,conv,conv1,conv2;for(i=1;i<length;i++){if(i===1){for(key in s.converters){if(typeof key==="string"){converters[key.toLowerCase()]=s.converters[key]}}}prev=current;current=dataTypes[i];if(current==="*"){current=prev}else{if(prev!=="*"&&prev!==current){conversion=prev+" "+current;conv=converters[conversion]||converters["* "+current];if(!conv){conv2=undefined;for(conv1 in converters){tmp=conv1.split(" ");if(tmp[0]===prev||tmp[0]==="*"){conv2=converters[tmp[1]+" "+current];if(conv2){conv1=converters[conv1];if(conv1===true){conv=conv2}else{if(conv2===true){conv=conv1}}break}}}}if(!(conv||conv2)){jQuery.error("No conversion from "+conversion.replace(" "," to "))}if(conv!==true){response=conv?conv(response):conv2(conv1(response))}}}}return response}var jsc=jQuery.now(),jsre=/(\=)\?(&|$)|\?\?/i;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return jQuery.expando+"_"+(jsc++)}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var inspectData=s.contentType==="application/x-www-form-urlencoded"&&(typeof s.data==="string");if(s.dataTypes[0]==="jsonp"||s.jsonp!==false&&(jsre.test(s.url)||inspectData&&jsre.test(s.data))){var responseContainer,jsonpCallback=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback,previous=window[jsonpCallback],url=s.url,data=s.data,replace="$1"+jsonpCallback+"$2";if(s.jsonp!==false){url=url.replace(jsre,replace);if(s.url===url){if(inspectData){data=data.replace(jsre,replace)}if(s.data===data){url+=(/\?/.test(url)?"&":"?")+s.jsonp+"="+jsonpCallback}}}s.url=url;s.data=data;window[jsonpCallback]=function(response){responseContainer=[response]};jqXHR.always(function(){window[jsonpCallback]=previous;if(responseContainer&&jQuery.isFunction(previous)){window[jsonpCallback](responseContainer[0])}});s.converters["script json"]=function(){if(!responseContainer){jQuery.error(jsonpCallback+" was not called")}return responseContainer[0]};s.dataTypes[0]="json";return"script"}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(text){jQuery.globalEval(text);return text}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false}if(s.crossDomain){s.type="GET";s.global=false}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,head=document.head||document.getElementsByTagName("head")[0]||document.documentElement;return{send:function(_,callback){script=document.createElement("script");script.async="async";if(s.scriptCharset){script.charset=s.scriptCharset}script.src=s.url;script.onload=script.onreadystatechange=function(_,isAbort){if(isAbort||!script.readyState||/loaded|complete/.test(script.readyState)){script.onload=script.onreadystatechange=null;if(head&&script.parentNode){head.removeChild(script)}script=undefined;if(!isAbort){callback(200,"success")}}};head.insertBefore(script,head.firstChild)},abort:function(){if(script){script.onload(0,1)}}}}});var xhrOnUnloadAbort=window.ActiveXObject?function(){for(var key in xhrCallbacks){xhrCallbacks[key](0,1)}}:false,xhrId=0,xhrCallbacks;function createStandardXHR(){try{return new window.XMLHttpRequest()}catch(e){}}function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}jQuery.ajaxSettings.xhr=window.ActiveXObject?function(){return !this.isLocal&&createStandardXHR()||createActiveXHR()}:createStandardXHR;(function(xhr){jQuery.extend(jQuery.support,{ajax:!!xhr,cors:!!xhr&&("withCredentials" in xhr)})})(jQuery.ajaxSettings.xhr());if(jQuery.support.ajax){jQuery.ajaxTransport(function(s){if(!s.crossDomain||jQuery.support.cors){var callback;return{send:function(headers,complete){var xhr=s.xhr(),handle,i;if(s.username){xhr.open(s.type,s.url,s.async,s.username,s.password)}else{xhr.open(s.type,s.url,s.async)}if(s.xhrFields){for(i in s.xhrFields){xhr[i]=s.xhrFields[i]}}if(s.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(s.mimeType)}if(!s.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest"}try{for(i in headers){xhr.setRequestHeader(i,headers[i])}}catch(_){}xhr.send((s.hasContent&&s.data)||null);callback=function(_,isAbort){var status,statusText,responseHeaders,responses,xml;try{if(callback&&(isAbort||xhr.readyState===4)){callback=undefined;if(handle){xhr.onreadystatechange=jQuery.noop;if(xhrOnUnloadAbort){delete xhrCallbacks[handle]}}if(isAbort){if(xhr.readyState!==4){xhr.abort()}}else{status=xhr.status;responseHeaders=xhr.getAllResponseHeaders();responses={};xml=xhr.responseXML;if(xml&&xml.documentElement){responses.xml=xml}responses.text=xhr.responseText;try{statusText=xhr.statusText}catch(e){statusText=""}if(!status&&s.isLocal&&!s.crossDomain){status=responses.text?200:404}else{if(status===1223){status=204}}}}}catch(firefoxAccessException){if(!isAbort){complete(-1,firefoxAccessException)}}if(responses){complete(status,statusText,responses,responseHeaders)}};if(!s.async||xhr.readyState===4){callback()}else{handle=++xhrId;if(xhrOnUnloadAbort){if(!xhrCallbacks){xhrCallbacks={};jQuery(window).unload(xhrOnUnloadAbort)}xhrCallbacks[handle]=callback}xhr.onreadystatechange=callback}},abort:function(){if(callback){callback(0,1)}}}}})}var elemdisplay={},iframe,iframeDoc,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,timerId,fxAttrs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],fxNow,requestAnimationFrame=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame;jQuery.fn.extend({show:function(speed,easing,callback){var elem,display;if(speed||speed===0){return this.animate(genFx("show",3),speed,easing,callback)}else{for(var i=0,j=this.length;i<j;i++){elem=this[i];if(elem.style){display=elem.style.display;if(!jQuery._data(elem,"olddisplay")&&display==="none"){display=elem.style.display=""}if(display===""&&jQuery.css(elem,"display")==="none"){jQuery._data(elem,"olddisplay",defaultDisplay(elem.nodeName))}}}for(i=0;i<j;i++){elem=this[i];if(elem.style){display=elem.style.display;if(display===""||display==="none"){elem.style.display=jQuery._data(elem,"olddisplay")||""}}}return this}},hide:function(speed,easing,callback){if(speed||speed===0){return this.animate(genFx("hide",3),speed,easing,callback)}else{for(var i=0,j=this.length;i<j;i++){if(this[i].style){var display=jQuery.css(this[i],"display");if(display!=="none"&&!jQuery._data(this[i],"olddisplay")){jQuery._data(this[i],"olddisplay",display)}}}for(i=0;i<j;i++){if(this[i].style){this[i].style.display="none"}}return this}},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2,callback){var bool=typeof fn==="boolean";if(jQuery.isFunction(fn)&&jQuery.isFunction(fn2)){this._toggle.apply(this,arguments)}else{if(fn==null||bool){this.each(function(){var state=bool?fn:jQuery(this).is(":hidden");jQuery(this)[state?"show":"hide"]()})}else{this.animate(genFx("toggle",3),fn,fn2,callback)}}return this},fadeTo:function(speed,to,easing,callback){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);if(jQuery.isEmptyObject(prop)){return this.each(optall.complete,[false])}prop=jQuery.extend({},prop);return this[optall.queue===false?"each":"queue"](function(){if(optall.queue===false){jQuery._mark(this)}var opt=jQuery.extend({},optall),isElement=this.nodeType===1,hidden=isElement&&jQuery(this).is(":hidden"),name,val,p,display,e,parts,start,end,unit;opt.animatedProperties={};for(p in prop){name=jQuery.camelCase(p);if(p!==name){prop[name]=prop[p];delete prop[p]}val=prop[name];if(jQuery.isArray(val)){opt.animatedProperties[name]=val[1];val=prop[name]=val[0]}else{opt.animatedProperties[name]=opt.specialEasing&&opt.specialEasing[name]||opt.easing||"swing"}if(val==="hide"&&hidden||val==="show"&&!hidden){return opt.complete.call(this)}if(isElement&&(name==="height"||name==="width")){opt.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(jQuery.css(this,"display")==="inline"&&jQuery.css(this,"float")==="none"){if(!jQuery.support.inlineBlockNeedsLayout){this.style.display="inline-block"}else{display=defaultDisplay(this.nodeName);if(display==="inline"){this.style.display="inline-block"}else{this.style.display="inline";this.style.zoom=1}}}}}if(opt.overflow!=null){this.style.overflow="hidden"}for(p in prop){e=new jQuery.fx(this,opt,p);val=prop[p];if(rfxtypes.test(val)){e[val==="toggle"?hidden?"show":"hide":val]()}else{parts=rfxnum.exec(val);start=e.cur();if(parts){end=parseFloat(parts[2]);unit=parts[3]||(jQuery.cssNumber[p]?"":"px");if(unit!=="px"){jQuery.style(this,p,(end||1)+unit);start=((end||1)/e.cur())*start;jQuery.style(this,p,start+unit)}if(parts[1]){end=((parts[1]==="-="?-1:1)*end)+start}e.custom(start,end,unit)}else{e.custom(start,val,"")}}}return true})},stop:function(clearQueue,gotoEnd){if(clearQueue){this.queue([])}this.each(function(){var timers=jQuery.timers,i=timers.length;if(!gotoEnd){jQuery._unmark(true,this)}while(i--){if(timers[i].elem===this){if(gotoEnd){timers[i](true)}timers.splice(i,1)}}});if(!gotoEnd){this.dequeue()}return this}});function createFxNow(){setTimeout(clearFxNow,0);return(fxNow=jQuery.now())}function clearFxNow(){fxNow=undefined}function genFx(type,num){var obj={};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type});return obj}jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),slideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}});jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;opt.old=opt.complete;opt.complete=function(noUnmark){if(opt.queue!==false){jQuery.dequeue(this)}else{if(noUnmark!==false){jQuery._unmark(this)}}if(jQuery.isFunction(opt.old)){opt.old.call(this)}};return opt},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum}},timers:[],fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;options.orig=options.orig||{}}});jQuery.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var parsed,r=jQuery.css(this.elem,this.prop);return isNaN(parsed=parseFloat(r))?!r||r==="auto"?0:r:parsed},custom:function(from,to,unit){var self=this,fx=jQuery.fx,raf;this.startTime=fxNow||createFxNow();this.start=from;this.end=to;this.unit=unit||this.unit||(jQuery.cssNumber[this.prop]?"":"px");this.now=this.start;this.pos=this.state=0;function t(gotoEnd){return self.step(gotoEnd)}t.elem=this.elem;if(t()&&jQuery.timers.push(t)&&!timerId){if(requestAnimationFrame){timerId=1;raf=function(){if(timerId){requestAnimationFrame(raf);fx.tick()}};requestAnimationFrame(raf)}else{timerId=setInterval(fx.tick,fx.interval)}}},show:function(){this.options.orig[this.prop]=jQuery.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());jQuery(this.elem).show()},hide:function(){this.options.orig[this.prop]=jQuery.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(gotoEnd){var t=fxNow||createFxNow(),done=true,elem=this.elem,options=this.options,i,n;if(gotoEnd||t>=options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();options.animatedProperties[this.prop]=true;for(i in options.animatedProperties){if(options.animatedProperties[i]!==true){done=false}}if(done){if(options.overflow!=null&&!jQuery.support.shrinkWrapBlocks){jQuery.each(["","X","Y"],function(index,value){elem.style["overflow"+value]=options.overflow[index]})}if(options.hide){jQuery(elem).hide()}if(options.hide||options.show){for(var p in options.animatedProperties){jQuery.style(elem,p,options.orig[p])}}options.complete.call(elem)}return false}else{if(options.duration==Infinity){this.now=t}else{n=t-this.startTime;this.state=n/options.duration;this.pos=jQuery.easing[options.animatedProperties[this.prop]](this.state,n,0,1,options.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};jQuery.extend(jQuery.fx,{tick:function(){for(var timers=jQuery.timers,i=0;i<timers.length;++i){if(!timers[i]()){timers.splice(i--,1)}}if(!timers.length){jQuery.fx.stop()}},interval:13,stop:function(){clearInterval(timerId);timerId=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(fx){jQuery.style(fx.elem,"opacity",fx.now)},_default:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=null){fx.elem.style[fx.prop]=(fx.prop==="width"||fx.prop==="height"?Math.max(0,fx.now):fx.now)+fx.unit}else{fx.elem[fx.prop]=fx.now}}}});if(jQuery.expr&&jQuery.expr.filters){jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length}}function defaultDisplay(nodeName){if(!elemdisplay[nodeName]){var elem=jQuery("<"+nodeName+">").appendTo("body"),display=elem.css("display");elem.remove();if(display==="none"||display===""){if(!iframe){iframe=document.createElement("iframe");iframe.frameBorder=iframe.width=iframe.height=0}document.body.appendChild(iframe);if(!iframeDoc||!iframe.createElement){iframeDoc=(iframe.contentWindow||iframe.contentDocument).document;iframeDoc.write("<!doctype><html><body></body></html>")}elem=iframeDoc.createElement(nodeName);iframeDoc.body.appendChild(elem);display=jQuery.css(elem,"display");document.body.removeChild(iframe)}elemdisplay[nodeName]=display}return elemdisplay[nodeName]}var rtable=/^t(?:able|d|h)$/i,rroot=/^(?:body|html)$/i;if("getBoundingClientRect" in document.documentElement){jQuery.fn.offset=function(options){var elem=this[0],box;if(options){return this.each(function(i){jQuery.offset.setOffset(this,options,i)})}if(!elem||!elem.ownerDocument){return null}if(elem===elem.ownerDocument.body){return jQuery.offset.bodyOffset(elem)}try{box=elem.getBoundingClientRect()}catch(e){}var doc=elem.ownerDocument,docElem=doc.documentElement;if(!box||!jQuery.contains(docElem,elem)){return box?{top:box.top,left:box.left}:{top:0,left:0}}var body=doc.body,win=getWindow(doc),clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,scrollTop=win.pageYOffset||jQuery.support.boxModel&&docElem.scrollTop||body.scrollTop,scrollLeft=win.pageXOffset||jQuery.support.boxModel&&docElem.scrollLeft||body.scrollLeft,top=box.top+scrollTop-clientTop,left=box.left+scrollLeft-clientLeft;return{top:top,left:left}}}else{jQuery.fn.offset=function(options){var elem=this[0];if(options){return this.each(function(i){jQuery.offset.setOffset(this,options,i)})}if(!elem||!elem.ownerDocument){return null}if(elem===elem.ownerDocument.body){return jQuery.offset.bodyOffset(elem)}jQuery.offset.initialize();var computedStyle,offsetParent=elem.offsetParent,prevOffsetParent=elem,doc=elem.ownerDocument,docElem=doc.documentElement,body=doc.body,defaultView=doc.defaultView,prevComputedStyle=defaultView?defaultView.getComputedStyle(elem,null):elem.currentStyle,top=elem.offsetTop,left=elem.offsetLeft;while((elem=elem.parentNode)&&elem!==body&&elem!==docElem){if(jQuery.offset.supportsFixedPosition&&prevComputedStyle.position==="fixed"){break}computedStyle=defaultView?defaultView.getComputedStyle(elem,null):elem.currentStyle;top-=elem.scrollTop;left-=elem.scrollLeft;if(elem===offsetParent){top+=elem.offsetTop;left+=elem.offsetLeft;if(jQuery.offset.doesNotAddBorder&&!(jQuery.offset.doesAddBorderForTableAndCells&&rtable.test(elem.nodeName))){top+=parseFloat(computedStyle.borderTopWidth)||0;left+=parseFloat(computedStyle.borderLeftWidth)||0}prevOffsetParent=offsetParent;offsetParent=elem.offsetParent}if(jQuery.offset.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible"){top+=parseFloat(computedStyle.borderTopWidth)||0;left+=parseFloat(computedStyle.borderLeftWidth)||0}prevComputedStyle=computedStyle}if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static"){top+=body.offsetTop;left+=body.offsetLeft}if(jQuery.offset.supportsFixedPosition&&prevComputedStyle.position==="fixed"){top+=Math.max(docElem.scrollTop,body.scrollTop);left+=Math.max(docElem.scrollLeft,body.scrollLeft)}return{top:top,left:left}}}jQuery.offset={initialize:function(){var body=document.body,container=document.createElement("div"),innerDiv,checkDiv,table,td,bodyMarginTop=parseFloat(jQuery.css(body,"marginTop"))||0,html="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";jQuery.extend(container.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});container.innerHTML=html;body.insertBefore(container,body.firstChild);innerDiv=container.firstChild;checkDiv=innerDiv.firstChild;td=innerDiv.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(checkDiv.offsetTop!==5);this.doesAddBorderForTableAndCells=(td.offsetTop===5);checkDiv.style.position="fixed";checkDiv.style.top="20px";this.supportsFixedPosition=(checkDiv.offsetTop===20||checkDiv.offsetTop===15);checkDiv.style.position=checkDiv.style.top="";innerDiv.style.overflow="hidden";innerDiv.style.position="relative";this.subtractsBorderForOverflowNotVisible=(checkDiv.offsetTop===-5);this.doesNotIncludeMarginInBodyOffset=(body.offsetTop!==bodyMarginTop);body.removeChild(container);jQuery.offset.initialize=jQuery.noop},bodyOffset:function(body){var top=body.offsetTop,left=body.offsetLeft;jQuery.offset.initialize();if(jQuery.offset.doesNotIncludeMarginInBodyOffset){top+=parseFloat(jQuery.css(body,"marginTop"))||0;left+=parseFloat(jQuery.css(body,"marginLeft"))||0}return{top:top,left:left}},setOffset:function(elem,options,i){var position=jQuery.css(elem,"position");if(position==="static"){elem.style.position="relative"}var curElem=jQuery(elem),curOffset=curElem.offset(),curCSSTop=jQuery.css(elem,"top"),curCSSLeft=jQuery.css(elem,"left"),calculatePosition=(position==="absolute"||position==="fixed")&&jQuery.inArray("auto",[curCSSTop,curCSSLeft])>-1,props={},curPosition={},curTop,curLeft;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0}if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset)}if(options.top!=null){props.top=(options.top-curOffset.top)+curTop}if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft}if("using" in options){options.using.call(elem,props)}else{curElem.css(props)}}};jQuery.fn.extend({position:function(){if(!this[0]){return null}var elem=this[0],offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=rroot.test(offsetParent[0].nodeName)?{top:0,left:0}:offsetParent.offset();offset.top-=parseFloat(jQuery.css(elem,"marginTop"))||0;offset.left-=parseFloat(jQuery.css(elem,"marginLeft"))||0;parentOffset.top+=parseFloat(jQuery.css(offsetParent[0],"borderTopWidth"))||0;parentOffset.left+=parseFloat(jQuery.css(offsetParent[0],"borderLeftWidth"))||0;return{top:offset.top-parentOffset.top,left:offset.left-parentOffset.left}},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||document.body;while(offsetParent&&(!rroot.test(offsetParent.nodeName)&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent}return offsetParent})}});jQuery.each(["Left","Top"],function(i,name){var method="scroll"+name;jQuery.fn[method]=function(val){var elem,win;if(val===undefined){elem=this[0];if(!elem){return null}win=getWindow(elem);return win?("pageXOffset" in win)?win[i?"pageYOffset":"pageXOffset"]:jQuery.support.boxModel&&win.document.documentElement[method]||win.document.body[method]:elem[method]}return this.each(function(){win=getWindow(this);if(win){win.scrollTo(!i?val:jQuery(win).scrollLeft(),i?val:jQuery(win).scrollTop())}else{this[method]=val}})}});function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9?elem.defaultView||elem.parentWindow:false}jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn["inner"+name]=function(){return this[0]?parseFloat(jQuery.css(this[0],type,"padding")):null};jQuery.fn["outer"+name]=function(margin){return this[0]?parseFloat(jQuery.css(this[0],type,margin?"margin":"border")):null};jQuery.fn[type]=function(size){var elem=this[0];if(!elem){return size==null?null:this}if(jQuery.isFunction(size)){return this.each(function(i){var self=jQuery(this);self[type](size.call(this,i,self[type]()))})}if(jQuery.isWindow(elem)){var docElemProp=elem.document.documentElement["client"+name];return elem.document.compatMode==="CSS1Compat"&&docElemProp||elem.document.body["client"+name]||docElemProp}else{if(elem.nodeType===9){return Math.max(elem.documentElement["client"+name],elem.body["scroll"+name],elem.documentElement["scroll"+name],elem.body["offset"+name],elem.documentElement["offset"+name])}else{if(size===undefined){var orig=jQuery.css(elem,type),ret=parseFloat(orig);return jQuery.isNaN(ret)?orig:ret}else{return this.css(type,typeof size==="string"?size:size+"px")}}}}});window.jQuery=window.$=jQuery})(window);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/plugins/ariaTabs/js/ui.ariaTabs.js b/docs/jscripts/infusion/lib/jquery/plugins/ariaTabs/js/ui.ariaTabs.js
new file mode 100644 (file)
index 0000000..3b43b68
--- /dev/null
@@ -0,0 +1,11 @@
+/*
+ * jQuery UI AriaTabs (12.07.10)
+ * http://github.com/fnagel/jQuery-Accessible-RIA
+ *
+ * Copyright (c) 2009 Felix Nagel for Namics (Deustchland) GmbH
+ * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+ *
+ * Depends: ui.core.js 1.8
+ *             ui.tabs.js
+ */
+(function($){$.fn.extend($.ui.tabs.prototype,{_create:function(){var self=this,options=this.options;if($.address){var jqAddressDefOpt={enable:true,title:{enable:true,split:" | "}};if(!$.isEmptyObject(options.jqAddress)){$.extend(true,jqAddressDefOpt,options.jqAddress)}else{options.jqAddress={}}$.extend(true,options.jqAddress,jqAddressDefOpt)}if($.address&&options.jqAddress.enable){var anchorId="#"+$.address.value().replace("/","")}self._tabify(true);this.anchors.bind(options.event+".tabs-accessibility",function(){this.focus()});self.list.attr("role","tablist");for(var x=0;x<self.anchors.length;x++){if($.address&&options.jqAddress.enable&&anchorId!="#"&&$(self.anchors[x]).attr("href")==anchorId){self.select(x)}self._ariaInit(x)}self.list.keydown(function(event){switch(event.keyCode){case $.ui.keyCode.RIGHT:self.select(options.selected+1);return false;break;case $.ui.keyCode.DOWN:self.select(options.selected+1);break;case $.ui.keyCode.UP:self.select(options.selected-1);return false;break;case $.ui.keyCode.LEFT:self.select(options.selected-1);return false;break;case $.ui.keyCode.END:self.select(self.anchors.length-1);return false;break;case $.ui.keyCode.HOME:self.select(0);return false;break}});if($.address&&this.options.jqAddress.enable){$.address.externalChange(function(event){var anchorId="#"+event.value.replace("/","");var x=0;while(x<self.anchors.length){if($(self.anchors[x]).attr("href")==anchorId){self.select(x);return }x++}})}},_original_load:$.ui.tabs.prototype.load,load:function(index){if($.address&&this.options.jqAddress.enable){if($(this.anchors[0]).attr("aria-selected")!==undefined){if(this.options.forceFirst===0&&index!==0){if($.address.value()==""){$.address.history(false)}$.address.value($(this.anchors[0]).attr("href").replace(/^#/,""));$.address.history(true);this.options.forceFirst=false}if(this.options.jqAddress.title.enable){$.address.title($.address.title().split(this.options.jqAddress.title.split)[0]+this.options.jqAddress.title.split+$(this.anchors[index]).text())}$.address.value($(this.anchors[index]).attr("href").replace(/^#/,""))}else{this.options.forceFirst=index}}for(var x=0;x<this.anchors.length;x++){this._ariaSet(x,false);if($.data(this.anchors[x],"href.tabs")){$(this.panels[x]).removeAttr("aria-live").removeAttr("aria-busy")}}if($.data(this.anchors[index],"href.tabs")){$(this.panels[index]).attr("aria-live","polite").attr("aria-busy","true")}this._original_load(index);if($.data(this.anchors[index],"href.tabs")){$(this.panels[index]).attr("aria-busy","false")}this._ariaSet(index,true)},_ariaSet:function(index,state){var tabindex=(state)?0:-1;var anchor=$(this.anchors[index]);anchor.attr("tabindex",tabindex).attr("aria-selected",state);if(state){if(!$.browser.msie){anchor.focus()}}else{anchor.closest("li").removeClass("ui-state-focus")}$(this.panels[index]).attr("aria-hidden",!state).attr("aria-expanded",state);if($.browser.msie){this.options.timeout=window.setTimeout(function(){anchor.focus()},100)}if(state){this._updateVirtualBuffer()}},_ariaInit:function(index){var self=this;var panelId=$(this.panels[index]).attr("id");$(this.anchors[index]).attr("role","tab").attr("aria-controls",panelId).attr("id",panelId+"-tab").parent().attr("role","presentation");$(this.panels[index]).attr("role","tabpanel").attr("tabindex",0).attr("aria-labelledby",panelId+"-tab");if(this.options.collapsible){$(this.anchors[index]).bind(this.options.event,function(event){self._ariaSet(index,!$(self.panels[index]).hasClass("ui-tabs-hide"))})}},_original_add:$.ui.tabs.prototype.add,add:function(url,label,index){this._original_add(url,label,index);this.element.attr("aria-live","polite").attr("aria-relevant","additions");if(index){this._ariaInit(index);this._ariaSet(index,false)}else{this._ariaInit(this.anchors.length-1);this._ariaSet(this.anchors.length-1,false)}},_original_remove:$.ui.tabs.prototype.remove,remove:function(index){this._original_remove(index);this.element.attr("aria-live","polite").attr("aria-relevant","removals")},_original_destroy:$.ui.tabs.prototype.destroy,destroy:function(){var self=this,options=this.options;self.element.removeAttr("role").removeAttr("aria-live").removeAttr("aria-relevant");self.list.removeAttr("role");for(var x=0;x<self.anchors.length;x++){$(self.anchors[x]).removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("role").removeAttr("id").removeAttr("tabindex").parent().removeAttr("role");$(self.panels[x]).removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("aria-labelledby").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-relevant").removeAttr("role")}$("body>form #virtualBufferForm").parent().remove();this._original_destroy()},_updateVirtualBuffer:function(){var form=$("body>form #virtualBufferForm");if(form.length){if(form.val()=="1"){form.val("0")}else{form.val("1")}if(form.hasClass("ui-accessibility-odd")){form.addClass("ui-accessibility-even").removeClass("ui-accessibility-odd")}else{form.addClass("ui-accessibility-odd").removeClass("ui-accessibility-even")}}else{$("body").append('<form><input id="virtualBufferForm" type="hidden" value="1" /></form>')}}})})(jQuery);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/plugins/scrollTo/js/jquery.scrollTo.js b/docs/jscripts/infusion/lib/jquery/plugins/scrollTo/js/jquery.scrollTo.js
new file mode 100644 (file)
index 0000000..cb5bc26
--- /dev/null
@@ -0,0 +1 @@
+(function($){var $scrollTo=$.scrollTo=function(target,duration,settings){$(window).scrollTo(target,duration,settings)};$scrollTo.defaults={axis:"xy",duration:parseFloat($.fn.jquery)>=1.3?0:1};$scrollTo.window=function(scope){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var elem=this,isWin=!elem.nodeName||$.inArray(elem.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!isWin){return elem}var doc=(elem.contentWindow||elem).document||elem.ownerDocument||elem;return $.browser.safari||doc.compatMode=="BackCompat"?doc.body:doc.documentElement})};$.fn.scrollTo=function(target,duration,settings){if(typeof duration=="object"){settings=duration;duration=0}if(typeof settings=="function"){settings={onAfter:settings}}if(target=="max"){target=9000000000}settings=$.extend({},$scrollTo.defaults,settings);duration=duration||settings.speed||settings.duration;settings.queue=settings.queue&&settings.axis.length>1;if(settings.queue){duration/=2}settings.offset=both(settings.offset);settings.over=both(settings.over);return this._scrollable().each(function(){var elem=this,$elem=$(elem),targ=target,toff,attr={},win=$elem.is("html,body");switch(typeof targ){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);case"object":if(targ.is||targ.style){toff=(targ=$(targ)).offset()}}$.each(settings.axis.split(""),function(i,axis){var Pos=axis=="x"?"Left":"Top",pos=Pos.toLowerCase(),key="scroll"+Pos,old=elem[key],max=$scrollTo.max(elem,axis);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(settings.margin){attr[key]-=parseInt(targ.css("margin"+Pos))||0;attr[key]-=parseInt(targ.css("border"+Pos+"Width"))||0}attr[key]+=settings.offset[pos]||0;if(settings.over[pos]){attr[key]+=targ[axis=="x"?"width":"height"]()*settings.over[pos]}}else{var val=targ[pos];attr[key]=val.slice&&val.slice(-1)=="%"?parseFloat(val)/100*max:val}if(/^\d+$/.test(attr[key])){attr[key]=attr[key]<=0?0:Math.min(attr[key],max)}if(!i&&settings.queue){if(old!=attr[key]){animate(settings.onAfterFirst)}delete attr[key]}});animate(settings.onAfter);function animate(callback){$elem.animate(attr,duration,settings.easing,callback&&function(){callback.call(this,target,settings)})}}).end()};$scrollTo.max=function(elem,axis){var Dim=axis=="x"?"Width":"Height",scroll="scroll"+Dim;if(!$(elem).is("html,body")){return elem[scroll]-$(elem)[Dim.toLowerCase()]()}var size="client"+Dim,html=elem.ownerDocument.documentElement,body=elem.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[size],body[size])};function both(val){return typeof val=="object"?val:{top:val,left:val}}})(jQuery);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/plugins/tooltip/README b/docs/jscripts/infusion/lib/jquery/plugins/tooltip/README
new file mode 100644 (file)
index 0000000..009a9da
--- /dev/null
@@ -0,0 +1,7 @@
+This version of the jQuery UI tooltip plugin is a pre-release version from the 
+tooltip branch on github for jQuery UI v1.9 
+https://github.com/jquery/jquery-ui/tree/tooltip
+
+    commit  48a5977d3325869abd7b
+    tree    43fd0cda4af2cdcd33f5
+    parent  bdd815e8dcdeace8be6d
\ No newline at end of file
index 7594ab2..edf2cab 100644 (file)
@@ -1,2 +1,3 @@
-#tooltip{position:absolute;z-index:3000;border:1px solid #111;background-color:#ffffe1;padding:2px;}
-#tooltip h3,#tooltip div{margin:0;}
\ No newline at end of file
+.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}
+* html .ui-tooltip{background-image:none;}
+body .ui-tooltip{border-width:2px;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/plugins/tooltip/js/jquery.ui.tooltip.js b/docs/jscripts/infusion/lib/jquery/plugins/tooltip/js/jquery.ui.tooltip.js
new file mode 100644 (file)
index 0000000..dbcf4cb
--- /dev/null
@@ -0,0 +1 @@
+(function($){var increments=0;$.widget("ui.tooltip",{options:{items:"[title]",content:function(){return $(this).attr("title")},position:{my:"left center",at:"right center",offset:"15 0"}},_create:function(){var self=this;this.tooltip=$("<div></div>").attr("id","ui-tooltip-"+increments++).attr("role","tooltip").attr("aria-hidden","true").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content").appendTo(document.body).hide();this.tooltipContent=$("<div></div>").addClass("ui-tooltip-content").appendTo(this.tooltip);this.opacity=this.tooltip.css("opacity");this.element.bind("focus.tooltip mouseover.tooltip",function(event){self.open(event)}).bind("blur.tooltip mouseout.tooltip",function(event){self.close(event)})},enable:function(){this.options.disabled=false},disable:function(){this.options.disabled=true},destroy:function(){this.tooltip.remove();$.Widget.prototype.destroy.apply(this,arguments)},widget:function(){return this.element.pushStack(this.tooltip.get())},open:function(event){var target=$(event&&event.target||this.element).closest(this.options.items);if(this.current&&this.current[0]==target[0]){return }var self=this;this.current=target;this.currentTitle=target.attr("title");var content=this.options.content.call(target[0],function(response){setTimeout(function(){if(self.current==target){self._show(event,target,response)}},13)});if(content){self._show(event,target,content)}},_show:function(event,target,content){if(!content){return }target.attr("title","");if(this.options.disabled){return }this.tooltipContent.html(content);this.tooltip.css({top:0,left:0}).show().position($.extend({of:target},this.options.position)).hide();this.tooltip.attr("aria-hidden","false");target.attr("aria-describedby",this.tooltip.attr("id"));this.tooltip.stop(false,true).fadeIn();this._trigger("open",event)},close:function(event){if(!this.current){return }var current=this.current;this.current=null;current.attr("title",this.currentTitle);if(this.options.disabled){return }current.removeAttr("aria-describedby");this.tooltip.attr("aria-hidden","true");this.tooltip.stop(false,true).fadeOut();this._trigger("close",event)}})})(jQuery);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644 (file)
index 0000000..5b5dab2
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_flat_0_aaaaaa_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_flat_75_ffffff_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644 (file)
index 0000000..ac8b229
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_flat_75_ffffff_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_55_fbf9ee_1x400.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100644 (file)
index 0000000..ad3d634
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_55_fbf9ee_1x400.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_65_ffffff_1x400.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100644 (file)
index 0000000..42ccba2
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_65_ffffff_1x400.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_75_dadada_1x400.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644 (file)
index 0000000..5a46b47
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_75_dadada_1x400.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100644 (file)
index 0000000..86c2baa
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_glass_75_e6e6e6_1x400.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100644 (file)
index 0000000..7c9fa6c
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png
new file mode 100644 (file)
index 0000000..0e05810
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_222222_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_222222_256x240.png
new file mode 100644 (file)
index 0000000..b273ff1
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_222222_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_2e83ff_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_2e83ff_256x240.png
new file mode 100644 (file)
index 0000000..09d1cdc
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_2e83ff_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_454545_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_454545_256x240.png
new file mode 100644 (file)
index 0000000..59bd45b
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_454545_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_888888_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_888888_256x240.png
new file mode 100644 (file)
index 0000000..6d02426
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_888888_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_cd0a0a_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_cd0a0a_256x240.png
new file mode 100644 (file)
index 0000000..2ab019b
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/images/ui-icons_cd0a0a_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/jquery.ui.theme.css b/docs/jscripts/infusion/lib/jquery/ui/css/default-theme/jquery.ui.theme.css
new file mode 100644 (file)
index 0000000..775c7a6
--- /dev/null
@@ -0,0 +1,235 @@
+.ui-helper-hidden{display:none;}
+.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
+.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
+.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+.ui-helper-clearfix{display:inline-block;}
+/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
+.ui-helper-clearfix{display:block;}
+/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
+.ui-state-disabled{cursor:default!important;}
+.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
+.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
+.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}
+.ui-widget .ui-widget{font-size:1em;}
+.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.ui-widget-content{border:1px solid #fff;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}
+.ui-widget-content a{color:#222;}
+.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}
+.ui-widget-header a{color:#222;}
+.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}
+.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none;}
+.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}
+.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}
+.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}
+.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}
+.ui-widget :active{outline:none;}
+.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}
+.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}
+.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x;color:#cd0a0a;}
+.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}
+.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}
+.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}
+.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
+.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}
+.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}
+.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}
+.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}
+.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}
+.ui-icon-carat-1-n{background-position:0 0;}
+.ui-icon-carat-1-ne{background-position:-16px 0;}
+.ui-icon-carat-1-e{background-position:-32px 0;}
+.ui-icon-carat-1-se{background-position:-48px 0;}
+.ui-icon-carat-1-s{background-position:-64px 0;}
+.ui-icon-carat-1-sw{background-position:-80px 0;}
+.ui-icon-carat-1-w{background-position:-96px 0;}
+.ui-icon-carat-1-nw{background-position:-112px 0;}
+.ui-icon-carat-2-n-s{background-position:-128px 0;}
+.ui-icon-carat-2-e-w{background-position:-144px 0;}
+.ui-icon-triangle-1-n{background-position:0 -16px;}
+.ui-icon-triangle-1-ne{background-position:-16px -16px;}
+.ui-icon-triangle-1-e{background-position:-32px -16px;}
+.ui-icon-triangle-1-se{background-position:-48px -16px;}
+.ui-icon-triangle-1-s{background-position:-64px -16px;}
+.ui-icon-triangle-1-sw{background-position:-80px -16px;}
+.ui-icon-triangle-1-w{background-position:-96px -16px;}
+.ui-icon-triangle-1-nw{background-position:-112px -16px;}
+.ui-icon-triangle-2-n-s{background-position:-128px -16px;}
+.ui-icon-triangle-2-e-w{background-position:-144px -16px;}
+.ui-icon-arrow-1-n{background-position:0 -32px;}
+.ui-icon-arrow-1-ne{background-position:-16px -32px;}
+.ui-icon-arrow-1-e{background-position:-32px -32px;}
+.ui-icon-arrow-1-se{background-position:-48px -32px;}
+.ui-icon-arrow-1-s{background-position:-64px -32px;}
+.ui-icon-arrow-1-sw{background-position:-80px -32px;}
+.ui-icon-arrow-1-w{background-position:-96px -32px;}
+.ui-icon-arrow-1-nw{background-position:-112px -32px;}
+.ui-icon-arrow-2-n-s{background-position:-128px -32px;}
+.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
+.ui-icon-arrow-2-e-w{background-position:-160px -32px;}
+.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
+.ui-icon-arrowstop-1-n{background-position:-192px -32px;}
+.ui-icon-arrowstop-1-e{background-position:-208px -32px;}
+.ui-icon-arrowstop-1-s{background-position:-224px -32px;}
+.ui-icon-arrowstop-1-w{background-position:-240px -32px;}
+.ui-icon-arrowthick-1-n{background-position:0 -48px;}
+.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
+.ui-icon-arrowthick-1-e{background-position:-32px -48px;}
+.ui-icon-arrowthick-1-se{background-position:-48px -48px;}
+.ui-icon-arrowthick-1-s{background-position:-64px -48px;}
+.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
+.ui-icon-arrowthick-1-w{background-position:-96px -48px;}
+.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
+.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
+.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
+.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
+.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
+.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
+.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
+.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
+.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
+.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
+.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
+.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
+.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
+.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
+.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
+.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
+.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
+.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
+.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
+.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
+.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
+.ui-icon-arrow-4{background-position:0 -80px;}
+.ui-icon-arrow-4-diag{background-position:-16px -80px;}
+.ui-icon-extlink{background-position:-32px -80px;}
+.ui-icon-newwin{background-position:-48px -80px;}
+.ui-icon-refresh{background-position:-64px -80px;}
+.ui-icon-shuffle{background-position:-80px -80px;}
+.ui-icon-transfer-e-w{background-position:-96px -80px;}
+.ui-icon-transferthick-e-w{background-position:-112px -80px;}
+.ui-icon-folder-collapsed{background-position:0 -96px;}
+.ui-icon-folder-open{background-position:-16px -96px;}
+.ui-icon-document{background-position:-32px -96px;}
+.ui-icon-document-b{background-position:-48px -96px;}
+.ui-icon-note{background-position:-64px -96px;}
+.ui-icon-mail-closed{background-position:-80px -96px;}
+.ui-icon-mail-open{background-position:-96px -96px;}
+.ui-icon-suitcase{background-position:-112px -96px;}
+.ui-icon-comment{background-position:-128px -96px;}
+.ui-icon-person{background-position:-144px -96px;}
+.ui-icon-print{background-position:-160px -96px;}
+.ui-icon-trash{background-position:-176px -96px;}
+.ui-icon-locked{background-position:-192px -96px;}
+.ui-icon-unlocked{background-position:-208px -96px;}
+.ui-icon-bookmark{background-position:-224px -96px;}
+.ui-icon-tag{background-position:-240px -96px;}
+.ui-icon-home{background-position:0 -112px;}
+.ui-icon-flag{background-position:-16px -112px;}
+.ui-icon-calendar{background-position:-32px -112px;}
+.ui-icon-cart{background-position:-48px -112px;}
+.ui-icon-pencil{background-position:-64px -112px;}
+.ui-icon-clock{background-position:-80px -112px;}
+.ui-icon-disk{background-position:-96px -112px;}
+.ui-icon-calculator{background-position:-112px -112px;}
+.ui-icon-zoomin{background-position:-128px -112px;}
+.ui-icon-zoomout{background-position:-144px -112px;}
+.ui-icon-search{background-position:-160px -112px;}
+.ui-icon-wrench{background-position:-176px -112px;}
+.ui-icon-gear{background-position:-192px -112px;}
+.ui-icon-heart{background-position:-208px -112px;}
+.ui-icon-star{background-position:-224px -112px;}
+.ui-icon-link{background-position:-240px -112px;}
+.ui-icon-cancel{background-position:0 -128px;}
+.ui-icon-plus{background-position:-16px -128px;}
+.ui-icon-plusthick{background-position:-32px -128px;}
+.ui-icon-minus{background-position:-48px -128px;}
+.ui-icon-minusthick{background-position:-64px -128px;}
+.ui-icon-close{background-position:-80px -128px;}
+.ui-icon-closethick{background-position:-96px -128px;}
+.ui-icon-key{background-position:-112px -128px;}
+.ui-icon-lightbulb{background-position:-128px -128px;}
+.ui-icon-scissors{background-position:-144px -128px;}
+.ui-icon-clipboard{background-position:-160px -128px;}
+.ui-icon-copy{background-position:-176px -128px;}
+.ui-icon-contact{background-position:-192px -128px;}
+.ui-icon-image{background-position:-208px -128px;}
+.ui-icon-video{background-position:-224px -128px;}
+.ui-icon-script{background-position:-240px -128px;}
+.ui-icon-alert{background-position:0 -144px;}
+.ui-icon-info{background-position:-16px -144px;}
+.ui-icon-notice{background-position:-32px -144px;}
+.ui-icon-help{background-position:-48px -144px;}
+.ui-icon-check{background-position:-64px -144px;}
+.ui-icon-bullet{background-position:-80px -144px;}
+.ui-icon-radio-off{background-position:-96px -144px;}
+.ui-icon-radio-on{background-position:-112px -144px;}
+.ui-icon-pin-w{background-position:-128px -144px;}
+.ui-icon-pin-s{background-position:-144px -144px;}
+.ui-icon-play{background-position:0 -160px;}
+.ui-icon-pause{background-position:-16px -160px;}
+.ui-icon-seek-next{background-position:-32px -160px;}
+.ui-icon-seek-prev{background-position:-48px -160px;}
+.ui-icon-seek-end{background-position:-64px -160px;}
+.ui-icon-seek-start{background-position:-80px -160px;}
+.ui-icon-seek-first{background-position:-80px -160px;}
+.ui-icon-stop{background-position:-96px -160px;}
+.ui-icon-eject{background-position:-112px -160px;}
+.ui-icon-volume-off{background-position:-128px -160px;}
+.ui-icon-volume-on{background-position:-144px -160px;}
+.ui-icon-power{background-position:0 -176px;}
+.ui-icon-signal-diag{background-position:-16px -176px;}
+.ui-icon-signal{background-position:-32px -176px;}
+.ui-icon-battery-0{background-position:-48px -176px;}
+.ui-icon-battery-1{background-position:-64px -176px;}
+.ui-icon-battery-2{background-position:-80px -176px;}
+.ui-icon-battery-3{background-position:-96px -176px;}
+.ui-icon-circle-plus{background-position:0 -192px;}
+.ui-icon-circle-minus{background-position:-16px -192px;}
+.ui-icon-circle-close{background-position:-32px -192px;}
+.ui-icon-circle-triangle-e{background-position:-48px -192px;}
+.ui-icon-circle-triangle-s{background-position:-64px -192px;}
+.ui-icon-circle-triangle-w{background-position:-80px -192px;}
+.ui-icon-circle-triangle-n{background-position:-96px -192px;}
+.ui-icon-circle-arrow-e{background-position:-112px -192px;}
+.ui-icon-circle-arrow-s{background-position:-128px -192px;}
+.ui-icon-circle-arrow-w{background-position:-144px -192px;}
+.ui-icon-circle-arrow-n{background-position:-160px -192px;}
+.ui-icon-circle-zoomin{background-position:-176px -192px;}
+.ui-icon-circle-zoomout{background-position:-192px -192px;}
+.ui-icon-circle-check{background-position:-208px -192px;}
+.ui-icon-circlesmall-plus{background-position:0 -208px;}
+.ui-icon-circlesmall-minus{background-position:-16px -208px;}
+.ui-icon-circlesmall-close{background-position:-32px -208px;}
+.ui-icon-squaresmall-plus{background-position:-48px -208px;}
+.ui-icon-squaresmall-minus{background-position:-64px -208px;}
+.ui-icon-squaresmall-close{background-position:-80px -208px;}
+.ui-icon-grip-dotted-vertical{background-position:0 -224px;}
+.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
+.ui-icon-grip-solid-vertical{background-position:-32px -224px;}
+.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
+.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
+.ui-icon-grip-diagonal-se{background-position:-80px -224px;}
+.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;}
+.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.ui-corner-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.ui-corner-bottom{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.ui-corner-right{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.ui-corner-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.ui-corner-all{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;}
+.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);}
+.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;}
+.ui-tabs{position:relative;padding:.2em;zoom:1;}
+.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.ui-tabs .ui-tabs-hide{display:none!important;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/blackYellow.css b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/blackYellow.css
new file mode 100644 (file)
index 0000000..782688c
--- /dev/null
@@ -0,0 +1,352 @@
+.fl-theme-blackYellow .ui-helper-hidden{display:none;}
+.fl-theme-blackYellow .ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
+.fl-theme-blackYellow .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
+.fl-theme-blackYellow .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+.fl-theme-blackYellow .ui-helper-clearfix{display:inline-block;}
+/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
+.fl-theme-blackYellow .ui-helper-clearfix{display:block;}
+/* end clearfix */ .fl-theme-blackYellow .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
+.fl-theme-blackYellow .ui-state-disabled{cursor:default!important;}
+.fl-theme-blackYellow .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
+.fl-theme-blackYellow .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
+.fl-theme-blackYellow .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}
+.fl-theme-blackYellow .ui-widget .ui-widget{font-size:1em;}
+.fl-theme-blackYellow .ui-widget input,.fl-theme-blackYellow .ui-widget select,.fl-theme-blackYellow .ui-widget textarea,.fl-theme-blackYellow .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.fl-theme-blackYellow .ui-widget-content{border:1px solid #ff0;background:#000 url(images/ui-bg_flat_100_000000_40x100.png) 50% 50% repeat-x;color:#ff0;}
+.fl-theme-blackYellow .ui-widget-content a{color:#ff0;}
+.fl-theme-blackYellow .ui-widget-header{border:1px solid #ff0;background:#000 url(images/ui-bg_flat_100_000000_40x100.png) 50% 50% repeat-x;color:#ff0;font-weight:bold;}
+.fl-theme-blackYellow .ui-widget-header a{color:#ff0;}
+.fl-theme-blackYellow .ui-state-default,.fl-theme-blackYellow .ui-widget-content .ui-state-default,.fl-theme-blackYellow .ui-widget-header .ui-state-default{border:1px solid #ff0;background:#000 url(images/ui-bg_flat_100_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#ff0;}
+.fl-theme-blackYellow .ui-state-default a,.fl-theme-blackYellow .ui-state-default a:link,.fl-theme-blackYellow .ui-state-default a:visited{color:#ff0;text-decoration:none;}
+.fl-theme-blackYellow .ui-state-hover,.fl-theme-blackYellow .ui-widget-content .ui-state-hover,.fl-theme-blackYellow .ui-widget-header .ui-state-hover,.fl-theme-blackYellow .ui-state-focus,.fl-theme-blackYellow .ui-widget-content .ui-state-focus,.fl-theme-blackYellow .ui-widget-header .ui-state-focus{border:1px solid #ff0;background:#000 url(images/ui-bg_flat_100_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#ff0;}
+.fl-theme-blackYellow .ui-state-hover a,.fl-theme-blackYellow .ui-state-hover a:hover{color:#ff0;text-decoration:none;}
+.fl-theme-blackYellow .ui-state-active,.fl-theme-blackYellow .ui-widget-content .ui-state-active,.fl-theme-blackYellow .ui-widget-header .ui-state-active{border:1px solid #ff0;background:#000 url(images/ui-bg_flat_100_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#ff0;}
+.fl-theme-blackYellow .ui-state-active a,.fl-theme-blackYellow .ui-state-active a:link,.fl-theme-blackYellow .ui-state-active a:visited{color:#ff0;text-decoration:none;}
+.fl-theme-blackYellow .ui-widget :active{outline:none;}
+.fl-theme-blackYellow .ui-state-highlight,.fl-theme-blackYellow .ui-widget-content .ui-state-highlight,.fl-theme-blackYellow .ui-widget-header .ui-state-highlight{border:1px solid #ff0;background:#000 url(images/ui-bg_flat_100_000000_40x100.png) 50% 50% repeat-x;color:#ff0;}
+.fl-theme-blackYellow .ui-state-highlight a,.fl-theme-blackYellow .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#ff0;}
+.fl-theme-blackYellow .ui-state-error,.fl-theme-blackYellow .ui-widget-content .ui-state-error,.fl-theme-blackYellow .ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#000 url(images/ui-bg_flat_100_000000_40x100.png) 50% 50% repeat-x;color:#ff0;}
+.fl-theme-blackYellow .ui-state-error a,.fl-theme-blackYellow .ui-widget-content .ui-state-error a,.fl-theme-blackYellow .ui-widget-header .ui-state-error a{color:#ff0;}
+.fl-theme-blackYellow .ui-state-error-text,.fl-theme-blackYellow .ui-widget-content .ui-state-error-text,.fl-theme-blackYellow .ui-widget-header .ui-state-error-text{color:#ff0;}
+.fl-theme-blackYellow .ui-priority-primary,.fl-theme-blackYellow .ui-widget-content .ui-priority-primary,.fl-theme-blackYellow .ui-widget-header .ui-priority-primary{font-weight:bold;}
+.fl-theme-blackYellow .ui-priority-secondary,.fl-theme-blackYellow .ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-blackYellow .ui-state-disabled,.fl-theme-blackYellow .ui-widget-content .ui-state-disabled,.fl-theme-blackYellow .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
+.fl-theme-blackYellow .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-blackYellow .ui-widget-content .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-blackYellow .ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-blackYellow .ui-state-default .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-blackYellow .ui-state-hover .ui-icon,.fl-theme-blackYellow .ui-state-focus .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-blackYellow .ui-state-active .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-blackYellow .ui-state-highlight .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-blackYellow .ui-state-error .ui-icon,.fl-theme-blackYellow .ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-blackYellow .ui-icon-carat-1-n{background-position:0 0;}
+.fl-theme-blackYellow .ui-icon-carat-1-ne{background-position:-16px 0;}
+.fl-theme-blackYellow .ui-icon-carat-1-e{background-position:-32px 0;}
+.fl-theme-blackYellow .ui-icon-carat-1-se{background-position:-48px 0;}
+.fl-theme-blackYellow .ui-icon-carat-1-s{background-position:-64px 0;}
+.fl-theme-blackYellow .ui-icon-carat-1-sw{background-position:-80px 0;}
+.fl-theme-blackYellow .ui-icon-carat-1-w{background-position:-96px 0;}
+.fl-theme-blackYellow .ui-icon-carat-1-nw{background-position:-112px 0;}
+.fl-theme-blackYellow .ui-icon-carat-2-n-s{background-position:-128px 0;}
+.fl-theme-blackYellow .ui-icon-carat-2-e-w{background-position:-144px 0;}
+.fl-theme-blackYellow .ui-icon-triangle-1-n{background-position:0 -16px;}
+.fl-theme-blackYellow .ui-icon-triangle-1-ne{background-position:-16px -16px;}
+.fl-theme-blackYellow .ui-icon-triangle-1-e{background-position:-32px -16px;}
+.fl-theme-blackYellow .ui-icon-triangle-1-se{background-position:-48px -16px;}
+.fl-theme-blackYellow .ui-icon-triangle-1-s{background-position:-64px -16px;}
+.fl-theme-blackYellow .ui-icon-triangle-1-sw{background-position:-80px -16px;}
+.fl-theme-blackYellow .ui-icon-triangle-1-w{background-position:-96px -16px;}
+.fl-theme-blackYellow .ui-icon-triangle-1-nw{background-position:-112px -16px;}
+.fl-theme-blackYellow .ui-icon-triangle-2-n-s{background-position:-128px -16px;}
+.fl-theme-blackYellow .ui-icon-triangle-2-e-w{background-position:-144px -16px;}
+.fl-theme-blackYellow .ui-icon-arrow-1-n{background-position:0 -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-1-ne{background-position:-16px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-1-e{background-position:-32px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-1-se{background-position:-48px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-1-s{background-position:-64px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-1-sw{background-position:-80px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-1-w{background-position:-96px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-1-nw{background-position:-112px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-2-n-s{background-position:-128px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-2-e-w{background-position:-160px -32px;}
+.fl-theme-blackYellow .ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
+.fl-theme-blackYellow .ui-icon-arrowstop-1-n{background-position:-192px -32px;}
+.fl-theme-blackYellow .ui-icon-arrowstop-1-e{background-position:-208px -32px;}
+.fl-theme-blackYellow .ui-icon-arrowstop-1-s{background-position:-224px -32px;}
+.fl-theme-blackYellow .ui-icon-arrowstop-1-w{background-position:-240px -32px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-1-n{background-position:0 -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-1-e{background-position:-32px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-1-se{background-position:-48px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-1-s{background-position:-64px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-1-w{background-position:-96px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
+.fl-theme-blackYellow .ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
+.fl-theme-blackYellow .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
+.fl-theme-blackYellow .ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
+.fl-theme-blackYellow .ui-icon-arrow-4{background-position:0 -80px;}
+.fl-theme-blackYellow .ui-icon-arrow-4-diag{background-position:-16px -80px;}
+.fl-theme-blackYellow .ui-icon-extlink{background-position:-32px -80px;}
+.fl-theme-blackYellow .ui-icon-newwin{background-position:-48px -80px;}
+.fl-theme-blackYellow .ui-icon-refresh{background-position:-64px -80px;}
+.fl-theme-blackYellow .ui-icon-shuffle{background-position:-80px -80px;}
+.fl-theme-blackYellow .ui-icon-transfer-e-w{background-position:-96px -80px;}
+.fl-theme-blackYellow .ui-icon-transferthick-e-w{background-position:-112px -80px;}
+.fl-theme-blackYellow .ui-icon-folder-collapsed{background-position:0 -96px;}
+.fl-theme-blackYellow .ui-icon-folder-open{background-position:-16px -96px;}
+.fl-theme-blackYellow .ui-icon-document{background-position:-32px -96px;}
+.fl-theme-blackYellow .ui-icon-document-b{background-position:-48px -96px;}
+.fl-theme-blackYellow .ui-icon-note{background-position:-64px -96px;}
+.fl-theme-blackYellow .ui-icon-mail-closed{background-position:-80px -96px;}
+.fl-theme-blackYellow .ui-icon-mail-open{background-position:-96px -96px;}
+.fl-theme-blackYellow .ui-icon-suitcase{background-position:-112px -96px;}
+.fl-theme-blackYellow .ui-icon-comment{background-position:-128px -96px;}
+.fl-theme-blackYellow .ui-icon-person{background-position:-144px -96px;}
+.fl-theme-blackYellow .ui-icon-print{background-position:-160px -96px;}
+.fl-theme-blackYellow .ui-icon-trash{background-position:-176px -96px;}
+.fl-theme-blackYellow .ui-icon-locked{background-position:-192px -96px;}
+.fl-theme-blackYellow .ui-icon-unlocked{background-position:-208px -96px;}
+.fl-theme-blackYellow .ui-icon-bookmark{background-position:-224px -96px;}
+.fl-theme-blackYellow .ui-icon-tag{background-position:-240px -96px;}
+.fl-theme-blackYellow .ui-icon-home{background-position:0 -112px;}
+.fl-theme-blackYellow .ui-icon-flag{background-position:-16px -112px;}
+.fl-theme-blackYellow .ui-icon-calendar{background-position:-32px -112px;}
+.fl-theme-blackYellow .ui-icon-cart{background-position:-48px -112px;}
+.fl-theme-blackYellow .ui-icon-pencil{background-position:-64px -112px;}
+.fl-theme-blackYellow .ui-icon-clock{background-position:-80px -112px;}
+.fl-theme-blackYellow .ui-icon-disk{background-position:-96px -112px;}
+.fl-theme-blackYellow .ui-icon-calculator{background-position:-112px -112px;}
+.fl-theme-blackYellow .ui-icon-zoomin{background-position:-128px -112px;}
+.fl-theme-blackYellow .ui-icon-zoomout{background-position:-144px -112px;}
+.fl-theme-blackYellow .ui-icon-search{background-position:-160px -112px;}
+.fl-theme-blackYellow .ui-icon-wrench{background-position:-176px -112px;}
+.fl-theme-blackYellow .ui-icon-gear{background-position:-192px -112px;}
+.fl-theme-blackYellow .ui-icon-heart{background-position:-208px -112px;}
+.fl-theme-blackYellow .ui-icon-star{background-position:-224px -112px;}
+.fl-theme-blackYellow .ui-icon-link{background-position:-240px -112px;}
+.fl-theme-blackYellow .ui-icon-cancel{background-position:0 -128px;}
+.fl-theme-blackYellow .ui-icon-plus{background-position:-16px -128px;}
+.fl-theme-blackYellow .ui-icon-plusthick{background-position:-32px -128px;}
+.fl-theme-blackYellow .ui-icon-minus{background-position:-48px -128px;}
+.fl-theme-blackYellow .ui-icon-minusthick{background-position:-64px -128px;}
+.fl-theme-blackYellow .ui-icon-close{background-position:-80px -128px;}
+.fl-theme-blackYellow .ui-icon-closethick{background-position:-96px -128px;}
+.fl-theme-blackYellow .ui-icon-key{background-position:-112px -128px;}
+.fl-theme-blackYellow .ui-icon-lightbulb{background-position:-128px -128px;}
+.fl-theme-blackYellow .ui-icon-scissors{background-position:-144px -128px;}
+.fl-theme-blackYellow .ui-icon-clipboard{background-position:-160px -128px;}
+.fl-theme-blackYellow .ui-icon-copy{background-position:-176px -128px;}
+.fl-theme-blackYellow .ui-icon-contact{background-position:-192px -128px;}
+.fl-theme-blackYellow .ui-icon-image{background-position:-208px -128px;}
+.fl-theme-blackYellow .ui-icon-video{background-position:-224px -128px;}
+.fl-theme-blackYellow .ui-icon-script{background-position:-240px -128px;}
+.fl-theme-blackYellow .ui-icon-alert{background-position:0 -144px;}
+.fl-theme-blackYellow .ui-icon-info{background-position:-16px -144px;}
+.fl-theme-blackYellow .ui-icon-notice{background-position:-32px -144px;}
+.fl-theme-blackYellow .ui-icon-help{background-position:-48px -144px;}
+.fl-theme-blackYellow .ui-icon-check{background-position:-64px -144px;}
+.fl-theme-blackYellow .ui-icon-bullet{background-position:-80px -144px;}
+.fl-theme-blackYellow .ui-icon-radio-off{background-position:-96px -144px;}
+.fl-theme-blackYellow .ui-icon-radio-on{background-position:-112px -144px;}
+.fl-theme-blackYellow .ui-icon-pin-w{background-position:-128px -144px;}
+.fl-theme-blackYellow .ui-icon-pin-s{background-position:-144px -144px;}
+.fl-theme-blackYellow .ui-icon-play{background-position:0 -160px;}
+.fl-theme-blackYellow .ui-icon-pause{background-position:-16px -160px;}
+.fl-theme-blackYellow .ui-icon-seek-next{background-position:-32px -160px;}
+.fl-theme-blackYellow .ui-icon-seek-prev{background-position:-48px -160px;}
+.fl-theme-blackYellow .ui-icon-seek-end{background-position:-64px -160px;}
+.fl-theme-blackYellow .ui-icon-seek-start{background-position:-80px -160px;}
+.fl-theme-blackYellow .ui-icon-seek-first{background-position:-80px -160px;}
+.fl-theme-blackYellow .ui-icon-stop{background-position:-96px -160px;}
+.fl-theme-blackYellow .ui-icon-eject{background-position:-112px -160px;}
+.fl-theme-blackYellow .ui-icon-volume-off{background-position:-128px -160px;}
+.fl-theme-blackYellow .ui-icon-volume-on{background-position:-144px -160px;}
+.fl-theme-blackYellow .ui-icon-power{background-position:0 -176px;}
+.fl-theme-blackYellow .ui-icon-signal-diag{background-position:-16px -176px;}
+.fl-theme-blackYellow .ui-icon-signal{background-position:-32px -176px;}
+.fl-theme-blackYellow .ui-icon-battery-0{background-position:-48px -176px;}
+.fl-theme-blackYellow .ui-icon-battery-1{background-position:-64px -176px;}
+.fl-theme-blackYellow .ui-icon-battery-2{background-position:-80px -176px;}
+.fl-theme-blackYellow .ui-icon-battery-3{background-position:-96px -176px;}
+.fl-theme-blackYellow .ui-icon-circle-plus{background-position:0 -192px;}
+.fl-theme-blackYellow .ui-icon-circle-minus{background-position:-16px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-close{background-position:-32px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-triangle-e{background-position:-48px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-triangle-s{background-position:-64px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-triangle-w{background-position:-80px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-triangle-n{background-position:-96px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-arrow-e{background-position:-112px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-arrow-s{background-position:-128px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-arrow-w{background-position:-144px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-arrow-n{background-position:-160px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-zoomin{background-position:-176px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-zoomout{background-position:-192px -192px;}
+.fl-theme-blackYellow .ui-icon-circle-check{background-position:-208px -192px;}
+.fl-theme-blackYellow .ui-icon-circlesmall-plus{background-position:0 -208px;}
+.fl-theme-blackYellow .ui-icon-circlesmall-minus{background-position:-16px -208px;}
+.fl-theme-blackYellow .ui-icon-circlesmall-close{background-position:-32px -208px;}
+.fl-theme-blackYellow .ui-icon-squaresmall-plus{background-position:-48px -208px;}
+.fl-theme-blackYellow .ui-icon-squaresmall-minus{background-position:-64px -208px;}
+.fl-theme-blackYellow .ui-icon-squaresmall-close{background-position:-80px -208px;}
+.fl-theme-blackYellow .ui-icon-grip-dotted-vertical{background-position:0 -224px;}
+.fl-theme-blackYellow .ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
+.fl-theme-blackYellow .ui-icon-grip-solid-vertical{background-position:-32px -224px;}
+.fl-theme-blackYellow .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
+.fl-theme-blackYellow .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
+.fl-theme-blackYellow .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
+.fl-theme-blackYellow .ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;}
+.fl-theme-blackYellow .ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.fl-theme-blackYellow .ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.fl-theme-blackYellow .ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.fl-theme-blackYellow .ui-corner-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.fl-theme-blackYellow .ui-corner-bottom{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.fl-theme-blackYellow .ui-corner-right{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.fl-theme-blackYellow .ui-corner-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.fl-theme-blackYellow .ui-corner-all{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;}
+.fl-theme-blackYellow .ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);}
+.fl-theme-blackYellow .ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;}
+.fl-theme-blackYellow .ui-resizable{position:relative;}
+.fl-theme-blackYellow .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;background-image:url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=);}
+.fl-theme-blackYellow .ui-resizable-disabled .ui-resizable-handle,.fl-theme-blackYellow .ui-resizable-autohide .ui-resizable-handle{display:none;}
+.fl-theme-blackYellow .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.fl-theme-blackYellow .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.fl-theme-blackYellow .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.fl-theme-blackYellow .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.fl-theme-blackYellow .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.fl-theme-blackYellow .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.fl-theme-blackYellow .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.fl-theme-blackYellow .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.fl-theme-blackYellow .ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.fl-theme-blackYellow .ui-accordion{width:100%;}
+.fl-theme-blackYellow .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
+.fl-theme-blackYellow .ui-accordion .ui-accordion-li-fix{display:inline;}
+.fl-theme-blackYellow .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
+.fl-theme-blackYellow .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}
+.fl-theme-blackYellow .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}
+.fl-theme-blackYellow .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
+.fl-theme-blackYellow .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}
+.fl-theme-blackYellow .ui-accordion .ui-accordion-content-active{display:block;}
+.fl-theme-blackYellow .ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.fl-theme-blackYellow .ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}
+.fl-theme-blackYellow .ui-menu .ui-menu{margin-top:-3px;}
+.fl-theme-blackYellow .ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}
+.fl-theme-blackYellow .ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}
+.fl-theme-blackYellow .ui-menu .ui-menu-item a.ui-state-hover,.fl-theme-blackYellow .ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
+.fl-theme-blackYellow .ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}
+.fl-theme-blackYellow .ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.fl-theme-blackYellow .ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.fl-theme-blackYellow .ui-button .ui-button-text{display:block;line-height:1.4;}
+.fl-theme-blackYellow .ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.fl-theme-blackYellow .ui-button-icon-only .ui-button-text,.fl-theme-blackYellow .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.fl-theme-blackYellow .ui-button-text-icon-primary .ui-button-text,.fl-theme-blackYellow .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.fl-theme-blackYellow .ui-button-text-icon-secondary .ui-button-text,.fl-theme-blackYellow .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.fl-theme-blackYellow .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.fl-theme-blackYellow .ui-button-icon-only .ui-icon,.fl-theme-blackYellow .ui-button-text-icon-primary .ui-icon,.fl-theme-blackYellow .ui-button-text-icon-secondary .ui-icon,.fl-theme-blackYellow .ui-button-text-icons .ui-icon,.fl-theme-blackYellow .ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.fl-theme-blackYellow .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.fl-theme-blackYellow .ui-button-text-icon-primary .ui-button-icon-primary,.fl-theme-blackYellow .ui-button-text-icons .ui-button-icon-primary,.fl-theme-blackYellow .ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.fl-theme-blackYellow .ui-button-text-icon-secondary .ui-button-icon-secondary,.fl-theme-blackYellow .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-blackYellow .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-blackYellow .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-blackYellow .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-blackYellow .ui-buttonset{margin-right:7px;}
+.fl-theme-blackYellow .ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.fl-theme-blackYellow .ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}
+.fl-theme-blackYellow .ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
+.fl-theme-blackYellow .ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}
+.fl-theme-blackYellow .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
+.fl-theme-blackYellow .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.fl-theme-blackYellow .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-blackYellow .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.fl-theme-blackYellow .ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
+.fl-theme-blackYellow .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
+.fl-theme-blackYellow .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.fl-theme-blackYellow .ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
+.fl-theme-blackYellow .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
+.fl-theme-blackYellow .ui-draggable .ui-dialog-titlebar{cursor:move;}
+.fl-theme-blackYellow .ui-slider{position:relative;text-align:left;}
+.fl-theme-blackYellow .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
+.fl-theme-blackYellow .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.fl-theme-blackYellow .ui-slider-horizontal{height:.8em;}
+.fl-theme-blackYellow .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
+.fl-theme-blackYellow .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.fl-theme-blackYellow .ui-slider-horizontal .ui-slider-range-min{left:0;}
+.fl-theme-blackYellow .ui-slider-horizontal .ui-slider-range-max{right:0;}
+.fl-theme-blackYellow .ui-slider-vertical{width:.8em;height:100px;}
+.fl-theme-blackYellow .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
+.fl-theme-blackYellow .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.fl-theme-blackYellow .ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.fl-theme-blackYellow .ui-slider-vertical .ui-slider-range-max{top:0;}
+.fl-theme-blackYellow .ui-tabs{position:relative;padding:.2em;zoom:1;}
+.fl-theme-blackYellow .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.fl-theme-blackYellow .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.fl-theme-blackYellow .ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.fl-theme-blackYellow .ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.fl-theme-blackYellow .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-blackYellow .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-blackYellow .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.fl-theme-blackYellow .ui-tabs .ui-tabs-nav li a,.fl-theme-blackYellow .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.fl-theme-blackYellow .ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.fl-theme-blackYellow .ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-theme-blackYellow .ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-prev,.fl-theme-blackYellow .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-blackYellow .ui-datepicker .ui-datepicker-next-hover{top:1px;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-prev{left:2px;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-next{right:2px;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-prev-hover{left:1px;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-next-hover{right:1px;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-prev span,.fl-theme-blackYellow .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
+.fl-theme-blackYellow .ui-datepicker select.ui-datepicker-month-year{width:100%;}
+.fl-theme-blackYellow .ui-datepicker select.ui-datepicker-month,.fl-theme-blackYellow .ui-datepicker select.ui-datepicker-year{width:49%;}
+.fl-theme-blackYellow .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
+.fl-theme-blackYellow .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
+.fl-theme-blackYellow .ui-datepicker td{border:0;padding:1px;}
+.fl-theme-blackYellow .ui-datepicker td span,.fl-theme-blackYellow .ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
+.fl-theme-blackYellow .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
+.fl-theme-blackYellow .ui-datepicker.ui-datepicker-multi{width:auto;}
+.fl-theme-blackYellow .ui-datepicker-multi .ui-datepicker-group{float:left;}
+.fl-theme-blackYellow .ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}
+.fl-theme-blackYellow .ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
+.fl-theme-blackYellow .ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}
+.fl-theme-blackYellow .ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
+.fl-theme-blackYellow .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}
+.fl-theme-blackYellow .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
+.fl-theme-blackYellow .ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
+.fl-theme-blackYellow .ui-datepicker-row-break{clear:both;width:100%;}
+.fl-theme-blackYellow .ui-datepicker-rtl{direction:rtl;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-group{float:right;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-blackYellow .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-blackYellow .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
+.fl-theme-blackYellow .ui-progressbar{height:2em;text-align:left;}
+.fl-theme-blackYellow .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-bg_flat_0_aaaaaa_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644 (file)
index 0000000..5b5dab2
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-bg_flat_0_aaaaaa_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-bg_flat_100_000000_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-bg_flat_100_000000_40x100.png
new file mode 100644 (file)
index 0000000..abdc010
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-bg_flat_100_000000_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_454545_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_454545_256x240.png
new file mode 100644 (file)
index 0000000..59bd45b
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_454545_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_cd0a0a_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_cd0a0a_256x240.png
new file mode 100644 (file)
index 0000000..2ab019b
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_cd0a0a_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_ffff00_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_ffff00_256x240.png
new file mode 100644 (file)
index 0000000..069c234
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-blackYellow/images/ui-icons_ffff00_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/bw.css b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/bw.css
new file mode 100644 (file)
index 0000000..b65355a
--- /dev/null
@@ -0,0 +1,347 @@
+.fl-theme-bw .ui-helper-hidden{display:none;}
+.fl-theme-bw .ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
+.fl-theme-bw .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
+.fl-theme-bw .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+.fl-theme-bw .ui-helper-clearfix{display:inline-block;}
+/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
+.fl-theme-bw .ui-helper-clearfix{display:block;}
+/* end clearfix */ .fl-theme-bw .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
+.fl-theme-bw .ui-state-disabled{cursor:default!important;}
+.fl-theme-bw .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
+.fl-theme-bw .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
+.fl-theme-bw .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.2em;}
+.fl-theme-bw .ui-widget .ui-widget{font-size:1em;}
+.fl-theme-bw .ui-widget input,.fl-theme-bw .ui-widget select,.fl-theme-bw .ui-widget textarea,.fl-theme-bw .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.fl-theme-bw .ui-widget-content{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#000;}
+.fl-theme-bw .ui-widget-content a{color:#000;}
+.fl-theme-bw .ui-widget-header{border:1px solid #000;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold;}
+.fl-theme-bw .ui-widget-header a{color:#fff;}
+.fl-theme-bw .ui-state-default,.fl-theme-bw .ui-widget-content .ui-state-default,.fl-theme-bw .ui-widget-header .ui-state-default{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-bw .ui-state-default a,.fl-theme-bw .ui-state-default a:link,.fl-theme-bw .ui-state-default a:visited{color:#000;text-decoration:none;}
+.fl-theme-bw .ui-state-hover,.fl-theme-bw .ui-widget-content .ui-state-hover,.fl-theme-bw .ui-widget-header .ui-state-hover,.fl-theme-bw .ui-state-focus,.fl-theme-bw .ui-widget-content .ui-state-focus,.fl-theme-bw .ui-widget-header .ui-state-focus{border:1px solid #fff;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;}
+.fl-theme-bw .ui-state-hover a,.fl-theme-bw .ui-state-hover a:hover{color:#fff;text-decoration:none;}
+.fl-theme-bw .ui-state-active,.fl-theme-bw .ui-widget-content .ui-state-active,.fl-theme-bw .ui-widget-header .ui-state-active{border:1px solid #000;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;}
+.fl-theme-bw .ui-state-active a,.fl-theme-bw .ui-state-active a:link,.fl-theme-bw .ui-state-active a:visited{color:#fff;text-decoration:none;}
+.fl-theme-bw .ui-widget :active{outline:none;}
+.fl-theme-bw .ui-state-highlight,.fl-theme-bw .ui-widget-content .ui-state-highlight,.fl-theme-bw .ui-widget-header .ui-state-highlight{border:1px solid #000;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#fff;}
+.fl-theme-bw .ui-state-highlight a,.fl-theme-bw .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#fff;}
+.fl-theme-bw .ui-state-error,.fl-theme-bw .ui-widget-content .ui-state-error,.fl-theme-bw .ui-widget-header .ui-state-error{border:1px solid #000;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#fff;}
+.fl-theme-bw .ui-state-error a,.fl-theme-bw .ui-widget-content .ui-state-error a,.fl-theme-bw .ui-widget-header .ui-state-error a{color:#fff;}
+.fl-theme-bw .ui-state-error-text,.fl-theme-bw .ui-widget-content .ui-state-error-text,.fl-theme-bw .ui-widget-header .ui-state-error-text{color:#fff;}
+.fl-theme-bw .ui-priority-primary,.fl-theme-bw .ui-widget-content .ui-priority-primary,.fl-theme-bw .ui-widget-header .ui-priority-primary{font-weight:bold;}
+.fl-theme-bw .ui-priority-secondary,.fl-theme-bw .ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-bw .ui-state-disabled,.fl-theme-bw .ui-widget-content .ui-state-disabled,.fl-theme-bw .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
+.fl-theme-bw .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-bw .ui-widget-content .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-bw .ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.fl-theme-bw .ui-state-default .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-bw .ui-state-hover .ui-icon,.fl-theme-bw .ui-state-focus .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.fl-theme-bw .ui-state-active .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.fl-theme-bw .ui-state-highlight .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.fl-theme-bw .ui-state-error .ui-icon,.fl-theme-bw .ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.fl-theme-bw .ui-icon-carat-1-n{background-position:0 0;}
+.fl-theme-bw .ui-icon-carat-1-ne{background-position:-16px 0;}
+.fl-theme-bw .ui-icon-carat-1-e{background-position:-32px 0;}
+.fl-theme-bw .ui-icon-carat-1-se{background-position:-48px 0;}
+.fl-theme-bw .ui-icon-carat-1-s{background-position:-64px 0;}
+.fl-theme-bw .ui-icon-carat-1-sw{background-position:-80px 0;}
+.fl-theme-bw .ui-icon-carat-1-w{background-position:-96px 0;}
+.fl-theme-bw .ui-icon-carat-1-nw{background-position:-112px 0;}
+.fl-theme-bw .ui-icon-carat-2-n-s{background-position:-128px 0;}
+.fl-theme-bw .ui-icon-carat-2-e-w{background-position:-144px 0;}
+.fl-theme-bw .ui-icon-triangle-1-n{background-position:0 -16px;}
+.fl-theme-bw .ui-icon-triangle-1-ne{background-position:-16px -16px;}
+.fl-theme-bw .ui-icon-triangle-1-e{background-position:-32px -16px;}
+.fl-theme-bw .ui-icon-triangle-1-se{background-position:-48px -16px;}
+.fl-theme-bw .ui-icon-triangle-1-s{background-position:-64px -16px;}
+.fl-theme-bw .ui-icon-triangle-1-sw{background-position:-80px -16px;}
+.fl-theme-bw .ui-icon-triangle-1-w{background-position:-96px -16px;}
+.fl-theme-bw .ui-icon-triangle-1-nw{background-position:-112px -16px;}
+.fl-theme-bw .ui-icon-triangle-2-n-s{background-position:-128px -16px;}
+.fl-theme-bw .ui-icon-triangle-2-e-w{background-position:-144px -16px;}
+.fl-theme-bw .ui-icon-arrow-1-n{background-position:0 -32px;}
+.fl-theme-bw .ui-icon-arrow-1-ne{background-position:-16px -32px;}
+.fl-theme-bw .ui-icon-arrow-1-e{background-position:-32px -32px;}
+.fl-theme-bw .ui-icon-arrow-1-se{background-position:-48px -32px;}
+.fl-theme-bw .ui-icon-arrow-1-s{background-position:-64px -32px;}
+.fl-theme-bw .ui-icon-arrow-1-sw{background-position:-80px -32px;}
+.fl-theme-bw .ui-icon-arrow-1-w{background-position:-96px -32px;}
+.fl-theme-bw .ui-icon-arrow-1-nw{background-position:-112px -32px;}
+.fl-theme-bw .ui-icon-arrow-2-n-s{background-position:-128px -32px;}
+.fl-theme-bw .ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
+.fl-theme-bw .ui-icon-arrow-2-e-w{background-position:-160px -32px;}
+.fl-theme-bw .ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
+.fl-theme-bw .ui-icon-arrowstop-1-n{background-position:-192px -32px;}
+.fl-theme-bw .ui-icon-arrowstop-1-e{background-position:-208px -32px;}
+.fl-theme-bw .ui-icon-arrowstop-1-s{background-position:-224px -32px;}
+.fl-theme-bw .ui-icon-arrowstop-1-w{background-position:-240px -32px;}
+.fl-theme-bw .ui-icon-arrowthick-1-n{background-position:0 -48px;}
+.fl-theme-bw .ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-1-e{background-position:-32px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-1-se{background-position:-48px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-1-s{background-position:-64px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-1-w{background-position:-96px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
+.fl-theme-bw .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
+.fl-theme-bw .ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
+.fl-theme-bw .ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
+.fl-theme-bw .ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
+.fl-theme-bw .ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
+.fl-theme-bw .ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
+.fl-theme-bw .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
+.fl-theme-bw .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
+.fl-theme-bw .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
+.fl-theme-bw .ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
+.fl-theme-bw .ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
+.fl-theme-bw .ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
+.fl-theme-bw .ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
+.fl-theme-bw .ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
+.fl-theme-bw .ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
+.fl-theme-bw .ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
+.fl-theme-bw .ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
+.fl-theme-bw .ui-icon-arrow-4{background-position:0 -80px;}
+.fl-theme-bw .ui-icon-arrow-4-diag{background-position:-16px -80px;}
+.fl-theme-bw .ui-icon-extlink{background-position:-32px -80px;}
+.fl-theme-bw .ui-icon-newwin{background-position:-48px -80px;}
+.fl-theme-bw .ui-icon-refresh{background-position:-64px -80px;}
+.fl-theme-bw .ui-icon-shuffle{background-position:-80px -80px;}
+.fl-theme-bw .ui-icon-transfer-e-w{background-position:-96px -80px;}
+.fl-theme-bw .ui-icon-transferthick-e-w{background-position:-112px -80px;}
+.fl-theme-bw .ui-icon-folder-collapsed{background-position:0 -96px;}
+.fl-theme-bw .ui-icon-folder-open{background-position:-16px -96px;}
+.fl-theme-bw .ui-icon-document{background-position:-32px -96px;}
+.fl-theme-bw .ui-icon-document-b{background-position:-48px -96px;}
+.fl-theme-bw .ui-icon-note{background-position:-64px -96px;}
+.fl-theme-bw .ui-icon-mail-closed{background-position:-80px -96px;}
+.fl-theme-bw .ui-icon-mail-open{background-position:-96px -96px;}
+.fl-theme-bw .ui-icon-suitcase{background-position:-112px -96px;}
+.fl-theme-bw .ui-icon-comment{background-position:-128px -96px;}
+.fl-theme-bw .ui-icon-person{background-position:-144px -96px;}
+.fl-theme-bw .ui-icon-print{background-position:-160px -96px;}
+.fl-theme-bw .ui-icon-trash{background-position:-176px -96px;}
+.fl-theme-bw .ui-icon-locked{background-position:-192px -96px;}
+.fl-theme-bw .ui-icon-unlocked{background-position:-208px -96px;}
+.fl-theme-bw .ui-icon-bookmark{background-position:-224px -96px;}
+.fl-theme-bw .ui-icon-tag{background-position:-240px -96px;}
+.fl-theme-bw .ui-icon-home{background-position:0 -112px;}
+.fl-theme-bw .ui-icon-flag{background-position:-16px -112px;}
+.fl-theme-bw .ui-icon-calendar{background-position:-32px -112px;}
+.fl-theme-bw .ui-icon-cart{background-position:-48px -112px;}
+.fl-theme-bw .ui-icon-pencil{background-position:-64px -112px;}
+.fl-theme-bw .ui-icon-clock{background-position:-80px -112px;}
+.fl-theme-bw .ui-icon-disk{background-position:-96px -112px;}
+.fl-theme-bw .ui-icon-calculator{background-position:-112px -112px;}
+.fl-theme-bw .ui-icon-zoomin{background-position:-128px -112px;}
+.fl-theme-bw .ui-icon-zoomout{background-position:-144px -112px;}
+.fl-theme-bw .ui-icon-search{background-position:-160px -112px;}
+.fl-theme-bw .ui-icon-wrench{background-position:-176px -112px;}
+.fl-theme-bw .ui-icon-gear{background-position:-192px -112px;}
+.fl-theme-bw .ui-icon-heart{background-position:-208px -112px;}
+.fl-theme-bw .ui-icon-star{background-position:-224px -112px;}
+.fl-theme-bw .ui-icon-link{background-position:-240px -112px;}
+.fl-theme-bw .ui-icon-cancel{background-position:0 -128px;}
+.fl-theme-bw .ui-icon-plus{background-position:-16px -128px;}
+.fl-theme-bw .ui-icon-plusthick{background-position:-32px -128px;}
+.fl-theme-bw .ui-icon-minus{background-position:-48px -128px;}
+.fl-theme-bw .ui-icon-minusthick{background-position:-64px -128px;}
+.fl-theme-bw .ui-icon-close{background-position:-80px -128px;}
+.fl-theme-bw .ui-icon-closethick{background-position:-96px -128px;}
+.fl-theme-bw .ui-icon-key{background-position:-112px -128px;}
+.fl-theme-bw .ui-icon-lightbulb{background-position:-128px -128px;}
+.fl-theme-bw .ui-icon-scissors{background-position:-144px -128px;}
+.fl-theme-bw .ui-icon-clipboard{background-position:-160px -128px;}
+.fl-theme-bw .ui-icon-copy{background-position:-176px -128px;}
+.fl-theme-bw .ui-icon-contact{background-position:-192px -128px;}
+.fl-theme-bw .ui-icon-image{background-position:-208px -128px;}
+.fl-theme-bw .ui-icon-video{background-position:-224px -128px;}
+.fl-theme-bw .ui-icon-script{background-position:-240px -128px;}
+.fl-theme-bw .ui-icon-alert{background-position:0 -144px;}
+.fl-theme-bw .ui-icon-info{background-position:-16px -144px;}
+.fl-theme-bw .ui-icon-notice{background-position:-32px -144px;}
+.fl-theme-bw .ui-icon-help{background-position:-48px -144px;}
+.fl-theme-bw .ui-icon-check{background-position:-64px -144px;}
+.fl-theme-bw .ui-icon-bullet{background-position:-80px -144px;}
+.fl-theme-bw .ui-icon-radio-off{background-position:-96px -144px;}
+.fl-theme-bw .ui-icon-radio-on{background-position:-112px -144px;}
+.fl-theme-bw .ui-icon-pin-w{background-position:-128px -144px;}
+.fl-theme-bw .ui-icon-pin-s{background-position:-144px -144px;}
+.fl-theme-bw .ui-icon-play{background-position:0 -160px;}
+.fl-theme-bw .ui-icon-pause{background-position:-16px -160px;}
+.fl-theme-bw .ui-icon-seek-next{background-position:-32px -160px;}
+.fl-theme-bw .ui-icon-seek-prev{background-position:-48px -160px;}
+.fl-theme-bw .ui-icon-seek-end{background-position:-64px -160px;}
+.fl-theme-bw .ui-icon-seek-start{background-position:-80px -160px;}
+.fl-theme-bw .ui-icon-seek-first{background-position:-80px -160px;}
+.fl-theme-bw .ui-icon-stop{background-position:-96px -160px;}
+.fl-theme-bw .ui-icon-eject{background-position:-112px -160px;}
+.fl-theme-bw .ui-icon-volume-off{background-position:-128px -160px;}
+.fl-theme-bw .ui-icon-volume-on{background-position:-144px -160px;}
+.fl-theme-bw .ui-icon-power{background-position:0 -176px;}
+.fl-theme-bw .ui-icon-signal-diag{background-position:-16px -176px;}
+.fl-theme-bw .ui-icon-signal{background-position:-32px -176px;}
+.fl-theme-bw .ui-icon-battery-0{background-position:-48px -176px;}
+.fl-theme-bw .ui-icon-battery-1{background-position:-64px -176px;}
+.fl-theme-bw .ui-icon-battery-2{background-position:-80px -176px;}
+.fl-theme-bw .ui-icon-battery-3{background-position:-96px -176px;}
+.fl-theme-bw .ui-icon-circle-plus{background-position:0 -192px;}
+.fl-theme-bw .ui-icon-circle-minus{background-position:-16px -192px;}
+.fl-theme-bw .ui-icon-circle-close{background-position:-32px -192px;}
+.fl-theme-bw .ui-icon-circle-triangle-e{background-position:-48px -192px;}
+.fl-theme-bw .ui-icon-circle-triangle-s{background-position:-64px -192px;}
+.fl-theme-bw .ui-icon-circle-triangle-w{background-position:-80px -192px;}
+.fl-theme-bw .ui-icon-circle-triangle-n{background-position:-96px -192px;}
+.fl-theme-bw .ui-icon-circle-arrow-e{background-position:-112px -192px;}
+.fl-theme-bw .ui-icon-circle-arrow-s{background-position:-128px -192px;}
+.fl-theme-bw .ui-icon-circle-arrow-w{background-position:-144px -192px;}
+.fl-theme-bw .ui-icon-circle-arrow-n{background-position:-160px -192px;}
+.fl-theme-bw .ui-icon-circle-zoomin{background-position:-176px -192px;}
+.fl-theme-bw .ui-icon-circle-zoomout{background-position:-192px -192px;}
+.fl-theme-bw .ui-icon-circle-check{background-position:-208px -192px;}
+.fl-theme-bw .ui-icon-circlesmall-plus{background-position:0 -208px;}
+.fl-theme-bw .ui-icon-circlesmall-minus{background-position:-16px -208px;}
+.fl-theme-bw .ui-icon-circlesmall-close{background-position:-32px -208px;}
+.fl-theme-bw .ui-icon-squaresmall-plus{background-position:-48px -208px;}
+.fl-theme-bw .ui-icon-squaresmall-minus{background-position:-64px -208px;}
+.fl-theme-bw .ui-icon-squaresmall-close{background-position:-80px -208px;}
+.fl-theme-bw .ui-icon-grip-dotted-vertical{background-position:0 -224px;}
+.fl-theme-bw .ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
+.fl-theme-bw .ui-icon-grip-solid-vertical{background-position:-32px -224px;}
+.fl-theme-bw .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
+.fl-theme-bw .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
+.fl-theme-bw .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
+.fl-theme-bw .ui-corner-all,.fl-theme-bw .ui-corner-top,.fl-theme-bw .ui-corner-left,.fl-theme-bw .ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-khtml-border-top-left-radius:5px;border-top-left-radius:5px;}
+.fl-theme-bw .ui-corner-all,.fl-theme-bw .ui-corner-top,.fl-theme-bw .ui-corner-right,.fl-theme-bw .ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;-khtml-border-top-right-radius:5px;border-top-right-radius:5px;}
+.fl-theme-bw .ui-corner-all,.fl-theme-bw .ui-corner-bottom,.fl-theme-bw .ui-corner-left,.fl-theme-bw .ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;-khtml-border-bottom-left-radius:5px;border-bottom-left-radius:5px;}
+.fl-theme-bw .ui-corner-all,.fl-theme-bw .ui-corner-bottom,.fl-theme-bw .ui-corner-right,.fl-theme-bw .ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;-khtml-border-bottom-right-radius:5px;border-bottom-right-radius:5px;}
+.fl-theme-bw .ui-widget-overlay{background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;opacity:.75;filter:Alpha(Opacity=75);}
+.fl-theme-bw .ui-widget-shadow{margin:5px 0 0 5px;padding:1px;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:100;filter:Alpha(Opacity=100);-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}
+.fl-theme-bw .ui-resizable{position:relative;}
+.fl-theme-bw .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}
+.fl-theme-bw .ui-resizable-disabled .ui-resizable-handle,.fl-theme-bw .ui-resizable-autohide .ui-resizable-handle{display:none;}
+.fl-theme-bw .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.fl-theme-bw .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.fl-theme-bw .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.fl-theme-bw .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.fl-theme-bw .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.fl-theme-bw .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.fl-theme-bw .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.fl-theme-bw .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.fl-theme-bw .ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.fl-theme-bw .ui-accordion{width:100%;}
+.fl-theme-bw .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
+.fl-theme-bw .ui-accordion .ui-accordion-li-fix{display:inline;}
+.fl-theme-bw .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
+.fl-theme-bw .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}
+.fl-theme-bw .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}
+.fl-theme-bw .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
+.fl-theme-bw .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}
+.fl-theme-bw .ui-accordion .ui-accordion-content-active{display:block;}
+.fl-theme-bw .ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.fl-theme-bw .ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}
+.fl-theme-bw .ui-menu .ui-menu{margin-top:-3px;}
+.fl-theme-bw .ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}
+.fl-theme-bw .ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}
+.fl-theme-bw .ui-menu .ui-menu-item a.ui-state-hover,.fl-theme-bw .ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
+.fl-theme-bw .ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}
+.fl-theme-bw .ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.fl-theme-bw .ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.fl-theme-bw .ui-button .ui-button-text{display:block;line-height:1.4;}
+.fl-theme-bw .ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.fl-theme-bw .ui-button-icon-only .ui-button-text,.fl-theme-bw .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.fl-theme-bw .ui-button-text-icon-primary .ui-button-text,.fl-theme-bw .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.fl-theme-bw .ui-button-text-icon-secondary .ui-button-text,.fl-theme-bw .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.fl-theme-bw .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.fl-theme-bw .ui-button-icon-only .ui-icon,.fl-theme-bw .ui-button-text-icon-primary .ui-icon,.fl-theme-bw .ui-button-text-icon-secondary .ui-icon,.fl-theme-bw .ui-button-text-icons .ui-icon,.fl-theme-bw .ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.fl-theme-bw .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.fl-theme-bw .ui-button-text-icon-primary .ui-button-icon-primary,.fl-theme-bw .ui-button-text-icons .ui-button-icon-primary,.fl-theme-bw .ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.fl-theme-bw .ui-button-text-icon-secondary .ui-button-icon-secondary,.fl-theme-bw .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-bw .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-bw .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-bw .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-bw .ui-buttonset{margin-right:7px;}
+.fl-theme-bw .ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.fl-theme-bw .ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}
+.fl-theme-bw .ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
+.fl-theme-bw .ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}
+.fl-theme-bw .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
+.fl-theme-bw .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.fl-theme-bw .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-bw .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.fl-theme-bw .ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
+.fl-theme-bw .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
+.fl-theme-bw .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.fl-theme-bw .ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
+.fl-theme-bw .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
+.fl-theme-bw .ui-draggable .ui-dialog-titlebar{cursor:move;}
+.fl-theme-bw .ui-slider{position:relative;text-align:left;}
+.fl-theme-bw .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
+.fl-theme-bw .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.fl-theme-bw .ui-slider-horizontal{height:.8em;}
+.fl-theme-bw .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
+.fl-theme-bw .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.fl-theme-bw .ui-slider-horizontal .ui-slider-range-min{left:0;}
+.fl-theme-bw .ui-slider-horizontal .ui-slider-range-max{right:0;}
+.fl-theme-bw .ui-slider-vertical{width:.8em;height:100px;}
+.fl-theme-bw .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
+.fl-theme-bw .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.fl-theme-bw .ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.fl-theme-bw .ui-slider-vertical .ui-slider-range-max{top:0;}
+.fl-theme-bw .ui-tabs{position:relative;padding:.2em;zoom:1;}
+.fl-theme-bw .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.fl-theme-bw .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.fl-theme-bw .ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.fl-theme-bw .ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.fl-theme-bw .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-bw .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-bw .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.fl-theme-bw .ui-tabs .ui-tabs-nav li a,.fl-theme-bw .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.fl-theme-bw .ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.fl-theme-bw .ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-theme-bw .ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-prev,.fl-theme-bw .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-bw .ui-datepicker .ui-datepicker-next-hover{top:1px;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-prev{left:2px;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-next{right:2px;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-prev-hover{left:1px;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-next-hover{right:1px;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-prev span,.fl-theme-bw .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
+.fl-theme-bw .ui-datepicker select.ui-datepicker-month-year{width:100%;}
+.fl-theme-bw .ui-datepicker select.ui-datepicker-month,.fl-theme-bw .ui-datepicker select.ui-datepicker-year{width:49%;}
+.fl-theme-bw .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
+.fl-theme-bw .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
+.fl-theme-bw .ui-datepicker td{border:0;padding:1px;}
+.fl-theme-bw .ui-datepicker td span,.fl-theme-bw .ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
+.fl-theme-bw .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
+.fl-theme-bw .ui-datepicker.ui-datepicker-multi{width:auto;}
+.fl-theme-bw .ui-datepicker-multi .ui-datepicker-group{float:left;}
+.fl-theme-bw .ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}
+.fl-theme-bw .ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
+.fl-theme-bw .ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}
+.fl-theme-bw .ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
+.fl-theme-bw .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}
+.fl-theme-bw .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
+.fl-theme-bw .ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
+.fl-theme-bw .ui-datepicker-row-break{clear:both;width:100%;font-size:0;}
+.fl-theme-bw .ui-datepicker-rtl{direction:rtl;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-group{float:right;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-bw .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-bw .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
+.fl-theme-bw .ui-progressbar{height:2em;text-align:left;}
+.fl-theme-bw .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-bg_flat_0_000000_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-bg_flat_0_000000_40x100.png
new file mode 100644 (file)
index 0000000..abdc010
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-bg_flat_0_000000_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-bg_flat_0_ffffff_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-bg_flat_0_ffffff_40x100.png
new file mode 100644 (file)
index 0000000..ac8b229
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-bg_flat_0_ffffff_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_000000_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_000000_256x240.png
new file mode 100644 (file)
index 0000000..7c211aa
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_000000_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_ffffff_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_ffffff_256x240.png
new file mode 100644 (file)
index 0000000..42f8f99
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_ffffff_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/by.css b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/by.css
new file mode 100644 (file)
index 0000000..d95482c
--- /dev/null
@@ -0,0 +1,347 @@
+.fl-theme-by .ui-helper-hidden{display:none;}
+.fl-theme-by .ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
+.fl-theme-by .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
+.fl-theme-by .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+.fl-theme-by .ui-helper-clearfix{display:inline-block;}
+/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
+.fl-theme-by .ui-helper-clearfix{display:block;}
+/* end clearfix */ .fl-theme-by .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
+.fl-theme-by .ui-state-disabled{cursor:default!important;}
+.fl-theme-by .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
+.fl-theme-by .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
+.fl-theme-by .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.2em;}
+.fl-theme-by .ui-widget .ui-widget{font-size:1em;}
+.fl-theme-by .ui-widget input,.fl-theme-by .ui-widget select,.fl-theme-by .ui-widget textarea,.fl-theme-by .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.fl-theme-by .ui-widget-content{border:1px solid #000;background:#ff0 url(images/ui-bg_flat_0_ffff00_40x100.png) 50% 50% repeat-x;color:#000;}
+.fl-theme-by .ui-widget-content a{color:#000;}
+.fl-theme-by .ui-widget-header{border:1px solid #000;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#ff0;font-weight:bold;}
+.fl-theme-by .ui-widget-header a{color:#ff0;}
+.fl-theme-by .ui-state-default,.fl-theme-by .ui-widget-content .ui-state-default,.fl-theme-by .ui-widget-header .ui-state-default{border:1px solid #000;background:#ff0 url(images/ui-bg_flat_0_ffff00_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-by .ui-state-default a,.fl-theme-by .ui-state-default a:link,.fl-theme-by .ui-state-default a:visited{color:#000;text-decoration:none;}
+.fl-theme-by .ui-state-hover,.fl-theme-by .ui-widget-content .ui-state-hover,.fl-theme-by .ui-widget-header .ui-state-hover,.fl-theme-by .ui-state-focus,.fl-theme-by .ui-widget-content .ui-state-focus,.fl-theme-by .ui-widget-header .ui-state-focus{border:1px solid #ff0;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#ff0;}
+.fl-theme-by .ui-state-hover a,.fl-theme-by .ui-state-hover a:hover{color:#ff0;text-decoration:none;}
+.fl-theme-by .ui-state-active,.fl-theme-by .ui-widget-content .ui-state-active,.fl-theme-by .ui-widget-header .ui-state-active{border:1px solid #000;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#ff0;}
+.fl-theme-by .ui-state-active a,.fl-theme-by .ui-state-active a:link,.fl-theme-by .ui-state-active a:visited{color:#ff0;text-decoration:none;}
+.fl-theme-by .ui-widget :active{outline:none;}
+.fl-theme-by .ui-state-highlight,.fl-theme-by .ui-widget-content .ui-state-highlight,.fl-theme-by .ui-widget-header .ui-state-highlight{border:1px solid #000;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#ff0;}
+.fl-theme-by .ui-state-highlight a,.fl-theme-by .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#ff0;}
+.fl-theme-by .ui-state-error,.fl-theme-by .ui-widget-content .ui-state-error,.fl-theme-by .ui-widget-header .ui-state-error{border:1px solid #000;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#ff0;}
+.fl-theme-by .ui-state-error a,.fl-theme-by .ui-widget-content .ui-state-error a,.fl-theme-by .ui-widget-header .ui-state-error a{color:#ff0;}
+.fl-theme-by .ui-state-error-text,.fl-theme-by .ui-widget-content .ui-state-error-text,.fl-theme-by .ui-widget-header .ui-state-error-text{color:#ff0;}
+.fl-theme-by .ui-priority-primary,.fl-theme-by .ui-widget-content .ui-priority-primary,.fl-theme-by .ui-widget-header .ui-priority-primary{font-weight:bold;}
+.fl-theme-by .ui-priority-secondary,.fl-theme-by .ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-by .ui-state-disabled,.fl-theme-by .ui-widget-content .ui-state-disabled,.fl-theme-by .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
+.fl-theme-by .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-by .ui-widget-content .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-by .ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-by .ui-state-default .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-by .ui-state-hover .ui-icon,.fl-theme-by .ui-state-focus .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-by .ui-state-active .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-by .ui-state-highlight .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-by .ui-state-error .ui-icon,.fl-theme-by .ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-by .ui-icon-carat-1-n{background-position:0 0;}
+.fl-theme-by .ui-icon-carat-1-ne{background-position:-16px 0;}
+.fl-theme-by .ui-icon-carat-1-e{background-position:-32px 0;}
+.fl-theme-by .ui-icon-carat-1-se{background-position:-48px 0;}
+.fl-theme-by .ui-icon-carat-1-s{background-position:-64px 0;}
+.fl-theme-by .ui-icon-carat-1-sw{background-position:-80px 0;}
+.fl-theme-by .ui-icon-carat-1-w{background-position:-96px 0;}
+.fl-theme-by .ui-icon-carat-1-nw{background-position:-112px 0;}
+.fl-theme-by .ui-icon-carat-2-n-s{background-position:-128px 0;}
+.fl-theme-by .ui-icon-carat-2-e-w{background-position:-144px 0;}
+.fl-theme-by .ui-icon-triangle-1-n{background-position:0 -16px;}
+.fl-theme-by .ui-icon-triangle-1-ne{background-position:-16px -16px;}
+.fl-theme-by .ui-icon-triangle-1-e{background-position:-32px -16px;}
+.fl-theme-by .ui-icon-triangle-1-se{background-position:-48px -16px;}
+.fl-theme-by .ui-icon-triangle-1-s{background-position:-64px -16px;}
+.fl-theme-by .ui-icon-triangle-1-sw{background-position:-80px -16px;}
+.fl-theme-by .ui-icon-triangle-1-w{background-position:-96px -16px;}
+.fl-theme-by .ui-icon-triangle-1-nw{background-position:-112px -16px;}
+.fl-theme-by .ui-icon-triangle-2-n-s{background-position:-128px -16px;}
+.fl-theme-by .ui-icon-triangle-2-e-w{background-position:-144px -16px;}
+.fl-theme-by .ui-icon-arrow-1-n{background-position:0 -32px;}
+.fl-theme-by .ui-icon-arrow-1-ne{background-position:-16px -32px;}
+.fl-theme-by .ui-icon-arrow-1-e{background-position:-32px -32px;}
+.fl-theme-by .ui-icon-arrow-1-se{background-position:-48px -32px;}
+.fl-theme-by .ui-icon-arrow-1-s{background-position:-64px -32px;}
+.fl-theme-by .ui-icon-arrow-1-sw{background-position:-80px -32px;}
+.fl-theme-by .ui-icon-arrow-1-w{background-position:-96px -32px;}
+.fl-theme-by .ui-icon-arrow-1-nw{background-position:-112px -32px;}
+.fl-theme-by .ui-icon-arrow-2-n-s{background-position:-128px -32px;}
+.fl-theme-by .ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
+.fl-theme-by .ui-icon-arrow-2-e-w{background-position:-160px -32px;}
+.fl-theme-by .ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
+.fl-theme-by .ui-icon-arrowstop-1-n{background-position:-192px -32px;}
+.fl-theme-by .ui-icon-arrowstop-1-e{background-position:-208px -32px;}
+.fl-theme-by .ui-icon-arrowstop-1-s{background-position:-224px -32px;}
+.fl-theme-by .ui-icon-arrowstop-1-w{background-position:-240px -32px;}
+.fl-theme-by .ui-icon-arrowthick-1-n{background-position:0 -48px;}
+.fl-theme-by .ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
+.fl-theme-by .ui-icon-arrowthick-1-e{background-position:-32px -48px;}
+.fl-theme-by .ui-icon-arrowthick-1-se{background-position:-48px -48px;}
+.fl-theme-by .ui-icon-arrowthick-1-s{background-position:-64px -48px;}
+.fl-theme-by .ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
+.fl-theme-by .ui-icon-arrowthick-1-w{background-position:-96px -48px;}
+.fl-theme-by .ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
+.fl-theme-by .ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
+.fl-theme-by .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
+.fl-theme-by .ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
+.fl-theme-by .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
+.fl-theme-by .ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
+.fl-theme-by .ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
+.fl-theme-by .ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
+.fl-theme-by .ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
+.fl-theme-by .ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
+.fl-theme-by .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
+.fl-theme-by .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
+.fl-theme-by .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
+.fl-theme-by .ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
+.fl-theme-by .ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
+.fl-theme-by .ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
+.fl-theme-by .ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
+.fl-theme-by .ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
+.fl-theme-by .ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
+.fl-theme-by .ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
+.fl-theme-by .ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
+.fl-theme-by .ui-icon-arrow-4{background-position:0 -80px;}
+.fl-theme-by .ui-icon-arrow-4-diag{background-position:-16px -80px;}
+.fl-theme-by .ui-icon-extlink{background-position:-32px -80px;}
+.fl-theme-by .ui-icon-newwin{background-position:-48px -80px;}
+.fl-theme-by .ui-icon-refresh{background-position:-64px -80px;}
+.fl-theme-by .ui-icon-shuffle{background-position:-80px -80px;}
+.fl-theme-by .ui-icon-transfer-e-w{background-position:-96px -80px;}
+.fl-theme-by .ui-icon-transferthick-e-w{background-position:-112px -80px;}
+.fl-theme-by .ui-icon-folder-collapsed{background-position:0 -96px;}
+.fl-theme-by .ui-icon-folder-open{background-position:-16px -96px;}
+.fl-theme-by .ui-icon-document{background-position:-32px -96px;}
+.fl-theme-by .ui-icon-document-b{background-position:-48px -96px;}
+.fl-theme-by .ui-icon-note{background-position:-64px -96px;}
+.fl-theme-by .ui-icon-mail-closed{background-position:-80px -96px;}
+.fl-theme-by .ui-icon-mail-open{background-position:-96px -96px;}
+.fl-theme-by .ui-icon-suitcase{background-position:-112px -96px;}
+.fl-theme-by .ui-icon-comment{background-position:-128px -96px;}
+.fl-theme-by .ui-icon-person{background-position:-144px -96px;}
+.fl-theme-by .ui-icon-print{background-position:-160px -96px;}
+.fl-theme-by .ui-icon-trash{background-position:-176px -96px;}
+.fl-theme-by .ui-icon-locked{background-position:-192px -96px;}
+.fl-theme-by .ui-icon-unlocked{background-position:-208px -96px;}
+.fl-theme-by .ui-icon-bookmark{background-position:-224px -96px;}
+.fl-theme-by .ui-icon-tag{background-position:-240px -96px;}
+.fl-theme-by .ui-icon-home{background-position:0 -112px;}
+.fl-theme-by .ui-icon-flag{background-position:-16px -112px;}
+.fl-theme-by .ui-icon-calendar{background-position:-32px -112px;}
+.fl-theme-by .ui-icon-cart{background-position:-48px -112px;}
+.fl-theme-by .ui-icon-pencil{background-position:-64px -112px;}
+.fl-theme-by .ui-icon-clock{background-position:-80px -112px;}
+.fl-theme-by .ui-icon-disk{background-position:-96px -112px;}
+.fl-theme-by .ui-icon-calculator{background-position:-112px -112px;}
+.fl-theme-by .ui-icon-zoomin{background-position:-128px -112px;}
+.fl-theme-by .ui-icon-zoomout{background-position:-144px -112px;}
+.fl-theme-by .ui-icon-search{background-position:-160px -112px;}
+.fl-theme-by .ui-icon-wrench{background-position:-176px -112px;}
+.fl-theme-by .ui-icon-gear{background-position:-192px -112px;}
+.fl-theme-by .ui-icon-heart{background-position:-208px -112px;}
+.fl-theme-by .ui-icon-star{background-position:-224px -112px;}
+.fl-theme-by .ui-icon-link{background-position:-240px -112px;}
+.fl-theme-by .ui-icon-cancel{background-position:0 -128px;}
+.fl-theme-by .ui-icon-plus{background-position:-16px -128px;}
+.fl-theme-by .ui-icon-plusthick{background-position:-32px -128px;}
+.fl-theme-by .ui-icon-minus{background-position:-48px -128px;}
+.fl-theme-by .ui-icon-minusthick{background-position:-64px -128px;}
+.fl-theme-by .ui-icon-close{background-position:-80px -128px;}
+.fl-theme-by .ui-icon-closethick{background-position:-96px -128px;}
+.fl-theme-by .ui-icon-key{background-position:-112px -128px;}
+.fl-theme-by .ui-icon-lightbulb{background-position:-128px -128px;}
+.fl-theme-by .ui-icon-scissors{background-position:-144px -128px;}
+.fl-theme-by .ui-icon-clipboard{background-position:-160px -128px;}
+.fl-theme-by .ui-icon-copy{background-position:-176px -128px;}
+.fl-theme-by .ui-icon-contact{background-position:-192px -128px;}
+.fl-theme-by .ui-icon-image{background-position:-208px -128px;}
+.fl-theme-by .ui-icon-video{background-position:-224px -128px;}
+.fl-theme-by .ui-icon-script{background-position:-240px -128px;}
+.fl-theme-by .ui-icon-alert{background-position:0 -144px;}
+.fl-theme-by .ui-icon-info{background-position:-16px -144px;}
+.fl-theme-by .ui-icon-notice{background-position:-32px -144px;}
+.fl-theme-by .ui-icon-help{background-position:-48px -144px;}
+.fl-theme-by .ui-icon-check{background-position:-64px -144px;}
+.fl-theme-by .ui-icon-bullet{background-position:-80px -144px;}
+.fl-theme-by .ui-icon-radio-off{background-position:-96px -144px;}
+.fl-theme-by .ui-icon-radio-on{background-position:-112px -144px;}
+.fl-theme-by .ui-icon-pin-w{background-position:-128px -144px;}
+.fl-theme-by .ui-icon-pin-s{background-position:-144px -144px;}
+.fl-theme-by .ui-icon-play{background-position:0 -160px;}
+.fl-theme-by .ui-icon-pause{background-position:-16px -160px;}
+.fl-theme-by .ui-icon-seek-next{background-position:-32px -160px;}
+.fl-theme-by .ui-icon-seek-prev{background-position:-48px -160px;}
+.fl-theme-by .ui-icon-seek-end{background-position:-64px -160px;}
+.fl-theme-by .ui-icon-seek-start{background-position:-80px -160px;}
+.fl-theme-by .ui-icon-seek-first{background-position:-80px -160px;}
+.fl-theme-by .ui-icon-stop{background-position:-96px -160px;}
+.fl-theme-by .ui-icon-eject{background-position:-112px -160px;}
+.fl-theme-by .ui-icon-volume-off{background-position:-128px -160px;}
+.fl-theme-by .ui-icon-volume-on{background-position:-144px -160px;}
+.fl-theme-by .ui-icon-power{background-position:0 -176px;}
+.fl-theme-by .ui-icon-signal-diag{background-position:-16px -176px;}
+.fl-theme-by .ui-icon-signal{background-position:-32px -176px;}
+.fl-theme-by .ui-icon-battery-0{background-position:-48px -176px;}
+.fl-theme-by .ui-icon-battery-1{background-position:-64px -176px;}
+.fl-theme-by .ui-icon-battery-2{background-position:-80px -176px;}
+.fl-theme-by .ui-icon-battery-3{background-position:-96px -176px;}
+.fl-theme-by .ui-icon-circle-plus{background-position:0 -192px;}
+.fl-theme-by .ui-icon-circle-minus{background-position:-16px -192px;}
+.fl-theme-by .ui-icon-circle-close{background-position:-32px -192px;}
+.fl-theme-by .ui-icon-circle-triangle-e{background-position:-48px -192px;}
+.fl-theme-by .ui-icon-circle-triangle-s{background-position:-64px -192px;}
+.fl-theme-by .ui-icon-circle-triangle-w{background-position:-80px -192px;}
+.fl-theme-by .ui-icon-circle-triangle-n{background-position:-96px -192px;}
+.fl-theme-by .ui-icon-circle-arrow-e{background-position:-112px -192px;}
+.fl-theme-by .ui-icon-circle-arrow-s{background-position:-128px -192px;}
+.fl-theme-by .ui-icon-circle-arrow-w{background-position:-144px -192px;}
+.fl-theme-by .ui-icon-circle-arrow-n{background-position:-160px -192px;}
+.fl-theme-by .ui-icon-circle-zoomin{background-position:-176px -192px;}
+.fl-theme-by .ui-icon-circle-zoomout{background-position:-192px -192px;}
+.fl-theme-by .ui-icon-circle-check{background-position:-208px -192px;}
+.fl-theme-by .ui-icon-circlesmall-plus{background-position:0 -208px;}
+.fl-theme-by .ui-icon-circlesmall-minus{background-position:-16px -208px;}
+.fl-theme-by .ui-icon-circlesmall-close{background-position:-32px -208px;}
+.fl-theme-by .ui-icon-squaresmall-plus{background-position:-48px -208px;}
+.fl-theme-by .ui-icon-squaresmall-minus{background-position:-64px -208px;}
+.fl-theme-by .ui-icon-squaresmall-close{background-position:-80px -208px;}
+.fl-theme-by .ui-icon-grip-dotted-vertical{background-position:0 -224px;}
+.fl-theme-by .ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
+.fl-theme-by .ui-icon-grip-solid-vertical{background-position:-32px -224px;}
+.fl-theme-by .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
+.fl-theme-by .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
+.fl-theme-by .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
+.fl-theme-by .ui-corner-all,.fl-theme-by .ui-corner-top,.fl-theme-by .ui-corner-left,.fl-theme-by .ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-khtml-border-top-left-radius:5px;border-top-left-radius:5px;}
+.fl-theme-by .ui-corner-all,.fl-theme-by .ui-corner-top,.fl-theme-by .ui-corner-right,.fl-theme-by .ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;-khtml-border-top-right-radius:5px;border-top-right-radius:5px;}
+.fl-theme-by .ui-corner-all,.fl-theme-by .ui-corner-bottom,.fl-theme-by .ui-corner-left,.fl-theme-by .ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;-khtml-border-bottom-left-radius:5px;border-bottom-left-radius:5px;}
+.fl-theme-by .ui-corner-all,.fl-theme-by .ui-corner-bottom,.fl-theme-by .ui-corner-right,.fl-theme-by .ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;-khtml-border-bottom-right-radius:5px;border-bottom-right-radius:5px;}
+.fl-theme-by .ui-widget-overlay{background:#ff0 url(images/ui-bg_flat_0_ffff00_40x100.png) 50% 50% repeat-x;opacity:.75;filter:Alpha(Opacity=75);}
+.fl-theme-by .ui-widget-shadow{margin:5px 0 0 5px;padding:1px;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:100;filter:Alpha(Opacity=100);-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}
+.fl-theme-by .ui-resizable{position:relative;}
+.fl-theme-by .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}
+.fl-theme-by .ui-resizable-disabled .ui-resizable-handle,.fl-theme-by .ui-resizable-autohide .ui-resizable-handle{display:none;}
+.fl-theme-by .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.fl-theme-by .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.fl-theme-by .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.fl-theme-by .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.fl-theme-by .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.fl-theme-by .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.fl-theme-by .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.fl-theme-by .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.fl-theme-by .ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.fl-theme-by .ui-accordion{width:100%;}
+.fl-theme-by .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
+.fl-theme-by .ui-accordion .ui-accordion-li-fix{display:inline;}
+.fl-theme-by .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
+.fl-theme-by .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}
+.fl-theme-by .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}
+.fl-theme-by .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
+.fl-theme-by .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}
+.fl-theme-by .ui-accordion .ui-accordion-content-active{display:block;}
+.fl-theme-by .ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.fl-theme-by .ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}
+.fl-theme-by .ui-menu .ui-menu{margin-top:-3px;}
+.fl-theme-by .ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}
+.fl-theme-by .ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}
+.fl-theme-by .ui-menu .ui-menu-item a.ui-state-hover,.fl-theme-by .ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
+.fl-theme-by .ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}
+.fl-theme-by .ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.fl-theme-by .ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.fl-theme-by .ui-button .ui-button-text{display:block;line-height:1.4;}
+.fl-theme-by .ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.fl-theme-by .ui-button-icon-only .ui-button-text,.fl-theme-by .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.fl-theme-by .ui-button-text-icon-primary .ui-button-text,.fl-theme-by .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.fl-theme-by .ui-button-text-icon-secondary .ui-button-text,.fl-theme-by .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.fl-theme-by .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.fl-theme-by .ui-button-icon-only .ui-icon,.fl-theme-by .ui-button-text-icon-primary .ui-icon,.fl-theme-by .ui-button-text-icon-secondary .ui-icon,.fl-theme-by .ui-button-text-icons .ui-icon,.fl-theme-by .ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.fl-theme-by .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.fl-theme-by .ui-button-text-icon-primary .ui-button-icon-primary,.fl-theme-by .ui-button-text-icons .ui-button-icon-primary,.fl-theme-by .ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.fl-theme-by .ui-button-text-icon-secondary .ui-button-icon-secondary,.fl-theme-by .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-by .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-by .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-by .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-by .ui-buttonset{margin-right:7px;}
+.fl-theme-by .ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.fl-theme-by .ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}
+.fl-theme-by .ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
+.fl-theme-by .ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}
+.fl-theme-by .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
+.fl-theme-by .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.fl-theme-by .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-by .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.fl-theme-by .ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
+.fl-theme-by .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
+.fl-theme-by .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.fl-theme-by .ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
+.fl-theme-by .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
+.fl-theme-by .ui-draggable .ui-dialog-titlebar{cursor:move;}
+.fl-theme-by .ui-slider{position:relative;text-align:left;}
+.fl-theme-by .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
+.fl-theme-by .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.fl-theme-by .ui-slider-horizontal{height:.8em;}
+.fl-theme-by .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
+.fl-theme-by .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.fl-theme-by .ui-slider-horizontal .ui-slider-range-min{left:0;}
+.fl-theme-by .ui-slider-horizontal .ui-slider-range-max{right:0;}
+.fl-theme-by .ui-slider-vertical{width:.8em;height:100px;}
+.fl-theme-by .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
+.fl-theme-by .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.fl-theme-by .ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.fl-theme-by .ui-slider-vertical .ui-slider-range-max{top:0;}
+.fl-theme-by .ui-tabs{position:relative;padding:.2em;zoom:1;}
+.fl-theme-by .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.fl-theme-by .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.fl-theme-by .ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.fl-theme-by .ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.fl-theme-by .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-by .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-by .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.fl-theme-by .ui-tabs .ui-tabs-nav li a,.fl-theme-by .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.fl-theme-by .ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.fl-theme-by .ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-theme-by .ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
+.fl-theme-by .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
+.fl-theme-by .ui-datepicker .ui-datepicker-prev,.fl-theme-by .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
+.fl-theme-by .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-by .ui-datepicker .ui-datepicker-next-hover{top:1px;}
+.fl-theme-by .ui-datepicker .ui-datepicker-prev{left:2px;}
+.fl-theme-by .ui-datepicker .ui-datepicker-next{right:2px;}
+.fl-theme-by .ui-datepicker .ui-datepicker-prev-hover{left:1px;}
+.fl-theme-by .ui-datepicker .ui-datepicker-next-hover{right:1px;}
+.fl-theme-by .ui-datepicker .ui-datepicker-prev span,.fl-theme-by .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
+.fl-theme-by .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
+.fl-theme-by .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
+.fl-theme-by .ui-datepicker select.ui-datepicker-month-year{width:100%;}
+.fl-theme-by .ui-datepicker select.ui-datepicker-month,.fl-theme-by .ui-datepicker select.ui-datepicker-year{width:49%;}
+.fl-theme-by .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
+.fl-theme-by .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
+.fl-theme-by .ui-datepicker td{border:0;padding:1px;}
+.fl-theme-by .ui-datepicker td span,.fl-theme-by .ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}
+.fl-theme-by .ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
+.fl-theme-by .ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
+.fl-theme-by .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
+.fl-theme-by .ui-datepicker.ui-datepicker-multi{width:auto;}
+.fl-theme-by .ui-datepicker-multi .ui-datepicker-group{float:left;}
+.fl-theme-by .ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}
+.fl-theme-by .ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
+.fl-theme-by .ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}
+.fl-theme-by .ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
+.fl-theme-by .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}
+.fl-theme-by .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
+.fl-theme-by .ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
+.fl-theme-by .ui-datepicker-row-break{clear:both;width:100%;font-size:0;}
+.fl-theme-by .ui-datepicker-rtl{direction:rtl;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-group{float:right;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-by .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-by .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
+.fl-theme-by .ui-progressbar{height:2em;text-align:left;}
+.fl-theme-by .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-bg_flat_0_000000_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-bg_flat_0_000000_40x100.png
new file mode 100644 (file)
index 0000000..abdc010
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-bg_flat_0_000000_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-bg_flat_0_ffff00_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-bg_flat_0_ffff00_40x100.png
new file mode 100644 (file)
index 0000000..47565fe
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-bg_flat_0_ffff00_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-icons_000000_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-icons_000000_256x240.png
new file mode 100644 (file)
index 0000000..7c211aa
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-icons_000000_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-icons_ffff00_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-icons_ffff00_256x240.png
new file mode 100644 (file)
index 0000000..069c234
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-by/images/ui-icons_ffff00_256x240.png differ
index e6b95ef..1d94498 100644 (file)
@@ -1,5 +1,5 @@
 .fl-theme-coal .ui-helper-hidden{display:none;}
-.fl-theme-coal .ui-helper-hidden-accessible{position:absolute;left:-99999999px;}
+.fl-theme-coal .ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
 .fl-theme-coal .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
 .fl-theme-coal .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
 .fl-theme-coal .ui-helper-clearfix{display:inline-block;}
@@ -9,26 +9,28 @@
 .fl-theme-coal .ui-state-disabled{cursor:default!important;}
 .fl-theme-coal .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
 .fl-theme-coal .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
-.fl-theme-coal .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.fl-theme-coal .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}
+.fl-theme-coal .ui-widget .ui-widget{font-size:1em;}
 .fl-theme-coal .ui-widget input,.fl-theme-coal .ui-widget select,.fl-theme-coal .ui-widget textarea,.fl-theme-coal .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
 .fl-theme-coal .ui-widget-content{border:1px solid #ccc;background:#ccc url(images/ui-bg_flat_75_cccccc_40x100.png) 50% 50% repeat-x;color:#222;}
 .fl-theme-coal .ui-widget-content a{color:#222;}
 .fl-theme-coal .ui-widget-header{border:1px solid #00000;background:#575757 url(images/ui-bg_highlight-soft_25_575757_1x100.png) 50% 50% repeat-x;color:#ccc;font-weight:bold;}
 .fl-theme-coal .ui-widget-header a{color:#ccc;}
-.fl-theme-coal .ui-state-default,.fl-theme-coal .ui-widget-content .ui-state-default{border:1px solid #000;background:#333 url(images/ui-bg_highlight-soft_75_333333_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#a3a3a3;outline:none;}
-.fl-theme-coal .ui-state-default a,.fl-theme-coal .ui-state-default a:link,.fl-theme-coal .ui-state-default a:visited{color:#a3a3a3;text-decoration:none;outline:none;}
-.fl-theme-coal .ui-state-hover,.fl-theme-coal .ui-widget-content .ui-state-hover,.fl-theme-coal .ui-state-focus,.fl-theme-coal .ui-widget-content .ui-state-focus{border:1px solid #000;background:#666 url(images/ui-bg_highlight-soft_75_666666_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;outline:none;}
-.fl-theme-coal .ui-state-hover a,.fl-theme-coal .ui-state-hover a:hover{color:#fff;text-decoration:none;outline:none;}
-.fl-theme-coal .ui-state-active,.fl-theme-coal .ui-widget-content .ui-state-active{border:1px solid #000;background:#000 url(images/ui-bg_highlight-soft_65_000000_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;outline:none;}
-.fl-theme-coal .ui-state-active a,.fl-theme-coal .ui-state-active a:link,.fl-theme-coal .ui-state-active a:visited{color:#fff;outline:none;text-decoration:none;}
-.fl-theme-coal .ui-state-highlight,.fl-theme-coal .ui-widget-content .ui-state-highlight{border:1px solid #666;background:#ccc url(images/ui-bg_highlight-soft_55_cccccc_1x100.png) 50% top repeat-x;color:#000;}
-.fl-theme-coal .ui-state-highlight a,.fl-theme-coal .ui-widget-content .ui-state-highlight a{color:#000;}
-.fl-theme-coal .ui-state-error,.fl-theme-coal .ui-widget-content .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x;color:#cd0a0a;}
-.fl-theme-coal .ui-state-error a,.fl-theme-coal .ui-widget-content .ui-state-error a{color:#cd0a0a;}
-.fl-theme-coal .ui-state-error-text,.fl-theme-coal .ui-widget-content .ui-state-error-text{color:#cd0a0a;}
-.fl-theme-coal .ui-state-disabled,.fl-theme-coal .ui-widget-content .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
-.fl-theme-coal .ui-priority-primary,.fl-theme-coal .ui-widget-content .ui-priority-primary{font-weight:bold;}
-.fl-theme-coal .ui-priority-secondary,.fl-theme-coal .ui-widget-content .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-coal .ui-state-default,.fl-theme-coal .ui-widget-content .ui-state-default,.fl-theme-coal .ui-widget-header .ui-state-default{border:1px solid #000;background:#333 url(images/ui-bg_highlight-soft_75_333333_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#a3a3a3;}
+.fl-theme-coal .ui-state-default a,.fl-theme-coal .ui-state-default a:link,.fl-theme-coal .ui-state-default a:visited{color:#a3a3a3;text-decoration:none;}
+.fl-theme-coal .ui-state-hover,.fl-theme-coal .ui-widget-content .ui-state-hover,.fl-theme-coal .ui-widget-header .ui-state-hover,.fl-theme-coal .ui-state-focus,.fl-theme-coal .ui-widget-content .ui-state-focus,.fl-theme-coal .ui-widget-header .ui-state-focus{border:1px solid #000;background:#666 url(images/ui-bg_highlight-soft_75_666666_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;}
+.fl-theme-coal .ui-state-hover a,.fl-theme-coal .ui-state-hover a:hover{color:#fff;text-decoration:none;}
+.fl-theme-coal .ui-state-active,.fl-theme-coal .ui-widget-content .ui-state-active,.fl-theme-coal .ui-widget-header .ui-state-active{border:1px solid #000;background:#000 url(images/ui-bg_highlight-soft_65_000000_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;}
+.fl-theme-coal .ui-state-active a,.fl-theme-coal .ui-state-active a:link,.fl-theme-coal .ui-state-active a:visited{color:#fff;text-decoration:none;}
+.fl-theme-coal .ui-widget :active{outline:none;}
+.fl-theme-coal .ui-state-highlight,.fl-theme-coal .ui-widget-content .ui-state-highlight,.fl-theme-coal .ui-widget-header .ui-state-highlight{border:1px solid #666;background:#ccc url(images/ui-bg_highlight-soft_55_cccccc_1x100.png) 50% top repeat-x;color:#000;}
+.fl-theme-coal .ui-state-highlight a,.fl-theme-coal .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#000;}
+.fl-theme-coal .ui-state-error,.fl-theme-coal .ui-widget-content .ui-state-error,.fl-theme-coal .ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x;color:#cd0a0a;}
+.fl-theme-coal .ui-state-error a,.fl-theme-coal .ui-widget-content .ui-state-error a,.fl-theme-coal .ui-widget-header .ui-state-error a{color:#cd0a0a;}
+.fl-theme-coal .ui-state-error-text,.fl-theme-coal .ui-widget-content .ui-state-error-text,.fl-theme-coal .ui-widget-header .ui-state-error-text{color:#cd0a0a;}
+.fl-theme-coal .ui-priority-primary,.fl-theme-coal .ui-widget-content .ui-priority-primary,.fl-theme-coal .ui-widget-header .ui-priority-primary{font-weight:bold;}
+.fl-theme-coal .ui-priority-secondary,.fl-theme-coal .ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-coal .ui-state-disabled,.fl-theme-coal .ui-widget-content .ui-state-disabled,.fl-theme-coal .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
 .fl-theme-coal .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}
 .fl-theme-coal .ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
 .fl-theme-coal .ui-widget-header .ui-icon{background-image:url(images/ui-icons_cccccc_256x240.png);}
 .fl-theme-coal .ui-icon-seek-next{background-position:-32px -160px;}
 .fl-theme-coal .ui-icon-seek-prev{background-position:-48px -160px;}
 .fl-theme-coal .ui-icon-seek-end{background-position:-64px -160px;}
+.fl-theme-coal .ui-icon-seek-start{background-position:-80px -160px;}
 .fl-theme-coal .ui-icon-seek-first{background-position:-80px -160px;}
 .fl-theme-coal .ui-icon-stop{background-position:-96px -160px;}
 .fl-theme-coal .ui-icon-eject{background-position:-112px -160px;}
 .fl-theme-coal .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
 .fl-theme-coal .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
 .fl-theme-coal .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
-.fl-theme-coal .ui-corner-tl{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;}
-.fl-theme-coal .ui-corner-tr{-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;}
-.fl-theme-coal .ui-corner-bl{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;}
-.fl-theme-coal .ui-corner-br{-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;}
-.fl-theme-coal .ui-corner-top{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;}
-.fl-theme-coal .ui-corner-bottom{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;}
-.fl-theme-coal .ui-corner-right{-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;}
-.fl-theme-coal .ui-corner-left{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;}
-.fl-theme-coal .ui-corner-all{-moz-border-radius:0;-webkit-border-radius:0;}
+.fl-theme-coal .ui-corner-tl{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;}
+.fl-theme-coal .ui-corner-tr{-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;}
+.fl-theme-coal .ui-corner-bl{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;}
+.fl-theme-coal .ui-corner-br{-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;}
+.fl-theme-coal .ui-corner-top{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;}
+.fl-theme-coal .ui-corner-bottom{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;}
+.fl-theme-coal .ui-corner-right{-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;}
+.fl-theme-coal .ui-corner-left{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;}
+.fl-theme-coal .ui-corner-all{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;}
 .fl-theme-coal .ui-widget-overlay{background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:.40;filter:Alpha(Opacity=40);}
-.fl-theme-coal .ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:.50;filter:Alpha(Opacity=50);-moz-border-radius:5px;-webkit-border-radius:5px;}
+.fl-theme-coal .ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:.50;filter:Alpha(Opacity=50);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}
+.fl-theme-coal .ui-resizable{position:relative;}
+.fl-theme-coal .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;background-image:url(data:);}
+.fl-theme-coal .ui-resizable-disabled .ui-resizable-handle,.fl-theme-coal .ui-resizable-autohide .ui-resizable-handle{display:none;}
+.fl-theme-coal .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.fl-theme-coal .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.fl-theme-coal .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.fl-theme-coal .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.fl-theme-coal .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.fl-theme-coal .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.fl-theme-coal .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.fl-theme-coal .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.fl-theme-coal .ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.fl-theme-coal .ui-accordion{width:100%;}
 .fl-theme-coal .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
 .fl-theme-coal .ui-accordion .ui-accordion-li-fix{display:inline;}
 .fl-theme-coal .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
-.fl-theme-coal .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em 2.2em;}
+.fl-theme-coal .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}
+.fl-theme-coal .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}
 .fl-theme-coal .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
-.fl-theme-coal .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;}
+.fl-theme-coal .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}
 .fl-theme-coal .ui-accordion .ui-accordion-content-active{display:block;}
-.fl-theme-coal .ui-datepicker{width:17em;padding:.2em .2em 0;}
+.fl-theme-coal .ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.fl-theme-coal .ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}
+.fl-theme-coal .ui-menu .ui-menu{margin-top:-3px;}
+.fl-theme-coal .ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}
+.fl-theme-coal .ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}
+.fl-theme-coal .ui-menu .ui-menu-item a.ui-state-hover,.fl-theme-coal .ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
+.fl-theme-coal .ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}
+.fl-theme-coal .ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.fl-theme-coal .ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.fl-theme-coal .ui-button .ui-button-text{display:block;line-height:1.4;}
+.fl-theme-coal .ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.fl-theme-coal .ui-button-icon-only .ui-button-text,.fl-theme-coal .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.fl-theme-coal .ui-button-text-icon-primary .ui-button-text,.fl-theme-coal .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.fl-theme-coal .ui-button-text-icon-secondary .ui-button-text,.fl-theme-coal .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.fl-theme-coal .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.fl-theme-coal .ui-button-icon-only .ui-icon,.fl-theme-coal .ui-button-text-icon-primary .ui-icon,.fl-theme-coal .ui-button-text-icon-secondary .ui-icon,.fl-theme-coal .ui-button-text-icons .ui-icon,.fl-theme-coal .ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.fl-theme-coal .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.fl-theme-coal .ui-button-text-icon-primary .ui-button-icon-primary,.fl-theme-coal .ui-button-text-icons .ui-button-icon-primary,.fl-theme-coal .ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.fl-theme-coal .ui-button-text-icon-secondary .ui-button-icon-secondary,.fl-theme-coal .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-coal .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-coal .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-coal .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-coal .ui-buttonset{margin-right:7px;}
+.fl-theme-coal .ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.fl-theme-coal .ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}
+.fl-theme-coal .ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
+.fl-theme-coal .ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}
+.fl-theme-coal .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
+.fl-theme-coal .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.fl-theme-coal .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-coal .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.fl-theme-coal .ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
+.fl-theme-coal .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
+.fl-theme-coal .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.fl-theme-coal .ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
+.fl-theme-coal .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
+.fl-theme-coal .ui-draggable .ui-dialog-titlebar{cursor:move;}
+.fl-theme-coal .ui-slider{position:relative;text-align:left;}
+.fl-theme-coal .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
+.fl-theme-coal .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.fl-theme-coal .ui-slider-horizontal{height:.8em;}
+.fl-theme-coal .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
+.fl-theme-coal .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.fl-theme-coal .ui-slider-horizontal .ui-slider-range-min{left:0;}
+.fl-theme-coal .ui-slider-horizontal .ui-slider-range-max{right:0;}
+.fl-theme-coal .ui-slider-vertical{width:.8em;height:100px;}
+.fl-theme-coal .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
+.fl-theme-coal .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.fl-theme-coal .ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.fl-theme-coal .ui-slider-vertical .ui-slider-range-max{top:0;}
+.fl-theme-coal .ui-tabs{position:relative;padding:.2em;zoom:1;}
+.fl-theme-coal .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.fl-theme-coal .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.fl-theme-coal .ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.fl-theme-coal .ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.fl-theme-coal .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-coal .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-coal .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.fl-theme-coal .ui-tabs .ui-tabs-nav li a,.fl-theme-coal .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.fl-theme-coal .ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.fl-theme-coal .ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-theme-coal .ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
 .fl-theme-coal .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
 .fl-theme-coal .ui-datepicker .ui-datepicker-prev,.fl-theme-coal .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
 .fl-theme-coal .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-coal .ui-datepicker .ui-datepicker-next-hover{top:1px;}
 .fl-theme-coal .ui-datepicker .ui-datepicker-next-hover{right:1px;}
 .fl-theme-coal .ui-datepicker .ui-datepicker-prev span,.fl-theme-coal .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
 .fl-theme-coal .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
-.fl-theme-coal .ui-datepicker .ui-datepicker-title select{float:left;font-size:1em;margin:1px 0;}
+.fl-theme-coal .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
 .fl-theme-coal .ui-datepicker select.ui-datepicker-month-year{width:100%;}
 .fl-theme-coal .ui-datepicker select.ui-datepicker-month,.fl-theme-coal .ui-datepicker select.ui-datepicker-year{width:49%;}
-.fl-theme-coal .ui-datepicker .ui-datepicker-title select.ui-datepicker-year{float:right;}
 .fl-theme-coal .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
 .fl-theme-coal .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
 .fl-theme-coal .ui-datepicker td{border:0;padding:1px;}
 .fl-theme-coal .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
 .fl-theme-coal .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
 .fl-theme-coal .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
-.fl-theme-coal .ui-dialog{position:relative;padding:.2em;width:300px;}
-.fl-theme-coal .ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative;}
-.fl-theme-coal .ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em;}
-.fl-theme-coal .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
-.fl-theme-coal .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
-.fl-theme-coal .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-coal .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
-.fl-theme-coal .ui-dialog .ui-dialog-content{border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
-.fl-theme-coal .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
-.fl-theme-coal .ui-dialog .ui-dialog-buttonpane button{float:right;margin:.5em .4em .5em 0;cursor:pointer;padding:.2em .6em .3em .6em;line-height:1.4em;width:auto;overflow:visible;}
-.fl-theme-coal .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
-.fl-theme-coal .ui-draggable .ui-dialog-titlebar{cursor:move;}
 .fl-theme-coal .ui-progressbar{height:2em;text-align:left;}
-.fl-theme-coal .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
-.fl-theme-coal .ui-resizable{position:relative;}
-.fl-theme-coal .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}
-.fl-theme-coal .ui-resizable-disabled .ui-resizable-handle,.fl-theme-coal .ui-resizable-autohide .ui-resizable-handle{display:none;}
-.fl-theme-coal .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
-.fl-theme-coal .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
-.fl-theme-coal .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
-.fl-theme-coal .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
-.fl-theme-coal .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
-.fl-theme-coal .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
-.fl-theme-coal .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
-.fl-theme-coal .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
-.fl-theme-coal .ui-slider{position:relative;text-align:left;}
-.fl-theme-coal .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
-.fl-theme-coal .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;}
-.fl-theme-coal .ui-slider-horizontal{height:.8em;}
-.fl-theme-coal .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
-.fl-theme-coal .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
-.fl-theme-coal .ui-slider-horizontal .ui-slider-range-min{left:0;}
-.fl-theme-coal .ui-slider-horizontal .ui-slider-range-max{right:0;}
-.fl-theme-coal .ui-slider-vertical{width:.8em;height:100px;}
-.fl-theme-coal .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
-.fl-theme-coal .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
-.fl-theme-coal .ui-slider-vertical .ui-slider-range-min{bottom:0;}
-.fl-theme-coal .ui-slider-vertical .ui-slider-range-max{top:0;}
-.fl-theme-coal .ui-tabs{padding:.2em;zoom:1;}
-.fl-theme-coal .ui-tabs .ui-tabs-nav{list-style:none;position:relative;padding:.2em .2em 0;}
-.fl-theme-coal .ui-tabs .ui-tabs-nav li{position:relative;float:left;border-bottom-width:0!important;margin:0 .2em -1px 0;padding:0;}
-.fl-theme-coal .ui-tabs .ui-tabs-nav li a{float:left;text-decoration:none;padding:.5em 1em;}
-.fl-theme-coal .ui-tabs .ui-tabs-nav li.ui-tabs-selected{padding-bottom:1px;border-bottom-width:0;}
-.fl-theme-coal .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-coal .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-coal .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
-.fl-theme-coal .ui-tabs .ui-tabs-nav li a,.fl-theme-coal .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
-.fl-theme-coal .ui-tabs .ui-tabs-panel{padding:1em 1.4em;display:block;border-width:0;background:none;}
-.fl-theme-coal .ui-tabs .ui-tabs-hide{display:none!important;}
\ No newline at end of file
+.fl-theme-coal .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
index 67560da..b273ff1 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_222222_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_222222_256x240.png differ
index 4d44b9b..fe079a5 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_333333_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_333333_256x240.png differ
index 6ef54f5..3329ab6 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_a3a3a3_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_a3a3a3_256x240.png differ
index bdb3cf2..9254e05 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_cccccc_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_cccccc_256x240.png differ
index 2db88b7..2ab019b 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_cd0a0a_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_cd0a0a_256x240.png differ
index 746e6fa..42f8f99 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_ffffff_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-coal/images/ui-icons_ffffff_256x240.png differ
index 7a509ab..9c82693 100644 (file)
@@ -1,319 +1 @@
-.fl-theme-hc .ui-helper-hidden{display:none;}
-.fl-theme-hc .ui-helper-hidden-accessible{position:absolute;left:-99999999px;}
-.fl-theme-hc .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
-.fl-theme-hc .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
-.fl-theme-hc .ui-helper-clearfix{display:inline-block;}
-/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
-.fl-theme-hc .ui-helper-clearfix{display:block;}
-/* end clearfix */ .fl-theme-hc .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
-.fl-theme-hc .ui-state-disabled{cursor:default!important;}
-.fl-theme-hc .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
-.fl-theme-hc .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
-.fl-theme-hc .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1em;}
-.fl-theme-hc .ui-widget input,.fl-theme-hc .ui-widget select,.fl-theme-hc .ui-widget textarea,.fl-theme-hc .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
-.fl-theme-hc .ui-widget-content{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#000;}
-.fl-theme-hc .ui-widget-content a{color:#000;}
-.fl-theme-hc .ui-widget-header{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#000;font-weight:bold;}
-.fl-theme-hc .ui-widget-header a{color:#000;}
-.fl-theme-hc .ui-state-default,.fl-theme-hc .ui-widget-content .ui-state-default{border:1px solid #000;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;outline:none;}
-.fl-theme-hc .ui-state-default a,.fl-theme-hc .ui-state-default a:link,.fl-theme-hc .ui-state-default a:visited{color:#fff;text-decoration:none;outline:none;}
-.fl-theme-hc .ui-state-hover,.fl-theme-hc .ui-widget-content .ui-state-hover,.fl-theme-hc .ui-state-focus,.fl-theme-hc .ui-widget-content .ui-state-focus{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;outline:none;}
-.fl-theme-hc .ui-state-hover a,.fl-theme-hc .ui-state-hover a:hover{color:#000;text-decoration:none;outline:none;}
-.fl-theme-hc .ui-state-active,.fl-theme-hc .ui-widget-content .ui-state-active{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;outline:none;}
-.fl-theme-hc .ui-state-active a,.fl-theme-hc .ui-state-active a:link,.fl-theme-hc .ui-state-active a:visited{color:#000;outline:none;text-decoration:none;}
-.fl-theme-hc .ui-state-highlight,.fl-theme-hc .ui-widget-content .ui-state-highlight{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#000;}
-.fl-theme-hc .ui-state-highlight a,.fl-theme-hc .ui-widget-content .ui-state-highlight a{color:#000;}
-.fl-theme-hc .ui-state-error,.fl-theme-hc .ui-widget-content .ui-state-error{border:1px solid #fff;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#fff;}
-.fl-theme-hc .ui-state-error a,.fl-theme-hc .ui-widget-content .ui-state-error a{color:#fff;}
-.fl-theme-hc .ui-state-error-text,.fl-theme-hc .ui-widget-content .ui-state-error-text{color:#fff;}
-.fl-theme-hc .ui-state-disabled,.fl-theme-hc .ui-widget-content .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
-.fl-theme-hc .ui-priority-primary,.fl-theme-hc .ui-widget-content .ui-priority-primary{font-weight:bold;}
-.fl-theme-hc .ui-priority-secondary,.fl-theme-hc .ui-widget-content .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
-.fl-theme-hc .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_000000_256x240.png);}
-.fl-theme-hc .ui-widget-content .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
-.fl-theme-hc .ui-widget-header .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
-.fl-theme-hc .ui-state-default .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
-.fl-theme-hc .ui-state-hover .ui-icon,.fl-theme-hc .ui-state-focus .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
-.fl-theme-hc .ui-state-active .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
-.fl-theme-hc .ui-state-highlight .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
-.fl-theme-hc .ui-state-error .ui-icon,.fl-theme-hc .ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
-.fl-theme-hc .ui-icon-carat-1-n{background-position:0 0;}
-.fl-theme-hc .ui-icon-carat-1-ne{background-position:-16px 0;}
-.fl-theme-hc .ui-icon-carat-1-e{background-position:-32px 0;}
-.fl-theme-hc .ui-icon-carat-1-se{background-position:-48px 0;}
-.fl-theme-hc .ui-icon-carat-1-s{background-position:-64px 0;}
-.fl-theme-hc .ui-icon-carat-1-sw{background-position:-80px 0;}
-.fl-theme-hc .ui-icon-carat-1-w{background-position:-96px 0;}
-.fl-theme-hc .ui-icon-carat-1-nw{background-position:-112px 0;}
-.fl-theme-hc .ui-icon-carat-2-n-s{background-position:-128px 0;}
-.fl-theme-hc .ui-icon-carat-2-e-w{background-position:-144px 0;}
-.fl-theme-hc .ui-icon-triangle-1-n{background-position:0 -16px;}
-.fl-theme-hc .ui-icon-triangle-1-ne{background-position:-16px -16px;}
-.fl-theme-hc .ui-icon-triangle-1-e{background-position:-32px -16px;}
-.fl-theme-hc .ui-icon-triangle-1-se{background-position:-48px -16px;}
-.fl-theme-hc .ui-icon-triangle-1-s{background-position:-64px -16px;}
-.fl-theme-hc .ui-icon-triangle-1-sw{background-position:-80px -16px;}
-.fl-theme-hc .ui-icon-triangle-1-w{background-position:-96px -16px;}
-.fl-theme-hc .ui-icon-triangle-1-nw{background-position:-112px -16px;}
-.fl-theme-hc .ui-icon-triangle-2-n-s{background-position:-128px -16px;}
-.fl-theme-hc .ui-icon-triangle-2-e-w{background-position:-144px -16px;}
-.fl-theme-hc .ui-icon-arrow-1-n{background-position:0 -32px;}
-.fl-theme-hc .ui-icon-arrow-1-ne{background-position:-16px -32px;}
-.fl-theme-hc .ui-icon-arrow-1-e{background-position:-32px -32px;}
-.fl-theme-hc .ui-icon-arrow-1-se{background-position:-48px -32px;}
-.fl-theme-hc .ui-icon-arrow-1-s{background-position:-64px -32px;}
-.fl-theme-hc .ui-icon-arrow-1-sw{background-position:-80px -32px;}
-.fl-theme-hc .ui-icon-arrow-1-w{background-position:-96px -32px;}
-.fl-theme-hc .ui-icon-arrow-1-nw{background-position:-112px -32px;}
-.fl-theme-hc .ui-icon-arrow-2-n-s{background-position:-128px -32px;}
-.fl-theme-hc .ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
-.fl-theme-hc .ui-icon-arrow-2-e-w{background-position:-160px -32px;}
-.fl-theme-hc .ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
-.fl-theme-hc .ui-icon-arrowstop-1-n{background-position:-192px -32px;}
-.fl-theme-hc .ui-icon-arrowstop-1-e{background-position:-208px -32px;}
-.fl-theme-hc .ui-icon-arrowstop-1-s{background-position:-224px -32px;}
-.fl-theme-hc .ui-icon-arrowstop-1-w{background-position:-240px -32px;}
-.fl-theme-hc .ui-icon-arrowthick-1-n{background-position:0 -48px;}
-.fl-theme-hc .ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-1-e{background-position:-32px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-1-se{background-position:-48px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-1-s{background-position:-64px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-1-w{background-position:-96px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
-.fl-theme-hc .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
-.fl-theme-hc .ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
-.fl-theme-hc .ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
-.fl-theme-hc .ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
-.fl-theme-hc .ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
-.fl-theme-hc .ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
-.fl-theme-hc .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
-.fl-theme-hc .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
-.fl-theme-hc .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
-.fl-theme-hc .ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
-.fl-theme-hc .ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
-.fl-theme-hc .ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
-.fl-theme-hc .ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
-.fl-theme-hc .ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
-.fl-theme-hc .ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
-.fl-theme-hc .ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
-.fl-theme-hc .ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
-.fl-theme-hc .ui-icon-arrow-4{background-position:0 -80px;}
-.fl-theme-hc .ui-icon-arrow-4-diag{background-position:-16px -80px;}
-.fl-theme-hc .ui-icon-extlink{background-position:-32px -80px;}
-.fl-theme-hc .ui-icon-newwin{background-position:-48px -80px;}
-.fl-theme-hc .ui-icon-refresh{background-position:-64px -80px;}
-.fl-theme-hc .ui-icon-shuffle{background-position:-80px -80px;}
-.fl-theme-hc .ui-icon-transfer-e-w{background-position:-96px -80px;}
-.fl-theme-hc .ui-icon-transferthick-e-w{background-position:-112px -80px;}
-.fl-theme-hc .ui-icon-folder-collapsed{background-position:0 -96px;}
-.fl-theme-hc .ui-icon-folder-open{background-position:-16px -96px;}
-.fl-theme-hc .ui-icon-document{background-position:-32px -96px;}
-.fl-theme-hc .ui-icon-document-b{background-position:-48px -96px;}
-.fl-theme-hc .ui-icon-note{background-position:-64px -96px;}
-.fl-theme-hc .ui-icon-mail-closed{background-position:-80px -96px;}
-.fl-theme-hc .ui-icon-mail-open{background-position:-96px -96px;}
-.fl-theme-hc .ui-icon-suitcase{background-position:-112px -96px;}
-.fl-theme-hc .ui-icon-comment{background-position:-128px -96px;}
-.fl-theme-hc .ui-icon-person{background-position:-144px -96px;}
-.fl-theme-hc .ui-icon-print{background-position:-160px -96px;}
-.fl-theme-hc .ui-icon-trash{background-position:-176px -96px;}
-.fl-theme-hc .ui-icon-locked{background-position:-192px -96px;}
-.fl-theme-hc .ui-icon-unlocked{background-position:-208px -96px;}
-.fl-theme-hc .ui-icon-bookmark{background-position:-224px -96px;}
-.fl-theme-hc .ui-icon-tag{background-position:-240px -96px;}
-.fl-theme-hc .ui-icon-home{background-position:0 -112px;}
-.fl-theme-hc .ui-icon-flag{background-position:-16px -112px;}
-.fl-theme-hc .ui-icon-calendar{background-position:-32px -112px;}
-.fl-theme-hc .ui-icon-cart{background-position:-48px -112px;}
-.fl-theme-hc .ui-icon-pencil{background-position:-64px -112px;}
-.fl-theme-hc .ui-icon-clock{background-position:-80px -112px;}
-.fl-theme-hc .ui-icon-disk{background-position:-96px -112px;}
-.fl-theme-hc .ui-icon-calculator{background-position:-112px -112px;}
-.fl-theme-hc .ui-icon-zoomin{background-position:-128px -112px;}
-.fl-theme-hc .ui-icon-zoomout{background-position:-144px -112px;}
-.fl-theme-hc .ui-icon-search{background-position:-160px -112px;}
-.fl-theme-hc .ui-icon-wrench{background-position:-176px -112px;}
-.fl-theme-hc .ui-icon-gear{background-position:-192px -112px;}
-.fl-theme-hc .ui-icon-heart{background-position:-208px -112px;}
-.fl-theme-hc .ui-icon-star{background-position:-224px -112px;}
-.fl-theme-hc .ui-icon-link{background-position:-240px -112px;}
-.fl-theme-hc .ui-icon-cancel{background-position:0 -128px;}
-.fl-theme-hc .ui-icon-plus{background-position:-16px -128px;}
-.fl-theme-hc .ui-icon-plusthick{background-position:-32px -128px;}
-.fl-theme-hc .ui-icon-minus{background-position:-48px -128px;}
-.fl-theme-hc .ui-icon-minusthick{background-position:-64px -128px;}
-.fl-theme-hc .ui-icon-close{background-position:-80px -128px;}
-.fl-theme-hc .ui-icon-closethick{background-position:-96px -128px;}
-.fl-theme-hc .ui-icon-key{background-position:-112px -128px;}
-.fl-theme-hc .ui-icon-lightbulb{background-position:-128px -128px;}
-.fl-theme-hc .ui-icon-scissors{background-position:-144px -128px;}
-.fl-theme-hc .ui-icon-clipboard{background-position:-160px -128px;}
-.fl-theme-hc .ui-icon-copy{background-position:-176px -128px;}
-.fl-theme-hc .ui-icon-contact{background-position:-192px -128px;}
-.fl-theme-hc .ui-icon-image{background-position:-208px -128px;}
-.fl-theme-hc .ui-icon-video{background-position:-224px -128px;}
-.fl-theme-hc .ui-icon-script{background-position:-240px -128px;}
-.fl-theme-hc .ui-icon-alert{background-position:0 -144px;}
-.fl-theme-hc .ui-icon-info{background-position:-16px -144px;}
-.fl-theme-hc .ui-icon-notice{background-position:-32px -144px;}
-.fl-theme-hc .ui-icon-help{background-position:-48px -144px;}
-.fl-theme-hc .ui-icon-check{background-position:-64px -144px;}
-.fl-theme-hc .ui-icon-bullet{background-position:-80px -144px;}
-.fl-theme-hc .ui-icon-radio-off{background-position:-96px -144px;}
-.fl-theme-hc .ui-icon-radio-on{background-position:-112px -144px;}
-.fl-theme-hc .ui-icon-pin-w{background-position:-128px -144px;}
-.fl-theme-hc .ui-icon-pin-s{background-position:-144px -144px;}
-.fl-theme-hc .ui-icon-play{background-position:0 -160px;}
-.fl-theme-hc .ui-icon-pause{background-position:-16px -160px;}
-.fl-theme-hc .ui-icon-seek-next{background-position:-32px -160px;}
-.fl-theme-hc .ui-icon-seek-prev{background-position:-48px -160px;}
-.fl-theme-hc .ui-icon-seek-end{background-position:-64px -160px;}
-.fl-theme-hc .ui-icon-seek-first{background-position:-80px -160px;}
-.fl-theme-hc .ui-icon-stop{background-position:-96px -160px;}
-.fl-theme-hc .ui-icon-eject{background-position:-112px -160px;}
-.fl-theme-hc .ui-icon-volume-off{background-position:-128px -160px;}
-.fl-theme-hc .ui-icon-volume-on{background-position:-144px -160px;}
-.fl-theme-hc .ui-icon-power{background-position:0 -176px;}
-.fl-theme-hc .ui-icon-signal-diag{background-position:-16px -176px;}
-.fl-theme-hc .ui-icon-signal{background-position:-32px -176px;}
-.fl-theme-hc .ui-icon-battery-0{background-position:-48px -176px;}
-.fl-theme-hc .ui-icon-battery-1{background-position:-64px -176px;}
-.fl-theme-hc .ui-icon-battery-2{background-position:-80px -176px;}
-.fl-theme-hc .ui-icon-battery-3{background-position:-96px -176px;}
-.fl-theme-hc .ui-icon-circle-plus{background-position:0 -192px;}
-.fl-theme-hc .ui-icon-circle-minus{background-position:-16px -192px;}
-.fl-theme-hc .ui-icon-circle-close{background-position:-32px -192px;}
-.fl-theme-hc .ui-icon-circle-triangle-e{background-position:-48px -192px;}
-.fl-theme-hc .ui-icon-circle-triangle-s{background-position:-64px -192px;}
-.fl-theme-hc .ui-icon-circle-triangle-w{background-position:-80px -192px;}
-.fl-theme-hc .ui-icon-circle-triangle-n{background-position:-96px -192px;}
-.fl-theme-hc .ui-icon-circle-arrow-e{background-position:-112px -192px;}
-.fl-theme-hc .ui-icon-circle-arrow-s{background-position:-128px -192px;}
-.fl-theme-hc .ui-icon-circle-arrow-w{background-position:-144px -192px;}
-.fl-theme-hc .ui-icon-circle-arrow-n{background-position:-160px -192px;}
-.fl-theme-hc .ui-icon-circle-zoomin{background-position:-176px -192px;}
-.fl-theme-hc .ui-icon-circle-zoomout{background-position:-192px -192px;}
-.fl-theme-hc .ui-icon-circle-check{background-position:-208px -192px;}
-.fl-theme-hc .ui-icon-circlesmall-plus{background-position:0 -208px;}
-.fl-theme-hc .ui-icon-circlesmall-minus{background-position:-16px -208px;}
-.fl-theme-hc .ui-icon-circlesmall-close{background-position:-32px -208px;}
-.fl-theme-hc .ui-icon-squaresmall-plus{background-position:-48px -208px;}
-.fl-theme-hc .ui-icon-squaresmall-minus{background-position:-64px -208px;}
-.fl-theme-hc .ui-icon-squaresmall-close{background-position:-80px -208px;}
-.fl-theme-hc .ui-icon-grip-dotted-vertical{background-position:0 -224px;}
-.fl-theme-hc .ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
-.fl-theme-hc .ui-icon-grip-solid-vertical{background-position:-32px -224px;}
-.fl-theme-hc .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
-.fl-theme-hc .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
-.fl-theme-hc .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
-.fl-theme-hc .ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;}
-.fl-theme-hc .ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;}
-.fl-theme-hc .ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;}
-.fl-theme-hc .ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;}
-.fl-theme-hc .ui-corner-top{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;}
-.fl-theme-hc .ui-corner-bottom{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;}
-.fl-theme-hc .ui-corner-right{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;}
-.fl-theme-hc .ui-corner-left{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;}
-.fl-theme-hc .ui-corner-all{-moz-border-radius:5px;-webkit-border-radius:5px;}
-.fl-theme-hc .ui-widget-overlay{background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;opacity:.75;filter:Alpha(Opacity=75);}
-.fl-theme-hc .ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:100;filter:Alpha(Opacity=100);-moz-border-radius:5px;-webkit-border-radius:5px;}
-.fl-theme-hc .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
-.fl-theme-hc .ui-accordion .ui-accordion-li-fix{display:inline;}
-.fl-theme-hc .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
-.fl-theme-hc .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em 2.2em;}
-.fl-theme-hc .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
-.fl-theme-hc .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;}
-.fl-theme-hc .ui-accordion .ui-accordion-content-active{display:block;}
-.fl-theme-hc .ui-datepicker{width:17em;padding:.2em .2em 0;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-prev,.fl-theme-hc .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-hc .ui-datepicker .ui-datepicker-next-hover{top:1px;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-prev{left:2px;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-next{right:2px;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-prev-hover{left:1px;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-next-hover{right:1px;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-prev span,.fl-theme-hc .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-title select{float:left;font-size:1em;margin:1px 0;}
-.fl-theme-hc .ui-datepicker select.ui-datepicker-month-year{width:100%;}
-.fl-theme-hc .ui-datepicker select.ui-datepicker-month,.fl-theme-hc .ui-datepicker select.ui-datepicker-year{width:49%;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-title select.ui-datepicker-year{float:right;}
-.fl-theme-hc .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
-.fl-theme-hc .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
-.fl-theme-hc .ui-datepicker td{border:0;padding:1px;}
-.fl-theme-hc .ui-datepicker td span,.fl-theme-hc .ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
-.fl-theme-hc .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
-.fl-theme-hc .ui-datepicker.ui-datepicker-multi{width:auto;}
-.fl-theme-hc .ui-datepicker-multi .ui-datepicker-group{float:left;}
-.fl-theme-hc .ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}
-.fl-theme-hc .ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
-.fl-theme-hc .ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}
-.fl-theme-hc .ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
-.fl-theme-hc .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}
-.fl-theme-hc .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
-.fl-theme-hc .ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
-.fl-theme-hc .ui-datepicker-row-break{clear:both;width:100%;}
-.fl-theme-hc .ui-datepicker-rtl{direction:rtl;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-group{float:right;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
-.fl-theme-hc .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
-.fl-theme-hc .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
-.fl-theme-hc .ui-dialog{position:relative;padding:.2em;width:300px;}
-.fl-theme-hc .ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative;}
-.fl-theme-hc .ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em;}
-.fl-theme-hc .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
-.fl-theme-hc .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
-.fl-theme-hc .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-hc .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
-.fl-theme-hc .ui-dialog .ui-dialog-content{border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
-.fl-theme-hc .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
-.fl-theme-hc .ui-dialog .ui-dialog-buttonpane button{float:right;margin:.5em .4em .5em 0;cursor:pointer;padding:.2em .6em .3em .6em;line-height:1.4em;width:auto;overflow:visible;}
-.fl-theme-hc .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
-.fl-theme-hc .ui-draggable .ui-dialog-titlebar{cursor:move;}
-.fl-theme-hc .ui-progressbar{height:2em;text-align:left;}
-.fl-theme-hc .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
-.fl-theme-hc .ui-resizable{position:relative;}
-.fl-theme-hc .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}
-.fl-theme-hc .ui-resizable-disabled .ui-resizable-handle,.fl-theme-hc .ui-resizable-autohide .ui-resizable-handle{display:none;}
-.fl-theme-hc .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
-.fl-theme-hc .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
-.fl-theme-hc .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
-.fl-theme-hc .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
-.fl-theme-hc .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
-.fl-theme-hc .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
-.fl-theme-hc .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
-.fl-theme-hc .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
-.fl-theme-hc .ui-slider{position:relative;text-align:left;}
-.fl-theme-hc .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
-.fl-theme-hc .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;}
-.fl-theme-hc .ui-slider-horizontal{height:.8em;}
-.fl-theme-hc .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
-.fl-theme-hc .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
-.fl-theme-hc .ui-slider-horizontal .ui-slider-range-min{left:0;}
-.fl-theme-hc .ui-slider-horizontal .ui-slider-range-max{right:0;}
-.fl-theme-hc .ui-slider-vertical{width:.8em;height:100px;}
-.fl-theme-hc .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
-.fl-theme-hc .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
-.fl-theme-hc .ui-slider-vertical .ui-slider-range-min{bottom:0;}
-.fl-theme-hc .ui-slider-vertical .ui-slider-range-max{top:0;}
-.fl-theme-hc .ui-tabs{padding:.2em;zoom:1;}
-.fl-theme-hc .ui-tabs .ui-tabs-nav{list-style:none;position:relative;padding:.2em .2em 0;}
-.fl-theme-hc .ui-tabs .ui-tabs-nav li{position:relative;float:left;border-bottom-width:0!important;margin:0 .2em -1px 0;padding:0;}
-.fl-theme-hc .ui-tabs .ui-tabs-nav li a{float:left;text-decoration:none;padding:.5em 1em;}
-.fl-theme-hc .ui-tabs .ui-tabs-nav li.ui-tabs-selected{padding-bottom:1px;border-bottom-width:0;}
-.fl-theme-hc .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-hc .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-hc .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
-.fl-theme-hc .ui-tabs .ui-tabs-nav li a,.fl-theme-hc .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
-.fl-theme-hc .ui-tabs .ui-tabs-panel{padding:1em 1.4em;display:block;border-width:0;background:none;}
-.fl-theme-hc .ui-tabs .ui-tabs-hide{display:none!important;}
\ No newline at end of file
+@import url('../fl-theme-bw/bw.css');
\ No newline at end of file
index 842156d..7c211aa 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hc/images/ui-icons_000000_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hc/images/ui-icons_000000_256x240.png differ
index 746e6fa..42f8f99 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hc/images/ui-icons_ffffff_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hc/images/ui-icons_ffffff_256x240.png differ
index 1400375..031ea37 100644 (file)
@@ -1,319 +1 @@
-.fl-theme-hci .ui-helper-hidden{display:none;}
-.fl-theme-hci .ui-helper-hidden-accessible{position:absolute;left:-99999999px;}
-.fl-theme-hci .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
-.fl-theme-hci .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
-.fl-theme-hci .ui-helper-clearfix{display:inline-block;}
-/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
-.fl-theme-hci .ui-helper-clearfix{display:block;}
-/* end clearfix */ .fl-theme-hci .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
-.fl-theme-hci .ui-state-disabled{cursor:default!important;}
-.fl-theme-hci .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
-.fl-theme-hci .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
-.fl-theme-hci .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1em;}
-.fl-theme-hci .ui-widget input,.fl-theme-hci .ui-widget select,.fl-theme-hci .ui-widget textarea,.fl-theme-hci .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
-.fl-theme-hci .ui-widget-content{border:1px solid #fff;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#fff;}
-.fl-theme-hci .ui-widget-content a{color:#fff;}
-.fl-theme-hci .ui-widget-header{border:1px solid #fff;background:#999 url(images/ui-bg_flat_0_999999_40x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold;}
-.fl-theme-hci .ui-widget-header a{color:#fff;}
-.fl-theme-hci .ui-state-default,.fl-theme-hci .ui-widget-content .ui-state-default{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;outline:none;}
-.fl-theme-hci .ui-state-default a,.fl-theme-hci .ui-state-default a:link,.fl-theme-hci .ui-state-default a:visited{color:#000;text-decoration:none;outline:none;}
-.fl-theme-hci .ui-state-hover,.fl-theme-hci .ui-widget-content .ui-state-hover,.fl-theme-hci .ui-state-focus,.fl-theme-hci .ui-widget-content .ui-state-focus{border:1px solid #fff;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;outline:none;}
-.fl-theme-hci .ui-state-hover a,.fl-theme-hci .ui-state-hover a:hover{color:#fff;text-decoration:none;outline:none;}
-.fl-theme-hci .ui-state-active,.fl-theme-hci .ui-widget-content .ui-state-active{border:1px solid #fff;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;outline:none;}
-.fl-theme-hci .ui-state-active a,.fl-theme-hci .ui-state-active a:link,.fl-theme-hci .ui-state-active a:visited{color:#fff;outline:none;text-decoration:none;}
-.fl-theme-hci .ui-state-highlight,.fl-theme-hci .ui-widget-content .ui-state-highlight{border:1px solid #fff;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#fff;}
-.fl-theme-hci .ui-state-highlight a,.fl-theme-hci .ui-widget-content .ui-state-highlight a{color:#fff;}
-.fl-theme-hci .ui-state-error,.fl-theme-hci .ui-widget-content .ui-state-error{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#000;}
-.fl-theme-hci .ui-state-error a,.fl-theme-hci .ui-widget-content .ui-state-error a{color:#000;}
-.fl-theme-hci .ui-state-error-text,.fl-theme-hci .ui-widget-content .ui-state-error-text{color:#000;}
-.fl-theme-hci .ui-state-disabled,.fl-theme-hci .ui-widget-content .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
-.fl-theme-hci .ui-priority-primary,.fl-theme-hci .ui-widget-content .ui-priority-primary{font-weight:bold;}
-.fl-theme-hci .ui-priority-secondary,.fl-theme-hci .ui-widget-content .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
-.fl-theme-hci .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_ffffff_256x240.png);}
-.fl-theme-hci .ui-widget-content .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
-.fl-theme-hci .ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
-.fl-theme-hci .ui-state-default .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
-.fl-theme-hci .ui-state-hover .ui-icon,.fl-theme-hci .ui-state-focus .ui-icon{background-image:url(images/ui-icons_fffff_256x240.png);}
-.fl-theme-hci .ui-state-active .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
-.fl-theme-hci .ui-state-highlight .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
-.fl-theme-hci .ui-state-error .ui-icon,.fl-theme-hci .ui-state-error-text .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
-.fl-theme-hci .ui-icon-carat-1-n{background-position:0 0;}
-.fl-theme-hci .ui-icon-carat-1-ne{background-position:-16px 0;}
-.fl-theme-hci .ui-icon-carat-1-e{background-position:-32px 0;}
-.fl-theme-hci .ui-icon-carat-1-se{background-position:-48px 0;}
-.fl-theme-hci .ui-icon-carat-1-s{background-position:-64px 0;}
-.fl-theme-hci .ui-icon-carat-1-sw{background-position:-80px 0;}
-.fl-theme-hci .ui-icon-carat-1-w{background-position:-96px 0;}
-.fl-theme-hci .ui-icon-carat-1-nw{background-position:-112px 0;}
-.fl-theme-hci .ui-icon-carat-2-n-s{background-position:-128px 0;}
-.fl-theme-hci .ui-icon-carat-2-e-w{background-position:-144px 0;}
-.fl-theme-hci .ui-icon-triangle-1-n{background-position:0 -16px;}
-.fl-theme-hci .ui-icon-triangle-1-ne{background-position:-16px -16px;}
-.fl-theme-hci .ui-icon-triangle-1-e{background-position:-32px -16px;}
-.fl-theme-hci .ui-icon-triangle-1-se{background-position:-48px -16px;}
-.fl-theme-hci .ui-icon-triangle-1-s{background-position:-64px -16px;}
-.fl-theme-hci .ui-icon-triangle-1-sw{background-position:-80px -16px;}
-.fl-theme-hci .ui-icon-triangle-1-w{background-position:-96px -16px;}
-.fl-theme-hci .ui-icon-triangle-1-nw{background-position:-112px -16px;}
-.fl-theme-hci .ui-icon-triangle-2-n-s{background-position:-128px -16px;}
-.fl-theme-hci .ui-icon-triangle-2-e-w{background-position:-144px -16px;}
-.fl-theme-hci .ui-icon-arrow-1-n{background-position:0 -32px;}
-.fl-theme-hci .ui-icon-arrow-1-ne{background-position:-16px -32px;}
-.fl-theme-hci .ui-icon-arrow-1-e{background-position:-32px -32px;}
-.fl-theme-hci .ui-icon-arrow-1-se{background-position:-48px -32px;}
-.fl-theme-hci .ui-icon-arrow-1-s{background-position:-64px -32px;}
-.fl-theme-hci .ui-icon-arrow-1-sw{background-position:-80px -32px;}
-.fl-theme-hci .ui-icon-arrow-1-w{background-position:-96px -32px;}
-.fl-theme-hci .ui-icon-arrow-1-nw{background-position:-112px -32px;}
-.fl-theme-hci .ui-icon-arrow-2-n-s{background-position:-128px -32px;}
-.fl-theme-hci .ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
-.fl-theme-hci .ui-icon-arrow-2-e-w{background-position:-160px -32px;}
-.fl-theme-hci .ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
-.fl-theme-hci .ui-icon-arrowstop-1-n{background-position:-192px -32px;}
-.fl-theme-hci .ui-icon-arrowstop-1-e{background-position:-208px -32px;}
-.fl-theme-hci .ui-icon-arrowstop-1-s{background-position:-224px -32px;}
-.fl-theme-hci .ui-icon-arrowstop-1-w{background-position:-240px -32px;}
-.fl-theme-hci .ui-icon-arrowthick-1-n{background-position:0 -48px;}
-.fl-theme-hci .ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-1-e{background-position:-32px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-1-se{background-position:-48px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-1-s{background-position:-64px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-1-w{background-position:-96px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
-.fl-theme-hci .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
-.fl-theme-hci .ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
-.fl-theme-hci .ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
-.fl-theme-hci .ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
-.fl-theme-hci .ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
-.fl-theme-hci .ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
-.fl-theme-hci .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
-.fl-theme-hci .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
-.fl-theme-hci .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
-.fl-theme-hci .ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
-.fl-theme-hci .ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
-.fl-theme-hci .ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
-.fl-theme-hci .ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
-.fl-theme-hci .ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
-.fl-theme-hci .ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
-.fl-theme-hci .ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
-.fl-theme-hci .ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
-.fl-theme-hci .ui-icon-arrow-4{background-position:0 -80px;}
-.fl-theme-hci .ui-icon-arrow-4-diag{background-position:-16px -80px;}
-.fl-theme-hci .ui-icon-extlink{background-position:-32px -80px;}
-.fl-theme-hci .ui-icon-newwin{background-position:-48px -80px;}
-.fl-theme-hci .ui-icon-refresh{background-position:-64px -80px;}
-.fl-theme-hci .ui-icon-shuffle{background-position:-80px -80px;}
-.fl-theme-hci .ui-icon-transfer-e-w{background-position:-96px -80px;}
-.fl-theme-hci .ui-icon-transferthick-e-w{background-position:-112px -80px;}
-.fl-theme-hci .ui-icon-folder-collapsed{background-position:0 -96px;}
-.fl-theme-hci .ui-icon-folder-open{background-position:-16px -96px;}
-.fl-theme-hci .ui-icon-document{background-position:-32px -96px;}
-.fl-theme-hci .ui-icon-document-b{background-position:-48px -96px;}
-.fl-theme-hci .ui-icon-note{background-position:-64px -96px;}
-.fl-theme-hci .ui-icon-mail-closed{background-position:-80px -96px;}
-.fl-theme-hci .ui-icon-mail-open{background-position:-96px -96px;}
-.fl-theme-hci .ui-icon-suitcase{background-position:-112px -96px;}
-.fl-theme-hci .ui-icon-comment{background-position:-128px -96px;}
-.fl-theme-hci .ui-icon-person{background-position:-144px -96px;}
-.fl-theme-hci .ui-icon-print{background-position:-160px -96px;}
-.fl-theme-hci .ui-icon-trash{background-position:-176px -96px;}
-.fl-theme-hci .ui-icon-locked{background-position:-192px -96px;}
-.fl-theme-hci .ui-icon-unlocked{background-position:-208px -96px;}
-.fl-theme-hci .ui-icon-bookmark{background-position:-224px -96px;}
-.fl-theme-hci .ui-icon-tag{background-position:-240px -96px;}
-.fl-theme-hci .ui-icon-home{background-position:0 -112px;}
-.fl-theme-hci .ui-icon-flag{background-position:-16px -112px;}
-.fl-theme-hci .ui-icon-calendar{background-position:-32px -112px;}
-.fl-theme-hci .ui-icon-cart{background-position:-48px -112px;}
-.fl-theme-hci .ui-icon-pencil{background-position:-64px -112px;}
-.fl-theme-hci .ui-icon-clock{background-position:-80px -112px;}
-.fl-theme-hci .ui-icon-disk{background-position:-96px -112px;}
-.fl-theme-hci .ui-icon-calculator{background-position:-112px -112px;}
-.fl-theme-hci .ui-icon-zoomin{background-position:-128px -112px;}
-.fl-theme-hci .ui-icon-zoomout{background-position:-144px -112px;}
-.fl-theme-hci .ui-icon-search{background-position:-160px -112px;}
-.fl-theme-hci .ui-icon-wrench{background-position:-176px -112px;}
-.fl-theme-hci .ui-icon-gear{background-position:-192px -112px;}
-.fl-theme-hci .ui-icon-heart{background-position:-208px -112px;}
-.fl-theme-hci .ui-icon-star{background-position:-224px -112px;}
-.fl-theme-hci .ui-icon-link{background-position:-240px -112px;}
-.fl-theme-hci .ui-icon-cancel{background-position:0 -128px;}
-.fl-theme-hci .ui-icon-plus{background-position:-16px -128px;}
-.fl-theme-hci .ui-icon-plusthick{background-position:-32px -128px;}
-.fl-theme-hci .ui-icon-minus{background-position:-48px -128px;}
-.fl-theme-hci .ui-icon-minusthick{background-position:-64px -128px;}
-.fl-theme-hci .ui-icon-close{background-position:-80px -128px;}
-.fl-theme-hci .ui-icon-closethick{background-position:-96px -128px;}
-.fl-theme-hci .ui-icon-key{background-position:-112px -128px;}
-.fl-theme-hci .ui-icon-lightbulb{background-position:-128px -128px;}
-.fl-theme-hci .ui-icon-scissors{background-position:-144px -128px;}
-.fl-theme-hci .ui-icon-clipboard{background-position:-160px -128px;}
-.fl-theme-hci .ui-icon-copy{background-position:-176px -128px;}
-.fl-theme-hci .ui-icon-contact{background-position:-192px -128px;}
-.fl-theme-hci .ui-icon-image{background-position:-208px -128px;}
-.fl-theme-hci .ui-icon-video{background-position:-224px -128px;}
-.fl-theme-hci .ui-icon-script{background-position:-240px -128px;}
-.fl-theme-hci .ui-icon-alert{background-position:0 -144px;}
-.fl-theme-hci .ui-icon-info{background-position:-16px -144px;}
-.fl-theme-hci .ui-icon-notice{background-position:-32px -144px;}
-.fl-theme-hci .ui-icon-help{background-position:-48px -144px;}
-.fl-theme-hci .ui-icon-check{background-position:-64px -144px;}
-.fl-theme-hci .ui-icon-bullet{background-position:-80px -144px;}
-.fl-theme-hci .ui-icon-radio-off{background-position:-96px -144px;}
-.fl-theme-hci .ui-icon-radio-on{background-position:-112px -144px;}
-.fl-theme-hci .ui-icon-pin-w{background-position:-128px -144px;}
-.fl-theme-hci .ui-icon-pin-s{background-position:-144px -144px;}
-.fl-theme-hci .ui-icon-play{background-position:0 -160px;}
-.fl-theme-hci .ui-icon-pause{background-position:-16px -160px;}
-.fl-theme-hci .ui-icon-seek-next{background-position:-32px -160px;}
-.fl-theme-hci .ui-icon-seek-prev{background-position:-48px -160px;}
-.fl-theme-hci .ui-icon-seek-end{background-position:-64px -160px;}
-.fl-theme-hci .ui-icon-seek-first{background-position:-80px -160px;}
-.fl-theme-hci .ui-icon-stop{background-position:-96px -160px;}
-.fl-theme-hci .ui-icon-eject{background-position:-112px -160px;}
-.fl-theme-hci .ui-icon-volume-off{background-position:-128px -160px;}
-.fl-theme-hci .ui-icon-volume-on{background-position:-144px -160px;}
-.fl-theme-hci .ui-icon-power{background-position:0 -176px;}
-.fl-theme-hci .ui-icon-signal-diag{background-position:-16px -176px;}
-.fl-theme-hci .ui-icon-signal{background-position:-32px -176px;}
-.fl-theme-hci .ui-icon-battery-0{background-position:-48px -176px;}
-.fl-theme-hci .ui-icon-battery-1{background-position:-64px -176px;}
-.fl-theme-hci .ui-icon-battery-2{background-position:-80px -176px;}
-.fl-theme-hci .ui-icon-battery-3{background-position:-96px -176px;}
-.fl-theme-hci .ui-icon-circle-plus{background-position:0 -192px;}
-.fl-theme-hci .ui-icon-circle-minus{background-position:-16px -192px;}
-.fl-theme-hci .ui-icon-circle-close{background-position:-32px -192px;}
-.fl-theme-hci .ui-icon-circle-triangle-e{background-position:-48px -192px;}
-.fl-theme-hci .ui-icon-circle-triangle-s{background-position:-64px -192px;}
-.fl-theme-hci .ui-icon-circle-triangle-w{background-position:-80px -192px;}
-.fl-theme-hci .ui-icon-circle-triangle-n{background-position:-96px -192px;}
-.fl-theme-hci .ui-icon-circle-arrow-e{background-position:-112px -192px;}
-.fl-theme-hci .ui-icon-circle-arrow-s{background-position:-128px -192px;}
-.fl-theme-hci .ui-icon-circle-arrow-w{background-position:-144px -192px;}
-.fl-theme-hci .ui-icon-circle-arrow-n{background-position:-160px -192px;}
-.fl-theme-hci .ui-icon-circle-zoomin{background-position:-176px -192px;}
-.fl-theme-hci .ui-icon-circle-zoomout{background-position:-192px -192px;}
-.fl-theme-hci .ui-icon-circle-check{background-position:-208px -192px;}
-.fl-theme-hci .ui-icon-circlesmall-plus{background-position:0 -208px;}
-.fl-theme-hci .ui-icon-circlesmall-minus{background-position:-16px -208px;}
-.fl-theme-hci .ui-icon-circlesmall-close{background-position:-32px -208px;}
-.fl-theme-hci .ui-icon-squaresmall-plus{background-position:-48px -208px;}
-.fl-theme-hci .ui-icon-squaresmall-minus{background-position:-64px -208px;}
-.fl-theme-hci .ui-icon-squaresmall-close{background-position:-80px -208px;}
-.fl-theme-hci .ui-icon-grip-dotted-vertical{background-position:0 -224px;}
-.fl-theme-hci .ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
-.fl-theme-hci .ui-icon-grip-solid-vertical{background-position:-32px -224px;}
-.fl-theme-hci .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
-.fl-theme-hci .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
-.fl-theme-hci .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
-.fl-theme-hci .ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;}
-.fl-theme-hci .ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;}
-.fl-theme-hci .ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;}
-.fl-theme-hci .ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;}
-.fl-theme-hci .ui-corner-top{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;}
-.fl-theme-hci .ui-corner-bottom{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;}
-.fl-theme-hci .ui-corner-right{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;}
-.fl-theme-hci .ui-corner-left{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;}
-.fl-theme-hci .ui-corner-all{-moz-border-radius:5px;-webkit-border-radius:5px;}
-.fl-theme-hci .ui-widget-overlay{background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:.75;filter:Alpha(Opacity=75);}
-.fl-theme-hci .ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;opacity:100;filter:Alpha(Opacity=100);-moz-border-radius:5px;-webkit-border-radius:5px;}
-.fl-theme-hci .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
-.fl-theme-hci .ui-accordion .ui-accordion-li-fix{display:inline;}
-.fl-theme-hci .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
-.fl-theme-hci .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em 2.2em;}
-.fl-theme-hci .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
-.fl-theme-hci .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;}
-.fl-theme-hci .ui-accordion .ui-accordion-content-active{display:block;}
-.fl-theme-hci .ui-datepicker{width:17em;padding:.2em .2em 0;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-prev,.fl-theme-hci .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-hci .ui-datepicker .ui-datepicker-next-hover{top:1px;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-prev{left:2px;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-next{right:2px;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-prev-hover{left:1px;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-next-hover{right:1px;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-prev span,.fl-theme-hci .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-title select{float:left;font-size:1em;margin:1px 0;}
-.fl-theme-hci .ui-datepicker select.ui-datepicker-month-year{width:100%;}
-.fl-theme-hci .ui-datepicker select.ui-datepicker-month,.fl-theme-hci .ui-datepicker select.ui-datepicker-year{width:49%;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-title select.ui-datepicker-year{float:right;}
-.fl-theme-hci .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
-.fl-theme-hci .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
-.fl-theme-hci .ui-datepicker td{border:0;padding:1px;}
-.fl-theme-hci .ui-datepicker td span,.fl-theme-hci .ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
-.fl-theme-hci .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
-.fl-theme-hci .ui-datepicker.ui-datepicker-multi{width:auto;}
-.fl-theme-hci .ui-datepicker-multi .ui-datepicker-group{float:left;}
-.fl-theme-hci .ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}
-.fl-theme-hci .ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
-.fl-theme-hci .ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}
-.fl-theme-hci .ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
-.fl-theme-hci .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}
-.fl-theme-hci .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
-.fl-theme-hci .ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
-.fl-theme-hci .ui-datepicker-row-break{clear:both;width:100%;}
-.fl-theme-hci .ui-datepicker-rtl{direction:rtl;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-group{float:right;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
-.fl-theme-hci .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
-.fl-theme-hci .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
-.fl-theme-hci .ui-dialog{position:relative;padding:.2em;width:300px;}
-.fl-theme-hci .ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative;}
-.fl-theme-hci .ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em;}
-.fl-theme-hci .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
-.fl-theme-hci .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
-.fl-theme-hci .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-hci .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
-.fl-theme-hci .ui-dialog .ui-dialog-content{border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
-.fl-theme-hci .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
-.fl-theme-hci .ui-dialog .ui-dialog-buttonpane button{float:right;margin:.5em .4em .5em 0;cursor:pointer;padding:.2em .6em .3em .6em;line-height:1.4em;width:auto;overflow:visible;}
-.fl-theme-hci .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
-.fl-theme-hci .ui-draggable .ui-dialog-titlebar{cursor:move;}
-.fl-theme-hci .ui-progressbar{height:2em;text-align:left;}
-.fl-theme-hci .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
-.fl-theme-hci .ui-resizable{position:relative;}
-.fl-theme-hci .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}
-.fl-theme-hci .ui-resizable-disabled .ui-resizable-handle,.fl-theme-hci .ui-resizable-autohide .ui-resizable-handle{display:none;}
-.fl-theme-hci .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
-.fl-theme-hci .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
-.fl-theme-hci .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
-.fl-theme-hci .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
-.fl-theme-hci .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
-.fl-theme-hci .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
-.fl-theme-hci .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
-.fl-theme-hci .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
-.fl-theme-hci .ui-slider{position:relative;text-align:left;}
-.fl-theme-hci .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
-.fl-theme-hci .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;}
-.fl-theme-hci .ui-slider-horizontal{height:.8em;}
-.fl-theme-hci .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
-.fl-theme-hci .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
-.fl-theme-hci .ui-slider-horizontal .ui-slider-range-min{left:0;}
-.fl-theme-hci .ui-slider-horizontal .ui-slider-range-max{right:0;}
-.fl-theme-hci .ui-slider-vertical{width:.8em;height:100px;}
-.fl-theme-hci .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
-.fl-theme-hci .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
-.fl-theme-hci .ui-slider-vertical .ui-slider-range-min{bottom:0;}
-.fl-theme-hci .ui-slider-vertical .ui-slider-range-max{top:0;}
-.fl-theme-hci .ui-tabs{padding:.2em;zoom:1;}
-.fl-theme-hci .ui-tabs .ui-tabs-nav{list-style:none;position:relative;padding:.2em .2em 0;}
-.fl-theme-hci .ui-tabs .ui-tabs-nav li{position:relative;float:left;border-bottom-width:0!important;margin:0 .2em -1px 0;padding:0;}
-.fl-theme-hci .ui-tabs .ui-tabs-nav li a{float:left;text-decoration:none;padding:.5em 1em;}
-.fl-theme-hci .ui-tabs .ui-tabs-nav li.ui-tabs-selected{padding-bottom:1px;border-bottom-width:0;}
-.fl-theme-hci .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-hci .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-hci .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
-.fl-theme-hci .ui-tabs .ui-tabs-nav li a,.fl-theme-hci .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
-.fl-theme-hci .ui-tabs .ui-tabs-panel{padding:1em 1.4em;display:block;border-width:0;background:none;}
-.fl-theme-hci .ui-tabs .ui-tabs-hide{display:none!important;}
\ No newline at end of file
+@import url('../fl-theme-wb/wb.css');
\ No newline at end of file
index 842156d..7c211aa 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/images/ui-icons_000000_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/images/ui-icons_000000_256x240.png differ
index 746e6fa..e835325 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/images/ui-icons_fffff_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/images/ui-icons_fffff_256x240.png differ
index 746e6fa..42f8f99 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/images/ui-icons_ffffff_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-hci/images/ui-icons_ffffff_256x240.png differ
index 9ac3e31..cdb9373 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-bg_glass_75_9dcaf6_1x400.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-bg_glass_75_9dcaf6_1x400.png differ
index 370050f..3f2c85d 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-bg_highlight-soft_55_9dcaf6_1x100.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-bg_highlight-soft_55_9dcaf6_1x100.png differ
index 842156d..7c211aa 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_000000_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_000000_256x240.png differ
index 67560da..b273ff1 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_222222_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_222222_256x240.png differ
index b425c44..09d1cdc 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_2e83ff_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_2e83ff_256x240.png differ
index 0cd64a2..59bd45b 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_454545_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_454545_256x240.png differ
index 2e5180e..6d02426 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_888888_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_888888_256x240.png differ
index 2db88b7..2ab019b 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_cd0a0a_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-mist/images/ui-icons_cd0a0a_256x240.png differ
index c7406e1..d0142d1 100644 (file)
@@ -1,5 +1,5 @@
 .fl-theme-mist .ui-helper-hidden{display:none;}
-.fl-theme-mist .ui-helper-hidden-accessible{position:absolute;left:-99999999px;}
+.fl-theme-mist .ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
 .fl-theme-mist .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
 .fl-theme-mist .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
 .fl-theme-mist .ui-helper-clearfix{display:inline-block;}
@@ -9,26 +9,28 @@
 .fl-theme-mist .ui-state-disabled{cursor:default!important;}
 .fl-theme-mist .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
 .fl-theme-mist .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
-.fl-theme-mist .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.fl-theme-mist .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}
+.fl-theme-mist .ui-widget .ui-widget{font-size:1em;}
 .fl-theme-mist .ui-widget input,.fl-theme-mist .ui-widget select,.fl-theme-mist .ui-widget textarea,.fl-theme-mist .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
 .fl-theme-mist .ui-widget-content{border:1px solid #ccc;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}
 .fl-theme-mist .ui-widget-content a{color:#222;}
-.fl-theme-mist .ui-widget-header{border:1px solid #5A95CF;background:#9dcaf6 url(images/ui-bg_glass_75_9dcaf6_1x400.png) 50% 50% repeat-x;color:#222;font-weight:bold;}
+.fl-theme-mist .ui-widget-header{border:1px solid #5a95cf;background:#9dcaf6 url(images/ui-bg_glass_75_9dcaf6_1x400.png) 50% 50% repeat-x;color:#222;font-weight:bold;}
 .fl-theme-mist .ui-widget-header a{color:#222;}
-.fl-theme-mist .ui-state-default,.fl-theme-mist .ui-widget-content .ui-state-default{border:1px solid #d3d3d3;background:#d9e8f7 url(images/ui-bg_glass_75_d9e8f7_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;outline:none;}
-.fl-theme-mist .ui-state-default a,.fl-theme-mist .ui-state-default a:link,.fl-theme-mist .ui-state-default a:visited{color:#555;text-decoration:none;outline:none;}
-.fl-theme-mist .ui-state-hover,.fl-theme-mist .ui-widget-content .ui-state-hover,.fl-theme-mist .ui-state-focus,.fl-theme-mist .ui-widget-content .ui-state-focus{border:1px solid #999;background:#9dcaf6 url(images/ui-bg_glass_75_9dcaf6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;outline:none;}
-.fl-theme-mist .ui-state-hover a,.fl-theme-mist .ui-state-hover a:hover{color:#212121;text-decoration:none;outline:none;}
-.fl-theme-mist .ui-state-active,.fl-theme-mist .ui-widget-content .ui-state-active{border:1px solid #5A95CF;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#000;outline:none;}
-.fl-theme-mist .ui-state-active a,.fl-theme-mist .ui-state-active a:link,.fl-theme-mist .ui-state-active a:visited{color:#000;outline:none;text-decoration:none;}
-.fl-theme-mist .ui-state-highlight,.fl-theme-mist .ui-widget-content .ui-state-highlight{border:1px solid #2e83ff;background:#9dcaf6 url(images/ui-bg_highlight-soft_55_9dcaf6_1x100.png) 50% top repeat-x;color:#363636;}
-.fl-theme-mist .ui-state-highlight a,.fl-theme-mist .ui-widget-content .ui-state-highlight a{color:#363636;}
-.fl-theme-mist .ui-state-error,.fl-theme-mist .ui-widget-content .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x;color:#cd0a0a;}
-.fl-theme-mist .ui-state-error a,.fl-theme-mist .ui-widget-content .ui-state-error a{color:#cd0a0a;}
-.fl-theme-mist .ui-state-error-text,.fl-theme-mist .ui-widget-content .ui-state-error-text{color:#cd0a0a;}
-.fl-theme-mist .ui-state-disabled,.fl-theme-mist .ui-widget-content .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
-.fl-theme-mist .ui-priority-primary,.fl-theme-mist .ui-widget-content .ui-priority-primary{font-weight:bold;}
-.fl-theme-mist .ui-priority-secondary,.fl-theme-mist .ui-widget-content .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-mist .ui-state-default,.fl-theme-mist .ui-widget-content .ui-state-default,.fl-theme-mist .ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#d9e8f7 url(images/ui-bg_glass_75_d9e8f7_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}
+.fl-theme-mist .ui-state-default a,.fl-theme-mist .ui-state-default a:link,.fl-theme-mist .ui-state-default a:visited{color:#555;text-decoration:none;}
+.fl-theme-mist .ui-state-hover,.fl-theme-mist .ui-widget-content .ui-state-hover,.fl-theme-mist .ui-widget-header .ui-state-hover,.fl-theme-mist .ui-state-focus,.fl-theme-mist .ui-widget-content .ui-state-focus,.fl-theme-mist .ui-widget-header .ui-state-focus{border:1px solid #999;background:#9dcaf6 url(images/ui-bg_glass_75_9dcaf6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}
+.fl-theme-mist .ui-state-hover a,.fl-theme-mist .ui-state-hover a:hover{color:#212121;text-decoration:none;}
+.fl-theme-mist .ui-state-active,.fl-theme-mist .ui-widget-content .ui-state-active,.fl-theme-mist .ui-widget-header .ui-state-active{border:1px solid #5a95cf;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-mist .ui-state-active a,.fl-theme-mist .ui-state-active a:link,.fl-theme-mist .ui-state-active a:visited{color:#000;text-decoration:none;}
+.fl-theme-mist .ui-widget :active{outline:none;}
+.fl-theme-mist .ui-state-highlight,.fl-theme-mist .ui-widget-content .ui-state-highlight,.fl-theme-mist .ui-widget-header .ui-state-highlight{border:1px solid #2e83ff;background:#9dcaf6 url(images/ui-bg_highlight-soft_55_9dcaf6_1x100.png) 50% top repeat-x;color:#363636;}
+.fl-theme-mist .ui-state-highlight a,.fl-theme-mist .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}
+.fl-theme-mist .ui-state-error,.fl-theme-mist .ui-widget-content .ui-state-error,.fl-theme-mist .ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x;color:#cd0a0a;}
+.fl-theme-mist .ui-state-error a,.fl-theme-mist .ui-widget-content .ui-state-error a,.fl-theme-mist .ui-widget-header .ui-state-error a{color:#cd0a0a;}
+.fl-theme-mist .ui-state-error-text,.fl-theme-mist .ui-widget-content .ui-state-error-text,.fl-theme-mist .ui-widget-header .ui-state-error-text{color:#cd0a0a;}
+.fl-theme-mist .ui-priority-primary,.fl-theme-mist .ui-widget-content .ui-priority-primary,.fl-theme-mist .ui-widget-header .ui-priority-primary{font-weight:bold;}
+.fl-theme-mist .ui-priority-secondary,.fl-theme-mist .ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-mist .ui-state-disabled,.fl-theme-mist .ui-widget-content .ui-state-disabled,.fl-theme-mist .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
 .fl-theme-mist .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}
 .fl-theme-mist .ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
 .fl-theme-mist .ui-widget-header .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
 .fl-theme-mist .ui-icon-seek-next{background-position:-32px -160px;}
 .fl-theme-mist .ui-icon-seek-prev{background-position:-48px -160px;}
 .fl-theme-mist .ui-icon-seek-end{background-position:-64px -160px;}
+.fl-theme-mist .ui-icon-seek-start{background-position:-80px -160px;}
 .fl-theme-mist .ui-icon-seek-first{background-position:-80px -160px;}
 .fl-theme-mist .ui-icon-stop{background-position:-96px -160px;}
 .fl-theme-mist .ui-icon-eject{background-position:-112px -160px;}
 .fl-theme-mist .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
 .fl-theme-mist .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
 .fl-theme-mist .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
-.fl-theme-mist .ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;}
-.fl-theme-mist .ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;}
-.fl-theme-mist .ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;}
-.fl-theme-mist .ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;}
-.fl-theme-mist .ui-corner-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;}
-.fl-theme-mist .ui-corner-bottom{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;}
-.fl-theme-mist .ui-corner-right{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;}
-.fl-theme-mist .ui-corner-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;}
-.fl-theme-mist .ui-corner-all{-moz-border-radius:4px;-webkit-border-radius:4px;}
+.fl-theme-mist .ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;}
+.fl-theme-mist .ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.fl-theme-mist .ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.fl-theme-mist .ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.fl-theme-mist .ui-corner-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.fl-theme-mist .ui-corner-bottom{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.fl-theme-mist .ui-corner-right{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.fl-theme-mist .ui-corner-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.fl-theme-mist .ui-corner-all{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;}
 .fl-theme-mist .ui-widget-overlay{background:#2e83ff url(images/ui-bg_flat_0_2e83ff_40x100.png) 50% 50% repeat-x;opacity:.20;filter:Alpha(Opacity=20);}
-.fl-theme-mist .ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:5px;-webkit-border-radius:5px;}
+.fl-theme-mist .ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}
+.fl-theme-mist .ui-resizable{position:relative;}
+.fl-theme-mist .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;background-image:url(data:);}
+.fl-theme-mist .ui-resizable-disabled .ui-resizable-handle,.fl-theme-mist .ui-resizable-autohide .ui-resizable-handle{display:none;}
+.fl-theme-mist .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.fl-theme-mist .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.fl-theme-mist .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.fl-theme-mist .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.fl-theme-mist .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.fl-theme-mist .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.fl-theme-mist .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.fl-theme-mist .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.fl-theme-mist .ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.fl-theme-mist .ui-accordion{width:100%;}
 .fl-theme-mist .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
 .fl-theme-mist .ui-accordion .ui-accordion-li-fix{display:inline;}
 .fl-theme-mist .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
-.fl-theme-mist .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em 2.2em;}
+.fl-theme-mist .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}
+.fl-theme-mist .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}
 .fl-theme-mist .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
-.fl-theme-mist .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;}
+.fl-theme-mist .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}
 .fl-theme-mist .ui-accordion .ui-accordion-content-active{display:block;}
-.fl-theme-mist .ui-datepicker{width:17em;padding:.2em .2em 0;}
+.fl-theme-mist .ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.fl-theme-mist .ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}
+.fl-theme-mist .ui-menu .ui-menu{margin-top:-3px;}
+.fl-theme-mist .ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}
+.fl-theme-mist .ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}
+.fl-theme-mist .ui-menu .ui-menu-item a.ui-state-hover,.fl-theme-mist .ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
+.fl-theme-mist .ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}
+.fl-theme-mist .ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.fl-theme-mist .ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.fl-theme-mist .ui-button .ui-button-text{display:block;line-height:1.4;}
+.fl-theme-mist .ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.fl-theme-mist .ui-button-icon-only .ui-button-text,.fl-theme-mist .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.fl-theme-mist .ui-button-text-icon-primary .ui-button-text,.fl-theme-mist .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.fl-theme-mist .ui-button-text-icon-secondary .ui-button-text,.fl-theme-mist .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.fl-theme-mist .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.fl-theme-mist .ui-button-icon-only .ui-icon,.fl-theme-mist .ui-button-text-icon-primary .ui-icon,.fl-theme-mist .ui-button-text-icon-secondary .ui-icon,.fl-theme-mist .ui-button-text-icons .ui-icon,.fl-theme-mist .ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.fl-theme-mist .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.fl-theme-mist .ui-button-text-icon-primary .ui-button-icon-primary,.fl-theme-mist .ui-button-text-icons .ui-button-icon-primary,.fl-theme-mist .ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.fl-theme-mist .ui-button-text-icon-secondary .ui-button-icon-secondary,.fl-theme-mist .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-mist .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-mist .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-mist .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-mist .ui-buttonset{margin-right:7px;}
+.fl-theme-mist .ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.fl-theme-mist .ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}
+.fl-theme-mist .ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
+.fl-theme-mist .ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}
+.fl-theme-mist .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
+.fl-theme-mist .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.fl-theme-mist .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-mist .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.fl-theme-mist .ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
+.fl-theme-mist .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
+.fl-theme-mist .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.fl-theme-mist .ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
+.fl-theme-mist .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
+.fl-theme-mist .ui-draggable .ui-dialog-titlebar{cursor:move;}
+.fl-theme-mist .ui-slider{position:relative;text-align:left;}
+.fl-theme-mist .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
+.fl-theme-mist .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.fl-theme-mist .ui-slider-horizontal{height:.8em;}
+.fl-theme-mist .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
+.fl-theme-mist .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.fl-theme-mist .ui-slider-horizontal .ui-slider-range-min{left:0;}
+.fl-theme-mist .ui-slider-horizontal .ui-slider-range-max{right:0;}
+.fl-theme-mist .ui-slider-vertical{width:.8em;height:100px;}
+.fl-theme-mist .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
+.fl-theme-mist .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.fl-theme-mist .ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.fl-theme-mist .ui-slider-vertical .ui-slider-range-max{top:0;}
+.fl-theme-mist .ui-tabs{position:relative;padding:.2em;zoom:1;}
+.fl-theme-mist .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.fl-theme-mist .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.fl-theme-mist .ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.fl-theme-mist .ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.fl-theme-mist .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-mist .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-mist .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.fl-theme-mist .ui-tabs .ui-tabs-nav li a,.fl-theme-mist .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.fl-theme-mist .ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.fl-theme-mist .ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-theme-mist .ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
 .fl-theme-mist .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
 .fl-theme-mist .ui-datepicker .ui-datepicker-prev,.fl-theme-mist .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
 .fl-theme-mist .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-mist .ui-datepicker .ui-datepicker-next-hover{top:1px;}
 .fl-theme-mist .ui-datepicker .ui-datepicker-next-hover{right:1px;}
 .fl-theme-mist .ui-datepicker .ui-datepicker-prev span,.fl-theme-mist .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
 .fl-theme-mist .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
-.fl-theme-mist .ui-datepicker .ui-datepicker-title select{float:left;font-size:1em;margin:1px 0;}
+.fl-theme-mist .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
 .fl-theme-mist .ui-datepicker select.ui-datepicker-month-year{width:100%;}
 .fl-theme-mist .ui-datepicker select.ui-datepicker-month,.fl-theme-mist .ui-datepicker select.ui-datepicker-year{width:49%;}
-.fl-theme-mist .ui-datepicker .ui-datepicker-title select.ui-datepicker-year{float:right;}
 .fl-theme-mist .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
 .fl-theme-mist .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
 .fl-theme-mist .ui-datepicker td{border:0;padding:1px;}
 .fl-theme-mist .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
 .fl-theme-mist .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
 .fl-theme-mist .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
-.fl-theme-mist .ui-dialog{position:relative;padding:.2em;width:300px;}
-.fl-theme-mist .ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative;}
-.fl-theme-mist .ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em;}
-.fl-theme-mist .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
-.fl-theme-mist .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
-.fl-theme-mist .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-mist .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
-.fl-theme-mist .ui-dialog .ui-dialog-content{border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
-.fl-theme-mist .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
-.fl-theme-mist .ui-dialog .ui-dialog-buttonpane button{float:right;margin:.5em .4em .5em 0;cursor:pointer;padding:.2em .6em .3em .6em;line-height:1.4em;width:auto;overflow:visible;}
-.fl-theme-mist .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
-.fl-theme-mist .ui-draggable .ui-dialog-titlebar{cursor:move;}
 .fl-theme-mist .ui-progressbar{height:2em;text-align:left;}
-.fl-theme-mist .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
-.fl-theme-mist .ui-resizable{position:relative;}
-.fl-theme-mist .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}
-.fl-theme-mist .ui-resizable-disabled .ui-resizable-handle,.fl-theme-mist .ui-resizable-autohide .ui-resizable-handle{display:none;}
-.fl-theme-mist .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
-.fl-theme-mist .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
-.fl-theme-mist .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
-.fl-theme-mist .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
-.fl-theme-mist .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
-.fl-theme-mist .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
-.fl-theme-mist .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
-.fl-theme-mist .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
-.fl-theme-mist .ui-slider{position:relative;text-align:left;}
-.fl-theme-mist .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
-.fl-theme-mist .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;}
-.fl-theme-mist .ui-slider-horizontal{height:.8em;}
-.fl-theme-mist .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
-.fl-theme-mist .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
-.fl-theme-mist .ui-slider-horizontal .ui-slider-range-min{left:0;}
-.fl-theme-mist .ui-slider-horizontal .ui-slider-range-max{right:0;}
-.fl-theme-mist .ui-slider-vertical{width:.8em;height:100px;}
-.fl-theme-mist .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
-.fl-theme-mist .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
-.fl-theme-mist .ui-slider-vertical .ui-slider-range-min{bottom:0;}
-.fl-theme-mist .ui-slider-vertical .ui-slider-range-max{top:0;}
-.fl-theme-mist .ui-tabs{padding:.2em;zoom:1;}
-.fl-theme-mist .ui-tabs .ui-tabs-nav{list-style:none;position:relative;padding:.2em .2em 0;}
-.fl-theme-mist .ui-tabs .ui-tabs-nav li{position:relative;float:left;border-bottom-width:0!important;margin:0 .2em -1px 0;padding:0;}
-.fl-theme-mist .ui-tabs .ui-tabs-nav li a{float:left;text-decoration:none;padding:.5em 1em;}
-.fl-theme-mist .ui-tabs .ui-tabs-nav li.ui-tabs-selected{padding-bottom:1px;border-bottom-width:0;}
-.fl-theme-mist .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-mist .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-mist .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
-.fl-theme-mist .ui-tabs .ui-tabs-nav li a,.fl-theme-mist .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
-.fl-theme-mist .ui-tabs .ui-tabs-panel{padding:1em 1.4em;display:block;border-width:0;background:none;}
-.fl-theme-mist .ui-tabs .ui-tabs-hide{display:none!important;}
\ No newline at end of file
+.fl-theme-mist .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
index 1d773f9..c4badcc 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-bg_flat_0_ebebeb_40x100.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-bg_flat_0_ebebeb_40x100.png differ
index 9926860..8f025eb 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-bg_inset-hard_100_ebebeb_1x100.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-bg_inset-hard_100_ebebeb_1x100.png differ
index 842156d..7c211aa 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_000000_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_000000_256x240.png differ
index ba04b08..f87de1c 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_666666_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_666666_256x240.png differ
index c3a2a91..bf38c9b 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_ebebeb_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_ebebeb_256x240.png differ
index 746e6fa..42f8f99 100644 (file)
Binary files a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_ffffff_256x240.png and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-slate/images/ui-icons_ffffff_256x240.png differ
index 30b7684..0d36594 100644 (file)
@@ -1,5 +1,5 @@
 .fl-theme-slate .ui-helper-hidden{display:none;}
-.fl-theme-slate .ui-helper-hidden-accessible{position:absolute;left:-99999999px;}
+.fl-theme-slate .ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
 .fl-theme-slate .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
 .fl-theme-slate .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
 .fl-theme-slate .ui-helper-clearfix{display:inline-block;}
@@ -9,26 +9,28 @@
 .fl-theme-slate .ui-state-disabled{cursor:default!important;}
 .fl-theme-slate .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
 .fl-theme-slate .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
-.fl-theme-slate .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.fl-theme-slate .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.2em;}
+.fl-theme-slate .ui-widget .ui-widget{font-size:1em;}
 .fl-theme-slate .ui-widget input,.fl-theme-slate .ui-widget select,.fl-theme-slate .ui-widget textarea,.fl-theme-slate .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
 .fl-theme-slate .ui-widget-content{border:1px solid #999;background:#ebebeb url(images/ui-bg_flat_0_ebebeb_40x100.png) 50% 50% repeat-x;color:#000;}
 .fl-theme-slate .ui-widget-content a{color:#000;}
 .fl-theme-slate .ui-widget-header{border:1px solid #666;background:#666 url(images/ui-bg_glass_75_666666_1x400.png) 50% 50% repeat-x;color:#fff;font-weight:bold;}
 .fl-theme-slate .ui-widget-header a{color:#fff;}
-.fl-theme-slate .ui-state-default,.fl-theme-slate .ui-widget-content .ui-state-default{border:1px solid #ccc;background:#ebebeb url(images/ui-bg_inset-hard_100_ebebeb_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#666;outline:none;}
-.fl-theme-slate .ui-state-default a,.fl-theme-slate .ui-state-default a:link,.fl-theme-slate .ui-state-default a:visited{color:#666;text-decoration:none;outline:none;}
-.fl-theme-slate .ui-state-hover,.fl-theme-slate .ui-widget-content .ui-state-hover,.fl-theme-slate .ui-state-focus,.fl-theme-slate .ui-widget-content .ui-state-focus{border:1px solid #999;background:#999 url(images/ui-bg_highlight-soft_75_999999_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#ebebeb;outline:none;}
-.fl-theme-slate .ui-state-hover a,.fl-theme-slate .ui-state-hover a:hover{color:#ebebeb;text-decoration:none;outline:none;}
-.fl-theme-slate .ui-state-active,.fl-theme-slate .ui-widget-content .ui-state-active{border:1px solid #ccc;background:#ebebeb url(images/ui-bg_highlight-hard_100_ebebeb_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;outline:none;}
-.fl-theme-slate .ui-state-active a,.fl-theme-slate .ui-state-active a:link,.fl-theme-slate .ui-state-active a:visited{color:#000;outline:none;text-decoration:none;}
-.fl-theme-slate .ui-state-highlight,.fl-theme-slate .ui-widget-content .ui-state-highlight{border:1px solid #ccc;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#666;}
-.fl-theme-slate .ui-state-highlight a,.fl-theme-slate .ui-widget-content .ui-state-highlight a{color:#666;}
-.fl-theme-slate .ui-state-error,.fl-theme-slate .ui-widget-content .ui-state-error{border:1px solid #000;background:#666 url(images/ui-bg_flat_0_666666_40x100.png) 50% 50% repeat-x;color:#fff;}
-.fl-theme-slate .ui-state-error a,.fl-theme-slate .ui-widget-content .ui-state-error a{color:#fff;}
-.fl-theme-slate .ui-state-error-text,.fl-theme-slate .ui-widget-content .ui-state-error-text{color:#fff;}
-.fl-theme-slate .ui-state-disabled,.fl-theme-slate .ui-widget-content .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
-.fl-theme-slate .ui-priority-primary,.fl-theme-slate .ui-widget-content .ui-priority-primary{font-weight:bold;}
-.fl-theme-slate .ui-priority-secondary,.fl-theme-slate .ui-widget-content .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-slate .ui-state-default,.fl-theme-slate .ui-widget-content .ui-state-default,.fl-theme-slate .ui-widget-header .ui-state-default{border:1px solid #ccc;background:#ebebeb url(images/ui-bg_inset-hard_100_ebebeb_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#666;}
+.fl-theme-slate .ui-state-default a,.fl-theme-slate .ui-state-default a:link,.fl-theme-slate .ui-state-default a:visited{color:#666;text-decoration:none;}
+.fl-theme-slate .ui-state-hover,.fl-theme-slate .ui-widget-content .ui-state-hover,.fl-theme-slate .ui-widget-header .ui-state-hover,.fl-theme-slate .ui-state-focus,.fl-theme-slate .ui-widget-content .ui-state-focus,.fl-theme-slate .ui-widget-header .ui-state-focus{border:1px solid #999;background:#999 url(images/ui-bg_highlight-soft_75_999999_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#ebebeb;}
+.fl-theme-slate .ui-state-hover a,.fl-theme-slate .ui-state-hover a:hover{color:#ebebeb;text-decoration:none;}
+.fl-theme-slate .ui-state-active,.fl-theme-slate .ui-widget-content .ui-state-active,.fl-theme-slate .ui-widget-header .ui-state-active{border:1px solid #ccc;background:#ebebeb url(images/ui-bg_highlight-hard_100_ebebeb_1x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-slate .ui-state-active a,.fl-theme-slate .ui-state-active a:link,.fl-theme-slate .ui-state-active a:visited{color:#000;text-decoration:none;}
+.fl-theme-slate .ui-widget :active{outline:none;}
+.fl-theme-slate .ui-state-highlight,.fl-theme-slate .ui-widget-content .ui-state-highlight,.fl-theme-slate .ui-widget-header .ui-state-highlight{border:1px solid #ccc;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#666;}
+.fl-theme-slate .ui-state-highlight a,.fl-theme-slate .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#666;}
+.fl-theme-slate .ui-state-error,.fl-theme-slate .ui-widget-content .ui-state-error,.fl-theme-slate .ui-widget-header .ui-state-error{border:1px solid #000;background:#666 url(images/ui-bg_flat_0_666666_40x100.png) 50% 50% repeat-x;color:#fff;}
+.fl-theme-slate .ui-state-error a,.fl-theme-slate .ui-widget-content .ui-state-error a,.fl-theme-slate .ui-widget-header .ui-state-error a{color:#fff;}
+.fl-theme-slate .ui-state-error-text,.fl-theme-slate .ui-widget-content .ui-state-error-text,.fl-theme-slate .ui-widget-header .ui-state-error-text{color:#fff;}
+.fl-theme-slate .ui-priority-primary,.fl-theme-slate .ui-widget-content .ui-priority-primary,.fl-theme-slate .ui-widget-header .ui-priority-primary{font-weight:bold;}
+.fl-theme-slate .ui-priority-secondary,.fl-theme-slate .ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-slate .ui-state-disabled,.fl-theme-slate .ui-widget-content .ui-state-disabled,.fl-theme-slate .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
 .fl-theme-slate .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_000000_256x240.png);}
 .fl-theme-slate .ui-widget-content .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
 .fl-theme-slate .ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
 .fl-theme-slate .ui-icon-seek-next{background-position:-32px -160px;}
 .fl-theme-slate .ui-icon-seek-prev{background-position:-48px -160px;}
 .fl-theme-slate .ui-icon-seek-end{background-position:-64px -160px;}
+.fl-theme-slate .ui-icon-seek-start{background-position:-80px -160px;}
 .fl-theme-slate .ui-icon-seek-first{background-position:-80px -160px;}
 .fl-theme-slate .ui-icon-stop{background-position:-96px -160px;}
 .fl-theme-slate .ui-icon-eject{background-position:-112px -160px;}
 .fl-theme-slate .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
 .fl-theme-slate .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
 .fl-theme-slate .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
-.fl-theme-slate .ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;}
-.fl-theme-slate .ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;}
-.fl-theme-slate .ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;}
-.fl-theme-slate .ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;}
-.fl-theme-slate .ui-corner-top{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;}
-.fl-theme-slate .ui-corner-bottom{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;}
-.fl-theme-slate .ui-corner-right{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;}
-.fl-theme-slate .ui-corner-left{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;}
-.fl-theme-slate .ui-corner-all{-moz-border-radius:5px;-webkit-border-radius:5px;}
+.fl-theme-slate .ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;}
+.fl-theme-slate .ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;}
+.fl-theme-slate .ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;}
+.fl-theme-slate .ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;}
+.fl-theme-slate .ui-corner-top{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;}
+.fl-theme-slate .ui-corner-bottom{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;}
+.fl-theme-slate .ui-corner-right{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;}
+.fl-theme-slate .ui-corner-left{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;}
+.fl-theme-slate .ui-corner-all{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}
 .fl-theme-slate .ui-widget-overlay{background:#ccc url(images/ui-bg_flat_0_cccccc_40x100.png) 50% 50% repeat-x;opacity:.50;filter:Alpha(Opacity=50);}
-.fl-theme-slate .ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#999 url(images/ui-bg_flat_0_999999_40x100.png) 50% 50% repeat-x;opacity:.50;filter:Alpha(Opacity=50);-moz-border-radius:5px;-webkit-border-radius:5px;}
+.fl-theme-slate .ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#999 url(images/ui-bg_flat_0_999999_40x100.png) 50% 50% repeat-x;opacity:.50;filter:Alpha(Opacity=50);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}
+.fl-theme-slate .ui-resizable{position:relative;}
+.fl-theme-slate .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;background-image:url(data:);}
+.fl-theme-slate .ui-resizable-disabled .ui-resizable-handle,.fl-theme-slate .ui-resizable-autohide .ui-resizable-handle{display:none;}
+.fl-theme-slate .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.fl-theme-slate .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.fl-theme-slate .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.fl-theme-slate .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.fl-theme-slate .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.fl-theme-slate .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.fl-theme-slate .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.fl-theme-slate .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.fl-theme-slate .ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.fl-theme-slate .ui-accordion{width:100%;}
 .fl-theme-slate .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
 .fl-theme-slate .ui-accordion .ui-accordion-li-fix{display:inline;}
 .fl-theme-slate .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
-.fl-theme-slate .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em 2.2em;}
+.fl-theme-slate .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}
+.fl-theme-slate .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}
 .fl-theme-slate .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
-.fl-theme-slate .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;}
+.fl-theme-slate .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}
 .fl-theme-slate .ui-accordion .ui-accordion-content-active{display:block;}
-.fl-theme-slate .ui-datepicker{width:17em;padding:.2em .2em 0;}
+.fl-theme-slate .ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.fl-theme-slate .ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}
+.fl-theme-slate .ui-menu .ui-menu{margin-top:-3px;}
+.fl-theme-slate .ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}
+.fl-theme-slate .ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}
+.fl-theme-slate .ui-menu .ui-menu-item a.ui-state-hover,.fl-theme-slate .ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
+.fl-theme-slate .ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}
+.fl-theme-slate .ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.fl-theme-slate .ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.fl-theme-slate .ui-button .ui-button-text{display:block;line-height:1.4;}
+.fl-theme-slate .ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.fl-theme-slate .ui-button-icon-only .ui-button-text,.fl-theme-slate .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.fl-theme-slate .ui-button-text-icon-primary .ui-button-text,.fl-theme-slate .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.fl-theme-slate .ui-button-text-icon-secondary .ui-button-text,.fl-theme-slate .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.fl-theme-slate .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.fl-theme-slate .ui-button-icon-only .ui-icon,.fl-theme-slate .ui-button-text-icon-primary .ui-icon,.fl-theme-slate .ui-button-text-icon-secondary .ui-icon,.fl-theme-slate .ui-button-text-icons .ui-icon,.fl-theme-slate .ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.fl-theme-slate .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.fl-theme-slate .ui-button-text-icon-primary .ui-button-icon-primary,.fl-theme-slate .ui-button-text-icons .ui-button-icon-primary,.fl-theme-slate .ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.fl-theme-slate .ui-button-text-icon-secondary .ui-button-icon-secondary,.fl-theme-slate .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-slate .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-slate .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-slate .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-slate .ui-buttonset{margin-right:7px;}
+.fl-theme-slate .ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.fl-theme-slate .ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}
+.fl-theme-slate .ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
+.fl-theme-slate .ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}
+.fl-theme-slate .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
+.fl-theme-slate .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.fl-theme-slate .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-slate .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.fl-theme-slate .ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
+.fl-theme-slate .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
+.fl-theme-slate .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.fl-theme-slate .ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
+.fl-theme-slate .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
+.fl-theme-slate .ui-draggable .ui-dialog-titlebar{cursor:move;}
+.fl-theme-slate .ui-slider{position:relative;text-align:left;}
+.fl-theme-slate .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
+.fl-theme-slate .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.fl-theme-slate .ui-slider-horizontal{height:.8em;}
+.fl-theme-slate .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
+.fl-theme-slate .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.fl-theme-slate .ui-slider-horizontal .ui-slider-range-min{left:0;}
+.fl-theme-slate .ui-slider-horizontal .ui-slider-range-max{right:0;}
+.fl-theme-slate .ui-slider-vertical{width:.8em;height:100px;}
+.fl-theme-slate .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
+.fl-theme-slate .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.fl-theme-slate .ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.fl-theme-slate .ui-slider-vertical .ui-slider-range-max{top:0;}
+.fl-theme-slate .ui-tabs{position:relative;padding:.2em;zoom:1;}
+.fl-theme-slate .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.fl-theme-slate .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.fl-theme-slate .ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.fl-theme-slate .ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.fl-theme-slate .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-slate .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-slate .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.fl-theme-slate .ui-tabs .ui-tabs-nav li a,.fl-theme-slate .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.fl-theme-slate .ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.fl-theme-slate .ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-theme-slate .ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
 .fl-theme-slate .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
 .fl-theme-slate .ui-datepicker .ui-datepicker-prev,.fl-theme-slate .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
 .fl-theme-slate .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-slate .ui-datepicker .ui-datepicker-next-hover{top:1px;}
 .fl-theme-slate .ui-datepicker .ui-datepicker-next-hover{right:1px;}
 .fl-theme-slate .ui-datepicker .ui-datepicker-prev span,.fl-theme-slate .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
 .fl-theme-slate .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
-.fl-theme-slate .ui-datepicker .ui-datepicker-title select{float:left;font-size:1em;margin:1px 0;}
+.fl-theme-slate .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
 .fl-theme-slate .ui-datepicker select.ui-datepicker-month-year{width:100%;}
 .fl-theme-slate .ui-datepicker select.ui-datepicker-month,.fl-theme-slate .ui-datepicker select.ui-datepicker-year{width:49%;}
-.fl-theme-slate .ui-datepicker .ui-datepicker-title select.ui-datepicker-year{float:right;}
 .fl-theme-slate .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
 .fl-theme-slate .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
 .fl-theme-slate .ui-datepicker td{border:0;padding:1px;}
 .fl-theme-slate .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
 .fl-theme-slate .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
 .fl-theme-slate .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
-.fl-theme-slate .ui-dialog{position:relative;padding:.2em;width:300px;}
-.fl-theme-slate .ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative;}
-.fl-theme-slate .ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em;}
-.fl-theme-slate .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
-.fl-theme-slate .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
-.fl-theme-slate .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-slate .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
-.fl-theme-slate .ui-dialog .ui-dialog-content{border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
-.fl-theme-slate .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
-.fl-theme-slate .ui-dialog .ui-dialog-buttonpane button{float:right;margin:.5em .4em .5em 0;cursor:pointer;padding:.2em .6em .3em .6em;line-height:1.4em;width:auto;overflow:visible;}
-.fl-theme-slate .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
-.fl-theme-slate .ui-draggable .ui-dialog-titlebar{cursor:move;}
 .fl-theme-slate .ui-progressbar{height:2em;text-align:left;}
-.fl-theme-slate .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
-.fl-theme-slate .ui-resizable{position:relative;}
-.fl-theme-slate .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}
-.fl-theme-slate .ui-resizable-disabled .ui-resizable-handle,.fl-theme-slate .ui-resizable-autohide .ui-resizable-handle{display:none;}
-.fl-theme-slate .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
-.fl-theme-slate .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
-.fl-theme-slate .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
-.fl-theme-slate .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
-.fl-theme-slate .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
-.fl-theme-slate .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
-.fl-theme-slate .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
-.fl-theme-slate .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
-.fl-theme-slate .ui-slider{position:relative;text-align:left;}
-.fl-theme-slate .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
-.fl-theme-slate .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;}
-.fl-theme-slate .ui-slider-horizontal{height:.8em;}
-.fl-theme-slate .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
-.fl-theme-slate .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
-.fl-theme-slate .ui-slider-horizontal .ui-slider-range-min{left:0;}
-.fl-theme-slate .ui-slider-horizontal .ui-slider-range-max{right:0;}
-.fl-theme-slate .ui-slider-vertical{width:.8em;height:100px;}
-.fl-theme-slate .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
-.fl-theme-slate .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
-.fl-theme-slate .ui-slider-vertical .ui-slider-range-min{bottom:0;}
-.fl-theme-slate .ui-slider-vertical .ui-slider-range-max{top:0;}
-.fl-theme-slate .ui-tabs{padding:.2em;zoom:1;}
-.fl-theme-slate .ui-tabs .ui-tabs-nav{list-style:none;position:relative;padding:.2em .2em 0;}
-.fl-theme-slate .ui-tabs .ui-tabs-nav li{position:relative;float:left;border-bottom-width:0!important;margin:0 .2em -1px 0;padding:0;}
-.fl-theme-slate .ui-tabs .ui-tabs-nav li a{float:left;text-decoration:none;padding:.5em 1em;}
-.fl-theme-slate .ui-tabs .ui-tabs-nav li.ui-tabs-selected{padding-bottom:1px;border-bottom-width:0;}
-.fl-theme-slate .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-slate .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-slate .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
-.fl-theme-slate .ui-tabs .ui-tabs-nav li a,.fl-theme-slate .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
-.fl-theme-slate .ui-tabs .ui-tabs-panel{padding:1em 1.4em;display:block;border-width:0;background:none;}
-.fl-theme-slate .ui-tabs .ui-tabs-hide{display:none!important;}
\ No newline at end of file
+.fl-theme-slate .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-bg_flat_0_000000_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-bg_flat_0_000000_40x100.png
new file mode 100644 (file)
index 0000000..abdc010
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-bg_flat_0_000000_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-bg_flat_0_ffffff_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-bg_flat_0_ffffff_40x100.png
new file mode 100644 (file)
index 0000000..ac8b229
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-bg_flat_0_ffffff_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_000000_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_000000_256x240.png
new file mode 100644 (file)
index 0000000..7c211aa
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_000000_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_ffffff_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_ffffff_256x240.png
new file mode 100644 (file)
index 0000000..42f8f99
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_ffffff_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/wb.css b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-wb/wb.css
new file mode 100644 (file)
index 0000000..030a4c3
--- /dev/null
@@ -0,0 +1,347 @@
+.fl-theme-wb .ui-helper-hidden{display:none;}
+.fl-theme-wb .ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
+.fl-theme-wb .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
+.fl-theme-wb .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+.fl-theme-wb .ui-helper-clearfix{display:inline-block;}
+/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
+.fl-theme-wb .ui-helper-clearfix{display:block;}
+/* end clearfix */ .fl-theme-wb .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
+.fl-theme-wb .ui-state-disabled{cursor:default!important;}
+.fl-theme-wb .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
+.fl-theme-wb .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
+.fl-theme-wb .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.2em;}
+.fl-theme-wb .ui-widget .ui-widget{font-size:1em;}
+.fl-theme-wb .ui-widget input,.fl-theme-wb .ui-widget select,.fl-theme-wb .ui-widget textarea,.fl-theme-wb .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.fl-theme-wb .ui-widget-content{border:1px solid #fff;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#fff;}
+.fl-theme-wb .ui-widget-content a{color:#fff;}
+.fl-theme-wb .ui-widget-header{border:1px solid #fff;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#000;font-weight:bold;}
+.fl-theme-wb .ui-widget-header a{color:#000;}
+.fl-theme-wb .ui-state-default,.fl-theme-wb .ui-widget-content .ui-state-default,.fl-theme-wb .ui-widget-header .ui-state-default{border:1px solid #fff;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#fff;}
+.fl-theme-wb .ui-state-default a,.fl-theme-wb .ui-state-default a:link,.fl-theme-wb .ui-state-default a:visited{color:#fff;text-decoration:none;}
+.fl-theme-wb .ui-state-hover,.fl-theme-wb .ui-widget-content .ui-state-hover,.fl-theme-wb .ui-widget-header .ui-state-hover,.fl-theme-wb .ui-state-focus,.fl-theme-wb .ui-widget-content .ui-state-focus,.fl-theme-wb .ui-widget-header .ui-state-focus{border:1px solid #000;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-wb .ui-state-hover a,.fl-theme-wb .ui-state-hover a:hover{color:#000;text-decoration:none;}
+.fl-theme-wb .ui-state-active,.fl-theme-wb .ui-widget-content .ui-state-active,.fl-theme-wb .ui-widget-header .ui-state-active{border:1px solid #fff;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-wb .ui-state-active a,.fl-theme-wb .ui-state-active a:link,.fl-theme-wb .ui-state-active a:visited{color:#000;text-decoration:none;}
+.fl-theme-wb .ui-widget :active{outline:none;}
+.fl-theme-wb .ui-state-highlight,.fl-theme-wb .ui-widget-content .ui-state-highlight,.fl-theme-wb .ui-widget-header .ui-state-highlight{border:1px solid #fff;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#000;}
+.fl-theme-wb .ui-state-highlight a,.fl-theme-wb .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#000;}
+.fl-theme-wb .ui-state-error,.fl-theme-wb .ui-widget-content .ui-state-error,.fl-theme-wb .ui-widget-header .ui-state-error{border:1px solid #fff;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;color:#000;}
+.fl-theme-wb .ui-state-error a,.fl-theme-wb .ui-widget-content .ui-state-error a,.fl-theme-wb .ui-widget-header .ui-state-error a{color:#000;}
+.fl-theme-wb .ui-state-error-text,.fl-theme-wb .ui-widget-content .ui-state-error-text,.fl-theme-wb .ui-widget-header .ui-state-error-text{color:#000;}
+.fl-theme-wb .ui-priority-primary,.fl-theme-wb .ui-widget-content .ui-priority-primary,.fl-theme-wb .ui-widget-header .ui-priority-primary{font-weight:bold;}
+.fl-theme-wb .ui-priority-secondary,.fl-theme-wb .ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-wb .ui-state-disabled,.fl-theme-wb .ui-widget-content .ui-state-disabled,.fl-theme-wb .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
+.fl-theme-wb .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_ffffff_256x240.png);}
+.fl-theme-wb .ui-widget-content .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.fl-theme-wb .ui-widget-header .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-wb .ui-state-default .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.fl-theme-wb .ui-state-hover .ui-icon,.fl-theme-wb .ui-state-focus .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-wb .ui-state-active .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-wb .ui-state-highlight .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-wb .ui-state-error .ui-icon,.fl-theme-wb .ui-state-error-text .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-wb .ui-icon-carat-1-n{background-position:0 0;}
+.fl-theme-wb .ui-icon-carat-1-ne{background-position:-16px 0;}
+.fl-theme-wb .ui-icon-carat-1-e{background-position:-32px 0;}
+.fl-theme-wb .ui-icon-carat-1-se{background-position:-48px 0;}
+.fl-theme-wb .ui-icon-carat-1-s{background-position:-64px 0;}
+.fl-theme-wb .ui-icon-carat-1-sw{background-position:-80px 0;}
+.fl-theme-wb .ui-icon-carat-1-w{background-position:-96px 0;}
+.fl-theme-wb .ui-icon-carat-1-nw{background-position:-112px 0;}
+.fl-theme-wb .ui-icon-carat-2-n-s{background-position:-128px 0;}
+.fl-theme-wb .ui-icon-carat-2-e-w{background-position:-144px 0;}
+.fl-theme-wb .ui-icon-triangle-1-n{background-position:0 -16px;}
+.fl-theme-wb .ui-icon-triangle-1-ne{background-position:-16px -16px;}
+.fl-theme-wb .ui-icon-triangle-1-e{background-position:-32px -16px;}
+.fl-theme-wb .ui-icon-triangle-1-se{background-position:-48px -16px;}
+.fl-theme-wb .ui-icon-triangle-1-s{background-position:-64px -16px;}
+.fl-theme-wb .ui-icon-triangle-1-sw{background-position:-80px -16px;}
+.fl-theme-wb .ui-icon-triangle-1-w{background-position:-96px -16px;}
+.fl-theme-wb .ui-icon-triangle-1-nw{background-position:-112px -16px;}
+.fl-theme-wb .ui-icon-triangle-2-n-s{background-position:-128px -16px;}
+.fl-theme-wb .ui-icon-triangle-2-e-w{background-position:-144px -16px;}
+.fl-theme-wb .ui-icon-arrow-1-n{background-position:0 -32px;}
+.fl-theme-wb .ui-icon-arrow-1-ne{background-position:-16px -32px;}
+.fl-theme-wb .ui-icon-arrow-1-e{background-position:-32px -32px;}
+.fl-theme-wb .ui-icon-arrow-1-se{background-position:-48px -32px;}
+.fl-theme-wb .ui-icon-arrow-1-s{background-position:-64px -32px;}
+.fl-theme-wb .ui-icon-arrow-1-sw{background-position:-80px -32px;}
+.fl-theme-wb .ui-icon-arrow-1-w{background-position:-96px -32px;}
+.fl-theme-wb .ui-icon-arrow-1-nw{background-position:-112px -32px;}
+.fl-theme-wb .ui-icon-arrow-2-n-s{background-position:-128px -32px;}
+.fl-theme-wb .ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
+.fl-theme-wb .ui-icon-arrow-2-e-w{background-position:-160px -32px;}
+.fl-theme-wb .ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
+.fl-theme-wb .ui-icon-arrowstop-1-n{background-position:-192px -32px;}
+.fl-theme-wb .ui-icon-arrowstop-1-e{background-position:-208px -32px;}
+.fl-theme-wb .ui-icon-arrowstop-1-s{background-position:-224px -32px;}
+.fl-theme-wb .ui-icon-arrowstop-1-w{background-position:-240px -32px;}
+.fl-theme-wb .ui-icon-arrowthick-1-n{background-position:0 -48px;}
+.fl-theme-wb .ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-1-e{background-position:-32px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-1-se{background-position:-48px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-1-s{background-position:-64px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-1-w{background-position:-96px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
+.fl-theme-wb .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
+.fl-theme-wb .ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
+.fl-theme-wb .ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
+.fl-theme-wb .ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
+.fl-theme-wb .ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
+.fl-theme-wb .ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
+.fl-theme-wb .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
+.fl-theme-wb .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
+.fl-theme-wb .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
+.fl-theme-wb .ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
+.fl-theme-wb .ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
+.fl-theme-wb .ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
+.fl-theme-wb .ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
+.fl-theme-wb .ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
+.fl-theme-wb .ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
+.fl-theme-wb .ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
+.fl-theme-wb .ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
+.fl-theme-wb .ui-icon-arrow-4{background-position:0 -80px;}
+.fl-theme-wb .ui-icon-arrow-4-diag{background-position:-16px -80px;}
+.fl-theme-wb .ui-icon-extlink{background-position:-32px -80px;}
+.fl-theme-wb .ui-icon-newwin{background-position:-48px -80px;}
+.fl-theme-wb .ui-icon-refresh{background-position:-64px -80px;}
+.fl-theme-wb .ui-icon-shuffle{background-position:-80px -80px;}
+.fl-theme-wb .ui-icon-transfer-e-w{background-position:-96px -80px;}
+.fl-theme-wb .ui-icon-transferthick-e-w{background-position:-112px -80px;}
+.fl-theme-wb .ui-icon-folder-collapsed{background-position:0 -96px;}
+.fl-theme-wb .ui-icon-folder-open{background-position:-16px -96px;}
+.fl-theme-wb .ui-icon-document{background-position:-32px -96px;}
+.fl-theme-wb .ui-icon-document-b{background-position:-48px -96px;}
+.fl-theme-wb .ui-icon-note{background-position:-64px -96px;}
+.fl-theme-wb .ui-icon-mail-closed{background-position:-80px -96px;}
+.fl-theme-wb .ui-icon-mail-open{background-position:-96px -96px;}
+.fl-theme-wb .ui-icon-suitcase{background-position:-112px -96px;}
+.fl-theme-wb .ui-icon-comment{background-position:-128px -96px;}
+.fl-theme-wb .ui-icon-person{background-position:-144px -96px;}
+.fl-theme-wb .ui-icon-print{background-position:-160px -96px;}
+.fl-theme-wb .ui-icon-trash{background-position:-176px -96px;}
+.fl-theme-wb .ui-icon-locked{background-position:-192px -96px;}
+.fl-theme-wb .ui-icon-unlocked{background-position:-208px -96px;}
+.fl-theme-wb .ui-icon-bookmark{background-position:-224px -96px;}
+.fl-theme-wb .ui-icon-tag{background-position:-240px -96px;}
+.fl-theme-wb .ui-icon-home{background-position:0 -112px;}
+.fl-theme-wb .ui-icon-flag{background-position:-16px -112px;}
+.fl-theme-wb .ui-icon-calendar{background-position:-32px -112px;}
+.fl-theme-wb .ui-icon-cart{background-position:-48px -112px;}
+.fl-theme-wb .ui-icon-pencil{background-position:-64px -112px;}
+.fl-theme-wb .ui-icon-clock{background-position:-80px -112px;}
+.fl-theme-wb .ui-icon-disk{background-position:-96px -112px;}
+.fl-theme-wb .ui-icon-calculator{background-position:-112px -112px;}
+.fl-theme-wb .ui-icon-zoomin{background-position:-128px -112px;}
+.fl-theme-wb .ui-icon-zoomout{background-position:-144px -112px;}
+.fl-theme-wb .ui-icon-search{background-position:-160px -112px;}
+.fl-theme-wb .ui-icon-wrench{background-position:-176px -112px;}
+.fl-theme-wb .ui-icon-gear{background-position:-192px -112px;}
+.fl-theme-wb .ui-icon-heart{background-position:-208px -112px;}
+.fl-theme-wb .ui-icon-star{background-position:-224px -112px;}
+.fl-theme-wb .ui-icon-link{background-position:-240px -112px;}
+.fl-theme-wb .ui-icon-cancel{background-position:0 -128px;}
+.fl-theme-wb .ui-icon-plus{background-position:-16px -128px;}
+.fl-theme-wb .ui-icon-plusthick{background-position:-32px -128px;}
+.fl-theme-wb .ui-icon-minus{background-position:-48px -128px;}
+.fl-theme-wb .ui-icon-minusthick{background-position:-64px -128px;}
+.fl-theme-wb .ui-icon-close{background-position:-80px -128px;}
+.fl-theme-wb .ui-icon-closethick{background-position:-96px -128px;}
+.fl-theme-wb .ui-icon-key{background-position:-112px -128px;}
+.fl-theme-wb .ui-icon-lightbulb{background-position:-128px -128px;}
+.fl-theme-wb .ui-icon-scissors{background-position:-144px -128px;}
+.fl-theme-wb .ui-icon-clipboard{background-position:-160px -128px;}
+.fl-theme-wb .ui-icon-copy{background-position:-176px -128px;}
+.fl-theme-wb .ui-icon-contact{background-position:-192px -128px;}
+.fl-theme-wb .ui-icon-image{background-position:-208px -128px;}
+.fl-theme-wb .ui-icon-video{background-position:-224px -128px;}
+.fl-theme-wb .ui-icon-script{background-position:-240px -128px;}
+.fl-theme-wb .ui-icon-alert{background-position:0 -144px;}
+.fl-theme-wb .ui-icon-info{background-position:-16px -144px;}
+.fl-theme-wb .ui-icon-notice{background-position:-32px -144px;}
+.fl-theme-wb .ui-icon-help{background-position:-48px -144px;}
+.fl-theme-wb .ui-icon-check{background-position:-64px -144px;}
+.fl-theme-wb .ui-icon-bullet{background-position:-80px -144px;}
+.fl-theme-wb .ui-icon-radio-off{background-position:-96px -144px;}
+.fl-theme-wb .ui-icon-radio-on{background-position:-112px -144px;}
+.fl-theme-wb .ui-icon-pin-w{background-position:-128px -144px;}
+.fl-theme-wb .ui-icon-pin-s{background-position:-144px -144px;}
+.fl-theme-wb .ui-icon-play{background-position:0 -160px;}
+.fl-theme-wb .ui-icon-pause{background-position:-16px -160px;}
+.fl-theme-wb .ui-icon-seek-next{background-position:-32px -160px;}
+.fl-theme-wb .ui-icon-seek-prev{background-position:-48px -160px;}
+.fl-theme-wb .ui-icon-seek-end{background-position:-64px -160px;}
+.fl-theme-wb .ui-icon-seek-start{background-position:-80px -160px;}
+.fl-theme-wb .ui-icon-seek-first{background-position:-80px -160px;}
+.fl-theme-wb .ui-icon-stop{background-position:-96px -160px;}
+.fl-theme-wb .ui-icon-eject{background-position:-112px -160px;}
+.fl-theme-wb .ui-icon-volume-off{background-position:-128px -160px;}
+.fl-theme-wb .ui-icon-volume-on{background-position:-144px -160px;}
+.fl-theme-wb .ui-icon-power{background-position:0 -176px;}
+.fl-theme-wb .ui-icon-signal-diag{background-position:-16px -176px;}
+.fl-theme-wb .ui-icon-signal{background-position:-32px -176px;}
+.fl-theme-wb .ui-icon-battery-0{background-position:-48px -176px;}
+.fl-theme-wb .ui-icon-battery-1{background-position:-64px -176px;}
+.fl-theme-wb .ui-icon-battery-2{background-position:-80px -176px;}
+.fl-theme-wb .ui-icon-battery-3{background-position:-96px -176px;}
+.fl-theme-wb .ui-icon-circle-plus{background-position:0 -192px;}
+.fl-theme-wb .ui-icon-circle-minus{background-position:-16px -192px;}
+.fl-theme-wb .ui-icon-circle-close{background-position:-32px -192px;}
+.fl-theme-wb .ui-icon-circle-triangle-e{background-position:-48px -192px;}
+.fl-theme-wb .ui-icon-circle-triangle-s{background-position:-64px -192px;}
+.fl-theme-wb .ui-icon-circle-triangle-w{background-position:-80px -192px;}
+.fl-theme-wb .ui-icon-circle-triangle-n{background-position:-96px -192px;}
+.fl-theme-wb .ui-icon-circle-arrow-e{background-position:-112px -192px;}
+.fl-theme-wb .ui-icon-circle-arrow-s{background-position:-128px -192px;}
+.fl-theme-wb .ui-icon-circle-arrow-w{background-position:-144px -192px;}
+.fl-theme-wb .ui-icon-circle-arrow-n{background-position:-160px -192px;}
+.fl-theme-wb .ui-icon-circle-zoomin{background-position:-176px -192px;}
+.fl-theme-wb .ui-icon-circle-zoomout{background-position:-192px -192px;}
+.fl-theme-wb .ui-icon-circle-check{background-position:-208px -192px;}
+.fl-theme-wb .ui-icon-circlesmall-plus{background-position:0 -208px;}
+.fl-theme-wb .ui-icon-circlesmall-minus{background-position:-16px -208px;}
+.fl-theme-wb .ui-icon-circlesmall-close{background-position:-32px -208px;}
+.fl-theme-wb .ui-icon-squaresmall-plus{background-position:-48px -208px;}
+.fl-theme-wb .ui-icon-squaresmall-minus{background-position:-64px -208px;}
+.fl-theme-wb .ui-icon-squaresmall-close{background-position:-80px -208px;}
+.fl-theme-wb .ui-icon-grip-dotted-vertical{background-position:0 -224px;}
+.fl-theme-wb .ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
+.fl-theme-wb .ui-icon-grip-solid-vertical{background-position:-32px -224px;}
+.fl-theme-wb .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
+.fl-theme-wb .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
+.fl-theme-wb .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
+.fl-theme-wb .ui-corner-all,.fl-theme-wb .ui-corner-top,.fl-theme-wb .ui-corner-left,.fl-theme-wb .ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-khtml-border-top-left-radius:5px;border-top-left-radius:5px;}
+.fl-theme-wb .ui-corner-all,.fl-theme-wb .ui-corner-top,.fl-theme-wb .ui-corner-right,.fl-theme-wb .ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;-khtml-border-top-right-radius:5px;border-top-right-radius:5px;}
+.fl-theme-wb .ui-corner-all,.fl-theme-wb .ui-corner-bottom,.fl-theme-wb .ui-corner-left,.fl-theme-wb .ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;-khtml-border-bottom-left-radius:5px;border-bottom-left-radius:5px;}
+.fl-theme-wb .ui-corner-all,.fl-theme-wb .ui-corner-bottom,.fl-theme-wb .ui-corner-right,.fl-theme-wb .ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;-khtml-border-bottom-right-radius:5px;border-bottom-right-radius:5px;}
+.fl-theme-wb .ui-widget-overlay{background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:.75;filter:Alpha(Opacity=75);}
+.fl-theme-wb .ui-widget-shadow{margin:5px 0 0 5px;padding:1px;background:#fff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x;opacity:100;filter:Alpha(Opacity=100);-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}
+.fl-theme-wb .ui-resizable{position:relative;}
+.fl-theme-wb .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}
+.fl-theme-wb .ui-resizable-disabled .ui-resizable-handle,.fl-theme-wb .ui-resizable-autohide .ui-resizable-handle{display:none;}
+.fl-theme-wb .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.fl-theme-wb .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.fl-theme-wb .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.fl-theme-wb .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.fl-theme-wb .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.fl-theme-wb .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.fl-theme-wb .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.fl-theme-wb .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.fl-theme-wb .ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.fl-theme-wb .ui-accordion{width:100%;}
+.fl-theme-wb .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
+.fl-theme-wb .ui-accordion .ui-accordion-li-fix{display:inline;}
+.fl-theme-wb .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
+.fl-theme-wb .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}
+.fl-theme-wb .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}
+.fl-theme-wb .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
+.fl-theme-wb .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}
+.fl-theme-wb .ui-accordion .ui-accordion-content-active{display:block;}
+.fl-theme-wb .ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.fl-theme-wb .ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}
+.fl-theme-wb .ui-menu .ui-menu{margin-top:-3px;}
+.fl-theme-wb .ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}
+.fl-theme-wb .ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}
+.fl-theme-wb .ui-menu .ui-menu-item a.ui-state-hover,.fl-theme-wb .ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
+.fl-theme-wb .ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}
+.fl-theme-wb .ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.fl-theme-wb .ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.fl-theme-wb .ui-button .ui-button-text{display:block;line-height:1.4;}
+.fl-theme-wb .ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.fl-theme-wb .ui-button-icon-only .ui-button-text,.fl-theme-wb .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.fl-theme-wb .ui-button-text-icon-primary .ui-button-text,.fl-theme-wb .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.fl-theme-wb .ui-button-text-icon-secondary .ui-button-text,.fl-theme-wb .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.fl-theme-wb .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.fl-theme-wb .ui-button-icon-only .ui-icon,.fl-theme-wb .ui-button-text-icon-primary .ui-icon,.fl-theme-wb .ui-button-text-icon-secondary .ui-icon,.fl-theme-wb .ui-button-text-icons .ui-icon,.fl-theme-wb .ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.fl-theme-wb .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.fl-theme-wb .ui-button-text-icon-primary .ui-button-icon-primary,.fl-theme-wb .ui-button-text-icons .ui-button-icon-primary,.fl-theme-wb .ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.fl-theme-wb .ui-button-text-icon-secondary .ui-button-icon-secondary,.fl-theme-wb .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-wb .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-wb .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-wb .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-wb .ui-buttonset{margin-right:7px;}
+.fl-theme-wb .ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.fl-theme-wb .ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}
+.fl-theme-wb .ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
+.fl-theme-wb .ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}
+.fl-theme-wb .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
+.fl-theme-wb .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.fl-theme-wb .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-wb .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.fl-theme-wb .ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
+.fl-theme-wb .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
+.fl-theme-wb .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.fl-theme-wb .ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
+.fl-theme-wb .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
+.fl-theme-wb .ui-draggable .ui-dialog-titlebar{cursor:move;}
+.fl-theme-wb .ui-slider{position:relative;text-align:left;}
+.fl-theme-wb .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
+.fl-theme-wb .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.fl-theme-wb .ui-slider-horizontal{height:.8em;}
+.fl-theme-wb .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
+.fl-theme-wb .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.fl-theme-wb .ui-slider-horizontal .ui-slider-range-min{left:0;}
+.fl-theme-wb .ui-slider-horizontal .ui-slider-range-max{right:0;}
+.fl-theme-wb .ui-slider-vertical{width:.8em;height:100px;}
+.fl-theme-wb .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
+.fl-theme-wb .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.fl-theme-wb .ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.fl-theme-wb .ui-slider-vertical .ui-slider-range-max{top:0;}
+.fl-theme-wb .ui-tabs{position:relative;padding:.2em;zoom:1;}
+.fl-theme-wb .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.fl-theme-wb .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.fl-theme-wb .ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.fl-theme-wb .ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.fl-theme-wb .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-wb .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-wb .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.fl-theme-wb .ui-tabs .ui-tabs-nav li a,.fl-theme-wb .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.fl-theme-wb .ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.fl-theme-wb .ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-theme-wb .ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-prev,.fl-theme-wb .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-wb .ui-datepicker .ui-datepicker-next-hover{top:1px;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-prev{left:2px;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-next{right:2px;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-prev-hover{left:1px;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-next-hover{right:1px;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-prev span,.fl-theme-wb .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
+.fl-theme-wb .ui-datepicker select.ui-datepicker-month-year{width:100%;}
+.fl-theme-wb .ui-datepicker select.ui-datepicker-month,.fl-theme-wb .ui-datepicker select.ui-datepicker-year{width:49%;}
+.fl-theme-wb .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
+.fl-theme-wb .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
+.fl-theme-wb .ui-datepicker td{border:0;padding:1px;}
+.fl-theme-wb .ui-datepicker td span,.fl-theme-wb .ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
+.fl-theme-wb .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
+.fl-theme-wb .ui-datepicker.ui-datepicker-multi{width:auto;}
+.fl-theme-wb .ui-datepicker-multi .ui-datepicker-group{float:left;}
+.fl-theme-wb .ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}
+.fl-theme-wb .ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
+.fl-theme-wb .ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}
+.fl-theme-wb .ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
+.fl-theme-wb .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}
+.fl-theme-wb .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
+.fl-theme-wb .ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
+.fl-theme-wb .ui-datepicker-row-break{clear:both;width:100%;font-size:0;}
+.fl-theme-wb .ui-datepicker-rtl{direction:rtl;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-group{float:right;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-wb .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-wb .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
+.fl-theme-wb .ui-progressbar{height:2em;text-align:left;}
+.fl-theme-wb .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-bg_flat_0_000000_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-bg_flat_0_000000_40x100.png
new file mode 100644 (file)
index 0000000..abdc010
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-bg_flat_0_000000_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-bg_flat_0_ffff00_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-bg_flat_0_ffff00_40x100.png
new file mode 100644 (file)
index 0000000..db1f302
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-bg_flat_0_ffff00_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_000000_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_000000_256x240.png
new file mode 100644 (file)
index 0000000..7c211aa
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_000000_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_ffff00_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_ffff00_256x240.png
new file mode 100644 (file)
index 0000000..069c234
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_ffff00_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/yb.css b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yb/yb.css
new file mode 100644 (file)
index 0000000..3dbfb20
--- /dev/null
@@ -0,0 +1,347 @@
+.fl-theme-yb .ui-helper-hidden{display:none;}
+.fl-theme-yb .ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
+.fl-theme-yb .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
+.fl-theme-yb .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+.fl-theme-yb .ui-helper-clearfix{display:inline-block;}
+/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
+.fl-theme-yb .ui-helper-clearfix{display:block;}
+/* end clearfix */ .fl-theme-yb .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
+.fl-theme-yb .ui-state-disabled{cursor:default!important;}
+.fl-theme-yb .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
+.fl-theme-yb .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
+.fl-theme-yb .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.2em;}
+.fl-theme-yb .ui-widget .ui-widget{font-size:1em;}
+.fl-theme-yb .ui-widget input,.fl-theme-yb .ui-widget select,.fl-theme-yb .ui-widget textarea,.fl-theme-yb .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.fl-theme-yb .ui-widget-content{border:1px solid #ff0;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;color:#ff0;}
+.fl-theme-yb .ui-widget-content a{color:#ff0;}
+.fl-theme-yb .ui-widget-header{border:1px solid #ff0;background:#ff0 url(images/ui-bg_flat_0_ffff00_40x100.png) 50% 50% repeat-x;color:#000;font-weight:bold;}
+.fl-theme-yb .ui-widget-header a{color:#000;}
+.fl-theme-yb .ui-state-default,.fl-theme-yb .ui-widget-content .ui-state-default,.fl-theme-yb .ui-widget-header .ui-state-default{border:1px solid #ff0;background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#ff0;}
+.fl-theme-yb .ui-state-default a,.fl-theme-yb .ui-state-default a:link,.fl-theme-yb .ui-state-default a:visited{color:#ff0;text-decoration:none;}
+.fl-theme-yb .ui-state-hover,.fl-theme-yb .ui-widget-content .ui-state-hover,.fl-theme-yb .ui-widget-header .ui-state-hover,.fl-theme-yb .ui-state-focus,.fl-theme-yb .ui-widget-content .ui-state-focus,.fl-theme-yb .ui-widget-header .ui-state-focus{border:1px solid #000;background:#ff0 url(images/ui-bg_flat_0_ffff00_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-yb .ui-state-hover a,.fl-theme-yb .ui-state-hover a:hover{color:#000;text-decoration:none;}
+.fl-theme-yb .ui-state-active,.fl-theme-yb .ui-widget-content .ui-state-active,.fl-theme-yb .ui-widget-header .ui-state-active{border:1px solid #ff0;background:#ff0 url(images/ui-bg_flat_0_ffff00_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-yb .ui-state-active a,.fl-theme-yb .ui-state-active a:link,.fl-theme-yb .ui-state-active a:visited{color:#000;text-decoration:none;}
+.fl-theme-yb .ui-widget :active{outline:none;}
+.fl-theme-yb .ui-state-highlight,.fl-theme-yb .ui-widget-content .ui-state-highlight,.fl-theme-yb .ui-widget-header .ui-state-highlight{border:1px solid #ff0;background:#ff0 url(images/ui-bg_flat_0_ffff00_40x100.png) 50% 50% repeat-x;color:#000;}
+.fl-theme-yb .ui-state-highlight a,.fl-theme-yb .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#000;}
+.fl-theme-yb .ui-state-error,.fl-theme-yb .ui-widget-content .ui-state-error,.fl-theme-yb .ui-widget-header .ui-state-error{border:1px solid #ff0;background:#ff0 url(images/ui-bg_flat_0_ffff00_40x100.png) 50% 50% repeat-x;color:#000;}
+.fl-theme-yb .ui-state-error a,.fl-theme-yb .ui-widget-content .ui-state-error a,.fl-theme-yb .ui-widget-header .ui-state-error a{color:#000;}
+.fl-theme-yb .ui-state-error-text,.fl-theme-yb .ui-widget-content .ui-state-error-text,.fl-theme-yb .ui-widget-header .ui-state-error-text{color:#000;}
+.fl-theme-yb .ui-priority-primary,.fl-theme-yb .ui-widget-content .ui-priority-primary,.fl-theme-yb .ui-widget-header .ui-priority-primary{font-weight:bold;}
+.fl-theme-yb .ui-priority-secondary,.fl-theme-yb .ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-yb .ui-state-disabled,.fl-theme-yb .ui-widget-content .ui-state-disabled,.fl-theme-yb .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
+.fl-theme-yb .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-yb .ui-widget-content .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-yb .ui-widget-header .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yb .ui-state-default .ui-icon{background-image:url(images/ui-icons_ffff00_256x240.png);}
+.fl-theme-yb .ui-state-hover .ui-icon,.fl-theme-yb .ui-state-focus .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yb .ui-state-active .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yb .ui-state-highlight .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yb .ui-state-error .ui-icon,.fl-theme-yb .ui-state-error-text .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yb .ui-icon-carat-1-n{background-position:0 0;}
+.fl-theme-yb .ui-icon-carat-1-ne{background-position:-16px 0;}
+.fl-theme-yb .ui-icon-carat-1-e{background-position:-32px 0;}
+.fl-theme-yb .ui-icon-carat-1-se{background-position:-48px 0;}
+.fl-theme-yb .ui-icon-carat-1-s{background-position:-64px 0;}
+.fl-theme-yb .ui-icon-carat-1-sw{background-position:-80px 0;}
+.fl-theme-yb .ui-icon-carat-1-w{background-position:-96px 0;}
+.fl-theme-yb .ui-icon-carat-1-nw{background-position:-112px 0;}
+.fl-theme-yb .ui-icon-carat-2-n-s{background-position:-128px 0;}
+.fl-theme-yb .ui-icon-carat-2-e-w{background-position:-144px 0;}
+.fl-theme-yb .ui-icon-triangle-1-n{background-position:0 -16px;}
+.fl-theme-yb .ui-icon-triangle-1-ne{background-position:-16px -16px;}
+.fl-theme-yb .ui-icon-triangle-1-e{background-position:-32px -16px;}
+.fl-theme-yb .ui-icon-triangle-1-se{background-position:-48px -16px;}
+.fl-theme-yb .ui-icon-triangle-1-s{background-position:-64px -16px;}
+.fl-theme-yb .ui-icon-triangle-1-sw{background-position:-80px -16px;}
+.fl-theme-yb .ui-icon-triangle-1-w{background-position:-96px -16px;}
+.fl-theme-yb .ui-icon-triangle-1-nw{background-position:-112px -16px;}
+.fl-theme-yb .ui-icon-triangle-2-n-s{background-position:-128px -16px;}
+.fl-theme-yb .ui-icon-triangle-2-e-w{background-position:-144px -16px;}
+.fl-theme-yb .ui-icon-arrow-1-n{background-position:0 -32px;}
+.fl-theme-yb .ui-icon-arrow-1-ne{background-position:-16px -32px;}
+.fl-theme-yb .ui-icon-arrow-1-e{background-position:-32px -32px;}
+.fl-theme-yb .ui-icon-arrow-1-se{background-position:-48px -32px;}
+.fl-theme-yb .ui-icon-arrow-1-s{background-position:-64px -32px;}
+.fl-theme-yb .ui-icon-arrow-1-sw{background-position:-80px -32px;}
+.fl-theme-yb .ui-icon-arrow-1-w{background-position:-96px -32px;}
+.fl-theme-yb .ui-icon-arrow-1-nw{background-position:-112px -32px;}
+.fl-theme-yb .ui-icon-arrow-2-n-s{background-position:-128px -32px;}
+.fl-theme-yb .ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
+.fl-theme-yb .ui-icon-arrow-2-e-w{background-position:-160px -32px;}
+.fl-theme-yb .ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
+.fl-theme-yb .ui-icon-arrowstop-1-n{background-position:-192px -32px;}
+.fl-theme-yb .ui-icon-arrowstop-1-e{background-position:-208px -32px;}
+.fl-theme-yb .ui-icon-arrowstop-1-s{background-position:-224px -32px;}
+.fl-theme-yb .ui-icon-arrowstop-1-w{background-position:-240px -32px;}
+.fl-theme-yb .ui-icon-arrowthick-1-n{background-position:0 -48px;}
+.fl-theme-yb .ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-1-e{background-position:-32px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-1-se{background-position:-48px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-1-s{background-position:-64px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-1-w{background-position:-96px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
+.fl-theme-yb .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
+.fl-theme-yb .ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
+.fl-theme-yb .ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
+.fl-theme-yb .ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
+.fl-theme-yb .ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
+.fl-theme-yb .ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
+.fl-theme-yb .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
+.fl-theme-yb .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
+.fl-theme-yb .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
+.fl-theme-yb .ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
+.fl-theme-yb .ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
+.fl-theme-yb .ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
+.fl-theme-yb .ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
+.fl-theme-yb .ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
+.fl-theme-yb .ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
+.fl-theme-yb .ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
+.fl-theme-yb .ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
+.fl-theme-yb .ui-icon-arrow-4{background-position:0 -80px;}
+.fl-theme-yb .ui-icon-arrow-4-diag{background-position:-16px -80px;}
+.fl-theme-yb .ui-icon-extlink{background-position:-32px -80px;}
+.fl-theme-yb .ui-icon-newwin{background-position:-48px -80px;}
+.fl-theme-yb .ui-icon-refresh{background-position:-64px -80px;}
+.fl-theme-yb .ui-icon-shuffle{background-position:-80px -80px;}
+.fl-theme-yb .ui-icon-transfer-e-w{background-position:-96px -80px;}
+.fl-theme-yb .ui-icon-transferthick-e-w{background-position:-112px -80px;}
+.fl-theme-yb .ui-icon-folder-collapsed{background-position:0 -96px;}
+.fl-theme-yb .ui-icon-folder-open{background-position:-16px -96px;}
+.fl-theme-yb .ui-icon-document{background-position:-32px -96px;}
+.fl-theme-yb .ui-icon-document-b{background-position:-48px -96px;}
+.fl-theme-yb .ui-icon-note{background-position:-64px -96px;}
+.fl-theme-yb .ui-icon-mail-closed{background-position:-80px -96px;}
+.fl-theme-yb .ui-icon-mail-open{background-position:-96px -96px;}
+.fl-theme-yb .ui-icon-suitcase{background-position:-112px -96px;}
+.fl-theme-yb .ui-icon-comment{background-position:-128px -96px;}
+.fl-theme-yb .ui-icon-person{background-position:-144px -96px;}
+.fl-theme-yb .ui-icon-print{background-position:-160px -96px;}
+.fl-theme-yb .ui-icon-trash{background-position:-176px -96px;}
+.fl-theme-yb .ui-icon-locked{background-position:-192px -96px;}
+.fl-theme-yb .ui-icon-unlocked{background-position:-208px -96px;}
+.fl-theme-yb .ui-icon-bookmark{background-position:-224px -96px;}
+.fl-theme-yb .ui-icon-tag{background-position:-240px -96px;}
+.fl-theme-yb .ui-icon-home{background-position:0 -112px;}
+.fl-theme-yb .ui-icon-flag{background-position:-16px -112px;}
+.fl-theme-yb .ui-icon-calendar{background-position:-32px -112px;}
+.fl-theme-yb .ui-icon-cart{background-position:-48px -112px;}
+.fl-theme-yb .ui-icon-pencil{background-position:-64px -112px;}
+.fl-theme-yb .ui-icon-clock{background-position:-80px -112px;}
+.fl-theme-yb .ui-icon-disk{background-position:-96px -112px;}
+.fl-theme-yb .ui-icon-calculator{background-position:-112px -112px;}
+.fl-theme-yb .ui-icon-zoomin{background-position:-128px -112px;}
+.fl-theme-yb .ui-icon-zoomout{background-position:-144px -112px;}
+.fl-theme-yb .ui-icon-search{background-position:-160px -112px;}
+.fl-theme-yb .ui-icon-wrench{background-position:-176px -112px;}
+.fl-theme-yb .ui-icon-gear{background-position:-192px -112px;}
+.fl-theme-yb .ui-icon-heart{background-position:-208px -112px;}
+.fl-theme-yb .ui-icon-star{background-position:-224px -112px;}
+.fl-theme-yb .ui-icon-link{background-position:-240px -112px;}
+.fl-theme-yb .ui-icon-cancel{background-position:0 -128px;}
+.fl-theme-yb .ui-icon-plus{background-position:-16px -128px;}
+.fl-theme-yb .ui-icon-plusthick{background-position:-32px -128px;}
+.fl-theme-yb .ui-icon-minus{background-position:-48px -128px;}
+.fl-theme-yb .ui-icon-minusthick{background-position:-64px -128px;}
+.fl-theme-yb .ui-icon-close{background-position:-80px -128px;}
+.fl-theme-yb .ui-icon-closethick{background-position:-96px -128px;}
+.fl-theme-yb .ui-icon-key{background-position:-112px -128px;}
+.fl-theme-yb .ui-icon-lightbulb{background-position:-128px -128px;}
+.fl-theme-yb .ui-icon-scissors{background-position:-144px -128px;}
+.fl-theme-yb .ui-icon-clipboard{background-position:-160px -128px;}
+.fl-theme-yb .ui-icon-copy{background-position:-176px -128px;}
+.fl-theme-yb .ui-icon-contact{background-position:-192px -128px;}
+.fl-theme-yb .ui-icon-image{background-position:-208px -128px;}
+.fl-theme-yb .ui-icon-video{background-position:-224px -128px;}
+.fl-theme-yb .ui-icon-script{background-position:-240px -128px;}
+.fl-theme-yb .ui-icon-alert{background-position:0 -144px;}
+.fl-theme-yb .ui-icon-info{background-position:-16px -144px;}
+.fl-theme-yb .ui-icon-notice{background-position:-32px -144px;}
+.fl-theme-yb .ui-icon-help{background-position:-48px -144px;}
+.fl-theme-yb .ui-icon-check{background-position:-64px -144px;}
+.fl-theme-yb .ui-icon-bullet{background-position:-80px -144px;}
+.fl-theme-yb .ui-icon-radio-off{background-position:-96px -144px;}
+.fl-theme-yb .ui-icon-radio-on{background-position:-112px -144px;}
+.fl-theme-yb .ui-icon-pin-w{background-position:-128px -144px;}
+.fl-theme-yb .ui-icon-pin-s{background-position:-144px -144px;}
+.fl-theme-yb .ui-icon-play{background-position:0 -160px;}
+.fl-theme-yb .ui-icon-pause{background-position:-16px -160px;}
+.fl-theme-yb .ui-icon-seek-next{background-position:-32px -160px;}
+.fl-theme-yb .ui-icon-seek-prev{background-position:-48px -160px;}
+.fl-theme-yb .ui-icon-seek-end{background-position:-64px -160px;}
+.fl-theme-yb .ui-icon-seek-start{background-position:-80px -160px;}
+.fl-theme-yb .ui-icon-seek-first{background-position:-80px -160px;}
+.fl-theme-yb .ui-icon-stop{background-position:-96px -160px;}
+.fl-theme-yb .ui-icon-eject{background-position:-112px -160px;}
+.fl-theme-yb .ui-icon-volume-off{background-position:-128px -160px;}
+.fl-theme-yb .ui-icon-volume-on{background-position:-144px -160px;}
+.fl-theme-yb .ui-icon-power{background-position:0 -176px;}
+.fl-theme-yb .ui-icon-signal-diag{background-position:-16px -176px;}
+.fl-theme-yb .ui-icon-signal{background-position:-32px -176px;}
+.fl-theme-yb .ui-icon-battery-0{background-position:-48px -176px;}
+.fl-theme-yb .ui-icon-battery-1{background-position:-64px -176px;}
+.fl-theme-yb .ui-icon-battery-2{background-position:-80px -176px;}
+.fl-theme-yb .ui-icon-battery-3{background-position:-96px -176px;}
+.fl-theme-yb .ui-icon-circle-plus{background-position:0 -192px;}
+.fl-theme-yb .ui-icon-circle-minus{background-position:-16px -192px;}
+.fl-theme-yb .ui-icon-circle-close{background-position:-32px -192px;}
+.fl-theme-yb .ui-icon-circle-triangle-e{background-position:-48px -192px;}
+.fl-theme-yb .ui-icon-circle-triangle-s{background-position:-64px -192px;}
+.fl-theme-yb .ui-icon-circle-triangle-w{background-position:-80px -192px;}
+.fl-theme-yb .ui-icon-circle-triangle-n{background-position:-96px -192px;}
+.fl-theme-yb .ui-icon-circle-arrow-e{background-position:-112px -192px;}
+.fl-theme-yb .ui-icon-circle-arrow-s{background-position:-128px -192px;}
+.fl-theme-yb .ui-icon-circle-arrow-w{background-position:-144px -192px;}
+.fl-theme-yb .ui-icon-circle-arrow-n{background-position:-160px -192px;}
+.fl-theme-yb .ui-icon-circle-zoomin{background-position:-176px -192px;}
+.fl-theme-yb .ui-icon-circle-zoomout{background-position:-192px -192px;}
+.fl-theme-yb .ui-icon-circle-check{background-position:-208px -192px;}
+.fl-theme-yb .ui-icon-circlesmall-plus{background-position:0 -208px;}
+.fl-theme-yb .ui-icon-circlesmall-minus{background-position:-16px -208px;}
+.fl-theme-yb .ui-icon-circlesmall-close{background-position:-32px -208px;}
+.fl-theme-yb .ui-icon-squaresmall-plus{background-position:-48px -208px;}
+.fl-theme-yb .ui-icon-squaresmall-minus{background-position:-64px -208px;}
+.fl-theme-yb .ui-icon-squaresmall-close{background-position:-80px -208px;}
+.fl-theme-yb .ui-icon-grip-dotted-vertical{background-position:0 -224px;}
+.fl-theme-yb .ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
+.fl-theme-yb .ui-icon-grip-solid-vertical{background-position:-32px -224px;}
+.fl-theme-yb .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
+.fl-theme-yb .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
+.fl-theme-yb .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
+.fl-theme-yb .ui-corner-all,.fl-theme-yb .ui-corner-top,.fl-theme-yb .ui-corner-left,.fl-theme-yb .ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-khtml-border-top-left-radius:5px;border-top-left-radius:5px;}
+.fl-theme-yb .ui-corner-all,.fl-theme-yb .ui-corner-top,.fl-theme-yb .ui-corner-right,.fl-theme-yb .ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;-khtml-border-top-right-radius:5px;border-top-right-radius:5px;}
+.fl-theme-yb .ui-corner-all,.fl-theme-yb .ui-corner-bottom,.fl-theme-yb .ui-corner-left,.fl-theme-yb .ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;-khtml-border-bottom-left-radius:5px;border-bottom-left-radius:5px;}
+.fl-theme-yb .ui-corner-all,.fl-theme-yb .ui-corner-bottom,.fl-theme-yb .ui-corner-right,.fl-theme-yb .ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;-khtml-border-bottom-right-radius:5px;border-bottom-right-radius:5px;}
+.fl-theme-yb .ui-widget-overlay{background:#000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x;opacity:.75;filter:Alpha(Opacity=75);}
+.fl-theme-yb .ui-widget-shadow{margin:5px 0 0 5px;padding:1px;background:#ff0 url(images/ui-bg_flat_0_ffff00_40x100.png) 50% 50% repeat-x;opacity:100;filter:Alpha(Opacity=100);-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}
+.fl-theme-yb .ui-resizable{position:relative;}
+.fl-theme-yb .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}
+.fl-theme-yb .ui-resizable-disabled .ui-resizable-handle,.fl-theme-yb .ui-resizable-autohide .ui-resizable-handle{display:none;}
+.fl-theme-yb .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.fl-theme-yb .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.fl-theme-yb .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.fl-theme-yb .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.fl-theme-yb .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.fl-theme-yb .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.fl-theme-yb .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.fl-theme-yb .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.fl-theme-yb .ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.fl-theme-yb .ui-accordion{width:100%;}
+.fl-theme-yb .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
+.fl-theme-yb .ui-accordion .ui-accordion-li-fix{display:inline;}
+.fl-theme-yb .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
+.fl-theme-yb .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}
+.fl-theme-yb .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}
+.fl-theme-yb .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
+.fl-theme-yb .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}
+.fl-theme-yb .ui-accordion .ui-accordion-content-active{display:block;}
+.fl-theme-yb .ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.fl-theme-yb .ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}
+.fl-theme-yb .ui-menu .ui-menu{margin-top:-3px;}
+.fl-theme-yb .ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}
+.fl-theme-yb .ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}
+.fl-theme-yb .ui-menu .ui-menu-item a.ui-state-hover,.fl-theme-yb .ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
+.fl-theme-yb .ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}
+.fl-theme-yb .ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.fl-theme-yb .ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.fl-theme-yb .ui-button .ui-button-text{display:block;line-height:1.4;}
+.fl-theme-yb .ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.fl-theme-yb .ui-button-icon-only .ui-button-text,.fl-theme-yb .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.fl-theme-yb .ui-button-text-icon-primary .ui-button-text,.fl-theme-yb .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.fl-theme-yb .ui-button-text-icon-secondary .ui-button-text,.fl-theme-yb .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.fl-theme-yb .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.fl-theme-yb .ui-button-icon-only .ui-icon,.fl-theme-yb .ui-button-text-icon-primary .ui-icon,.fl-theme-yb .ui-button-text-icon-secondary .ui-icon,.fl-theme-yb .ui-button-text-icons .ui-icon,.fl-theme-yb .ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.fl-theme-yb .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.fl-theme-yb .ui-button-text-icon-primary .ui-button-icon-primary,.fl-theme-yb .ui-button-text-icons .ui-button-icon-primary,.fl-theme-yb .ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.fl-theme-yb .ui-button-text-icon-secondary .ui-button-icon-secondary,.fl-theme-yb .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-yb .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-yb .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-yb .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-yb .ui-buttonset{margin-right:7px;}
+.fl-theme-yb .ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.fl-theme-yb .ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}
+.fl-theme-yb .ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
+.fl-theme-yb .ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}
+.fl-theme-yb .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
+.fl-theme-yb .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.fl-theme-yb .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-yb .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.fl-theme-yb .ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
+.fl-theme-yb .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
+.fl-theme-yb .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.fl-theme-yb .ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
+.fl-theme-yb .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
+.fl-theme-yb .ui-draggable .ui-dialog-titlebar{cursor:move;}
+.fl-theme-yb .ui-slider{position:relative;text-align:left;}
+.fl-theme-yb .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
+.fl-theme-yb .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.fl-theme-yb .ui-slider-horizontal{height:.8em;}
+.fl-theme-yb .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
+.fl-theme-yb .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.fl-theme-yb .ui-slider-horizontal .ui-slider-range-min{left:0;}
+.fl-theme-yb .ui-slider-horizontal .ui-slider-range-max{right:0;}
+.fl-theme-yb .ui-slider-vertical{width:.8em;height:100px;}
+.fl-theme-yb .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
+.fl-theme-yb .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.fl-theme-yb .ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.fl-theme-yb .ui-slider-vertical .ui-slider-range-max{top:0;}
+.fl-theme-yb .ui-tabs{position:relative;padding:.2em;zoom:1;}
+.fl-theme-yb .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.fl-theme-yb .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.fl-theme-yb .ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.fl-theme-yb .ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.fl-theme-yb .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-yb .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-yb .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.fl-theme-yb .ui-tabs .ui-tabs-nav li a,.fl-theme-yb .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.fl-theme-yb .ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.fl-theme-yb .ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-theme-yb .ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-prev,.fl-theme-yb .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-yb .ui-datepicker .ui-datepicker-next-hover{top:1px;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-prev{left:2px;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-next{right:2px;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-prev-hover{left:1px;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-next-hover{right:1px;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-prev span,.fl-theme-yb .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
+.fl-theme-yb .ui-datepicker select.ui-datepicker-month-year{width:100%;}
+.fl-theme-yb .ui-datepicker select.ui-datepicker-month,.fl-theme-yb .ui-datepicker select.ui-datepicker-year{width:49%;}
+.fl-theme-yb .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
+.fl-theme-yb .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
+.fl-theme-yb .ui-datepicker td{border:0;padding:1px;}
+.fl-theme-yb .ui-datepicker td span,.fl-theme-yb .ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
+.fl-theme-yb .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
+.fl-theme-yb .ui-datepicker.ui-datepicker-multi{width:auto;}
+.fl-theme-yb .ui-datepicker-multi .ui-datepicker-group{float:left;}
+.fl-theme-yb .ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}
+.fl-theme-yb .ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
+.fl-theme-yb .ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}
+.fl-theme-yb .ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
+.fl-theme-yb .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}
+.fl-theme-yb .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
+.fl-theme-yb .ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
+.fl-theme-yb .ui-datepicker-row-break{clear:both;width:100%;font-size:0;}
+.fl-theme-yb .ui-datepicker-rtl{direction:rtl;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-group{float:right;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-yb .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-yb .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
+.fl-theme-yb .ui-progressbar{height:2em;text-align:left;}
+.fl-theme-yb .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_0_aaaaaa_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644 (file)
index 0000000..5b5dab2
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_0_aaaaaa_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_0_ffff00_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_0_ffff00_40x100.png
new file mode 100644 (file)
index 0000000..47565fe
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_0_ffff00_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_100_ffff00_40x100.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_100_ffff00_40x100.png
new file mode 100644 (file)
index 0000000..47565fe
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-bg_flat_100_ffff00_40x100.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_000000_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_000000_256x240.png
new file mode 100644 (file)
index 0000000..7c211aa
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_000000_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_454545_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_454545_256x240.png
new file mode 100644 (file)
index 0000000..59bd45b
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_454545_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_888888_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_888888_256x240.png
new file mode 100644 (file)
index 0000000..6d02426
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_888888_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_cd0a0a_256x240.png b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_cd0a0a_256x240.png
new file mode 100644 (file)
index 0000000..2ab019b
Binary files /dev/null and b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/images/ui-icons_cd0a0a_256x240.png differ
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/yellowBlack.css b/docs/jscripts/infusion/lib/jquery/ui/css/fl-theme-yellowBlack/yellowBlack.css
new file mode 100644 (file)
index 0000000..8bd4a50
--- /dev/null
@@ -0,0 +1,352 @@
+.fl-theme-yellowBlack .ui-helper-hidden{display:none;}
+.fl-theme-yellowBlack .ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
+.fl-theme-yellowBlack .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
+.fl-theme-yellowBlack .ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+.fl-theme-yellowBlack .ui-helper-clearfix{display:inline-block;}
+/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
+.fl-theme-yellowBlack .ui-helper-clearfix{display:block;}
+/* end clearfix */ .fl-theme-yellowBlack .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
+.fl-theme-yellowBlack .ui-state-disabled{cursor:default!important;}
+.fl-theme-yellowBlack .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
+.fl-theme-yellowBlack .ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
+.fl-theme-yellowBlack .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}
+.fl-theme-yellowBlack .ui-widget .ui-widget{font-size:1em;}
+.fl-theme-yellowBlack .ui-widget input,.fl-theme-yellowBlack .ui-widget select,.fl-theme-yellowBlack .ui-widget textarea,.fl-theme-yellowBlack .ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}
+.fl-theme-yellowBlack .ui-widget-content{border:1px solid #000;background:#ff0 url(images/ui-bg_flat_100_ffff00_40x100.png) 50% 50% repeat-x;color:#000;}
+.fl-theme-yellowBlack .ui-widget-content a{color:#000;}
+.fl-theme-yellowBlack .ui-widget-header{border:1px solid #000;background:#ff0 url(images/ui-bg_flat_100_ffff00_40x100.png) 50% 50% repeat-x;color:#00000;font-weight:bold;}
+.fl-theme-yellowBlack .ui-widget-header a{color:#00000;}
+.fl-theme-yellowBlack .ui-state-default,.fl-theme-yellowBlack .ui-widget-content .ui-state-default,.fl-theme-yellowBlack .ui-widget-header .ui-state-default{border:1px solid #000;background:#ff0 url(images/ui-bg_flat_100_ffff00_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-yellowBlack .ui-state-default a,.fl-theme-yellowBlack .ui-state-default a:link,.fl-theme-yellowBlack .ui-state-default a:visited{color:#000;text-decoration:none;}
+.fl-theme-yellowBlack .ui-state-hover,.fl-theme-yellowBlack .ui-widget-content .ui-state-hover,.fl-theme-yellowBlack .ui-widget-header .ui-state-hover,.fl-theme-yellowBlack .ui-state-focus,.fl-theme-yellowBlack .ui-widget-content .ui-state-focus,.fl-theme-yellowBlack .ui-widget-header .ui-state-focus{border:1px solid #000;background:#ff0 url(images/ui-bg_flat_100_ffff00_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-yellowBlack .ui-state-hover a,.fl-theme-yellowBlack .ui-state-hover a:hover{color:#000;text-decoration:none;}
+.fl-theme-yellowBlack .ui-state-active,.fl-theme-yellowBlack .ui-widget-content .ui-state-active,.fl-theme-yellowBlack .ui-widget-header .ui-state-active{border:1px solid #000;background:#ff0 url(images/ui-bg_flat_50_ffff00_40x100.png) 50% 50% repeat-x;font-weight:normal;color:#000;}
+.fl-theme-yellowBlack .ui-state-active a,.fl-theme-yellowBlack .ui-state-active a:link,.fl-theme-yellowBlack .ui-state-active a:visited{color:#000;text-decoration:none;}
+.fl-theme-yellowBlack .ui-widget :active{outline:none;}
+.fl-theme-yellowBlack .ui-state-highlight,.fl-theme-yellowBlack .ui-widget-content .ui-state-highlight,.fl-theme-yellowBlack .ui-widget-header .ui-state-highlight{border:1px solid #000;background:#ff0 url(images/ui-bg_flat_100_ffff00_40x100.png) 50% 50% repeat-x;color:#000;}
+.fl-theme-yellowBlack .ui-state-highlight a,.fl-theme-yellowBlack .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#000;}
+.fl-theme-yellowBlack .ui-state-error,.fl-theme-yellowBlack .ui-widget-content .ui-state-error,.fl-theme-yellowBlack .ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#ff0 url(images/ui-bg_flat_100_ffff00_40x100.png) 50% 50% repeat-x;color:#000;}
+.fl-theme-yellowBlack .ui-state-error a,.fl-theme-yellowBlack .ui-widget-content .ui-state-error a,.fl-theme-yellowBlack .ui-widget-header .ui-state-error a{color:#000;}
+.fl-theme-yellowBlack .ui-state-error-text,.fl-theme-yellowBlack .ui-widget-content .ui-state-error-text,.fl-theme-yellowBlack .ui-widget-header .ui-state-error-text{color:#000;}
+.fl-theme-yellowBlack .ui-priority-primary,.fl-theme-yellowBlack .ui-widget-content .ui-priority-primary,.fl-theme-yellowBlack .ui-widget-header .ui-priority-primary{font-weight:bold;}
+.fl-theme-yellowBlack .ui-priority-secondary,.fl-theme-yellowBlack .ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.fl-theme-yellowBlack .ui-state-disabled,.fl-theme-yellowBlack .ui-widget-content .ui-state-disabled,.fl-theme-yellowBlack .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
+.fl-theme-yellowBlack .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yellowBlack .ui-widget-content .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yellowBlack .ui-widget-header .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yellowBlack .ui-state-default .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yellowBlack .ui-state-hover .ui-icon,.fl-theme-yellowBlack .ui-state-focus .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yellowBlack .ui-state-active .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yellowBlack .ui-state-highlight .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yellowBlack .ui-state-error .ui-icon,.fl-theme-yellowBlack .ui-state-error-text .ui-icon{background-image:url(images/ui-icons_000000_256x240.png);}
+.fl-theme-yellowBlack .ui-icon-carat-1-n{background-position:0 0;}
+.fl-theme-yellowBlack .ui-icon-carat-1-ne{background-position:-16px 0;}
+.fl-theme-yellowBlack .ui-icon-carat-1-e{background-position:-32px 0;}
+.fl-theme-yellowBlack .ui-icon-carat-1-se{background-position:-48px 0;}
+.fl-theme-yellowBlack .ui-icon-carat-1-s{background-position:-64px 0;}
+.fl-theme-yellowBlack .ui-icon-carat-1-sw{background-position:-80px 0;}
+.fl-theme-yellowBlack .ui-icon-carat-1-w{background-position:-96px 0;}
+.fl-theme-yellowBlack .ui-icon-carat-1-nw{background-position:-112px 0;}
+.fl-theme-yellowBlack .ui-icon-carat-2-n-s{background-position:-128px 0;}
+.fl-theme-yellowBlack .ui-icon-carat-2-e-w{background-position:-144px 0;}
+.fl-theme-yellowBlack .ui-icon-triangle-1-n{background-position:0 -16px;}
+.fl-theme-yellowBlack .ui-icon-triangle-1-ne{background-position:-16px -16px;}
+.fl-theme-yellowBlack .ui-icon-triangle-1-e{background-position:-32px -16px;}
+.fl-theme-yellowBlack .ui-icon-triangle-1-se{background-position:-48px -16px;}
+.fl-theme-yellowBlack .ui-icon-triangle-1-s{background-position:-64px -16px;}
+.fl-theme-yellowBlack .ui-icon-triangle-1-sw{background-position:-80px -16px;}
+.fl-theme-yellowBlack .ui-icon-triangle-1-w{background-position:-96px -16px;}
+.fl-theme-yellowBlack .ui-icon-triangle-1-nw{background-position:-112px -16px;}
+.fl-theme-yellowBlack .ui-icon-triangle-2-n-s{background-position:-128px -16px;}
+.fl-theme-yellowBlack .ui-icon-triangle-2-e-w{background-position:-144px -16px;}
+.fl-theme-yellowBlack .ui-icon-arrow-1-n{background-position:0 -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-1-ne{background-position:-16px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-1-e{background-position:-32px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-1-se{background-position:-48px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-1-s{background-position:-64px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-1-sw{background-position:-80px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-1-w{background-position:-96px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-1-nw{background-position:-112px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-2-n-s{background-position:-128px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-2-e-w{background-position:-160px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrowstop-1-n{background-position:-192px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrowstop-1-e{background-position:-208px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrowstop-1-s{background-position:-224px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrowstop-1-w{background-position:-240px -32px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-1-n{background-position:0 -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-1-e{background-position:-32px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-1-se{background-position:-48px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-1-s{background-position:-64px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-1-w{background-position:-96px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
+.fl-theme-yellowBlack .ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
+.fl-theme-yellowBlack .ui-icon-arrow-4{background-position:0 -80px;}
+.fl-theme-yellowBlack .ui-icon-arrow-4-diag{background-position:-16px -80px;}
+.fl-theme-yellowBlack .ui-icon-extlink{background-position:-32px -80px;}
+.fl-theme-yellowBlack .ui-icon-newwin{background-position:-48px -80px;}
+.fl-theme-yellowBlack .ui-icon-refresh{background-position:-64px -80px;}
+.fl-theme-yellowBlack .ui-icon-shuffle{background-position:-80px -80px;}
+.fl-theme-yellowBlack .ui-icon-transfer-e-w{background-position:-96px -80px;}
+.fl-theme-yellowBlack .ui-icon-transferthick-e-w{background-position:-112px -80px;}
+.fl-theme-yellowBlack .ui-icon-folder-collapsed{background-position:0 -96px;}
+.fl-theme-yellowBlack .ui-icon-folder-open{background-position:-16px -96px;}
+.fl-theme-yellowBlack .ui-icon-document{background-position:-32px -96px;}
+.fl-theme-yellowBlack .ui-icon-document-b{background-position:-48px -96px;}
+.fl-theme-yellowBlack .ui-icon-note{background-position:-64px -96px;}
+.fl-theme-yellowBlack .ui-icon-mail-closed{background-position:-80px -96px;}
+.fl-theme-yellowBlack .ui-icon-mail-open{background-position:-96px -96px;}
+.fl-theme-yellowBlack .ui-icon-suitcase{background-position:-112px -96px;}
+.fl-theme-yellowBlack .ui-icon-comment{background-position:-128px -96px;}
+.fl-theme-yellowBlack .ui-icon-person{background-position:-144px -96px;}
+.fl-theme-yellowBlack .ui-icon-print{background-position:-160px -96px;}
+.fl-theme-yellowBlack .ui-icon-trash{background-position:-176px -96px;}
+.fl-theme-yellowBlack .ui-icon-locked{background-position:-192px -96px;}
+.fl-theme-yellowBlack .ui-icon-unlocked{background-position:-208px -96px;}
+.fl-theme-yellowBlack .ui-icon-bookmark{background-position:-224px -96px;}
+.fl-theme-yellowBlack .ui-icon-tag{background-position:-240px -96px;}
+.fl-theme-yellowBlack .ui-icon-home{background-position:0 -112px;}
+.fl-theme-yellowBlack .ui-icon-flag{background-position:-16px -112px;}
+.fl-theme-yellowBlack .ui-icon-calendar{background-position:-32px -112px;}
+.fl-theme-yellowBlack .ui-icon-cart{background-position:-48px -112px;}
+.fl-theme-yellowBlack .ui-icon-pencil{background-position:-64px -112px;}
+.fl-theme-yellowBlack .ui-icon-clock{background-position:-80px -112px;}
+.fl-theme-yellowBlack .ui-icon-disk{background-position:-96px -112px;}
+.fl-theme-yellowBlack .ui-icon-calculator{background-position:-112px -112px;}
+.fl-theme-yellowBlack .ui-icon-zoomin{background-position:-128px -112px;}
+.fl-theme-yellowBlack .ui-icon-zoomout{background-position:-144px -112px;}
+.fl-theme-yellowBlack .ui-icon-search{background-position:-160px -112px;}
+.fl-theme-yellowBlack .ui-icon-wrench{background-position:-176px -112px;}
+.fl-theme-yellowBlack .ui-icon-gear{background-position:-192px -112px;}
+.fl-theme-yellowBlack .ui-icon-heart{background-position:-208px -112px;}
+.fl-theme-yellowBlack .ui-icon-star{background-position:-224px -112px;}
+.fl-theme-yellowBlack .ui-icon-link{background-position:-240px -112px;}
+.fl-theme-yellowBlack .ui-icon-cancel{background-position:0 -128px;}
+.fl-theme-yellowBlack .ui-icon-plus{background-position:-16px -128px;}
+.fl-theme-yellowBlack .ui-icon-plusthick{background-position:-32px -128px;}
+.fl-theme-yellowBlack .ui-icon-minus{background-position:-48px -128px;}
+.fl-theme-yellowBlack .ui-icon-minusthick{background-position:-64px -128px;}
+.fl-theme-yellowBlack .ui-icon-close{background-position:-80px -128px;}
+.fl-theme-yellowBlack .ui-icon-closethick{background-position:-96px -128px;}
+.fl-theme-yellowBlack .ui-icon-key{background-position:-112px -128px;}
+.fl-theme-yellowBlack .ui-icon-lightbulb{background-position:-128px -128px;}
+.fl-theme-yellowBlack .ui-icon-scissors{background-position:-144px -128px;}
+.fl-theme-yellowBlack .ui-icon-clipboard{background-position:-160px -128px;}
+.fl-theme-yellowBlack .ui-icon-copy{background-position:-176px -128px;}
+.fl-theme-yellowBlack .ui-icon-contact{background-position:-192px -128px;}
+.fl-theme-yellowBlack .ui-icon-image{background-position:-208px -128px;}
+.fl-theme-yellowBlack .ui-icon-video{background-position:-224px -128px;}
+.fl-theme-yellowBlack .ui-icon-script{background-position:-240px -128px;}
+.fl-theme-yellowBlack .ui-icon-alert{background-position:0 -144px;}
+.fl-theme-yellowBlack .ui-icon-info{background-position:-16px -144px;}
+.fl-theme-yellowBlack .ui-icon-notice{background-position:-32px -144px;}
+.fl-theme-yellowBlack .ui-icon-help{background-position:-48px -144px;}
+.fl-theme-yellowBlack .ui-icon-check{background-position:-64px -144px;}
+.fl-theme-yellowBlack .ui-icon-bullet{background-position:-80px -144px;}
+.fl-theme-yellowBlack .ui-icon-radio-off{background-position:-96px -144px;}
+.fl-theme-yellowBlack .ui-icon-radio-on{background-position:-112px -144px;}
+.fl-theme-yellowBlack .ui-icon-pin-w{background-position:-128px -144px;}
+.fl-theme-yellowBlack .ui-icon-pin-s{background-position:-144px -144px;}
+.fl-theme-yellowBlack .ui-icon-play{background-position:0 -160px;}
+.fl-theme-yellowBlack .ui-icon-pause{background-position:-16px -160px;}
+.fl-theme-yellowBlack .ui-icon-seek-next{background-position:-32px -160px;}
+.fl-theme-yellowBlack .ui-icon-seek-prev{background-position:-48px -160px;}
+.fl-theme-yellowBlack .ui-icon-seek-end{background-position:-64px -160px;}
+.fl-theme-yellowBlack .ui-icon-seek-start{background-position:-80px -160px;}
+.fl-theme-yellowBlack .ui-icon-seek-first{background-position:-80px -160px;}
+.fl-theme-yellowBlack .ui-icon-stop{background-position:-96px -160px;}
+.fl-theme-yellowBlack .ui-icon-eject{background-position:-112px -160px;}
+.fl-theme-yellowBlack .ui-icon-volume-off{background-position:-128px -160px;}
+.fl-theme-yellowBlack .ui-icon-volume-on{background-position:-144px -160px;}
+.fl-theme-yellowBlack .ui-icon-power{background-position:0 -176px;}
+.fl-theme-yellowBlack .ui-icon-signal-diag{background-position:-16px -176px;}
+.fl-theme-yellowBlack .ui-icon-signal{background-position:-32px -176px;}
+.fl-theme-yellowBlack .ui-icon-battery-0{background-position:-48px -176px;}
+.fl-theme-yellowBlack .ui-icon-battery-1{background-position:-64px -176px;}
+.fl-theme-yellowBlack .ui-icon-battery-2{background-position:-80px -176px;}
+.fl-theme-yellowBlack .ui-icon-battery-3{background-position:-96px -176px;}
+.fl-theme-yellowBlack .ui-icon-circle-plus{background-position:0 -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-minus{background-position:-16px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-close{background-position:-32px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-triangle-e{background-position:-48px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-triangle-s{background-position:-64px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-triangle-w{background-position:-80px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-triangle-n{background-position:-96px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-arrow-e{background-position:-112px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-arrow-s{background-position:-128px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-arrow-w{background-position:-144px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-arrow-n{background-position:-160px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-zoomin{background-position:-176px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-zoomout{background-position:-192px -192px;}
+.fl-theme-yellowBlack .ui-icon-circle-check{background-position:-208px -192px;}
+.fl-theme-yellowBlack .ui-icon-circlesmall-plus{background-position:0 -208px;}
+.fl-theme-yellowBlack .ui-icon-circlesmall-minus{background-position:-16px -208px;}
+.fl-theme-yellowBlack .ui-icon-circlesmall-close{background-position:-32px -208px;}
+.fl-theme-yellowBlack .ui-icon-squaresmall-plus{background-position:-48px -208px;}
+.fl-theme-yellowBlack .ui-icon-squaresmall-minus{background-position:-64px -208px;}
+.fl-theme-yellowBlack .ui-icon-squaresmall-close{background-position:-80px -208px;}
+.fl-theme-yellowBlack .ui-icon-grip-dotted-vertical{background-position:0 -224px;}
+.fl-theme-yellowBlack .ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
+.fl-theme-yellowBlack .ui-icon-grip-solid-vertical{background-position:-32px -224px;}
+.fl-theme-yellowBlack .ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
+.fl-theme-yellowBlack .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
+.fl-theme-yellowBlack .ui-icon-grip-diagonal-se{background-position:-80px -224px;}
+.fl-theme-yellowBlack .ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;}
+.fl-theme-yellowBlack .ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.fl-theme-yellowBlack .ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.fl-theme-yellowBlack .ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.fl-theme-yellowBlack .ui-corner-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.fl-theme-yellowBlack .ui-corner-bottom{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.fl-theme-yellowBlack .ui-corner-right{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.fl-theme-yellowBlack .ui-corner-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.fl-theme-yellowBlack .ui-corner-all{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;}
+.fl-theme-yellowBlack .ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);}
+.fl-theme-yellowBlack .ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;}
+.fl-theme-yellowBlack .ui-resizable{position:relative;}
+.fl-theme-yellowBlack .ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;background-image:url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=);}
+.fl-theme-yellowBlack .ui-resizable-disabled .ui-resizable-handle,.fl-theme-yellowBlack .ui-resizable-autohide .ui-resizable-handle{display:none;}
+.fl-theme-yellowBlack .ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.fl-theme-yellowBlack .ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.fl-theme-yellowBlack .ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.fl-theme-yellowBlack .ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.fl-theme-yellowBlack .ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.fl-theme-yellowBlack .ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.fl-theme-yellowBlack .ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.fl-theme-yellowBlack .ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.fl-theme-yellowBlack .ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.fl-theme-yellowBlack .ui-accordion{width:100%;}
+.fl-theme-yellowBlack .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}
+.fl-theme-yellowBlack .ui-accordion .ui-accordion-li-fix{display:inline;}
+.fl-theme-yellowBlack .ui-accordion .ui-accordion-header-active{border-bottom:0!important;}
+.fl-theme-yellowBlack .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}
+.fl-theme-yellowBlack .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}
+.fl-theme-yellowBlack .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
+.fl-theme-yellowBlack .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}
+.fl-theme-yellowBlack .ui-accordion .ui-accordion-content-active{display:block;}
+.fl-theme-yellowBlack .ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.fl-theme-yellowBlack .ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}
+.fl-theme-yellowBlack .ui-menu .ui-menu{margin-top:-3px;}
+.fl-theme-yellowBlack .ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}
+.fl-theme-yellowBlack .ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}
+.fl-theme-yellowBlack .ui-menu .ui-menu-item a.ui-state-hover,.fl-theme-yellowBlack .ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
+.fl-theme-yellowBlack .ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}
+.fl-theme-yellowBlack .ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.fl-theme-yellowBlack .ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.fl-theme-yellowBlack .ui-button .ui-button-text{display:block;line-height:1.4;}
+.fl-theme-yellowBlack .ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.fl-theme-yellowBlack .ui-button-icon-only .ui-button-text,.fl-theme-yellowBlack .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.fl-theme-yellowBlack .ui-button-text-icon-primary .ui-button-text,.fl-theme-yellowBlack .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.fl-theme-yellowBlack .ui-button-text-icon-secondary .ui-button-text,.fl-theme-yellowBlack .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.fl-theme-yellowBlack .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.fl-theme-yellowBlack .ui-button-icon-only .ui-icon,.fl-theme-yellowBlack .ui-button-text-icon-primary .ui-icon,.fl-theme-yellowBlack .ui-button-text-icon-secondary .ui-icon,.fl-theme-yellowBlack .ui-button-text-icons .ui-icon,.fl-theme-yellowBlack .ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.fl-theme-yellowBlack .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.fl-theme-yellowBlack .ui-button-text-icon-primary .ui-button-icon-primary,.fl-theme-yellowBlack .ui-button-text-icons .ui-button-icon-primary,.fl-theme-yellowBlack .ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.fl-theme-yellowBlack .ui-button-text-icon-secondary .ui-button-icon-secondary,.fl-theme-yellowBlack .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-yellowBlack .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-yellowBlack .ui-button-text-icons .ui-button-icon-secondary,.fl-theme-yellowBlack .ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.fl-theme-yellowBlack .ui-buttonset{margin-right:7px;}
+.fl-theme-yellowBlack .ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.fl-theme-yellowBlack .ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}
+.fl-theme-yellowBlack .ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
+.fl-theme-yellowBlack .ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}
+.fl-theme-yellowBlack .ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}
+.fl-theme-yellowBlack .ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.fl-theme-yellowBlack .ui-dialog .ui-dialog-titlebar-close:hover,.fl-theme-yellowBlack .ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.fl-theme-yellowBlack .ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}
+.fl-theme-yellowBlack .ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}
+.fl-theme-yellowBlack .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.fl-theme-yellowBlack .ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
+.fl-theme-yellowBlack .ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}
+.fl-theme-yellowBlack .ui-draggable .ui-dialog-titlebar{cursor:move;}
+.fl-theme-yellowBlack .ui-slider{position:relative;text-align:left;}
+.fl-theme-yellowBlack .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
+.fl-theme-yellowBlack .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.fl-theme-yellowBlack .ui-slider-horizontal{height:.8em;}
+.fl-theme-yellowBlack .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}
+.fl-theme-yellowBlack .ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.fl-theme-yellowBlack .ui-slider-horizontal .ui-slider-range-min{left:0;}
+.fl-theme-yellowBlack .ui-slider-horizontal .ui-slider-range-max{right:0;}
+.fl-theme-yellowBlack .ui-slider-vertical{width:.8em;height:100px;}
+.fl-theme-yellowBlack .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}
+.fl-theme-yellowBlack .ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.fl-theme-yellowBlack .ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.fl-theme-yellowBlack .ui-slider-vertical .ui-slider-range-max{top:0;}
+.fl-theme-yellowBlack .ui-tabs{position:relative;padding:.2em;zoom:1;}
+.fl-theme-yellowBlack .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
+.fl-theme-yellowBlack .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}
+.fl-theme-yellowBlack .ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
+.fl-theme-yellowBlack .ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}
+.fl-theme-yellowBlack .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.fl-theme-yellowBlack .ui-tabs .ui-tabs-nav li.ui-state-disabled a,.fl-theme-yellowBlack .ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.fl-theme-yellowBlack .ui-tabs .ui-tabs-nav li a,.fl-theme-yellowBlack .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.fl-theme-yellowBlack .ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.fl-theme-yellowBlack .ui-tabs .ui-tabs-hide{display:none!important;}
+.fl-theme-yellowBlack .ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-prev,.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-prev-hover,.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-next-hover{top:1px;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-prev{left:2px;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-next{right:2px;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-prev-hover{left:1px;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-next-hover{right:1px;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-prev span,.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
+.fl-theme-yellowBlack .ui-datepicker select.ui-datepicker-month-year{width:100%;}
+.fl-theme-yellowBlack .ui-datepicker select.ui-datepicker-month,.fl-theme-yellowBlack .ui-datepicker select.ui-datepicker-year{width:49%;}
+.fl-theme-yellowBlack .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
+.fl-theme-yellowBlack .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
+.fl-theme-yellowBlack .ui-datepicker td{border:0;padding:1px;}
+.fl-theme-yellowBlack .ui-datepicker td span,.fl-theme-yellowBlack .ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
+.fl-theme-yellowBlack .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
+.fl-theme-yellowBlack .ui-datepicker.ui-datepicker-multi{width:auto;}
+.fl-theme-yellowBlack .ui-datepicker-multi .ui-datepicker-group{float:left;}
+.fl-theme-yellowBlack .ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}
+.fl-theme-yellowBlack .ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
+.fl-theme-yellowBlack .ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}
+.fl-theme-yellowBlack .ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
+.fl-theme-yellowBlack .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}
+.fl-theme-yellowBlack .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
+.fl-theme-yellowBlack .ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
+.fl-theme-yellowBlack .ui-datepicker-row-break{clear:both;width:100%;}
+.fl-theme-yellowBlack .ui-datepicker-rtl{direction:rtl;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-group{float:right;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-yellowBlack .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.fl-theme-yellowBlack .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
+.fl-theme-yellowBlack .ui-progressbar{height:2em;text-align:left;}
+.fl-theme-yellowBlack .ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/css/jquery.ui.theme.css b/docs/jscripts/infusion/lib/jquery/ui/css/jquery.ui.theme.css
new file mode 100644 (file)
index 0000000..d8830d5
--- /dev/null
@@ -0,0 +1,238 @@
+.ui-helper-hidden{display:none;}
+.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
+.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
+.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+.ui-helper-clearfix{display:inline-block;}
+/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}
+.ui-helper-clearfix{display:block;}
+/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}
+.ui-state-disabled{cursor:default!important;}
+.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
+.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
+.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em;}
+.ui-widget .ui-widget{font-size:1em;}
+.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em;}
+.ui-widget-content{border:1px solid #ddd;background:#eee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;color:#333;}
+.ui-widget-content a{color:#333;}
+.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold;}
+.ui-widget-header a{color:#fff;}
+.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#1c94c4;}
+.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none;}
+.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#c77405;}
+.ui-state-hover a,.ui-state-hover a:hover{color:#c77405;text-decoration:none;}
+.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#eb8f00;}
+.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none;}
+.ui-widget :active{outline:none;}
+.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;color:#363636;}
+.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}
+.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;color:#fff;}
+.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff;}
+.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff;}
+.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}
+.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}
+.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}
+.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.ui-state-default .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}
+.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}
+.ui-state-active .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}
+.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_228ef1_256x240.png);}
+.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffd27a_256x240.png);}
+.ui-icon-carat-1-n{background-position:0 0;}
+.ui-icon-carat-1-ne{background-position:-16px 0;}
+.ui-icon-carat-1-e{background-position:-32px 0;}
+.ui-icon-carat-1-se{background-position:-48px 0;}
+.ui-icon-carat-1-s{background-position:-64px 0;}
+.ui-icon-carat-1-sw{background-position:-80px 0;}
+.ui-icon-carat-1-w{background-position:-96px 0;}
+.ui-icon-carat-1-nw{background-position:-112px 0;}
+.ui-icon-carat-2-n-s{background-position:-128px 0;}
+.ui-icon-carat-2-e-w{background-position:-144px 0;}
+.ui-icon-triangle-1-n{background-position:0 -16px;}
+.ui-icon-triangle-1-ne{background-position:-16px -16px;}
+.ui-icon-triangle-1-e{background-position:-32px -16px;}
+.ui-icon-triangle-1-se{background-position:-48px -16px;}
+.ui-icon-triangle-1-s{background-position:-64px -16px;}
+.ui-icon-triangle-1-sw{background-position:-80px -16px;}
+.ui-icon-triangle-1-w{background-position:-96px -16px;}
+.ui-icon-triangle-1-nw{background-position:-112px -16px;}
+.ui-icon-triangle-2-n-s{background-position:-128px -16px;}
+.ui-icon-triangle-2-e-w{background-position:-144px -16px;}
+.ui-icon-arrow-1-n{background-position:0 -32px;}
+.ui-icon-arrow-1-ne{background-position:-16px -32px;}
+.ui-icon-arrow-1-e{background-position:-32px -32px;}
+.ui-icon-arrow-1-se{background-position:-48px -32px;}
+.ui-icon-arrow-1-s{background-position:-64px -32px;}
+.ui-icon-arrow-1-sw{background-position:-80px -32px;}
+.ui-icon-arrow-1-w{background-position:-96px -32px;}
+.ui-icon-arrow-1-nw{background-position:-112px -32px;}
+.ui-icon-arrow-2-n-s{background-position:-128px -32px;}
+.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
+.ui-icon-arrow-2-e-w{background-position:-160px -32px;}
+.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
+.ui-icon-arrowstop-1-n{background-position:-192px -32px;}
+.ui-icon-arrowstop-1-e{background-position:-208px -32px;}
+.ui-icon-arrowstop-1-s{background-position:-224px -32px;}
+.ui-icon-arrowstop-1-w{background-position:-240px -32px;}
+.ui-icon-arrowthick-1-n{background-position:0 -48px;}
+.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
+.ui-icon-arrowthick-1-e{background-position:-32px -48px;}
+.ui-icon-arrowthick-1-se{background-position:-48px -48px;}
+.ui-icon-arrowthick-1-s{background-position:-64px -48px;}
+.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
+.ui-icon-arrowthick-1-w{background-position:-96px -48px;}
+.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
+.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
+.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
+.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
+.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
+.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
+.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
+.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
+.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
+.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
+.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
+.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
+.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
+.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
+.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
+.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
+.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
+.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
+.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
+.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
+.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
+.ui-icon-arrow-4{background-position:0 -80px;}
+.ui-icon-arrow-4-diag{background-position:-16px -80px;}
+.ui-icon-extlink{background-position:-32px -80px;}
+.ui-icon-newwin{background-position:-48px -80px;}
+.ui-icon-refresh{background-position:-64px -80px;}
+.ui-icon-shuffle{background-position:-80px -80px;}
+.ui-icon-transfer-e-w{background-position:-96px -80px;}
+.ui-icon-transferthick-e-w{background-position:-112px -80px;}
+.ui-icon-folder-collapsed{background-position:0 -96px;}
+.ui-icon-folder-open{background-position:-16px -96px;}
+.ui-icon-document{background-position:-32px -96px;}
+.ui-icon-document-b{background-position:-48px -96px;}
+.ui-icon-note{background-position:-64px -96px;}
+.ui-icon-mail-closed{background-position:-80px -96px;}
+.ui-icon-mail-open{background-position:-96px -96px;}
+.ui-icon-suitcase{background-position:-112px -96px;}
+.ui-icon-comment{background-position:-128px -96px;}
+.ui-icon-person{background-position:-144px -96px;}
+.ui-icon-print{background-position:-160px -96px;}
+.ui-icon-trash{background-position:-176px -96px;}
+.ui-icon-locked{background-position:-192px -96px;}
+.ui-icon-unlocked{background-position:-208px -96px;}
+.ui-icon-bookmark{background-position:-224px -96px;}
+.ui-icon-tag{background-position:-240px -96px;}
+.ui-icon-home{background-position:0 -112px;}
+.ui-icon-flag{background-position:-16px -112px;}
+.ui-icon-calendar{background-position:-32px -112px;}
+.ui-icon-cart{background-position:-48px -112px;}
+.ui-icon-pencil{background-position:-64px -112px;}
+.ui-icon-clock{background-position:-80px -112px;}
+.ui-icon-disk{background-position:-96px -112px;}
+.ui-icon-calculator{background-position:-112px -112px;}
+.ui-icon-zoomin{background-position:-128px -112px;}
+.ui-icon-zoomout{background-position:-144px -112px;}
+.ui-icon-search{background-position:-160px -112px;}
+.ui-icon-wrench{background-position:-176px -112px;}
+.ui-icon-gear{background-position:-192px -112px;}
+.ui-icon-heart{background-position:-208px -112px;}
+.ui-icon-star{background-position:-224px -112px;}
+.ui-icon-link{background-position:-240px -112px;}
+.ui-icon-cancel{background-position:0 -128px;}
+.ui-icon-plus{background-position:-16px -128px;}
+.ui-icon-plusthick{background-position:-32px -128px;}
+.ui-icon-minus{background-position:-48px -128px;}
+.ui-icon-minusthick{background-position:-64px -128px;}
+.ui-icon-close{background-position:-80px -128px;}
+.ui-icon-closethick{background-position:-96px -128px;}
+.ui-icon-key{background-position:-112px -128px;}
+.ui-icon-lightbulb{background-position:-128px -128px;}
+.ui-icon-scissors{background-position:-144px -128px;}
+.ui-icon-clipboard{background-position:-160px -128px;}
+.ui-icon-copy{background-position:-176px -128px;}
+.ui-icon-contact{background-position:-192px -128px;}
+.ui-icon-image{background-position:-208px -128px;}
+.ui-icon-video{background-position:-224px -128px;}
+.ui-icon-script{background-position:-240px -128px;}
+.ui-icon-alert{background-position:0 -144px;}
+.ui-icon-info{background-position:-16px -144px;}
+.ui-icon-notice{background-position:-32px -144px;}
+.ui-icon-help{background-position:-48px -144px;}
+.ui-icon-check{background-position:-64px -144px;}
+.ui-icon-bullet{background-position:-80px -144px;}
+.ui-icon-radio-off{background-position:-96px -144px;}
+.ui-icon-radio-on{background-position:-112px -144px;}
+.ui-icon-pin-w{background-position:-128px -144px;}
+.ui-icon-pin-s{background-position:-144px -144px;}
+.ui-icon-play{background-position:0 -160px;}
+.ui-icon-pause{background-position:-16px -160px;}
+.ui-icon-seek-next{background-position:-32px -160px;}
+.ui-icon-seek-prev{background-position:-48px -160px;}
+.ui-icon-seek-end{background-position:-64px -160px;}
+.ui-icon-seek-start{background-position:-80px -160px;}
+.ui-icon-seek-first{background-position:-80px -160px;}
+.ui-icon-stop{background-position:-96px -160px;}
+.ui-icon-eject{background-position:-112px -160px;}
+.ui-icon-volume-off{background-position:-128px -160px;}
+.ui-icon-volume-on{background-position:-144px -160px;}
+.ui-icon-power{background-position:0 -176px;}
+.ui-icon-signal-diag{background-position:-16px -176px;}
+.ui-icon-signal{background-position:-32px -176px;}
+.ui-icon-battery-0{background-position:-48px -176px;}
+.ui-icon-battery-1{background-position:-64px -176px;}
+.ui-icon-battery-2{background-position:-80px -176px;}
+.ui-icon-battery-3{background-position:-96px -176px;}
+.ui-icon-circle-plus{background-position:0 -192px;}
+.ui-icon-circle-minus{background-position:-16px -192px;}
+.ui-icon-circle-close{background-position:-32px -192px;}
+.ui-icon-circle-triangle-e{background-position:-48px -192px;}
+.ui-icon-circle-triangle-s{background-position:-64px -192px;}
+.ui-icon-circle-triangle-w{background-position:-80px -192px;}
+.ui-icon-circle-triangle-n{background-position:-96px -192px;}
+.ui-icon-circle-arrow-e{background-position:-112px -192px;}
+.ui-icon-circle-arrow-s{background-position:-128px -192px;}
+.ui-icon-circle-arrow-w{background-position:-144px -192px;}
+.ui-icon-circle-arrow-n{background-position:-160px -192px;}
+.ui-icon-circle-zoomin{background-position:-176px -192px;}
+.ui-icon-circle-zoomout{background-position:-192px -192px;}
+.ui-icon-circle-check{background-position:-208px -192px;}
+.ui-icon-circlesmall-plus{background-position:0 -208px;}
+.ui-icon-circlesmall-minus{background-position:-16px -208px;}
+.ui-icon-circlesmall-close{background-position:-32px -208px;}
+.ui-icon-squaresmall-plus{background-position:-48px -208px;}
+.ui-icon-squaresmall-minus{background-position:-64px -208px;}
+.ui-icon-squaresmall-close{background-position:-80px -208px;}
+.ui-icon-grip-dotted-vertical{background-position:0 -224px;}
+.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
+.ui-icon-grip-solid-vertical{background-position:-32px -224px;}
+.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
+.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
+.ui-icon-grip-diagonal-se{background-position:-80px -224px;}
+.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;}
+.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.ui-corner-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;}
+.ui-corner-bottom{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.ui-corner-right{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}
+.ui-corner-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}
+.ui-corner-all{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;}
+.ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.50;filter:Alpha(Opacity=50);}
+.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;opacity:.20;filter:Alpha(Opacity=20);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}
+.ui-resizable{position:relative;}
+.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;background-image:url(data:);}
+.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}
+.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.core.js b/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.core.js
new file mode 100644 (file)
index 0000000..f5894b0
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+ * jQuery UI 1.8.12
+ *
+ * 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($,undefined){$.ui=$.ui||{};if($.ui.version){return }$.extend($.ui,{version:"1.8.12",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}});$.fn.extend({_focus:$.fn.focus,focus:function(delay,fn){return typeof delay==="number"?this.each(function(){var elem=this;setTimeout(function(){$(elem).focus();if(fn){fn.call(elem)}},delay)}):this._focus.apply(this,arguments)},scrollParent:function(){var scrollParent;if(($.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){scrollParent=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test($.curCSS(this,"position",1))&&(/(auto|scroll)/).test($.curCSS(this,"overflow",1)+$.curCSS(this,"overflow-y",1)+$.curCSS(this,"overflow-x",1))}).eq(0)}else{scrollParent=this.parents().filter(function(){return(/(auto|scroll)/).test($.curCSS(this,"overflow",1)+$.curCSS(this,"overflow-y",1)+$.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!scrollParent.length?$(document):scrollParent},zIndex:function(zIndex){if(zIndex!==undefined){return this.css("zIndex",zIndex)}if(this.length){var elem=$(this[0]),position,value;while(elem.length&&elem[0]!==document){position=elem.css("position");if(position==="absolute"||position==="relative"||position==="fixed"){value=parseInt(elem.css("zIndex"),10);if(!isNaN(value)&&value!==0){return value}}elem=elem.parent()}}return 0},disableSelection:function(){return this.bind(($.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(event){event.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});$.each(["Width","Height"],function(i,name){var side=name==="Width"?["Left","Right"]:["Top","Bottom"],type=name.toLowerCase(),orig={innerWidth:$.fn.innerWidth,innerHeight:$.fn.innerHeight,outerWidth:$.fn.outerWidth,outerHeight:$.fn.outerHeight};function reduce(elem,size,border,margin){$.each(side,function(){size-=parseFloat($.curCSS(elem,"padding"+this,true))||0;if(border){size-=parseFloat($.curCSS(elem,"border"+this+"Width",true))||0}if(margin){size-=parseFloat($.curCSS(elem,"margin"+this,true))||0}});return size}$.fn["inner"+name]=function(size){if(size===undefined){return orig["inner"+name].call(this)}return this.each(function(){$(this).css(type,reduce(this,size)+"px")})};$.fn["outer"+name]=function(size,margin){if(typeof size!=="number"){return orig["outer"+name].call(this,size)}return this.each(function(){$(this).css(type,reduce(this,size,true,margin)+"px")})}});function visible(element){return !$(element).parents().andSelf().filter(function(){return $.curCSS(this,"visibility")==="hidden"||$.expr.filters.hidden(this)}).length}$.extend($.expr[":"],{data:function(elem,i,match){return !!$.data(elem,match[3])},focusable:function(element){var nodeName=element.nodeName.toLowerCase(),tabIndex=$.attr(element,"tabindex");if("area"===nodeName){var map=element.parentNode,mapName=map.name,img;if(!element.href||!mapName||map.nodeName.toLowerCase()!=="map"){return false}img=$("img[usemap=#"+mapName+"]")[0];return !!img&&visible(img)}return(/input|select|textarea|button|object/.test(nodeName)?!element.disabled:"a"==nodeName?element.href||!isNaN(tabIndex):!isNaN(tabIndex))&&visible(element)},tabbable:function(element){var tabIndex=$.attr(element,"tabindex");return(isNaN(tabIndex)||tabIndex>=0)&&$(element).is(":focusable")}});$(function(){var body=document.body,div=body.appendChild(div=document.createElement("div"));$.extend(div.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});$.support.minHeight=div.offsetHeight===100;$.support.selectstart="onselectstart" in div;body.removeChild(div).style.display="none"});$.extend($.ui,{plugin:{add:function(module,option,set){var proto=$.ui[module].prototype;for(var i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]])}},call:function(instance,name,args){var set=instance.plugins[name];if(!set||!instance.element[0].parentNode){return }for(var i=0;i<set.length;i++){if(instance.options[set[i][0]]){set[i][1].apply(instance.element,args)}}}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(el,a){if($(el).css("overflow")==="hidden"){return false}var scroll=(a&&a==="left")?"scrollLeft":"scrollTop",has=false;if(el[scroll]>0){return true}el[scroll]=1;has=(el[scroll]>0);el[scroll]=0;return has},isOverAxis:function(x,reference,size){return(x>reference)&&(x<(reference+size))},isOver:function(y,x,top,left,height,width){return $.ui.isOverAxis(y,top,height)&&$.ui.isOverAxis(x,left,width)}})})(jQuery);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.dialog.js b/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.dialog.js
new file mode 100644 (file)
index 0000000..3b8cc73
--- /dev/null
@@ -0,0 +1 @@
+(function($,undefined){var uiDialogClasses="ui-dialog ui-widget ui-widget-content ui-corner-all ",sizeRelatedOptions={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},resizableRelatedOptions={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},attrFn=$.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};$.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(pos){var topOffset=$(this).css(pos).offset().top;if(topOffset<0){$(this).css("top",pos.top-topOffset)}}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string"){this.originalTitle=""}this.options.title=this.options.title||this.originalTitle;var self=this,options=self.options,title=options.title||"&#160;",titleId=$.ui.dialog.getTitleId(self.element),uiDialog=(self.uiDialog=$("<div></div>")).appendTo(document.body).hide().addClass(uiDialogClasses+options.dialogClass).css({zIndex:options.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(event){if(options.closeOnEscape&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){self.close(event);event.preventDefault()}}).attr({role:"dialog","aria-labelledby":titleId}).mousedown(function(event){self.moveToTop(false,event)}),uiDialogContent=self.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(uiDialog),uiDialogTitlebar=(self.uiDialogTitlebar=$("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(uiDialog),uiDialogTitlebarClose=$('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){uiDialogTitlebarClose.addClass("ui-state-hover")},function(){uiDialogTitlebarClose.removeClass("ui-state-hover")}).focus(function(){uiDialogTitlebarClose.addClass("ui-state-focus")}).blur(function(){uiDialogTitlebarClose.removeClass("ui-state-focus")}).click(function(event){self.close(event);return false}).appendTo(uiDialogTitlebar),uiDialogTitlebarCloseText=(self.uiDialogTitlebarCloseText=$("<span></span>")).addClass("ui-icon ui-icon-closethick").text(options.closeText).appendTo(uiDialogTitlebarClose),uiDialogTitle=$("<span></span>").addClass("ui-dialog-title").attr("id",titleId).html(title).prependTo(uiDialogTitlebar);if($.isFunction(options.beforeclose)&&!$.isFunction(options.beforeClose)){options.beforeClose=options.beforeclose}uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();if(options.draggable&&$.fn.draggable){self._makeDraggable()}if(options.resizable&&$.fn.resizable){self._makeResizable()}self._createButtons(options.buttons);self._isOpen=false;if($.fn.bgiframe){uiDialog.bgiframe()}},_init:function(){if(this.options.autoOpen){this.open()}},destroy:function(){var self=this;if(self.overlay){self.overlay.destroy()}self.uiDialog.hide();self.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");self.uiDialog.remove();if(self.originalTitle){self.element.attr("title",self.originalTitle)}return self},widget:function(){return this.uiDialog},close:function(event){var self=this,maxZ,thisZ;if(false===self._trigger("beforeClose",event)){return }if(self.overlay){self.overlay.destroy()}self.uiDialog.unbind("keypress.ui-dialog");self._isOpen=false;if(self.options.hide){self.uiDialog.hide(self.options.hide,function(){self._trigger("close",event)})}else{self.uiDialog.hide();self._trigger("close",event)}$.ui.dialog.overlay.resize();if(self.options.modal){maxZ=0;$(".ui-dialog").each(function(){if(this!==self.uiDialog[0]){thisZ=$(this).css("z-index");if(!isNaN(thisZ)){maxZ=Math.max(maxZ,thisZ)}}});$.ui.dialog.maxZ=maxZ}return self},isOpen:function(){return this._isOpen},moveToTop:function(force,event){var self=this,options=self.options,saveScroll;if((options.modal&&!force)||(!options.stack&&!options.modal)){return self._trigger("focus",event)}if(options.zIndex>$.ui.dialog.maxZ){$.ui.dialog.maxZ=options.zIndex}if(self.overlay){$.ui.dialog.maxZ+=1;self.overlay.$el.css("z-index",$.ui.dialog.overlay.maxZ=$.ui.dialog.maxZ)}saveScroll={scrollTop:self.element.attr("scrollTop"),scrollLeft:self.element.attr("scrollLeft")};$.ui.dialog.maxZ+=1;self.uiDialog.css("z-index",$.ui.dialog.maxZ);self.element.attr(saveScroll);self._trigger("focus",event);return self},open:function(){if(this._isOpen){return }var self=this,options=self.options,uiDialog=self.uiDialog;self.overlay=options.modal?new $.ui.dialog.overlay(self):null;self._size();self._position(options.position);uiDialog.show(options.show);self.moveToTop(true);if(options.modal){uiDialog.bind("keypress.ui-dialog",function(event){if(event.keyCode!==$.ui.keyCode.TAB){return }var tabbables=$(":tabbable",this),first=tabbables.filter(":first"),last=tabbables.filter(":last");if(event.target===last[0]&&!event.shiftKey){first.focus(1);return false}else{if(event.target===first[0]&&event.shiftKey){last.focus(1);return false}}})}$(self.element.find(":tabbable").get().concat(uiDialog.find(".ui-dialog-buttonpane :tabbable").get().concat(uiDialog.get()))).eq(0).focus();self._isOpen=true;self._trigger("open");return self},_createButtons:function(buttons){var self=this,hasButtons=false,uiDialogButtonPane=$("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),uiButtonSet=$("<div></div>").addClass("ui-dialog-buttonset").appendTo(uiDialogButtonPane);self.uiDialog.find(".ui-dialog-buttonpane").remove();if(typeof buttons==="object"&&buttons!==null){$.each(buttons,function(){return !(hasButtons=true)})}if(hasButtons){$.each(buttons,function(name,props){props=$.isFunction(props)?{click:props,text:name}:props;var button=$('<button type="button"></button>').click(function(){props.click.apply(self.element[0],arguments)}).appendTo(uiButtonSet);$.each(props,function(key,value){if(key==="click"){return }if(key in attrFn){button[key](value)}else{button.attr(key,value)}});if($.fn.button){button.button()}});uiDialogButtonPane.appendTo(self.uiDialog)}},_makeDraggable:function(){var self=this,options=self.options,doc=$(document),heightBeforeDrag;function filteredUi(ui){return{position:ui.position,offset:ui.offset}}self.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(event,ui){heightBeforeDrag=options.height==="auto"?"auto":$(this).height();$(this).height($(this).height()).addClass("ui-dialog-dragging");self._trigger("dragStart",event,filteredUi(ui))},drag:function(event,ui){self._trigger("drag",event,filteredUi(ui))},stop:function(event,ui){options.position=[ui.position.left-doc.scrollLeft(),ui.position.top-doc.scrollTop()];$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);self._trigger("dragStop",event,filteredUi(ui));$.ui.dialog.overlay.resize()}})},_makeResizable:function(handles){handles=(handles===undefined?this.options.resizable:handles);var self=this,options=self.options,position=self.uiDialog.css("position"),resizeHandles=(typeof handles==="string"?handles:"n,e,s,w,se,sw,ne,nw");function filteredUi(ui){return{originalPosition:ui.originalPosition,originalSize:ui.originalSize,position:ui.position,size:ui.size}}self.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:self.element,maxWidth:options.maxWidth,maxHeight:options.maxHeight,minWidth:options.minWidth,minHeight:self._minHeight(),handles:resizeHandles,start:function(event,ui){$(this).addClass("ui-dialog-resizing");self._trigger("resizeStart",event,filteredUi(ui))},resize:function(event,ui){self._trigger("resize",event,filteredUi(ui))},stop:function(event,ui){$(this).removeClass("ui-dialog-resizing");options.height=$(this).height();options.width=$(this).width();self._trigger("resizeStop",event,filteredUi(ui));$.ui.dialog.overlay.resize()}}).css("position",position).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var options=this.options;if(options.height==="auto"){return options.minHeight}else{return Math.min(options.minHeight,options.height)}},_position:function(position){var myAt=[],offset=[0,0],isVisible;if(position){if(typeof position==="string"||(typeof position==="object"&&"0" in position)){myAt=position.split?position.split(" "):[position[0],position[1]];if(myAt.length===1){myAt[1]=myAt[0]}$.each(["left","top"],function(i,offsetPosition){if(+myAt[i]===myAt[i]){offset[i]=myAt[i];myAt[i]=offsetPosition}});position={my:myAt.join(" "),at:myAt.join(" "),offset:offset.join(" ")}}position=$.extend({},$.ui.dialog.prototype.options.position,position)}else{position=$.ui.dialog.prototype.options.position}isVisible=this.uiDialog.is(":visible");if(!isVisible){this.uiDialog.show()}this.uiDialog.css({top:0,left:0}).position($.extend({of:window},position));if(!isVisible){this.uiDialog.hide()}},_setOptions:function(options){var self=this,resizableOptions={},resize=false;$.each(options,function(key,value){self._setOption(key,value);if(key in sizeRelatedOptions){resize=true}if(key in resizableRelatedOptions){resizableOptions[key]=value}});if(resize){this._size()}if(this.uiDialog.is(":data(resizable)")){this.uiDialog.resizable("option",resizableOptions)}},_setOption:function(key,value){var self=this,uiDialog=self.uiDialog;switch(key){case"beforeclose":key="beforeClose";break;case"buttons":self._createButtons(value);break;case"closeText":self.uiDialogTitlebarCloseText.text(""+value);break;case"dialogClass":uiDialog.removeClass(self.options.dialogClass).addClass(uiDialogClasses+value);break;case"disabled":if(value){uiDialog.addClass("ui-dialog-disabled")}else{uiDialog.removeClass("ui-dialog-disabled")}break;case"draggable":var isDraggable=uiDialog.is(":data(draggable)");if(isDraggable&&!value){uiDialog.draggable("destroy")}if(!isDraggable&&value){self._makeDraggable()}break;case"position":self._position(value);break;case"resizable":var isResizable=uiDialog.is(":data(resizable)");if(isResizable&&!value){uiDialog.resizable("destroy")}if(isResizable&&typeof value==="string"){uiDialog.resizable("option","handles",value)}if(!isResizable&&value!==false){self._makeResizable(value)}break;case"title":$(".ui-dialog-title",self.uiDialogTitlebar).html(""+(value||"&#160;"));break}$.Widget.prototype._setOption.apply(self,arguments)},_size:function(){var options=this.options,nonContentHeight,minContentHeight,isVisible=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(options.minWidth>options.width){options.width=options.minWidth}nonContentHeight=this.uiDialog.css({height:"auto",width:options.width}).height();minContentHeight=Math.max(0,options.minHeight-nonContentHeight);if(options.height==="auto"){if($.support.minHeight){this.element.css({minHeight:minContentHeight,height:"auto"})}else{this.uiDialog.show();var autoHeight=this.element.css("height","auto").height();if(!isVisible){this.uiDialog.hide()}this.element.height(Math.max(autoHeight,minContentHeight))}}else{this.element.height(Math.max(options.height-nonContentHeight,0))}if(this.uiDialog.is(":data(resizable)")){this.uiDialog.resizable("option","minHeight",this._minHeight())}}});$.extend($.ui.dialog,{version:"1.8.12",uuid:0,maxZ:0,getTitleId:function($el){var id=$el.attr("id");if(!id){this.uuid+=1;id=this.uuid}return"ui-dialog-title-"+id},overlay:function(dialog){this.$el=$.ui.dialog.overlay.create(dialog)}});$.extend($.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:$.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(event){return event+".dialog-overlay"}).join(" "),create:function(dialog){if(this.instances.length===0){setTimeout(function(){if($.ui.dialog.overlay.instances.length){$(document).bind($.ui.dialog.overlay.events,function(event){if($(event.target).zIndex()<$.ui.dialog.overlay.maxZ){return false}})}},1);$(document).bind("keydown.dialog-overlay",function(event){if(dialog.options.closeOnEscape&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){dialog.close(event);event.preventDefault()}});$(window).bind("resize.dialog-overlay",$.ui.dialog.overlay.resize)}var $el=(this.oldInstances.pop()||$("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});if($.fn.bgiframe){$el.bgiframe()}this.instances.push($el);return $el},destroy:function($el){var indexOf=$.inArray($el,this.instances);if(indexOf!=-1){this.oldInstances.push(this.instances.splice(indexOf,1)[0])}if(this.instances.length===0){$([document,window]).unbind(".dialog-overlay")}$el.remove();var maxZ=0;$.each(this.instances,function(){maxZ=Math.max(maxZ,this.css("z-index"))});this.maxZ=maxZ},height:function(){var scrollHeight,offsetHeight;if($.browser.msie&&$.browser.version<7){scrollHeight=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);offsetHeight=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(scrollHeight<offsetHeight){return $(window).height()+"px"}else{return scrollHeight+"px"}}else{return $(document).height()+"px"}},width:function(){var scrollWidth,offsetWidth;if($.browser.msie&&$.browser.version<7){scrollWidth=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);offsetWidth=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(scrollWidth<offsetWidth){return $(window).width()+"px"}else{return scrollWidth+"px"}}else{return $(document).width()+"px"}},resize:function(){var $overlays=$([]);$.each($.ui.dialog.overlay.instances,function(){$overlays=$overlays.add(this)});$overlays.css({width:0,height:0}).css({width:$.ui.dialog.overlay.width(),height:$.ui.dialog.overlay.height()})}});$.extend($.ui.dialog.overlay.prototype,{destroy:function(){$.ui.dialog.overlay.destroy(this.$el)}})}(jQuery));
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.draggable.js b/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.draggable.js
new file mode 100644 (file)
index 0000000..6c438b0
--- /dev/null
@@ -0,0 +1 @@
+(function($,undefined){$.widget("ui.draggable",$.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")){return }this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this},_mouseCapture:function(event){var o=this.options;if(this.helper||o.disabled||$(event.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(event);if(!this.handle){return false}return true},_mouseStart:function(event){var o=this.options;this.helper=this._createHelper(event);this._cacheHelperProportions();if($.ui.ddmanager){$.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};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;(o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt));if(o.containment){this._setContainment()}if(this._trigger("start",event)===false){this._clear();return false}this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(event,true);return true},_mouseDrag:function(event,noPropagation){this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===false){this._mouseUp({});return false}this.position=ui.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if($.ui.ddmanager){$.ui.ddmanager.drag(this,event)}return false},_mouseStop:function(event){var dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour){dropped=$.ui.ddmanager.drop(this,event)}if(this.dropped){dropped=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original"){return false}if((this.options.revert=="invalid"&&!dropped)||(this.options.revert=="valid"&&dropped)||this.options.revert===true||($.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped))){var self=this;$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(self._trigger("stop",event)!==false){self._clear()}})}else{if(this._trigger("stop",event)!==false){this._clear()}}return false},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp({})}else{this._clear()}return this},_getHandle:function(event){var handle=!this.options.handle||!$(this.options.handle,this.element).length?true:false;$(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==event.target){handle=true}});return handle},_createHelper:function(event){var o=this.options;var helper=$.isFunction(o.helper)?$(o.helper.apply(this.element[0],[event])):(o.helper=="clone"?this.element.clone():this.element);if(!helper.parents("body").length){helper.appendTo((o.appendTo=="parent"?this.element[0].parentNode:o.appendTo))}if(helper[0]!=this.element[0]&&!(/(fixed|absolute)/).test(helper.css("position"))){helper.css("position","absolute")}return helper},_adjustOffsetFromHelper:function(obj){if(typeof obj=="string"){obj=obj.split(" ")}if($.isArray(obj)){obj={left:+obj[0],top:+obj[1]||0}}if("left" in obj){this.offset.click.left=obj.left+this.margins.left}if("right" in obj){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left}if("top" in obj){this.offset.click.top=obj.top+this.margins.top}if("bottom" in obj){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var po=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&$.ui.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&$.browser.msie)){po={top:0,left:0}}return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var p=this.element.position();return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:p.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 o=this.options;if(o.containment=="parent"){o.containment=this.helper[0].parentNode}if(o.containment=="document"||o.containment=="window"){this.containment=[(o.containment=="document"?0:$(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(o.containment=="document"?0:$(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(o.containment=="document"?0:$(window).scrollLeft())+$(o.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(o.containment=="document"?0:$(window).scrollTop())+($(o.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(o.containment)&&o.containment.constructor!=Array){var ce=$(o.containment)[0];if(!ce){return }var co=$(o.containment).offset();var over=($(ce).css("overflow")!="hidden");this.containment=[co.left+(parseInt($(ce).css("borderLeftWidth"),10)||0)+(parseInt($(ce).css("paddingLeft"),10)||0),co.top+(parseInt($(ce).css("borderTopWidth"),10)||0)+(parseInt($(ce).css("paddingTop"),10)||0),co.left+(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt($(ce).css("borderLeftWidth"),10)||0)-(parseInt($(ce).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,co.top+(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt($(ce).css("borderTopWidth"),10)||0)-(parseInt($(ce).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom]}else{if(o.containment.constructor==Array){this.containment=o.containment}}},_convertPositionTo:function(d,pos){if(!pos){pos=this.position}var mod=d=="absolute"?1:-1;var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName);return{top:(pos.top+this.offset.relative.top*mod+this.offset.parent.top*mod-($.browser.safari&&$.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(scrollIsRootNode?0:scroll.scrollTop()))*mod)),left:(pos.left+this.offset.relative.left*mod+this.offset.parent.left*mod-($.browser.safari&&$.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())*mod))}},_generatePosition:function(event){var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName);var pageX=event.pageX;var pageY=event.pageY;if(this.originalPosition){if(this.containment){if(event.pageX-this.offset.click.left<this.containment[0]){pageX=this.containment[0]+this.offset.click.left}if(event.pageY-this.offset.click.top<this.containment[1]){pageY=this.containment[1]+this.offset.click.top}if(event.pageX-this.offset.click.left>this.containment[2]){pageX=this.containment[2]+this.offset.click.left}if(event.pageY-this.offset.click.top>this.containment[3]){pageY=this.containment[3]+this.offset.click.top}}if(o.grid){var top=this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1];pageY=this.containment?(!(top-this.offset.click.top<this.containment[1]||top-this.offset.click.top>this.containment[3])?top:(!(top-this.offset.click.top<this.containment[1])?top-o.grid[1]:top+o.grid[1])):top;var left=this.originalPageX+Math.round((pageX-this.originalPageX)/o.grid[0])*o.grid[0];pageX=this.containment?(!(left-this.offset.click.left<this.containment[0]||left-this.offset.click.left>this.containment[2])?left:(!(left-this.offset.click.left<this.containment[0])?left-o.grid[0]:left+o.grid[0])):left}}return{top:(pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+($.browser.safari&&$.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(scrollIsRootNode?0:scroll.scrollTop())))),left:(pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+($.browser.safari&&$.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(type,event,ui){ui=ui||this._uiHash();$.ui.plugin.call(this,type,[event,ui]);if(type=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return $.Widget.prototype._trigger.call(this,type,event,ui)},plugins:{},_uiHash:function(event){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});$.extend($.ui.draggable,{version:"1.8.12"});$.ui.plugin.add("draggable","connectToSortable",{start:function(event,ui){var inst=$(this).data("draggable"),o=inst.options,uiSortable=$.extend({},ui,{item:inst.element});inst.sortables=[];$(o.connectToSortable).each(function(){var sortable=$.data(this,"sortable");if(sortable&&!sortable.options.disabled){inst.sortables.push({instance:sortable,shouldRevert:sortable.options.revert});sortable.refreshPositions();sortable._trigger("activate",event,uiSortable)}})},stop:function(event,ui){var inst=$(this).data("draggable"),uiSortable=$.extend({},ui,{item:inst.element});$.each(inst.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;inst.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(event);this.instance.options.helper=this.instance.options._helper;if(inst.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",event,uiSortable)}})},drag:function(event,ui){var inst=$(this).data("draggable"),self=this;var checkPos=function(o){var dyClick=this.offset.click.top,dxClick=this.offset.click.left;var helperTop=this.positionAbs.top,helperLeft=this.positionAbs.left;var itemHeight=o.height,itemWidth=o.width;var itemTop=o.top,itemLeft=o.left;return $.ui.isOver(helperTop+dyClick,helperLeft+dxClick,itemTop,itemLeft,itemHeight,itemWidth)};$.each(inst.sortables,function(i){this.instance.positionAbs=inst.positionAbs;this.instance.helperProportions=inst.helperProportions;this.instance.offset.click=inst.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=$(self).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return ui.helper[0]};event.target=this.instance.currentItem[0];this.instance._mouseCapture(event,true);this.instance._mouseStart(event,true,true);this.instance.offset.click.top=inst.offset.click.top;this.instance.offset.click.left=inst.offset.click.left;this.instance.offset.parent.left-=inst.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=inst.offset.parent.top-this.instance.offset.parent.top;inst._trigger("toSortable",event);inst.dropped=this.instance.element;inst.currentItem=inst.element;this.instance.fromOutside=inst}if(this.instance.currentItem){this.instance._mouseDrag(event)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",event,this.instance._uiHash(this.instance));this.instance._mouseStop(event,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}inst._trigger("fromSortable",event);inst.dropped=false}}})}});$.ui.plugin.add("draggable","cursor",{start:function(event,ui){var t=$("body"),o=$(this).data("draggable").options;if(t.css("cursor")){o._cursor=t.css("cursor")}t.css("cursor",o.cursor)},stop:function(event,ui){var o=$(this).data("draggable").options;if(o._cursor){$("body").css("cursor",o._cursor)}}});$.ui.plugin.add("draggable","iframeFix",{start:function(event,ui){var o=$(this).data("draggable").options;$(o.iframeFix===true?"iframe":o.iframeFix).each(function(){$('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css($(this).offset()).appendTo("body")})},stop:function(event,ui){$("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});$.ui.plugin.add("draggable","opacity",{start:function(event,ui){var t=$(ui.helper),o=$(this).data("draggable").options;if(t.css("opacity")){o._opacity=t.css("opacity")}t.css("opacity",o.opacity)},stop:function(event,ui){var o=$(this).data("draggable").options;if(o._opacity){$(ui.helper).css("opacity",o._opacity)}}});$.ui.plugin.add("draggable","scroll",{start:function(event,ui){var i=$(this).data("draggable");if(i.scrollParent[0]!=document&&i.scrollParent[0].tagName!="HTML"){i.overflowOffset=i.scrollParent.offset()}},drag:function(event,ui){var i=$(this).data("draggable"),o=i.options,scrolled=false;if(i.scrollParent[0]!=document&&i.scrollParent[0].tagName!="HTML"){if(!o.axis||o.axis!="x"){if((i.overflowOffset.top+i.scrollParent[0].offsetHeight)-event.pageY<o.scrollSensitivity){i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop+o.scrollSpeed}else{if(event.pageY-i.overflowOffset.top<o.scrollSensitivity){i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop-o.scrollSpeed}}}if(!o.axis||o.axis!="y"){if((i.overflowOffset.left+i.scrollParent[0].offsetWidth)-event.pageX<o.scrollSensitivity){i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft+o.scrollSpeed}else{if(event.pageX-i.overflowOffset.left<o.scrollSensitivity){i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft-o.scrollSpeed}}}}else{if(!o.axis||o.axis!="x"){if(event.pageY-$(document).scrollTop()<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()-o.scrollSpeed)}else{if($(window).height()-(event.pageY-$(document).scrollTop())<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()+o.scrollSpeed)}}}if(!o.axis||o.axis!="y"){if(event.pageX-$(document).scrollLeft()<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed)}else{if($(window).width()-(event.pageX-$(document).scrollLeft())<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed)}}}}if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(i,event)}}});$.ui.plugin.add("draggable","snap",{start:function(event,ui){var i=$(this).data("draggable"),o=i.options;i.snapElements=[];$(o.snap.constructor!=String?(o.snap.items||":data(draggable)"):o.snap).each(function(){var $t=$(this);var $o=$t.offset();if(this!=i.element[0]){i.snapElements.push({item:this,width:$t.outerWidth(),height:$t.outerHeight(),top:$o.top,left:$o.left})}})},drag:function(event,ui){var inst=$(this).data("draggable"),o=inst.options;var d=o.snapTolerance;var x1=ui.offset.left,x2=x1+inst.helperProportions.width,y1=ui.offset.top,y2=y1+inst.helperProportions.height;for(var i=inst.snapElements.length-1;i>=0;i--){var l=inst.snapElements[i].left,r=l+inst.snapElements[i].width,t=inst.snapElements[i].top,b=t+inst.snapElements[i].height;if(!((l-d<x1&&x1<r+d&&t-d<y1&&y1<b+d)||(l-d<x1&&x1<r+d&&t-d<y2&&y2<b+d)||(l-d<x2&&x2<r+d&&t-d<y1&&y1<b+d)||(l-d<x2&&x2<r+d&&t-d<y2&&y2<b+d))){if(inst.snapElements[i].snapping){(inst.options.snap.release&&inst.options.snap.release.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})))}inst.snapElements[i].snapping=false;continue}if(o.snapMode!="inner"){var ts=Math.abs(t-y2)<=d;var bs=Math.abs(b-y1)<=d;var ls=Math.abs(l-x2)<=d;var rs=Math.abs(r-x1)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top-inst.margins.top}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top-inst.margins.top}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left-inst.margins.left}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left-inst.margins.left}}var first=(ts||bs||ls||rs);if(o.snapMode!="outer"){var ts=Math.abs(t-y1)<=d;var bs=Math.abs(b-y2)<=d;var ls=Math.abs(l-x1)<=d;var rs=Math.abs(r-x2)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top-inst.margins.top}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top-inst.margins.top}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left-inst.margins.left}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left-inst.margins.left}}if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first)){(inst.options.snap.snap&&inst.options.snap.snap.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})))}inst.snapElements[i].snapping=(ts||bs||ls||rs||first)}}});$.ui.plugin.add("draggable","stack",{start:function(event,ui){var o=$(this).data("draggable").options;var group=$.makeArray($(o.stack)).sort(function(a,b){return(parseInt($(a).css("zIndex"),10)||0)-(parseInt($(b).css("zIndex"),10)||0)});if(!group.length){return }var min=parseInt(group[0].style.zIndex)||0;$(group).each(function(i){this.style.zIndex=min+i});this[0].style.zIndex=min+group.length}});$.ui.plugin.add("draggable","zIndex",{start:function(event,ui){var t=$(ui.helper),o=$(this).data("draggable").options;if(t.css("zIndex")){o._zIndex=t.css("zIndex")}t.css("zIndex",o.zIndex)},stop:function(event,ui){var o=$(this).data("draggable").options;if(o._zIndex){$(ui.helper).css("zIndex",o._zIndex)}}})})(jQuery);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.mouse.js b/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.mouse.js
new file mode 100644 (file)
index 0000000..4a00e29
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * jQuery UI Mouse 1.8.12
+ *
+ * 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/Mouse
+ *
+ * Depends:
+ *     jquery.ui.widget.js
+ */
+(function($,undefined){$.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var self=this;this.element.bind("mousedown."+this.widgetName,function(event){return self._mouseDown(event)}).bind("click."+this.widgetName,function(event){if(true===$.data(event.target,self.widgetName+".preventClickEvent")){$.removeData(event.target,self.widgetName+".preventClickEvent");event.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(event){event.originalEvent=event.originalEvent||{};if(event.originalEvent.mouseHandled){return }(this._mouseStarted&&this._mouseUp(event));this._mouseDownEvent=event;var self=this,btnIsLeft=(event.which==1),elIsCancel=(typeof this.options.cancel=="string"?$(event.target).parents().add(event.target).filter(this.options.cancel).length:false);if(!btnIsLeft||elIsCancel||!this._mouseCapture(event)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){self.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(event)!==false);if(!this._mouseStarted){event.preventDefault();return true}}if(true===$.data(event.target,this.widgetName+".preventClickEvent")){$.removeData(event.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(event){return self._mouseMove(event)};this._mouseUpDelegate=function(event){return self._mouseUp(event)};$(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);event.preventDefault();event.originalEvent.mouseHandled=true;return true},_mouseMove:function(event){if($.browser.msie&&!(document.documentMode>=9)&&!event.button){return this._mouseUp(event)}if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault()}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,event)!==false);(this._mouseStarted?this._mouseDrag(event):this._mouseUp(event))}return !this._mouseStarted},_mouseUp:function(event){$(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(event.target==this._mouseDownEvent.target){$.data(event.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(event)}return false},_mouseDistanceMet:function(event){return(Math.max(Math.abs(this._mouseDownEvent.pageX-event.pageX),Math.abs(this._mouseDownEvent.pageY-event.pageY))>=this.options.distance)},_mouseDelayMet:function(event){return this.mouseDelayMet},_mouseStart:function(event){},_mouseDrag:function(event){},_mouseStop:function(event){},_mouseCapture:function(event){return true}})})(jQuery);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.position.js b/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.position.js
new file mode 100644 (file)
index 0000000..bd8cc08
--- /dev/null
@@ -0,0 +1 @@
+(function($,undefined){$.ui=$.ui||{};var horizontalPositions=/left|center|right/,verticalPositions=/top|center|bottom/,center="center",_position=$.fn.position,_offset=$.fn.offset;$.fn.position=function(options){if(!options||!options.of){return _position.apply(this,arguments)}options=$.extend({},options);var target=$(options.of),targetElem=target[0],collision=(options.collision||"flip").split(" "),offset=options.offset?options.offset.split(" "):[0,0],targetWidth,targetHeight,basePosition;if(targetElem.nodeType===9){targetWidth=target.width();targetHeight=target.height();basePosition={top:0,left:0}}else{if(targetElem.setTimeout){targetWidth=target.width();targetHeight=target.height();basePosition={top:target.scrollTop(),left:target.scrollLeft()}}else{if(targetElem.preventDefault){options.at="left top";targetWidth=targetHeight=0;basePosition={top:options.of.pageY,left:options.of.pageX}}else{targetWidth=target.outerWidth();targetHeight=target.outerHeight();basePosition=target.offset()}}}$.each(["my","at"],function(){var pos=(options[this]||"").split(" ");if(pos.length===1){pos=horizontalPositions.test(pos[0])?pos.concat([center]):verticalPositions.test(pos[0])?[center].concat(pos):[center,center]}pos[0]=horizontalPositions.test(pos[0])?pos[0]:center;pos[1]=verticalPositions.test(pos[1])?pos[1]:center;options[this]=pos});if(collision.length===1){collision[1]=collision[0]}offset[0]=parseInt(offset[0],10)||0;if(offset.length===1){offset[1]=offset[0]}offset[1]=parseInt(offset[1],10)||0;if(options.at[0]==="right"){basePosition.left+=targetWidth}else{if(options.at[0]===center){basePosition.left+=targetWidth/2}}if(options.at[1]==="bottom"){basePosition.top+=targetHeight}else{if(options.at[1]===center){basePosition.top+=targetHeight/2}}basePosition.left+=offset[0];basePosition.top+=offset[1];return this.each(function(){var elem=$(this),elemWidth=elem.outerWidth(),elemHeight=elem.outerHeight(),marginLeft=parseInt($.curCSS(this,"marginLeft",true))||0,marginTop=parseInt($.curCSS(this,"marginTop",true))||0,collisionWidth=elemWidth+marginLeft+(parseInt($.curCSS(this,"marginRight",true))||0),collisionHeight=elemHeight+marginTop+(parseInt($.curCSS(this,"marginBottom",true))||0),position=$.extend({},basePosition),collisionPosition;if(options.my[0]==="right"){position.left-=elemWidth}else{if(options.my[0]===center){position.left-=elemWidth/2}}if(options.my[1]==="bottom"){position.top-=elemHeight}else{if(options.my[1]===center){position.top-=elemHeight/2}}position.left=Math.round(position.left);position.top=Math.round(position.top);collisionPosition={left:position.left-marginLeft,top:position.top-marginTop};$.each(["left","top"],function(i,dir){if($.ui.position[collision[i]]){$.ui.position[collision[i]][dir](position,{targetWidth:targetWidth,targetHeight:targetHeight,elemWidth:elemWidth,elemHeight:elemHeight,collisionPosition:collisionPosition,collisionWidth:collisionWidth,collisionHeight:collisionHeight,offset:offset,my:options.my,at:options.at})}});if($.fn.bgiframe){elem.bgiframe()}elem.offset($.extend(position,{using:options.using}))})};$.ui.position={fit:{left:function(position,data){var win=$(window),over=data.collisionPosition.left+data.collisionWidth-win.width()-win.scrollLeft();position.left=over>0?position.left-over:Math.max(position.left-data.collisionPosition.left,position.left)},top:function(position,data){var win=$(window),over=data.collisionPosition.top+data.collisionHeight-win.height()-win.scrollTop();position.top=over>0?position.top-over:Math.max(position.top-data.collisionPosition.top,position.top)}},flip:{left:function(position,data){if(data.at[0]===center){return }var win=$(window),over=data.collisionPosition.left+data.collisionWidth-win.width()-win.scrollLeft(),myOffset=data.my[0]==="left"?-data.elemWidth:data.my[0]==="right"?data.elemWidth:0,atOffset=data.at[0]==="left"?data.targetWidth:-data.targetWidth,offset=-2*data.offset[0];position.left+=data.collisionPosition.left<0?myOffset+atOffset+offset:over>0?myOffset+atOffset+offset:0},top:function(position,data){if(data.at[1]===center){return }var win=$(window),over=data.collisionPosition.top+data.collisionHeight-win.height()-win.scrollTop(),myOffset=data.my[1]==="top"?-data.elemHeight:data.my[1]==="bottom"?data.elemHeight:0,atOffset=data.at[1]==="top"?data.targetHeight:-data.targetHeight,offset=-2*data.offset[1];position.top+=data.collisionPosition.top<0?myOffset+atOffset+offset:over>0?myOffset+atOffset+offset:0}}};if(!$.offset.setOffset){$.offset.setOffset=function(elem,options){if(/static/.test($.curCSS(elem,"position"))){elem.style.position="relative"}var curElem=$(elem),curOffset=curElem.offset(),curTop=parseInt($.curCSS(elem,"top",true),10)||0,curLeft=parseInt($.curCSS(elem,"left",true),10)||0,props={top:(options.top-curOffset.top)+curTop,left:(options.left-curOffset.left)+curLeft};if("using" in options){options.using.call(elem,props)}else{curElem.css(props)}};$.fn.offset=function(options){var elem=this[0];if(!elem||!elem.ownerDocument){return null}if(options){return this.each(function(){$.offset.setOffset(this,options)})}return _offset.call(this)}}}(jQuery));
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.slider.js b/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.slider.js
new file mode 100644 (file)
index 0000000..5105d60
--- /dev/null
@@ -0,0 +1 @@
+(function($,undefined){var numPages=5;$.widget("ui.slider",$.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 self=this,o=this.options;this._keySliding=false;this._mouseSliding=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");if(o.disabled){this.element.addClass("ui-slider-disabled ui-disabled")}this.range=$([]);if(o.range){if(o.range===true){this.range=$("<div></div>");if(!o.values){o.values=[this._valueMin(),this._valueMin()]}if(o.values.length&&o.values.length!==2){o.values=[o.values[0],o.values[0]]}}else{this.range=$("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(o.range==="min"||o.range==="max"){this.range.addClass("ui-slider-range-"+o.range)}this.range.addClass("ui-widget-header")}if($(".ui-slider-handle",this.element).length===0){$("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle")}if(o.values&&o.values.length){while($(".ui-slider-handle",this.element).length<o.values.length){$("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle")}}this.handles=$(".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(event){event.preventDefault()}).hover(function(){if(!o.disabled){$(this).addClass("ui-state-hover")}},function(){$(this).removeClass("ui-state-hover")}).focus(function(){if(!o.disabled){$(".ui-slider .ui-state-focus").removeClass("ui-state-focus");$(this).addClass("ui-state-focus")}else{$(this).blur()}}).blur(function(){$(this).removeClass("ui-state-focus")});this.handles.each(function(i){$(this).data("index.ui-slider-handle",i)});this.handles.keydown(function(event){var ret=true,index=$(this).data("index.ui-slider-handle"),allowed,curVal,newVal,step;if(self.options.disabled){return }switch(event.keyCode){case $.ui.keyCode.HOME:case $.ui.keyCode.END:case $.ui.keyCode.PAGE_UP:case $.ui.keyCode.PAGE_DOWN:case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:ret=false;if(!self._keySliding){self._keySliding=true;$(this).addClass("ui-state-active");allowed=self._start(event,index);if(allowed===false){return }}break}step=self.options.step;if(self.options.values&&self.options.values.length){curVal=newVal=self.values(index)}else{curVal=newVal=self.value()}switch(event.keyCode){case $.ui.keyCode.HOME:newVal=self._valueMin();break;case $.ui.keyCode.END:newVal=self._valueMax();break;case $.ui.keyCode.PAGE_UP:newVal=self._trimAlignValue(curVal+((self._valueMax()-self._valueMin())/numPages));break;case $.ui.keyCode.PAGE_DOWN:newVal=self._trimAlignValue(curVal-((self._valueMax()-self._valueMin())/numPages));break;case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:if(curVal===self._valueMax()){return }newVal=self._trimAlignValue(curVal+step);break;case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:if(curVal===self._valueMin()){return }newVal=self._trimAlignValue(curVal-step);break}self._slide(event,index,newVal);return ret}).keyup(function(event){var index=$(this).data("index.ui-slider-handle");if(self._keySliding){self._keySliding=false;self._stop(event,index);self._change(event,index);$(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(event){var o=this.options,position,normValue,distance,closestHandle,self,index,allowed,offset,mouseOverHandle;if(o.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();position={x:event.pageX,y:event.pageY};normValue=this._normValueFromMouse(position);distance=this._valueMax()-this._valueMin()+1;self=this;this.handles.each(function(i){var thisDistance=Math.abs(normValue-self.values(i));if(distance>thisDistance){distance=thisDistance;closestHandle=$(this);index=i}});if(o.range===true&&this.values(1)===o.min){index+=1;closestHandle=$(this.handles[index])}allowed=this._start(event,index);if(allowed===false){return false}this._mouseSliding=true;self._handleIndex=index;closestHandle.addClass("ui-state-active").focus();offset=closestHandle.offset();mouseOverHandle=!$(event.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=mouseOverHandle?{left:0,top:0}:{left:event.pageX-offset.left-(closestHandle.width()/2),top:event.pageY-offset.top-(closestHandle.height()/2)-(parseInt(closestHandle.css("borderTopWidth"),10)||0)-(parseInt(closestHandle.css("borderBottomWidth"),10)||0)+(parseInt(closestHandle.css("marginTop"),10)||0)};if(!this.handles.hasClass("ui-state-hover")){this._slide(event,index,normValue)}this._animateOff=true;return true},_mouseStart:function(event){return true},_mouseDrag:function(event){var position={x:event.pageX,y:event.pageY},normValue=this._normValueFromMouse(position);this._slide(event,this._handleIndex,normValue);return false},_mouseStop:function(event){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(event,this._handleIndex);this._change(event,this._handleIndex);this._handleIndex=null;this._clickOffset=null;this._animateOff=false;return false},_detectOrientation:function(){this.orientation=(this.options.orientation==="vertical")?"vertical":"horizontal"},_normValueFromMouse:function(position){var pixelTotal,pixelMouse,percentMouse,valueTotal,valueMouse;if(this.orientation==="horizontal"){pixelTotal=this.elementSize.width;pixelMouse=position.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{pixelTotal=this.elementSize.height;pixelMouse=position.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}percentMouse=(pixelMouse/pixelTotal);if(percentMouse>1){percentMouse=1}if(percentMouse<0){percentMouse=0}if(this.orientation==="vertical"){percentMouse=1-percentMouse}valueTotal=this._valueMax()-this._valueMin();valueMouse=this._valueMin()+percentMouse*valueTotal;return this._trimAlignValue(valueMouse)},_start:function(event,index){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}return this._trigger("start",event,uiHash)},_slide:function(event,index,newVal){var otherVal,newValues,allowed;if(this.options.values&&this.options.values.length){otherVal=this.values(index?0:1);if((this.options.values.length===2&&this.options.range===true)&&((index===0&&newVal>otherVal)||(index===1&&newVal<otherVal))){newVal=otherVal}if(newVal!==this.values(index)){newValues=this.values();newValues[index]=newVal;allowed=this._trigger("slide",event,{handle:this.handles[index],value:newVal,values:newValues});otherVal=this.values(index?0:1);if(allowed!==false){this.values(index,newVal,true)}}}else{if(newVal!==this.value()){allowed=this._trigger("slide",event,{handle:this.handles[index],value:newVal});if(allowed!==false){this.value(newVal)}}}},_stop:function(event,index){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}this._trigger("stop",event,uiHash)},_change:function(event,index){if(!this._keySliding&&!this._mouseSliding){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}this._trigger("change",event,uiHash)}},value:function(newValue){if(arguments.length){this.options.value=this._trimAlignValue(newValue);this._refreshValue();this._change(null,0);return }return this._value()},values:function(index,newValue){var vals,newValues,i;if(arguments.length>1){this.options.values[index]=this._trimAlignValue(newValue);this._refreshValue();this._change(null,index);return }if(arguments.length){if($.isArray(arguments[0])){vals=this.options.values;newValues=arguments[0];for(i=0;i<vals.length;i+=1){vals[i]=this._trimAlignValue(newValues[i]);this._change(null,i)}this._refreshValue()}else{if(this.options.values&&this.options.values.length){return this._values(index)}else{return this.value()}}}else{return this._values()}},_setOption:function(key,value){var i,valsLength=0;if($.isArray(this.options.values)){valsLength=this.options.values.length}$.Widget.prototype._setOption.apply(this,arguments);switch(key){case"disabled":if(value){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case"value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case"values":this._animateOff=true;this._refreshValue();for(i=0;i<valsLength;i+=1){this._change(null,i)}this._animateOff=false;break}},_value:function(){var val=this.options.value;val=this._trimAlignValue(val);return val},_values:function(index){var val,vals,i;if(arguments.length){val=this.options.values[index];val=this._trimAlignValue(val);return val}else{vals=this.options.values.slice();for(i=0;i<vals.length;i+=1){vals[i]=this._trimAlignValue(vals[i])}return vals}},_trimAlignValue:function(val){if(val<=this._valueMin()){return this._valueMin()}if(val>=this._valueMax()){return this._valueMax()}var step=(this.options.step>0)?this.options.step:1,valModStep=(val-this._valueMin())%step;alignValue=val-valModStep;if(Math.abs(valModStep)*2>=step){alignValue+=(valModStep>0)?step:(-step)}return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var oRange=this.options.range,o=this.options,self=this,animate=(!this._animateOff)?o.animate:false,valPercent,_set={},lastValPercent,value,valueMin,valueMax;if(this.options.values&&this.options.values.length){this.handles.each(function(i,j){valPercent=(self.values(i)-self._valueMin())/(self._valueMax()-self._valueMin())*100;_set[self.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";$(this).stop(1,1)[animate?"animate":"css"](_set,o.animate);if(self.options.range===true){if(self.orientation==="horizontal"){if(i===0){self.range.stop(1,1)[animate?"animate":"css"]({left:valPercent+"%"},o.animate)}if(i===1){self.range[animate?"animate":"css"]({width:(valPercent-lastValPercent)+"%"},{queue:false,duration:o.animate})}}else{if(i===0){self.range.stop(1,1)[animate?"animate":"css"]({bottom:(valPercent)+"%"},o.animate)}if(i===1){self.range[animate?"animate":"css"]({height:(valPercent-lastValPercent)+"%"},{queue:false,duration:o.animate})}}}lastValPercent=valPercent})}else{value=this.value();valueMin=this._valueMin();valueMax=this._valueMax();valPercent=(valueMax!==valueMin)?(value-valueMin)/(valueMax-valueMin)*100:0;_set[self.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";this.handle.stop(1,1)[animate?"animate":"css"](_set,o.animate);if(oRange==="min"&&this.orientation==="horizontal"){this.range.stop(1,1)[animate?"animate":"css"]({width:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="horizontal"){this.range[animate?"animate":"css"]({width:(100-valPercent)+"%"},{queue:false,duration:o.animate})}if(oRange==="min"&&this.orientation==="vertical"){this.range.stop(1,1)[animate?"animate":"css"]({height:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="vertical"){this.range[animate?"animate":"css"]({height:(100-valPercent)+"%"},{queue:false,duration:o.animate})}}}});$.extend($.ui.slider,{version:"1.8.12"})}(jQuery));
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.tabs.js b/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.tabs.js
new file mode 100644 (file)
index 0000000..fd2cbd8
--- /dev/null
@@ -0,0 +1 @@
+(function($,undefined){var tabId=0,listId=0;function getNextTabId(){return ++tabId}function getNextListId(){return ++listId}$.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:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(key,value){if(key=="selected"){if(this.options.collapsible&&value==this.options.selected){return }this.select(value)}else{this.options[key]=value;this._tabify()}},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+getNextTabId()},_sanitizeSelector:function(hash){return hash.replace(/:/g,"\\:")},_cookie:function(){var cookie=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+getNextListId());return $.cookie.apply(null,[cookie].concat($.makeArray(arguments)))},_ui:function(tab,panel){return{tab:tab,panel:panel,index:this.anchors.index(tab)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var el=$(this);el.html(el.data("label.tabs")).removeData("label.tabs")})},_tabify:function(init){var self=this,o=this.options,fragmentId=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=$(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return $("a",this)[0]});this.panels=$([]);this.anchors.each(function(i,a){var href=$(a).attr("href");var hrefBase=href.split("#")[0],baseEl;if(hrefBase&&(hrefBase===location.toString().split("#")[0]||(baseEl=$("base")[0])&&hrefBase===baseEl.href)){href=a.hash;a.href=href}if(fragmentId.test(href)){self.panels=self.panels.add(self.element.find(self._sanitizeSelector(href)))}else{if(href&&href!=="#"){$.data(a,"href.tabs",href);$.data(a,"load.tabs",href.replace(/#.*$/,""));var id=self._tabId(a);a.href="#"+id;var $panel=self.element.find("#"+id);if(!$panel.length){$panel=$(o.panelTemplate).attr("id",id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(self.panels[i-1]||self.list);$panel.data("destroy.tabs",true)}self.panels=self.panels.add($panel)}else{o.disabled.push(i)}}});if(init){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(o.selected===undefined){if(location.hash){this.anchors.each(function(i,a){if(a.hash==location.hash){o.selected=i;return false}})}if(typeof o.selected!=="number"&&o.cookie){o.selected=parseInt(self._cookie(),10)}if(typeof o.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length){o.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}o.selected=o.selected||(this.lis.length?0:-1)}else{if(o.selected===null){o.selected=-1}}o.selected=((o.selected>=0&&this.anchors[o.selected])||o.selected<0)?o.selected:0;o.disabled=$.unique(o.disabled.concat($.map(this.lis.filter(".ui-state-disabled"),function(n,i){return self.lis.index(n)}))).sort();if($.inArray(o.selected,o.disabled)!=-1){o.disabled.splice($.inArray(o.selected,o.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(o.selected>=0&&this.anchors.length){self.element.find(self._sanitizeSelector(self.anchors[o.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(o.selected).addClass("ui-tabs-selected ui-state-active");self.element.queue("tabs",function(){self._trigger("show",null,self._ui(self.anchors[o.selected],self.element.find(self._sanitizeSelector(self.anchors[o.selected].hash))[0]))});this.load(o.selected)}$(window).bind("unload",function(){self.lis.add(self.anchors).unbind(".tabs");self.lis=self.anchors=self.panels=null})}else{o.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[o.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(o.cookie){this._cookie(o.selected,o.cookie)}for(var i=0,li;(li=this.lis[i]);i++){$(li)[$.inArray(i,o.disabled)!=-1&&!$(li).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(o.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(o.event!=="mouseover"){var addState=function(state,el){if(el.is(":not(.ui-state-disabled)")){el.addClass("ui-state-"+state)}};var removeState=function(state,el){el.removeClass("ui-state-"+state)};this.lis.bind("mouseover.tabs",function(){addState("hover",$(this))});this.lis.bind("mouseout.tabs",function(){removeState("hover",$(this))});this.anchors.bind("focus.tabs",function(){addState("focus",$(this).closest("li"))});this.anchors.bind("blur.tabs",function(){removeState("focus",$(this).closest("li"))})}var hideFx,showFx;if(o.fx){if($.isArray(o.fx)){hideFx=o.fx[0];showFx=o.fx[1]}else{hideFx=showFx=o.fx}}function resetStyle($el,fx){$el.css("display","");if(!$.support.opacity&&fx.opacity){$el[0].style.removeAttribute("filter")}}var showTab=showFx?function(clicked,$show){$(clicked).closest("li").addClass("ui-tabs-selected ui-state-active");$show.hide().removeClass("ui-tabs-hide").animate(showFx,showFx.duration||"normal",function(){resetStyle($show,showFx);self._trigger("show",null,self._ui(clicked,$show[0]))})}:function(clicked,$show){$(clicked).closest("li").addClass("ui-tabs-selected ui-state-active");$show.removeClass("ui-tabs-hide");self._trigger("show",null,self._ui(clicked,$show[0]))};var hideTab=hideFx?function(clicked,$hide){$hide.animate(hideFx,hideFx.duration||"normal",function(){self.lis.removeClass("ui-tabs-selected ui-state-active");$hide.addClass("ui-tabs-hide");resetStyle($hide,hideFx);self.element.dequeue("tabs")})}:function(clicked,$hide,$show){self.lis.removeClass("ui-tabs-selected ui-state-active");$hide.addClass("ui-tabs-hide");self.element.dequeue("tabs")};this.anchors.bind(o.event+".tabs",function(){var el=this,$li=$(el).closest("li"),$hide=self.panels.filter(":not(.ui-tabs-hide)"),$show=self.element.find(self._sanitizeSelector(el.hash));if(($li.hasClass("ui-tabs-selected")&&!o.collapsible)||$li.hasClass("ui-state-disabled")||$li.hasClass("ui-state-processing")||self.panels.filter(":animated").length||self._trigger("select",null,self._ui(this,$show[0]))===false){this.blur();return false}o.selected=self.anchors.index(this);self.abort();if(o.collapsible){if($li.hasClass("ui-tabs-selected")){o.selected=-1;if(o.cookie){self._cookie(o.selected,o.cookie)}self.element.queue("tabs",function(){hideTab(el,$hide)}).dequeue("tabs");this.blur();return false}else{if(!$hide.length){if(o.cookie){self._cookie(o.selected,o.cookie)}self.element.queue("tabs",function(){showTab(el,$show)});self.load(self.anchors.index(this));this.blur();return false}}}if(o.cookie){self._cookie(o.selected,o.cookie)}if($show.length){if($hide.length){self.element.queue("tabs",function(){hideTab(el,$hide)})}self.element.queue("tabs",function(){showTab(el,$show)});self.load(self.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if($.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(index){if(typeof index=="string"){index=this.anchors.index(this.anchors.filter("[href$="+index+"]"))}return index},destroy:function(){var o=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 href=$.data(this,"href.tabs");if(href){this.href=href}var $this=$(this).unbind(".tabs");$.each(["href","load","cache"],function(i,prefix){$this.removeData(prefix+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if($.data(this,"destroy.tabs")){$(this).remove()}else{$(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(o.cookie){this._cookie(null,o.cookie)}return this},add:function(url,label,index){if(index===undefined){index=this.anchors.length}var self=this,o=this.options,$li=$(o.tabTemplate.replace(/#\{href\}/g,url).replace(/#\{label\}/g,label)),id=!url.indexOf("#")?url.replace("#",""):this._tabId($("a",$li)[0]);$li.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var $panel=self.element.find("#"+id);if(!$panel.length){$panel=$(o.panelTemplate).attr("id",id).data("destroy.tabs",true)}$panel.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(index>=this.lis.length){$li.appendTo(this.list);$panel.appendTo(this.list[0].parentNode)}else{$li.insertBefore(this.lis[index]);$panel.insertBefore(this.panels[index])}o.disabled=$.map(o.disabled,function(n,i){return n>=index?++n:n});this._tabify();if(this.anchors.length==1){o.selected=0;$li.addClass("ui-tabs-selected ui-state-active");$panel.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){self._trigger("show",null,self._ui(self.anchors[0],self.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[index],this.panels[index]));return this},remove:function(index){index=this._getIndex(index);var o=this.options,$li=this.lis.eq(index).remove(),$panel=this.panels.eq(index).remove();if($li.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(index+(index+1<this.anchors.length?1:-1))}o.disabled=$.map($.grep(o.disabled,function(n,i){return n!=index}),function(n,i){return n>=index?--n:n});this._tabify();this._trigger("remove",null,this._ui($li.find("a")[0],$panel[0]));return this},enable:function(index){index=this._getIndex(index);var o=this.options;if($.inArray(index,o.disabled)==-1){return }this.lis.eq(index).removeClass("ui-state-disabled");o.disabled=$.grep(o.disabled,function(n,i){return n!=index});this._trigger("enable",null,this._ui(this.anchors[index],this.panels[index]));return this},disable:function(index){index=this._getIndex(index);var self=this,o=this.options;if(index!=o.selected){this.lis.eq(index).addClass("ui-state-disabled");o.disabled.push(index);o.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[index],this.panels[index]))}return this},select:function(index){index=this._getIndex(index);if(index==-1){if(this.options.collapsible&&this.options.selected!=-1){index=this.options.selected}else{return this}}this.anchors.eq(index).trigger(this.options.event+".tabs");return this},load:function(index){index=this._getIndex(index);var self=this,o=this.options,a=this.anchors.eq(index)[0],url=$.data(a,"load.tabs");this.abort();if(!url||this.element.queue("tabs").length!==0&&$.data(a,"cache.tabs")){this.element.dequeue("tabs");return }this.lis.eq(index).addClass("ui-state-processing");if(o.spinner){var span=$("span",a);span.data("label.tabs",span.html()).html(o.spinner)}this.xhr=$.ajax($.extend({},o.ajaxOptions,{url:url,success:function(r,s){self.element.find(self._sanitizeSelector(a.hash)).html(r);self._cleanup();if(o.cache){$.data(a,"cache.tabs",true)}self._trigger("load",null,self._ui(self.anchors[index],self.panels[index]));try{o.ajaxOptions.success(r,s)}catch(e){}},error:function(xhr,s,e){self._cleanup();self._trigger("load",null,self._ui(self.anchors[index],self.panels[index]));try{o.ajaxOptions.error(xhr,s,index,a)}catch(e){}}}));self.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(index,url){this.anchors.eq(index).removeData("cache.tabs").data("load.tabs",url);return this},length:function(){return this.anchors.length}});$.extend($.ui.tabs,{version:"1.8.12"});$.extend($.ui.tabs.prototype,{rotation:null,rotate:function(ms,continuing){var self=this,o=this.options;var rotate=self._rotate||(self._rotate=function(e){clearTimeout(self.rotation);self.rotation=setTimeout(function(){var t=o.selected;self.select(++t<self.anchors.length?t:0)},ms);if(e){e.stopPropagation()}});var stop=self._unrotate||(self._unrotate=!continuing?function(e){if(e.clientX){self.rotate(null)}}:function(e){t=o.selected;rotate()});if(ms){this.element.bind("tabsshow",rotate);this.anchors.bind(o.event+".tabs",stop);rotate()}else{clearTimeout(self.rotation);this.element.unbind("tabsshow",rotate);this.anchors.unbind(o.event+".tabs",stop);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
\ No newline at end of file
diff --git a/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.widget.js b/docs/jscripts/infusion/lib/jquery/ui/js/jquery.ui.widget.js
new file mode 100644 (file)
index 0000000..1c59895
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+ * jQuery UI Widget 1.8.12
+ *
+ * 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/Widget
+ */
+(function($,undefined){if($.cleanData){var _cleanData=$.cleanData;$.cleanData=function(elems){for(var i=0,elem;(elem=elems[i])!=null;i++){$(elem).triggerHandler("remove")}_cleanData(elems)}}else{var _remove=$.fn.remove;$.fn.remove=function(selector,keepData){return this.each(function(){if(!keepData){if(!selector||$.filter(selector,[this]).length){$("*",this).add([this]).each(function(){$(this).triggerHandler("remove")})}}return _remove.call($(this),selector,keepData)})}}$.widget=function(name,base,prototype){var namespace=name.split(".")[0],fullName;name=name.split(".")[1];fullName=namespace+"-"+name;if(!prototype){prototype=base;base=$.Widget}$.expr[":"][fullName]=function(elem){return !!$.data(elem,name)};$[namespace]=$[namespace]||{};$[namespace][name]=function(options,element){if(arguments.length){this._createWidget(options,element)}};var basePrototype=new base();basePrototype.options=$.extend(true,{},basePrototype.options);$[namespace][name].prototype=$.extend(true,basePrototype,{namespace:namespace,widgetName:name,widgetEventPrefix:$[namespace][name].prototype.widgetEventPrefix||name,widgetBaseClass:fullName},prototype);$.widget.bridge(name,$[namespace][name])};$.widget.bridge=function(name,object){$.fn[name]=function(options){var isMethodCall=typeof options==="string",args=Array.prototype.slice.call(arguments,1),returnValue=this;options=!isMethodCall&&args.length?$.extend.apply(null,[true,options].concat(args)):options;if(isMethodCall&&options.charAt(0)==="_"){return returnValue}if(isMethodCall){this.each(function(){var instance=$.data(this,name),methodValue=instance&&$.isFunction(instance[options])?instance[options].apply(instance,args):instance;if(methodValue!==instance&&methodValue!==undefined){returnValue=methodValue;return false}})}else{this.each(function(){var instance=$.data(this,name);if(instance){instance.option(options||{})._init()}else{$.data(this,name,new object(options,this))}})}return returnValue}};$.Widget=function(options,element){if(arguments.length){this._createWidget(options,element)}};$.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(options,element){$.data(element,this.widgetName,this);this.element=$(element);this.options=$.extend(true,{},this.options,this._getCreateOptions(),options);var self=this;this.element.bind("remove."+this.widgetName,function(){self.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return $.metadata&&$.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(key,value){var options=key;if(arguments.length===0){return $.extend({},this.options)}if(typeof key==="string"){if(value===undefined){return this.options[key]}options={};options[key]=value}this._setOptions(options);return this},_setOptions:function(options){var self=this;$.each(options,function(key,value){self._setOption(key,value)});return this},_setOption:function(key,value){this.options[key]=value;if(key==="disabled"){this.widget()[value?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",value)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(type,event,data){var callback=this.options[type];event=$.Event(event);event.type=(type===this.widgetEventPrefix?type:this.widgetEventPrefix+type).toLowerCase();data=data||{};if(event.originalEvent){for(var i=$.event.props.length,prop;i;){prop=$.event.props[--i];event[prop]=event.originalEvent[prop]}}this.element.trigger(event,data);return !($.isFunction(callback)&&callback.call(this.element[0],event,data)===false||event.isDefaultPrevented())}}})(jQuery);
\ No newline at end of file
index 8caa071..c4f5d9f 100644 (file)
@@ -1 +1,2 @@
-The ui.*.js files in this folder were taken from the 1.7 bundle, downloaded Mar. 11, 2009
+The jquery.ui.*.js files in this folder were taken from the 1.8.12 bundle, downloaded Apr. 23, 2011
+http://jquery-ui.googlecode.com/files/jquery-ui-1.8.12.zip
index c5a8164..4b74066 100644 (file)
@@ -1,14 +1,4 @@
-/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
-       Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
-       This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
+/*     SWFObject v2.2 <http://code.google.com/p/swfobject/> 
+       is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
 */
-var swfobject=function(){var UNDEF="undefined",OBJECT="object",SHOCKWAVE_FLASH="Shockwave Flash",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE="application/x-shockwave-flash",EXPRESS_INSTALL_ID="SWFObjectExprInst",win=window,doc=document,nav=navigator,domLoadFnArr=[],regObjArr=[],objIdArr=[],listenersArr=[],script,timer=null,storedAltContent=null,storedAltContentId=null,isDomLoaded=false,isExpressInstallActive=false;var ua=function(){var w3cdom=typeof doc.getElementById!=UNDEF&&typeof doc.getElementsByTagName!=UNDEF&&typeof doc.createElement!=UNDEF,playerVersion=[0,0,0],d=null;if(typeof nav.plugins!=UNDEF&&typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){d=nav.plugins[SHOCKWAVE_FLASH].description;if(d&&!(typeof nav.mimeTypes!=UNDEF&&nav.mimeTypes[FLASH_MIME_TYPE]&&!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);playerVersion[2]=/r/.test(d)?parseInt(d.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof win.ActiveXObject!=UNDEF){var a=null,fp6Crash=false;try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".7")}catch(e){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".6");playerVersion=[6,0,21];a.AllowScriptAccess="always"}catch(e){if(playerVersion[0]==6){fp6Crash=true}}if(!fp6Crash){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX)}catch(e){}}}if(!fp6Crash&&a){try{d=a.GetVariable("$version");if(d){d=d.split(" ")[1].split(",");playerVersion=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}catch(e){}}}}var u=nav.userAgent.toLowerCase(),p=nav.platform.toLowerCase(),webkit=/webkit/.test(u)?parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,ie=false,windows=p?/win/.test(p):/win/.test(u),mac=p?/mac/.test(p):/mac/.test(u);
-/*@cc_on
-                       ie = true;
-                       @if (@_win32)
-                               windows = true;
-                       @elif (@_mac)
-                               mac = true;
-                       @end
-               @*/
-return{w3cdom:w3cdom,pv:playerVersion,webkit:webkit,ie:ie,win:windows,mac:mac}}();var onDomLoad=function(){if(!ua.w3cdom){return }addDomLoadEvent(main);if(ua.ie&&ua.win){try{doc.write("<script id=__ie_ondomload defer=true src=//:><\/script>");script=getElementById("__ie_ondomload");if(script){addListener(script,"onreadystatechange",checkReadyState)}}catch(e){}}if(ua.webkit&&typeof doc.readyState!=UNDEF){timer=setInterval(function(){if(/loaded|complete/.test(doc.readyState)){callDomLoadFunctions()}},10)}if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("DOMContentLoaded",callDomLoadFunctions,null)}addLoadEvent(callDomLoadFunctions)}();function checkReadyState(){if(script.readyState=="complete"){script.parentNode.removeChild(script);callDomLoadFunctions()}}function callDomLoadFunctions(){if(isDomLoaded){return }if(ua.ie&&ua.win){var s=createElement("span");try{var t=doc.getElementsByTagName("body")[0].appendChild(s);t.parentNode.removeChild(t)}catch(e){return }}isDomLoaded=true;if(timer){clearInterval(timer);timer=null}var dl=domLoadFnArr.length;for(var i=0;i<dl;i++){domLoadFnArr[i]()}}function addDomLoadEvent(fn){if(isDomLoaded){fn()}else{domLoadFnArr[domLoadFnArr.length]=fn}}function addLoadEvent(fn){if(typeof win.addEventListener!=UNDEF){win.addEventListener("load",fn,false)}else{if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("load",fn,false)}else{if(typeof win.attachEvent!=UNDEF){addListener(win,"onload",fn)}else{if(typeof win.onload=="function"){var fnOld=win.onload;win.onload=function(){fnOld();fn()}}else{win.onload=fn}}}}}function main(){var rl=regObjArr.length;for(var i=0;i<rl;i++){var id=regObjArr[i].id;if(ua.pv[0]>0){var obj=getElementById(id);if(obj){regObjArr[i].width=obj.getAttribute("width")?obj.getAttribute("width"):"0";regObjArr[i].height=obj.getAttribute("height")?obj.getAttribute("height"):"0";if(hasPlayerVersion(regObjArr[i].swfVersion)){if(ua.webkit&&ua.webkit<312){fixParams(obj)}setVisibility(id,true)}else{if(regObjArr[i].expressInstall&&!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)){showExpressInstall(regObjArr[i])}else{displayAltContent(obj)}}}}else{setVisibility(id,true)}}}function fixParams(obj){var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var e=createElement("embed"),a=nestedObj.attributes;if(a){var al=a.length;for(var i=0;i<al;i++){if(a[i].nodeName=="DATA"){e.setAttribute("src",a[i].nodeValue)}else{e.setAttribute(a[i].nodeName,a[i].nodeValue)}}}var c=nestedObj.childNodes;if(c){var cl=c.length;for(var j=0;j<cl;j++){if(c[j].nodeType==1&&c[j].nodeName=="PARAM"){e.setAttribute(c[j].getAttribute("name"),c[j].getAttribute("value"))}}}obj.parentNode.replaceChild(e,obj)}}function showExpressInstall(regObj){isExpressInstallActive=true;var obj=getElementById(regObj.id);if(obj){if(regObj.altContentId){var ac=getElementById(regObj.altContentId);if(ac){storedAltContent=ac;storedAltContentId=regObj.altContentId}}else{storedAltContent=abstractAltContent(obj)}if(!(/%$/.test(regObj.width))&&parseInt(regObj.width,10)<310){regObj.width="310"}if(!(/%$/.test(regObj.height))&&parseInt(regObj.height,10)<137){regObj.height="137"}doc.title=doc.title.slice(0,47)+" - Flash Player Installation";var pt=ua.ie&&ua.win?"ActiveX":"PlugIn",dt=doc.title,fv="MMredirectURL="+win.location+"&MMplayerType="+pt+"&MMdoctitle="+dt,replaceId=regObj.id;if(ua.ie&&ua.win&&obj.readyState!=4){var newObj=createElement("div");replaceId+="SWFObjectNew";newObj.setAttribute("id",replaceId);obj.parentNode.insertBefore(newObj,obj);obj.style.display="none";var fn=function(){obj.parentNode.removeChild(obj)};addListener(win,"onload",fn)}createSWF({data:regObj.expressInstall,id:EXPRESS_INSTALL_ID,width:regObj.width,height:regObj.height},{flashvars:fv},replaceId)}}function displayAltContent(obj){if(ua.ie&&ua.win&&obj.readyState!=4){var el=createElement("div");obj.parentNode.insertBefore(el,obj);el.parentNode.replaceChild(abstractAltContent(obj),el);obj.style.display="none";var fn=function(){obj.parentNode.removeChild(obj)};addListener(win,"onload",fn)}else{obj.parentNode.replaceChild(abstractAltContent(obj),obj)}}function abstractAltContent(obj){var ac=createElement("div");if(ua.win&&ua.ie){ac.innerHTML=obj.innerHTML}else{var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var c=nestedObj.childNodes;if(c){var cl=c.length;for(var i=0;i<cl;i++){if(!(c[i].nodeType==1&&c[i].nodeName=="PARAM")&&!(c[i].nodeType==8)){ac.appendChild(c[i].cloneNode(true))}}}}}return ac}function createSWF(attObj,parObj,id){var r,el=getElementById(id);if(el){if(typeof attObj.id==UNDEF){attObj.id=id}if(ua.ie&&ua.win){var att="";for(var i in attObj){if(attObj[i]!=Object.prototype[i]){if(i.toLowerCase()=="data"){parObj.movie=attObj[i]}else{if(i.toLowerCase()=="styleclass"){att+=' class="'+attObj[i]+'"'}else{if(i.toLowerCase()!="classid"){att+=" "+i+'="'+attObj[i]+'"'}}}}}var par="";for(var j in parObj){if(parObj[j]!=Object.prototype[j]){par+='<param name="'+j+'" value="'+parObj[j]+'" />'}}el.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+att+">"+par+"</object>";objIdArr[objIdArr.length]=attObj.id;r=getElementById(attObj.id)}else{if(ua.webkit&&ua.webkit<312){var e=createElement("embed");e.setAttribute("type",FLASH_MIME_TYPE);for(var k in attObj){if(attObj[k]!=Object.prototype[k]){if(k.toLowerCase()=="data"){e.setAttribute("src",attObj[k])}else{if(k.toLowerCase()=="styleclass"){e.setAttribute("class",attObj[k])}else{if(k.toLowerCase()!="classid"){e.setAttribute(k,attObj[k])}}}}}for(var l in parObj){if(parObj[l]!=Object.prototype[l]){if(l.toLowerCase()!="movie"){e.setAttribute(l,parObj[l])}}}el.parentNode.replaceChild(e,el);r=e}else{var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);for(var m in attObj){if(attObj[m]!=Object.prototype[m]){if(m.toLowerCase()=="styleclass"){o.setAttribute("class",attObj[m])}else{if(m.toLowerCase()!="classid"){o.setAttribute(m,attObj[m])}}}}for(var n in parObj){if(parObj[n]!=Object.prototype[n]&&n.toLowerCase()!="movie"){createObjParam(o,n,parObj[n])}}el.parentNode.replaceChild(o,el);r=o}}}return r}function createObjParam(el,pName,pValue){var p=createElement("param");p.setAttribute("name",pName);p.setAttribute("value",pValue);el.appendChild(p)}function removeSWF(id){var obj=getElementById(id);if(obj&&(obj.nodeName=="OBJECT"||obj.nodeName=="EMBED")){if(ua.ie&&ua.win){if(obj.readyState==4){removeObjectInIE(id)}else{win.attachEvent("onload",function(){removeObjectInIE(id)})}}else{obj.parentNode.removeChild(obj)}}}function removeObjectInIE(id){var obj=getElementById(id);if(obj){for(var i in obj){if(typeof obj[i]=="function"){obj[i]=null}}obj.parentNode.removeChild(obj)}}function getElementById(id){var el=null;try{el=doc.getElementById(id)}catch(e){}return el}function createElement(el){return doc.createElement(el)}function addListener(target,eventType,fn){target.attachEvent(eventType,fn);listenersArr[listenersArr.length]=[target,eventType,fn]}function hasPlayerVersion(rv){var pv=ua.pv,v=rv.split(".");v[0]=parseInt(v[0],10);v[1]=parseInt(v[1],10)||0;v[2]=parseInt(v[2],10)||0;return(pv[0]>v[0]||(pv[0]==v[0]&&pv[1]>v[1])||(pv[0]==v[0]&&pv[1]==v[1]&&pv[2]>=v[2]))?true:false}function createCSS(sel,decl){if(ua.ie&&ua.mac){return }var h=doc.getElementsByTagName("head")[0],s=createElement("style");s.setAttribute("type","text/css");s.setAttribute("media","screen");if(!(ua.ie&&ua.win)&&typeof doc.createTextNode!=UNDEF){s.appendChild(doc.createTextNode(sel+" {"+decl+"}"))}h.appendChild(s);if(ua.ie&&ua.win&&typeof doc.styleSheets!=UNDEF&&doc.styleSheets.length>0){var ls=doc.styleSheets[doc.styleSheets.length-1];if(typeof ls.addRule==OBJECT){ls.addRule(sel,decl)}}}function setVisibility(id,isVisible){var v=isVisible?"visible":"hidden";if(isDomLoaded&&getElementById(id)){getElementById(id).style.visibility=v}else{createCSS("#"+id,"visibility:"+v)}}function urlEncodeIfNecessary(s){var regex=/[\\\"<>\.;]/;var hasBadChars=regex.exec(s)!=null;return hasBadChars?encodeURIComponent(s):s}var cleanup=function(){if(ua.ie&&ua.win){window.attachEvent("onunload",function(){var ll=listenersArr.length;for(var i=0;i<ll;i++){listenersArr[i][0].detachEvent(listenersArr[i][1],listenersArr[i][2])}var il=objIdArr.length;for(var j=0;j<il;j++){removeSWF(objIdArr[j])}for(var k in ua){ua[k]=null}ua=null;for(var l in swfobject){swfobject[l]=null}swfobject=null})}}();return{registerObject:function(objectIdStr,swfVersionStr,xiSwfUrlStr){if(!ua.w3cdom||!objectIdStr||!swfVersionStr){return }var regObj={};regObj.id=objectIdStr;regObj.swfVersion=swfVersionStr;regObj.expressInstall=xiSwfUrlStr?xiSwfUrlStr:false;regObjArr[regObjArr.length]=regObj;setVisibility(objectIdStr,false)},getObjectById:function(objectIdStr){var r=null;if(ua.w3cdom){var o=getElementById(objectIdStr);if(o){var n=o.getElementsByTagName(OBJECT)[0];if(!n||(n&&typeof o.SetVariable!=UNDEF)){r=o}else{if(typeof n.SetVariable!=UNDEF){r=n}}}}return r},embedSWF:function(swfUrlStr,replaceElemIdStr,widthStr,heightStr,swfVersionStr,xiSwfUrlStr,flashvarsObj,parObj,attObj){if(!ua.w3cdom||!swfUrlStr||!replaceElemIdStr||!widthStr||!heightStr||!swfVersionStr){return }widthStr+="";heightStr+="";if(hasPlayerVersion(swfVersionStr)){setVisibility(replaceElemIdStr,false);var att={};if(attObj&&typeof attObj===OBJECT){for(var i in attObj){if(attObj[i]!=Object.prototype[i]){att[i]=attObj[i]}}}att.data=swfUrlStr;att.width=widthStr;att.height=heightStr;var par={};if(parObj&&typeof parObj===OBJECT){for(var j in parObj){if(parObj[j]!=Object.prototype[j]){par[j]=parObj[j]}}}if(flashvarsObj&&typeof flashvarsObj===OBJECT){for(var k in flashvarsObj){if(flashvarsObj[k]!=Object.prototype[k]){if(typeof par.flashvars!=UNDEF){par.flashvars+="&"+k+"="+flashvarsObj[k]}else{par.flashvars=k+"="+flashvarsObj[k]}}}}addDomLoadEvent(function(){createSWF(att,par,replaceElemIdStr);if(att.id==replaceElemIdStr){setVisibility(replaceElemIdStr,true)}})}else{if(xiSwfUrlStr&&!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)){isExpressInstallActive=true;setVisibility(replaceElemIdStr,false);addDomLoadEvent(function(){var regObj={};regObj.id=regObj.altContentId=replaceElemIdStr;regObj.width=widthStr;regObj.height=heightStr;regObj.expressInstall=xiSwfUrlStr;showExpressInstall(regObj)})}}},getFlashPlayerVersion:function(){return{major:ua.pv[0],minor:ua.pv[1],release:ua.pv[2]}},hasFlashPlayerVersion:hasPlayerVersion,createSWF:function(attObj,parObj,replaceElemIdStr){if(ua.w3cdom){return createSWF(attObj,parObj,replaceElemIdStr)}else{return undefined}},removeSWF:function(objElemIdStr){if(ua.w3cdom){removeSWF(objElemIdStr)}},createCSS:function(sel,decl){if(ua.w3cdom){createCSS(sel,decl)}},addDomLoadEvent:addDomLoadEvent,addLoadEvent:addLoadEvent,getQueryParamValue:function(param){var q=doc.location.search||doc.location.hash;if(param==null){return urlEncodeIfNecessary(q)}if(q){var pairs=q.substring(1).split("&");for(var i=0;i<pairs.length;i++){if(pairs[i].substring(0,pairs[i].indexOf("="))==param){return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(isExpressInstallActive&&storedAltContent){var obj=getElementById(EXPRESS_INSTALL_ID);if(obj){obj.parentNode.replaceChild(storedAltContent,obj);if(storedAltContentId){setVisibility(storedAltContentId,true);if(ua.ie&&ua.win){storedAltContent.style.display="block"}}storedAltContent=null;storedAltContentId=null;isExpressInstallActive=false}}}}}();
\ No newline at end of file
+var swfobject=function(){var UNDEF="undefined",OBJECT="object",SHOCKWAVE_FLASH="Shockwave Flash",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE="application/x-shockwave-flash",EXPRESS_INSTALL_ID="SWFObjectExprInst",ON_READY_STATE_CHANGE="onreadystatechange",win=window,doc=document,nav=navigator,plugin=false,domLoadFnArr=[main],regObjArr=[],objIdArr=[],listenersArr=[],storedAltContent,storedAltContentId,storedCallbackFn,storedCallbackObj,isDomLoaded=false,isExpressInstallActive=false,dynamicStylesheet,dynamicStylesheetMedia,autoHideShow=true,ua=function(){var w3cdom=typeof doc.getElementById!=UNDEF&&typeof doc.getElementsByTagName!=UNDEF&&typeof doc.createElement!=UNDEF,u=nav.userAgent.toLowerCase(),p=nav.platform.toLowerCase(),windows=p?/win/.test(p):/win/.test(u),mac=p?/mac/.test(p):/mac/.test(u),webkit=/webkit/.test(u)?parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,ie=!+"\v1",playerVersion=[0,0,0],d=null;if(typeof nav.plugins!=UNDEF&&typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){d=nav.plugins[SHOCKWAVE_FLASH].description;if(d&&!(typeof nav.mimeTypes!=UNDEF&&nav.mimeTypes[FLASH_MIME_TYPE]&&!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){plugin=true;ie=false;d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);playerVersion[2]=/[a-zA-Z]/.test(d)?parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof win.ActiveXObject!=UNDEF){try{var a=new ActiveXObject(SHOCKWAVE_FLASH_AX);if(a){d=a.GetVariable("$version");if(d){ie=true;d=d.split(" ")[1].split(",");playerVersion=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}}catch(e){}}}return{w3:w3cdom,pv:playerVersion,wk:webkit,ie:ie,win:windows,mac:mac}}(),onDomLoad=function(){if(!ua.w3){return }if((typeof doc.readyState!=UNDEF&&doc.readyState=="complete")||(typeof doc.readyState==UNDEF&&(doc.getElementsByTagName("body")[0]||doc.body))){callDomLoadFunctions()}if(!isDomLoaded){if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("DOMContentLoaded",callDomLoadFunctions,false)}if(ua.ie&&ua.win){doc.attachEvent(ON_READY_STATE_CHANGE,function(){if(doc.readyState=="complete"){doc.detachEvent(ON_READY_STATE_CHANGE,arguments.callee);callDomLoadFunctions()}});if(win==top){(function(){if(isDomLoaded){return }try{doc.documentElement.doScroll("left")}catch(e){setTimeout(arguments.callee,0);return }callDomLoadFunctions()})()}}if(ua.wk){(function(){if(isDomLoaded){return }if(!/loaded|complete/.test(doc.readyState)){setTimeout(arguments.callee,0);return }callDomLoadFunctions()})()}addLoadEvent(callDomLoadFunctions)}}();function callDomLoadFunctions(){if(isDomLoaded){return }try{var t=doc.getElementsByTagName("body")[0].appendChild(createElement("span"));t.parentNode.removeChild(t)}catch(e){return }isDomLoaded=true;var dl=domLoadFnArr.length;for(var i=0;i<dl;i++){domLoadFnArr[i]()}}function addDomLoadEvent(fn){if(isDomLoaded){fn()}else{domLoadFnArr[domLoadFnArr.length]=fn}}function addLoadEvent(fn){if(typeof win.addEventListener!=UNDEF){win.addEventListener("load",fn,false)}else{if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("load",fn,false)}else{if(typeof win.attachEvent!=UNDEF){addListener(win,"onload",fn)}else{if(typeof win.onload=="function"){var fnOld=win.onload;win.onload=function(){fnOld();fn()}}else{win.onload=fn}}}}}function main(){if(plugin){testPlayerVersion()}else{matchVersions()}}function testPlayerVersion(){var b=doc.getElementsByTagName("body")[0];var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);var t=b.appendChild(o);if(t){var counter=0;(function(){if(typeof t.GetVariable!=UNDEF){var d=t.GetVariable("$version");if(d){d=d.split(" ")[1].split(",");ua.pv=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}else{if(counter<10){counter++;setTimeout(arguments.callee,10);return }}b.removeChild(o);t=null;matchVersions()})()}else{matchVersions()}}function matchVersions(){var rl=regObjArr.length;if(rl>0){for(var i=0;i<rl;i++){var id=regObjArr[i].id;var cb=regObjArr[i].callbackFn;var cbObj={success:false,id:id};if(ua.pv[0]>0){var obj=getElementById(id);if(obj){if(hasPlayerVersion(regObjArr[i].swfVersion)&&!(ua.wk&&ua.wk<312)){setVisibility(id,true);if(cb){cbObj.success=true;cbObj.ref=getObjectById(id);cb(cbObj)}}else{if(regObjArr[i].expressInstall&&canExpressInstall()){var att={};att.data=regObjArr[i].expressInstall;att.width=obj.getAttribute("width")||"0";att.height=obj.getAttribute("height")||"0";if(obj.getAttribute("class")){att.styleclass=obj.getAttribute("class")}if(obj.getAttribute("align")){att.align=obj.getAttribute("align")}var par={};var p=obj.getElementsByTagName("param");var pl=p.length;for(var j=0;j<pl;j++){if(p[j].getAttribute("name").toLowerCase()!="movie"){par[p[j].getAttribute("name")]=p[j].getAttribute("value")}}showExpressInstall(att,par,id,cb)}else{displayAltContent(obj);if(cb){cb(cbObj)}}}}}else{setVisibility(id,true);if(cb){var o=getObjectById(id);if(o&&typeof o.SetVariable!=UNDEF){cbObj.success=true;cbObj.ref=o}cb(cbObj)}}}}}function getObjectById(objectIdStr){var r=null;var o=getElementById(objectIdStr);if(o&&o.nodeName=="OBJECT"){if(typeof o.SetVariable!=UNDEF){r=o}else{var n=o.getElementsByTagName(OBJECT)[0];if(n){r=n}}}return r}function canExpressInstall(){return !isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)&&!(ua.wk&&ua.wk<312)}function showExpressInstall(att,par,replaceElemIdStr,callbackFn){isExpressInstallActive=true;storedCallbackFn=callbackFn||null;storedCallbackObj={success:false,id:replaceElemIdStr};var obj=getElementById(replaceElemIdStr);if(obj){if(obj.nodeName=="OBJECT"){storedAltContent=abstractAltContent(obj);storedAltContentId=null}else{storedAltContent=obj;storedAltContentId=replaceElemIdStr}att.id=EXPRESS_INSTALL_ID;if(typeof att.width==UNDEF||(!/%$/.test(att.width)&&parseInt(att.width,10)<310)){att.width="310"}if(typeof att.height==UNDEF||(!/%$/.test(att.height)&&parseInt(att.height,10)<137)){att.height="137"}doc.title=doc.title.slice(0,47)+" - Flash Player Installation";var pt=ua.ie&&ua.win?"ActiveX":"PlugIn",fv="MMredirectURL="+win.location.toString().replace(/&/g,"%26")+"&MMplayerType="+pt+"&MMdoctitle="+doc.title;if(typeof par.flashvars!=UNDEF){par.flashvars+="&"+fv}else{par.flashvars=fv}if(ua.ie&&ua.win&&obj.readyState!=4){var newObj=createElement("div");replaceElemIdStr+="SWFObjectNew";newObj.setAttribute("id",replaceElemIdStr);obj.parentNode.insertBefore(newObj,obj);obj.style.display="none";(function(){if(obj.readyState==4){obj.parentNode.removeChild(obj)}else{setTimeout(arguments.callee,10)}})()}createSWF(att,par,replaceElemIdStr)}}function displayAltContent(obj){if(ua.ie&&ua.win&&obj.readyState!=4){var el=createElement("div");obj.parentNode.insertBefore(el,obj);el.parentNode.replaceChild(abstractAltContent(obj),el);obj.style.display="none";(function(){if(obj.readyState==4){obj.parentNode.removeChild(obj)}else{setTimeout(arguments.callee,10)}})()}else{obj.parentNode.replaceChild(abstractAltContent(obj),obj)}}function abstractAltContent(obj){var ac=createElement("div");if(ua.win&&ua.ie){ac.innerHTML=obj.innerHTML}else{var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var c=nestedObj.childNodes;if(c){var cl=c.length;for(var i=0;i<cl;i++){if(!(c[i].nodeType==1&&c[i].nodeName=="PARAM")&&!(c[i].nodeType==8)){ac.appendChild(c[i].cloneNode(true))}}}}}return ac}function createSWF(attObj,parObj,id){var r,el=getElementById(id);if(ua.wk&&ua.wk<312){return r}if(el){if(typeof attObj.id==UNDEF){attObj.id=id}if(ua.ie&&ua.win){var att="";for(var i in attObj){if(attObj[i]!=Object.prototype[i]){if(i.toLowerCase()=="data"){parObj.movie=attObj[i]}else{if(i.toLowerCase()=="styleclass"){att+=' class="'+attObj[i]+'"'}else{if(i.toLowerCase()!="classid"){att+=" "+i+'="'+attObj[i]+'"'}}}}}var par="";for(var j in parObj){if(parObj[j]!=Object.prototype[j]){par+='<param name="'+j+'" value="'+parObj[j]+'" />'}}el.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+att+">"+par+"</object>";objIdArr[objIdArr.length]=attObj.id;r=getElementById(attObj.id)}else{var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);for(var m in attObj){if(attObj[m]!=Object.prototype[m]){if(m.toLowerCase()=="styleclass"){o.setAttribute("class",attObj[m])}else{if(m.toLowerCase()!="classid"){o.setAttribute(m,attObj[m])}}}}for(var n in parObj){if(parObj[n]!=Object.prototype[n]&&n.toLowerCase()!="movie"){createObjParam(o,n,parObj[n])}}el.parentNode.replaceChild(o,el);r=o}}return r}function createObjParam(el,pName,pValue){var p=createElement("param");p.setAttribute("name",pName);p.setAttribute("value",pValue);el.appendChild(p)}function removeSWF(id){var obj=getElementById(id);if(obj&&obj.nodeName=="OBJECT"){if(ua.ie&&ua.win){obj.style.display="none";(function(){if(obj.readyState==4){removeObjectInIE(id)}else{setTimeout(arguments.callee,10)}})()}else{obj.parentNode.removeChild(obj)}}}function removeObjectInIE(id){var obj=getElementById(id);if(obj){for(var i in obj){if(typeof obj[i]=="function"){obj[i]=null}}obj.parentNode.removeChild(obj)}}function getElementById(id){var el=null;try{el=doc.getElementById(id)}catch(e){}return el}function createElement(el){return doc.createElement(el)}function addListener(target,eventType,fn){target.attachEvent(eventType,fn);listenersArr[listenersArr.length]=[target,eventType,fn]}function hasPlayerVersion(rv){var pv=ua.pv,v=rv.split(".");v[0]=parseInt(v[0],10);v[1]=parseInt(v[1],10)||0;v[2]=parseInt(v[2],10)||0;return(pv[0]>v[0]||(pv[0]==v[0]&&pv[1]>v[1])||(pv[0]==v[0]&&pv[1]==v[1]&&pv[2]>=v[2]))?true:false}function createCSS(sel,decl,media,newStyle){if(ua.ie&&ua.mac){return }var h=doc.getElementsByTagName("head")[0];if(!h){return }var m=(media&&typeof media=="string")?media:"screen";if(newStyle){dynamicStylesheet=null;dynamicStylesheetMedia=null}if(!dynamicStylesheet||dynamicStylesheetMedia!=m){var s=createElement("style");s.setAttribute("type","text/css");s.setAttribute("media",m);dynamicStylesheet=h.appendChild(s);if(ua.ie&&ua.win&&typeof doc.styleSheets!=UNDEF&&doc.styleSheets.length>0){dynamicStylesheet=doc.styleSheets[doc.styleSheets.length-1]}dynamicStylesheetMedia=m}if(ua.ie&&ua.win){if(dynamicStylesheet&&typeof dynamicStylesheet.addRule==OBJECT){dynamicStylesheet.addRule(sel,decl)}}else{if(dynamicStylesheet&&typeof doc.createTextNode!=UNDEF){dynamicStylesheet.appendChild(doc.createTextNode(sel+" {"+decl+"}"))}}}function setVisibility(id,isVisible){if(!autoHideShow){return }var v=isVisible?"visible":"hidden";if(isDomLoaded&&getElementById(id)){getElementById(id).style.visibility=v}else{createCSS("#"+id,"visibility:"+v)}}function urlEncodeIfNecessary(s){var regex=/[\\\"<>\.;]/;var hasBadChars=regex.exec(s)!=null;return hasBadChars&&typeof encodeURIComponent!=UNDEF?encodeURIComponent(s):s}var cleanup=function(){if(ua.ie&&ua.win){window.attachEvent("onunload",function(){var ll=listenersArr.length;for(var i=0;i<ll;i++){listenersArr[i][0].detachEvent(listenersArr[i][1],listenersArr[i][2])}var il=objIdArr.length;for(var j=0;j<il;j++){removeSWF(objIdArr[j])}for(var k in ua){ua[k]=null}ua=null;for(var l in swfobject){swfobject[l]=null}swfobject=null})}}();return{registerObject:function(objectIdStr,swfVersionStr,xiSwfUrlStr,callbackFn){if(ua.w3&&objectIdStr&&swfVersionStr){var regObj={};regObj.id=objectIdStr;regObj.swfVersion=swfVersionStr;regObj.expressInstall=xiSwfUrlStr;regObj.callbackFn=callbackFn;regObjArr[regObjArr.length]=regObj;setVisibility(objectIdStr,false)}else{if(callbackFn){callbackFn({success:false,id:objectIdStr})}}},getObjectById:function(objectIdStr){if(ua.w3){return getObjectById(objectIdStr)}},embedSWF:function(swfUrlStr,replaceElemIdStr,widthStr,heightStr,swfVersionStr,xiSwfUrlStr,flashvarsObj,parObj,attObj,callbackFn){var callbackObj={success:false,id:replaceElemIdStr};if(ua.w3&&!(ua.wk&&ua.wk<312)&&swfUrlStr&&replaceElemIdStr&&widthStr&&heightStr&&swfVersionStr){setVisibility(replaceElemIdStr,false);addDomLoadEvent(function(){widthStr+="";heightStr+="";var att={};if(attObj&&typeof attObj===OBJECT){for(var i in attObj){att[i]=attObj[i]}}att.data=swfUrlStr;att.width=widthStr;att.height=heightStr;var par={};if(parObj&&typeof parObj===OBJECT){for(var j in parObj){par[j]=parObj[j]}}if(flashvarsObj&&typeof flashvarsObj===OBJECT){for(var k in flashvarsObj){if(typeof par.flashvars!=UNDEF){par.flashvars+="&"+k+"="+flashvarsObj[k]}else{par.flashvars=k+"="+flashvarsObj[k]}}}if(hasPlayerVersion(swfVersionStr)){var obj=createSWF(att,par,replaceElemIdStr);if(att.id==replaceElemIdStr){setVisibility(replaceElemIdStr,true)}callbackObj.success=true;callbackObj.ref=obj}else{if(xiSwfUrlStr&&canExpressInstall()){att.data=xiSwfUrlStr;showExpressInstall(att,par,replaceElemIdStr,callbackFn);return }else{setVisibility(replaceElemIdStr,true)}}if(callbackFn){callbackFn(callbackObj)}})}else{if(callbackFn){callbackFn(callbackObj)}}},switchOffAutoHideShow:function(){autoHideShow=false},ua:ua,getFlashPlayerVersion:function(){return{major:ua.pv[0],minor:ua.pv[1],release:ua.pv[2]}},hasFlashPlayerVersion:hasPlayerVersion,createSWF:function(attObj,parObj,replaceElemIdStr){if(ua.w3){return createSWF(attObj,parObj,replaceElemIdStr)}else{return undefined}},showExpressInstall:function(att,par,replaceElemIdStr,callbackFn){if(ua.w3&&canExpressInstall()){showExpressInstall(att,par,replaceElemIdStr,callbackFn)}},removeSWF:function(objElemIdStr){if(ua.w3){removeSWF(objElemIdStr)}},createCSS:function(selStr,declStr,mediaStr,newStyleBoolean){if(ua.w3){createCSS(selStr,declStr,mediaStr,newStyleBoolean)}},addDomLoadEvent:addDomLoadEvent,addLoadEvent:addLoadEvent,getQueryParamValue:function(param){var q=doc.location.search||doc.location.hash;if(q){if(/\?/.test(q)){q=q.split("?")[1]}if(param==null){return urlEncodeIfNecessary(q)}var pairs=q.split("&");for(var i=0;i<pairs.length;i++){if(pairs[i].substring(0,pairs[i].indexOf("="))==param){return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(isExpressInstallActive){var obj=getElementById(EXPRESS_INSTALL_ID);if(obj&&storedAltContent){obj.parentNode.replaceChild(storedAltContent,obj);if(storedAltContentId){setVisibility(storedAltContentId,true);if(ua.ie&&ua.win){storedAltContent.style.display="block"}}if(storedCallbackFn){storedCallbackFn(storedCallbackObj)}}isExpressInstallActive=false}}}}();
\ No newline at end of file
index 7de827b..21337af 100644 (file)
@@ -1,18 +1,18 @@
-Fluid is available under either the terms of the New BSD license or the
-Educational Community License, Version 2.0. As a recipient of Fluid, you may
+Infusion is available under either the terms of the New BSD license or the
+Educational Community License, Version 2.0. As a recipient of Infusion, you may
 choose which license to receive this code under (except as noted in per-module
-LICENSE files). All modules are Copyright 2007 University of Toronto except
+LICENSE files). All modules are Copyright 2011 OCAD University except
 where noted otherwise in the code itself, or if the modules reside in a separate
 directory, they may contain explicit declarations of copyright in both the
 LICENSE file in the directory in which they reside and in the code itself. No
 external contributions are allowed under licenses which are fundamentally
-incompatible with the ECL or BSD licenses that Fluid is distributed under.
+incompatible with the ECL or BSD licenses that Infusion is distributed under.
 
 The text of the ECL and BSD licenses is reproduced below.
 
 Educational Community License, Version 2.0
 *************************************
-Copyright 2007 University of Toronto
+Copyright 2011 OCAD University
 
 Educational Community License, Version 2.0, April 2007
 
@@ -196,7 +196,7 @@ END OF TERMS AND CONDITIONS FOR ECL 2.0
 The New BSD license
 **********************
 
-Copyright 2007 University of Toronto.
+Copyright 2011 OCAD University
 
 All rights reserved.
 
@@ -208,7 +208,7 @@ this list of conditions and the following disclaimer.
     * Redistributions in binary form must reproduce the above copyright notice,
 this list of conditions and the following disclaimer in the documentation
 and/or other materials provided with the distribution.
-    * Neither the name of the University of Toronto nor the names of its
+    * Neither the name of OCAD University nor the names of its
 contributors may be used to endorse or promote products derived from this
 software without specific prior written permission.
 
diff --git a/docs/jscripts/infusion/licenses/LICENSE.txt b/docs/jscripts/infusion/licenses/LICENSE.txt
new file mode 100644 (file)
index 0000000..f62ae17
--- /dev/null
@@ -0,0 +1,29 @@
+Version: MPL 1.1
+
+The contents of this directory are subject to the Mozilla Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+http://www.mozilla.org/MPL/
+
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is mozilla.org code.
+The Initial Developer of the Original Code is
+Netscape Communications Corporation.
+Portions created by the Initial Developer are Copyright (C) 1998
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+   emk <VYV03354@nifty.ne.jp>
+   Daniel Glazman <glazman@netscape.com>
+   L. David Baron <dbaron@dbaron.org>
+   Boris Zbarsky <bzbarsky@mit.edu>
+   Mats Palmgren <mats.palmgren@bredband.net>
+   Christian Biesinger <cbiesinger@web.de>
+   Jeff Walden <jwalden+code@mit.edu>
+   Jonathon Jongsma <jonathon.jongsma@collabora.co.uk>, Collabora Ltd.
+   Siraj Razick <siraj.razick@collabora.co.uk>, Collabora Ltd.
+   Daniel Glazman <daniel.glazman@disruptive-innovations.com>
index 585d49e..239b911 100644 (file)
@@ -1,16 +1,18 @@
 
-The code inside the file
-    fastXmlPull.js
-in this folder is based on code taken from XML for <SCRIPT> (http://xmljs.sourceforge.net/),
-which is distributed under the terms of the GNU Lesser General Public Licence (LGPL) 
-(http://www.gnu.org/copyleft/lesser.html#TOC1) and the zlib/libpng License (http://www.opensource.org/licenses/zlib-license.php). 
+The code inside the fastXmlPull.js file in this folder is based on code taken
+from XML for <SCRIPT> (http://xmljs.sourceforge.net/), which is distributed
+under the terms of the GNU Lesser General Public Licence (LGPL)
+(http://www.gnu.org/copyleft/lesser.html#TOC1) and the zlib/libpng License
+(http://www.opensource.org/licenses/zlib-license.php). 
 
-The text of these licenses is reproduced below.
+This code is redistributed in Infusion under the terms of the zlib/libpng
+license. The text of this license is reproduced below.
 
 ========================================================================
 The zlib/libpng License
 
-Copyright (c) 2000 - 2002, 2003 Michael Houghton (mike@idle.org), Raymond Irving and David Joham (djoham@yahoo.com)
+Copyright (c) 2000 - 2002, 2003 Michael Houghton (mike@idle.org), Raymond
+Irving and David Joham (djoham@yahoo.com)
 
 This software is provided 'as-is', without any express or implied
 warranty. In no event will the authors be held liable for any damages
@@ -30,496 +32,3 @@ freely, subject to the following restrictions:
 
     3. This notice may not be removed or altered from any source
     distribution.
-    
-========================================================================
-                 GNU LIBRARY GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
-                   59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL.  It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it.  You can use it for
-your libraries, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library.  If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software.  To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-  Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs.  This
-license, the GNU Library General Public License, applies to certain
-designated libraries.  This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
-  The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it.  Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program.  However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
-  Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries.  We
-concluded that weaker conditions might promote sharing better.
-
-  However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves.  This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them.  (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.)  The hope is that this
-will lead to faster development of free libraries.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, while the latter only
-works together with the library.
-
-  Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
-
-                 GNU LIBRARY GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License").  Each licensee is
-addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-
-  6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    c) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    d) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the 
-    Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
-    Boston, MA  02111-1307  USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
index b857d46..d64d933 100644 (file)
@@ -18,282 +18,3 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-        GNU GENERAL PUBLIC LICENSE
-           Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-          Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-        GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the 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 Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-          NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
index bb35985..f796334 100644 (file)
@@ -1,4 +1,4 @@
-SWFObject v2.1 <http://code.google.com/p/swfobject/>
+SWFObject v2.2 <http://code.google.com/p/swfobject/>
        Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
        This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
        
\ No newline at end of file
index 937926d..67873fb 100644 (file)
@@ -109,7 +109,12 @@ if (isset($this_login, $this_password)) {
        } 
        
        if ($used_cookie) {
-               $sql = "SELECT member_id, login, first_name, second_name, last_name, preferences,password AS pass, language, status, last_login FROM ".TABLE_PREFIX."members WHERE login='$this_login' AND password='$this_password'";
+           #4775: password now store with salt
+           $sql = "SELECT password, last_login FROM " . TABLE_PREFIX . "members WHERE login='$this_login'";
+           $result = mysql_query($sql, $db);
+           $cookieRow = mysql_fetch_assoc($result);
+           $saltedPassword = hash('sha512', $cookieRow['password'] . hash('sha512', $cookieRow['last_login']));
+               $sql = "SELECT member_id, login, first_name, second_name, last_name, preferences,password AS pass, language, status, last_login FROM ".TABLE_PREFIX."members WHERE login='$this_login' AND '$saltedPassword'='$this_password'";
        } else {
                $sql = "SELECT member_id, login, first_name, second_name, last_name, preferences, language, status, password AS pass, last_login FROM ".TABLE_PREFIX."members WHERE (login='$this_login' OR email='$this_login') AND SHA1(CONCAT(password, '$_SESSION[token]'))='$this_password'";
        }
@@ -132,13 +137,16 @@ if (isset($this_login, $this_password)) {
                $_SESSION['is_guest']   = 0;
                $_SESSION['lang']               = $row['language'];
                $_SESSION['course_id']  = 0;
+               $now = date('Y-m-d H:i:s');
 
                if ($auto_login == 1) {
                        $parts = parse_url($_base_href);
                        // update the cookie.. increment to another 2 days
                        $cookie_expire = time()+172800;
+                       // #4775, also look at pref_tab_functions.inc.php setAutoLoginCookie(). Same technique.
+                       $saltedPassword = hash('sha512', $row['pass'] . hash('sha512', $now));
                        ATutor.setcookie('ATLogin', $this_login, $cookie_expire, $parts['path']);
-                       ATutor.setcookie('ATPass',  $row['pass'],  $cookie_expire, $parts['path']);
+                       ATutor.setcookie('ATPass',  $saltedPassword,  $cookie_expire, $parts['path']);
                }
                
                $_SESSION['first_login'] = false;
@@ -147,7 +155,7 @@ if (isset($this_login, $this_password)) {
                    $_SESSION['first_login'] = true;
                }
 
-               $sql = "UPDATE ".TABLE_PREFIX."members SET creation_date=creation_date, last_login=NOW() WHERE member_id=$_SESSION[member_id]";
+               $sql = "UPDATE ".TABLE_PREFIX."members SET creation_date=creation_date, last_login='$now' WHERE member_id=$_SESSION[member_id]";
                mysql_query($sql, $db);
 
                //clear login attempt on successful login
@@ -215,8 +223,6 @@ if (isset($this_login, $this_password)) {
        }
 }
 
-$_SESSION['session_test'] = TRUE;
-
 if (isset($_SESSION['member_id'])) {
        $sql = "DELETE FROM ".TABLE_PREFIX."users_online WHERE member_id=$_SESSION[member_id]";
        $result = @mysql_query($sql, $db);
index 77524f4..80e12ac 100644 (file)
@@ -27,6 +27,11 @@ unset($_SESSION['course_id']);
 unset($_SESSION['prefs']);
 unset($_SESSION['dd_question_ids']);
 unset($_SESSION['flash']);
+unset($_SESSION['userAgent']);
+unset($_SESSION['IPaddress']);
+unset($_SESSION['OBSOLETE']);
+unset($_SESSION['EXPIRES']);
+unset($_SESSION['token']);
 
 $msg->addFeedback('LOGOUT');
 header('Location: login.php');
index 950cf43..88cce18 100644 (file)
@@ -17,7 +17,7 @@ if (admin_authenticate(AT_ADMIN_PRIV_COURSES, TRUE) || admin_authenticate(AT_ADM
 \r
        $this->_pages['mods/_core/courses/admin/courses.php']['title_var'] = 'courses';\r
        $this->_pages['mods/_core/courses/admin/courses.php']['parent']    = AT_NAV_ADMIN;\r
-       $this->_pages['mods/_core/courses/admin/courses.php']['guide']     = 'mods/_core/courses/admin/?p=courses.php';\r
+       $this->_pages['mods/_core/courses/admin/courses.php']['guide']     = 'admin/?p=courses.php';\r
        $this->_pages['mods/_core/courses/admin/courses.php']['children']  = array('mods/_core/courses/admin/create_course.php','mods/_core/enrolment/admin/index.php', 'mods/_core/courses/admin/default_mods.php', 'mods/_core/courses/admin/default_side.php','mods/_core/courses/admin/auto_enroll.php');\r
 \r
                $this->_pages['mods/_core/courses/admin/instructor_login.php']['title_var'] = 'view';\r
@@ -25,15 +25,15 @@ if (admin_authenticate(AT_ADMIN_PRIV_COURSES, TRUE) || admin_authenticate(AT_ADM
 \r
                $this->_pages['mods/_core/courses/admin/create_course.php']['title_var'] = 'create_course';\r
                $this->_pages['mods/_core/courses/admin/create_course.php']['parent']    = 'mods/_core/courses/admin/courses.php';\r
-               $this->_pages['mods/_core/courses/admin/create_course.php']['guide']     = 'mods/_core/courses/admin/?p=creating_courses.php';\r
+               $this->_pages['mods/_core/courses/admin/create_course.php']['guide']     = 'admin/?p=creating_courses.php';\r
 \r
                $this->_pages['mods/_core/courses/admin/default_mods.php']['title_var'] = 'default_modules';\r
                $this->_pages['mods/_core/courses/admin/default_mods.php']['parent']    = 'mods/_core/courses/admin/courses.php';\r
-               $this->_pages['mods/_core/courses/admin/default_mods.php']['guide']     = 'mods/_core/courses/admin/?p=default_student_tools.php';\r
+               $this->_pages['mods/_core/courses/admin/default_mods.php']['guide']     = 'admin/?p=default_student_tools.php';\r
 \r
                $this->_pages['mods/_core/courses/admin/default_side.php']['title_var'] = 'default_side_menu';\r
                $this->_pages['mods/_core/courses/admin/default_side.php']['parent']    = 'mods/_core/courses/admin/courses.php';\r
-               $this->_pages['mods/_core/courses/admin/default_side.php']['guide']     = 'mods/_core/courses/admin/?p=default_side_menu.php';\r
+               $this->_pages['mods/_core/courses/admin/default_side.php']['guide']     = 'admin/?p=default_side_menu.php';\r
 \r
 \r
             $this->_pages['mods/_core/courses/admin/auto_enroll.php']['title_var'] = 'auto_enroll';\r
index cec7e4a..fa80d20 100644 (file)
@@ -35,7 +35,6 @@ if (isset($_POST['submit_yes'])) {
 
 $_GET['cid'] = intval($_REQUEST['cid']);
 
-//$path        = $contentManager->getContentPath($cid);
 
 require(AT_INCLUDE_PATH.'header.inc.php');
 
index 6fcaa02..777e660 100644 (file)
@@ -17,6 +17,9 @@ global $db, $associated_forum;
 
 $get_related_glossary = true;
 require(AT_INCLUDE_PATH.'vitals.inc.php');
+
+authenticate(AT_PRIV_CONTENT);
+
 require(AT_INCLUDE_PATH.'lib/tinymce.inc.php');
 require_once(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php');
 
index f5cd7ae..2cf5ee0 100644 (file)
@@ -118,7 +118,7 @@ function populate_a4a($cid, $content, $formatting){
        $parser = new XML_HTMLSax();
        $parser->set_object($handler);
        $parser->set_element_handler('openHandler','closeHandler');
-       
+
        $my_files               = array();
        $parser->parse($body);
        $my_files = array_unique($my_files);
@@ -145,7 +145,7 @@ function populate_a4a($cid, $content, $formatting){
     
     $a4a = new A4a($cid);
     $db_primary_resources = $a4a->getPrimaryResources();
-    
+
     // clean up the removed resources
     foreach ($db_primary_resources  as $primary_rid=>$db_resource){
         //if this file from our table is not found in the $resource, then it's not used.
@@ -167,7 +167,7 @@ function populate_a4a($cid, $content, $formatting){
 
 // save all changes to the DB
 function save_changes($redir, $current_tab) {
-       global $contentManager, $db, $addslashes, $msg;
+       global $contentManager, $db, $addslashes, $msg, $stripslashes;
        
        $_POST['pid']   = intval($_POST['pid']);
        $_POST['cid']   = intval($_POST['cid']);
@@ -177,10 +177,10 @@ function save_changes($redir, $current_tab) {
        $_POST['title'] = trim($_POST['title']);
        $_POST['head']  = trim($_POST['head']);
        $_POST['use_customized_head']   = isset($_POST['use_customized_head'])?$_POST['use_customized_head']:0;
-       $_POST['body_text']     = trim($_POST['body_text']);
+       $_POST['body_text']     = $stripslashes(trim($_POST['body_text']));
        $_POST['weblink_text'] = trim($_POST['weblink_text']);
        $_POST['formatting'] = intval($_POST['formatting']);
-       $_POST['keywords']      = trim($_POST['keywords']);
+       $_POST['keywords']      = $stripslashes(trim($_POST['keywords']));
        $_POST['test_message'] = trim($_POST['test_message']);
        $_POST['allow_test_export'] = intval($_POST['allow_test_export']);
 
@@ -590,8 +590,6 @@ function paste_from_file() {
                        $msg->addFeedback('FILE_PASTED');
                } else if ($ext == 'txt') {
                        $_POST['body_text'] = file_get_contents($_FILES['uploadedfile_paste']['tmp_name']);
-                       //LAW
-//                     debug($_POST);
                        $msg->addFeedback('FILE_PASTED');
 
                }
index 974b4fa..188bcf8 100644 (file)
@@ -92,8 +92,8 @@ if ($_POST['formatting'] <> 1)
        $msg->addFeedback('NO_A4A_FOR_PLAIN_TEXT');
        $msg->printAll();
 } else {
-       global $db, $content_row;
-       populate_a4a($cid, $_POST['body_text'], $_POST['formatting']);
+       global $db, $content_row, $stripslashes;
+       populate_a4a($cid, $stripslashes($_POST['body_text']), $_POST['formatting']);
        
        include_once(AT_INCLUDE_PATH.'../mods/_core/imsafa/classes/A4a.class.php');
        
index ab29b79..31cbd71 100644 (file)
@@ -107,10 +107,16 @@ while($row = mysql_fetch_assoc($result))
        <span style="font-weight:bold"><?php echo _AT('about_content_tests'); ?></span>
 </div>
 
-<div class="row">
+<input type="hidden" name="allow_test_export" id="disallow_test_export" value="0"/>
+
+<!-- <div class="row">
+This option has been commented out for the timebeing until the ability to export and view 
+tests a part of a CP or CP is actually possible
+
        <?php
        //Need radio button 'cause one checkbox makes the states indeterministic
        //@harris
+/*
        $test_export_y_checked = '';
        $test_export_n_checked = '';
        if ($_POST['allow_test_export'] == 1){
@@ -120,14 +126,15 @@ while($row = mysql_fetch_assoc($result))
        }
        
        echo _AT('allow_test_export');
+*/
 ?>
 
-       <input type="radio" name="allow_test_export" id="allow_test_export" value="1" <?php echo $test_export_y_checked; ?>/>
-       <label for="allow_test_export"><?php echo _AT('yes'); ?></label>
-       <input type="radio" name="allow_test_export" id="disallow_test_export" value="0" <?php echo $test_export_n_checked; ?>/>
-       <label for="disallow_test_export"><?php echo _AT('no'); ?></label>
+       <input type="radio" name="allow_test_export" id="allow_test_export" value="1" <?php //echo $test_export_y_checked; ?>/>
+       <label for="allow_test_export"><?php //echo _AT('yes'); ?></label>
+       <input type="radio" name="allow_test_export" id="disallow_test_export" value="0" <?php //echo $test_export_n_checked; ?>/>
+       <label for="disallow_test_export"><?php //echo _AT('no'); ?></label>
 </div>
-
+-->
 
 <div class="row">
        <p><?php echo _AT('custom_test_message'); ?></p>
index eb5d886..2334c6f 100644 (file)
@@ -90,11 +90,13 @@ function unenroll ($list) {
                $sql    = "DELETE FROM ".TABLE_PREFIX."course_enrollment WHERE course_id=$course_id AND member_id IN ($members)";
                $result = mysql_query($sql, $db);
 
-               $sql    = "DELETE FROM ".TABLE_PREFIX."groups_members WHERE member_id IN ($members)";
+
+               $sql    = "DELETE FROM ".TABLE_PREFIX."groups_members 
+                           WHERE member_id IN ($members) 
+                             AND group_id IN (SELECT group_id from ".TABLE_PREFIX."groups G, ".TABLE_PREFIX."groups_types GT
+                                               WHERE G.type_id = GT.type_id AND GT.course_id = ".$course_id.")";
                $result = mysql_query($sql, $db);
-               // $groupModule->unenroll(course_id, user_id);
-               // $forumModule->unenroll(course_id, user_id);
-               
+
                // remove forum subscriptions as admin else instructor 
                if($_SESSION['course_id'] == "-1"){
                        $this_course_id = $_REQUEST['course_id'];
@@ -194,11 +196,13 @@ function enroll ($list) {
 
                unset($mail);
        }
+
 }
 
 
 function group ($list, $gid) {
        global $db,$msg;
+
        $sql = "REPLACE INTO ".TABLE_PREFIX."groups_members VALUES ";
        $gid=intval($gid);
        for ($i=0; $i < count($list); $i++)     {
@@ -336,7 +340,7 @@ if ($_GET['func'] == 'remove') {
        $msg->addConfirm($confirm, $hidden_vars);
 } else if ($_GET['func'] == 'enroll') {
        $confirm = array('ENROLL_STUDENT',   $str);
-       $msg->addconfirm($confirm, $hidden_vars);
+       $msg->addConfirm($confirm, $hidden_vars);
 } else if ($_GET['func'] == 'unenroll') {
        if (check_roles($member_ids) == 1) {
                $confirm = array('UNENROLL_PRIV', $str);
index 34a5685..d30c9e5 100644 (file)
@@ -266,8 +266,6 @@ require(AT_INCLUDE_PATH.'header.inc.php');
 
 ?>
 
-
-
 <script language="JavaScript" type="text/javascript">
 //<!--
 function CheckAll() {
@@ -316,4 +314,5 @@ if($_SESSION['is_admin'] == 1){
        $savant->display('instructor/enrolment/index.tmpl.php');
 }
 
-require(AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
+require(AT_INCLUDE_PATH.'footer.inc.php'); 
+?>
index c64344d..5487e26 100644 (file)
@@ -451,4 +451,22 @@ function readfile_in_chunks($filename) {
                readfile($filename);
        }
 }
+
+/**
+ * This function handles ajax request and return an array of errors encoded in JSON
+ * @param   int     HTTP Status code, so far, handle 200 and 500.
+ */
+function handleAjaxUpload($statusCode) {
+    if ($_POST['type'] === 'ajax') {
+        if ($statusCode === 500) {
+//            $msg->printErrors();
+            header("HTTP/1.1 500 Internal Server Error", TRUE, 500);
+        } elseif ($statusCode === 200) {
+//            $msg->printFeedbacks();
+            header("HTTP/1.1 200 Ok", TRUE, 200);
+        }
+        exit;
+    }
+}
 ?>
index 2ccac8d..5dbedb2 100644 (file)
@@ -156,18 +156,15 @@ if (TRUE || $framed != TRUE) {
 
        echo '  <div class="row"><hr /></div>'."\n";
 
-
-       // If flash is available, provide the option of using Fluid's uploader or the basic uploader
+    // If flash is available, provide the option of using Fluid's uploader or the basic uploader
        if (isset($_SESSION['flash']) && $_SESSION['flash'] == "yes") {
                echo '<div class="row">'."\n";
                if (isset($_COOKIE["fluid_on"]) && $_COOKIE["fluid_on"]=="yes")
                        $fluid_on = 'checked="checked"';
-               echo '(<input type="checkbox" id="fluid_on" name="fluid_on" onclick="toggleform(\'simple-container\', \'fluid-container\'); setCheckboxCookie(this, \'fluid_on=yes\', \'fluid_on=no\',\'December 31, 2099\');" value="yes" '.$fluid_on.' /> '."\n";
+               echo '(<input type="checkbox" id="fluid_on" name="fluid_on" value="yes" '.$fluid_on.' /> '."\n";
                echo '<label for="fluid_on" >'._AT('enable_uploader').'</label>)'."\n";
                echo '</div>'."\n";
        }
-
-
        // Create a new file
        echo '  <div class="row" style="float: left;"><input type="button" class="button" name="new_file" value="' . _AT('file_manager_new') . '" onclick="window.location.href=\''.AT_BASE_HREF.'mods/_core/file_manager/new.php?pathext=' . urlencode($pathext) . SEP . 'framed=' . $framed . SEP . 'popup=' . $popup . '\'"/></div>'."\n";
 
@@ -180,74 +177,178 @@ if (TRUE || $framed != TRUE) {
                echo '  <div class="row" style="float: left;">'._AT('OR').'</div>'."\n".'       <div class="row" style="float: left;">'."\n";
                if (isset($_SESSION['flash']) && $_SESSION['flash'] == "yes") {
                ?>
-                       <div id="fluid-container" <?php echo (isset($_COOKIE["fluid_on"]) && $_COOKIE["fluid_on"]=="yes") ? '' : 'style="display:none;"'; ?>>
-                               <input type="button" id="uploader_link" class="button" name="upload_file" value="<?php echo _AT('upload_files'); ?>" onclick="toggleform('uploader', 'uploader_link');" />
-                               <div id="uploader" style="display: none;">
-                                       <form id="flc-uploader" class="flc-uploader fl-uploader fl-progEnhance-enhanced" method="get" enctype="multipart/form-data" action="" style="margin: 0px; padding: 0px;">
-                                               <div class="start">
-                                                       <div class="fl-uploader-queue-wrapper">
-                                                               <div class="fl-uploader-queue-header">
-                                                                       <table cellspacing="0" cellpadding="0">
-                                                                                       <tr>
-                                                                                               <th scope="col" class="fileName"><?php echo _AT('file_name'); ?></th>
-                                                                                               <th scope="col" class="fileSize"><?php echo _AT('size'); ?>&nbsp;&nbsp;</th>
-                                                                                               <th scope="col" class="fileRemove">&nbsp;</th>
-                                                                                       </tr>
-                                                                       </table>
-                                                               </div>
-
-                                      <div class="flc-scroller fl-scroller">
-                                               <div class="fl-scroller-inner">
-                                                   <table cellspacing="0" class="flc-uploader-queue fl-uploader-queue" summary="Queue of files to upload.">
-                                                       <tbody>
-                                                           <!-- Rows will be rendered in here. -->
-                                                           
-                                                           <!-- Template markup for the file queue rows -->
-                                                           <tr class="flc-uploader-file-tmplt flc-uploader-file fl-uploader-hidden-templates">
-                                                               <th class="flc-uploader-file-name fl-uploader-file-name" scope="row"><?php echo _AT('file_placeholder'); ?></th>
-                                                               <td class="flc-uploader-file-size fl-uploader-file-size">0 <?php echo _AT('kb'); ?></td>
-                                                               <td class="fl-uploader-file-actions">
-                                                                   <button type="button" class="flc-uploader-file-action fl-uploader-file-action" title="<?php echo _AT('remove_queued_file'); ?>" tabindex="-1">
-                                                                       <span class="fl-uploader-button-text fl-uploader-hidden"><?php echo _AT('remove_queued_file'); ?></span>
-                                                                   </button>
-                                                               </td>
-                                                           </tr>
-                                                           
-                                                           <!-- Template for the file error info rows -->
-                                                           <tr class="flc-uploader-file-error-tmplt fl-uploader-file-error fl-uploader-hidden-templates">
-                                                               <td colspan="3" class="flc-uploader-file-error"></td>
-                                                           </tr>
-                                                       </tbody>
-                                                   </table>
-                                                   <div class="flc-uploader-file-progressor-tmplt fl-uploader-file-progress"><span class="fl-uploader-file-progress-text fl-uploader-hidden">76%</span></div>
-                                               </div>
-                                           </div>
-
-                                                               <div class="flc-uploader-browse-instructions fl-uploader-browse-instructions"> <?php echo _AT('click_browse_files'); ?> </div>
-
-                                                               <div class="flc-uploader-queue-footer fl-uploader-queue-footer">
-                                                                       <table cellspacing="0" cellpadding="0">
-                                                                                       <tr>
-                                                                                               <td class="flc-uploader-total-progress-text"><?php echo _AT('total'); ?>: <span class="fluid-uploader-totalFiles">0</span> <?php echo _AT('files'); ?> (<span class="fluid-uploader-totalBytes">0 <?php echo _AT('kb'); ?></span>)</td>
-                                                                                               <td class="fl-uploader-footer-buttons" align="right" ><a class="flc-uploader-button-browse fl-uploader-browse" tabindex="0" ><?php echo _AT('browse_files'); ?></a></td>
-                                                                                       </tr>
-                                                                       </table>
-                                                                       <div class="flc-uploader-total-progress fl-uploader-total-progress-okay">&nbsp;</div>
-                                                               </div>
-                                                       </div>
-                                                       
-                                                       <div class="fl-uploader-btns">
-                                                               <button type="button" class="flc-uploader-button-pause fl-uploader-pause fl-uploader-hidden" onclick="toggleform('uploader', 'uploader_link');"><?php echo _AT('cancel'); ?></button>
-                                                               <button type="button" class="flc-uploader-button-upload fl-uploader-upload fl-uploader-button-default fl-uploader-dim" ><?php echo _AT('upload'); ?></button>
-                                                       </div>
-                                                       
-                                               </div>
-                                       </form>
-
+               <div id="uploader-error-container"></div>
+                       <div id="fluid-container">
+                               <div id="uploader">
+                               <!-- Basic upload controls, used when JavaScript is unavailable -->
+        <form method="post" enctype="multipart/form-data" class="fl-progEnhance-basic">
+            <p>Use the Browse button to add a file, and the Save button to upload it.</p>
+            <input name="fileData" type="file" />
+            <input class="fl-uploader-basic-save" type="submit" value="Save"/>
+        </form>
+        
+        <!-- Uploader container -->
+        <form class="flc-uploader fl-uploader fl-progEnhance-enhanced" method="get" enctype="multipart/form-data">
+            
+            <!-- File Queue, which is split up into two separate tables: one for the header and body -->
+            <table class="fl-uploader-header">
+                       <tr>
+                                       <th class="fl-uploader-file-name">File Name</th>
+                                       <th class="fl-uploader-file-size">Size</th>
+                                       <th class="fl-uploader-file-actions"></th>
+                               </tr>u
+            </table>
+            
+            <!-- File Queue body, which is the default container for the FileQueueView component -->
+            <table summary="The list of files" class="flc-uploader-queue fl-uploader-queue">
+                               <caption>File Upload Queue:</caption>
+                               <tbody>
+                                       <!-- Template for file row -->
+                                       <tr class="flc-uploader-file-tmplt flc-uploader-file">
+                                               <td class="flc-uploader-file-name fl-uploader-file-name">File Name Placeholder</td>
+                                               <td class="flc-uploader-file-size fl-uploader-file-size">0 KB</td>
+                                               <td class="fl-uploader-file-actions">
+                                                       <button type="button" class="flc-uploader-file-action" tabindex="-1"></button>
+                                               </td>
+                                       </tr>
+                                       
+                                       <!-- Template for error info row -->
+                                       <tr class="flc-uploader-file-error-tmplt fl-uploader-file-error">
+                                               <td colspan="3" class="flc-uploader-file-error"></td>
+                                       </tr>
+                               </tbody>
+                       </table>
+            
+            <!-- File progress bar template, used to generate progress bars for each file in the queue -->
+            <div class="flc-uploader-file-progressor-tmplt fl-uploader-file-progress"></div>            
+
+            <!-- Initial instructions -->
+            <div class="flc-uploader-browse-instructions fl-uploader-browse-instructions">
+                Choose <em>Browse files</em> to add files to the queue. 
+            </div>            
+
+            <!-- Status footer -->
+            <div class="flc-uploader-queue-footer fl-uploader-queue-footer fl-fix">
+                <div class="flc-uploader-total-progress-text fl-uploader-total-progress-text fl-force-left">
+                    Total: 0 files (0 KB)
+                </div>
+                <div class="fl-text-align-right fl-force-right">
+                    <span class="flc-uploader-button-browse fl-uploader-browse">
+                        <span class="flc-uploader-button-browse-text">Browse files</span>
+                    </span>
+                </div>
+                <!-- Total progress bar -->
+                <div class="flc-uploader-total-progress fl-uploader-total-progress-okay"></div>
+                <div class="flc-uploader-errorsPanel fl-uploader-errorsPanel">
+                     <div class="fl-uploader-errorsPanel-header"><span class="flc-uploader-errorPanel-header">Warnings:</span></div>
+    
+                     <!-- The markup for each error section will be rendered into these containers. -->
+                     <div class="flc-uploader-errorPanel-section-fileSize"></div>
+                     <div class="flc-uploader-errorPanel-section-numFiles"></div>
+                     
+                     <!-- Error section template.-->
+                     <div class="flc-uploader-errorPanel-section-tmplt fl-uploader-hidden-templates">
+                         <div class="flc-uploader-errorPanel-section-title fl-uploader-errorPanel-section-title">
+                             x files were too y and were not added to the queue.
+                         </div>
+                         
+                         <div class="flc-uploader-errorPanel-section-details fl-uploader-errorPanel-section-details">
+                             <p>The following files were not added:</p>
+                             <p class="flc-uploader-errorPanel-section-files">file_1, file_2, file_3, file_4, file_5 </p>
+                         </div>
+                         
+                         <button type="button" class="flc-uploader-errorPanel-section-toggleDetails fl-uploader-errorPanel-section-toggleDetails">Hide this list</button>
+                         <button type="button" class="flc-uploader-errorPanel-section-removeButton fl-uploader-errorPanel-section-removeButton">
+                             <span class="flc-uploader-erroredButton-text fl-uploader-hidden">Remove error</span>
+                         </button>
+                     </div>
+                 </div>                
+            </div>
+            
+            <!-- Upload buttons -->
+            <div class="fl-uploader-buttons">
+                <button type="button" class="flc-uploader-button-pause fl-uploader-button-stop fl-uploader-hidden">Stop Upload</button>
+                <button type="button" class="flc-uploader-button-upload fl-uploader-button-upload fl-uploader-dim">Upload</button>
+            </div>
+            
+            <div class="flc-uploader-status-region fl-offScreen-hidden"></div>
+        </form>        
+            
+        <script type="text/javascript">
+            var myUploader = fluid.uploader(".flc-uploader", {
+                queueSettings: {
+                    uploadURL: '<?php echo AT_BASE_HREF; ?>mods/_core/file_manager/upload.php',
+                    fileUploadLimit: 5,
+                    fileQueueLimit: 2,
+                    postParams: {pathext: '<?php echo $pathext; ?>', type: 'ajax', submit: 'submit'},
+                    fileSizeLimit: <?php echo $my_MaxFileSize/1024; ?>
+                },
+                events: {
+                    onSuccess: {
+                        event: "onFileSuccess",
+                        args: [
+                            {
+                                fileName: "{arguments}.0.name",
+                                responseText: "{arguments}.1"
+                            }
+                        ]
+                    },
+                    onError: {
+                        event: "onFileError",
+                        args: [
+                            {
+                                fileName: "{arguments}.0.name",
+                                statusCode: "{arguments}.2",
+                                responseText: "{arguments}.3.responseText"
+                            }
+                        ]
+                    }
+                },
+                listeners: {
+                       onSuccess: function (response){
+                               // example assumes that the server code passes the new image URL in the serverData
+                               console.log("Success triggered", response);
+                               jQuery('#uploader-error-container').html(response.responseText);
+                       }, 
+                       onError: function(response) {
+                        console.log("Error triggered", response);
+                        jQuery('#uploader-error-container').html(response.responseText);
+                    },
+                    onUploadStart: function() {
+                        jQuery('#uploader-error-container').html("");
+                    },
+                    afterUploadComplete: function () {
+                        window.location = "<?php echo AT_BASE_HREF; ?>mods/_core/file_manager/index.php?pathext=<?php echo $pathext; ?>";
+                    }
+                   },
+                   components: {
+                    strategy: {
+                        options: {
+                            flashMovieSettings: {
+                                flashURL: "<?php echo AT_BASE_HREF; ?>jscripts/infusion/lib/swfupload/flash/swfupload.swf",
+                                flashButtonImageURL: "<?php echo AT_BASE_HREF; ?>jscripts/infusion/components/uploader/images/browse.png"
+                            }
+                        }
+                    }
+                }
+            });
+            
+            //bind fluid checkbox
+            jQuery('#fluid_on').bind("click", function() {
+                toggleform('simple-container', 'fluid-container'); 
+                setCheckboxCookie(this, 'fluid_on=yes', 'fluid_on=no','December 31, 2099');
+                console.log('hey');
+            });
+            
+            //hide multifile uploader if it's not checked 
+            if (!jQuery('#fluid_on').attr('checked')) {
+                jQuery('#fluid-container').hide();
+            }
+        </script>
                                </div>
                        </div>
                <?php
-                       if (isset($_COOKIE["fluid_on"]) && $_COOKIE["fluid_on"]=="yes")
+               if (isset($_COOKIE["fluid_on"]) && $_COOKIE["fluid_on"]=="yes")
                                echo '<div id="simple-container" style="display: none;">';
                        else
                                echo '<div id="simple-container">';
@@ -257,7 +358,7 @@ if (TRUE || $framed != TRUE) {
                }
 
                // Simple single file uploader
-               echo '<form onsubmit="openWindow(\''.AT_BASE_HREF.'tools/prog.php\');" class="fl-ProgEnhance-basic" name="form1" method="post" action="mods/_core/file_manager/upload.php?popup='.$popup.SEP. 'framed='.$framed.SEP.'cp='.$_GET['cp'].SEP.'pid='.$_GET['pid'].SEP.'cid='.$cid.SEP.'a_type='.$a_type.'" enctype="multipart/form-data">';
+               echo '<form onsubmit="openWindow(\''.AT_BASE_HREF.'tools/prog.php\');" name="form1" method="post" action="mods/_core/file_manager/upload.php?popup='.$popup.SEP. 'framed='.$framed.SEP.'cp='.$_GET['cp'].SEP.'pid='.$_GET['pid'].SEP.'cid='.$cid.SEP.'a_type='.$a_type.'" enctype="multipart/form-data">';
                echo '<input type="hidden" name="MAX_FILE_SIZE" value="'.$my_MaxFileSize.'" />';
                echo '<label for="uploadedfile">'._AT('upload_files').'</label><br />'."\n";
                echo '<input type="file" name="uploadedfile" id="uploadedfile" class="formfield" size="20" /> ';
@@ -269,9 +370,7 @@ if (TRUE || $framed != TRUE) {
                }
                echo '</form>';
                echo '</div>';
-
                echo '          </div>'."\n".'  </fieldset></div>';
-
        } else {
                echo '  </fieldset></div>'."\n";
                $msg->printInfos('OVER_QUOTA');
@@ -467,12 +566,7 @@ if (is_array($files)) {
                echo $y;
        }
 }
-
-
 echo '</table></form>';
-
-
-
 ?>
 
 <script type="text/javascript">
@@ -577,7 +671,7 @@ function setURLAlternative() {
        setAlternative(remote_url, remote_url, '<?php echo $cid; ?>.', '<?php echo $pid; ?>', '<?php echo $a_type; ?>');
 }
 
-<?php  if (isset($_SESSION['flash']) && $_SESSION['flash'] == "yes") { ?>
+<?php  if (isset($_SESSION['flash']) && $_SESSION['flash'] == "yes"): ?>
 // toggle the view between div object and button
 function toggleform(id, link) {
        var obj = document.getElementById(id);
@@ -610,7 +704,7 @@ function setCheckboxCookie(obj, value1, value2, date)
                var the_cookie = value2 + ";expires=" + the_cookie_date;
        document.cookie = the_cookie;
 }
-<?php } ?>
+<?php endif; ?>
 
 <?php 
 // When uploading a file as an alternative content, set the alternative field in the opener window 
@@ -625,4 +719,4 @@ window.onload=setAlternativeAndClose;
 <?php } ?>
 
 //-->
-</script>
\ No newline at end of file
+</script>
index c0e4699..03ff376 100644 (file)
@@ -14,8 +14,9 @@
 
 define('AT_INCLUDE_PATH', '../../../include/');
 require(AT_INCLUDE_PATH.'vitals.inc.php');
-require_once(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php');
+$_custom_css = $_base_href.'jscripts/infusion/components/uploader/css/Uploader.css';
 
+require_once(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php');
 if ((isset($_REQUEST['popup']) && $_REQUEST['popup']) && 
        (!isset($_REQUEST['framed']) || !$_REQUEST['framed'])) {
        $popup = TRUE;
@@ -56,45 +57,6 @@ if (isset($_SESSION['flash']) && $_SESSION['flash'] == "yes") {
         }
 
     }
-
-    $_custom_head .= '
-        <link href="'.$fluid_dir.'components/uploader/css/Uploader.css" rel="stylesheet" type="text/css" />
-        <script language="JavaScript" type="text/javascript">
-
-            var myUpload; // mostly used for testing
-
-            jQuery(document).ready(function () {
-                   myUpload = fluid.progressiveEnhanceableUploader(".flc-uploader", ".fl-ProgEnhance-basic", {
-                       uploadManager: {
-                                   type: "fluid.swfUploadManager",
-               
-                                   options: {
-                                      // Set the uploadURL to the URL for posting files to your server.
-                                      uploadURL: "'.$_base_href.'include/lib/upload.php?path='.urlencode($current_path.$pathext).'",
-               
-                                      // This option points to the location of the SWFUpload Flash object that ships with Fluid Infusion.
-                                      flashURL: "jscripts/infusion/lib/swfupload/flash/swfupload.swf"
-                                       }
-                               },
-               
-                       listeners: {
-                       onFileSuccess: function (file, serverData){
-                               // example assumes that the server code passes the new image URL in the serverData
-                               window.location="'.$_SERVER['PHP_SELF'].'?pathext=' . urlencode($pathext) . SEP . 'popup=' . $popup . SEP . 'framed=' . $framed . SEP . 'msg=FILEUPLOAD_DONE";
-                       }
-                   },
-               
-                 decorators: [{
-                    type: "fluid.swfUploadSetupDecorator",
-                    options: {
-                         // This option points to the location of the Browse Files button used with Flash 10 clients.
-                         flashButtonImageURL: "'.AT_BASE_HREF.'jscripts/infusion/components/uploader/images/browse.png"
-                                       }
-                 }]
-                    });
-               });
-        </script>
-    ';
 }
 
 global $msg;
@@ -122,4 +84,4 @@ function openWindow(page) {
 }
 //-->
 </script>
-<?php require(AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
+<?php require(AT_INCLUDE_PATH.'footer.inc.php'); ?>
index 776e56c..462d101 100644 (file)
@@ -20,9 +20,8 @@ if (defined('AT_FORCE_GET_FILE') && AT_FORCE_GET_FILE) {
        $file = 'b64:'.base64_encode($_GET['file']);\r
 } else {\r
        $get_file = $_base_path . 'content/' . $_SESSION['course_id'] . '/';\r
-       $file = $_GET['file'];\r
+       $file = $_GET['file'];  \r
 }\r
-\r
 ?>\r
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd" />\r
 <html lang="<?php echo $myLang->getCode(); ?>">\r
@@ -43,4 +42,4 @@ if (defined('AT_FORCE_GET_FILE') && AT_FORCE_GET_FILE) {
 </noframes>\r
 \r
 </frameset>\r
-</html>
\ No newline at end of file
+</html>\r
index 90a0677..c337208 100644 (file)
@@ -11,7 +11,6 @@
 /* as published by the Free Software Foundation.                               */
 /****************************************************************/
 // $Id$
-
 define('AT_INCLUDE_PATH', '../../../include/');
 require(AT_INCLUDE_PATH.'vitals.inc.php');
 require_once(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php');
@@ -29,7 +28,7 @@ $alter = $_REQUEST['alter'];
 //echo $_REQUEST['tab'];
 
 //echo $alter;
-
+                                       
 /* get this courses MaxQuota and MaxFileSize: */
 $sql   = "SELECT max_quota, max_file_size FROM ".TABLE_PREFIX."courses WHERE course_id=$_SESSION[course_id]";
 $result = mysql_query($sql, $db);
@@ -48,8 +47,10 @@ $my_MaxFileSize      = $row['max_file_size'];
 
 $path = AT_CONTENT_DIR . $_SESSION['course_id'].'/'.$_POST['pathext'];
 
-if (isset($_POST['submit'])) {
-
+if (isset($_POST['submit'])) {   
+    if($_FILES['file']) {
+       $_FILES['uploadedfile'] = $_FILES['file']; 
+    }
        if($_FILES['uploadedfile']['name'])     {
 
                $_FILES['uploadedfile']['name'] = trim($_FILES['uploadedfile']['name']);
@@ -63,6 +64,7 @@ if (isset($_POST['submit'])) {
                if (in_array($ext, $IllegalExtentions)) {
                        $errors = array('FILE_ILLEGAL', $ext);
                        $msg->addError($errors);
+                       handleAjaxUpload(500);
                        header('Location: index.php?pathext='.$_POST['pathext'].SEP. 'framed='.$framed.SEP.'cp='.$_GET['cp'].SEP.'pid='.$_GET['pid'].SEP.'cid='.$_GET['cid'].SEP.'a_type='.$_GET['a_type']);
                        exit;
                }
@@ -76,8 +78,7 @@ if (isset($_POST['submit'])) {
 
        
                /* anything else should be okay, since we're on *nix.. hopefully */
-               $_FILES['uploadedfile']['name'] = str_replace(array(' ', '/', '\\', ':', '*', '?', '"', '<', '>', '|', '\''), '', $_FILES['uploadedfile']['name']);
-
+               $_FILES['uploadedfile']['name'] = str_replace(array(' ', ',', '/', '\\', ':', ';', '*', '?', '"', '<', '>', '|', '\''), '', $_FILES['uploadedfile']['name']);
 
                /* if the file size is within allowed limits */
                if( ($_FILES['uploadedfile']['size'] > 0) && ($_FILES['uploadedfile']['size'] <= $my_MaxFileSize) ) {
@@ -121,6 +122,7 @@ if (isset($_POST['submit'])) {
                                                                                $_GET['popup'],
                                                                                SEP);
                                                $msg->addFeedback($f);
+                                               handleAjaxUpload(200);
                                                if ($alter)
                                                        header('Location: '.$_base_href.'editor/edit_content.php?cid='.$_REQUEST['cid'].SEP . 'pathext='.$_POST['pathext'].SEP. 'popup='.$_GET['popup'].SEP. 'tab='.$_REQUEST['tab']);
                                                else
@@ -134,6 +136,7 @@ if (isset($_POST['submit'])) {
                                        }
                                        else {
                                                $msg->addFeedback('FILE_UPLOADED');
+                                               handleAjaxUpload(200);
 
                                                if ($alter)
                                                        header('Location: '.$_base_href.'editor/edit_content.php?cid='.$_REQUEST['cid'].SEP . 'pathext='.$_POST['pathext'].SEP. 'popup='.$_GET['popup'].SEP. 'tab='.$_REQUEST['tab']);
@@ -144,6 +147,7 @@ if (isset($_POST['submit'])) {
                                }
                        } else {
                                $msg->addError(array('MAX_STORAGE_EXCEEDED', get_human_size($my_MaxCourseSize)));
+                               handleAjaxUpload(500);
                                if ($alter)
                                                        header('Location: '.$_base_href.'editor/edit_content.php?cid='.$_REQUEST['cid'].SEP . 'pathext='.$_POST['pathext'].SEP. 'popup='.$_GET['popup'].SEP. 'tab='.$_REQUEST['tab']);
                                                else
@@ -153,6 +157,7 @@ if (isset($_POST['submit'])) {
                        }
                } else {
                        $msg->addError(array('FILE_TOO_BIG', get_human_size($my_MaxFileSize)));
+                       handleAjaxUpload(500);
                        if ($alter)
                                                        header('Location: '.$_base_href.'editor/edit_content.php?cid='.$_REQUEST['cid'].SEP . 'pathext='.$_POST['pathext'].SEP. 'popup='.$_GET['popup'].SEP. 'tab='.$_REQUEST['tab']);
                                                else
@@ -162,6 +167,7 @@ if (isset($_POST['submit'])) {
                }
        } else {
                $msg->addError('FILE_NOT_SELECTED');
+               handleAjaxUpload(500);
                if ($alter)
                                                        header('Location: '.$_base_href.'editor/edit_content.php?cid='.$_REQUEST['cid'].SEP . 'pathext='.$_POST['pathext'].SEP. 'popup='.$_GET['popup'].SEP. 'tab='.$_REQUEST['tab']);
                                                else
@@ -170,4 +176,4 @@ if (isset($_POST['submit'])) {
        }
 }
 
-?>
\ No newline at end of file
+?>
index 14df3f2..9499699 100644 (file)
@@ -50,6 +50,7 @@ if ($_POST['submit']) {
        if (!$msg->containsErrors()) {\r
                $_POST['word']  = $addslashes($_POST['word']);\r
                $_POST['definition']  = $addslashes($_POST['definition']);\r
+               $_POST['gid'] = intval($_POST['gid']);\r
 \r
                $sql = "UPDATE ".TABLE_PREFIX."glossary SET word='$_POST[word]', definition='$_POST[definition]', related_word_id=$_POST[related_term] WHERE word_id=$_POST[gid] AND course_id=$_SESSION[course_id]";\r
                \r
@@ -147,4 +148,4 @@ if ($_POST['submit']) {
 </div>\r
 </form>\r
 \r
-<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>\r
index b721d88..ddf51c9 100644 (file)
@@ -1,7 +1,8 @@
 <?php echo '<?xml version="1.0" encoding="UTF-8"?>' ?>
-<webLink
-   xmlns="http://www.imsglobal.org/xsd/imswl_v1p0"
+<wl:webLink
+   xmlns:wl="http://www.imsglobal.org/xsd/imswl_v1p0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imswl_v1p0 http://www.imsglobal.org/profile/cc/ccv1p0/derived_schema/domainProfile_5/imswl_v1p0_localised.xsd">
   <title><?php echo $this->title; ?></title>
   <url href="<?php echo $this->url_href; ?>" target="<?php echo $this->url_target; ?>"/>
-</webLink>
+</wl:webLink>
+
index 109bc51..ca4f5fe 100644 (file)
@@ -256,6 +256,7 @@ if ($row = mysql_fetch_assoc($result)) {
 }
 
 /* save the imsmanifest.xml file */
+//debug($imsmanifest_xml);exit;
 $zipfile->add_file($imsmanifest_xml, 'imsmanifest.xml');
 
 if ($glossary_xml) {
index b3d57d3..a34d4a6 100644 (file)
@@ -266,7 +266,7 @@ function print_organizations($parent_id,
                        if (count($import_files) > 0) $my_files = array_merge($my_files, $import_files);
                        foreach ($my_files as $file) {
                                /* filter out full urls */
-                               $url_parts = @parse_url($file);
+                               $url_parts = @parse_url($file);                         
 //                             if (isset($url_parts['scheme'])) {
 //                                     continue;
 //                             }
@@ -314,7 +314,6 @@ function print_organizations($parent_id,
                                                } else {
                                                        $zip_path = 'resources/' . $content['content_path'] . $file;
                                                }
-       
                                                $zipfile->add_file(@file_get_contents($file_path), $zip_path, $file_info['mtime']);
                                        }
                                }
@@ -368,12 +367,29 @@ function print_organizations($parent_id,
                                                $content_files .= str_replace('{FILE}', $file, $ims_template_xml['file']);
                                        } else {
                                                if (preg_match('/^http[s]?\:/', $file) == 1){
-                                                       $content_files .= str_replace('{FILE}', $file, $ims_template_xml['xml']);
+                                                   if ($use_a4a) {
+                                                           $content_files .= str_replace('{FILE}', $file, $ims_template_xml['xml']);
+                                                       }
                                                } elseif (file_exists($file_path) && is_file($file_path)) {
                                                        //http://www.atutor.ca/atutor/mantis/view.php?id=4313
                                                        //relative link that goes beyond get.php shouldn't be added
                                                        //relative link that does not exist shouldn't be added.
-                                                       $content_files .= str_replace('{FILE}', $content['content_path'] . $file, $ims_template_xml['file']);
+                                                       $filepath_array = explode('/', $content['content_path'] . $file);
+                                                   $new_filepath_array = array();
+                                                   if (in_array('..', $filepath_array)){
+                                                           while (!empty($filepath_array)){
+                                                                   $temp = array_shift($filepath_array);
+                                                                   if ($temp == '..'){
+                                                                           array_pop($new_filepath_array);
+                                                                   } else {
+                                                                           array_push($new_filepath_array, $temp);
+                                                                   }
+                                                           }
+                                                           $file = implode('/', $new_filepath_array);
+                                                   } else {
+                                                       $file = $content['content_path'] . $file;
+                            }
+                                                       $content_files .= str_replace('{FILE}', $file, $ims_template_xml['file']);
                                                }
                                        }
                                }
@@ -498,28 +514,17 @@ function print_resources_forum() {
         //file Descrittore con la descrzione del forum
         $fileDesDT_D = '<?xml version="1.0" encoding="UTF-8"?>
 
-                    <topic
-                        xmlns="http://www.imsglobal.org/xsd/imsdt_v1p0"
-                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsdt_v1p0 http://www.imsglobal.org/profile/cc/ccv1p0/derived_schema/domainProfile_6/imsdt_v1p0_localised.xsd">
-
-                        <title>{TitleDiscussionTopic}</title>
-
-                        <text texttype="text/plain">{DescriptionDiscussionTopic}</text>
-
-                    </topic>';
+<dt:topic xmlns:dt="http://www.imsglobal.org/xsd/imsdt_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsdt_v1p0 http://www.imsglobal.org/profile/cc/ccv1p0/derived_schema/domainProfile_6/imsdt_v1p0_localised.xsd">
+<title>{TitleDiscussionTopic}</title>
+<text texttype="text/plain">{DescriptionDiscussionTopic}</text>
+</dt:topic>';
 
         //file Descrittore senza la descrizione del forum
         $fileDesDT = '<?xml version="1.0" encoding="UTF-8"?>
-
-                    <topic
-                        xmlns="http://www.imsglobal.org/xsd/imsdt_v1p0"
-                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsdt_v1p0 http://www.imsglobal.org/profile/cc/ccv1p0/derived_schema/domainProfile_6/imsdt_v1p0_localised.xsd">
-
-                        <title>{TitleDiscussionTopic}</title>
-
-                        <text/>
-
-                    </topic>';
+<dt:topic xmlns:dt="http://www.imsglobal.org/xsd/imsdt_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsdt_v1p0 http://www.imsglobal.org/profile/cc/ccv1p0/derived_schema/domainProfile_6/imsdt_v1p0_localised.xsd">
+<title>{TitleDiscussionTopic}</title>
+<text/>
+</dt:topic>';
 
                $f['title'] = htmlspecialchars($f['title']);
                $f['description'] = htmlspecialchars($f['description']);
index 738ccda..070217b 100644 (file)
@@ -1,4 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+  IPR, License and Distribution Notices\r
+  This machine readable file is derived from IMS specification IMS Common Cartridge Version 1.0 found at http://www.imsglobal.org/cc/index.html and the original IMS schema binding or code base       http://www.imsglobal.org/cc/.\r
+  \r
+  Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+  \r
+  IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+  \r
+  Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+  \r
+  License Notice for Users\r
+  Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+  \r
+  Distribution Notice for Developers\r
+  Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+  \r
+  Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+  \r
+  - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+  \r
+  THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+  ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+  SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+  ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+  OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+  FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imsccauth_v1p0" targetNamespace="http://www.imsglobal.org/xsd/imsccauth_v1p0" elementFormDefault="qualified">\r
 \r
   <xs:element name="authorizations" type="authorizationsType" />\r
diff --git a/docs/mods/_core/imscp/domainProfile_0/imsccauth_v1p0_constraintsDocument.scmt b/docs/mods/_core/imscp/domainProfile_0/imsccauth_v1p0_constraintsDocument.scmt
new file mode 100644 (file)
index 0000000..d916143
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<schema xmlns="http://www.ascc.net/xml/schematron">\r
+  <ns prefix="xs" uri="http://www.w3.org/2001/XMLSchema" />\r
+  <ns prefix="xsd" uri="http://www.w3.org/2001/XMLSchema" />\r
+  <ns prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance" />\r
+  <ns prefix="ac" uri="http://iwm.uni-koblenz.de/xsd/tel_addc_v1p1" />\r
+  <ns prefix="ims" uri="http://www.imsglobal.org/xsd/imscc/imscp_v1p1" />\r
+  <!--***********************************************************************************************-->\r
+  <!--** Constraints document - this document holds Schematron rules that have been generated from **-->\r
+  <!--** AP condition and assertion elements. IMPORTANT: If this document exists, it MUST be       **-->\r
+  <!--** used in the validation of instances derived from the resultant schema - failure to do so  **-->\r
+  <!--** can result in an instance that does not conform to either the base schema or the          **-->\r
+  <!--** Application Profile.                                                                      **-->\r
+  <!--***********************************************************************************************-->\r
+  <pattern name="pattern_1">\r
+    <rule context="ims:organizations/ims:organization/ims:item/@identifierref | ims:manifest/ims:organizations/ims:organization/ims:item/@identifierref | @identifierref">\r
+      <assert test="(ims:organizations/ims:organization/ims:item/@identifierref | ims:manifest/ims:organizations/ims:organization/ims:item/@identifierref | @identifierref) and not (count(../item)=0)">Assertion failed for pattern_1. An Item object which represents a folder is indicated by the absence of an IdentifierRef characteristic object. Folder Items support unlimited nesting of other folder Items and learning object link Items. Learning Application Resource Item objects may be nested by folder Item object but may not nest other folder or Learning Application resource Item objects.(#S04)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_2">\r
+    <rule context="ims:resources/ims:resource/ims:dependency/@identifierref | ims:manifest/ims:resources/ims:resource/ims:dependency/@identifierref">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency/@identifierref | ims:manifest/ims:resources/ims:resource/ims:dependency/@identifierref) and (../../@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and not (current() = /manifest/resources/resource[@type='webcontent']/@identifier)">Assertion failed for pattern_2. A Resource object which is a Learning Object Web Content may contain Dependency objects which reference Resource objects with Type 'webcontent'.(#S03)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_3">\r
+    <rule context="ims:organizations/ims:organization/ims:item/ims:item | ims:manifest/ims:organizations/ims:organization/ims:item/ims:item">\r
+      <assert test="(ims:organizations/ims:organization/ims:item/ims:item | ims:manifest/ims:organizations/ims:organization/ims:item/ims:item) and (@isvisible='false') and not (count(./item)=count(./item[@isvisible='false']))">Assertion failed for pattern_3. If an item is invisible, its descendants must be invisible too.(#S02)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_4">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='imsdt_xmlv1p0') and not (current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier or current()/@identifierref = /manifest/resources/resource[@type='associatedcontent/imscc_xmlv1p0/learning-application-resource']/@identifier)">Assertion failed for pattern_4. A Resource object which is a Discussion Topic associated resource may contain Dependency objects which reference Resource objects with Type 'webcontent' or 'associatedcontent/imscc_xmlv1p0/learning-application-resource'.(#S12)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_5">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and not (current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier)">Assertion failed for pattern_5. \r
+ The test was: . \r
+ The context was: ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_6">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment') and not ((current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier) or (current()/@identifierref = /manifest/resources/resource[@type='associatedcontent/imscc_xmlv1p0/learning-application-resource']/@identifier))">Assertion failed for pattern_6. A Resource object which is an assessment may contain Dependency objects which reference Resource objects with Type 'webcontent' or 'associatedcontent/imscc_xmlv1p0/learning-application-resource'.(#S14)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_7">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and ((./@type='webcontent' or ./@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and ./@identifier = //item/@identifierref) and not (count(./@href)=1)">Assertion failed for pattern_7. If a cartridge web content or associated content resource is linked from a Learning Application Object link Item object it must have an Href characteristic object which represents the launchable resource.(#S05)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_8">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and (./@type='imsdt_xmlv1p0') and not (count(./file)=1 and count(./@href)=0)">Assertion failed for pattern_8. For Discussion Topic Resources the Resource object must contain a single File object which references the Discussion Topic descriptor XML file which conforms to the http://www.imsglobal.org/xsd/imsdt_v1p0 schema. It must not have any href attribute.(#S06)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_9">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and (./@type='imswl_xmlv1p0') and not (count(./file)=1 and count(./dependency)=0 and count(./@href)=0)">Assertion failed for pattern_9. For Web Link Resources the Resource object must contain a single File object which references the Web Link descriptor XML file which conforms to the http://www.imsglobal.org/xsd/imswl_v1p0 schema. It must contain neither Dependency objects nor an href attribute.(#S07)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_10">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and ((./@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment') or (./@type='imsqti_xmlv1p2/imscc_xmlv1p0/question-bank')) and not (count(./file)=1 and count(./@href)=0)">Assertion failed for pattern_10. For Assessment or Question Bank Resources the Resource object must contain a single File object which references the QTI XML file. This file must conform to the IMS CC profile of QTI 1.2.1. The profile is contained in the package of this profile as imscc_q*.xdm. The derived schema of this QTI profile is in the package of this profile with the name ims_qtiasiv1p2_localised.xsd. The resource must not have an href attribute(#S11)</assert>\r
+    </rule>\r
+  </pattern>\r
+</schema>\r
+\r
index d73795c..e03b304 100644 (file)
@@ -1,4 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+  IPR, License and Distribution Notices\r
+  This machine readable file is derived from IMS specification IMS Common Cartridge Version 1.0 found at http://www.imsglobal.org/cc/index.html and the original IMS schema binding or code base       http://www.imsglobal.org/cc/.\r
+  \r
+  Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+  \r
+  IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+  \r
+  Copyright ï¿½ IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+  \r
+  License Notice for Users\r
+  Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+  \r
+  Distribution Notice for Developers\r
+  Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+  \r
+  Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+  \r
+  - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+  \r
+  THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+  ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+  SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+  ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+  OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+  FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <!--*************************************************************************-->\r
 <!--** This schema has been modified from the original base schema named - **-->\r
 <!--** imsccauth_v1p0.xsd                                                  **-->\r
diff --git a/docs/mods/_core/imscp/domainProfile_1/lomLoose_constraintsDocument.scmt b/docs/mods/_core/imscp/domainProfile_1/lomLoose_constraintsDocument.scmt
new file mode 100644 (file)
index 0000000..d916143
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<schema xmlns="http://www.ascc.net/xml/schematron">\r
+  <ns prefix="xs" uri="http://www.w3.org/2001/XMLSchema" />\r
+  <ns prefix="xsd" uri="http://www.w3.org/2001/XMLSchema" />\r
+  <ns prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance" />\r
+  <ns prefix="ac" uri="http://iwm.uni-koblenz.de/xsd/tel_addc_v1p1" />\r
+  <ns prefix="ims" uri="http://www.imsglobal.org/xsd/imscc/imscp_v1p1" />\r
+  <!--***********************************************************************************************-->\r
+  <!--** Constraints document - this document holds Schematron rules that have been generated from **-->\r
+  <!--** AP condition and assertion elements. IMPORTANT: If this document exists, it MUST be       **-->\r
+  <!--** used in the validation of instances derived from the resultant schema - failure to do so  **-->\r
+  <!--** can result in an instance that does not conform to either the base schema or the          **-->\r
+  <!--** Application Profile.                                                                      **-->\r
+  <!--***********************************************************************************************-->\r
+  <pattern name="pattern_1">\r
+    <rule context="ims:organizations/ims:organization/ims:item/@identifierref | ims:manifest/ims:organizations/ims:organization/ims:item/@identifierref | @identifierref">\r
+      <assert test="(ims:organizations/ims:organization/ims:item/@identifierref | ims:manifest/ims:organizations/ims:organization/ims:item/@identifierref | @identifierref) and not (count(../item)=0)">Assertion failed for pattern_1. An Item object which represents a folder is indicated by the absence of an IdentifierRef characteristic object. Folder Items support unlimited nesting of other folder Items and learning object link Items. Learning Application Resource Item objects may be nested by folder Item object but may not nest other folder or Learning Application resource Item objects.(#S04)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_2">\r
+    <rule context="ims:resources/ims:resource/ims:dependency/@identifierref | ims:manifest/ims:resources/ims:resource/ims:dependency/@identifierref">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency/@identifierref | ims:manifest/ims:resources/ims:resource/ims:dependency/@identifierref) and (../../@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and not (current() = /manifest/resources/resource[@type='webcontent']/@identifier)">Assertion failed for pattern_2. A Resource object which is a Learning Object Web Content may contain Dependency objects which reference Resource objects with Type 'webcontent'.(#S03)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_3">\r
+    <rule context="ims:organizations/ims:organization/ims:item/ims:item | ims:manifest/ims:organizations/ims:organization/ims:item/ims:item">\r
+      <assert test="(ims:organizations/ims:organization/ims:item/ims:item | ims:manifest/ims:organizations/ims:organization/ims:item/ims:item) and (@isvisible='false') and not (count(./item)=count(./item[@isvisible='false']))">Assertion failed for pattern_3. If an item is invisible, its descendants must be invisible too.(#S02)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_4">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='imsdt_xmlv1p0') and not (current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier or current()/@identifierref = /manifest/resources/resource[@type='associatedcontent/imscc_xmlv1p0/learning-application-resource']/@identifier)">Assertion failed for pattern_4. A Resource object which is a Discussion Topic associated resource may contain Dependency objects which reference Resource objects with Type 'webcontent' or 'associatedcontent/imscc_xmlv1p0/learning-application-resource'.(#S12)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_5">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and not (current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier)">Assertion failed for pattern_5. \r
+ The test was: . \r
+ The context was: ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_6">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment') and not ((current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier) or (current()/@identifierref = /manifest/resources/resource[@type='associatedcontent/imscc_xmlv1p0/learning-application-resource']/@identifier))">Assertion failed for pattern_6. A Resource object which is an assessment may contain Dependency objects which reference Resource objects with Type 'webcontent' or 'associatedcontent/imscc_xmlv1p0/learning-application-resource'.(#S14)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_7">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and ((./@type='webcontent' or ./@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and ./@identifier = //item/@identifierref) and not (count(./@href)=1)">Assertion failed for pattern_7. If a cartridge web content or associated content resource is linked from a Learning Application Object link Item object it must have an Href characteristic object which represents the launchable resource.(#S05)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_8">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and (./@type='imsdt_xmlv1p0') and not (count(./file)=1 and count(./@href)=0)">Assertion failed for pattern_8. For Discussion Topic Resources the Resource object must contain a single File object which references the Discussion Topic descriptor XML file which conforms to the http://www.imsglobal.org/xsd/imsdt_v1p0 schema. It must not have any href attribute.(#S06)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_9">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and (./@type='imswl_xmlv1p0') and not (count(./file)=1 and count(./dependency)=0 and count(./@href)=0)">Assertion failed for pattern_9. For Web Link Resources the Resource object must contain a single File object which references the Web Link descriptor XML file which conforms to the http://www.imsglobal.org/xsd/imswl_v1p0 schema. It must contain neither Dependency objects nor an href attribute.(#S07)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_10">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and ((./@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment') or (./@type='imsqti_xmlv1p2/imscc_xmlv1p0/question-bank')) and not (count(./file)=1 and count(./@href)=0)">Assertion failed for pattern_10. For Assessment or Question Bank Resources the Resource object must contain a single File object which references the QTI XML file. This file must conform to the IMS CC profile of QTI 1.2.1. The profile is contained in the package of this profile as imscc_q*.xdm. The derived schema of this QTI profile is in the package of this profile with the name ims_qtiasiv1p2_localised.xsd. The resource must not have an href attribute(#S11)</assert>\r
+    </rule>\r
+  </pattern>\r
+</schema>\r
+\r
diff --git a/docs/mods/_core/imscp/domainProfile_2/lomLoose_constraintsDocument.scmt b/docs/mods/_core/imscp/domainProfile_2/lomLoose_constraintsDocument.scmt
new file mode 100644 (file)
index 0000000..d916143
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<schema xmlns="http://www.ascc.net/xml/schematron">\r
+  <ns prefix="xs" uri="http://www.w3.org/2001/XMLSchema" />\r
+  <ns prefix="xsd" uri="http://www.w3.org/2001/XMLSchema" />\r
+  <ns prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance" />\r
+  <ns prefix="ac" uri="http://iwm.uni-koblenz.de/xsd/tel_addc_v1p1" />\r
+  <ns prefix="ims" uri="http://www.imsglobal.org/xsd/imscc/imscp_v1p1" />\r
+  <!--***********************************************************************************************-->\r
+  <!--** Constraints document - this document holds Schematron rules that have been generated from **-->\r
+  <!--** AP condition and assertion elements. IMPORTANT: If this document exists, it MUST be       **-->\r
+  <!--** used in the validation of instances derived from the resultant schema - failure to do so  **-->\r
+  <!--** can result in an instance that does not conform to either the base schema or the          **-->\r
+  <!--** Application Profile.                                                                      **-->\r
+  <!--***********************************************************************************************-->\r
+  <pattern name="pattern_1">\r
+    <rule context="ims:organizations/ims:organization/ims:item/@identifierref | ims:manifest/ims:organizations/ims:organization/ims:item/@identifierref | @identifierref">\r
+      <assert test="(ims:organizations/ims:organization/ims:item/@identifierref | ims:manifest/ims:organizations/ims:organization/ims:item/@identifierref | @identifierref) and not (count(../item)=0)">Assertion failed for pattern_1. An Item object which represents a folder is indicated by the absence of an IdentifierRef characteristic object. Folder Items support unlimited nesting of other folder Items and learning object link Items. Learning Application Resource Item objects may be nested by folder Item object but may not nest other folder or Learning Application resource Item objects.(#S04)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_2">\r
+    <rule context="ims:resources/ims:resource/ims:dependency/@identifierref | ims:manifest/ims:resources/ims:resource/ims:dependency/@identifierref">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency/@identifierref | ims:manifest/ims:resources/ims:resource/ims:dependency/@identifierref) and (../../@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and not (current() = /manifest/resources/resource[@type='webcontent']/@identifier)">Assertion failed for pattern_2. A Resource object which is a Learning Object Web Content may contain Dependency objects which reference Resource objects with Type 'webcontent'.(#S03)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_3">\r
+    <rule context="ims:organizations/ims:organization/ims:item/ims:item | ims:manifest/ims:organizations/ims:organization/ims:item/ims:item">\r
+      <assert test="(ims:organizations/ims:organization/ims:item/ims:item | ims:manifest/ims:organizations/ims:organization/ims:item/ims:item) and (@isvisible='false') and not (count(./item)=count(./item[@isvisible='false']))">Assertion failed for pattern_3. If an item is invisible, its descendants must be invisible too.(#S02)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_4">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='imsdt_xmlv1p0') and not (current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier or current()/@identifierref = /manifest/resources/resource[@type='associatedcontent/imscc_xmlv1p0/learning-application-resource']/@identifier)">Assertion failed for pattern_4. A Resource object which is a Discussion Topic associated resource may contain Dependency objects which reference Resource objects with Type 'webcontent' or 'associatedcontent/imscc_xmlv1p0/learning-application-resource'.(#S12)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_5">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and not (current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier)">Assertion failed for pattern_5. \r
+ The test was: . \r
+ The context was: ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_6">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment') and not ((current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier) or (current()/@identifierref = /manifest/resources/resource[@type='associatedcontent/imscc_xmlv1p0/learning-application-resource']/@identifier))">Assertion failed for pattern_6. A Resource object which is an assessment may contain Dependency objects which reference Resource objects with Type 'webcontent' or 'associatedcontent/imscc_xmlv1p0/learning-application-resource'.(#S14)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_7">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and ((./@type='webcontent' or ./@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and ./@identifier = //item/@identifierref) and not (count(./@href)=1)">Assertion failed for pattern_7. If a cartridge web content or associated content resource is linked from a Learning Application Object link Item object it must have an Href characteristic object which represents the launchable resource.(#S05)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_8">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and (./@type='imsdt_xmlv1p0') and not (count(./file)=1 and count(./@href)=0)">Assertion failed for pattern_8. For Discussion Topic Resources the Resource object must contain a single File object which references the Discussion Topic descriptor XML file which conforms to the http://www.imsglobal.org/xsd/imsdt_v1p0 schema. It must not have any href attribute.(#S06)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_9">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and (./@type='imswl_xmlv1p0') and not (count(./file)=1 and count(./dependency)=0 and count(./@href)=0)">Assertion failed for pattern_9. For Web Link Resources the Resource object must contain a single File object which references the Web Link descriptor XML file which conforms to the http://www.imsglobal.org/xsd/imswl_v1p0 schema. It must contain neither Dependency objects nor an href attribute.(#S07)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_10">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and ((./@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment') or (./@type='imsqti_xmlv1p2/imscc_xmlv1p0/question-bank')) and not (count(./file)=1 and count(./@href)=0)">Assertion failed for pattern_10. For Assessment or Question Bank Resources the Resource object must contain a single File object which references the QTI XML file. This file must conform to the IMS CC profile of QTI 1.2.1. The profile is contained in the package of this profile as imscc_q*.xdm. The derived schema of this QTI profile is in the package of this profile with the name ims_qtiasiv1p2_localised.xsd. The resource must not have an href attribute(#S11)</assert>\r
+    </rule>\r
+  </pattern>\r
+</schema>\r
+\r
index c0ca9a7..4720ca8 100644 (file)
@@ -1,4 +1,51 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+    IPR, License and Distribution Notices\r
+    This machine readable file is derived from IMS specification IMS Content Packaging Version: 1.2 \r
+    found at http://www.imsglobal.org/content/packaging and the original IMS schema binding or code base \r
+    http://www.imsglobal.org/content/packaging/.\r
+    \r
+    Recipients of this document are requested to submit, with their comments, notification of any relevant patent \r
+    claims or other intellectual property rights of which they may be aware that might be infringed by the schema \r
+    binding contained in this document.\r
+    \r
+    IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be \r
+    claimed to pertain to the implementation or use of the technology described in this document or the extent to \r
+    which any license under such rights might or might not be available; neither does it represent that it has made \r
+    any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications \r
+    can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+    \r
+    Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+    \r
+    License Notice for Users\r
+    Users of products or services that include this document are hereby granted a worldwide, royalty-free, \r
+    non-exclusive license to use this document.\r
+    \r
+    Distribution Notice for Developers\r
+    Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+    \r
+    Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+    \r
+    - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, \r
+    display and distribute the contents of this document in any medium for any purpose without fee or royalty provided \r
+    that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. \r
+    To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once \r
+    registered you are granted permission to transfer unlimited distribution rights of this document for the purposes \r
+    of third-party or other distribution of your product or service that incorporates this document as long as this IPR, \r
+    License and Distribution notice remains in place in its entirety.\r
+    \r
+    - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, \r
+    display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+    \r
+    The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+    \r
+    THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+    ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+    SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+    ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+    OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+    FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imscp_extensionv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" targetNamespace="http://www.imsglobal.org/xsd/imscp_extensionv1p2" version="IMS CPX 1.2" elementFormDefault="qualified" attributeFormDefault="unqualified">\r
     <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.imsglobal.org/xsd/ims_xlink.xsd" />\r
     <xs:annotation>\r
diff --git a/docs/mods/_core/imscp/domainProfile_3/imscp_extensionv1p2_constraintsDocument.scmt b/docs/mods/_core/imscp/domainProfile_3/imscp_extensionv1p2_constraintsDocument.scmt
new file mode 100644 (file)
index 0000000..d916143
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<schema xmlns="http://www.ascc.net/xml/schematron">\r
+  <ns prefix="xs" uri="http://www.w3.org/2001/XMLSchema" />\r
+  <ns prefix="xsd" uri="http://www.w3.org/2001/XMLSchema" />\r
+  <ns prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance" />\r
+  <ns prefix="ac" uri="http://iwm.uni-koblenz.de/xsd/tel_addc_v1p1" />\r
+  <ns prefix="ims" uri="http://www.imsglobal.org/xsd/imscc/imscp_v1p1" />\r
+  <!--***********************************************************************************************-->\r
+  <!--** Constraints document - this document holds Schematron rules that have been generated from **-->\r
+  <!--** AP condition and assertion elements. IMPORTANT: If this document exists, it MUST be       **-->\r
+  <!--** used in the validation of instances derived from the resultant schema - failure to do so  **-->\r
+  <!--** can result in an instance that does not conform to either the base schema or the          **-->\r
+  <!--** Application Profile.                                                                      **-->\r
+  <!--***********************************************************************************************-->\r
+  <pattern name="pattern_1">\r
+    <rule context="ims:organizations/ims:organization/ims:item/@identifierref | ims:manifest/ims:organizations/ims:organization/ims:item/@identifierref | @identifierref">\r
+      <assert test="(ims:organizations/ims:organization/ims:item/@identifierref | ims:manifest/ims:organizations/ims:organization/ims:item/@identifierref | @identifierref) and not (count(../item)=0)">Assertion failed for pattern_1. An Item object which represents a folder is indicated by the absence of an IdentifierRef characteristic object. Folder Items support unlimited nesting of other folder Items and learning object link Items. Learning Application Resource Item objects may be nested by folder Item object but may not nest other folder or Learning Application resource Item objects.(#S04)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_2">\r
+    <rule context="ims:resources/ims:resource/ims:dependency/@identifierref | ims:manifest/ims:resources/ims:resource/ims:dependency/@identifierref">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency/@identifierref | ims:manifest/ims:resources/ims:resource/ims:dependency/@identifierref) and (../../@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and not (current() = /manifest/resources/resource[@type='webcontent']/@identifier)">Assertion failed for pattern_2. A Resource object which is a Learning Object Web Content may contain Dependency objects which reference Resource objects with Type 'webcontent'.(#S03)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_3">\r
+    <rule context="ims:organizations/ims:organization/ims:item/ims:item | ims:manifest/ims:organizations/ims:organization/ims:item/ims:item">\r
+      <assert test="(ims:organizations/ims:organization/ims:item/ims:item | ims:manifest/ims:organizations/ims:organization/ims:item/ims:item) and (@isvisible='false') and not (count(./item)=count(./item[@isvisible='false']))">Assertion failed for pattern_3. If an item is invisible, its descendants must be invisible too.(#S02)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_4">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='imsdt_xmlv1p0') and not (current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier or current()/@identifierref = /manifest/resources/resource[@type='associatedcontent/imscc_xmlv1p0/learning-application-resource']/@identifier)">Assertion failed for pattern_4. A Resource object which is a Discussion Topic associated resource may contain Dependency objects which reference Resource objects with Type 'webcontent' or 'associatedcontent/imscc_xmlv1p0/learning-application-resource'.(#S12)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_5">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and not (current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier)">Assertion failed for pattern_5. \r
+ The test was: . \r
+ The context was: ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_6">\r
+    <rule context="ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(ims:resources/ims:resource/ims:dependency | ims:manifest/ims:resources/ims:resource/ims:dependency) and (../@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment') and not ((current()/@identifierref = /manifest/resources/resource[@type='webcontent']/@identifier) or (current()/@identifierref = /manifest/resources/resource[@type='associatedcontent/imscc_xmlv1p0/learning-application-resource']/@identifier))">Assertion failed for pattern_6. A Resource object which is an assessment may contain Dependency objects which reference Resource objects with Type 'webcontent' or 'associatedcontent/imscc_xmlv1p0/learning-application-resource'.(#S14)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_7">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and ((./@type='webcontent' or ./@type='associatedcontent/imscc_xmlv1p0/learning-application-resource') and ./@identifier = //item/@identifierref) and not (count(./@href)=1)">Assertion failed for pattern_7. If a cartridge web content or associated content resource is linked from a Learning Application Object link Item object it must have an Href characteristic object which represents the launchable resource.(#S05)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_8">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and (./@type='imsdt_xmlv1p0') and not (count(./file)=1 and count(./@href)=0)">Assertion failed for pattern_8. For Discussion Topic Resources the Resource object must contain a single File object which references the Discussion Topic descriptor XML file which conforms to the http://www.imsglobal.org/xsd/imsdt_v1p0 schema. It must not have any href attribute.(#S06)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_9">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and (./@type='imswl_xmlv1p0') and not (count(./file)=1 and count(./dependency)=0 and count(./@href)=0)">Assertion failed for pattern_9. For Web Link Resources the Resource object must contain a single File object which references the Web Link descriptor XML file which conforms to the http://www.imsglobal.org/xsd/imswl_v1p0 schema. It must contain neither Dependency objects nor an href attribute.(#S07)</assert>\r
+    </rule>\r
+  </pattern>\r
+  <pattern name="pattern_10">\r
+    <rule context="ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource">\r
+      <assert test="(ims:resources/ims:resource | ims:manifest/ims:resources/ims:resource) and ((./@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment') or (./@type='imsqti_xmlv1p2/imscc_xmlv1p0/question-bank')) and not (count(./file)=1 and count(./@href)=0)">Assertion failed for pattern_10. For Assessment or Question Bank Resources the Resource object must contain a single File object which references the QTI XML file. This file must conform to the IMS CC profile of QTI 1.2.1. The profile is contained in the package of this profile as imscc_q*.xdm. The derived schema of this QTI profile is in the package of this profile with the name ims_qtiasiv1p2_localised.xsd. The resource must not have an href attribute(#S11)</assert>\r
+    </rule>\r
+  </pattern>\r
+</schema>\r
+\r
index ea9129a..4cc935b 100644 (file)
@@ -1,4 +1,51 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+    IPR, License and Distribution Notices\r
+    This machine readable file is derived from IMS specification IMS Content Packaging Version: 1.2 \r
+    found at http://www.imsglobal.org/content/packaging and the original IMS schema binding or code base \r
+    http://www.imsglobal.org/content/packaging/.\r
+    \r
+    Recipients of this document are requested to submit, with their comments, notification of any relevant patent \r
+    claims or other intellectual property rights of which they may be aware that might be infringed by the schema \r
+    binding contained in this document.\r
+    \r
+    IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be \r
+    claimed to pertain to the implementation or use of the technology described in this document or the extent to \r
+    which any license under such rights might or might not be available; neither does it represent that it has made \r
+    any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications \r
+    can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+    \r
+    Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+    \r
+    License Notice for Users\r
+    Users of products or services that include this document are hereby granted a worldwide, royalty-free, \r
+    non-exclusive license to use this document.\r
+    \r
+    Distribution Notice for Developers\r
+    Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+    \r
+    Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+    \r
+    - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, \r
+    display and distribute the contents of this document in any medium for any purpose without fee or royalty provided \r
+    that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. \r
+    To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once \r
+    registered you are granted permission to transfer unlimited distribution rights of this document for the purposes \r
+    of third-party or other distribution of your product or service that incorporates this document as long as this IPR, \r
+    License and Distribution notice remains in place in its entirety.\r
+    \r
+    - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, \r
+    display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+    \r
+    The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+    \r
+    THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+    ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+    SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+    ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+    OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+    FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <!--*************************************************************************-->\r
 <!--** This schema has been modified from the original base schema named - **-->\r
 <!--** imscp_extensionv1p2.xsd                                             **-->\r
index 46585ee..54f04c4 100644 (file)
@@ -1,10 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+       IPR, License and Distribution Notices\r
+       This machine readable file is derived from IMS specification IMS Question & Test Interoperability Version: 1.2 found at http://www.imsglobal.org/question/ and the original IMS schema binding or code base http://www.imsglobal.org/question/.\r
+       \r
+       Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+       \r
+       IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+       \r
+       Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+       \r
+       License Notice for Users\r
+       Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+       \r
+       Distribution Notice for Developers\r
+       Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+       \r
+       Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+       \r
+       - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+       \r
+       - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+       \r
+       The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+       \r
+       THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+       ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+       SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+       ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+       OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+       FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" targetNamespace="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" elementFormDefault="qualified" version="IMS QTI ASI 1.2">\r
        <!-- **************************** -->\r
        <!-- ** Inclusions and Imports ** -->\r
        <!-- **************************** -->\r
 <!-- ID changed schemaLocation from "http://www.w3.org/2001/03/xml.xsd" to "http://www.w3.org/2001/xml.xsd" -->\r
-       <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd" />\r
+       <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../xml.xsd" />\r
        <!-- ****************** -->\r
        <!-- ** Root Element ** -->\r
        <!-- ****************** -->\r
index 182d5b5..7372c03 100644 (file)
@@ -1,4 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+  IPR, License and Distribution Notices\r
+  This machine readable file is derived from IMS specification IMS Question & Test Interoperability Version: 1.2 found at http://www.imsglobal.org/question/ and the original IMS schema binding or code base http://www.imsglobal.org/question/.\r
+  \r
+  Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+  \r
+  IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+  \r
+  Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+  \r
+  License Notice for Users\r
+  Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+  \r
+  Distribution Notice for Developers\r
+  Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+  \r
+  Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+  \r
+  - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+  \r
+  THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+  ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+  SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+  ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+  OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+  FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <!--*************************************************************************-->\r
 \r
 <!--** This schema has been modified from the original schema named -      **-->\r
@@ -18,7 +49,7 @@
   <!-- ** Inclusions and Imports ** -->\r
   <!-- **************************** -->\r
   <!-- ID changed schemaLocation from "http://www.w3.org/2001/03/xml.xsd" to "http://www.w3.org/2001/xml.xsd" -->\r
-  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd" />\r
+  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../xml.xsd" />\r
   <!-- ****************** -->\r
   <!-- ** Root Element ** -->\r
   <!-- ****************** -->\r
   </xs:complexType>\r
   <!-- ************ -->\r
   <!-- ** decvar ** -->\r
+\r
   <!-- ************ -->\r
   <xs:complexType name="decvarType">\r
     <xs:simpleContent>\r
index 0777fa8..8930044 100644 (file)
@@ -1,4 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+       IPR, License and Distribution Notices\r
+       This machine readable file is derived from IMS specification IMS Question & Test Interoperability Version: 1.2 found at http://www.imsglobal.org/question/ and the original IMS schema binding or code base http://www.imsglobal.org/question/.\r
+       \r
+       Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+       \r
+       IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+       \r
+       Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+       \r
+       License Notice for Users\r
+       Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+       \r
+       Distribution Notice for Developers\r
+       Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+       \r
+       Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+       \r
+       - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+       \r
+       - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+       \r
+       The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+       \r
+       THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+       ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+       SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+       ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+       OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+       FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <!--*************************************************************************-->\r
 <!--** This schema has been modified from the original base schema named - **-->\r
 <!--** ims_qtiasiv1p2.xsd                                                  **-->\r
@@ -12,7 +43,7 @@
        <!-- ** Inclusions and Imports ** -->\r
        <!-- **************************** -->\r
 <!-- ID changed schemaLocation from "http://www.w3.org/2001/03/xml.xsd" to "http://www.w3.org/2001/xml.xsd" -->\r
-       <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd" />\r
+       <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../xml.xsd" />\r
        <!-- ****************** -->\r
        <!-- ** Root Element ** -->\r
        <!-- ****************** -->\r
                        <xs:element name="response_xy" type="response_xyType" minOccurs="0" maxOccurs="0" />\r
                        <xs:element name="response_str" type="response_strType" />\r
                        <xs:element name="response_num" type="response_numType" minOccurs="0" maxOccurs="0" />\r
-                       <xs:element name="response_grp" type="response_grpType" />\r
+                       <xs:element name="response_grp" type="response_grpType" minOccurs="0" maxOccurs="0" />\r
                        <xs:element ref="response_extension" minOccurs="0" maxOccurs="0" />\r
                </xs:choice>\r
                <xs:attribute name="class" type="xs:string" default="Block" />\r
index 0541296..30e0aa0 100644 (file)
@@ -1,4 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+  IPR, License and Distribution Notices\r
+  This machine readable file is derived from IMS specification IMS Common Cartridge Version 1.0 found at http://www.imsglobal.org/cc/index.html and the original IMS schema binding or code base       http://www.imsglobal.org/cc/ccv1p0/imscc_authv1p0.html.\r
+  \r
+  Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+  \r
+  IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+  \r
+  Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+  \r
+  License Notice for Users\r
+  Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+  \r
+  Distribution Notice for Developers\r
+  Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+  \r
+  Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+  \r
+  - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+  \r
+  THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+  ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+  SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+  ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+  OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+  FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" targetNamespace="http://www.imsglobal.org/xsd/ims_qtiasiv1p2">\r
   <xsd:import namespace="ims_qtiasiv1p2_def_copy.xsd" schemaLocation="ims_qtiasiv1p2_def_copy.xsd" />\r
   <!--****************************************************************************************-->\r
index 076005a..31d287b 100644 (file)
@@ -1,4 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+  IPR, License and Distribution Notices\r
+  This machine readable file is derived from IMS specification IMS Common Cartridge Version 1.0 found at http://www.imsglobal.org/cc/index.html and the original IMS schema binding or code base       http://www.imsglobal.org/cc/.\r
+  \r
+  Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+  \r
+  IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+  \r
+  Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+  \r
+  License Notice for Users\r
+  Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+  \r
+  Distribution Notice for Developers\r
+  Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+  \r
+  Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+  \r
+  - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+  \r
+  THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+  ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+  SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+  ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+  OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+  FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imswl_v1p0" targetNamespace="http://www.imsglobal.org/xsd/imswl_v1p0" elementFormDefault="unqualified">\r
   <xs:element name="webLink" type="webLinkType" />\r
   <xs:complexType name="webLinkType">\r
index 7485215..426689d 100644 (file)
-<?xml version = "1.0" encoding = "UTF-8"?>
-<xs:schema xmlns="http://www.imsglobal.org/xsd/imswl_v1p0"
-    targetNamespace="http://www.imsglobal.org/xsd/imswl_v1p0"
-    xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    version="IMS CC WBLNK 1.0"
-    elementFormDefault="qualified"
-    attributeFormDefault="unqualified">
-    <xs:annotation>
-        <xs:documentation>
-            XSD Data File Information
-            -------------------------
-            Author:         Colin Smythe
-            Date:           31st August, 2010
-            Version:        1.0
-            Status:         Final
-            Description:    This is the IMS GLC Web Links Data Model for the Common Cartridge.
-
-            History:        Version 1.0 - the first release of this data model.
-
-            License:        IPR, License and Distribution Notices
-
-                            This machine readable file is derived from IMS Global Learning Consortium (GLC) specification IMS [spec name] Version [x.x]
-                            found at http://www.imsglobal.org/[xxx] and the original IMS GLC schema binding or code base
-                            http://www.imsglobal.org/[binding document].
-
-                            Recipients of this document are requested to submit, with their comments, notification of any
-                            relevant patent claims or other intellectual property rights of which they may be aware that might be
-                            infringed by the schema binding contained in this document.
-
-                            IMS GLC takes no position regarding the validity or scope of any intellectual property or other
-                            rights that might be claimed to pertain to the implementation or use of the technology described in this
-                            document or the extent to which any license under such rights might or might not be available; neither
-                            does it represent that it has made any effort to identify any such rights. Information on IMS GLCs
-                            procedures with respect to rights in IMS GLC specifications can be found at the IMS GLC Intellectual Property
-                            Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
-
-                            Copyright Â© IMS Global Learning Consortium 1999-2010. All Rights Reserved.
-
-                            License Notice for Users
-
-                            Users of products or services that include this document are hereby granted a worldwide, royalty-free, 
-                            non-exclusive license to use this document. 
-
-                            Distribution Notice for Developers
-
-                            Developers of products or services that are not original incorporators of this document and 
-                            have not changed this document, that is, are distributing a software product that incorporates this 
-                            document as is from a third-party source other than IMS, are hereby granted permission to copy,
-                            display and distribute the contents of this document in any medium for any purpose without fee or 
-                            royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL
-                            copies, or portions thereof.
-
-                            Developers of products or services that are original incorporators of this document and wish 
-                            to provide distribution of this document as is or with modifications and developers of products and 
-                            services that are not original incorporators of this document and have changed this document, are
-                            required to register with the IMS GLC community on the IMS GLC website as described in the following two
-                            paragraphs:-
-
-                            *  If you wish to distribute this document as is, with no modifications, you are hereby granted 
-                               permission to copy, display and distribute the contents of this document in any medium for any 
-                               purpose without fee or royalty provided that you include this IPR, License and Distribution notice in
-                               its entirety on ALL copies, or portions thereof, that you make and you complete a valid license 
-                               registration with IMS and receive an email from IMS granting the license. To register, follow the 
-                               instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once 
-                               registered you are granted permission to transfer unlimited distribution rights of this document for the 
-                               purposes of third-party or other distribution of your product or service that incorporates this 
-                               document as long as this IPR, License and Distribution notice remains in place in its entirety; 
-
-                            *  If you wish to create and distribute a derived work from this document, you are hereby 
-                               granted permission to copy, display and distribute the contents of the derived work in any medium for 
-                               any purpose without fee or royalty provided that you include this IPR, License and Distribution 
-                               notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid 
-                               profile registration with IMS GLC and receive an email from IMS GLC granting the license. To register, follow
-                               the instructions on the IMS GLC website: http://www.imsglobal.org/profile/. Once registered you are 
-                               granted permission to transfer unlimited distribution rights of the derived work for the purposes of 
-                               third-party or other distribution of your product or service that incorporates the derived work as long 
-                               as this IPR, License and Distribution notice remains in place in its entirety. 
-
-                            The limited permissions granted above are perpetual and will not be revoked by IMS GLC or its 
-                            successors or assigns.
-
-                            THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
-                            EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM
-                            NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF
-                            ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
-
-            Source UML File Information
-            ---------------------------
-            The source file information must be supplied as an XMI file (without diagram layout information).
-            The supported UML authoring tools are:
-            (a) Poseidon â€“ v6 (and later)
-
-            Source XSLT File Information
-            ----------------------------
-            XSL Generator:    UMLtoXSDTransformv0p9.xsl
-            XSLT Processor:   Xalan
-            Release:          1.0 Beta 3
-            Date:             31st May, 2009
-
-            IMS GLC Auto-generation Binding Tool-kit (I-BAT)
-            ------------------------------------------------
-            This file was auto-generated using the IMS GLC Binding Auto-generation Tool-kit (I-BAT).  While every
-            attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
-            that this is an experimental tool.  Permission is given to make use of this tool.  IMS GLC makes no
-            claim on the materials created by third party users of this tool.  Details on how to use this tool
-            are contained in the IMS GLC "I-BAT" Documentation available at the IMS GLC web-site.
-
-            Tool Copyright:  2005-2010 (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
-        </xs:documentation>
-    </xs:annotation>
-
-    <!-- Generate Global Attributes *********************************************************************** -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate Namespaced extension Group  ************************************************************* -->
-
-    <xs:group name="grpStrict.any">
-        <xs:annotation>
-            <xs:documentation>
-                Any namespaced element from any namespace may be included within an "any" element.
-                The namespace for the imported element must be defined in the instance, and the schema must be imported.
-                The extension has a definition of "strict" i.e. they must have their own namespace.
-            </xs:documentation>
-        </xs:annotation>
-        <xs:sequence>
-            <xs:any namespace = "##other" processContents = "strict" minOccurs = "0" maxOccurs = "unbounded"/>
-        </xs:sequence>
-    </xs:group>
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate Special DataTypes  ********************************************************************** -->
-
-    <xs:complexType name="EmptyPrimitiveType.Type">
-        <xs:complexContent>
-            <xs:restriction base="xs:anyType"/>
-        </xs:complexContent>
-    </xs:complexType>
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the enumerated simpleType declarations ************************************************** -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the simpleType elements based IMS data-types  ******************************************* -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the derived data-type elements based upon simpleType ************************************ -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the derived data-type elements based upon derived simpleType **************************** -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the data-type ComplexTypes ************************************************************** -->
-
-    <xs:complexType name="WebLink.Type">
-        <xs:annotation>
-            <xs:documentation source="umldocumentation">
-                The WebLink complexType for the associated object.
-            </xs:documentation>
-        </xs:annotation>
-        <xs:sequence>
-            <xs:element name="title" type="xs:normalizedString" minOccurs = "1" maxOccurs = "1"/>
-            <xs:element name="url" type="URL.Type" minOccurs = "1" maxOccurs = "1"/>
-            <xs:group ref="grpStrict.any"/>
-        </xs:sequence>
-    </xs:complexType>
-
-    <xs:complexType name="URL.Type">
-        <xs:annotation>
-            <xs:documentation source="umldocumentation">
-                The URL for the web link.
-            </xs:documentation>
-        </xs:annotation>
-        <xs:complexContent>
-            <xs:extension base="EmptyPrimitiveType.Type">
-                <xs:attribute name="href" use="required" type="xs:normalizedString"/>
-                <xs:attribute name="target" use="optional" type="xs:normalizedString"/>
-                <xs:attribute name="windowFeatures" use="optional" type="xs:normalizedString"/>
-            </xs:extension>
-        </xs:complexContent>
-    </xs:complexType>
-
-    <!-- ================================================================================================== -->
-
-    <!-- Declaration of the elements ********************************************************************** -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Declaration of the root element(s) *************************************************************** -->
-
-    <xs:element name="webLink" type="WebLink.Type"/>
-
-    <!-- ================================================================================================== -->
-
-</xs:schema>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!--*************************************************************************-->\r
+<!--** This schema has been modified from the original base schema named - **-->\r
+<!--** imswl_v1p0.xsd                                                      **-->\r
+<!--** using the IMS SchemaProf tool. This tool is based on software from  **-->\r
+<!--** the TELCERT Project which was funded in part by the European        **-->\r
+<!--** Commission under contract IST-507128                                **-->\r
+<!--*************************************************************************-->\r
+<!--\r
+  IPR, License and Distribution Notices\r
+  This machine readable file is derived from IMS specification IMS Common Cartridge Version 1.0 found at http://www.imsglobal.org/cc/index.html and the original IMS schema binding or code base       http://www.imsglobal.org/cc/.\r
+  \r
+  Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+  \r
+  IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+  \r
+  Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+  \r
+  License Notice for Users\r
+  Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+  \r
+  Distribution Notice for Developers\r
+  Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+  \r
+  Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+  \r
+  - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+  \r
+  THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+  ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+  SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+  ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+  OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+  FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
+<!--*************************************************************************-->\r
+<!--** This schema has been modified from the original base schema named - **-->\r
+<!--** imswl_v1p0.xsd                                                      **-->\r
+<!--** using the IMS SchemaProf tool. This tool is based on software from  **-->\r
+<!--** the TELCERT Project which was funded in part by the European        **-->\r
+<!--** Commission under contract IST-507128                                **-->\r
+<!--*************************************************************************-->\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imswl_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.imsglobal.org/xsd/imswl_v1p0" elementFormDefault="unqualified">\r
+  <xs:element name="webLink" type="webLinkType" />\r
+  <xs:complexType name="webLinkType">\r
+    <xs:sequence>\r
+      <xs:element name="title" type="xs:string" />\r
+      <xs:element name="url">\r
+        <xs:complexType>\r
+          <xs:attribute name="href" type="xs:string" use="required" />\r
+          <xs:attribute name="target" type="xs:string" />\r
+          <xs:attribute name="windowFeatures" type="xs:string" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+    </xs:sequence>\r
+  </xs:complexType>\r
+</xs:schema>\r
index 8ad75a8..1831d54 100644 (file)
@@ -1,4 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+  IPR, License and Distribution Notices\r
+  This machine readable file is derived from IMS specification IMS Common Cartridge Version 1.0 found at http://www.imsglobal.org/cc/index.html and the original IMS schema binding or code base       http://www.imsglobal.org/cc/.\r
+  \r
+  Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+  \r
+  IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+  \r
+  Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+  \r
+  License Notice for Users\r
+  Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+  \r
+  Distribution Notice for Developers\r
+  Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+  \r
+  Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+  \r
+  - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+  \r
+  THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+  ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+  SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+  ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+  OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+  FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imsdt_v1p0" targetNamespace="http://www.imsglobal.org/xsd/imsdt_v1p0" elementFormDefault="unqualified">\r
 \r
   <xs:element name="topic" type="topicType" />\r
index 991e5da..4fd9bfd 100644 (file)
-<?xml version = "1.0" encoding = "UTF-8"?>
-<xs:schema xmlns="http://www.imsglobal.org/xsd/imsdt_v1p0"
-    targetNamespace="http://www.imsglobal.org/xsd/imsdt_v1p0"
-    xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    version="IMS CC DTPC 1.0"
-    elementFormDefault="qualified"
-    attributeFormDefault="unqualified">
-    <xs:annotation>
-        <xs:documentation>
-            XSD Data File Information
-            -------------------------
-            Author:         Colin Smythe
-            Date:           31st August, 2010
-            Version:        1.0
-            Status:         Final
-            Description:    This is the IMS GLC Discussion Topics Data Model for the Common Cartridge.
-
-            History:        Version 1.0 - the first release of this data model.
-
-            License:        IPR, License and Distribution Notices
-
-                            This machine readable file is derived from IMS Global Learning Consortium (GLC) specification IMS [spec name] Version [x.x]
-                            found at http://www.imsglobal.org/[xxx] and the original IMS GLC schema binding or code base
-                            http://www.imsglobal.org/[binding document].
-
-                            Recipients of this document are requested to submit, with their comments, notification of any
-                            relevant patent claims or other intellectual property rights of which they may be aware that might be
-                            infringed by the schema binding contained in this document.
-
-                            IMS GLC takes no position regarding the validity or scope of any intellectual property or other
-                            rights that might be claimed to pertain to the implementation or use of the technology described in this
-                            document or the extent to which any license under such rights might or might not be available; neither
-                            does it represent that it has made any effort to identify any such rights. Information on IMS GLCs
-                            procedures with respect to rights in IMS GLC specifications can be found at the IMS GLC Intellectual Property
-                            Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
-
-                            Copyright Â© IMS Global Learning Consortium 1999-2010. All Rights Reserved.
-
-                            License Notice for Users
-
-                            Users of products or services that include this document are hereby granted a worldwide, royalty-free, 
-                            non-exclusive license to use this document. 
-
-                            Distribution Notice for Developers
-
-                            Developers of products or services that are not original incorporators of this document and 
-                            have not changed this document, that is, are distributing a software product that incorporates this 
-                            document as is from a third-party source other than IMS, are hereby granted permission to copy,
-                            display and distribute the contents of this document in any medium for any purpose without fee or 
-                            royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL
-                            copies, or portions thereof.
-
-                            Developers of products or services that are original incorporators of this document and wish 
-                            to provide distribution of this document as is or with modifications and developers of products and 
-                            services that are not original incorporators of this document and have changed this document, are
-                            required to register with the IMS GLC community on the IMS GLC website as described in the following two
-                            paragraphs:-
-
-                            *  If you wish to distribute this document as is, with no modifications, you are hereby granted 
-                               permission to copy, display and distribute the contents of this document in any medium for any 
-                               purpose without fee or royalty provided that you include this IPR, License and Distribution notice in
-                               its entirety on ALL copies, or portions thereof, that you make and you complete a valid license 
-                               registration with IMS and receive an email from IMS granting the license. To register, follow the 
-                               instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once 
-                               registered you are granted permission to transfer unlimited distribution rights of this document for the 
-                               purposes of third-party or other distribution of your product or service that incorporates this 
-                               document as long as this IPR, License and Distribution notice remains in place in its entirety; 
-
-                            *  If you wish to create and distribute a derived work from this document, you are hereby 
-                               granted permission to copy, display and distribute the contents of the derived work in any medium for 
-                               any purpose without fee or royalty provided that you include this IPR, License and Distribution 
-                               notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid 
-                               profile registration with IMS GLC and receive an email from IMS GLC granting the license. To register, follow
-                               the instructions on the IMS GLC website: http://www.imsglobal.org/profile/. Once registered you are 
-                               granted permission to transfer unlimited distribution rights of the derived work for the purposes of 
-                               third-party or other distribution of your product or service that incorporates the derived work as long 
-                               as this IPR, License and Distribution notice remains in place in its entirety. 
-
-                            The limited permissions granted above are perpetual and will not be revoked by IMS GLC or its 
-                            successors or assigns.
-
-                            THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
-                            EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM
-                            NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF
-                            ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
-
-            Source UML File Information
-            ---------------------------
-            The source file information must be supplied as an XMI file (without diagram layout information).
-            The supported UML authoring tools are:
-            (a) Poseidon â€“ v6 (and later)
-
-            Source XSLT File Information
-            ----------------------------
-            XSL Generator:    UMLtoXSDTransformv0p9.xsl
-            XSLT Processor:   Xalan
-            Release:          1.0 Beta 3
-            Date:             31st May, 2009
-
-            IMS GLC Auto-generation Binding Tool-kit (I-BAT)
-            ------------------------------------------------
-            This file was auto-generated using the IMS GLC Binding Auto-generation Tool-kit (I-BAT).  While every
-            attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
-            that this is an experimental tool.  Permission is given to make use of this tool.  IMS GLC makes no
-            claim on the materials created by third party users of this tool.  Details on how to use this tool
-            are contained in the IMS GLC "I-BAT" Documentation available at the IMS GLC web-site.
-
-            Tool Copyright:  2005-2010 (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
-        </xs:documentation>
-    </xs:annotation>
-
-    <!-- Generate Global Attributes *********************************************************************** -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate Namespaced extension Group  ************************************************************* -->
-
-    <xs:group name="grpStrict.any">
-        <xs:annotation>
-            <xs:documentation>
-                Any namespaced element from any namespace may be included within an "any" element.
-                The namespace for the imported element must be defined in the instance, and the schema must be imported.
-                The extension has a definition of "strict" i.e. they must have their own namespace.
-            </xs:documentation>
-        </xs:annotation>
-        <xs:sequence>
-            <xs:any namespace = "##other" processContents = "strict" minOccurs = "0" maxOccurs = "unbounded"/>
-        </xs:sequence>
-    </xs:group>
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate Special DataTypes  ********************************************************************** -->
-
-    <xs:complexType name="EmptyPrimitiveType.Type">
-        <xs:complexContent>
-            <xs:restriction base="xs:anyType"/>
-        </xs:complexContent>
-    </xs:complexType>
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the enumerated simpleType declarations ************************************************** -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the simpleType elements based IMS data-types  ******************************************* -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the derived data-type elements based upon simpleType ************************************ -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the derived data-type elements based upon derived simpleType **************************** -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Generate the data-type ComplexTypes ************************************************************** -->
-
-    <xs:complexType name="Topic.Type">
-        <xs:annotation>
-            <xs:documentation source="umldocumentation">
-                The Topic complexType for the discussion topic object.
-            </xs:documentation>
-        </xs:annotation>
-        <xs:sequence>
-            <xs:element name="title" type="xs:normalizedString" minOccurs = "1" maxOccurs = "1"/>
-            <xs:element name="text" type="Text.Type" minOccurs = "1" maxOccurs = "1"/>
-            <xs:element name="attachments" type="Attachments.Type" minOccurs = "0" maxOccurs = "1"/>
-            <xs:group ref="grpStrict.any"/>
-        </xs:sequence>
-    </xs:complexType>
-
-    <xs:complexType name="Attachments.Type">
-        <xs:sequence>
-            <xs:element name="attachment" type="Attachment.Type" minOccurs = "1" maxOccurs = "unbounded"/>
-        </xs:sequence>
-    </xs:complexType>
-
-    <xs:complexType name="Text.Type">
-        <xs:annotation>
-            <xs:documentation source="umldocumentation">
-                The Text for the discussion topic.
-            </xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:string">
-                <xs:attribute name="texttype" use="required">
-                    <xs:simpleType>
-                        <xs:restriction base="xs:string">
-                            <xs:enumeration value="text/plain"/>
-                            <xs:enumeration value="text/html"/>
-                        </xs:restriction>
-                    </xs:simpleType>
-                </xs:attribute>
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="Attachment.Type">
-        <xs:complexContent>
-            <xs:extension base="EmptyPrimitiveType.Type">
-                <xs:attribute name="href" use="required" type="xs:normalizedString"/>
-            </xs:extension>
-        </xs:complexContent>
-    </xs:complexType>
-
-    <!-- ================================================================================================== -->
-
-    <!-- Declaration of the elements ********************************************************************** -->
-
-    <!-- ================================================================================================== -->
-
-    <!-- Declaration of the root element(s) *************************************************************** -->
-
-    <xs:element name="topic" type="Topic.Type"/>
-
-    <!-- ================================================================================================== -->
-
-</xs:schema>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+  IPR, License and Distribution Notices\r
+  This machine readable file is derived from IMS specification IMS Common Cartridge Version 1.0 found at http://www.imsglobal.org/cc/index.html and the original IMS schema binding or code base       http://www.imsglobal.org/cc/.\r
+  \r
+  Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by the schema binding contained in this document.\r
+  \r
+  IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+  \r
+  Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+  \r
+  License Notice for Users\r
+  Users of products or services that include this document are hereby granted a worldwide, royalty-free, non-exclusive license to use this document.\r
+  \r
+  Distribution Notice for Developers\r
+  Developers of products or services that are not original incorporators of this document and have not changed this document, that is, are distributing a software product that incorporates this document as is from a third-party source other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof.\r
+  \r
+  Developers of products or services that are original incorporators of this document and wish to provide distribution of this document as is or with modifications and developers of products and services that are not original incorporators of this document and have changed this document, are required to register with the IMS community on the IMS website as described in the following two paragraphs:\r
+  \r
+  - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, display and distribute the contents of this document in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once registered you are granted permission to transfer unlimited distribution rights of this document for the purposes of third-party or other distribution of your product or service that incorporates this document as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+  \r
+  The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+  \r
+  THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+  ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+  SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+  ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+  OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+  FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
+<!--*************************************************************************-->\r
+<!--** This schema has been modified from the original base schema named - **-->\r
+<!--** imsdt_v1p0.xsd                                                      **-->\r
+<!--** using the IMS SchemaProf tool. This tool is based on software from  **-->\r
+<!--** the TELCERT Project which was funded in part by the European        **-->\r
+<!--** Commission under contract IST-507128                                **-->\r
+<!--*************************************************************************-->\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imsdt_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.imsglobal.org/xsd/imsdt_v1p0" elementFormDefault="unqualified">\r
+\r
+  <xs:element name="topic" type="topicType" />\r
+  <xs:complexType name="topicType">\r
+    <xs:sequence>\r
+      <xs:element name="title" type="xs:string" />\r
+      <xs:element name="text">\r
+        <xs:complexType>\r
+          <xs:simpleContent>\r
+            <xs:extension base="xs:string">\r
+              <xs:attribute name="texttype" type="textTypeType" default="text/plain" />\r
+            </xs:extension>\r
+          </xs:simpleContent>\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="attachments" minOccurs="0">\r
+        <xs:complexType>\r
+          <xs:sequence>\r
+            <xs:element name="attachment" minOccurs="1" maxOccurs="unbounded">\r
+              <xs:complexType>\r
+                <xs:attribute name="href" type="xs:string" use="required" />\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:sequence>\r
+        </xs:complexType>\r
+      </xs:element>\r
+    </xs:sequence>\r
+  </xs:complexType>\r
+  <xs:simpleType name="textTypeType">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="text/html" />\r
+      <xs:enumeration value="text/plain" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+</xs:schema>\r
index 6644987..10cfc19 100644 (file)
@@ -166,6 +166,7 @@ class MyHandler {
                                                        'form'          => 'action',
                                                        'input'         => 'src',
                                                        'iframe'        => 'src',
+                                                       'source'        => 'src',
                                                        'embed'         => 'src',
                                                        'param'         => 'value');
        
@@ -329,7 +330,21 @@ $html_mainheader = str_replace(array('{COURSE_TITLE}', '{COURSE_PRIMARY_LANGUAGE
                                                           array($ims_course_title, $course_language_charset, $course_language_code),
                                                           $html_mainheader);
 
-
+$footer = str_replace( 
+    array(
+        '{COURSE_PRIMARY_LANGUAGE_CODE}',      
+        '{CONTENT_PACKAGE_TITLE}', 
+        '{COURSE_PRIMARY_LANGUAGE_CHARSET}', 
+        '{CONTENT_PACKAGE_HOW_TO}'
+    ), 
+    array(
+        $course_language_code, 
+        _AT('content_package') . ' - ' . $ims_course_title,
+        $course_language_charset,
+         _AT('general_help', AT_GUIDES_PATH.'index_list.php?lang='.$_SESSION['lang'])
+    ),
+    $footer_html
+);
 
 /* append the Organizations and Resources to the imsmanifest */
 $imsmanifest_xml .= str_replace(       array('{ORGANIZATIONS}',        '{RESOURCES}', '{COURSE_TITLE}'),
@@ -357,6 +372,7 @@ $zipfile->add_file($frame,                   'index.html');
 $zipfile->add_file($toc_html,           'toc.html');
 $zipfile->add_file($imsmanifest_xml, 'imsmanifest.xml');
 $zipfile->add_file($html_mainheader, 'header.html');
+$zipfile->add_file($footer,          'footer.html');
 if ($glossary_xml) {
        $zipfile->add_file($glossary_xml,  'glossary.xml');
        $zipfile->add_file($glossary_html, 'glossary.html');
@@ -366,7 +382,6 @@ $zipfile->add_file(file_get_contents(AT_INCLUDE_PATH.'../mods/_core/imscp/includ
 $zipfile->add_file(file_get_contents(AT_INCLUDE_PATH.'../mods/_core/imscp/include/imscp_rootv1p1p2.xsd'), 'imscp_rootv1p1p2.xsd');
 $zipfile->add_file(file_get_contents(AT_INCLUDE_PATH.'../mods/_core/imscp/include/imsmd_rootv1p2p1.xsd'), 'imsmd_rootv1p2p1.xsd');
 $zipfile->add_file(file_get_contents(AT_INCLUDE_PATH.'../mods/_core/imscp/include/ims.css'), 'ims.css');
-$zipfile->add_file(file_get_contents(AT_INCLUDE_PATH.'../mods/_core/imscp/include/footer.html'), 'footer.html');
 $zipfile->add_file(file_get_contents('../../../images/logo.gif'), 'logo.gif');
 
 $zipfile->close(); // this is optional, since send_file() closes it anyway
@@ -385,4 +400,4 @@ $ims_course_title = preg_replace("{[^a-zA-Z0-9._-]}","", trim($ims_course_title)
 $zipfile->send_file($ims_course_title . '_ims');
 
 exit;
-?>
\ No newline at end of file
+?>
index 0285ccb..a162fe5 100644 (file)
@@ -95,18 +95,18 @@ function checkResources($import_path){
 
        //generate a file tree
        $data = rscandir($import_path);
-
        //check if every file is presented in the manifest
        foreach($data as $filepath){
-               $filepath = substr($filepath, strlen($import_path));
-
+//     debug(preg_match('/(.*)\.xml/', substr($filepath, strlen($import_path))));
                //validate xml via its xsd/dtds
-               if (preg_match('/(.*)\.xml/', $filepath)){
+               if (preg_match('/(.*)\.xml/', substr($filepath, strlen($import_path)))){
                        libxml_use_internal_errors(true);
                        $dom = new DOMDocument();
-                       $dom->load(realpath($import_path.$filepath));
-                       if (!@$dom->schemaValidate('main.xsd')){
+                       $dom->load(realpath($filepath));
+//                     debug(realpath($filepath), 'filepath');
+                       if (!$dom->schemaValidate('main.xsd')){
                                $errors = libxml_get_errors();
+//                             debug($errors);exit;
                                foreach ($errors as $error) {
                                        //suppress warnings
                                        if ($error->level==LIBXML_ERR_WARNING){
@@ -116,6 +116,7 @@ function checkResources($import_path){
                                }
                                libxml_clear_errors();
                        }
+                       
                        //if this is the manifest file, we do not have to check for its existance.
 //                     if (preg_match('/(.*)imsmanifest\.xml/', $filepath)){
 //                             continue;
@@ -301,7 +302,6 @@ function removeCommonPath($items){
         if($ext=='xml'){
             continue;
         }
-        
         //if common path is empty, assign the first path to it.
         if ($common_path=='' && $quit==false){
             $common_path = $path;
@@ -321,6 +321,12 @@ function removeCommonPath($items){
         $intersect_array = array_intersect($common_array, $path_array);
         $common_path = implode('/', $intersect_array);       
     }
+    // If this path (including file extension) is in the filearray,
+    // then this means there is only 1 file in the array, implies there
+    // wasn't any intersection at all.  In this case, use the base root.
+    if(in_array($common_path, $filearray)) {
+        $common_path = '';
+    }
     return $common_path;
 }
 
@@ -428,15 +434,18 @@ function removeCommonPath($items){
                        }
 
                        $temp_path = pathinfo($attrs['href']);
-                       $temp_path = explode('/', $temp_path['dirname']);
-                       if (empty($package_base_path)){
-                           $package_base_path = $temp_path;
-            }
-                       if ($all_package_base_path!='' && empty($all_package_base_path)){
-                               $all_package_base_path = $temp_path;
+//                     if (!strpos($temp_path['dirname'], 'Share')) {
+            if ($temp_path['extension'] == 'html') {
+                           $temp_path = explode('/', $temp_path['dirname']);
+                           if (empty($package_base_path)){
+                               $package_base_path = $temp_path;
+                }
+                           if ($all_package_base_path!='' && empty($all_package_base_path)){
+                                   $all_package_base_path = $temp_path;
+                           }
+                           $package_base_path = array_intersect_assoc($package_base_path, $temp_path);
                        }
-                       $package_base_path = array_intersect_assoc($package_base_path, $temp_path);
-                       
+
                        //calculate the depths of relative paths
                        if ($all_package_base_path!=''){
                                $no_relative_temp_path = $temp_path;
@@ -456,15 +465,17 @@ function removeCommonPath($items){
                        if (in_array('..', $temp_path)){
                                $sizeofrp = array_count_values($temp_path);
                        }
-
-                       //for IMSCC, assume that all resources lies in the same folder, except styles.css
+                       //for IMSCC, assume that all resources lies in the same folder, except styles.css               
                        if ($items[$current_identifier]['type']=='webcontent' || $items[$current_identifier]['type']=='imsdt_xmlv1p0'){
                                //find the intersection of each item's related files, then that intersection is the content_path
                                if (isset($items[$current_identifier]['file'])){
                                        foreach ($items[$current_identifier]['file'] as $resource_path){
-                                               $temp_path = pathinfo($resource_path);
-                                               $temp_path = explode('/', $temp_path['dirname']);
-                                               $package_base_path = array_intersect_assoc($package_base_path, $temp_path);                                             
+                                           if (!strpos($resource_path, 'Share')) {
+                                                   $temp_path = pathinfo($resource_path);
+                                                   $temp_path = explode('/', $temp_path['dirname']);
+
+                                                   $package_base_path = array_intersect_assoc($package_base_path, $temp_path);                                         
+                                               }
                                        }
                                }
                        }
@@ -475,33 +486,15 @@ function removeCommonPath($items){
                                        array_pop($all_package_base_path);
                                }
                        }
-                       
-                       if (count($package_base_path) > 0) {
+                       if (!empty($package_base_path)) {
                                $items[$current_identifier]['new_path'] = implode('/', $package_base_path);
                        }
                                
-/* 
- * @harris, reworked the package_base_path 
-                               if ($package_base_path=="") {
-                                       $package_base_path = $temp_path;
-                               } 
-                               elseif (is_array($package_base_path) && $content_type != 'IMS Common Cartridge') {
-                                       //if this is a content package, we want only intersection
-                                       $package_base_path = array_intersect($package_base_path, $temp_path);
-                                       $temp_path = $package_base_path;
-                               }
-                               //added these 2 lines in so that pictures would load.  making the elseif above redundant.
-                               //if there is a bug for pictures not load, then it's the next 2 lines.
-                               $package_base_path = array_intersect($package_base_path, $temp_path);
-                               $temp_path = $package_base_path;
-                       }
-                       $items[$current_identifier]['new_path'] = implode('/', $temp_path);     
-*/
-                       if (    isset($_POST['allow_test_import']) && isset($items[$current_identifier]) 
+                       if (isset($_POST['allow_test_import']) && isset($items[$current_identifier]) 
                                                && preg_match('/((.*)\/)*tests\_[0-9]+\.xml$/', $attrs['href'])) {
                                $items[$current_identifier]['tests'][] = $attrs['href'];
                        } 
-                       if (    isset($_POST['allow_a4a_import']) && isset($items[$current_identifier])) {
+                       if (isset($_POST['allow_a4a_import']) && isset($items[$current_identifier])) {
                                $items[$current_identifier]['a4a_import_enabled'] = true;
                        }
                } else if (($name == 'item') && ($attrs['identifierref'] != '')) {
@@ -982,7 +975,6 @@ if ($package_base_path) {
 } elseif (empty($package_base_path)){
        $package_base_path = '';
 }
-
 if ($xml_base_path) {
        $package_base_path = $xml_base_path . $package_base_path;
 
@@ -1229,12 +1221,13 @@ foreach ($items as $item_id => $content_info)
        if(is_array($all_package_base_path)){
                $all_package_base_path = implode('/', $all_package_base_path);
        }
-       if ($common_path != '') {
+
+       if ($common_path != '' && substr($content_info['new_path'], strlen($common_path))) {
                $content_info['new_path'] = $package_base_name . substr($content_info['new_path'], strlen($common_path));
        } else {
                $content_info['new_path'] = $package_base_name . '/' . $content_info['new_path'];
        }
-       
+
        //handles weblinks
        if ($content_info['type']=='imswl_xmlv1p0'){
                $weblinks_parser = new WeblinksParser();
@@ -1391,7 +1384,7 @@ foreach ($items as $item_id => $content_info)
                $dt_import->associateForum($items[$item_id]['real_content_id'], $added_dt[$item_id]);
        }
 }
-//exit;//harris
+
 if ($package_base_path == '.') {
        $package_base_path = '';
 }
@@ -1428,7 +1421,7 @@ if(is_array($all_package_base_path)){
         }
     }
 }
-
+//exit;//harris
 //check if there are still resources missing
 /*
 foreach($items as $idetails){
index 3260030..b68f913 100644 (file)
@@ -1,6 +1,60 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+    IPR, License and Distribution Notices\r
+    This machine readable file is derived from IMS specification IMS Content Packaging Version: 1.2 \r
+    found at http://www.imsglobal.org/content/packaging/ and the original IMS schema binding or code base \r
+    http://www.imsglobal.org/content/packaging/.\r
+    \r
+    Recipients of this document are requested to submit, with their comments, notification of any relevant patent \r
+    claims or other intellectual property rights of which they may be aware that might be infringed by the schema \r
+    binding contained in this document.\r
+    \r
+    IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be \r
+    claimed to pertain to the implementation or use of the technology described in this document or the extent to \r
+    which any license under such rights might or might not be available; neither does it represent that it has made \r
+    any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications \r
+    can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+    \r
+    Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+    \r
+    License Notice for Users\r
+    Users of products or services that include this document are hereby granted a worldwide, royalty-free, \r
+    non-exclusive license to use this document.\r
+    \r
+    Distribution Notice for Developers\r
+    Developers of products or services that are not original incorporators of this document and have not changed this \r
+    document, that is, are distributing a software product that incorporates this document as is from a third-party source \r
+    other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any \r
+    medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its \r
+    entirety on ALL copies, or portions thereof.\r
+    \r
+    Developers of products or services that are original incorporators of this document and wish to provide distribution \r
+    of this document as is or with modifications and developers of products and services that are not original incorporators \r
+    of this document and have changed this document, are required to register with the IMS community on the IMS website \r
+    as described in the following two paragraphs:\r
+    \r
+    - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, \r
+    display and distribute the contents of this document in any medium for any purpose without fee or royalty provided \r
+    that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. \r
+    To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once \r
+    registered you are granted permission to transfer unlimited distribution rights of this document for the purposes \r
+    of third-party or other distribution of your product or service that incorporates this document as long as this IPR, \r
+    License and Distribution notice remains in place in its entirety.\r
+    \r
+    - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, \r
+    display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+    \r
+    The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+    \r
+    THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+    ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+    SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+    ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+    OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+    FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.imsglobal.org/xsd/imscp_v1p1" version="IMS CP 1.2" elementFormDefault="qualified" attributeFormDefault="unqualified">\r
-    <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd" />\r
+    <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />\r
     <xs:annotation>\r
         <xs:documentation>\r
             XSD Data File Information\r
index e23040d..0ee9287 100644 (file)
   <!--***********************************************************************************************-->\r
 \r
 \r
+  <pattern name="pattern_2">\r
+    <rule context="ims:organizations/ims:organization//ims:item">\r
+      <assert test="not(@isvisible='false') or count(./ims:item)=count(./ims:item[@isvisible='false'])">Assertion failed for pattern_2. If an item is invisible, its descendants must be invisible too.(#S02)</assert>\r
+    </rule>\r
+  </pattern>\r
+\r
   <pattern name="pattern_3">\r
     <rule context="ims:manifest/ims:resources/ims:resource/ims:dependency">\r
       <assert test="(not(../@type='associatedcontent/imscc_xmlv1p0/learning-application-resource')) or (current()/@identifierref = /ims:manifest/ims:resources/ims:resource[@type='webcontent']/@identifier)">Assertion failed for pattern_3. A Resource object which is a Learning Object associated resource may contain Dependency objects which reference Resource objects with Type 'webcontent'.(#S03)</assert>\r
     </rule>\r
   </pattern>\r
 \r
+<!-- Reference to SCORM removed\r
+  <pattern name="pattern_8">\r
+    <rule context="ims:manifest/ims:resources/ims:resource">\r
+      <assert test="not(./@type='imscc_xmlv1p0/scorm') or (count(./ims:file) = 1 and count(./ims:dependency)=0 and count(./@href)=0)">Error: Assertion validation failed for pattern_8:For SCORM resources the Resource object must contain a single File object which references the SCORM package interchange file.(#S08)</assert>\r
+    </rule>\r
+  </pattern>\r
+  -->\r
+<!-- TI references removed\r
+  <pattern name="pattern_9">\r
+    <rule context="ims:manifest/ims:resources/ims:resource">\r
+      <assert test="not(./@type='imstiptdc_xmlv1p0') or (count(./ims:file) = 1 and count(./ims:dependency)=1 and count(./@href)=0)">Error: Assertion validation failed for pattern_9: For TI Deployment Context Resources the Resource object must contain a single File object which references the TI deployment context XML file. It must have a single dependency which references a Resource object with Type 'imstiptdd_xmlv1p0'. This represents the Tools Interoperabilty Deployment Descriptor.The TI Deployment Context Resource must not have any href attribute(#S09)</assert>\r
+    </rule>\r
+  </pattern>\r
+\r
+\r
+  <pattern name="pattern_10">\r
+    <rule context="ims:manifest/ims:resources/ims:resource">\r
+      <assert test="not(./@type='imstiptdd_xmlv1p0') or (count(./ims:file) = 1 and count(./ims:dependency)=0 and count(./@href)=0)">Error: Assertion validation failed for pattern_9: For Deployment Descriptor Resources the Resource object must contain a single File object which references the TI deployment descriptor XML file. This file must conform to the schema http://www.imsglobal.org/services/cc/imsti_ptdd_v1p0. The Deployment Descriptor Resource must have neither a dependency nor an href attribute.(#S10)</assert>\r
+    </rule>\r
+  </pattern>\r
+-->\r
 \r
   <pattern name="pattern_11a">\r
     <rule context="ims:manifest/ims:resources/ims:resource">\r
       <assert test="not(./@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment') or (count(./ims:file) = 1 and count(./@href)=0)">Error: Assertion validation failed for pattern_11a: For Assessment resources the Resource object must contain a single File object which references the QTI XML file. This file must conform to the IMS CC profile of QTI 1.2.1. The profile is contained in the package of this profile as imscc_q*.zip. The derived schema of this QTI profile is in the package of this profile with the name ims_qtiasiv1p2_localised.xsd. The resource must not have an href attribute(#S11a)</assert>\r
     </rule>\r
   </pattern>\r
-\r
+<!--\r
+       The following pattern has been broken up into pattern 11b1-11b4 for better readability of reports\r
+  <pattern name="pattern_11b">\r
+    <rule context="ims:manifest/ims:resources/ims:resource">\r
+      <assert test="not(./@type='imsqti_xmlv1p2/imscc_xmlv1p0/question-bank') or (count(./ims:file) = 1 and count(./@href)=0 and not(//ims:item[@identifierref]=./@identifier) and count(//ims:resource[@type='imsqti_xmlv1p2/imscc_xmlv1p0/question-bank'])=1)">Error: Assertion validation failed for pattern_11b: For Question Bank resources the Resource object must contain a single File object which references the QTI XML file. This file must conform to the IMS CC profile of QTI 1.2.1. The profile is contained in the package of this profile as imscc_q*.zip. The derived schema of this QTI profile is in the package of this profile with the name ims_qtiasiv1p2_localised.xsd. The resource must not have an href attribute. Moreover a Question Bank Resource must not be referenced from an item. There can be only one Questionbank Resource in a cartridge.(#S11b)</assert>\r
+    </rule>\r
+  </pattern>\r
+-->\r
   <pattern name="pattern_11b1">\r
     <rule context="ims:manifest/ims:resources/ims:resource">\r
       <assert test="not(./@type='imsqti_xmlv1p2/imscc_xmlv1p0/question-bank') or (count(./ims:file) = 1 )">Error: Assertion validation failed for pattern_11b1: For Question Bank resources the Resource object must contain a single File object which references the QTI XML file. (#S11b1)</assert>\r
     </rule>\r
   </pattern>\r
 \r
+<!-- TI reference removed\r
+  <pattern name="pattern_13">\r
+    <rule context="ims:manifest/ims:resources/ims:resource/ims:dependency">\r
+      <assert test="(not(../@type='imstiptdc_xmlv1p0')) or (current()/@identifierref = /ims:manifest/ims:resources/ims:resource[@type='imstiptdd_xmlv1p0']/@identifier)">Assertion failed for pattern_13. A Resource object which is a Deployment Context may contain a single Dependency object which reference Resource objects which describe a Deployment descriptor.(#S13)</assert>\r
+    </rule>\r
+  </pattern>\r
+-->\r
+\r
   <pattern name="pattern_14">\r
     <rule context="ims:manifest/ims:resources/ims:resource/ims:dependency">\r
       <assert test="(not(../@type='imsqti_xmlv1p2/imscc_xmlv1p0/assessment')) or (current()/@identifierref = /ims:manifest/ims:resources/ims:resource[@type='webcontent']/@identifier) or (current()/@identifierref = /ims:manifest/ims:resources/ims:resource[@type='associatedcontent/imscc_xmlv1p0/learning-application-resource']/@identifier)">Assertion failed for pattern_14. A Resource object which is an assessment may contain Dependency objects which reference Resource objects with Type 'webcontent' or 'associatedcontent/imscc_xmlv1p0/learning-application-resource'.(#S14)</assert>\r
index c8a87f1..f09f80f 100644 (file)
@@ -1,4 +1,58 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+    IPR, License and Distribution Notices\r
+    This machine readable file is derived from IMS specification IMS Content Packaging Version: 1.2 \r
+    found at http://www.imsglobal.org/content/packaging/ and the original IMS schema binding or code base \r
+    http://www.imsglobal.org/content/packaging/.\r
+    \r
+    Recipients of this document are requested to submit, with their comments, notification of any relevant patent \r
+    claims or other intellectual property rights of which they may be aware that might be infringed by the schema \r
+    binding contained in this document.\r
+    \r
+    IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be \r
+    claimed to pertain to the implementation or use of the technology described in this document or the extent to \r
+    which any license under such rights might or might not be available; neither does it represent that it has made \r
+    any effort to identify any such rights. Information on IMS�s procedures with respect to rights in IMS specifications \r
+    can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.\r
+    \r
+    Copyright Â© IMS Global Learning Consortium 1999-2008. All Rights Reserved.\r
+    \r
+    License Notice for Users\r
+    Users of products or services that include this document are hereby granted a worldwide, royalty-free, \r
+    non-exclusive license to use this document.\r
+    \r
+    Distribution Notice for Developers\r
+    Developers of products or services that are not original incorporators of this document and have not changed this \r
+    document, that is, are distributing a software product that incorporates this document as is from a third-party source \r
+    other than IMS, are hereby granted permission to copy, display and distribute the contents of this document in any \r
+    medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its \r
+    entirety on ALL copies, or portions thereof.\r
+    \r
+    Developers of products or services that are original incorporators of this document and wish to provide distribution \r
+    of this document as is or with modifications and developers of products and services that are not original incorporators \r
+    of this document and have changed this document, are required to register with the IMS community on the IMS website \r
+    as described in the following two paragraphs:\r
+    \r
+    - If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, \r
+    display and distribute the contents of this document in any medium for any purpose without fee or royalty provided \r
+    that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid license registration with IMS and receive an email from IMS granting the license. \r
+    To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once \r
+    registered you are granted permission to transfer unlimited distribution rights of this document for the purposes \r
+    of third-party or other distribution of your product or service that incorporates this document as long as this IPR, \r
+    License and Distribution notice remains in place in its entirety.\r
+    \r
+    - If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, \r
+    display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or other distribution of your product or service that incorporates the derived work as long as this IPR, License and Distribution notice remains in place in its entirety.\r
+    \r
+    The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.\r
+    \r
+    THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, \r
+    ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION \r
+    SHALL BE MADE ENTIRELY AT THE IMPLEMENTER�S OWN RISK, AND NEITHER THE CONSORTIUM, NOR \r
+    ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER \r
+    OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING \r
+    FROM THE USE OF THIS SPECIFICATION.\r
+-->\r
 <!--*************************************************************************-->\r
 <!--** This schema has been modified from the original base schema named - **-->\r
 <!--** imscp_v1p2.xsd                                                      **-->\r
@@ -8,7 +62,7 @@
 <!--*************************************************************************-->\r
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.imsglobal.org/xsd/imscc/imscp_v1p1" targetNamespace="http://www.imsglobal.org/xsd/imscc/imscp_v1p1" version="IMS CP 1.2 localised_Schema_2008_6_30" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsccauth_v1p0 domainProfile_0\imsccauth_v1p0_localised.xsd http://ltsc.ieee.org/xsd/imscc/LOM domainProfile_1\lomLoose_localised.xsd http://ltsc.ieee.org/xsd/LOM domainProfile_2\lomLoose_localised.xsd http://www.imsglobal.org/xsd/imscp_extensionv1p2 domainProfile_3\imscp_extensionv1p2_localised.xsd">\r
        <xsd:include xmlns:xsd="http://www.w3.org/2001/XMLSchema" schemaLocation="imscc_c1p2maeV0p15_definition.xsd" />\r
-    <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd" />\r
+    <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />\r
     <xs:annotation>\r
         <xs:documentation>\r
             XSD Data File Information\r
diff --git a/docs/mods/_core/imscp/include/footer.html b/docs/mods/_core/imscp/include/footer.html
deleted file mode 100644 (file)
index 7ec7e3e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <link rel="stylesheet" type="text/css" href="ims.css" />
-       <title>About this Content Package</title>
-       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-</head>
-<body class="footerbody"> 
-<table>
-<tr>
-       <td valign="middle" align="left"><a href="http://www.atutor.ca" target="_blank"><img src="logo.gif" border="0" alt="ATutor.ca - opens in a new window" width="84" height="29" align="left" title="ATutor.ca - opens in a new window" /></a></td>
-       <td><span class="footer"><small>For general help with using the ATutor system see the official <a href="http://help.atutor.ca/" title="ATutor Handbook - opens in a new window" target="_blank">ATutor <strong>Handbook</strong> </a>.</small></span></td>
-</tr>
-</table>
-</body>
-</html>
\ No newline at end of file
index b00a218..1a7dbe1 100644 (file)
@@ -536,7 +536,24 @@ $html_frame = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
 </frameset>
 </html>';
 
-
+//footer
+$footer_html = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{COURSE_PRIMARY_LANGUAGE_CODE}" lang="{COURSE_PRIMARY_LANGUAGE_CODE}">
+<head>
+       <link rel="stylesheet" type="text/css" href="ims.css" />
+       <title>{CONTENT_PACKAGE_TITLE}</title>
+       <meta http-equiv="Content-Type" content="text/html; charset={COURSE_PRIMARY_LANGUAGE_CHARSET}" />
+</head>
+<body class="footerbody"> 
+<table>
+<tr>
+       <td valign="middle" align="left"><a href="http://www.atutor.ca" target="_blank"><img src="logo.gif" border="0" alt="ATutor.ca - opens in a new window" width="84" height="29" align="left" title="ATutor.ca - opens in a new window" /></a></td>
+       <td><span class="footer">{CONTENT_PACKAGE_HOW_TO}</span></td>
+</tr>
+</table>
+</body>
+</html>';
 
 $glossary_xml = '<?xml version="1.0" encoding="{COURSE_PRIMARY_LANGUAGE_CHARSET}"?>
 <!--This is an ATutor Glossary terms document-->
@@ -566,4 +583,4 @@ $glossary_body_html = '<h2>Glossary</h2>
 $glossary_term_html = '        <li><a name="{ENCODED_TERM}"></a><strong>{TERM}</strong><br />
                {DEFINITION}<br /><br /></li>';
 
-?>
\ No newline at end of file
+?>
index 2f9cca9..33014b2 100644 (file)
@@ -14,7 +14,7 @@
 
 define('AT_INCLUDE_PATH', '../../../include/');
 require(AT_INCLUDE_PATH.'vitals.inc.php');
-
+authenticate(AT_PRIV_CONTENT);
 require(AT_INCLUDE_PATH.'header.inc.php');
 
 if (!isset($_main_menu)) {
@@ -206,4 +206,4 @@ function changeFormAction(type){
 
 </script>
 
-<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
index e74cbc9..f1ffde0 100644 (file)
@@ -6,6 +6,7 @@
     xmlns:imscp     ="http://www.imsglobal.org/xsd/imscc/imscp_v1p1"
     xmlns:imslom    ="http://ltsc.ieee.org/xsd/imscc/LOM"
     xmlns:lom       ="http://ltsc.ieee.org/xsd/LOM"
+       xmlns:voc       ="http://ltsc.ieee.org/xsd/LOM/vocab"
     xmlns:cc        ="http://www.imsglobal.org/xsd/imsccauth_v1p0"
     xmlns:qti      ="http://www.imsglobal.org/xsd/ims_qtiasiv1p2"
     xmlns:wl       ="http://www.imsglobal.org/xsd/imswl_v1p0"
@@ -15,7 +16,7 @@
     elementFormDefault  ="qualified"
     attributeFormDefault="unqualified"   
     >
-   
+   <!--
     <xs:import namespace ="http://www.imsglobal.org/xsd/imscc/imscp_v1p1" schemaLocation = "imscp_v1p2_localised.xsd"                     />
     <xs:import namespace ="http://ltsc.ieee.org/xsd/imscc/LOM"            schemaLocation = "domainProfile_1/lomLoose_localised.xsd"       />
     <xs:import namespace ="http://ltsc.ieee.org/xsd/LOM"                  schemaLocation = "domainProfile_2/lomLoose_localised.xsd"       />
     <xs:import namespace ="http://www.imsglobal.org/xsd/imswl_v1p0"      schemaLocation = "domainProfile_5/imswl_v1p0_localised.xsd"     />    
     <xs:import namespace ="http://www.imsglobal.org/xsd/imsdt_v1p0"      schemaLocation = "domainProfile_6/imsdt_v1p0_localised.xsd"     />    
     <xs:import namespace ="http://www.atutor.ca/xsd/glossary"            schemaLocation = "glossary.xsd"                                 />    
+       -->
+    <xs:import namespace ="http://www.imsglobal.org/xsd/imscc/imscp_v1p1" schemaLocation = "imscp_v1p2_localised.xsd"                     />
+    <xs:import namespace ="http://ltsc.ieee.org/xsd/imscc/LOM"            schemaLocation = "domainProfile_1/lomLoose_localised.xsd"       />
+       <xs:import namespace ="http://ltsc.ieee.org/xsd/LOM"                  schemaLocation = "domainProfile_2/lomLoose_localised.xsd"       />
+       <xs:import namespace ="http://ltsc.ieee.org/xsd/LOM/vocab"            schemaLocation = "domainProfile_2/vocab/loose.xsd"       />
+    <xs:import namespace ="http://www.imsglobal.org/xsd/imsccauth_v1p0"   schemaLocation = "domainProfile_0/imsccauth_v1p0_localised.xsd" />
+    <xs:import namespace ="http://www.imsglobal.org/xsd/ims_qtiasiv1p2"   schemaLocation = "domainProfile_4/ims_qtiasiv1p2_localised.xsd" />
+    <xs:import namespace ="http://www.imsglobal.org/xsd/imswl_v1p0"      schemaLocation = "domainProfile_5/imswl_v1p0_localised.xsd"     />    
+    <xs:import namespace ="http://www.imsglobal.org/xsd/imsdt_v1p0"      schemaLocation = "domainProfile_6/imsdt_v1p0_localised.xsd"     />    
+    <xs:import namespace ="http://www.atutor.ca/xsd/glossary"            schemaLocation = "glossary.xsd"                                 />
 </xs:schema>
diff --git a/docs/mods/_core/imscp/xml.xsd b/docs/mods/_core/imscp/xml.xsd
new file mode 100644 (file)
index 0000000..dd86520
--- /dev/null
@@ -0,0 +1,310 @@
+<?xml version='1.0'?>
+<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" 
+  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+  xmlns   ="http://www.w3.org/1999/xhtml"
+  xml:lang="en">
+
+ <xs:annotation>
+  <xs:documentation>
+   <div>
+    <h1>About the XML namespace</h1>
+
+    <div class="bodytext">
+     <p>
+
+      This schema document describes the XML namespace, in a form
+      suitable for import by other schema documents.
+     </p>
+     <p>
+      See <a href="http://www.w3.org/XML/1998/namespace.html">
+      http://www.w3.org/XML/1998/namespace.html</a> and
+      <a href="http://www.w3.org/TR/REC-xml">
+      http://www.w3.org/TR/REC-xml</a> for information 
+      about this namespace.
+     </p>
+
+     <p>
+      Note that local names in this namespace are intended to be
+      defined only by the World Wide Web Consortium or its subgroups.
+      The names currently defined in this namespace are listed below.
+      They should not be used with conflicting semantics by any Working
+      Group, specification, or document instance.
+     </p>
+     <p>   
+      See further below in this document for more information about <a
+      href="#usage">how to refer to this schema document from your own
+      XSD schema documents</a> and about <a href="#nsversioning">the
+      namespace-versioning policy governing this schema document</a>.
+     </p>
+    </div>
+   </div>
+
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang">
+  <xs:annotation>
+   <xs:documentation>
+    <div>
+     
+      <h3>lang (as an attribute name)</h3>
+      <p>
+
+       denotes an attribute whose value
+       is a language code for the natural language of the content of
+       any element; its value is inherited.  This name is reserved
+       by virtue of its definition in the XML specification.</p>
+     
+    </div>
+    <div>
+     <h4>Notes</h4>
+     <p>
+      Attempting to install the relevant ISO 2- and 3-letter
+      codes as the enumerated possible values is probably never
+      going to be a realistic possibility.  
+     </p>
+     <p>
+
+      See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
+       http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
+      and the IANA language subtag registry at
+      <a href="http://www.iana.org/assignments/language-subtag-registry">
+       http://www.iana.org/assignments/language-subtag-registry</a>
+      for further information.
+     </p>
+     <p>
+
+      The union allows for the 'un-declaration' of xml:lang with
+      the empty string.
+     </p>
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+  <xs:simpleType>
+   <xs:union memberTypes="xs:language">
+    <xs:simpleType>    
+     <xs:restriction base="xs:string">
+      <xs:enumeration value=""/>
+
+     </xs:restriction>
+    </xs:simpleType>
+   </xs:union>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="space">
+  <xs:annotation>
+   <xs:documentation>
+
+    <div>
+     
+      <h3>space (as an attribute name)</h3>
+      <p>
+       denotes an attribute whose
+       value is a keyword indicating what whitespace processing
+       discipline is intended for the content of the element; its
+       value is inherited.  This name is reserved by virtue of its
+       definition in the XML specification.</p>
+     
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+  <xs:simpleType>
+
+   <xs:restriction base="xs:NCName">
+    <xs:enumeration value="default"/>
+    <xs:enumeration value="preserve"/>
+   </xs:restriction>
+  </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
+   <xs:documentation>
+
+    <div>
+     
+      <h3>base (as an attribute name)</h3>
+      <p>
+       denotes an attribute whose value
+       provides a URI to be used as the base for interpreting any
+       relative URIs in the scope of the element on which it
+       appears; its value is inherited.  This name is reserved
+       by virtue of its definition in the XML Base specification.</p>
+     
+     <p>
+      See <a
+      href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
+      for information about this attribute.
+     </p>
+
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="id" type="xs:ID">
+  <xs:annotation>
+   <xs:documentation>
+    <div>
+     
+      <h3>id (as an attribute name)</h3> 
+      <p>
+
+       denotes an attribute whose value
+       should be interpreted as if declared to be of type ID.
+       This name is reserved by virtue of its definition in the
+       xml:id specification.</p>
+     
+     <p>
+      See <a
+      href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
+      for information about this attribute.
+     </p>
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+  <xs:attribute ref="xml:base"/>
+  <xs:attribute ref="xml:lang"/>
+  <xs:attribute ref="xml:space"/>
+  <xs:attribute ref="xml:id"/>
+ </xs:attributeGroup>
+
+ <xs:annotation>
+
+  <xs:documentation>
+   <div>
+   
+    <h3>Father (in any context at all)</h3> 
+
+    <div class="bodytext">
+     <p>
+      denotes Jon Bosak, the chair of 
+      the original XML Working Group.  This name is reserved by 
+      the following decision of the W3C XML Plenary and 
+      XML Coordination groups:
+     </p>
+     <blockquote>
+       <p>
+
+       In appreciation for his vision, leadership and
+       dedication the W3C XML Plenary on this 10th day of
+       February, 2000, reserves for Jon Bosak in perpetuity
+       the XML name "xml:Father".
+       </p>
+     </blockquote>
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>
+
+   <div xml:id="usage" id="usage">
+    <h2><a name="usage">About this schema document</a></h2>
+
+    <div class="bodytext">
+     <p>
+      This schema defines attributes and an attribute group suitable
+      for use by schemas wishing to allow <code>xml:base</code>,
+      <code>xml:lang</code>, <code>xml:space</code> or
+      <code>xml:id</code> attributes on elements they define.
+     </p>
+
+     <p>
+      To enable this, such a schema must import this schema for
+      the XML namespace, e.g. as follows:
+     </p>
+     <pre>
+          &lt;schema . . .>
+           . . .
+           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+     </pre>
+     <p>
+      or
+     </p>
+     <pre>
+
+           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
+     </pre>
+     <p>
+      Subsequently, qualified reference to any of the attributes or the
+      group defined below will have the desired effect, e.g.
+     </p>
+     <pre>
+          &lt;type . . .>
+           . . .
+           &lt;attributeGroup ref="xml:specialAttrs"/>
+     </pre>
+     <p>
+      will define a type which will schema-validate an instance element
+      with any of those attributes.
+     </p>
+
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>
+   <div id="nsversioning" xml:id="nsversioning">
+    <h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
+
+    <div class="bodytext">
+     <p>
+      In keeping with the XML Schema WG's standard versioning
+      policy, this schema document will persist at
+      <a href="http://www.w3.org/2009/01/xml.xsd">
+       http://www.w3.org/2009/01/xml.xsd</a>.
+     </p>
+     <p>
+      At the date of issue it can also be found at
+      <a href="http://www.w3.org/2001/xml.xsd">
+       http://www.w3.org/2001/xml.xsd</a>.
+     </p>
+
+     <p>
+      The schema document at that URI may however change in the future,
+      in order to remain compatible with the latest version of XML
+      Schema itself, or with the XML namespace itself.  In other words,
+      if the XML Schema or XML namespaces change, the version of this
+      document at <a href="http://www.w3.org/2001/xml.xsd">
+       http://www.w3.org/2001/xml.xsd 
+      </a> 
+      will change accordingly; the version at 
+      <a href="http://www.w3.org/2009/01/xml.xsd">
+       http://www.w3.org/2009/01/xml.xsd 
+      </a> 
+      will not change.
+     </p>
+     <p>
+
+      Previous dated (and unchanging) versions of this schema 
+      document are at:
+     </p>
+     <ul>
+      <li><a href="http://www.w3.org/2009/01/xml.xsd">
+       http://www.w3.org/2009/01/xml.xsd</a></li>
+      <li><a href="http://www.w3.org/2007/08/xml.xsd">
+       http://www.w3.org/2007/08/xml.xsd</a></li>
+      <li><a href="http://www.w3.org/2004/10/xml.xsd">
+
+       http://www.w3.org/2004/10/xml.xsd</a></li>
+      <li><a href="http://www.w3.org/2001/03/xml.xsd">
+       http://www.w3.org/2001/03/xml.xsd</a></li>
+     </ul>
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+</xs:schema>
+
index 318a556..fe0ec95 100644 (file)
@@ -230,6 +230,10 @@ class QTIParser {
                                break;
                        case 'varequal':
                                //stores the answers (either correct or incorrect) into a stack
+                               if (in_array('not', $this->element_path)) {                             
+                                   //if there is a "not", it's a multiple answer, and this should be included to the answer
+                                   break;
+                }
                                $this->temp_answer[$this->attributes[$this->item_num][$name]['respident']]['name'][] = $this->character_data;
                                //responses handling, remember to save the answers or match them up
                                if (!is_array($this->answers[$this->item_num])){
@@ -248,8 +252,9 @@ class QTIParser {
 
                                //closing this tag means a selection of choices have ended.  Assign the correct answer in this case.
                                $tv = $this->temp_answer[$this->attributes[$this->item_num]['varequal']['respident']];
-//                             debug($tv, 'harris'.$this->item_num);
-//                             debug($this->answers_for_matching[$this->item_num], 'answers');
+                               //debug($tv, 'harris'.$this->item_num);
+                //debug($this->choices[$this->item_num], 'choices');
+                               //debug($this->answers_for_matching[$this->item_num], 'answers for matching');
 
                                //If matching, then attribute = 'Respondus_correct'; otherwise it is 'que_score'
                                if ($this->getQuestionType($this->item_num) == 5){
@@ -285,8 +290,7 @@ class QTIParser {
                                                        $this->answers_for_matching[$this->item_num] = array();
                                                }                                                       
 //                                                     if (!in_array($tv['name'][$val_id], $this->answers_for_matching[$this->item_num])){
-                                                       array_push($this->answers_for_matching[$this->item_num], $tv['name'][$pos]);
-                                                       
+                                                       array_push($this->answers_for_matching[$this->item_num], $tv['name'][sizeof($tv['name'])-1]);
                                                        //add mark
                                                        $this->weights[$this->item_num] += floatval($current_answer);
 //                                                     } 
@@ -470,4 +474,4 @@ class QTIParser {
 
 }
 
-?>
\ No newline at end of file
+?>
index b925eea..4302fe3 100644 (file)
@@ -713,11 +713,11 @@ class Module {
         */
        function getContent($cid){
                if (file_exists(AT_MODULE_PATH . $this->_directoryName.'/ModuleCallbacks.class.php') &&
-                   isset($this->_callbacks[$this->_directoryName])) 
+                   isset($this->_callbacks[basename($this->_directoryName)])) 
                {
                        require(AT_MODULE_PATH . $this->_directoryName.'/ModuleCallbacks.class.php');
-                       if (method_exists($this->_callbacks[$this->_directoryName], "appendContent")) {
-                               eval('$output = '.$this->_callbacks[$this->_directoryName]."::appendContent($cid);");
+                       if (method_exists($this->_callbacks[basename($this->_directoryName)], "appendContent")) {
+                               eval('$output = '.$this->_callbacks[basename($this->_directoryName)]."::appendContent($cid);");
                                return $output;
                        }
                }
index 94e48e4..51ff757 100644 (file)
@@ -23,6 +23,22 @@ if (isset($_POST['cancel'])) {
 \r
 if (isset($_POST['submit'])) {\r
        $missing_fields = array();\r
+        $_POST['password']   = $addslashes($_POST['password']);\r
+               $_POST['website']    = $addslashes($_POST['website']);\r
+               $_POST['first_name'] = $addslashes($_POST['first_name']);\r
+               $_POST['second_name']  = $addslashes($_POST['second_name']);\r
+               $_POST['last_name']  = $addslashes($_POST['last_name']);\r
+               $_POST['address']    = $addslashes($_POST['address']);\r
+               $_POST['postal']     = $addslashes($_POST['postal']);\r
+               $_POST['city']       = $addslashes($_POST['city']);\r
+               $_POST['province']   = $addslashes($_POST['province']);\r
+               $_POST['country']    = $addslashes($_POST['country']);\r
+               $_POST['phone']      = $addslashes($_POST['phone']);\r
+               $_POST['status']     = intval($_POST['status']);\r
+               $_POST['gender']     = $addslashes($_POST['gender']);\r
+               $_POST['login']      = $addslashes($_POST['login']);\r
+        $_POST['email'] = $addslashes($_POST['email']);\r
+\r
 \r
        //check if student id (public field) is already being used\r
        if (!$_POST['overwrite'] && !empty($_POST['student_id'])) {\r
@@ -77,7 +93,6 @@ if (isset($_POST['submit'])) {
                $msg->addError('EMAIL_INVALID');\r
        }\r
 \r
-       $_POST['email'] = $addslashes($_POST['email']);\r
        $result = mysql_query("SELECT member_id FROM ".TABLE_PREFIX."members WHERE email LIKE '$_POST[email]'",$db);\r
        if (mysql_num_rows($result) != 0) {\r
                $msg->addError('EMAIL_EXISTS');\r
@@ -137,19 +152,6 @@ if (isset($_POST['submit'])) {
                } else {\r
                        $_POST['private_email'] = 0;\r
                }\r
-               $_POST['password']   = $addslashes($_POST['password']);\r
-               $_POST['website']    = $addslashes($_POST['website']);\r
-               $_POST['first_name'] = $addslashes($_POST['first_name']);\r
-               $_POST['second_name']  = $addslashes($_POST['second_name']);\r
-               $_POST['last_name']  = $addslashes($_POST['last_name']);\r
-               $_POST['address']    = $addslashes($_POST['address']);\r
-               $_POST['postal']     = $addslashes($_POST['postal']);\r
-               $_POST['city']       = $addslashes($_POST['city']);\r
-               $_POST['province']   = $addslashes($_POST['province']);\r
-               $_POST['country']    = $addslashes($_POST['country']);\r
-               $_POST['phone']      = $addslashes($_POST['phone']);\r
-               $_POST['status']     = intval($_POST['status']);\r
-               $_POST['gender']     = $addslashes($_POST['gender']);\r
 \r
                $now = date('Y-m-d H:i:s'); // we use this later for the email confirmation.\r
 \r
@@ -232,4 +234,4 @@ if (!isset($_POST['status'])) {
 \r
 $savant->display('registration.tmpl.php');\r
 \r
-?>
\ No newline at end of file
+?>\r
index 51ef3f5..b76d4cc 100644 (file)
@@ -102,7 +102,7 @@ if (isset($_POST['submit']) || isset($_POST["set_default"])) {
        $result = mysql_query($sql, $db);
 
        $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
-       header('Location: '.$_SERVER['PHP_SELF']);
+       header('Location: '.$_SERVER['PHP_SELF'].'?current_tab='.$_POST['current_tab']);
        exit;
 }
 
index b7123bd..7fdea95 100644 (file)
@@ -29,6 +29,22 @@ if (isset($_POST['submit'])) {
        $missing_fields = array();\r
 \r
        $id = intval($_POST['id']);\r
+       //$_POST['password']   = $addslashes($_POST['password']);\r
+    $_POST['website']    = $addslashes($_POST['website']);\r
+    $_POST['first_name'] = $addslashes($_POST['first_name']);\r
+    $_POST['second_name'] = $addslashes($_POST['second_name']);\r
+    $_POST['last_name']  = $addslashes($_POST['last_name']);\r
+    $_POST['address']    = $addslashes($_POST['address']);\r
+    $_POST['postal']     = $addslashes($_POST['postal']);\r
+    $_POST['city']       = $addslashes($_POST['city']);\r
+    $_POST['province']   = $addslashes($_POST['province']);\r
+    $_POST['country']    = $addslashes($_POST['country']);\r
+    $_POST['phone']      = $addslashes($_POST['phone']);\r
+    $_POST['status']     = intval($_POST['status']);\r
+    $_POST['old_status']     = intval($_POST['old_status']);\r
+    $_POST['gender']     = $addslashes($_POST['gender']);\r
+    $_POST['student_id'] = intval($_POST['student_id']);\r
+    $_POST['email']      = $addslashes($_POST['email']);\r
 \r
        //check if student id (public field) is already being used\r
        if (!$_POST['overwrite'] && !empty($_POST['student_id'])) {\r
@@ -125,21 +141,6 @@ if (isset($_POST['submit'])) {
                        $_POST['private_email'] = 0;\r
                }\r
 \r
-               //$_POST['password']   = $addslashes($_POST['password']);\r
-               $_POST['website']    = $addslashes($_POST['website']);\r
-               $_POST['first_name'] = $addslashes($_POST['first_name']);\r
-               $_POST['second_name'] = $addslashes($_POST['second_name']);\r
-               $_POST['last_name']  = $addslashes($_POST['last_name']);\r
-               $_POST['address']    = $addslashes($_POST['address']);\r
-               $_POST['postal']     = $addslashes($_POST['postal']);\r
-               $_POST['city']       = $addslashes($_POST['city']);\r
-               $_POST['province']   = $addslashes($_POST['province']);\r
-               $_POST['country']    = $addslashes($_POST['country']);\r
-               $_POST['phone']      = $addslashes($_POST['phone']);\r
-               $_POST['status']     = intval($_POST['status']);\r
-               $_POST['old_status']     = intval($_POST['old_status']);\r
-               $_POST['gender']     = $addslashes($_POST['gender']);\r
-\r
                /* insert into the db. (the last 0 for status) */\r
                $sql = "UPDATE ".TABLE_PREFIX."members SET      email      = '$_POST[email]',\r
                                                                                                        website    = '$_POST[website]',\r
@@ -261,4 +262,4 @@ if (isset($_REQUEST['ml']) && $_REQUEST['ml']) {
 $savant->assign('no_captcha', true);\r
 $savant->display('registration.tmpl.php');\r
 \r
-?>
\ No newline at end of file
+?>\r
index f5fa8d6..6487ec2 100644 (file)
@@ -18,6 +18,78 @@ define('AT_INCLUDE_PATH', '../../../include/');
 require(AT_INCLUDE_PATH.'vitals.inc.php');
 admin_authenticate(AT_ADMIN_PRIV_USERS);
 
+/**
+ * A simple method to sign the request with the secret using HMAC.  
+ * @param   String      Use UTC time, gmdate("Y-m-d\TH:i:s\Z");
+ * @param   String      Hashed secret.  Unique per user.   
+ */
+function at_sign_request($timestamp, $publicKey) {
+    global $db;
+    if (!isset($_SESSION['login'])) {
+        return $url;
+    }
+    $sql = 'SELECT last_login FROM ' . TABLE_PREFIX . "admins WHERE login='$_SESSION[login]'";
+    $result = mysql_query($sql, $db);
+    $row = mysql_fetch_assoc($result);
+    //This key should be unique often enough yet binds to the user only.
+    //easier way is to create a key table
+    $privateKey = hash_hmac('sha256', $row['last_login'], $row['password']);
+
+    /* 
+     * Our simple way to sign the key
+     * include GET header, then sort query, add current timestamp, sign it.
+     */
+    $canonicalArray['publicKey'] = $publicKey;
+    $canonicalArray['timestamp'] = $timestamp;
+
+    $str = "GET http/1.0\n";
+    foreach ($canonicalArray as $k => $v) {
+        $str .= "$k=" . rawurlencode($v) . "\n";
+    }
+    $hmacSignature = base64_encode(hash_hmac('sha512', $str, $privateKey, true));
+    return rawurlencode($hmacSignature);
+}
+
+/**
+ * Verify request by the given signedUrl
+ * @param   String      querystring without '?', usually the $_SERVER['QUERY_STRING']
+ *
+ */
+function at_verify_request($signature, $timestamp, $publicKey) {
+    global $db;
+    if ($signature == "" || $timestamp == "" || $publicKey == "") {
+        //if parameters are empty, return false.
+        return false;
+    }
+    $sql = 'SELECT last_login FROM ' . TABLE_PREFIX . "admins WHERE login='$_SESSION[login]'";
+    $result = mysql_query($sql, $db);
+    $row = mysql_fetch_assoc($result);
+    $privateKey = hash_hmac('sha256', $row['last_login'], $row['password']);
+    
+    $canonicalArray = array();
+    $canonicalArray['publicKey'] = $publicKey;
+    $canonicalArray['timestamp'] = $timestamp;
+    //check expirary
+    $timeDiff = time() - strtotime($canonicalArray['timestamp']);
+    if ($timeDiff > 36000) {
+        //more than 10mins, expired.
+        //TODO: use constants.
+        die('time expired');
+        return false;
+    }
+    //check data integrity
+    //generate our own hmac to check
+    $str = "GET http/1.0\n";
+    foreach ($canonicalArray as $k => $v) {
+        $str .= "$k=" . rawurlencode($v) . "\n";
+    }
+    $hmacSignature = base64_encode(hash_hmac('sha512', $str, $privateKey, true));
+    if (rawurldecode($signature) === $hmacSignature) {
+        return true;
+    } 
+    return false;    
+}
+
 if (isset($_GET['deny']) && isset($_GET['id'])) {
        header('Location: admin_deny.php?id='.$_GET['id']);
        exit;
@@ -29,6 +101,13 @@ if (isset($_GET['deny']) && isset($_GET['id'])) {
        */
 
 } else if (isset($_GET['approve']) && isset($_GET['id'])) {
+    //verify token first.
+    if (!at_verify_request($_GET['auth_token'], $_GET['auth_timestamp'], $_GET['auth_publicKey'])) {
+        $msg->addError('INVALID_AUTH_REQUEST');
+        header('Location: instructor_requests.php');
+        exit;
+    }
+    
        $id = intval($_GET['id']);
 
        $sql = 'DELETE FROM '.TABLE_PREFIX.'instructor_approvals WHERE member_id='.$id;
@@ -76,6 +155,10 @@ if (isset($_GET['deny']) && isset($_GET['id'])) {
        $msg->addError('NO_ITEM_SELECTED');
 }
 
+/* Authentication info */
+$timestamp = gmdate("Y-m-d\TH:i:s\Z");
+$publicKey = hash('sha256', mt_rand());
+
 require(AT_INCLUDE_PATH.'header.inc.php'); 
 
 $sql   = "SELECT M.login, M.first_name, M.last_name, M.email, M.member_id, A.* FROM ".TABLE_PREFIX."members M, ".TABLE_PREFIX."instructor_approvals A WHERE A.member_id=M.member_id ORDER BY M.login";
@@ -85,4 +168,6 @@ $num_pending = mysql_num_rows($result);
 $savant->assign('result', $result);
 $savant->assign('num_pending', $num_pending);
 $savant->display('admin/users/instructor_requests.tmpl.php');
-require(AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
+
+require(AT_INCLUDE_PATH.'footer.inc.php'); 
+?>
\ No newline at end of file
index 1ba2061..5175d2e 100644 (file)
@@ -221,7 +221,7 @@ global $db, $_config_defaults;;
  * @return string - either 'enable' if the cookies were set, or 'disable' otherwise.
  */
 function setAutoLoginCookie($toDo) {
-global $db;
+    global $db;
 
     //set default values for disabled auto login cookies
     $parts = parse_url(AT_BASE_HREF);
@@ -234,16 +234,18 @@ global $db;
        //if enable auto login, set actual cookie values
        if ($toDo == 'enable') {
                $time = time() + 172800;
-               $sql    = "SELECT password FROM ".TABLE_PREFIX."members WHERE member_id=$_SESSION[member_id]";
+               $sql    = "SELECT password, last_login FROM ".TABLE_PREFIX."members WHERE member_id=$_SESSION[member_id]";
                $result = mysql_query($sql, $db);
                $row    = mysql_fetch_assoc($result);
                $password = $row["password"];
+               $last_login = $row["last_login"];
                $login = $_SESSION['login'];    
        }
-       
-       //set cookies and boolean value indicating cookies have been set.ies
+       #4775: password now store with salt
+       $saltedPassword = hash('sha512', $password . hash('sha512', $last_login));
+       //set cookies and boolean value indicating cookies have been set.iesf
        $is_cookie_login_set = ATutor.setcookie('ATLogin', $login, $time, $path);
-       $is_cookie_pass_set = ATutor.setcookie('ATPass',  $password, $time, $path);
+       $is_cookie_pass_set = ATutor.setcookie('ATPass',  $saltedPassword, $time, $path);
        if ($is_cookie_login_set && $is_cookie_pass_set) $is_auto_login = $toDo;
        return $is_auto_login;
 }
@@ -262,4 +264,4 @@ function checkAutoLoginCookie() {
     return $is_auto_login;
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/docs/mods/_standard/assignment_dropbox/README b/docs/mods/_standard/assignment_dropbox/README
new file mode 100644 (file)
index 0000000..7ddbceb
--- /dev/null
@@ -0,0 +1,25 @@
+Assignment Dropbox README
+
+This module can be installed with ATutor for:
+1) instructors to manage students' assignment submissions.
+2) students to submit assignments.
+
+* How to install
+1. Copy the downloaded file into the ATutor mods/ directory and unzip it there. 
+
+On Windows systems use and application like WinZip the extract the file into the mods/ directory
+
+On Unix/Linux systems use the command:
+
+unzip assignment_dropbox.zip
+
+2. Login to ATutor as the administrator and run Install Module under the Modules tab, select the Assignment Dropbox module, which should be listed as available to be installed when the module has been unzipped into the mods directory
+
+3. Once the module has been installed, and enabled, login as instructor, click on tab "Manage", the "Assignment Dropbox" is listed onlong with the Assignment Manager. Instructors make the Assignment Dropbox available to students through "Course Tools". 
+
+* How to use Assignment Dropbox
+1. for instructors
+  Assignment Dropbox provides the same functionality as assignment submission in the "File Storage" tool, but with fewer steps and with a more intuitive interface. As an extension of "File Storage", when instructors create an assignment for a group, this group must have "File Storage" enabled, otherwise, the students are not able to submit assignments via Assignment Dropbox. If the Assignment Dropbox module is installed, a drop box is setup automatically when an assignment is created for all students in a course.
+
+2. for students
+  Once the Assignment Dropbox has been turned on in Course Tools by the instructor, a link "Assignment Dropbox" is displayed either on the course home page or as a main navigation tab. The dropbox lists all the assignments that are assigned to the student viewing, up to the submission "cut off date" set in an assignment's properties (set under "Accept Late Submissions). The student can upload or delete assignment files up until the "due date", after which assignment submissions are locked and can no longer be modified by students. The Delete button is greyed out when the due date is passed. The Upload button remains available to students until the cut off date.
\ No newline at end of file
diff --git a/docs/mods/_standard/assignment_dropbox/assignment_dropbox.inc.php b/docs/mods/_standard/assignment_dropbox/assignment_dropbox.inc.php
new file mode 100644 (file)
index 0000000..748725f
--- /dev/null
@@ -0,0 +1,81 @@
+<?php\r
+/************************************************************************/\r
+/* ATutor                                                               */\r
+/************************************************************************/\r
+/* Copyright (c) 2002-2010                                              */\r
+/* Inclusive Design Institute                                           */\r
+/* http://atutor.ca                                                     */\r
+/* This program is free software. You can redistribute it and/or        */\r
+/* modify it under the terms of the GNU General Public License          */\r
+/* as published by the Free Software Foundation.                        */\r
+/************************************************************************/\r
+\r
+/**\r
+ * The Assignment Dropbox is designed for instructors to manage assignment \r
+ * submissions and for students to submit assignments.\r
+ *\r
+ * This file contains the functions used by Assignment Dropbox.\r
+ **/\r
+\r
+if (!defined('AT_INCLUDE_PATH')) { exit; }\r
+\r
+/**\r
+ * given an owner_type and owner_id\r
+ * returns false if user cannot read or write to this workspace\r
+ * returns WORKSPACE_AUTH_READ if the user can read\r
+ * returns WORKSPACE_AUTH_WRITE if the user can write\r
+ */\r
+function ad_authenticate($owner_id) {\r
+       if (authenticate(AT_PRIV_ASSIGNMENTS, AT_PRIV_RETURN))\r
+       { \r
+               // instructors have read only access to assignments\r
+               return true;\r
+       }\r
+       else\r
+       { \r
+               // students have read access to their own assignments\r
+               global $db;\r
+               $sql = "SELECT COUNT(*) cnt FROM ".TABLE_PREFIX."files\r
+                        WHERE owner_id =".$owner_id."\r
+                   AND owner_type= ".WORKSPACE_ASSIGNMENT."\r
+                   AND member_id = ".$_SESSION['member_id'];\r
+               $result = mysql_query($sql, $db);\r
+               $row = mysql_fetch_assoc($result);\r
+               \r
+               if ($row['cnt'] > 0) RETURN true;\r
+               \r
+               // enrolled students can submit the assignments that assign to him/her\r
+               if ($_SESSION['member_id'] && $_SESSION['enroll']) {\r
+                       // assignments that are assigned to all students\r
+                       $sql = "SELECT count(*) cnt FROM ".TABLE_PREFIX."assignments \r
+                     WHERE assignment_id = ".$owner_id."\r
+                       AND assign_to=0 \r
+                       AND course_id=".$_SESSION[course_id];\r
+                       $result = mysql_query($sql, $db);\r
+                       $row = mysql_fetch_assoc($result);\r
+                       \r
+                       if ($row['cnt'] > 0) RETURN true;\r
+\r
+                       // assignments that are assigned to a group, \r
+                       // and this group has "file storage" tool available\r
+                       // and the student is in this group\r
+                       $groups_list = implode(',',$_SESSION['groups']);  // the groups that the student belongs to\r
+                       $sql = "SELECT count(*) cnt\r
+                             FROM ".TABLE_PREFIX."groups_types gt, ".TABLE_PREFIX."groups g, ".TABLE_PREFIX."assignments a\r
+                            WHERE g.group_id in (".$groups_list.")\r
+                              AND g.group_id in (SELECT group_id FROM ".TABLE_PREFIX."file_storage_groups)\r
+                              AND g.type_id = gt.type_id\r
+                              AND gt.course_id = $_SESSION[course_id]\r
+                              AND gt.type_id = a.assign_to\r
+                              AND a.assignment_id = ".$owner_id;\r
+                       $result = mysql_query($sql, $db);\r
+                       $row = mysql_fetch_assoc($result);\r
+                       \r
+                       if ($row['cnt'] > 0) RETURN true;\r
+               }\r
+       }\r
+\r
+       return false;\r
+}\r
+\r
+?>
\ No newline at end of file
diff --git a/docs/mods/_standard/assignment_dropbox/assignment_dropbox.png b/docs/mods/_standard/assignment_dropbox/assignment_dropbox.png
new file mode 100644 (file)
index 0000000..62eb938
Binary files /dev/null and b/docs/mods/_standard/assignment_dropbox/assignment_dropbox.png differ
diff --git a/docs/mods/_standard/assignment_dropbox/assignment_dropbox_sm.png b/docs/mods/_standard/assignment_dropbox/assignment_dropbox_sm.png
new file mode 100644 (file)
index 0000000..47585a4
Binary files /dev/null and b/docs/mods/_standard/assignment_dropbox/assignment_dropbox_sm.png differ
diff --git a/docs/mods/_standard/assignment_dropbox/flag.png b/docs/mods/_standard/assignment_dropbox/flag.png
new file mode 100644 (file)
index 0000000..a64f456
Binary files /dev/null and b/docs/mods/_standard/assignment_dropbox/flag.png differ
diff --git a/docs/mods/_standard/assignment_dropbox/index.php b/docs/mods/_standard/assignment_dropbox/index.php
new file mode 100644 (file)
index 0000000..441ab80
--- /dev/null
@@ -0,0 +1,396 @@
+<?php\r
+/************************************************************************/\r
+/* ATutor                                                                                                                              */\r
+/************************************************************************/\r
+/* Copyright (c) 2002-2010                                              */\r
+/* Inclusive Design Institute                                           */\r
+/* http://atutor.ca                                                     */\r
+/* This program is free software. You can redistribute it and/or        */\r
+/* modify it under the terms of the GNU General Public License          */\r
+/* as published by the Free Software Foundation.                        */\r
+/************************************************************************/\r
+\r
+define('AT_INCLUDE_PATH', '../../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+require_once(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php'); // for get_human_size()\r
+require_once(AT_INCLUDE_PATH.'../mods/_standard/file_storage/file_storage.inc.php'); // for get_human_size()\r
+require('assignment_dropbox.inc.php');\r
+\r
+$owner_type = WORKSPACE_ASSIGNMENT;\r
+\r
+if (isset($_REQUEST['owner_id']) && !($has_priv = ad_authenticate($_REQUEST['owner_id']))) {\r
+       $msg->addError('ACCESS_DENIED');\r
+       header('Location: index.php');\r
+       exit;\r
+}\r
+\r
+// action - Upload\r
+if (isset($_POST['upload']) && isset($_POST['owner_id'])) {\r
+       // handle the file upload\r
+       $_POST['comments'] = trim($_POST['comments']);\r
+\r
+       $parent_folder_id = abs($_POST['folder']);\r
+       \r
+       if ($_FILES['file']['error'] == UPLOAD_ERR_INI_SIZE) {\r
+               $msg->addError(array('FILE_TOO_BIG', get_human_size(megabytes_to_bytes(substr(ini_get('upload_max_filesize'), 0, -1)))));\r
+\r
+       } else if (!isset($_FILES['file']['name']) || ($_FILES['file']['error'] == UPLOAD_ERR_NO_FILE) || ($_FILES['file']['size'] == 0)) {\r
+               $msg->addError('FILE_NOT_SELECTED');\r
+\r
+       } else if ($_FILES['file']['error'] || !is_uploaded_file($_FILES['file']['tmp_name'])) {\r
+               $msg->addError('FILE_NOT_SAVED');\r
+       }\r
+\r
+       // check that we own this folder\r
+//     if ($parent_folder_id) {\r
+//             $sql = "SELECT folder_id FROM ".TABLE_PREFIX."folders WHERE folder_id=$parent_folder_id AND owner_type=$owner_type AND owner_id=$owner_id";\r
+//             $result = mysql_query($sql, $db);\r
+//             if (!$row = mysql_fetch_assoc($result)) {\r
+//                     $msg->addError('ACCESS_DENIED');\r
+//                     header('Location: '.AT_BASE_HREF.'mods/_standard/file_storage/index.php');\r
+//                     exit;\r
+//             }\r
+//     }\r
+\r
+       if (!$msg->containsErrors()) {\r
+               $_POST['description'] = $addslashes(trim($_POST['description']));\r
+               $_FILES['file']['name'] = addslashes($_FILES['file']['name']);\r
+\r
+               if ($_POST['comments']) {\r
+                       $num_comments = 1;\r
+               } else {\r
+                       $num_comments = 0;\r
+               }\r
+\r
+               $sql = "INSERT INTO ".TABLE_PREFIX."files\r
+                              (owner_type, owner_id, member_id, folder_id, \r
+                               parent_file_id, date, num_comments, num_revisions, file_name,\r
+                               file_size, description) \r
+                       VALUES ($owner_type, $_POST[owner_id], $_SESSION[member_id], $_POST[folder_id], \r
+                               0, NOW(), $num_comments, 0, '{$_FILES['file']['name']}', \r
+                               {$_FILES['file']['size']}, '$_POST[description]')";\r
+               $result = mysql_query($sql, $db);\r
+\r
+               if ($result && ($file_id = mysql_insert_id($db))) {\r
+                       $path = fs_get_file_path($file_id);\r
+                       move_uploaded_file($_FILES['file']['tmp_name'], $path . $file_id);\r
+\r
+                       // check if this file name already exists\r
+//                     $sql = "SELECT file_id, num_revisions FROM ".TABLE_PREFIX."files WHERE owner_type=$owner_type AND owner_id=$owner_id AND folder_id=$parent_folder_id AND file_id<>$file_id AND file_name='{$_FILES['file']['name']}' AND parent_file_id=0 ORDER BY file_id DESC LIMIT 1";\r
+//                     $result = mysql_query($sql, $db);\r
+//                     if ($row = mysql_fetch_assoc($result)) {\r
+//                             if ($_config['fs_versioning']) {\r
+//                                     $sql = "UPDATE ".TABLE_PREFIX."files SET parent_file_id=$file_id, date=date WHERE file_id=$row[file_id]";\r
+//                                     $result = mysql_query($sql, $db);\r
+//\r
+//                                     $sql = "UPDATE ".TABLE_PREFIX."files SET num_revisions=$row[num_revisions]+1, date=date WHERE file_id=$file_id";\r
+//                                     $result = mysql_query($sql, $db);\r
+//                             } else {\r
+//                                     fs_delete_file($row['file_id'], $owner_type, $owner_id);\r
+//                             }\r
+//                     }\r
+\r
+                       $msg->addFeedback('ASSIGNMENT_HANDED_IN');\r
+                       header('Location: index.php');\r
+                       exit;\r
+               } else {\r
+                       $msg->addError('FILE_NOT_SAVED');\r
+               }\r
+       }\r
+       header('Location: index.php');\r
+       exit;\r
+}\r
+\r
+// action - Delete Files/Folders (pre-confirmation)\r
+$files = array();\r
+foreach ($_POST as $name => $val) {\r
+       if (substr($name, 0, 5) == 'files') $files = $val;\r
+}\r
+if ($has_priv && isset($_POST['delete']) && is_array($files)) {\r
+       $hidden_vars = array();\r
+       $hidden_vars['owner_id'] = $_REQUEST['owner_id'];\r
+       $file_list_to_print = '';\r
+       $files = implode(',', $files);\r
+       $hidden_vars['files'] = $files;\r
+       $sql = "SELECT file_name FROM ".TABLE_PREFIX."files WHERE file_id IN ($files) AND owner_type=$owner_type AND owner_id=$_REQUEST[owner_id] ORDER BY file_name";\r
+       $result = mysql_query($sql, $db);\r
+       while ($row = mysql_fetch_assoc($result)) {\r
+               $file_list_to_print .= '<li style="list-style: none; margin: 0px; padding: 0px 10px;"><img src="images/file_types/'.fs_get_file_type_icon($row['file_name']).'.gif" height="16" width="16" alt="" title="" /> '.htmlspecialchars($row['file_name']).'</li>';\r
+       }\r
+       $msg->addConfirm(array('FILE_DELETE', $file_list_to_print), $hidden_vars);\r
+               \r
+       require(AT_INCLUDE_PATH.'header.inc.php');\r
+       $msg->printConfirm();\r
+       require(AT_INCLUDE_PATH.'footer.inc.php');\r
+       exit;\r
+\r
+}\r
+// action - Confirm Delete Files/Folders\r
+else if ($has_priv && isset($_POST['submit_yes'])) {\r
+\r
+       // handle the delete\r
+       if (isset($_POST['files'])) {\r
+               $files = explode(',', $_POST['files']);\r
+       }\r
+       if (isset($files)) {\r
+               foreach ($files as $file) {\r
+                       fs_delete_file($file, $owner_type, $_REQUEST['owner_id']);\r
+               }\r
+               $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');\r
+       }\r
+\r
+       header('Location: index.php');\r
+       exit;\r
+}\r
+// action - Cancel Delete\r
+else if ($has_priv && isset($_POST['submit_no'])) {\r
+       $msg->addFeedback('CANCELLED');\r
+       header('Location: index.php');\r
+       exit;\r
+}\r
+\r
+// display\r
+$groups_list = implode(',',$_SESSION['groups']);\r
+\r
+$sql = '';\r
+if (authenticate(AT_PRIV_ASSIGNMENTS, AT_PRIV_RETURN)) { // instructor\r
+       $sql = "SELECT * FROM ".TABLE_PREFIX."assignments WHERE course_id=$_SESSION[course_id] ORDER BY title";\r
+} else { // students\r
+       if ($groups_list <> '') {\r
+               $sql = "(SELECT assignment_id, a.title, date_due, g.group_id\r
+                  FROM ".TABLE_PREFIX."groups_types gt, ".TABLE_PREFIX."groups g, ".TABLE_PREFIX."assignments a\r
+                 WHERE g.group_id in (".$groups_list.")\r
+                   AND g.group_id in (SELECT group_id FROM ".TABLE_PREFIX."file_storage_groups)\r
+                   AND g.type_id = gt.type_id\r
+                   AND gt.course_id = $_SESSION[course_id]\r
+                   AND gt.type_id = a.assign_to\r
+                   AND (a.date_cutoff=0 OR UNIX_TIMESTAMP(a.date_cutoff) > ".time()."))\r
+               UNION\r
+               ";\r
+       }\r
+       $sql .= "(SELECT assignment_id, title, date_due, 0\r
+                  FROM ".TABLE_PREFIX."assignments \r
+                 WHERE assign_to=0 \r
+                   AND course_id=$_SESSION[course_id] \r
+                   AND (date_cutoff=0 OR UNIX_TIMESTAMP(date_cutoff) > ".time()."))\r
+               ORDER BY title";\r
+}\r
+$assignment_list_result = mysql_query($sql, $db);\r
+\r
+$_custom_css = $_base_path . 'mods/_standard/assignment_dropbox/module.css'; // use a custom stylesheet\r
+\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+\r
+?>\r
+<div class="input-form">\r
+<?php\r
+if (mysql_num_rows($assignment_list_result) == 0) {\r
+       echo _AT('none_found');\r
+}\r
+else {\r
+       echo _AT('flag_text', '<img src="'.AT_BASE_HREF.'mods/_standard/assignment_dropbox/flag.png" border="0" />');\r
+       while ($assignment_row = mysql_fetch_assoc($assignment_list_result)) {\r
+               $owner_id = $assignment_row['assignment_id'];\r
+               \r
+               if ($assignment_row['group_id'] == 0) {\r
+                       $folder_id = $_SESSION['member_id'];\r
+               } else {\r
+                       $folder_id = $assignment_row['group_id'];\r
+               }\r
+               \r
+               // default sql for instructor: find all submitted assignments\r
+               $sql = "SELECT * FROM ".TABLE_PREFIX."files \r
+                        WHERE owner_type=$owner_type \r
+                          AND owner_id=$owner_id \r
+                          AND parent_file_id=0";\r
+               // students: find his own submitted assignments\r
+               if (!authenticate(AT_PRIV_ASSIGNMENTS, AT_PRIV_RETURN)) {\r
+                       $sql .= " AND folder_id=$folder_id \r
+                          ORDER BY date DESC, file_name, file_size";\r
+               }\r
+               $result = mysql_query($sql, $db);\r
+?>\r
+  <div id="assignment_desc">\r
+    <h4>\r
+      <?php if (authenticate(AT_PRIV_ASSIGNMENTS, AT_PRIV_RETURN)) { // instructor ?>\r
+      <a href="javascript:window.location='<?php echo AT_BASE_HREF. url_rewrite("mods/_standard/file_storage/index.php?ot=". $owner_type.SEP."oid=". $assignment_row['assignment_id'].SEP."folder=0"); ?>';" class="floatleft">\r
+      \r
+      <?php } else { // students ?>\r
+      <a href="javascript:ATutor.mods.assignment_dropbox.toggleDiv(<?php echo $assignment_row['assignment_id']; ?>)" class="floatleft">\r
+      <?php } ?>\r
+      <img id="toggleImg<?php echo $assignment_row['assignment_id']; ?>" src="<?php echo AT_BASE_HREF; ?>images/mswitch_plus.gif" border="0" />\r
+      <?php echo $assignment_row['title']; ?>\r
+      </a>\r
+      <div id="flag<?php echo $assignment_row['assignment_id']; ?>" class="flagdiv">\r
+      <?php if (mysql_num_rows($result) > 0) { ?>\r
+        <img src="<?php echo AT_BASE_HREF; ?>mods/_standard/assignment_dropbox/flag.png" border="0" />\r
+      <?php }?>    \r
+      </div>\r
+    </h4><br />\r
+    <strong><?php echo _AT('due_date');?>: <?php if ($assignment_row['date_due'] == '0000-00-00 00:00:00') echo _AT('no'); else echo $assignment_row['date_due']; ?></strong>\r
+  </div>\r
+  \r
+  <div id="assignment_detail<?php echo $assignment_row['assignment_id']; ?>" class="assignment-detail" style="display:none">\r
+    <?php echo '<small>'._AT('delete_text').'</small>';?><br /><br />\r
+    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" name="form<?php echo $assignment_row['assignment_id']; ?>">\r
+    <input type="hidden" id="assignment_detail<?php echo $assignment_row['assignment_id']; ?>_toggled" value="0" />\r
+    <table class="data">\r
+    <thead>\r
+    <tr>\r
+      <th scope="col" width="10"><input type="checkbox" value="<?php echo _AT('select_all'); ?>" id="all" title="<?php echo _AT('select_all'); ?>" id="selectall<?php echo $assignment_row['assignment_id']; ?>" name="selectall<?php echo $assignment_row['assignment_id']; ?>" onclick="CheckAll(<?php echo $assignment_row['assignment_id']; ?>);" /></th>\r
+      <th scope="col"><?php echo _AT('file'); ?></th>\r
+      <th scope="col"><?php echo _AT('size'); ?></th>\r
+      <th scope="col"><?php echo _AT('date'); ?></th>\r
+      <th scope="col"><?php echo _AT('comments');  ?></th>\r
+    </tr>\r
+    </thead>\r
+\r
+    <tfoot>\r
+    <tr>\r
+      <td colspan="5">\r
+        <input type="submit" name="delete" value="<?php echo _AT('delete'); ?>" class="button" \r
+          <?php \r
+          if ($assignment_row['date_due'] <> '0000-00-00 00:00:00' && strtotime("now") > strtotime($assignment_row['date_due'])) \r
+               echo 'disabled="disabled"'; ?> />\r
+      </td>\r
+    </tr>\r
+    </tfoot>\r
+  \r
+    <tbody>\r
+  <?php if (mysql_num_rows($result) == 0) { ?>\r
+      <tr>\r
+        <td colspan="5"><?php echo _AT('none_found'); ?></td>\r
+      </tr>\r
+  <?php } else { \r
+  while ($file_info = mysql_fetch_assoc($result)) {?> \r
+      <tr onmousedown="document.form<?php echo $assignment_row['assignment_id']; ?>['r<?php echo $assignment_row['assignment_id']; ?>_<?php echo $file_info['file_id']; ?>'].checked = !document.form<?php echo $assignment_row['assignment_id']; ?>['r<?php echo $assignment_row['assignment_id']; ?>_<?php echo $file_info['file_id']; ?>'].checked; togglerowhighlight(this, 'r<?php echo $assignment_row['assignment_id']; ?>_<?php echo $file_info['file_id']; ?>');" id="r<?php echo $assignment_row['assignment_id']; ?>_<?php echo $file_info['file_id']; ?>_0">\r
+        <td valign="top" width="10">\r
+          <input type="checkbox" name="files<?php echo $assignment_row['assignment_id']; ?>[]" value="<?php echo $file_info['file_id']; ?>" id="r<?php echo $assignment_row['assignment_id']; ?>_<?php echo $file_info['file_id']; ?>" onmouseup="this.checked=!this.checked" />\r
+        </td>\r
+        <td valign="top">\r
+          <img src="images/file_types/<?php echo fs_get_file_type_icon($file_info['file_name']); ?>.gif" height="16" width="16" alt="" title="" /> <label for="r<?php echo $assignment_row['assignment_id']; ?>_<?php echo $file_info['file_id']; ?>" onmousedown="document.form<?php echo $assignment_row['assignment_id']; ?>['r<?php echo $assignment_row['assignment_id']; ?>_<?php echo $file_info['file_id']; ?>'].checked = !document.form<?php echo $assignment_row['assignment_id']; ?>['r<?php echo $assignment_row['assignment_id']; ?>_<?php echo $file_info['file_id']; ?>'].checked; togglerowhighlight(this, 'r<?php echo $assignment_row['assignment_id']; ?>_<?php echo $file_info['file_id']; ?>');"><?php echo htmlspecialchars($file_info['file_name']); ?></label>\r
+                 <?php if ($file_info['description']): ?>\r
+          <p class="fm-desc"><?php echo htmlspecialchars($file_info['description']); ?></p>\r
+                 <?php endif; ?>\r
+        </td>\r
+               <!-- <td valign="top">\r
+                       <?php if ($_config['fs_versioning']): ?>\r
+                               <?php if ($file_info['num_revisions']): \r
+                                       if ($file_info['num_revisions'] == 1) {\r
+                                               $lang_var = 'fs_revision';\r
+                                       } else {\r
+                                               $lang_var = 'fs_revisions';\r
+                                       }\r
+                                       ?>\r
+                                       \r
+          <a href="<?php echo url_rewrite('mods/_standard/file_storage/revisions.php'.$owner_arg_prefix.'id='.$file_info['file_id']); ?>"><?php echo _AT($lang_var, $file_info['num_revisions']); ?></a>\r
+                               <?php else: ?>\r
+                                       -\r
+                               <?php endif; ?>\r
+                       <?php endif; ?>\r
+        </td> -->\r
+        <td align="right" valign="top"><?php echo get_human_size($file_info['file_size']); ?></td>\r
+        <td align="right" valign="top"><?php echo AT_date(_AT('filemanager_date_format'), $file_info['date'], AT_DATE_MYSQL_DATETIME); ?></td>\r
+        <td valign="top">\r
+               <?php \r
+               if ($file_info['num_comments'] == 1) {\r
+                       $lang_var = 'fs_comment';\r
+               } else {\r
+                       $lang_var = 'fs_comments';\r
+               }\r
+               ?>\r
+        <a href="<?php echo url_rewrite('mods/_standard/file_storage/comments.php?ot='.$owner_type.SEP.'oid='. $assignment_row['assignment_id'].SEP.'id='.$file_info['file_id']); ?>"><?php echo _AT($lang_var, $file_info['num_comments']); ?></a></td>\r
+         </tr>\r
+  <?php }?>\r
+  <?php } // end of while ($file_info) ?>\r
+    </tbody>\r
+  \r
+    </table>\r
+  \r
+    <input type="hidden" name="owner_id" value="<?php echo $owner_id; ?>" />\r
+    <input type="hidden" name="folder_id" value="<?php echo $folder_id; ?>" />\r
+    <div class="row">\r
+      <span class="required" title="<?php echo _AT('required_field'); ?>">*</span><label for="file"><?php echo _AT('upload_file'); ?></label><br />\r
+      <input type="file" name="file" id="file" />&nbsp;\r
+      <input type="submit" name="upload" value="<?php echo _AT('upload'); ?>"  class="button"/>\r
+    </div>\r
+    <div class="row">\r
+      <label for="description"><?php echo _AT('description'); ?></label><br />\r
+      <textarea name="description" id="description" rows="1" cols="20"></textarea>\r
+    </div>\r
+    </form>\r
+  </div><!-- end of assignment_detail -->\r
+<?php          \r
+       } // end of while (assignment list)\r
+}\r
+?>\r
+</div>\r
+\r
+<script type="text/javascript">\r
+//<![CDATA[\r
+\r
+var ATutor = ATutor || {};\r
+ATutor.mods = ATutor.mods || {};\r
+ATutor.mods.assignment_dropbox = ATutor.mods.assignment_dropbox || {};\r
+\r
+(function () {\r
+    // Toggle div of assignment details\r
+    // param: assignment_id: used to compose div id\r
+    // param: set_to_state: Optional. \r
+    //        When provided, is the open/close state for the div\r
+    //        When not given, find the current open/close state on the div and reverse the state. \r
+    ATutor.mods.assignment_dropbox.toggleDiv = function (assignment_id, set_to_state){\r
+               flag = typeof(set_to_state) != 'undefined' ? set_to_state : jQuery("#assignment_detail"+assignment_id+"_toggled").val();\r
+\r
+               if (flag==1){\r
+                       jQuery("#toggleImg"+assignment_id).attr("src", "<?php echo AT_BASE_HREF; ?>images/mswitch_plus.gif");\r
+                       jQuery('#assignment_detail'+assignment_id+'_toggled').val(0);\r
+                       ATutor.setcookie('ad'+assignment_id+'_'+<?php echo $_SESSION['member_id'];?>, '1', 1);\r
+               } else {\r
+                       jQuery('#toggleImg'+assignment_id).attr('src', '<?php echo AT_BASE_HREF; ?>images/mswitch_minus.gif');\r
+                       jQuery('#assignment_detail'+assignment_id+'_toggled').val(1);\r
+                       ATutor.setcookie('ad'+assignment_id+'_'+<?php echo $_SESSION['member_id'];?>, '0', 1);\r
+               }\r
+               jQuery('#assignment_detail'+assignment_id).toggle();            \r
+    };\r
+\r
+    //set up the open/close state of each assignment div\r
+    var initialize = function () {\r
+        <?php \r
+        if (mysql_num_rows($assignment_list_result) > 0) {\r
+               mysql_data_seek($assignment_list_result, 0);\r
+               while ($assignment_row = mysql_fetch_assoc($assignment_list_result)) {\r
+        ?>\r
+                       if (ATutor.getcookie("ad<?php echo $assignment_row['assignment_id'].'_'.$_SESSION['member_id']; ?>") == "0") {\r
+                               ATutor.mods.assignment_dropbox.toggleDiv(<?php echo $assignment_row['assignment_id']; ?>, 0);\r
+                       }\r
+        <?php } // end of while\r
+        } // end of if?>\r
+    };\r
+    \r
+    jQuery(document).ready(initialize);\r
+})();\r
+\r
+function CheckAll(assignmentID) {\r
+       len = eval("document.form"+assignmentID+".elements.length");\r
+       for (var i=0;i<len;i++) {\r
+               var e = eval("document.form"+assignmentID+".elements[i]");\r
+               if ((e.name == 'files'+assignmentID+'[]') && (e.type=='checkbox')) {\r
+                       e.checked = eval("document.form"+assignmentID+".selectall"+assignmentID+".checked");\r
+                       togglerowhighlight(document.getElementById(e.id +"_0"), e.id);\r
+               }\r
+       }\r
+}\r
+\r
+function togglerowhighlight(obj, boxid) {\r
+       if (document.getElementById(boxid).checked) {\r
+               obj.className = 'selected';\r
+       } else {\r
+               obj.className = '';\r
+       }\r
+}\r
+\r
+//]]>\r
+</script>\r
+\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
diff --git a/docs/mods/_standard/assignment_dropbox/module.css b/docs/mods/_standard/assignment_dropbox/module.css
new file mode 100644 (file)
index 0000000..cce95cc
--- /dev/null
@@ -0,0 +1,15 @@
+div.flagdiv {\r
+  float:left;\r
+  padding-left:0.5em;\r
+}\r
+\r
+.floatleft {\r
+  float:left;\r
+}\r
+\r
+div.assignment-detail {\r
+  -moz-border-radius:0.3em 0.3em 0.3em 0.3em;\r
+  background:none repeat scroll 0 0 #F7F7F7;\r
+  margin:1em 1em 2em 2em;\r
+  width:95%;\r
+}
\ No newline at end of file
diff --git a/docs/mods/_standard/assignment_dropbox/module.php b/docs/mods/_standard/assignment_dropbox/module.php
new file mode 100644 (file)
index 0000000..0003f73
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/*******
+ * doesn't allow this file to be loaded with a browser.
+ */
+if (!defined('AT_INCLUDE_PATH')) { exit; }
+
+/******
+ * this file must only be included within a Module obj
+ */
+if (!isset($this) || (isset($this) && (strtolower(get_class($this)) != 'module'))) { exit(__FILE__ . ' is not a Module'); }
+
+/*******
+ * if this module is to be made available to students on the Home or Main Navigation.
+ */
+$_student_tool = 'mods/_standard/assignment_dropbox/index.php';
+
+/*******
+ * create optional sublinks for module "detail view" on course home page
+ * when this line is uncommented, "mods/assignment_dropbox/sublinks.php" need to be created to return an array of content to be displayed
+ */
+$this->_list['assignment_dropbox'] = array('title_var'=>'assignment_dropbox','file'=>'mods/_standard/assignment_dropbox/sublinks.php');
+
+/*******
+ * add the admin pages when needed.
+ */
+//if (admin_authenticate(AT_ADMIN_PRIV_assignment_dropbox, TRUE) || admin_authenticate(AT_ADMIN_PRIV_ADMIN, TRUE)) {
+//     $this->_pages[AT_NAV_ADMIN] = array('mods/assignment_dropbox/index_admin.php');
+//     $this->_pages['mods/_standard/assignment_dropbox/index_admin.php']['title_var'] = 'assignment_dropbox';
+//     $this->_pages['mods/_standard/assignment_dropbox/index_admin.php']['parent']    = AT_NAV_ADMIN;
+//}
+
+/*******
+ * student page.
+ */
+$this->_pages['mods/_standard/assignment_dropbox/index.php']['title_var'] = 'assignment_dropbox';
+$this->_pages['mods/_standard/assignment_dropbox/index.php']['icon']      = 'mods/_standard/assignment_dropbox/assignment_dropbox_sm.png';
+$this->_pages['mods/_standard/assignment_dropbox/index.php']['img']       = 'mods/_standard/assignment_dropbox/assignment_dropbox.png';
+$this->_pages['mods/_standard/assignment_dropbox/index.php']['text']      = _AT('assignment_dropbox_text');
+$this->_pages['mods/_standard/assignment_dropbox/index.php']['parent']   = 'mods/_standard/assignments/index_instructor.php';
+
+$this->_pages['mods/_standard/assignments/index_instructor.php']['children'] = 
+       array_merge(is_array($this->_pages['mods/_standard/assignments/index_instructor.php']['children']) ? $this->_pages['mods/_standard/assignments/index_instructor.php']['children'] : array(), array('mods/_standard/assignment_dropbox/index.php'));
+
+?>
\ No newline at end of file
diff --git a/docs/mods/_standard/assignment_dropbox/module.xml b/docs/mods/_standard/assignment_dropbox/module.xml
new file mode 100644 (file)
index 0000000..e4ae0e5
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?> \r
+<module version="0.1"> \r
+    <name lang="en">Assignment Dropbox</name> \r
+    <description lang="en">This module provides a easy way for students to submit assignments and instructors to manage assignment submissions.</description> \r
+    <maintainers>\r
+        <maintainer> \r
+            <name>ATutor Team</name> \r
+            <email>info@atutor.ca</email> \r
+        </maintainer>\r
+    </maintainers> \r
+    <url>http://atutor.ca</url> \r
+    <license>BSD</license> \r
+       <release> \r
+        <version>0.2</version> \r
+        <date>2010-10-25</date> \r
+        <state>stable</state> \r
+        <notes></notes> \r
+    </release> \r
+</module>\r
diff --git a/docs/mods/_standard/assignment_dropbox/sublinks.php b/docs/mods/_standard/assignment_dropbox/sublinks.php
new file mode 100644 (file)
index 0000000..6880b31
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+
+if (!defined('AT_INCLUDE_PATH')) { exit; }
+
+/*****
+* Free form PHP can appear here to retreive current information
+* from the module, or a text description of the module where there is
+* not current information
+*****/
+
+global $db;
+
+$link_limit = 2;               // Number of links to be displayed on "detail view" box
+
+$groups_list = implode(',',$_SESSION['groups']);
+
+$sql = '';
+if (authenticate(AT_PRIV_ASSIGNMENTS, AT_PRIV_RETURN)) { // instructor
+       $file_storage_assignments = array();
+       $sql = "SELECT * FROM ".TABLE_PREFIX."assignments WHERE course_id=$_SESSION[course_id] ORDER BY date_due DESC";
+} else { // students
+       if ($groups_list <> '') {
+               $sql = "(SELECT a.title, date_due
+                  FROM ".TABLE_PREFIX."groups_types gt, ".TABLE_PREFIX."groups g, ".TABLE_PREFIX."assignments a
+                 WHERE g.group_id in (".$groups_list.")
+                   AND g.group_id in (SELECT group_id FROM ".TABLE_PREFIX."file_storage_groups)
+                   AND g.type_id = gt.type_id
+                   AND gt.course_id = $_SESSION[course_id]
+                   AND gt.type_id = a.assign_to
+                   AND (a.date_cutoff=0 OR UNIX_TIMESTAMP(a.date_cutoff) > ".time()."))
+               UNION
+               ";
+       }
+       $sql .= "(SELECT title, date_due
+                  FROM ".TABLE_PREFIX."assignments 
+                 WHERE assign_to=0 
+                   AND course_id=$_SESSION[course_id] 
+                   AND (date_cutoff=0 OR UNIX_TIMESTAMP(date_cutoff) > ".time()."))
+               ORDER BY date_due DESC";
+}
+$sql .= " LIMIT $link_limit";
+$result = mysql_query($sql, $db);
+
+if (mysql_num_rows($result) > 0) {
+       while ($row = mysql_fetch_assoc($result)) {
+               /****
+               * SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY are defined in include/lib/constance.lib.inc
+               * SUBLINK_TEXT_LEN determins the maxium length of the string to be displayed on "detail view" box.
+               *****/
+               $title = $row['title'] . ' ('._AT("due_date").': '.$row['date_due'].')';
+               $list[] = '<a href="'.AT_BASE_HREF.'mods/_standard/assignment_dropbox/index.php">'. 
+                         $title .'</a>';
+//             $list[] = '<a href="mods/assignment_dropbox/index.php"'.
+//                       (strlen($row['value']) > SUBLINK_TEXT_LEN ? ' title="'.$row['value'].'"' : '') .'>'. 
+//                       validate_length($row['value'], SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY) .'</a>';
+       }
+       return $list;   
+} else {
+       return 0;
+}
+
+?>
\ No newline at end of file
diff --git a/docs/mods/_standard/basiclti/ModuleCallbacks.class.php b/docs/mods/_standard/basiclti/ModuleCallbacks.class.php
new file mode 100644 (file)
index 0000000..17539f3
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * This class contains the callback functions that are called in the core scripts to manipulate content etc. 
+ *
+ * Note:
+ * 1. CHANGE the class name and ensure its uniqueness by prefixing with the module name
+ * 2. DO NOT change the script name. Leave as "ModuleCallbacks.class.php"
+ * 3. DO NOT change the names of the methods.
+ * 4. REGISTER the unique class name in module.php
+ *
+ * @access     public
+ */
+if (!defined('AT_INCLUDE_PATH')) exit;
+
+class BasicLTICallbacks {
+       /*
+        * To append output onto course content page 
+        * @param: None
+        * @return: a string, plain or html, to be appended to course content page
+        */ 
+       public static function appendContent($cid) {
+               if ( !is_int($_SESSION['course_id']) || $_SESSION['course_id'] < 1 ) return;
+               $sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_content
+                       WHERE content_id=".$cid." AND course_id = ".$_SESSION['course_id'];
+               global $db;
+               $instanceresult = mysql_query($sql, $db);
+               if ( $instanceresult == false ) return;
+               $basiclti_content_row = mysql_fetch_assoc($instanceresult);
+               if ( $basiclti_content_row === false ) return;
+               $toolid = $basiclti_content_row['toolid'];
+               $sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_tools
+                               WHERE toolid='".$toolid."'";
+               $contentresult = mysql_query($sql, $db);
+               $basiclti_tool_row = mysql_fetch_assoc($contentresult);
+               if ( ! $basiclti_tool_row ) {
+                       return _AT('blti_missing_tool').$toolid;
+               }
+               // Figure height
+               $height = 1200;
+               if ( isset($basiclti_tool_row['preferheight']) && $basiclti_tool_row['preferheight'] > 0 ) {
+                       $height = $basiclti_tool_row['preferheight'];
+               }
+               if ( $basiclti_tool_row['allowpreferheight'] == 2 && isset($basiclti_content_row['preferheight']) && $basiclti_content_row['preferheight'] > 0 ) {
+                       $height = $basiclti_content_row['preferheight'];
+               }
+
+               $myurl = AT_BASE_HREF.'mods/_standard/basiclti/launch/launch.php?cid='.$cid;
+               if ( $basiclti_tool_row['launchinpopup'] == 1 ||
+                  ( $basiclti_tool_row['launchinpopup'] == 2 && $basiclti_content_row['launchinpopup'] == 1 ) ) {
+                       // return '<script type="text/javascript">window.open("'.$myurl.'");</script>'."\n";
+                               /*****************
+                               *       The ID in the next bit is temporary until we can add the box style to ATutor and
+                               *       change the ID value to content-tool. In the meantime this will fail validation if tools and
+                               *   tests or forums are also present for the content page
+                               **********************/
+                               return '<div class="input-form" id="content-test"><ol><strong>'._AT('proxy').'</strong><ul class="tools"><li><a href="" onclick="ATutor.poptastic(\''.$myurl.'\'); return false;"'.'>'.$basiclti_tool_row['title'].'</a> ('._AT('new_window').')</li></ul></ol></div>'."\n";
+               } else {
+                       return '<iframe src="'.$myurl.'" height="'.$height.'" width="100%"></iframe>'."\n";
+               }
+       }
+
+}
+
+?>
diff --git a/docs/mods/_standard/basiclti/README.txt b/docs/mods/_standard/basiclti/README.txt
new file mode 100644 (file)
index 0000000..8686bb9
--- /dev/null
@@ -0,0 +1,146 @@
+##########################################
+# External Tools Module Readme file: #####
+##########################################
+This is the first version of an ATutor Basic LTI Integration module. 
+
+It allows ATutor administrators and instructors to link external tools into ATutor, and to
+associate those tools with content as learning activities.
+
+The current development source code is located at:
+http://svn.atutor.ca/repos/atutor/trunk/docs/mods/_standard/basiclti/
+
+More about the BasicLTI Standard
+http://www.imsglobal.org/lti/
+
+Here are a couple videos with more information:
+http://www.vimeo.com/18074396
+http://vimeo.com/14100773
+
+######################
+# External Tools Setup
+######################
+
+Setup A New External Tool (Administrator)
+1. Title:  Enter a name for the tool being created in the title field
+2. ToolID: Create an ID for the tool that will be unique across all tools on the system (e.g. demo_tool.ocadu.ca) any unique string will do
+3. Description: Describe the tool, its function, and how it might be used.
+4. Tool Launch URL: Copy the URL of the tool's BasicLTI launch location. Ensure there is no space at the end of the URL (see the Sample LTI Tool below for demo purposes)
+5. Enter the Tool Key and secret
+6. Set various options and Save
+
+Add a Tool to Course Content (Instructor)
+1. Create a new content page and save it or edit an existing page.
+2. Click on the External Tool icon in the content editor toolbar while editing that page.
+3. Select from the available tools to add it as a Learning Activity.
+4. Save the content page, and close the content editor.
+5. The tool appears at the bottom of the page as a link that opens a popup window.
+
+Or,
+
+Setup a New Tool (Instructor)
+1. Under the Manage Tab, click on Create External Tool in the External Tools section
+2. Fill in the required fields, as described above for Administrators.
+3. Set the optional settings below and Save
+4. Follow the steps above to Add a Tool to Course Content, to use your new tool.
+
+##################
+# Useful Resources
+##################
+
+BasicLTI Certification
+http://www.imsglobal.org/developers/alliance/LTI/blti-cert/lmscert.cfm
+
+Sample LTI Tool for Testing/Demo Purposes
+http://www.imsglobal.org/developers/BLTI/tool.php
+key: lmsng.school.edu
+secret: secret
+
+Tools Currently with BasicLTI Provider Capability
+QuestionMark
+http://www.questionmark.com/
+Noteflight
+http://www.noteflight.com/
+Wimba
+http://www.wimba.com/
+Elluminate
+http://www.elluminate.com/
+
+A list BasicLTI conformant system can be found at:
+http://www.imsglobal.org/cc/statuschart.html
+
+###############################
+# Known issues in this release
+###############################
+- should the view button in the admin's tool listing table display the actual tool instead of the tool settings. Would be more useful I think, given clicking the edit button displays the same information. Or maybe display settings above, and open the tool below in a frame.
+
+- course backups need to be rethought. There is currently no backup support for external; tools. 
+       Issues:
+       If/How to export Admin created tools in a course backup, so they will render in other systems without disclosing authentication/tool account info to instructors, who may not have license to access a tool outside it originally licenced environment?
+       How to import course level tools in backups, and reset course_id and cid to the new content ids created
+       How to reset the toolid to make it unique when importing BasicLTI tools in a backup into a course.
+
+#############################
+# Tool options documentation
+#############################
+###################
+#Required Settings#
+###################
+#ToolId (must be unique across system)
+This is a unique identifier that you much choose.  This identifier must be unique across the system.  This identified is used to connect tool content items across exports and imports of the content area.
+
+#Tool Launch URL
+This is the launch URL for the external tool.  It is provided by the eternal tool provider and should be entered here.  Generally an external tool provider will give you a URL, key, and secret so that you can access their tool.
+
+#Tool Key (oauth_consumer_key)
+This is the launch key for the external tool.  It is provided by the external tool provider and should be entered here.  Generally an external tool provider will give you a URL, key, and secret so that you can access their tool.
+
+#Tool Secret
+This is the launch key for the external tool.  It is provided by the eternal tool provider and should be entered here.  Generally an external tool provider will give you a URL, key, and secret so that you can access their tool.
+###################
+#Optional Settings#
+###################
+
+#Frame Height
+This allows you to control the height of the frame that will contain the external tool.
+
+#Allow Frame Height to be Changed
+The frame height may be specified for a tool by the administrator, or the administrator may allow the instructor to change the frame height.
+
+#Launch Tool in Pop Up Window
+Normally tools are launched in an iframe at the bottom of an ATutor content page.  This option can be used so that the tool opens in a new browser window by clicking a link at the bottom of a content page, which replaces the default iframe. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.
+
+#Launch Tool in Debug Mode
+This option should normally be off except when you are having problems with tool launching.   When this option is turned on, The launch is 
+paused part-way through to allow you to examine the data to be sent to the external tool.  You are then given an option to continue the launch
+by pressing a button. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.
+
+#Send User Names to External Tool
+This option determines whether you want to send user names to the external tool. You should only send user names to trusted tools and you should make sure that if you share user names with the external tools that you are following all appropriate regulations regarding student privacy. Sending user names is optional data in the Basic LTI specification although some tools may require user names to function properly.  
+This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.
+
+#Send User Mail Addresses to External Tool
+This option determines whether you want to send user mail addresses to the external tool.You should only send user mail addresses to trusted tools and you should make sure that
+if you share user addresses with the external tools that you are following all appropriate regulations regarding student privacy.
+Sending user mail addresses is optional data in the Basic LTI specification although some tools may require user names to function properly.  
+This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.
+
+#Accept Grades From External Tool
+Some tools can send grades back to ATutor through a Basic LTI extension REST web service.   If the external tool has the capability of
+using these services and you would like to allow the tool to send grades back to ATutor, you can enable this option.   When you author
+an external tool content item and enable this option, the tool will only be able to read and write grades in a single grade book item that 
+you associate with the content item. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.
+
+#Allow External Tool To Retrieve Roster
+Some tools can retrieve the entire course roster through a Basic LTI extension REST web service.  If the external tool has the capability of 
+using these services and you would like to provide the entire course roster to the tool then you can enable this option.  If this option is enabled, it respects the privacy option setting as to whether or not to release user names and email addresses.   If these are configured to be provided on launches and the tool can retrieve the entire roster, then user names and mail addresses are included in the roster when it is retrieved.  This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.
+
+#Allow External Tool to use the Setting Service
+This option allows the external tool to store up to 8K of data in the content item.  Typically the external tool uses this area for a resource 
+setting or perhaps a playlist as selected by the user. In particular it does not allow a separate 8K setting for each user for a content item. This option may be specified for a tool by the administrator, or the administrator may allow the instructor to specify this option.
+
+Custom Parameters
+Sometimes the external tool requires that you send additional custom parameters along with the launch. The typical use of this would be to specify an ISBN number for a book associated with the launch or to select a particular content item within a content repository.   Different tools will use this capability differently.  Typically these will be specified as a keyword and a value such as
+
+isbn=929293939
+
+These values may be set by the administrator or the administrator may allow the instructor to set these values in content items.
\ No newline at end of file
diff --git a/docs/mods/_standard/basiclti/TODO.txt b/docs/mods/_standard/basiclti/TODO.txt
new file mode 100644 (file)
index 0000000..17a191f
--- /dev/null
@@ -0,0 +1,13 @@
+
+Need an ondelete callback from the content system.
+
+Add timeplacement based on the typical patterns of time
+in ATutor.
+
+Longer term for CC 1.1 support:
+
+Add support for XML Descriptor import
+
+Add support for global per url keys.
+
+
diff --git a/docs/mods/_standard/basiclti/basiclti.jpg b/docs/mods/_standard/basiclti/basiclti.jpg
new file mode 100644 (file)
index 0000000..c6cf71b
Binary files /dev/null and b/docs/mods/_standard/basiclti/basiclti.jpg differ
diff --git a/docs/mods/_standard/basiclti/content_tool_action.js b/docs/mods/_standard/basiclti/content_tool_action.js
new file mode 100644 (file)
index 0000000..07e0072
--- /dev/null
@@ -0,0 +1,29 @@
+/* The javascript is used in module.php @ $this->_content_tools["js"] */
+
+/*global jQuery*/
+/*global ATutor */
+/*global tinyMCE */
+/*global window */
+
+ATutor = ATutor || {};
+ATutor.mods = ATutor.mods || {};
+ATutor.mods.basiclti = ATutor.mods.basiclti || {};
+
+(function () {
+    var basicLTIOnClick = function () {
+        if ( ATutor.mods.editor.content_id == 0 ) {
+            alert("Please press save for your content item before configuring the remote tool");
+            return;
+         }
+        window.open(ATutor.base_href + 'mods/_standard/basiclti/tool/content_edit.php?cid='+ATutor.mods.editor.content_id + "&framed=1&popup=1",
+                    'newWinLTI', 'menubar=0,scrollbars=1,resizable=1,width=640,height=490');
+        return false;
+    }
+    
+       //set up click handlers and show/hide appropriate tools
+    var initialize = function () {
+        jQuery("#basiclti_tool").click(basicLTIOnClick);
+    };
+    
+    jQuery(document).ready(initialize);
+})();
diff --git a/docs/mods/_standard/basiclti/images/basiclti-icon.png b/docs/mods/_standard/basiclti/images/basiclti-icon.png
new file mode 100644 (file)
index 0000000..7333047
Binary files /dev/null and b/docs/mods/_standard/basiclti/images/basiclti-icon.png differ
diff --git a/docs/mods/_standard/basiclti/include/constants.inc.php b/docs/mods/_standard/basiclti/include/constants.inc.php
new file mode 100644 (file)
index 0000000..b432297
--- /dev/null
@@ -0,0 +1,7 @@
+<?php
+
+define('AT_BL_BASENAME',        'mods/_standard/basiclti/');
+define('AT_BL_BASE',            AT_INCLUDE_PATH.'../mods/_standard/basiclti/');
+define('AT_BL_INCLUDE',         AT_BL_BASE.'include/');
+define('AT_BL_CONTENT_DIR',     AT_CONTENT_DIR.'basiclti/');
+?>
diff --git a/docs/mods/_standard/basiclti/index.php b/docs/mods/_standard/basiclti/index.php
new file mode 100644 (file)
index 0000000..b4405b5
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../include/');
+require (AT_INCLUDE_PATH.'vitals.inc.php');
+$_custom_css = $_base_path . 'mods/_standard/basiclti/module.css'; // use a custom stylesheet
+require (AT_INCLUDE_PATH.'header.inc.php');
+?>
+
+<div id="helloworld">
+       Hello Student!! :)
+</div>
+
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
diff --git a/docs/mods/_standard/basiclti/index_admin.php b/docs/mods/_standard/basiclti/index_admin.php
new file mode 100644 (file)
index 0000000..7d3b116
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../include/');
+require (AT_INCLUDE_PATH.'vitals.inc.php');
+admin_authenticate(AT_ADMIN_PRIV_BASICLTI);
+
+if (isset($_GET['view'], $_GET['id'])) {
+    header('Location: tool/admin_view.php?id='.$_GET['id']);
+    exit;
+} else if (isset($_GET['edit'], $_GET['id'])) {
+    header('Location: tool/admin_edit.php?id='.$_GET['id']);
+    exit;
+} else if (isset($_GET['delete'], $_GET['id'])) {
+    header('Location: tool/admin_delete.php?id='.$_GET['id']);
+    exit;
+} else if ($_GET['delete'] ||$_GET['edit'] || $_GET['view'] && !isset($_GET['id'])){
+       $msg->addError("NO_ITEM_SELECTED");
+
+}
+
+require (AT_INCLUDE_PATH.'header.inc.php');
+
+$sql = "SELECT t.id AS id,t.title AS title,t.toolid AS toolid,
+               t.description AS description, COUNT(c.id) AS cnt 
+        FROM ".TABLE_PREFIX."basiclti_tools AS t 
+        LEFT OUTER JOIN ".TABLE_PREFIX."basiclti_content as c
+        ON t.toolid = c.toolid
+        WHERE t.course_id = 0 GROUP BY t.toolid ORDER BY t.title";
+$result = mysql_query($sql, $db) or die(mysql_error());
+?>
+<form name="form" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
+<table class="data static" summary="" rules="all">
+        <thead>
+                <th>&nbsp;</th>
+                <th><?php echo _AT('bl_title'); ?></th>
+                <th><?php echo _AT('bl_toolid_header'); ?></th>
+                <th><?php echo _AT('bl_description'); ?></th>
+                <th><?php echo _AT('bl_count'); ?></th>
+        </thead>
+       <tfoot>
+               <tr>
+               <td colspan="5"><input type="submit" name="view" value="<?php echo _AT('view'); ?>" />
+                    <input type="submit" name="edit" value="<?php echo _AT('edit'); ?>" />
+                    <input type="submit" name="delete" value="<?php echo _AT('delete'); ?>" /></td>
+               </tr>
+       </tfoot>
+        <tbody>
+                <?php while($row = mysql_fetch_array($result)) { ?><tr>
+               <td><input type="radio" name="id" value="<?php echo $row['id']; ?>" id="m<?php echo $row['id']; ?>" /></td>
+                <td><label for="m<?php echo $row['id']; ?>"><?php echo $row['title']; ?></a></td>
+                <td><?php echo $row['toolid']; ?></td>
+                <td><?php echo $row['description']; ?></td>
+                <td><?php echo $row['cnt']; ?></td>
+                </tr> <?php } ?>
+        </tbody>
+</table>
+</form>
+<?php
+include(AT_INCLUDE_PATH.'footer.inc.php');
+?>
diff --git a/docs/mods/_standard/basiclti/index_instructor.php b/docs/mods/_standard/basiclti/index_instructor.php
new file mode 100644 (file)
index 0000000..5b69812
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../include/');
+require (AT_INCLUDE_PATH.'vitals.inc.php');
+authenticate(AT_PRIV_BASICLTI);
+
+if ( !is_int($_SESSION['course_id']) || $_SESSION['course_id'] < 1 ) {
+    $msg->addFeedback('NEED_COURSE_ID');
+    exit;
+}
+
+if (isset($_GET['view'], $_GET['id'])) {
+    header('Location: tool/instructor_view.php?id='.$_GET['id']);
+    exit;
+} else if (isset($_GET['edit'], $_GET['id'])) {
+    header('Location: tool/instructor_edit.php?id='.$_GET['id']);
+    exit;
+} else if (isset($_GET['delete'], $_GET['id'])) {
+    header('Location: tool/instructor_delete.php?id='.$_GET['id']);
+    exit;
+}  else if ($_GET['delete'] ||$_GET['edit'] || $_GET['view'] && !isset($_GET['id'])){
+       $msg->addError("NO_ITEM_SELECTED");
+}
+
+require (AT_INCLUDE_PATH.'header.inc.php');
+
+$sql = "SELECT t.id AS id,t.title AS title,t.toolid AS toolid,
+               t.description AS description, COUNT(c.id) AS cnt 
+        FROM ".TABLE_PREFIX."basiclti_tools AS t 
+        LEFT OUTER JOIN ".TABLE_PREFIX."basiclti_content as c
+        ON t.toolid = c.toolid
+        WHERE t.course_id = ".$_SESSION['course_id']." GROUP BY t.toolid ORDER BY t.title";
+$result = mysql_query($sql, $db) or die(mysql_error());
+?>
+<form name="form" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
+<table class="data static" summary="" rules="all">
+        <thead>
+                <th>&nbsp;</th>
+                <th><?php echo _AT('bl_title'); ?></th>
+                <th><?php echo _AT('bl_toolid'); ?></th>
+                <th><?php echo _AT('bl_description'); ?></th>
+                <th><?php echo _AT('bl_count'); ?></th>
+        </thead>
+       <tfoot>
+               <tr>
+               <td colspan="5"><input type="submit" name="view" value="<?php echo _AT('view'); ?>" />
+                    <input type="submit" name="edit" value="<?php echo _AT('edit'); ?>" />
+                    <input type="submit" name="delete" value="<?php echo _AT('delete'); ?>" /></td>
+               </tr>
+       </tfoot>
+        <tbody>
+                <?php while($row = mysql_fetch_array($result)) { ?><tr>
+               <td><input type="radio" name="id" value="<?php echo $row['id']; ?>" id="m<?php echo $row['id']; ?>" /></td>
+                <td><label for="m<?php echo $row['id']; ?>"><?php echo $row['title']; ?></label></td>
+                <td><?php echo $row['toolid']; ?></td>
+                <td><?php echo $row['description']; ?></td>
+                <td><?php echo $row['cnt']; ?></td>
+                </tr> <?php } ?>
+        </tbody>
+</table>
+</form>
+<?php
+include(AT_INCLUDE_PATH.'footer.inc.php');
+?>
diff --git a/docs/mods/_standard/basiclti/launch/TrivialStore.php b/docs/mods/_standard/basiclti/launch/TrivialStore.php
new file mode 100644 (file)
index 0000000..5060577
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/**
+ * A Trivial memory-based store - no support for tokens
+ */
+class TrivialOAuthDataStore extends OAuthDataStore {
+    private $consumers = array();
+
+    function add_consumer($consumer_key, $consumer_secret) {
+        $this->consumers[$consumer_key] = $consumer_secret;
+    }
+
+    function lookup_consumer($consumer_key) {
+        if ( strpos($consumer_key, "http://" ) === 0 ) {
+            $consumer = new OAuthConsumer($consumer_key,"secret", NULL);
+            return $consumer;
+        }
+        if ( $this->consumers[$consumer_key] ) {
+            $consumer = new OAuthConsumer($consumer_key,$this->consumers[$consumer_key], NULL);
+            return $consumer;
+        }
+        return NULL;
+    }
+
+    function lookup_token($consumer, $token_type, $token) {
+        return new OAuthToken($consumer, "");
+    }
+
+    // Return NULL if the nonce has not been used
+    // Return $nonce if the nonce was previously used
+    function lookup_nonce($consumer, $token, $nonce, $timestamp) {
+        // Should add some clever logic to keep nonces from
+        // being reused - for no we are really trusting
+       // that the timestamp will save us
+        return NULL;
+    }
+
+    function new_request_token($consumer) {
+        return NULL;
+    }
+
+    function new_access_token($token, $consumer) {
+        return NULL;
+    }
+}
+?>
diff --git a/docs/mods/_standard/basiclti/launch/ims-blti/LICENSE.txt b/docs/mods/_standard/basiclti/launch/ims-blti/LICENSE.txt
new file mode 100644 (file)
index 0000000..89f0591
--- /dev/null
@@ -0,0 +1,22 @@
+The MIT License
+
+Copyright (c) 2007 Andy Smith
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/docs/mods/_standard/basiclti/launch/ims-blti/OAuth.php b/docs/mods/_standard/basiclti/launch/ims-blti/OAuth.php
new file mode 100644 (file)
index 0000000..226d6d4
--- /dev/null
@@ -0,0 +1,808 @@
+<?php
+// vim: foldmethod=marker
+
+$OAuth_last_computed_siguature = false;
+
+/* Generic exception class
+ */
+class OAuthException extends Exception {
+  // pass
+}
+
+class OAuthConsumer {
+  public $key;
+  public $secret;
+
+  function __construct($key, $secret, $callback_url=NULL) {
+    $this->key = $key;
+    $this->secret = $secret;
+    $this->callback_url = $callback_url;
+  }
+
+  function __toString() {
+    return "OAuthConsumer[key=$this->key,secret=$this->secret]";
+  }
+}
+
+class OAuthToken {
+  // access tokens and request tokens
+  public $key;
+  public $secret;
+
+  /**
+   * key = the token
+   * secret = the token secret
+   */
+  function __construct($key, $secret) {
+    $this->key = $key;
+    $this->secret = $secret;
+  }
+
+  /**
+   * generates the basic string serialization of a token that a server
+   * would respond to request_token and access_token calls with
+   */
+  function to_string() {
+    return "oauth_token=" .
+           OAuthUtil::urlencode_rfc3986($this->key) .
+           "&oauth_token_secret=" .
+           OAuthUtil::urlencode_rfc3986($this->secret);
+  }
+
+  function __toString() {
+    return $this->to_string();
+  }
+}
+
+class OAuthSignatureMethod {
+  public function check_signature(&$request, $consumer, $token, $signature) {
+    $built = $this->build_signature($request, $consumer, $token);
+    return $built == $signature;
+  }
+}
+
+class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
+  function get_name() {
+    return "HMAC-SHA1";
+  }
+
+  public function build_signature($request, $consumer, $token) {
+    global $OAuth_last_computed_signature;
+    $OAuth_last_computed_signature = false;
+
+    $base_string = $request->get_signature_base_string();
+    $request->base_string = $base_string;
+
+    $key_parts = array(
+      $consumer->secret,
+      ($token) ? $token->secret : ""
+    );
+
+    $key_parts = OAuthUtil::urlencode_rfc3986($key_parts);
+    $key = implode('&', $key_parts);
+
+    $computed_signature = base64_encode(hash_hmac('sha1', $base_string, $key, true));
+    $OAuth_last_computed_signature = $computed_signature;
+    return $computed_signature;
+  }
+
+}
+
+class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
+  public function get_name() {
+    return "PLAINTEXT";
+  }
+
+  public function build_signature($request, $consumer, $token) {
+    $sig = array(
+      OAuthUtil::urlencode_rfc3986($consumer->secret)
+    );
+
+    if ($token) {
+      array_push($sig, OAuthUtil::urlencode_rfc3986($token->secret));
+    } else {
+      array_push($sig, '');
+    }
+
+    $raw = implode("&", $sig);
+    // for debug purposes
+    $request->base_string = $raw;
+
+    return OAuthUtil::urlencode_rfc3986($raw);
+  }
+}
+
+class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod {
+  public function get_name() {
+    return "RSA-SHA1";
+  }
+
+  protected function fetch_public_cert(&$request) {
+    // not implemented yet, ideas are:
+    // (1) do a lookup in a table of trusted certs keyed off of consumer
+    // (2) fetch via http using a url provided by the requester
+    // (3) some sort of specific discovery code based on request
+    //
+    // either way should return a string representation of the certificate
+    throw Exception("fetch_public_cert not implemented");
+  }
+
+  protected function fetch_private_cert(&$request) {
+    // not implemented yet, ideas are:
+    // (1) do a lookup in a table of trusted certs keyed off of consumer
+    //
+    // either way should return a string representation of the certificate
+    throw Exception("fetch_private_cert not implemented");
+  }
+
+  public function build_signature(&$request, $consumer, $token) {
+    $base_string = $request->get_signature_base_string();
+    $request->base_string = $base_string;
+
+    // Fetch the private key cert based on the request
+    $cert = $this->fetch_private_cert($request);
+
+    // Pull the private key ID from the certificate
+    $privatekeyid = openssl_get_privatekey($cert);
+
+    // Sign using the key
+    $ok = openssl_sign($base_string, $signature, $privatekeyid);
+
+    // Release the key resource
+    openssl_free_key($privatekeyid);
+
+    return base64_encode($signature);
+  }
+
+  public function check_signature(&$request, $consumer, $token, $signature) {
+    $decoded_sig = base64_decode($signature);
+
+    $base_string = $request->get_signature_base_string();
+
+    // Fetch the public key cert based on the request
+    $cert = $this->fetch_public_cert($request);
+
+    // Pull the public key ID from the certificate
+    $publickeyid = openssl_get_publickey($cert);
+
+    // Check the computed signature against the one passed in the query
+    $ok = openssl_verify($base_string, $decoded_sig, $publickeyid);
+
+    // Release the key resource
+    openssl_free_key($publickeyid);
+
+    return $ok == 1;
+  }
+}
+
+class OAuthRequest {
+  private $parameters;
+  private $http_method;
+  private $http_url;
+  // for debug purposes
+  public $base_string;
+  public static $version = '1.0';
+  public static $POST_INPUT = 'php://input';
+
+  function __construct($http_method, $http_url, $parameters=NULL) {
+    @$parameters or $parameters = array();
+    $this->parameters = $parameters;
+    $this->http_method = $http_method;
+    $this->http_url = $http_url;
+  }
+
+
+  /**
+   * attempt to build up a request from what was passed to the server
+   */
+  public static function from_request($http_method=NULL, $http_url=NULL, $parameters=NULL) {
+    $scheme = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on")
+              ? 'http'
+              : 'https';
+    $port = "";
+    if ( $_SERVER['SERVER_PORT'] != "80" && $_SERVER['SERVER_PORT'] != "443" &&
+        strpos(':', $_SERVER['HTTP_HOST']) < 0 ) {
+      $port =  ':' . $_SERVER['SERVER_PORT'] ;
+    }
+    @$http_url or $http_url = $scheme .
+                              '://' . $_SERVER['HTTP_HOST'] .
+                              $port .
+                              $_SERVER['REQUEST_URI'];
+    @$http_method or $http_method = $_SERVER['REQUEST_METHOD'];
+
+    // We weren't handed any parameters, so let's find the ones relevant to
+    // this request.
+    // If you run XML-RPC or similar you should use this to provide your own
+    // parsed parameter-list
+    if (!$parameters) {
+      // Find request headers
+      $request_headers = OAuthUtil::get_headers();
+
+      // Parse the query-string to find GET parameters
+      $parameters = OAuthUtil::parse_parameters($_SERVER['QUERY_STRING']);
+
+      $ourpost = $_POST;
+      // Deal with magic_quotes
+      // http://www.php.net/manual/en/security.magicquotes.disabling.php
+      if ( get_magic_quotes_gpc() ) {
+         $outpost = array();
+         foreach ($_POST as $k => $v) {
+            $v = stripslashes($v);
+            $ourpost[$k] = $v;
+         }
+      }
+     // Add POST Parameters if they exist
+      $parameters = array_merge($parameters, $ourpost);
+
+      // We have a Authorization-header with OAuth data. Parse the header
+      // and add those overriding any duplicates from GET or POST
+      if (@substr($request_headers['Authorization'], 0, 6) == "OAuth ") {
+        $header_parameters = OAuthUtil::split_header(
+          $request_headers['Authorization']
+        );
+        $parameters = array_merge($parameters, $header_parameters);
+      }
+
+    }
+
+    return new OAuthRequest($http_method, $http_url, $parameters);
+  }
+
+  /**
+   * pretty much a helper function to set up the request
+   */
+  public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters=NULL) {
+    @$parameters or $parameters = array();
+    $defaults = array("oauth_version" => OAuthRequest::$version,
+                      "oauth_nonce" => OAuthRequest::generate_nonce(),
+                      "oauth_timestamp" => OAuthRequest::generate_timestamp(),
+                      "oauth_consumer_key" => $consumer->key);
+    if ($token)
+      $defaults['oauth_token'] = $token->key;
+
+    $parameters = array_merge($defaults, $parameters);
+
+    // Parse the query-string to find and add GET parameters
+    $parts = parse_url($http_url);
+    if ( $parts['query'] ) {
+      $qparms = OAuthUtil::parse_parameters($parts['query']);
+      $parameters = array_merge($qparms, $parameters);
+    }
+     
+
+    return new OAuthRequest($http_method, $http_url, $parameters);
+  }
+
+  public function set_parameter($name, $value, $allow_duplicates = true) {
+    if ($allow_duplicates && isset($this->parameters[$name])) {
+      // We have already added parameter(s) with this name, so add to the list
+      if (is_scalar($this->parameters[$name])) {
+        // This is the first duplicate, so transform scalar (string)
+        // into an array so we can add the duplicates
+        $this->parameters[$name] = array($this->parameters[$name]);
+      }
+
+      $this->parameters[$name][] = $value;
+    } else {
+      $this->parameters[$name] = $value;
+    }
+  }
+
+  public function get_parameter($name) {
+    return isset($this->parameters[$name]) ? $this->parameters[$name] : null;
+  }
+
+  public function get_parameters() {
+    return $this->parameters;
+  }
+
+  public function unset_parameter($name) {
+    unset($this->parameters[$name]);
+  }
+
+  /**
+   * The request parameters, sorted and concatenated into a normalized string.
+   * @return string
+   */
+  public function get_signable_parameters() {
+    // Grab all parameters
+    $params = $this->parameters;
+
+    // Remove oauth_signature if present
+    // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.")
+    if (isset($params['oauth_signature'])) {
+      unset($params['oauth_signature']);
+    }
+
+    return OAuthUtil::build_http_query($params);
+  }
+
+  /**
+   * Returns the base string of this request
+   *
+   * The base string defined as the method, the url
+   * and the parameters (normalized), each urlencoded
+   * and the concated with &.
+   */
+  public function get_signature_base_string() {
+    $parts = array(
+      $this->get_normalized_http_method(),
+      $this->get_normalized_http_url(),
+      $this->get_signable_parameters()
+    );
+
+    $parts = OAuthUtil::urlencode_rfc3986($parts);
+
+    return implode('&', $parts);
+  }
+
+  /**
+   * just uppercases the http method
+   */
+  public function get_normalized_http_method() {
+    return strtoupper($this->http_method);
+  }
+
+  /**
+   * parses the url and rebuilds it to be
+   * scheme://host/path
+   */
+  public function get_normalized_http_url() {
+    $parts = parse_url($this->http_url);
+
+    $port = @$parts['port'];
+    $scheme = $parts['scheme'];
+    $host = $parts['host'];
+    $path = @$parts['path'];
+
+    $port or $port = ($scheme == 'https') ? '443' : '80';
+
+    if (($scheme == 'https' && $port != '443')
+        || ($scheme == 'http' && $port != '80')) {
+      $host = "$host:$port";
+    }
+    return "$scheme://$host$path";
+  }
+
+  /**
+   * builds a url usable for a GET request
+   */
+  public function to_url() {
+    $post_data = $this->to_postdata();
+    $out = $this->get_normalized_http_url();
+    if ($post_data) {
+      $out .= '?'.$post_data;
+    }
+    return $out;
+  }
+
+  /**
+   * builds the data one would send in a POST request
+   */
+  public function to_postdata() {
+    return OAuthUtil::build_http_query($this->parameters);
+  }
+
+  /**
+   * builds the Authorization: header
+   */
+  public function to_header() {
+    $out ='Authorization: OAuth realm=""';
+    $total = array();
+    foreach ($this->parameters as $k => $v) {
+      if (substr($k, 0, 5) != "oauth") continue;
+      if (is_array($v)) {
+        throw new OAuthException('Arrays not supported in headers');
+      }
+      $out .= ',' .
+              OAuthUtil::urlencode_rfc3986($k) .
+              '="' .
+              OAuthUtil::urlencode_rfc3986($v) .
+              '"';
+    }
+    return $out;
+  }
+
+  public function __toString() {
+    return $this->to_url();
+  }
+
+
+  public function sign_request($signature_method, $consumer, $token) {
+    $this->set_parameter(
+      "oauth_signature_method",
+      $signature_method->get_name(),
+      false
+    );
+    $signature = $this->build_signature($signature_method, $consumer, $token);
+    $this->set_parameter("oauth_signature", $signature, false);
+  }
+
+  public function build_signature($signature_method, $consumer, $token) {
+    $signature = $signature_method->build_signature($this, $consumer, $token);
+    return $signature;
+  }
+
+  /**
+   * util function: current timestamp
+   */
+  private static function generate_timestamp() {
+    return time();
+  }
+
+  /**
+   * util function: current nonce
+   */
+  private static function generate_nonce() {
+    $mt = microtime();
+    $rand = mt_rand();
+
+    return md5($mt . $rand); // md5s look nicer than numbers
+  }
+}
+
+class OAuthServer {
+  protected $timestamp_threshold = 300; // in seconds, five minutes
+  protected $version = 1.0;             // hi blaine
+  protected $signature_methods = array();
+
+  protected $data_store;
+
+  function __construct($data_store) {
+    $this->data_store = $data_store;
+  }
+
+  public function add_signature_method($signature_method) {
+    $this->signature_methods[$signature_method->get_name()] =
+      $signature_method;
+  }
+
+  // high level functions
+
+  /**
+   * process a request_token request
+   * returns the request token on success
+   */
+  public function fetch_request_token(&$request) {
+    $this->get_version($request);
+
+    $consumer = $this->get_consumer($request);
+
+    // no token required for the initial token request
+    $token = NULL;
+
+    $this->check_signature($request, $consumer, $token);
+
+    $new_token = $this->data_store->new_request_token($consumer);
+
+    return $new_token;
+  }
+
+  /**
+   * process an access_token request
+   * returns the access token on success
+   */
+  public function fetch_access_token(&$request) {
+    $this->get_version($request);
+
+    $consumer = $this->get_consumer($request);
+
+    // requires authorized request token
+    $token = $this->get_token($request, $consumer, "request");
+
+
+    $this->check_signature($request, $consumer, $token);
+
+    $new_token = $this->data_store->new_access_token($token, $consumer);
+
+    return $new_token;
+  }
+
+  /**
+   * verify an api call, checks all the parameters
+   */
+  public function verify_request(&$request) {
+    global $OAuth_last_computed_signature;
+    $OAuth_last_computed_signature = false;
+    $this->get_version($request);
+    $consumer = $this->get_consumer($request);
+    $token = $this->get_token($request, $consumer, "access");
+    $this->check_signature($request, $consumer, $token);
+    return array($consumer, $token);
+  }
+
+  // Internals from here
+  /**
+   * version 1
+   */
+  private function get_version(&$request) {
+    $version = $request->get_parameter("oauth_version");
+    if (!$version) {
+      $version = 1.0;
+    }
+    if ($version && $version != $this->version) {
+      throw new OAuthException("OAuth version '$version' not supported");
+    }
+    return $version;
+  }
+
+  /**
+   * figure out the signature with some defaults
+   */
+  private function get_signature_method(&$request) {
+    $signature_method =
+        @$request->get_parameter("oauth_signature_method");
+    if (!$signature_method) {
+      $signature_method = "PLAINTEXT";
+    }
+    if (!in_array($signature_method,
+                  array_keys($this->signature_methods))) {
+      throw new OAuthException(
+        "Signature method '$signature_method' not supported " .
+        "try one of the following: " .
+        implode(", ", array_keys($this->signature_methods))
+      );
+    }
+    return $this->signature_methods[$signature_method];
+  }
+
+  /**
+   * try to find the consumer for the provided request's consumer key
+   */
+  private function get_consumer(&$request) {
+    $consumer_key = @$request->get_parameter("oauth_consumer_key");
+    if (!$consumer_key) {
+      throw new OAuthException("Invalid consumer key");
+    }
+
+    $consumer = $this->data_store->lookup_consumer($consumer_key);
+    if (!$consumer) {
+      throw new OAuthException("Invalid consumer");
+    }
+
+    return $consumer;
+  }
+
+  /**
+   * try to find the token for the provided request's token key
+   */
+  private function get_token(&$request, $consumer, $token_type="access") {
+    $token_field = @$request->get_parameter('oauth_token');
+    if ( !$token_field) return false;
+    $token = $this->data_store->lookup_token(
+      $consumer, $token_type, $token_field
+    );
+    if (!$token) {
+      throw new OAuthException("Invalid $token_type token: $token_field");
+    }
+    return $token;
+  }
+
+  /**
+   * all-in-one function to check the signature on a request
+   * should guess the signature method appropriately
+   */
+  private function check_signature(&$request, $consumer, $token) {
+    // this should probably be in a different method
+    global $OAuth_last_computed_signature;
+    $OAuth_last_computed_signature = false;
+
+    $timestamp = @$request->get_parameter('oauth_timestamp');
+    $nonce = @$request->get_parameter('oauth_nonce');
+
+    $this->check_timestamp($timestamp);
+    $this->check_nonce($consumer, $token, $nonce, $timestamp);
+
+    $signature_method = $this->get_signature_method($request);
+
+    $signature = $request->get_parameter('oauth_signature');
+    $valid_sig = $signature_method->check_signature(
+      $request,
+      $consumer,
+      $token,
+      $signature
+    );
+
+    if (!$valid_sig) {
+      $ex_text = "Invalid signature";
+      if ( $OAuth_last_computed_signature ) {
+          $ex_text = $ex_text . " ours= $OAuth_last_computed_signature yours=$signature";
+      }
+      throw new OAuthException($ex_text);
+    }
+  }
+
+  /**
+   * check that the timestamp is new enough
+   */
+  private function check_timestamp($timestamp) {
+    // verify that timestamp is recentish
+    $now = time();
+    if ($now - $timestamp > $this->timestamp_threshold) {
+      throw new OAuthException(
+        "Expired timestamp, yours $timestamp, ours $now"
+      );
+    }
+  }
+
+  /**
+   * check that the nonce is not repeated
+   */
+  private function check_nonce($consumer, $token, $nonce, $timestamp) {
+    // verify that the nonce is uniqueish
+    $found = $this->data_store->lookup_nonce(
+      $consumer,
+      $token,
+      $nonce,
+      $timestamp
+    );
+    if ($found) {
+      throw new OAuthException("Nonce already used: $nonce");
+    }
+  }
+
+}
+
+class OAuthDataStore {
+  function lookup_consumer($consumer_key) {
+    // implement me
+  }
+
+  function lookup_token($consumer, $token_type, $token) {
+    // implement me
+  }
+
+  function lookup_nonce($consumer, $token, $nonce, $timestamp) {
+    // implement me
+  }
+
+  function new_request_token($consumer) {
+    // return a new token attached to this consumer
+  }
+
+  function new_access_token($token, $consumer) {
+    // return a new access token attached to this consumer
+    // for the user associated with this token if the request token
+    // is authorized
+    // should also invalidate the request token
+  }
+
+}
+
+class OAuthUtil {
+  public static function urlencode_rfc3986($input) {
+  if (is_array($input)) {
+    return array_map(array('OAuthUtil', 'urlencode_rfc3986'), $input);
+  } else if (is_scalar($input)) {
+    return str_replace(
+      '+',
+      ' ',
+      str_replace('%7E', '~', rawurlencode($input))
+    );
+  } else {
+    return '';
+  }
+}
+
+
+  // This decode function isn't taking into consideration the above
+  // modifications to the encoding process. However, this method doesn't
+  // seem to be used anywhere so leaving it as is.
+  public static function urldecode_rfc3986($string) {
+    return urldecode($string);
+  }
+
+  // Utility function for turning the Authorization: header into
+  // parameters, has to do some unescaping
+  // Can filter out any non-oauth parameters if needed (default behaviour)
+  public static function split_header($header, $only_allow_oauth_parameters = true) {
+    $pattern = '/(([-_a-z]*)=("([^"]*)"|([^,]*)),?)/';
+    $offset = 0;
+    $params = array();
+    while (preg_match($pattern, $header, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) {
+      $match = $matches[0];
+      $header_name = $matches[2][0];
+      $header_content = (isset($matches[5])) ? $matches[5][0] : $matches[4][0];
+      if (preg_match('/^oauth_/', $header_name) || !$only_allow_oauth_parameters) {
+        $params[$header_name] = OAuthUtil::urldecode_rfc3986($header_content);
+      }
+      $offset = $match[1] + strlen($match[0]);
+    }
+
+    if (isset($params['realm'])) {
+      unset($params['realm']);
+    }
+
+    return $params;
+  }
+
+  // helper to try to sort out headers for people who aren't running apache
+  public static function get_headers() {
+    if (function_exists('apache_request_headers')) {
+      // we need this to get the actual Authorization: header
+      // because apache tends to tell us it doesn't exist
+      return apache_request_headers();
+    }
+    // otherwise we don't have apache and are just going to have to hope
+    // that $_SERVER actually contains what we need
+    $out = array();
+    foreach ($_SERVER as $key => $value) {
+      if (substr($key, 0, 5) == "HTTP_") {
+        // this is chaos, basically it is just there to capitalize the first
+        // letter of every word that is not an initial HTTP and strip HTTP
+        // code from przemek
+        $key = str_replace(
+          " ",
+          "-",
+          ucwords(strtolower(str_replace("_", " ", substr($key, 5))))
+        );
+        $out[$key] = $value;
+      }
+    }
+    return $out;
+  }
+
+  // This function takes a input like a=b&a=c&d=e and returns the parsed
+  // parameters like this
+  // array('a' => array('b','c'), 'd' => 'e')
+  public static function parse_parameters( $input ) {
+    if (!isset($input) || !$input) return array();
+
+    $pairs = explode('&', $input);
+
+    $parsed_parameters = array();
+    foreach ($pairs as $pair) {
+      $split = explode('=', $pair, 2);
+      $parameter = OAuthUtil::urldecode_rfc3986($split[0]);
+      $value = isset($split[1]) ? OAuthUtil::urldecode_rfc3986($split[1]) : '';
+
+      if (isset($parsed_parameters[$parameter])) {
+        // We have already recieved parameter(s) with this name, so add to the list
+        // of parameters with this name
+
+        if (is_scalar($parsed_parameters[$parameter])) {
+          // This is the first duplicate, so transform scalar (string) into an array
+          // so we can add the duplicates
+          $parsed_parameters[$parameter] = array($parsed_parameters[$parameter]);
+        }
+
+        $parsed_parameters[$parameter][] = $value;
+      } else {
+        $parsed_parameters[$parameter] = $value;
+      }
+    }
+    return $parsed_parameters;
+  }
+
+  public static function build_http_query($params) {
+    if (!$params) return '';
+
+    // Urlencode both keys and values
+    $keys = OAuthUtil::urlencode_rfc3986(array_keys($params));
+    $values = OAuthUtil::urlencode_rfc3986(array_values($params));
+    $params = array_combine($keys, $values);
+
+    // Parameters are sorted by name, using lexicographical byte value ordering.
+    // Ref: Spec: 9.1.1 (1)
+    uksort($params, 'strcmp');
+
+    $pairs = array();
+    foreach ($params as $parameter => $value) {
+      if (is_array($value)) {
+        // If two or more parameters share the same name, they are sorted by their value
+        // Ref: Spec: 9.1.1 (1)
+        natsort($value);
+        foreach ($value as $duplicate_value) {
+          $pairs[] = $parameter . '=' . $duplicate_value;
+        }
+      } else {
+        $pairs[] = $parameter . '=' . $value;
+      }
+    }
+    // For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61)
+    // Each name-value pair is separated by an '&' character (ASCII code 38)
+    return implode('&', $pairs);
+  }
+}
+
+?>
diff --git a/docs/mods/_standard/basiclti/launch/ims-blti/blti.php b/docs/mods/_standard/basiclti/launch/ims-blti/blti.php
new file mode 100644 (file)
index 0000000..f08bbf3
--- /dev/null
@@ -0,0 +1,324 @@
+<?php
+
+require_once 'OAuth.php';
+
+// Returns true if this is a Basic LTI message
+// with minimum values to meet the protocol
+function is_basic_lti_request() {
+   $good_message_type = $_REQUEST["lti_message_type"] == "basic-lti-launch-request";
+   $good_lti_version = $_REQUEST["lti_version"] == "LTI-1p0";
+   $resource_link_id = $_REQUEST["resource_link_id"];
+   if ($good_message_type and $good_lti_version and isset($resource_link_id) ) return(true);
+   return false;
+}
+
+/**
+ * A Trivial memory-based store - no support for tokens
+ */
+class TrivialOAuthDataStore extends OAuthDataStore {
+    private $consumers = array();
+
+    function add_consumer($consumer_key, $consumer_secret) {
+        $this->consumers[$consumer_key] = $consumer_secret;
+    }
+
+    function lookup_consumer($consumer_key) {
+        if ( strpos($consumer_key, "http://" ) === 0 ) {
+            $consumer = new OAuthConsumer($consumer_key,"secret", NULL);
+            return $consumer;
+        }
+        if ( $this->consumers[$consumer_key] ) {
+            $consumer = new OAuthConsumer($consumer_key,$this->consumers[$consumer_key], NULL);
+            return $consumer;
+        }
+        return NULL;
+    }
+
+    function lookup_token($consumer, $token_type, $token) {
+        return new OAuthToken($consumer, "");
+    }
+
+    // Return NULL if the nonce has not been used
+    // Return $nonce if the nonce was previously used
+    function lookup_nonce($consumer, $token, $nonce, $timestamp) {
+        // Should add some clever logic to keep nonces from
+        // being reused - for no we are really trusting
+       // that the timestamp will save us
+        return NULL;
+    }
+
+    function new_request_token($consumer) {
+        return NULL;
+    }
+
+    function new_access_token($token, $consumer) {
+        return NULL;
+    }
+}
+
+
+// Basic LTI Class that does the setup and provides utility
+// functions
+class BLTI {
+
+    public $valid = false;
+    public $complete = false;
+    public $message = false;
+    public $basestring = false;
+    public $info = false;
+    public $row = false;
+    public $context_id = false;  // Override context_id
+
+    function __construct($parm=false, $usesession=true, $doredirect=true) {
+
+        // If this request is not an LTI Launch, either
+        // give up or try to retrieve the context from session
+        if ( ! is_basic_lti_request() ) {
+            if ( $usesession === false ) return;  
+            if ( strlen(session_id()) > 0 ) {
+                $row = $_SESSION['_basiclti_lti_row'];
+                if ( isset($row) ) $this->row = $row;
+                $context_id = $_SESSION['_basiclti_lti_context_id'];
+                if ( isset($context_id) ) $this->context_id = $context_id;
+                $info = $_SESSION['_basic_lti_context'];
+                if ( isset($info) ) {
+                    $this->info = $info;
+                    $this->valid = true;
+                    return;
+                }
+                $this->message = "Could not find context in session";
+                return;
+            }
+            $this->message = "Session not available";
+            return;
+        }
+
+        // Insure we have a valid launch
+        if ( empty($_REQUEST["oauth_consumer_key"]) ) {
+            $this->message = "Missing oauth_consumer_key in request";
+            return;
+        }
+        $oauth_consumer_key = $_REQUEST["oauth_consumer_key"];
+
+        // Find the secret - either form the parameter as a string or
+        // look it up in a database from parameters we are given
+        $secret = false;
+        $row = false;
+        if ( is_string($parm) ) {
+            $secret = $parm;
+        } else if ( ! is_array($parm) ) {
+            $this->message = "Constructor requires a secret or database information.";
+            return;
+        } else {
+            $sql = 'SELECT * FROM '.$parm['table'].' WHERE '.
+                ($parm['key_column'] ? $parm['key_column'] : 'oauth_consumer_key').
+                '='.
+                "'".mysql_real_escape_string($oauth_consumer_key)."'";
+            $result = mysql_query($sql);
+            $num_rows = mysql_num_rows($result);
+            if ( $num_rows != 1 ) {
+                $this->message = "Your consumer is not authorized oauth_consumer_key=".$oauth_consumer_key;
+                return;
+            } else {
+                while ($row = mysql_fetch_assoc($result)) {
+                    $secret = $row[$parms['secret_column']?$parms['secret_column']:'secret'];
+                    $context_id = $row[$parms['context_column']?$parms['context_column']:'context_id'];
+                    if ( $context_id ) $this->context_id = $context_id;
+                    $this->row = $row;
+                    break;
+                }
+                if ( ! is_string($secret) ) {
+                    $this->message = "Could not retrieve secret oauth_consumer_key=".$oauth_consumer_key;
+                    return;
+                }
+            }
+        }
+
+        // Verify the message signature
+        $store = new TrivialOAuthDataStore();
+        $store->add_consumer($oauth_consumer_key, $secret);
+
+        $server = new OAuthServer($store);
+
+        $method = new OAuthSignatureMethod_HMAC_SHA1();
+        $server->add_signature_method($method);
+        $request = OAuthRequest::from_request();
+        
+        $this->basestring = $request->get_signature_base_string();
+
+        try {
+            $server->verify_request($request);
+            $this->valid = true;
+        } catch (Exception $e) {
+            $this->message = $e->getMessage();
+            return;
+        }
+
+        // Store the launch information in the session for later
+        $newinfo = array();
+        foreach($_POST as $key => $value ) {
+            if ( $key == "basiclti_submit" ) continue;
+            if ( strpos($key, "oauth_") === false ) {
+                $newinfo[$key] = $value;
+                continue;
+            }
+            if ( $key == "oauth_consumer_key" ) {
+                $newinfo[$key] = $value;
+                continue;
+            }
+        }
+
+        $this->info = $newinfo;
+        if ( $usesession == true and strlen(session_id()) > 0 ) {
+             $_SESSION['_basic_lti_context'] = $this->info;
+             unset($_SESSION['_basiclti_lti_row']);
+             unset($_SESSION['_basiclti_lti_context_id']);
+             if ( $this->row ) $_SESSION['_basiclti_lti_row'] = $this->row;
+             if ( $this->context_id ) $_SESSION['_basiclti_lti_context_id'] = $this->context_id;
+        }
+
+        if ( $this->valid && $doredirect ) {
+            $this->redirect();
+            $this->complete = true;
+        }
+    }
+
+    function addSession($location) {
+        if ( ini_get('session.use_cookies') == 0 ) {
+            if ( strpos($location,'?') > 0 ) {
+               $location = $location . '&';
+            } else {
+               $location = $location . '?';
+            }
+            $location = $location . session_name() . '=' . session_id();
+        }
+        return $location;
+    }
+
+    function isInstructor() {
+        $roles = $this->info['roles'];
+        $roles = strtolower($roles);
+        if ( ! ( strpos($roles,"instructor") === false ) ) return true;
+        if ( ! ( strpos($roles,"administrator") === false ) ) return true;
+        return false;
+    }
+
+    function getUserEmail() {
+        $email = $this->info['lis_person_contact_email_primary'];
+        if ( strlen($email) > 0 ) return $email;
+        # Sakai Hack
+        $email = $this->info['lis_person_contact_emailprimary'];
+        if ( strlen($email) > 0 ) return $email;
+        return false;
+    }
+
+    function getUserShortName() {
+        $email = $this->getUserEmail();
+        $givenname = $this->info['lis_person_name_given'];
+        $familyname = $this->info['lis_person_name_family'];
+        $fullname = $this->info['lis_person_name_full'];
+        if ( strlen($email) > 0 ) return $email;
+        if ( strlen($givenname) > 0 ) return $givenname;
+        if ( strlen($familyname) > 0 ) return $familyname;
+        return $this->getUserName();
+    }
+  
+    function getUserName() {
+        $givenname = $this->info['lis_person_name_given'];
+        $familyname = $this->info['lis_person_name_family'];
+        $fullname = $this->info['lis_person_name_full'];
+        if ( strlen($fullname) > 0 ) return $fullname;
+        if ( strlen($familyname) > 0 and strlen($givenname) > 0 ) return $givenname + $familyname;
+        if ( strlen($givenname) > 0 ) return $givenname;
+        if ( strlen($familyname) > 0 ) return $familyname;
+        return $this->getUserEmail();
+    }
+
+    function getUserKey() {
+        $oauth = $this->info['oauth_consumer_key'];
+        $id = $this->info['user_id'];
+        if ( strlen($id) > 0 and strlen($oauth) > 0 ) return $oauth . ':' . $id;
+        return false;
+    }
+
+    function getUserImage() {
+        $image = $this->info['user_image'];
+        if ( strlen($image) > 0 ) return $image;
+        $email = $this->getUserEmail();
+        if ( $email === false ) return false;
+        $size = 40;
+        $grav_url = $_SERVER['HTTPS'] ? 'https://' : 'http://';
+        $grav_url = $grav_url . "www.gravatar.com/avatar.php?gravatar_id=".md5( strtolower($email) )."&size=".$size;
+        return $grav_url;
+    }
+
+    function getResourceKey() {
+        $oauth = $this->info['oauth_consumer_key'];
+        $id = $this->info['resource_link_id'];
+        if ( strlen($id) > 0 and strlen($oauth) > 0 ) return $oauth . ':' . $id;
+        return false;
+    }
+
+    function getResourceTitle() {
+        $title = $this->info['resource_link_title'];
+        if ( strlen($title) > 0 ) return $title;
+        return false;
+    }
+
+    function getConsumerKey() {
+        $oauth = $this->info['oauth_consumer_key'];
+        return $oauth;
+    }
+
+    function getCourseKey() {
+        if ( $this->context_id ) return $this->context_id;
+        $oauth = $this->info['oauth_consumer_key'];
+        $id = $this->info['context_id'];
+        if ( strlen($id) > 0 and strlen($oauth) > 0 ) return $oauth . ':' . $id;
+        return false;
+    }
+
+    function getCourseName() {
+        $label = $this->info['context_label'];
+        $title = $this->info['context_title'];
+        $id = $this->info['context_id'];
+        if ( strlen($label) > 0 ) return $label;
+        if ( strlen($title) > 0 ) return $title;
+        if ( strlen($id) > 0 ) return $id;
+        return false;
+    }
+
+    // TODO: Add javasript version if headers are already sent
+    function redirect() {
+            $host = $_SERVER['HTTP_HOST'];
+            $uri = $_SERVER['PHP_SELF'];
+            $location = $_SERVER['HTTPS'] ? 'https://' : 'http://';
+            $location = $location . $host . $uri;
+            $location = $this->addSession($location);
+            header("Location: $location");
+    }
+
+    function dump() { 
+        if ( ! $this->valid or $this->info == false ) return "Context not valid\n";
+        $ret = "";
+        if ( $this->isInstructor() ) {
+            $ret .= "isInstructor() = true\n";
+        } else {
+            $ret .= "isInstructor() = false\n";
+        }
+        $ret .= "getUserKey() = ".$this->getUserKey()."\n";
+        $ret .= "getUserEmail() = ".$this->getUserEmail()."\n";
+        $ret .= "getUserShortName() = ".$this->getUserShortName()."\n";
+        $ret .= "getUserName() = ".$this->getUserName()."\n";
+        $ret .= "getUserImage() = ".$this->getUserImage()."\n";
+        $ret .= "getResourceKey() = ".$this->getResourceKey()."\n";
+        $ret .= "getResourceTitle() = ".$this->getResourceTitle()."\n";
+        $ret .= "getCourseName() = ".$this->getCourseName()."\n";
+        $ret .= "getCourseKey() = ".$this->getCourseKey()."\n";
+        $ret .= "getConsumerKey() = ".$this->getConsumerKey()."\n";
+        return $ret;
+    }
+
+}
+
+?>
diff --git a/docs/mods/_standard/basiclti/launch/ims-blti/blti_util.php b/docs/mods/_standard/basiclti/launch/ims-blti/blti_util.php
new file mode 100644 (file)
index 0000000..eb67c99
--- /dev/null
@@ -0,0 +1,225 @@
+<?php
+
+require_once 'OAuth.php';
+
+  // Replace this with some real function that pulls from the LMS.
+  function getLMSDummyData() {
+    $parms = array( 
+      "resource_link_id" => "120988f929-274612",
+      "resource_link_title" => "Weekly Blog",
+      "resource_link_description" => "Each student needs to reflect on the weekly reading.  These should be one paragraph long.",
+      "user_id" => "292832126",
+      "roles" => "Instructor",  // or Learner
+      "lis_person_name_full" => 'Jane Q. Public',
+      "lis_person_contact_email_primary" => "user@school.edu",
+      "lis_person_sourcedid" => "school.edu:user",
+      "context_id" => "456434513",
+      "context_title" => "Design of Personal Environments",
+      "context_label" => "SI182",
+      );
+
+    return $parms;
+  }
+
+  function validateDescriptor($descriptor)
+  {
+    $xml = new SimpleXMLElement($xmldata);
+    if ( ! $xml ) {
+       echo("Error parsing Descriptor XML\n");
+       return;
+    }
+    $launch_url = $xml->secure_launch_url[0];
+    if ( ! $launch_url ) $launch_url = $xml->launch_url[0];
+    if ( $launch_url ) $launch_url = (string) $launch_url;
+    return $launch_url;
+  }
+
+  // Parse a descriptor
+  function launchInfo($xmldata) {
+    $xml = new SimpleXMLElement($xmldata);
+    if ( ! $xml ) {
+       echo("Error parsing Descriptor XML\n");
+       return;
+    }
+    $launch_url = $xml->secure_launch_url[0];
+    if ( ! $launch_url ) $launch_url = $xml->launch_url[0];
+    if ( $launch_url ) $launch_url = (string) $launch_url;
+    $custom = array();
+    if ( $xml->custom[0]->parameter ) 
+    foreach ( $xml->custom[0]->parameter as $resource) {
+      $key = (string) $resource['key'];
+      $key = strtolower($key);
+      $nk = "";
+      for($i=0; $i < strlen($key); $i++) { 
+        $ch = substr($key,$i,1); 
+        if ( $ch >= "a" && $ch <= "z" ) $nk .= $ch;
+        else if ( $ch >= "0" && $ch <= "9" ) $nk .= $ch;
+        else $nk .= "_";
+      }
+      $value = (string) $resource;
+      $custom["custom_".$nk] = $value;
+    }
+    return array("launch_url" => $launch_url, "custom" => $custom ) ;
+  }
+
+function split_custom_parameters($custom) {
+    $retval = array();
+    return merge_custom_parameters($retval, $custom);
+}
+
+function merge_custom_parameters($retval, $custom) {
+    $lines = preg_split("/[\n;]/",$custom);
+    foreach ($lines as $line){
+        $pos = strpos($line,"=");
+        if ( $pos === false || $pos < 1 ) continue;
+        $key = trim(substr($line, 0, $pos));
+        $val = trim(substr($line, $pos+1));
+        $key = 'custom_'.map_keyname($key);
+        if ( isset($retval[$key])) continue;
+        $retval[$key] = $val;
+    }
+    return $retval;
+}
+
+function map_keyname($key) {
+    $newkey = "";
+    $key = strtolower(trim($key));
+    foreach (str_split($key) as $ch) {
+        if ( ($ch >= 'a' && $ch <= 'z') || ($ch >= '0' && $ch <= '9') ) {
+            $newkey .= $ch;
+        } else {
+            $newkey .= '_';
+        }
+    }
+    return $newkey;
+}
+
+function signParameters($oldparms, $endpoint, $method, $oauth_consumer_key, $oauth_consumer_secret, 
+    $submit_text = false, $org_id = false, $org_desc = false)
+{
+    global $last_base_string;
+    $parms = $oldparms;
+    if ( ! isset($parms["lti_version"]) ) $parms["lti_version"] = "LTI-1p0";
+    if ( ! isset($parms["lti_message_type"]) ) $parms["lti_message_type"] = "basic-lti-launch-request";
+    if ( ! isset($parms["oauth_callback"]) ) $parms["oauth_callback"] = "about:blank";
+    if ( $org_id ) $parms["tool_consumer_instance_guid"] = $org_id;
+    if ( $org_desc ) $parms["tool_consumer_instance_description"] = $org_desc;
+    if ( $submit_text ) $parms["ext_submit"] = $submit_text;
+
+    $test_token = '';
+
+    $hmac_method = new OAuthSignatureMethod_HMAC_SHA1();
+    $test_consumer = new OAuthConsumer($oauth_consumer_key, $oauth_consumer_secret, NULL);
+
+    $acc_req = OAuthRequest::from_consumer_and_token($test_consumer, $test_token, $method, $endpoint, $parms);
+    $acc_req->sign_request($hmac_method, $test_consumer, $test_token);
+
+    // Pass this back up "out of band" for debugging
+    $last_base_string = $acc_req->get_signature_base_string();
+
+    $newparms = $acc_req->get_parameters();
+
+    return $newparms;
+}
+
+function postLaunchHTML($newparms, $endpoint, $debug=false, $iframeattr=false) {
+    global $last_base_string;
+    $r = "<div id=\"ltiLaunchFormSubmitArea\">\n";
+    if ( $iframeattr ) {
+        $r = "<form action=\"".$endpoint."\" name=\"ltiLaunchForm\" id=\"ltiLaunchForm\" method=\"post\" target=\"basicltiLaunchFrame\" encType=\"application/x-www-form-urlencoded\">\n" ;
+    } else {
+        $r = "<form action=\"".$endpoint."\" name=\"ltiLaunchForm\" id=\"ltiLaunchForm\" method=\"post\" encType=\"application/x-www-form-urlencoded\">\n" ;
+    }
+    $submit_text = $newparms['ext_submit'];
+    foreach($newparms as $key => $value ) {
+        $key = htmlspecialchars($key);
+        $value = htmlspecialchars($value);
+        if ( $key == "ext_submit" ) {
+            $r .= "<input type=\"submit\" name=\"";
+        } else {
+            $r .= "<input type=\"hidden\" name=\"";
+        }
+        $r .= $key;
+        $r .= "\" value=\"";
+        $r .= $value;
+        $r .= "\"/>\n";
+    }
+    if ( $debug ) {
+        $r .= "<script language=\"javascript\"> \n";
+        $r .= "  //<![CDATA[ \n" ;
+        $r .= "function basicltiDebugToggle() {\n";
+        $r .= "    var ele = document.getElementById(\"basicltiDebug\");\n";
+        $r .= "    if(ele.style.display == \"block\") {\n";
+        $r .= "        ele.style.display = \"none\";\n";
+        $r .= "    }\n";
+        $r .= "    else {\n";
+        $r .= "        ele.style.display = \"block\";\n";
+        $r .= "    }\n";
+        $r .= "} \n";
+        $r .= "  //]]> \n" ;
+        $r .= "</script>\n";
+        $r .= "<a id=\"displayText\" href=\"javascript:basicltiDebugToggle();\">";
+        $r .= get_string("toggle_debug_data","basiclti")."</a>\n";
+        $r .= "<div id=\"basicltiDebug\" style=\"display:none\">\n";
+        $r .=  "<b>".get_string("basiclti_endpoint","basiclti")."</b><br/>\n";
+        $r .= $endpoint . "<br/>\n&nbsp;<br/>\n";
+        $r .=  "<b>".get_string("basiclti_parameters","basiclti")."</b><br/>\n";
+        foreach($newparms as $key => $value ) {
+            $key = htmlspecialchars($key);
+            $value = htmlspecialchars($value);
+            $r .= "$key = $value<br/>\n";
+        }
+        $r .= "&nbsp;<br/>\n";
+        $r .= "<p><b>".get_string("basiclti_base_string","basiclti")."</b><br/>\n".$last_base_string."</p>\n";
+        $r .= "</div>\n";
+    }
+    $r .= "</form>\n";
+    if ( $iframeattr ) {
+        $r .= "<iframe name=\"basicltiLaunchFrame\"  id=\"basicltiLaunchFrame\" src=\"\"\n";
+        $r .= $iframeattr . ">\n<p>".get_string("frames_required","basiclti")."</p>\n</iframe>\n";
+    }
+    if ( ! $debug ) {
+        $ext_submit = "ext_submit";
+        $ext_submit_text = $submit_text;
+        $r .= " <script type=\"text/javascript\"> \n" .
+            "  //<![CDATA[ \n" .
+            "    document.getElementById(\"ltiLaunchForm\").style.display = \"none\";\n" .
+            "    nei = document.createElement('input');\n" .
+            "    nei.setAttribute('type', 'hidden');\n" .
+            "    nei.setAttribute('name', '".$ext_submit."');\n" .
+            "    nei.setAttribute('value', '".$ext_submit_text."');\n" .
+            "    document.getElementById(\"ltiLaunchForm\").appendChild(nei);\n" .
+            "    document.ltiLaunchForm.submit(); \n" .
+            "  //]]> \n" .
+            " </script> \n";
+    }
+    $r .= "</div>\n";
+    return $r;
+}
+
+/* This is a bit of homage to Moodle's pattern of internationalisation */
+function get_string($key,$bundle) {
+    return $key;
+}
+
+function do_post_request($url, $data, $optional_headers = null)
+{
+  $params = array('http' => array(
+              'method' => 'POST',
+              'content' => $data
+            ));
+  if ($optional_headers !== null) {
+    $params['http']['header'] = $optional_headers;
+  }
+  $ctx = stream_context_create($params);
+  $fp = @fopen($url, 'rb', false, $ctx);
+  if (!$fp) {
+    throw new Exception("Problem with $url, $php_errormsg");
+  }
+  $response = @stream_get_contents($fp);
+  if ($response === false) {
+    throw new Exception("Problem reading data from $url, $php_errormsg");
+  }
+  return $response;
+}
+
diff --git a/docs/mods/_standard/basiclti/launch/launch.php b/docs/mods/_standard/basiclti/launch/launch.php
new file mode 100644 (file)
index 0000000..cd6746b
--- /dev/null
@@ -0,0 +1,120 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+
+
+function loadError($message) {
+    print $message;
+    exit();
+}
+
+$cid = intval($_GET['cid']);
+
+$content_id = $cid;
+$member_id = $_SESSION['member_id'];
+require("loadrows.php");
+$course_id = $atutor_content_row['course_id'];
+// echo("basiclti_content_row<br/>\n");print_r($basiclti_content_row); echo("<hr>\n");
+// echo("basiclti_tool_row<br/>\n");print_r($basiclti_tool_row); echo("<hr>\n");
+// echo("atutor_content_row<br/>\n");print_r($atutor_content_row); echo("<hr>\n");
+// echo("atutor_course_row<br/>\n");print_r($atutor_course_row); echo("<hr>\n");
+// echo("atutor_member_row<br/>\n");print_r($atutor_member_row); echo("<hr>\n");
+// echo("atutor_course_membership_row<br/>\n");print_r($atutor_course_membership_row); echo("<hr>\n");
+
+    $lmsdata = array(
+      "resource_link_id" => $cid,
+      "resource_link_title" => $atutor_content_row['title'],
+      "resource_link_description" => $atutor_content_row['text'],
+      "user_id" => $atutor_member_row['member_id'],
+      "roles" => "Learner",
+      "launch_presentation_locale" => $_SESSION['lang'],
+      "context_id" => $atutor_course_row['course_id'],
+      "context_title" => $atutor_course_row['title'],
+      "context_label" => $atutor_course_row['title'],
+      );
+
+    $lmsdata['ext_lms'] = 'ATutor';
+
+    if ( $atutor_course_membership_row['role'] == 'Instructor' ) {
+        $lmsdata["roles"] = 'Instructor';
+    }
+
+    if ( $_SESSION['is_admin'] == 1 ) {
+        $lmsdata["roles"] = 'Instructor';
+    }
+
+    if ( $basiclti_tool_row['sendemailaddr'] == 1 ||
+         ( $basiclti_tool_row['sendemailaddr'] == 2 && $basiclti_content_row['sendemailaddr'] == 1 ) ) {
+        $lmsdata["lis_person_contact_email_primary"] = $atutor_member_row['email'];
+    }
+
+    if ( $basiclti_tool_row['sendname'] == 1 ||
+         ( $basiclti_tool_row['sendname'] == 2 && $basiclti_content_row['sendname'] == 1 ) ) {
+        $lmsdata["lis_person_name_family"] = $atutor_member_row['last_name'];
+        $lmsdata["lis_person_name_given"] = $atutor_member_row['first_name'];
+    }
+
+    $placementsecret = $basiclti_content_row['placementsecret'];
+    $sourcedid = false;
+    if ( isset($placementsecret) && strlen($placementsecret) > 0 ) {
+        $suffix = ':::' . $atutor_member_row['member_id'] . ':::' . $cid;
+        $plaintext = $placementsecret . $suffix;
+        $hashsig = hash('sha256', $plaintext, false);
+        $sourcedid = $hashsig . $suffix;
+    }
+
+    if ( $sourcedid !== false  &&
+         ( $basiclti_tool_row['acceptgrades'] == 1 && $basiclti_content_row['gradebook_test_id'] != 0 ) ) {
+        $lmsdata["lis_result_sourcedid"] = $sourcedid;
+        $lmsdata["ext_ims_lis_basic_outcome_url"] = AT_BASE_HREF.'mods/_standard/basiclti/launch/service.php';
+    }
+
+    if ( $sourcedid !== false  &&
+         ( $basiclti_tool_row['allowroster'] == 1 ||
+         ( $basiclti_tool_row['allowroster'] == 2 && $basiclti_content_row['allowroster'] == 1 ) ) ) {
+        $lmsdata["ext_ims_lis_memberships_id"] = $sourcedid;
+        $lmsdata["ext_ims_lis_memberships_url"] = AT_BASE_HREF.'mods/_standard/basiclti/launch/service.php';
+    }
+
+    if ( $sourcedid !== false  &&
+         ( $basiclti_tool_row['allowsetting'] == 1 ||
+         ( $basiclti_tool_row['allowsetting'] == 2 && $basiclti_content_row['allowsetting'] == 1 ) ) ) {
+        $lmsdata["ext_ims_lti_tool_setting_id"] = $sourcedid;
+        $lmsdata["ext_ims_lti_tool_setting_url"] = AT_BASE_HREF.'mods/_standard/basiclti/launch/service.php';
+        $setting = $basiclti_content_row['setting'];
+        if ( isset($setting) ) {
+             $lmsdata["ext_ims_lti_tool_setting"] = $setting;
+        }
+    }
+
+require_once("ims-blti/blti_util.php");
+
+    if ( strlen($basiclti_tool_row['customparameters']) > 0 ) {
+        $lmsdata = merge_custom_parameters($lmsdata,$basiclti_tool_row['customparameters']);
+    }
+    if ( $basiclti_tool_row['customparameters'] == 1 && strlen($basiclti_content_row['customparameters']) > 0 ) {
+        $lmsdata = merge_custom_parameters($lmsdata,$basiclti_content_row['customparameters']);
+    }
+
+// print_r($lmsdata);echo("<hr>\n");
+
+$parms = $lmsdata;
+
+$endpoint = $basiclti_tool_row['toolurl'];
+$key = $basiclti_tool_row['resourcekey'];
+$secret = $basiclti_tool_row['password'];
+
+  $parms = signParameters($parms, $endpoint, "POST", $key, $secret, "Press to Launch", $tool_consumer_instance_guid, $tool_consumer_instance_description);
+
+  $debuglaunch = false;
+  if ( ( $basiclti_tool_row['debuglaunch'] == 1 ||
+       ( $basiclti_tool_row['debuglaunch'] == 2 && $basiclti_content_row['debuglaunch'] == 1 ) ) ) {
+    $debuglaunch = true;
+  }
+
+  $content = postLaunchHTML($parms, $endpoint, $debuglaunch);
+
+  print($content);
+
+
+?>
diff --git a/docs/mods/_standard/basiclti/launch/loadrows.php b/docs/mods/_standard/basiclti/launch/loadrows.php
new file mode 100644 (file)
index 0000000..2ddc05b
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+// Needs $content_id and $member_id for the BasicLTI placement 
+$sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_content
+                WHERE content_id=".$content_id;
+$instanceresult = mysql_query($sql, $db);
+$basiclti_content_row = mysql_fetch_assoc($instanceresult);
+if ( ! $basiclti_content_row ) {
+    loadError("Not Configured\n");
+    exit;
+}
+// echo("basiclti_content_row<br/>\n");print_r($basiclti_content_row); echo("<hr>\n");
+
+$toolid = $basiclti_content_row['toolid'];
+$sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_tools
+                WHERE toolid='".$toolid."'";
+$contentresult = mysql_query($sql, $db);
+$basiclti_tool_row = mysql_fetch_assoc($contentresult);
+if ( ! $basiclti_tool_row ) {
+    loadError("Tool definition missing\n");
+    exit;
+}
+// echo("basiclti_tool_row<br/>\n");print_r($basiclti_tool_row); echo("<hr>\n");
+
+$sql = "SELECT * FROM ".TABLE_PREFIX."content
+                WHERE content_id=".$content_id;
+$contentresult = mysql_query($sql, $db);
+$atutor_content_row = mysql_fetch_assoc($contentresult);
+if ( ! $atutor_content_row ) {
+    loadError("Not Configured\n");
+    exit;
+}
+// echo("atutor_content_row<br/>\n");print_r($atutor_content_row); echo("<hr>\n");
+
+$sql = "SELECT * FROM ".TABLE_PREFIX."courses
+                WHERE course_id='".$atutor_content_row['course_id']."'";
+$courseresult = mysql_query($sql, $db);
+$atutor_course_row = mysql_fetch_assoc($courseresult);
+if ( ! $atutor_course_row ) {
+    loadError("Course definition missing\n");
+    exit;
+}
+// echo("atutor_course_row<br/>\n");print_r($atutor_course_row); echo("<hr>\n");
+
+$sql = "SELECT * FROM ".TABLE_PREFIX."course_enrollment
+                WHERE member_id='".$member_id."'";
+$enrollresult = mysql_query($sql, $db);
+$atutor_course_enrollment_row = mysql_fetch_assoc($enrollresult);
+if ( ! $atutor_course_enrollment_row ) {
+    loadError("Course enrollment missing\n");
+    exit;
+}
+// echo("atutor_course_enrollment_row<br/>\n");print_r($atutor_course_enrollment_row); echo("<hr>\n");
+
+$sql = "SELECT * FROM ".TABLE_PREFIX."members
+                WHERE member_id='".$member_id."'";
+$memberresult = mysql_query($sql, $db);
+$atutor_member_row = mysql_fetch_assoc($memberresult);
+if ( ! $atutor_member_row ) {
+    loadError("Course definition missing\n");
+    exit;
+}
+// echo("atutor_member_row<br/>\n");print_r($atutor_member_row); echo("<hr>\n");
+
+?>
diff --git a/docs/mods/_standard/basiclti/launch/service.php b/docs/mods/_standard/basiclti/launch/service.php
new file mode 100644 (file)
index 0000000..1d59f14
--- /dev/null
@@ -0,0 +1,336 @@
+<?php
+
+define('AT_INCLUDE_PATH', '../../../include/');
+require(AT_INCLUDE_PATH.'config.inc.php');
+require_once(AT_INCLUDE_PATH.'lib/mysql_connect.inc.php');
+
+    require_once("ims-blti/OAuth.php");
+    require_once("TrivialStore.php");
+
+error_reporting(E_ALL & ~E_NOTICE);
+ini_set("display_errors", 1);
+
+    function message_response($major, $severity, $minor=false, $message=false, $xml=false) {
+        $lti_message_type = $_REQUEST['lti_message_type'];
+        $retval = '<?xml version="1.0" encoding="UTF-8"?>'."\n" .
+        "<message_response>\n" .
+        "  <lti_message_type>$lti_message_type</lti_message_type>\n" .
+        "  <statusinfo>\n" .
+        "     <codemajor>$major</codemajor>\n" .
+        "     <severity>$severity</severity>\n";
+        if ( ! $codeminor === false ) $retval = $retval .  "     <codeminor>$minor</codeminor>\n";
+       $retval = $retval . 
+        "     <description>$message</description>\n" .
+        "  </statusinfo>\n";
+        if ( ! $xml === false ) $retval = $retval . $xml;
+        $retval = $retval . "</message_response>\n";
+       return $retval;
+    }
+
+    function doError($message) {
+        print message_response('Fail', 'Error', false, $message);
+        exit();
+    }
+
+    $lti_version = $_REQUEST['lti_version'];
+    if ( $lti_version != "LTI-1p0" ) doError("Improperly formed message");
+
+    $lti_message_type = $_REQUEST['lti_message_type'];
+    if ( ! isset($lti_message_type) ) doError("Improperly formed message");
+
+    $message_type = false;
+    if( $lti_message_type == "basic-lis-replaceresult" ||
+        $lti_message_type == "basic-lis-createresult" ||
+        $lti_message_type == "basic-lis-updateresult" ||
+        $lti_message_type == "basic-lis-deleteresult" ||
+        $lti_message_type == "basic-lis-readresult" ) {
+          $sourcedid = $_REQUEST['sourcedid'];
+          $message_type = "basicoutcome";
+    } else if ( $lti_message_type == "basic-lti-loadsetting" ||
+        $lti_message_type == "basic-lti-savesetting" ||
+        $lti_message_type == "basic-lti-deletesetting" ) {
+          $sourcedid = $_REQUEST['id'];
+          $message_type = "toolsetting";
+    } else if ( $lti_message_type == "basic-lis-readmembershipsforcontext") {
+          $sourcedid = $_REQUEST['id'];
+          $message_type = "roster";
+    }
+
+    if ( $message_type == false ) {
+        doError("Illegal lti_message_type");
+    }
+
+    if ( !isset($sourcedid) ) {
+        doError("sourcedid missing");
+    }
+    // Truncate to maximum length
+    $sourcedid = substr($sourcedid, 0, 2048);
+
+    try {
+        $info = explode(':::',$sourcedid);
+        if ( ! is_array($info) ) doError("Bad sourcedid");
+        $signature = $info[0];
+        $userid = intval($info[1]);
+        $placement = $info[2];
+    }
+    catch(Exception $e) {
+        doError("Bad sourcedid");
+    }
+
+    if ( isset($signature) && isset($userid) && isset($placement) ) {
+        // OK
+    } else {
+        doError("Bad sourcedid");
+    }
+
+function loadError($msg) {
+   doError($msg);
+}
+
+$content_id = $placement;
+$member_id = $userid;
+require("loadrows.php");
+$course_id = $atutor_content_row['course_id'];
+// echo("basiclti_content_row<br/>\n");print_r($basiclti_content_row); echo("<hr>\n");
+// echo("basiclti_tool_row<br/>\n");print_r($basiclti_tool_row); echo("<hr>\n");
+// echo("atutor_content_row<br/>\n");print_r($atutor_content_row); echo("<hr>\n");
+// echo("atutor_course_row<br/>\n");print_r($atutor_course_row); echo("<hr>\n");
+// These two might not be important here
+// echo("atutor_member_row<br/>\n");print_r($atutor_member_row); echo("<hr>\n");
+// echo("atutor_course_membership_row<br/>\n");print_r($atutor_course_membership_row); echo("<hr>\n");
+
+    if ( $message_type == "basicoutcome" ) {
+        if ( $basiclti_tool_row['acceptgrades'] == 1 && $basiclti_content_row['gradebook_test_id'] > 0 ) {
+            // The placement is configured to accept grades
+        } else { 
+            doError("Not permitted");
+        }
+    } else if ( $message_type == "roster" ) {
+        if ( $basiclti_tool_row['allowroster'] == 1 ||
+           ( $basiclti_tool_row['allowroster'] == 2 && $basiclti_content_row['allowroster'] == 1 ) ) {
+            // OK
+        } else { 
+            doError("Not permitted");
+        }
+    } else if ( $message_type == "toolsetting" ) {
+        if  ( $basiclti_tool_row['allowsetting'] == 1 ||
+            ( $basiclti_tool_row['allowsetting'] == 2 && $basiclti_content_row['allowsetting'] == 1 ) ) {
+            // OK
+        } else { 
+            doError("Not permitted");
+        }
+    }
+
+    // Retrieve the secret we use to sign lis_result_sourcedid
+    $placementsecret = $basiclti_content_row['placementsecret'];
+    $oldplacementsecret = $basiclti_content_row['oldplacementsecret'];
+    if ( ! isset($placementsecret) ) doError("Not permitted");
+
+    $suffix = ':::' . $userid . ':::' . $placement;
+    $plaintext = $placementsecret . $suffix;
+    $hashsig = hash('sha256', $plaintext, false);
+    if ( $hashsig != $signature && isset($oldplacementsecret) && strlen($oldplacementsecret) > 1 ) {
+        $plaintext = $oldplacementsecret . $suffix;
+        $hashsig = hash('sha256', $plaintext, false);
+    }
+        
+    if ( $hashsig != $signature ) {
+        doError("Invalid sourcedid");
+    }
+
+    // Check the OAuth Signature 
+    $oauth_consumer_key = $basiclti_tool_row['resourcekey'];
+    $oauth_secret = $basiclti_tool_row['password'];
+
+    if ( ! isset($oauth_secret) ) doError("Not permitted");
+    if ( ! isset($oauth_consumer_key) ) doError("Not permitted");
+
+    // Verify the message signature
+    $store = new TrivialOAuthDataStore();
+    $store->add_consumer($oauth_consumer_key, $oauth_secret);
+
+    $server = new OAuthServer($store);
+
+    $method = new OAuthSignatureMethod_HMAC_SHA1();
+    $server->add_signature_method($method);
+    $request = OAuthRequest::from_request();
+
+    $basestring = $request->get_signature_base_string();
+
+    try {
+        $server->verify_request($request);
+    } catch (Exception $e) {
+        doError($e->getMessage());
+    }
+
+    // Beginning of actual grade processing
+    if ( $message_type == "basicoutcome" ) {
+        if ( ! isset( $basiclti_content_row['gradebook_test_id'] ) ) {
+            doError("Not permitted");
+        }
+
+        // TODO: Greg - Is this appropriate?  It would be nice to allow this.
+        if ( $atutor_course_membership_row['role'] == 'Instructor' ) {
+            doError('Grades not supported for instructors');
+        }
+
+        $gradebook_test_id = $basiclti_content_row['gradebook_test_id'];
+
+        // Check to see if this grade is in this course and member is in this course
+       // And that this grade item is of the right type
+        $sql = 'SELECT role,m.member_id AS member_id,first_name,last_name,email 
+            FROM  '.TABLE_PREFIX.'gradebook_tests AS g
+            JOIN  '.TABLE_PREFIX.'course_enrollment AS e
+            JOIN  '.TABLE_PREFIX.'members AS m 
+            ON g.course_id = e.course_id AND e.member_id = m.member_id 
+            WHERE e.course_id = '.$course_id.' AND m.member_id ='.$member_id.'
+            AND g.gradebook_test_id = '.$gradebook_test_id."
+            AND g.type = 'External' and g.grade_scale_id = 0";
+        $gradebook_result = mysql_query($sql, $db);
+        $count = mysql_num_rows($gradebook_result);
+        if ( $count < 1 ) {
+            doError("Not gradable");
+        }
+
+        $read_sql = 'SELECT d.grade AS grade
+            FROM  '.TABLE_PREFIX.'gradebook_detail AS d
+            JOIN  '.TABLE_PREFIX.'gradebook_tests AS g
+            JOIN  '.TABLE_PREFIX.'course_enrollment AS e
+            JOIN  '.TABLE_PREFIX.'members AS m 
+            ON d.gradebook_test_id = g.gradebook_test_id 
+            AND g.course_id = e.course_id AND e.member_id = m.member_id 
+            WHERE e.course_id = '.$course_id.' AND d.member_id ='.$member_id.'
+            AND g.gradebook_test_id = '.$gradebook_test_id."
+            AND g.type = 'External' and g.grade_scale_id = 0";
+
+        if ( $lti_message_type == "basic-lis-readresult" ) {
+            $grade_result = mysql_query($read_sql, $db);
+            $count = mysql_num_rows($gradebook_result);
+            if ( $count < 1 ) {
+                doError("Not gradable");
+            }
+            unset($grade);
+            $grade_row = mysql_fetch_assoc($grade_result);
+            if ( $grade_row === false ) {
+                // Skip
+            } else if ( isset($grade_row['grade']) ) { 
+                $grade = $grade_row['grade'];
+            }
+
+            if ( ! isset($grade) ) {
+                doError("Unable to read grade");
+            }
+               
+            $result = "  <result>\n" .
+                "     <resultscore>\n" .
+                "        <textstring>" .
+                htmlspecialchars($grade*1.0) .
+                "</textstring>\n" .
+                "     </resultscore>\n" .
+                "  </result>\n";
+            print message_response('Success', 'Status', false, "Grade read", $result);
+            exit();
+       }
+    
+        if ( $lti_message_type == "basic-lis-deleteresult" ) {
+            $delete_sql = 'DELETE FROM '.TABLE_PREFIX.'gradebook_detail 
+                WHERE member_id ='.$member_id.'
+                AND gradebook_test_id = '.$gradebook_test_id;
+
+            $gradebook_result = mysql_query($delete_sql, $db);
+            if ( $gradebook_result === false ) {
+                doError("Could not delete grade");
+            }
+            print message_response('Success', 'Status', 'fullsuccess', 'Grade deleted');
+
+        } else { // Replace
+            $gradeval = -1.0;
+            if ( isset($_REQUEST['result_resultscore_textstring']) && strlen($_REQUEST['result_resultscore_textstring']) > 0) {
+               $gradeval = floatval($_REQUEST['result_resultscore_textstring']);
+            } 
+            if ( $gradeval < 0.0 || $gradeval > 1.0 ) {
+                doError('Invalid Grade');
+            }
+
+            // TODO: Greg - do we do Insert or Update?
+            $replace_sql = 'INSERT INTO '.TABLE_PREFIX.'gradebook_detail 
+                (gradebook_test_id, member_id, grade) VALUES
+                ('.$gradebook_test_id.','.$member_id.','.$gradeval.')
+                ON DUPLICATE KEY UPDATE grade='.$gradeval;
+
+            $gradebook_result = mysql_query($replace_sql, $db);
+            if ( $gradebook_result === false ) {
+                // TODO: Log message would be good here
+                doError("Could not store grade");
+            }
+            print message_response('Success', 'Status', 'fullsuccess', 'Grade updated');
+        }
+    
+
+    } else if ( $lti_message_type == "basic-lti-loadsetting" ) {
+        $xml = "  <setting>\n" .
+               "     <value>".htmlspecialchars($basiclti_content_row['setting'])."</value>\n" .
+               "  </setting>\n";
+        print message_response('Success', 'Status', 'fullsuccess', 'Setting retrieved', $xml);
+    } else if ( $lti_message_type == "basic-lti-savesetting" ) {
+        $setting = $_REQUEST['setting'];
+        if ( ! isset($setting) ) doError('Missing setting value');
+        // $sql = "UPDATE {$CFG->prefix}basiclti SET 
+               // setting='". mysql_escape_string($setting) . "' WHERE id=" . $basiclti->id;
+        $sql = "UPDATE ".TABLE_PREFIX."basiclti_content
+               SET setting='". mysql_escape_string($setting) . "' WHERE content_id=" . $placement;
+        $success = mysql_query($sql);
+        if ( $success ) {
+            print message_response('Success', 'Status', 'fullsuccess', 'Setting updated');
+        } else {
+            doError("Error updating setting");
+        }
+    } else if ( $lti_message_type == "basic-lti-deletesetting" ) {
+        $sql = "UPDATE ".TABLE_PREFIX."basiclti_content
+               SET setting='' WHERE content_id=" . $placement;
+        $success = mysql_query($sql);
+        if ( $success ) {
+            print message_response('Success', 'Status', 'fullsuccess', 'Setting deleted');
+        } else {
+            doError("Error updating setting");
+        }
+    } else if ( $message_type == "roster" ) {
+        $sql = 'SELECT role,m.member_id AS member_id,first_name,last_name,email 
+            FROM  '.TABLE_PREFIX.'course_enrollment AS e
+            JOIN  '.TABLE_PREFIX.'members AS m ON e.member_id = m.member_id 
+            WHERE course_id = '.$course_id;
+        $roster_result = mysql_query($sql, $db);
+        $xml = "  <memberships>\n";
+        while ($row = mysql_fetch_assoc($roster_result)) {
+            $role = "Learner";
+            if ( $row['role'] == 'Instructor' ) $role = 'Instructor';
+            $userxml = "    <member>\n".
+                       "      <user_id>".htmlspecialchars($row['member_id'])."</user_id>\n".
+                       "      <roles>$role</roles>\n";
+            if ( $basiclti_tool_row['sendname'] == 1 ||
+                 ( $basiclti_tool_row['sendname'] == 2 && $basiclti_content_row['sendname'] == 1 ) ) {
+                if ( isset($row['first_name']) ) $userxml .=  "      <person_name_given>".htmlspecialchars($row['first_name'])."</person_name_given>\n";
+                if ( isset($row['last_name']) ) $userxml .=  "      <person_name_family>".htmlspecialchars($row['last_name'])."</person_name_family>\n";
+            }
+            if ( $basiclti_tool_row['sendemailaddr'] == 1 ||
+                 ( $basiclti_tool_row['sendemailaddr'] == 2 && $basiclti_content_row['sendemailaddr'] == 1 ) ) {
+                if ( isset($row['email']) ) $userxml .=  "      <person_contact_email_primary>".htmlspecialchars($row['email'])."</person_contact_email_primary>\n";
+            }
+            if ( isset($placementsecret) ) {
+                $suffix = ':::' . $row['member_id'] . ':::' . $placement;
+                $plaintext = $placementsecret . $suffix;
+                $hashsig = hash('sha256', $plaintext, false);
+                $sourcedid = $hashsig . $suffix;
+            }
+            if ( $basiclti_tool_row['acceptgrades'] == 1 && $basiclti_content_row['gradebook_test_id'] > 0 ) {
+                if ( isset($sourcedid) ) $userxml .=  "      <lis_result_sourcedid>".htmlspecialchars($sourcedid)."</lis_result_sourcedid>\n";
+            }
+            $userxml .= "    </member>\n";
+            $xml .= $userxml;
+        }
+        $xml .= "  </memberships>\n";
+        print message_response('Success', 'Status', 'fullsuccess', 'Roster retreived', $xml);
+
+    }
+    
+?>
diff --git a/docs/mods/_standard/basiclti/lib/at_form_util.php b/docs/mods/_standard/basiclti/lib/at_form_util.php
new file mode 100644 (file)
index 0000000..cdab05b
--- /dev/null
@@ -0,0 +1,333 @@
+<?php
+
+// Parse a form field description
+// field:type:key=value:key2=value2
+function parseFormString($str) { 
+    $op = array(); 
+    $pairs = explode(":", $str); 
+    foreach ($pairs as $pair) { 
+        $kv = explode("=", $pair);
+       if ( sizeof($kv) == 1 ) {
+            $op[] = $pair;
+        } else {
+            $op[$kv[0]] = $kv[1];
+       }
+    } 
+    return $op; 
+} 
+
+// Filter a form definition based on a controlling row.
+//
+// The controlling row has fields that are interpreted as
+// 0=force off, 1=force on, 2 = delegate setting
+// For radio buttons in our form, it simply checks for 
+// the field of the same name in the controlling row.  
+// For non-radio fields, it looks for a field in the 
+// controlling row prepended by 'allow'.
+function filterForm($control_row, $fieldinfo)
+{
+    $new_form = array();
+    foreach ($fieldinfo as $line) {
+       $fields = parseFormString($line);
+       if ( $fields[1] == 'radio' ) {
+           if ( $control_row[$fields[0]] == 2 ) $new_form[] = $line;
+       }
+       // See if a non-radio field is controlled by an allow field
+       $allowfield = 'allow'.$fields[0];
+       if ( isset( $control_row[$allowfield] ) ) {
+           if ( $control_row[$allowfield] == 1 ) $new_form[] = $line;
+       }
+    }
+    return $new_form;
+}
+
+function at_form_input($row,$fieldinfo)
+{
+    $info = parseFormString($fieldinfo);
+    if ( isset($info[0]) ) $field = $info[0]; else return;
+    if ( isset($info[1]) ) $type = $info[1]; else return;
+    $label = $field;
+    if ( isset($info['label']) ) $label = $info['label'];
+    $required = isset($info['required']);
+
+    if ( $type == 'text' || $type == 'url' || $type == 'id' || $type == 'integer' ) { 
+        $size = isset($info['size']) ? $info['size'] : 40; ?>
+        <div class="row">
+                <?php if ($required) { ?><span class="required" title="<?php echo _AT('required_field'); ?>">*</span><?php } ?><label for="<?php echo $field;?>"><?php echo _AT($label); ?></label><br />
+                <input type="text" id="<?php echo $field;?>" name="<?php echo $field;?>" size="<?php echo $size;?>" value="<?php echo htmlspecialchars($row[$field]); ?>" />
+        </div>
+    <?php }
+    else if ( $type == 'textarea' ) {
+        $cols = isset($info['cols']) ? $info['cols'] : 25;
+        $rows = isset($info['rows']) ? $info['rows'] : 2; ?>
+        <div class="row">
+                <?php if ($required) { ?><span class="required" title="<?php echo _AT('required_field'); ?>">*</span><?php } ?><label for="<?php echo $field;?>"><?php echo _AT($label); ?></label><br />
+                <textarea id="<?php echo $field;?>" name="<?php echo $field;?>" cols="<?php echo $cols;?>" rows="<?php echo $rows;?>"><?php echo htmlspecialchars($row[$field]); ?></textarea>
+        </div>
+    <?php }
+    else if ( $type == 'radio' ) {
+        if ( isset($info['choices']) ) {
+            $choices = explode(',', $info['choices']);
+        } else {
+            echo('<!-- at_form_radio requires choices=on,off,part -->');
+            return;
+        }
+        $current = isset($row[$field]) ? $row[$field] : -1;
+        ?>
+        <div class="row">
+            <?php if ($required) { ?><span class="required" title="<?php echo _AT('required_field'); ?>">*</span><?php } ?><label for="<?php echo $field;?>"><?php echo _AT($label); ?></label><br />
+<?php
+foreach($choices as $key => $value ) { 
+$checked = '';
+if ( $key == $current ) $checked = ' checked="checked"';
+?>
+                <label><input type="radio" name="<?php echo $field; ?>" value="<?php echo $key?>" id="<?php echo $field.'_'.$value;?>"<?php echo $checked; ?>/><?php echo _AT($label.'_'.$value); ?></label><br />
+<?php } ?>
+        </div>
+<?php
+    }
+}
+
+function at_form_generate($row, $form_definition) {
+    foreach ( $form_definition as $forminput ) {
+      at_form_input($row,$forminput);
+    }
+}
+
+
+function at_form_output($row,$fieldinfo)
+{
+    $info = parseFormString($fieldinfo);
+    if ( isset($info[0]) ) $field = $info[0]; else return;
+    if ( isset($info[1]) ) $type = $info[1]; else return;
+    $label = $field;
+    if ( isset($info['label']) ) $label = $info['label'];
+
+    if ( $type == 'text' || $type == 'url' || $type == 'id' || $type == 'integer' || $type == 'textarea') { 
+        if ( strlen($row[$field]) < 1 ) return; ?>
+        <div class="row">
+                <?php  echo _AT($label); ?><br/>
+                <?php echo htmlspecialchars($row[$field]); ?>
+        </div>
+    <?php }
+    else if ( $type == 'radio' ) {
+        if ( isset($info['choices']) ) {
+            $choices = explode(',', $info['choices']);
+        } else {
+            echo('<!-- at_form_radio requires choices=on,off,part -->');
+            return;
+        }
+        $current = isset($row[$field]) ? $row[$field] : 0;
+        if ( $current < 0 || $current >= sizeof($choices) ) $current = 0;
+        ?>
+        <div class="row"> <?php
+            $value = $choices[$current];
+            echo _AT($label)."<br/>\n";
+            echo _AT($label.'_'.$value); ?>
+        </div>
+<?php
+    }
+}
+
+function at_form_view($row, $form_definition) {
+    foreach ( $form_definition as $forminput ) {
+      at_form_output($row,$forminput);
+    }
+}
+
+function at_form_validate($form_definition, $msg ) {
+    $retval = true;
+    $missing_fields = array();
+    $numeric_fields = array();
+    $url_fields = array();
+    $id_fields = array();
+
+    foreach ( $form_definition as $forminput ) {
+        $info =  parseFormString($forminput);
+        $label = isset($info['label']) ? $info['label'] : $info[0];
+        $datafield = $_POST[$info[0]];
+        $datafield = trim($datafield);
+        // echo($info[0] . '=' . $datafield. "<br/>\n");
+        if ( isset($info['required']) && strlen($datafield) < 1 ) {
+           $missing_fields[] = _AT($label);
+        }
+        if ( $info[1] == 'integer' || $info[1] == 'radio') {
+            if ( preg_match("/[0-9]+/", $datafield) == 1 || strlen($datafield) == 0 ) {
+                // OK
+            } else {
+                $numeric_fields[] = _AT($label);
+            }
+        }
+        if ( $info[1] == 'id' ) {
+            if ( preg_match("/^[0-9a-zA-Z._-]*$/", $datafield) == 1 || strlen($datafield) == 0 ) {
+                // OK
+            } else {
+                $id_fields[] = _AT($label);
+            }
+        }
+        if ( $info[1] == 'url' ) {
+           $pattern = "'^(http://|https://)[a-z0-9][a-z0-9]*'";
+            if ( preg_match($pattern, $datafield) == 1 || strlen($datafield) == 0 ) {
+                // OK
+            } else {
+                $url_fields[] = _AT($label);
+            }
+        }
+    }
+    if (sizeof($missing_fields) > 0) {
+        $missing_fields = implode(', ', $missing_fields);
+        $msg->addError(array('EMPTY_FIELDS', $missing_fields));
+        $retval = false;
+    }
+    if (sizeof($numeric_fields) > 0) {
+        $numeric_fields = implode(', ', $numeric_fields);
+        // TODO: Make sure this prints out the list of fields
+        $msg->addError(array('NUMERIC_FIELDS', $numeric_fields));
+        $msg->addError($numeric_fields);
+        $retval = false;
+    }
+    if (sizeof($url_fields) > 0) {
+        $url_fields = implode(', ', $url_fields);
+        $msg->addError(array('URL_FIELDS', $url_fields));
+        $retval = false;
+    }
+    if (sizeof($id_fields) > 0) {
+        $id_fields = implode(', ', $id_fields);
+        $msg->addError(array('ID_FIELDS', $id_fields));
+        $retval = false;
+    }
+    return $retval;
+}
+
+function at_get_field_value($fieldvalue, $type = false) {
+    if ( $fieldvalue === false ) {
+       $fieldvalue = 'NULL';
+    } else if ( is_int($fieldvalue) ) {
+       $fieldvalue = $fieldvalue.'';
+    } else if ( $type == 'radio' || $type == 'integer') {
+        if ( strlen($fieldvalue) < 1 ) $fieldvalue = '0';
+    } else {
+        $fieldvalue = "'".mysql_real_escape_string($fieldvalue)."'";
+    }
+    return $fieldvalue;
+}
+
+// $overrides = array('course_id' => 12, "title" => "yo", "toolid" => false);
+// false in the array becomes NULL in the database
+function at_form_insert($row, $form_definition, $overrides=false) {
+    $fieldlist = "";
+    $valuelist = "";
+    $handled = array();
+    foreach ( $form_definition as $forminput ) {
+        $info =  parseFormString($forminput);
+        $fieldname = $info[0]; 
+        $type = $info[1]; 
+        $fieldvalue = null;
+        if ( is_array($overrides) && isset($overrides[$fieldname]) ) $fieldvalue = $overrides[$fieldname];
+        if ( ! isset($fieldvalue) ) $fieldvalue = $row[$fieldname];
+        if ( ! isset($fieldvalue) ) continue;
+        $fieldvalue = trim($fieldvalue);
+        if ( strlen($fieldvalue) < 1 ) continue;
+        $fieldvalue = at_get_field_value($fieldvalue, $type);
+        $handled[] = $fieldname;
+        if ( $fieldlist != "" ) $fieldlist = $fieldlist.", ";
+        if ( $valuelist != "" ) $valuelist = $valuelist.", ";
+        $fieldlist = $fieldlist.$fieldname;
+        $valuelist = $valuelist.$fieldvalue;
+      }
+      if ( is_array($overrides) ) foreach($overrides as $fieldname => $fieldvalue) {
+        if ( in_array ( $fieldname , $handled) ) continue;
+        $fieldvalue = at_get_field_value($fieldvalue);
+        if ( $fieldlist != "" ) $fieldlist = $fieldlist.", ";
+        if ( $valuelist != "" ) $valuelist = $valuelist.", ";
+        $fieldlist = $fieldlist.$fieldname;
+        $valuelist = $valuelist.$fieldvalue;
+      }
+      $sql = "( $fieldlist ) VALUES ( $valuelist )";
+      return $sql;
+}
+
+function at_form_update($row, $form_definition, $overrides=false) {
+    $setlist = "";
+    $handled = array();
+    foreach ( $form_definition as $forminput ) {
+        $info =  parseFormString($forminput);
+        $fieldname = $info[0]; 
+        $type = $info[1]; 
+        $fieldvalue = null;
+        if ( is_array($overrides) && isset($overrides[$fieldname]) ) $fieldvalue = $overrides[$fieldname];
+        if ( ! isset($fieldvalue) ) $fieldvalue = $row[$info[0]];
+        if ( ! isset($fieldvalue) ) $fieldvalue = '';
+        $fieldvalue = trim($fieldvalue);
+        $fieldvalue = at_get_field_value($fieldvalue, $type);
+        if ( $setlist != "" ) $setlist = $setlist.", ";
+        $setlist = $setlist.$fieldname." = ".$fieldvalue;
+    }
+    if ( is_array($overrides) ) foreach($overrides as $fieldname => $fieldvalue) {
+        if ( in_array ( $fieldname , $handled) ) continue;
+        $fieldvalue = at_get_field_value($fieldvalue);
+        if ( $setlist != "" ) $setlist = $setlist.", ";
+        $setlist = $setlist.$fieldname." = ".$fieldvalue;
+    }
+    return $setlist;
+}
+
+function foorm_i18n_util($fieldinfo) {
+    $strings = array();
+    foreach ($fieldinfo as $line) {
+       $info = parseFormString($line);
+       $label = $info[0];
+       if ( isset($info['label']) ) $label = $info['label'];
+       $strings[] = $label;
+       if ( $info[1] == 'radio' ) {
+          if ( isset($info['choices']) ) {
+            $choices = explode(',', $info['choices']);
+            foreach($choices as $choice) {
+               $strings[] = $label.'_'.$choice;
+            }
+          }
+       }
+    }
+    return $strings;
+}
+
+if ( ! function_exists('isCli') ) {
+    function isCli() {
+        $sapi_type = php_sapi_name();
+        if (substr($sapi_type, 0, 3) == 'cli' && empty($_SERVER['REMOTE_ADDR'])) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+}
+
+// If we are running from the command line - do a unit test
+if ( isCli() ) {
+    print_r(parseFormString('title:text:required=true:size=25'));
+    print_r(parseFormString('description:textarea:required=true:rows=2:cols=25'));
+    print_r(parseFormString('sendemail:radio:requred=true:label=bl_sendemail:choices=on,off,part'));
+
+    $row = array();
+    $row['title'] = 'Fred';
+    $row['description'] = 'Desc';
+    $row['sendemail'] = 1;
+    function _AT($str) { return $str; }
+
+    at_form_input($row,'title:text:required=true:size=25');
+    at_form_input($row,'description:textarea:required=true:rows=2:cols=25');
+    at_form_input($row,'sendemail:radio:requred=true:label=bl_sendemail:choices=on,off,part');
+
+    $test_frm = array(
+        'title:text:size=80',
+        'preferheight:integer:label=bl_preferheight:size=80',
+        'sendname:radio:label=bl_sendname:choices=off,on,content',
+        'acceptgrades:radio:label=bl_acceptgrades:choices=off,on',
+        'customparameters:textarea:label=bl_customparameters:rows=5:cols=25',
+        );
+
+    $i18strings = foorm_i18n_util($test_frm);
+    print_r($i18strings);
+
+}
+
diff --git a/docs/mods/_standard/basiclti/module.css b/docs/mods/_standard/basiclti/module.css
new file mode 100644 (file)
index 0000000..15f51ae
--- /dev/null
@@ -0,0 +1,11 @@
+div#helloworld {
+       border: 1px solid #ccc;
+       padding: 10px;
+       width: 50%;
+       margin-right: auto;
+       margin-left: auto;
+       background-color: #efefef;
+       color: #444;
+       margin-top: 30px;
+       margin-bottom: 30px;
+}
\ No newline at end of file
diff --git a/docs/mods/_standard/basiclti/module.php b/docs/mods/_standard/basiclti/module.php
new file mode 100644 (file)
index 0000000..d9bfafb
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+/*******
+ * doesn't allow this file to be loaded with a browser.
+ */
+if (!defined('AT_INCLUDE_PATH')) { exit; }
+
+//error_reporting(E_ALL & ~E_NOTICE);
+//ini_set("display_errors", 1);
+
+/******
+ * this file must only be included within a Module obj
+ */
+if (!isset($this) || (isset($this) && (strtolower(get_class($this)) != 'module'))) { exit(__FILE__ . ' is not a Module'); }
+
+/*******
+ * assign the instructor and admin privileges to the constants.
+ */
+define('AT_PRIV_BASICLTI',       $this->getPrivilege());
+define('AT_ADMIN_PRIV_BASICLTI', $this->getAdminPrivilege());
+
+/*******
+ * set savant variable and constants
+ */
+global $savant;
+require(AT_INCLUDE_PATH.'../mods/_standard/basiclti/include/constants.inc.php');
+$savant->addPath('template', AT_BL_INCLUDE.'html/');
+
+/*******
+ * add the admin pages when needed.
+ */
+if (admin_authenticate(AT_ADMIN_PRIV_BASICLTI, TRUE) || admin_authenticate(AT_ADMIN_PRIV_ADMIN, TRUE)) {
+       $this->_pages[AT_NAV_ADMIN] = array('mods/_standard/basiclti/index_admin.php');
+       $this->_pages['mods/_standard/basiclti/index_admin.php']['title_var'] = 'basiclti';
+       $this->_pages['mods/_standard/basiclti/index_admin.php']['parent']    = AT_NAV_ADMIN;
+       $this->_pages['mods/_standard/basiclti/index_admin.php']['children']    = array('mods/_standard/basiclti/tool/admin_create.php');
+       $this->_pages['mods/_standard/basiclti/tool/admin_create.php']['title_var'] = 'bl_create';
+       $this->_pages['mods/_standard/basiclti/tool/admin_create.php']['parent'] = 'mods/_standard/basiclti/index_admin.php';
+       $this->_pages['mods/_standard/basiclti/tool/admin_create.php']['guide'] = 'admin/?p=basiclti_external_tools.php';
+       $this->_pages['mods/_standard/basiclti/tool/admin_view.php']['title_var'] = 'bl_view';
+       $this->_pages['mods/_standard/basiclti/tool/admin_view.php']['parent'] = 'mods/_standard/basiclti/index_admin.php';
+       $this->_pages['mods/_standard/basiclti/tool/admin_edit.php']['title_var'] = 'bl_edit';
+       $this->_pages['mods/_standard/basiclti/tool/admin_edit.php']['parent'] = 'mods/_standard/basiclti/index_admin.php';
+       $this->_pages['mods/_standard/basiclti/tool/admin_delete.php']['title_var'] = 'bl_delete';
+       $this->_pages['mods/_standard/basiclti/tool/admin_delete.php']['parent'] = 'mods/_standard/basiclti/index_admin.php';
+}
+
+/*******
+ * instructor Manage section:
+ */
+if ( authenticate(AT_PRIV_BASICLTI, TRUE) ) {
+       $this->_pages['mods/_standard/basiclti/tool/content_edit.php']['title_var'] = 'bl_content';
+       $this->_pages['mods/_standard/basiclti/tool/content_edit.php']['parent'] = 'index.php';
+
+
+       $this->_pages['mods/_standard/basiclti/index_instructor.php']['title_var'] = 'basiclti';
+       $this->_pages['mods/_standard/basiclti/index_instructor.php']['parent']   = 'tools/index.php';
+       $this->_pages['mods/_standard/basiclti/index_instructor.php']['children'] = array('mods/_standard/basiclti/tool/instructor_create.php');
+       $this->_pages['mods/_standard/basiclti/tool/instructor_create.php']['title_var'] = 'bl_create';
+       $this->_pages['mods/_standard/basiclti/tool/instructor_create.php']['parent'] = 'mods/_standard/basiclti/index_instructor.php';
+       $this->_pages['mods/_standard/basiclti/tool/instructor_create.php']['guide'] = 'admin/?p=basiclti_external_tools.php';
+       $this->_pages['mods/_standard/basiclti/tool/instructor_view.php']['title_var'] = 'bl_view';
+       $this->_pages['mods/_standard/basiclti/tool/instructor_view.php']['parent'] = 'mods/_standard/basiclti/index_instructor.php';
+       $this->_pages['mods/_standard/basiclti/tool/instructor_edit.php']['title_var'] = 'bl_edit';
+       $this->_pages['mods/_standard/basiclti/tool/instructor_edit.php']['parent'] = 'mods/_standard/basiclti/index_instructor.php';
+       $this->_pages['mods/_standard/basiclti/tool/instructor_delete.php']['title_var'] = 'bl_delete';
+       $this->_pages['mods/_standard/basiclti/tool/instructor_delete.php']['parent'] = 'mods/_standard/basiclti/index_instructor.php';
+}
+
+
+$this->_content_tools[] = array("id"=>"basiclti_tool",
+                                "class"=>"fl-col clickable",
+                                "src"=>AT_BASE_HREF."mods/_standard/basiclti/images/basiclti-icon.png",
+                                "title"=>_AT('basiclti_tool'),
+                                "alt"=>_AT('basiclti_tool'),
+                                "text"=>_AT('basiclti_content_text'),
+                                "js"=>AT_BASE_HREF."mods/_standard/basiclti/content_tool_action.js");
+
+
+/*******
+ * Register the entry of the callback class. Make sure the class name is properly namespaced, 
+ * for instance, prefixed with the module name, to enforce its uniqueness.
+ * This class must be defined in "ModuleCallbacks.class.php".
+ * This class is an API that contains the static methods to act on core functions.
+ */
+$this->_callbacks['basiclti'] = 'BasicLTICallbacks';
+
+function basiclti_get_group_url($group_id) {
+       return 'mods/_standard/basiclti/index.php';
+}
+
+
+?>
diff --git a/docs/mods/_standard/basiclti/module.xml b/docs/mods/_standard/basiclti/module.xml
new file mode 100644 (file)
index 0000000..31363fc
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?> 
+<module version="1.0"> 
+    <name lang="en">External Tools</name> 
+    <description lang="en">This is a module to support externally hosted tools using the IMS Basic LTI specification to launch those tools.</description> 
+    <maintainers>
+        <maintainer> 
+            <name>Charles Severance</name> 
+            <email>csev@umich.edu</email> 
+        </maintainer>
+    </maintainers> 
+    <url>http://atutor.ca</url> 
+    <license>BSD</license> 
+       <release> 
+        <version>0.1</version> 
+        <date>2010-12-22</date> 
+        <state>alpha</state> 
+               <notes>This module is an implementation of the IMS Basic LTI that extends the ATutor content editor. Feedback, bug reports, etc. should be posted to the atutor.ca &lt;a href="http://atutor.ca/forums/">developer or modules forums&lt;/a>. Be sure to review the README file included with the module (linked above) for more about setting up BasicLTI remote tools in ATutor. </notes> 
+    </release> 
+</module>
diff --git a/docs/mods/_standard/basiclti/module_backup.php b/docs/mods/_standard/basiclti/module_backup.php
new file mode 100644 (file)
index 0000000..eb337a0
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+/* each table to be backed up. includes the sql entry and fields */
+
+//$dirs = array();
+//$dirs['basiclti/'] = AT_CONTENT_DIR . 'basiclti' . DIRECTORY_SEPARATOR;
+
+$sql = array();
+// Get the LTI tools that are used in the content of this course
+$sql['basiclti_content']  = 'SELECT * FROM '.TABLE_PREFIX.'basiclti_content WHERE course_id=?';
+//Get the LTI tools created specifically for this course
+$sql['basiclti_tools']  = 'SELECT * FROM '.TABLE_PREFIX.'basiclti_tools WHERE course_id=?';
+
+function basiclti_content_convert($row, $course_id, $table_id_map, $version) {
+       $new_row = array();
+       //$new_row[0]  = $row[0];
+       $new_row[0]  = 0;
+       $new_row[1]  = $table_id_map['content'][$row[1]];
+       $new_row[2] =  $course_id;
+       $new_row[3]  = $row[3];          //
+       $new_row[4]  = $row[4];          //
+       $new_row[5]  = $row[5];          //
+       $new_row[6]  = $row[6];          //
+       $new_row[7]  = $row[7];          //
+       $new_row[8]  = $row[8];          //
+       $new_row[9]  = $row[9];          //
+       $new_row[10]  = $row[10];          //
+       $new_row[11]  = $row[11];          //
+       $new_row[12]  = $row[12];          //
+       $new_row[13]  = $row[13];          //
+       $new_row[14]  = $row[14];          //
+       $new_row[15]  = $row[15];          //
+       $new_row[16]  = $row[16];          //
+       $new_row[17]  = $row[17];          //
+       $new_row[18]  = $row[18];          //
+
+       return $new_row;
+}
+function basiclti_tools_convert($row, $course_id, $table_id_map, $version) {
+       $new_row = array();
+       //$new_row[0]  = $row[0];          //
+       $new_row[0]  = 0;          //
+       $new_row[1]  = $row[1];          //
+       $new_row[2]  = $course_id;
+       $new_row[3]  = $row[3];          //
+       $new_row[4]  = $row[4];          //
+       $new_row[5]  = $row[5];          //
+       $new_row[6]  = $row[6];          //
+       $new_row[7]  = $row[7];          //
+       $new_row[8]  = $row[8];          //
+       $new_row[9]  = $row[9];          //
+       $new_row[10]  = $row[10];          //
+       $new_row[11]  = $row[11];          //
+       $new_row[12]  = $row[12];          //
+       $new_row[13]  = $row[13];          //
+       $new_row[14]  = $row[14];          //
+       $new_row[15]  = $row[15];          //
+       $new_row[16]  = $row[16];          //
+       $new_row[17]  = $row[17];          //
+       $new_row[18]  = $row[18];          //
+       $new_row[19]  = $row[19];          //
+       $new_row[20]  = $row[20];          //
+       $new_row[21]  = $row[21];          //
+       $new_row[22]  = $row[22];          //
+       $new_row[23]  = $row[23];          //
+       $new_row[24]  = $row[24];          //
+
+       return $new_row;
+}
+?>
diff --git a/docs/mods/_standard/basiclti/module_delete.php b/docs/mods/_standard/basiclti/module_delete.php
new file mode 100644 (file)
index 0000000..a169a82
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+/*******
+ * this function named [module_name]_delete is called whenever a course content is deleted
+ * which includes when restoring a backup with override set, or when deleting an entire course.
+ * the function must delete all module-specific material associated with this course.
+ * $course is the ID of the course to delete.
+ */
+
+function basiclti_delete($course) {
+       global $db;
+
+       // delete basiclti course table entries
+       $sql = "DELETE FROM ".TABLE_PREFIX."basiclti WHERE course_id=$course";
+       mysql_query($sql, $db);
+
+       // delete basiclti course files
+       $path = AT_CONTENT_DIR .'basiclti/' . $course .'/';
+       clr_dir($path);
+}
+
+?>
diff --git a/docs/mods/_standard/basiclti/module_install.php b/docs/mods/_standard/basiclti/module_install.php
new file mode 100644 (file)
index 0000000..b6a43d3
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/*******
+ * the line below safe-guards this file from being accessed directly from
+ * a web browser. It will only execute if required from within an ATutor script,
+ * in our case the Module::install() method.
+ */
+if (!defined('AT_INCLUDE_PATH')) { exit; }
+
+/*******
+ * Note: the many options for these variables are used to decrease confusion.
+ *       TRUE | FALSE | 1 will be the convention.
+ *
+ * $_course_privilege
+ *     specifies the type of instructor privilege this module uses.
+ *     set to empty | FALSE | 0   to disable any privileges.
+ *     set to 1 | AT_PRIV_ADMIN   to use the instructor only privilege.
+ *     set to TRUE | 'new'        to create a privilege specifically for this module:
+ *                                will make this module available as a student privilege.
+ *
+ * $_admin_privilege
+ *    specifies the type of ATutor administrator privilege this module uses.
+ *    set to FALSE | AT_ADMIN_PRIV_ADMIN   to use the super administrator only privilege.
+ *    set to TRUE | 'new'                  to create a privilege specifically for this module:
+ *                                         will make this module available as an administrator privilege.
+ *
+ *
+ * $_cron_interval
+ *    if non-zero specifies in minutes how often the module's cron job should be run.
+ *    set to 0 or not set to disable.
+ */
+$_course_privilege = TRUE; // possible values: FALSE | AT_PRIV_ADMIN | TRUE
+$_admin_privilege  = TRUE; // possible values: FALSE | TRUE
+//$_cron_interval    = 35; // run every 30 minutes
+
+/********
+ * the following code is used for creating a module-specific directory.
+ * it generates appropriate error messages to aid in its creation.
+ */
+$directory = AT_CONTENT_DIR .'basiclti';
+
+// check if the directory is writeable
+if (!is_dir($directory) && !@mkdir($directory)) {
+        $msg->addError(array('MODULE_INSTALL', '<li>'.$directory.' does not exist. Please create it.</li>'));
+} else if (!is_writable($directory) && @chmod($directory, 0666)) {
+        $msg->addError(array('MODULE_INSTALL', '<li>'.$directory.' is not writeable. On Unix issue the command <kbd>chmod a+rw</kbd>.</li>'));
+}
+
+/******
+ * the following code checks if there are any errors (generated previously)
+ * then uses the SqlUtility to run any database queries it needs, ie. to create
+ * its own tables.
+ */
+if (file_exists(dirname(__FILE__) . '/module.sql')) {
+       // deal with the SQL file:
+       require(AT_INCLUDE_PATH . 'classes/sqlutility.class.php');
+       $sqlUtility =& new SqlUtility();
+
+       /*
+        * the SQL file could be stored anywhere, and named anything, "module.sql" is simply
+        * a convention we're using.
+        */
+       $sqlUtility->queryFromFile(dirname(__FILE__) . '/module.sql', TABLE_PREFIX);
+}
+
+?>
diff --git a/docs/mods/_standard/basiclti/module_uninstall.php b/docs/mods/_standard/basiclti/module_uninstall.php
new file mode 100644 (file)
index 0000000..6e6a507
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/*******
+ * module_uninstall.php performs reversion of module_install.php
+ */
+
+/*******
+ * the line below safe-guards this file from being accessed directly from
+ * a web browser. It will only execute if required from within an ATutor script,
+ * in our case the Module::uninstall() method.
+ */
+if (!defined('AT_INCLUDE_PATH')) { exit; }
+
+/********
+ * the following code is used for removing a module-specific directory created in module_install.php.
+ * it generates appropriate error messages to aid in its creation.
+ */
+$directory = AT_CONTENT_DIR .'basiclti';
+
+// check if the directory exists
+if (is_dir($directory)) {
+       require(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php');
+
+       if (!clr_dir($directory))
+               $msg->addError(array('MODULE_UNINSTALL', '<li>'.$directory.' can not be removed. Please manually remove it.</li>'));
+}
+
+/******
+ * the following code checks if there are any errors (generated previously)
+ * then uses the SqlUtility to run reverted database queries of module.sql, 
+ * ie. "create table" statement in module.sql is run as drop according table.
+ */
+if (!$msg->containsErrors() && file_exists(dirname(__FILE__) . '/module.sql')) {
+       // deal with the SQL file:
+       require(AT_INCLUDE_PATH . 'classes/sqlutility.class.php');
+       $sqlUtility = new SqlUtility();
+
+       /*
+        * the SQL file could be stored anywhere, and named anything, "module.sql" is simply
+        * a convention we're using.
+        */
+       $sqlUtility->revertQueryFromFile(dirname(__FILE__) . '/module.sql', TABLE_PREFIX);
+}
+
+?>
+
diff --git a/docs/mods/_standard/basiclti/tool/admin_create.php b/docs/mods/_standard/basiclti/tool/admin_create.php
new file mode 100644 (file)
index 0000000..bed833e
--- /dev/null
@@ -0,0 +1,80 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+admin_authenticate(AT_ADMIN_PRIV_BASICLTI);
+
+require_once('forms.php');
+if($_POST['submit']){
+       // filter all POST data
+       $_POST['form_basiclti'] = $addslashes($_POST['form_basiclti']);
+       $_POST['title'] = $addslashes($_POST['title']);
+       $_POST['toolid'] = $addslashes($_POST['toolid']);
+       $_POST['description'] = $addslashes($_POST['description']);
+       $_POST['toolurl'] = $addslashes($_POST['toolurl']);
+       $_POST['resourcekey'] = $addslashes($_POST['resourcekey']);
+       $_POST['password'] = $addslashes($_POST['password']);
+       $_POST['preferheight'] = intval($_POST['preferheight']);
+       $_POST['allowpreferheight'] = intval($_POST['allowpreferheight']);
+       $_POST['launchinpopup'] = intval($_POST['launchinpopup']);
+       $_POST['debuglaunch'] = intval($_POST['debuglaunch']);
+       $_POST['sendname'] = intval($_POST['sendname']);
+       $_POST['sendemailaddr'] = intval($_POST['sendemailaddr']);
+       $_POST['acceptgrades'] = intval($_POST['acceptgrades']);
+       $_POST['allowroster'] = intval($_POST['allowroster']);
+       $_POST['allowsetting'] = intval($_POST['allowsetting']);
+       $_POST['allowcustomparameters'] = intval($_POST['allowcustomparameters']);
+//     $_POST['customparameters'] = $addslashes($_POST['customparameters']);
+       $_POST['organizationid'] = $addslashes($_POST['organizationid']);
+       $_POST['organizationurl'] = $addslashes($_POST['organizationurl']);
+       $_POST['organizationdescr'] = $addslashes($_POST['organizationdescr']);
+       $_POST['submit'] = $addslashes($_POST['submit']);
+}
+
+if (isset($_POST['cancel'])) {
+        $msg->addFeedback('CANCELLED');
+        header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_admin.php');
+        exit;
+} else if (isset($_POST['form_basiclti'])) {
+
+    if ( at_form_validate($blti_admin_form, $msg) ) {
+        $sql = "SELECT count(*) cnt FROM ".TABLE_PREFIX."basiclti_tools WHERE toolid = '".
+               mysql_real_escape_string($_POST['toolid'])."';";
+        $result = mysql_query($sql, $db) or die(mysql_error());
+        $row = mysql_fetch_assoc($result);
+
+        if ($row["cnt"] != 0) {
+           $msg->addFeedback('NEED_UNIQUE_TOOLID');
+       } else {
+            $sql = at_form_insert($_POST, $blti_admin_form);
+            $sql = 'INSERT INTO '.TABLE_PREFIX."basiclti_tools ".$sql;
+            $result = mysql_query($sql, $db) or die(mysql_error());
+            write_to_log(AT_ADMIN_LOG_INSERT, 'basiclti_create', mysql_affected_rows($db), $sql);
+            $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
+
+
+            header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_admin.php');
+            exit;
+        }
+    }
+}
+
+include(AT_INCLUDE_PATH.'header.inc.php');
+
+$msg->printAll();
+
+?>
+<form method="post" action="<?php echo $_SERVER['PHP_SELF'];  ?>" name="basiclti_form" enctype="multipart/form-data">
+  <input type="hidden" name="form_basiclti" value="true" />
+  <div class="input-form">
+    <fieldset class="group_form"><legend class="group_form"><?php echo _AT('properties'); ?></legend>
+<?php at_form_generate($_POST, $blti_admin_form); ?>
+        <div class="buttons">
+                <input type="submit" name="submit" value="<?php echo _AT('save'); ?>" accesskey="s" />
+                <input type="submit" name="cancel" value="<?php echo _AT('cancel');?>" />
+        </div>
+    </fieldset>
+  </div>
+</form>
+
+<?php
+require(AT_INCLUDE_PATH.'footer.inc.php');
diff --git a/docs/mods/_standard/basiclti/tool/admin_delete.php b/docs/mods/_standard/basiclti/tool/admin_delete.php
new file mode 100644 (file)
index 0000000..317fb4d
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+error_reporting(E_ALL & ~E_NOTICE);
+ini_set("display_errors", 1);
+
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+admin_authenticate(AT_ADMIN_BASICLTI);
+
+$tool = intval($_REQUEST['id']);
+
+$sql = "SELECT title FROM ".TABLE_PREFIX."basiclti_tools WHERE id = ".$tool.";";
+$result = mysql_query($sql, $db) or die(mysql_error());
+$row = mysql_fetch_assoc($result);
+
+if ( strlen($row["title"]) < 1) {
+        $msg->addFeedback('UNABLE_TO_FIND_TOOL');
+        header('Location: ../index_admin.php');
+        exit;
+}
+
+if (isset($_POST['submit_no'])) {
+        $msg->addFeedback('CANCELLED');
+        header('Location: ../index_admin.php');
+        exit;
+} else if (isset($_POST['submit_yes'])) {
+       $sql = "DELETE FROM ".TABLE_PREFIX."basiclti_tools WHERE id = ".$tool.";";
+       $result = mysql_query($sql, $db) or die(mysql_error());
+        write_to_log(AT_ADMIN_LOG_DELETE, 'basiclti_delete', mysql_affected_rows($db), $sql);
+        $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
+        header('Location: ../index_admin.php');
+        exit;
+}
+
+require(AT_INCLUDE_PATH.'header.inc.php'); 
+
+if (!isset($_POST['step'])) {
+        $hidden_vars['step']   = 2;
+        $hidden_vars['id'] = $tool;
+        $msg->addConfirm(array('DELETE_TOOL_1', $row['title']), $hidden_vars);
+        $msg->printConfirm();
+} 
+/*
+
+else if ($_POST['step'] == 1) {
+        $hidden_vars['step']   = 2;
+        $hidden_vars['id'] = $tool;
+        $msg->addConfirm(array('DELETE_TOOL_2', $row['title']), $hidden_vars);
+        $msg->printConfirm();
+}*/
+
+require(AT_INCLUDE_PATH.'footer.inc.php'); 
diff --git a/docs/mods/_standard/basiclti/tool/admin_edit.php b/docs/mods/_standard/basiclti/tool/admin_edit.php
new file mode 100644 (file)
index 0000000..6400db5
--- /dev/null
@@ -0,0 +1,89 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+admin_authenticate(AT_ADMIN_PRIV_BASICLTI);
+
+require_once('forms.php');
+if($_POST['submit']){
+       // filter all POST data
+       $_POST['form_basiclti'] = $addslashes($_POST['form_basiclti']);
+       $_POST['title'] = $addslashes($_POST['title']);
+       $_POST['toolid'] = $addslashes($_POST['toolid']);
+       $_POST['description'] = $addslashes($_POST['description']);
+       $_POST['toolurl'] = $addslashes($_POST['toolurl']);
+       $_POST['resourcekey'] = $addslashes($_POST['resourcekey']);
+       $_POST['password'] = $addslashes($_POST['password']);
+       $_POST['preferheight'] = intval($_POST['preferheight']);
+       $_POST['allowpreferheight'] = intval($_POST['allowpreferheight']);
+       $_POST['launchinpopup'] = intval($_POST['launchinpopup']);
+       $_POST['debuglaunch'] = intval($_POST['debuglaunch']);
+       $_POST['sendname'] = intval($_POST['sendname']);
+       $_POST['sendemailaddr'] = intval($_POST['sendemailaddr']);
+       $_POST['acceptgrades'] = intval($_POST['acceptgrades']);
+       $_POST['allowroster'] = intval($_POST['allowroster']);
+       $_POST['allowsetting'] = intval($_POST['allowsetting']);
+       $_POST['allowcustomparameters'] = intval($_POST['allowcustomparameters']);
+       $_POST['customparameters'] = $addslashes($_POST['customparameters']);
+       $_POST['organizationid'] = $addslashes($_POST['organizationid']);
+       $_POST['organizationurl'] = $addslashes($_POST['organizationurl']);
+//     $_POST['organizationdescr'] = $addslashes($_POST['organizationdescr']);
+       $_POST['submit'] = $addslashes($_POST['submit']);
+}
+$tool = intval($_REQUEST['id']);
+
+if (isset($_POST['cancel'])) {
+        $msg->addFeedback('CANCELLED');
+        header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_admin.php');
+        exit;
+} else if (isset($_POST['form_basiclti'], $tool)) {
+
+    if ( at_form_validate($blti_admin_form, $msg) ) {
+        $sql = "SELECT count(*) cnt FROM ".TABLE_PREFIX."basiclti_tools WHERE toolid = '".
+                mysql_real_escape_string($_POST['toolid'])."' AND id != $tool;";
+        $result = mysql_query($sql, $db) or die(mysql_error());
+        $row = mysql_fetch_assoc($result);
+
+        if ($row["cnt"] != 0) {
+           $msg->addFeedback('NEED_UNIQUE_TOOLID');
+        } else {
+            $sql = at_form_update($_POST, $blti_admin_form);
+            $sql = 'UPDATE '.TABLE_PREFIX."basiclti_tools SET ".$sql." WHERE id = $tool;";
+            $result = mysql_query($sql, $db) or die(mysql_error());
+            write_to_log(AT_ADMIN_LOG_INSERT, 'basiclti_create', mysql_affected_rows($db), $sql);
+            $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
+            header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_admin.php');
+            exit;
+       }
+    }
+}
+
+$sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_tools WHERE id = ".$tool.";";
+$result = mysql_query($sql, $db) or die(mysql_error());
+$toolrow = mysql_fetch_assoc($result);
+if ( $toolrow['id'] != $tool ) {
+    $msg->addFeedback('COULD_NOT_LOAD_TOOL');
+    header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_admin.php');
+    exit;
+}
+
+include(AT_INCLUDE_PATH.'header.inc.php');
+
+$msg->printAll();
+
+?>
+<form method="post" action="<?php echo $_SERVER['PHP_SELF'];  ?>" name="basiclti_form" enctype="multipart/form-data">
+  <input type="hidden" name="form_basiclti" value="true" />
+  <input type="hidden" name="id" value="<?php echo $tool; ?>" />
+  <div class="input-form">
+    <fieldset class="group_form"><legend class="group_form"><?php echo _AT('properties'); ?></legend>
+<?php at_form_generate($toolrow, $blti_admin_form); ?>
+        <div class="buttons">
+                <input type="submit" name="submit" value="<?php echo _AT('save'); ?>" accesskey="s" />
+                <input type="submit" name="cancel" value="<?php echo _AT('cancel');?>" />
+        </div>
+    </fieldset>
+  </div>
+</form>
+
+<?php
+require(AT_INCLUDE_PATH.'footer.inc.php');
diff --git a/docs/mods/_standard/basiclti/tool/admin_view.php b/docs/mods/_standard/basiclti/tool/admin_view.php
new file mode 100644 (file)
index 0000000..3d55379
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+admin_authenticate(AT_ADMIN_PRIV_BASICLTI);
+
+require_once('forms.php');
+
+$tool = intval($_REQUEST['id']);
+
+if (isset($_POST['done'])) {
+        header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_admin.php');
+        exit;
+} 
+
+$sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_tools WHERE id = ".$tool.";";
+$result = mysql_query($sql, $db) or die(mysql_error());
+$toolrow = mysql_fetch_assoc($result);
+if ( $toolrow['id'] != $tool ) {
+    $msg->addFeedback('COULD_NOT_LOAD_TOOL');
+    header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_admin.php');
+    exit;
+}
+
+include(AT_INCLUDE_PATH.'header.inc.php');
+
+$msg->printAll();
+
+?>
+<form method="post" action="<?php echo $_SERVER['PHP_SELF'];  ?>" name="basiclti_form" enctype="multipart/form-data">
+  <input type="hidden" name="form_basiclti" value="true" />
+  <input type="hidden" name="id" value="<?php echo $tool; ?>" />
+  <div class="input-form">
+    <fieldset class="group_form"><legend class="group_form"><?php echo _AT('properties'); ?></legend>
+<?php at_form_view($toolrow, $blti_admin_form); ?>
+        <div class="buttons">
+                <input type="submit" name="done" value="<?php echo _AT('done');?>" />
+        </div>
+    </fieldset>
+  </div>
+</form>
+
+<?php
+require(AT_INCLUDE_PATH.'footer.inc.php');
diff --git a/docs/mods/_standard/basiclti/tool/content_edit.php b/docs/mods/_standard/basiclti/tool/content_edit.php
new file mode 100644 (file)
index 0000000..616ffe4
--- /dev/null
@@ -0,0 +1,225 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+authenticate(AT_PRIV_BASICLTI);
+
+require_once('forms.php');
+
+;
+// Filter all GET data //
+$_POST['framed'] = intval($_POST['framed']);
+$_POST['popup'] = intval($_POST['popup']);
+$_POST['cid'] = intval($_POST['cid']);
+
+// Filter all POST data //
+$_POST['toolid'] = $addslashes($_POST['toolid']);
+$_POST['cid'] = intval($_POST['cid']);
+$_POST['preferheight'] = intval($_POST['preferheight']);
+$_POST['launchinpopup'] = intval($_POST['launchinpopup']);
+$_POST['debuglaunch'] = intval($_POST['debuglaunch']);
+$_POST['sendname'] = intval($_POST['sendname']);
+$_POST['sendemailaddr'] = intval($_POST['sendemailaddr']);
+$_POST['allowroster'] = intval($_POST['allowroster']);
+$_POST['allowsetting'] = intval($_POST['allowsetting']);
+$_POST['customparameters'] = $addslashes($_POST['customparameters']);
+
+if ( !is_int($_SESSION['course_id']) || $_SESSION['course_id'] < 1 ) {
+    $msg->addFeedback('NEED_COURSE_ID');
+    exit;
+}
+
+// Add/Update The Tool
+if ( isset($_POST['toolid']) && at_form_validate($blti_content_edit_form, $msg)) {
+    $toolid = $_POST['toolid']; // Escaping is done in the at_form_util code
+    $sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_content
+            WHERE content_id=".$_POST[cid]." AND course_id=".$_SESSION[course_id];
+
+
+    $result = mysql_query($sql, $db);
+    if ( $toolid == '--none--' ) {
+        $sql = "DELETE FROM ". TABLE_PREFIX . "basiclti_content 
+                       WHERE content_id=".$_POST[cid]." AND 
+                             course_id=".$_SESSION[course_id];
+            $result = mysql_query($sql, $db);
+            if ($result===false) {
+                $msg->addError('MYSQL_FAILED');
+            } else {
+                $msg->addFeedback('BASICLTI_DELETED');
+            }
+    } else if ( mysql_num_rows($result) == 0 ) {
+            $sql = "INSERT INTO ". TABLE_PREFIX . "basiclti_content 
+                       SET toolid='".$toolid."', content_id=".$_POST[cid].",
+                             course_id=".$_SESSION[course_id];
+
+            $result = mysql_query($sql, $db);
+            if ($result===false) {
+                $msg->addError('MYSQL_FAILED');
+            } else {
+                $msg->addFeedback('BASICLTI_SAVED');
+            }
+
+    } else if ( $result !== false ) {
+
+            $gradebook_test_id = 0;
+            $basiclti_content_row = mysql_fetch_assoc($result);
+            $placementsecret = $basiclti_content_row['placementsecret'];
+            $gradebook_check = intval($_POST['gradebook_test_id']);
+            if ( isset($_POST['gradebook_test_id']) && $gradebook_check > 0 ) {
+               $gradebook_test_id = $gradebook_check;
+                $sql = "SELECT g.gradebook_test_id AS id, g.title AS title
+                        FROM  ".TABLE_PREFIX."gradebook_tests AS g
+                        WHERE g.course_id = ".$_SESSION[course_id]."
+                        AND g.type = 'External' and g.grade_scale_id = 0
+                        AND gradebook_test_id = ".$gradebook_test_id;
+                $result = mysql_query($sql, $db);
+                if ( $result === false ) {
+                    $gradebook_test_id = 0;
+                } else {
+                    if ( strlen($placementsecret) < 1 ) {
+                        $placementsecret = uniqid("bl",true);
+                    }
+                }
+            }
+           // Override these fields (don't take from form)
+            $fields = array('toolid' => $toolid, 'gradebook_test_id' => $gradebook_test_id,
+                            'placementsecret' => $placementsecret);
+            $sql = at_form_update($_POST, $blti_content_edit_form, $fields);
+            $sql = "UPDATE ". TABLE_PREFIX . "basiclti_content 
+                       SET ".$sql." WHERE content_id=".$_POST[cid]." AND 
+                           course_id=".$_SESSION[course_id];
+            $result = mysql_query($sql, $db);
+            if ($result===false) {
+                $msg->addError('MYSQL_FAILED');
+            } else {
+                $msg->addFeedback('BASICLTI_SAVED');
+            }
+    }
+}
+
+// echo("<hr>$sql<hr>\n");
+
+$cid = intval($_REQUEST['cid']);
+
+global $framed, $popup;
+
+if ((isset($_REQUEST['popup']) && $_REQUEST['popup']) &&
+    (!isset($_REQUEST['framed']) || !$_REQUEST['framed'])) {
+    $popup = TRUE;
+    $framed = FALSE;
+} elseif (isset($_REQUEST['framed']) && $_REQUEST['framed'] && isset($_REQUEST['popup']) && $_REQUEST['popup']) {
+    $popup = TRUE;
+    $framed = TRUE;
+    $tool_flag = TRUE;
+} else {
+    $popup = FALSE;
+    $framed = FALSE;
+}
+
+require(AT_INCLUDE_PATH.'header.inc.php');
+
+/* get a list of all the tools, we have */
+$sql    = "SELECT * FROM ".TABLE_PREFIX."basiclti_tools WHERE course_id = 0".
+          " OR course_id=".$_SESSION[course_id]." ORDER BY course_id,title";
+
+$toolresult = mysql_query($sql, $db);
+$num_tools = mysql_num_rows($toolresult);
+
+//If there are no Tools, don't display anything except a message
+if ($num_tools == 0){
+        $msg->addInfo('NO_PROXY_TOOLS');
+        $msg->printInfos();
+        return;
+}
+
+?>
+<div class="input-form">
+
+<form name="datagrid" action="" method="POST">
+
+<fieldset class="group_form">
+   <legend class="group_form"><?php echo _AT('bl_content_title'); ?></legend>
+<br/>
+<?php echo _AT('basiclti_comment');?>
+<br/>
+<?php echo $msg->printFeedbacks();
+
+// Get the current content item
+$sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_content 
+                WHERE content_id=$cid";
+$contentresult = mysql_query($sql, $db);
+$basiclti_content_row = mysql_fetch_assoc($contentresult);
+// if ( $basiclti_content_row ) echo("FOUND"); else echo("NOT");
+?>
+<div class="row">
+   <?php echo _AT('bl_choose_tool'); ?><br/>
+   <select id="toolid" name="toolid" onchange="datagrid.submit();"> 
+      <option value="--none--">&nbsp;</option><?php
+      $basiclti_tool_row = false;
+      $found = false;  // Only the first one
+      while ( $tool = mysql_fetch_assoc($toolresult) ) {
+         $selected = "";
+         if ( ! $found && $tool['toolid'] == $basiclti_content_row['toolid'] ) {
+           $selected = ' selected="yes"';
+           $basiclti_tool_row = $tool;
+           $found = true;
+         }
+         echo '<option value="'.$tool['toolid'].'"'.$selected.'>'.$tool['title']."</option>\n";
+      } ?>
+   </select>
+<div>
+<?php
+if ( $basiclti_tool_row != false && $basiclti_tool_row['acceptgrades'] == 1 ) {
+    $sql = "SELECT g.gradebook_test_id AS id, g.title AS title
+            FROM  ".TABLE_PREFIX."gradebook_tests AS g
+            WHERE g.course_id = ".$_SESSION[course_id]."
+            AND g.type = 'External' and g.grade_scale_id = 0";
+    $graderesult = mysql_query($sql, $db);
+    if ( $graderesult !== false && mysql_num_rows($graderesult) > 0) { ?>
+<div class="row">
+   <?php echo _AT('bl_choose_gradbook_entry'); ?><br/>
+        <select id="gradebook_test_id" name="gradebook_test_id"> 
+           <option value="--none--">&nbsp;</option><?php
+        while ( $gradeitem = mysql_fetch_assoc($graderesult) ) {
+            echo($gradeitem['title']);
+            $selected = "";
+            if ( $gradeitem['id'] == $basiclti_content_row['gradebook_test_id'] ) {
+              $selected = ' selected="yes"';
+            }
+            echo '<option value="'.$gradeitem['id'].'"'.$selected.'>'.$gradeitem['title']."</option>\n";
+        } ?>
+        </select> 
+</div> <?php
+    }
+}
+?>
+   <input type="hidden" name="cid" value="<?php echo($cid);?>" />
+<?php
+if ( $basiclti_tool_row !== false ) {
+    $blti_content_edit_form = filterForm($basiclti_tool_row, $blti_content_edit_form);
+    at_form_generate($basiclti_content_row, $blti_content_edit_form);
+   echo('<input type="submit" name="save" value="Save" class="button" />'."\n");
+}
+?>
+</div>
+</legend>
+</form>
+</div>
+<?php 
+if($basiclti_tool_row){
+       echo '<h3>'.$basiclti_tool_row['title'].' '._AT('bl_settings').'</h3>';
+       echo '<ul style="list-style-type:none;">';
+       foreach($basiclti_tool_row as $title=>$setting){
+               if($title == "password" || $title == "resourcekey" && $basiclti_tool_row['course_id'] == 0){
+                       // Hide the tool password if its not an instructor created tool //
+                       // Don't print out the key or password id its an admin added tool
+                       continue;
+               } else {
+
+                       echo '<li>'.$title.' = '.$setting.'</li>';
+               }
+       }
+       echo '</ul>';
+}
+//echo("<hr><pre>\n");print_r($basiclti_tool_row); echo("\n</pre>\n"); 
+?>
+<?php require(AT_INCLUDE_PATH.'footer.inc.php'); ?>
diff --git a/docs/mods/_standard/basiclti/tool/forms.php b/docs/mods/_standard/basiclti/tool/forms.php
new file mode 100644 (file)
index 0000000..004e0f1
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+
+require_once('../lib/at_form_util.php');
+
+$blti_instructor_form = array(
+       'title:text:label=bl_title:required=true:size=25',
+       'toolid:id:label=bl_toolid:required=true:size=16',
+       'description:textarea:label=bl_description:required=true:rows=2:cols=25',
+       'toolurl:url:label=bl_toolurl:required=true:size=80',
+       'resourcekey:text:label=bl_resourcekey:required=true:size=80',
+       'password:text:required=true:label=bl_password:size=80',
+       'preferheight:integer:label=bl_preferheight:size=80',
+       'allowpreferheight:radio:label=bl_allowpreferheight:choices=off,on',
+       'launchinpopup:radio:label=bl_launchinpopup:choices=off,on,content',
+       'debuglaunch:radio:label=bl_debuglaunch:choices=off,on,content',
+       'sendname:radio:label=bl_sendname:choices=off,on,content',
+       'sendemailaddr:radio:label=bl_sendemailaddr:choices=off,on,content',
+       'acceptgrades:radio:label=bl_acceptgrades:choices=off,on',
+       'allowroster:radio:label=bl_allowroster:choices=off,on,content',
+       'allowsetting:radio:label=bl_allowsetting:choices=off,on,content',
+    'allowcustomparameters:radio:label=bl_allowcustomparameters:choices=off,on',
+       'customparameters:textarea:label=bl_customparameters:rows=5:cols=25',
+        );
+
+$blti_admin_form = array();
+foreach ( $blti_instructor_form as $line ) {
+   $newline = str_replace('choices=off,on,content','choices=off,on,instructor',$line);
+   $blti_admin_form[] = $newline;
+}
+
+$blti_admin_form = array_merge($blti_admin_form, array(
+       'organizationid:text:label=bl_organizationid:size=80',
+       'organizationurl:text:label=bl_organizationurl:size=80',
+       'organizationdescr:text:label=bl_organizationdescr:size=80',
+        ) );
+
+$blti_content_edit_form = array(
+       'preferheight:integer:label=bl_preferheight:size=80',
+       'launchinpopup:radio:label=bl_launchinpopup:choices=off,on',
+       'debuglaunch:radio:label=bl_debuglaunch:choices=off,on',
+       'sendname:radio:label=bl_sendname:choices=off,on',
+       'sendemailaddr:radio:label=bl_sendemailaddr:choices=off,on',
+       'allowroster:radio:label=bl_allowroster:choices=off,on',
+       'allowsetting:radio:label=bl_allowsetting:choices=off,on',
+       'customparameters:textarea:label=bl_customparameters:rows=5:cols=25',
+        );
+
+if ( ! function_exists('isCli') ) {
+    function isCli() {
+        $sapi_type = php_sapi_name();
+        if (substr($sapi_type, 0, 3) == 'cli' && empty($_SERVER['REMOTE_ADDR'])) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+}
+
+// If we are running from the command line - do a unit test
+if ( isCli() ) {
+    function startsWith($haystack,$needle,$case=true) {
+        if($case){return (strcmp(substr($haystack, 0, strlen($needle)),$needle)===0);}
+        return (strcasecmp(substr($haystack, 0, strlen($needle)),$needle)===0);
+    }
+    
+    function endsWith($haystack,$needle,$case=true) {
+        if($case){return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);}
+        return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);
+    }
+
+    $i18nstrings = array_merge(foorm_i18n_util($blti_instructor_form), 
+                               foorm_i18n_util($blti_admin_form),
+                               foorm_i18n_util($blti_content_edit_form));
+    $i18nstrings = array_unique($i18nstrings);
+    sort($i18nstrings);
+    foreach ($i18nstrings as $i18n ) {
+         $value = $i18n;
+         if ( startsWith($value,"bl_") ) $value = substr($value,3);
+         if ( endsWith($value,"_on") ) $value = 'Always enabled';
+         if ( endsWith($value,"_off") ) $value = 'Never allowed';
+         if ( endsWith($value,"_instructor") ) $value = 'Delegate to Instructor';
+         if ( endsWith($value,"_content") ) $value = 'Specify in each Content Item';
+         $value = ucfirst($value);
+         
+         echo("INSERT INTO 'language_text' VALUES ('en', '_module','$i18n','$value',NOW(),'');\n");
+    }
+}
+?>
diff --git a/docs/mods/_standard/basiclti/tool/instructor_create.php b/docs/mods/_standard/basiclti/tool/instructor_create.php
new file mode 100644 (file)
index 0000000..a117280
--- /dev/null
@@ -0,0 +1,81 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+authenticate(AT_PRIV_BASICLTI);
+
+require_once('forms.php');
+
+if($_POST['submit']){
+       // Filter all POST data //
+       $_POST['form_basiclti'] = $addslashes($_POST['form_basiclti']);
+       $_POST['title'] = $addslashes($_POST['title']);
+       $_POST['toolid'] = $addslashes($_POST['toolid']);
+       $_POST['description'] = $addslashes($_POST['description']);
+       $_POST['toolurl'] = $addslashes($_POST['toolurl']);
+       $_POST['resourcekey'] = $addslashes($_POST['resourcekey']);
+       $_POST['password'] = $addslashes($_POST['password']);
+       $_POST['preferheight'] = intval($_POST['preferheight']);
+       $_POST['allowpreferheight'] = intval($_POST['allowpreferheight']);
+       $_POST['launchinpopup'] = intval($_POST['launchinpopup']);
+       $_POST['debuglaunch'] = intval($_POST['debuglaunch']);
+       $_POST['sendname'] = intval($_POST['sendname']);
+       $_POST['sendemailaddr'] = intval($_POST['sendemailaddr']);
+       $_POST['acceptgrades'] = intval($_POST['acceptgrades']);
+       $_POST['allowroster'] = intval($_POST['allowroster']);
+       $_POST['allowsetting'] = intval($_POST['allowsetting']);
+       $_POST['allowcustomparameters'] = intval($_POST['allowcustomparameters']);
+       //$_POST['customparameters'] = $addslashes($_POST['customparameters']);
+       $_POST['submit'] = $addslashes($_POST['submit']);
+}
+if ( !is_int($_SESSION['course_id']) || $_SESSION['course_id'] < 1 ) {
+    $msg->addFeedback('NEED_COURSE_ID');
+    exit;
+}
+
+if (isset($_POST['cancel'])) {
+        $msg->addFeedback('CANCELLED');
+        header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_instructor.php');
+        exit;
+} else if (isset($_POST['form_basiclti']) && isset($_POST['submit'])) {
+
+    if ( at_form_validate($blti_instructor_form, $msg) ) {
+        $sql = "SELECT count(*) cnt FROM ".TABLE_PREFIX."basiclti_tools WHERE toolid = '".
+                mysql_real_escape_string($_POST['toolid'])."' AND course_id = ". $_SESSION['course_id'];
+        $result = mysql_query($sql, $db) or die(mysql_error());
+        $row = mysql_fetch_assoc($result);
+
+        if ($row["cnt"] != 0) {
+           $msg->addFeedback('NEED_UNIQUE_TOOLID');
+        } else {
+            $fields = array('course_id' => $_SESSION['course_id']);
+            $sql = at_form_insert($_POST, $blti_instructor_form, $fields);
+            $sql = 'INSERT INTO '.TABLE_PREFIX."basiclti_tools ".$sql;
+            $result = mysql_query($sql, $db) or die(mysql_error());
+            write_to_log(AT_ADMIN_LOG_INSERT, 'basiclti_create', mysql_affected_rows($db), $sql);
+            $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
+            header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_instructor.php');
+            exit;
+        }
+    }
+}
+
+include(AT_INCLUDE_PATH.'header.inc.php');
+
+$msg->printAll();
+
+?>
+<form method="post" action="<?php echo $_SERVER['PHP_SELF'];  ?>" name="basiclti_form" enctype="multipart/form-data">
+  <input type="hidden" name="form_basiclti" value="true" />
+  <div class="input-form">
+    <fieldset class="group_form"><legend class="group_form"><?php echo _AT('properties'); ?></legend>
+<?php at_form_generate($_POST, $blti_instructor_form); ?>
+        <div class="buttons">
+                <input type="submit" name="submit" value="<?php echo _AT('save'); ?>" accesskey="s" />
+                <input type="submit" name="cancel" value="<?php echo _AT('cancel');?>" />
+        </div>
+    </fieldset>
+  </div>
+</form>
+
+<?php
+require(AT_INCLUDE_PATH.'footer.inc.php');
diff --git a/docs/mods/_standard/basiclti/tool/instructor_delete.php b/docs/mods/_standard/basiclti/tool/instructor_delete.php
new file mode 100644 (file)
index 0000000..593f9e6
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+authenticate(AT_PRIV_BASICLTI);
+
+if ( !is_int($_SESSION['course_id']) || $_SESSION['course_id'] < 1 ) {
+    $msg->addFeedback('NEED_COURSE_ID');
+    exit;
+}
+
+$tool = intval($_REQUEST['id']);
+
+$sql = "SELECT title FROM ".TABLE_PREFIX."basiclti_tools WHERE id = ".$tool.
+       " AND course_id = ". $_SESSION['course_id'];
+$result = mysql_query($sql, $db) or die(mysql_error());
+$row = mysql_fetch_assoc($result);
+
+if ( strlen($row["title"]) < 1) {
+        $msg->addFeedback('UNABLE_TO_FIND_TOOL');
+        header('Location: ../index_instructor.php');
+        exit;
+}
+
+if (isset($_POST['submit_no'])) {
+        $msg->addFeedback('CANCELLED');
+        header('Location: ../index_instructor.php');
+        exit;
+} else if (isset($_POST['step']) && ($_POST['step'] == 2) && isset($_POST['submit_yes'])) {
+       $sql = "DELETE FROM ".TABLE_PREFIX."basiclti_tools WHERE id = ".$tool.
+               " AND course_id = ". $_SESSION['course_id'];
+       $result = mysql_query($sql, $db) or die(mysql_error());
+        write_to_log(AT_ADMIN_LOG_DELETE, 'basiclti_delete', mysql_affected_rows($db), $sql);
+        $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
+        header('Location: ../index_instructor.php');
+        exit;
+}
+
+require(AT_INCLUDE_PATH.'header.inc.php'); 
+
+if (!isset($_POST['step'])) {
+        $hidden_vars['step']   = 1;
+        $hidden_vars['id'] = $tool;
+        $msg->addConfirm(array('DELETE_TOOL_1', $row['title']), $hidden_vars);
+        $msg->printConfirm();
+} else if ($_POST['step'] == 1) {
+        $hidden_vars['step']   = 2;
+        $hidden_vars['id'] = $tool;
+        $msg->addConfirm(array('DELETE_TOOL_2', $row['title']), $hidden_vars);
+        $msg->printConfirm();
+}
+
+require(AT_INCLUDE_PATH.'footer.inc.php'); 
diff --git a/docs/mods/_standard/basiclti/tool/instructor_edit.php b/docs/mods/_standard/basiclti/tool/instructor_edit.php
new file mode 100644 (file)
index 0000000..14443b6
--- /dev/null
@@ -0,0 +1,98 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+authenticate(AT_PRIV_BASICLTI);
+
+if ( !is_int($_SESSION['course_id']) || $_SESSION['course_id'] < 1 ) {
+    $msg->addFeedback('NEED_COURSE_ID');
+    exit;
+}
+
+require_once('forms.php');
+
+// Filter all POST data //
+if($_POST['submit']){
+       $_POST['form_basiclti'] = $addslashes($_POST['form_basiclti']);
+       $_POST['title'] = $addslashes($_POST['title']);
+       $_POST['toolid'] = $addslashes($_POST['toolid']);
+       $_POST['description'] = $addslashes($_POST['description']);
+       $_POST['toolurl'] = $addslashes($_POST['toolurl']);
+       $_POST['resourcekey'] = $addslashes($_POST['resourcekey']);
+       $_POST['password'] = $addslashes($_POST['password']);
+       $_POST['preferheight'] = intval($_POST['preferheight']);
+       $_POST['allowpreferheight'] = intval($_POST['allowpreferheight']);
+       $_POST['launchinpopup'] = intval($_POST['launchinpopup']);
+       $_POST['debuglaunch'] = intval($_POST['debuglaunch']);
+       $_POST['sendname'] = intval($_POST['sendname']);
+       $_POST['sendemailaddr'] = intval($_POST['sendemailaddr']);
+       $_POST['acceptgrades'] = intval($_POST['acceptgrades']);
+       $_POST['allowroster'] = intval($_POST['allowroster']);
+       $_POST['allowsetting'] = intval($_POST['allowsetting']);
+       $_POST['allowcustomparameters'] = intval($_POST['allowcustomparameters']);
+       // this param won't take $addslashes. Some other form of filter is needed here before V1.0 goes out.
+       //$_POST['customparameters'] = $addslashes($_POST['customparameters']);
+       $_POST['submit'] = $addslashes($_POST['submit']);
+
+}
+$tool = intval($_REQUEST['id']);
+
+if (isset($_POST['cancel'])) {
+        $msg->addFeedback('CANCELLED');
+        header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_instructor.php');
+        exit;
+} else if (isset($_POST['form_basiclti'], $tool)) {
+
+    if ( at_form_validate($blti_instructor_form, $msg) ) {
+        $sql = "SELECT count(*) cnt FROM ".TABLE_PREFIX."basiclti_tools WHERE toolid = '".
+                mysql_real_escape_string($_POST['toolid'])."' AND id != $tool".
+                " AND course_id = ". $_SESSION['course_id'];
+        $result = mysql_query($sql, $db) or die(mysql_error());
+        $row = mysql_fetch_assoc($result);
+
+        if ($row["cnt"] != 0) {
+           $msg->addFeedback('NEED_UNIQUE_TOOLID');
+        } else {
+            $fields = array('course_id' => $_SESSION['course_id']);
+            $sql = at_form_update($_POST, $blti_instructor_form, $fields);
+            $sql = 'UPDATE '.TABLE_PREFIX."basiclti_tools SET ".$sql." WHERE id = $tool".
+                   " AND course_id = ". $_SESSION['course_id'];
+            $result = mysql_query($sql, $db) or die(mysql_error());
+            write_to_log(AT_ADMIN_LOG_INSERT, 'basiclti_create', mysql_affected_rows($db), $sql);
+            $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
+            header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_instructor.php');
+            exit;
+       }
+    }
+}
+
+$sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_tools WHERE id = ".$tool.
+       " AND course_id = ". $_SESSION['course_id'];
+$result = mysql_query($sql, $db) or die(mysql_error());
+$toolrow = mysql_fetch_assoc($result);
+if ( $toolrow['id'] != $tool ) {
+    $msg->addFeedback('COULD_NOT_LOAD_TOOL');
+    header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_instructor.php');
+    exit;
+}
+
+include(AT_INCLUDE_PATH.'header.inc.php');
+
+$msg->printAll();
+
+?>
+<form method="post" action="<?php echo $_SERVER['PHP_SELF'];  ?>" name="basiclti_form" enctype="multipart/form-data">
+  <input type="hidden" name="form_basiclti" value="true" />
+  <input type="hidden" name="id" value="<?php echo $tool; ?>" />
+  <div class="input-form">
+    <fieldset class="group_form"><legend class="group_form"><?php echo _AT('properties'); ?></legend>
+<?php at_form_generate($toolrow, $blti_instructor_form); ?>
+        <div class="buttons">
+                <input type="submit" name="submit" value="<?php echo _AT('save'); ?>" accesskey="s" />
+                <input type="submit" name="cancel" value="<?php echo _AT('cancel');?>" />
+        </div>
+    </fieldset>
+  </div>
+</form>
+
+<?php
+require(AT_INCLUDE_PATH.'footer.inc.php');
diff --git a/docs/mods/_standard/basiclti/tool/instructor_view.php b/docs/mods/_standard/basiclti/tool/instructor_view.php
new file mode 100644 (file)
index 0000000..0b45c71
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+define('AT_INCLUDE_PATH', '../../../../include/');
+require(AT_INCLUDE_PATH.'vitals.inc.php');
+authenticate(AT_PRIV_BASICLTI);
+
+if ( !is_int($_SESSION['course_id']) || $_SESSION['course_id'] < 1 ) {
+    $msg->addFeedback('NEED_COURSE_ID');
+    exit;
+}
+
+require_once('forms.php');
+
+$tool = intval($_REQUEST['id']);
+
+if (isset($_POST['done'])) {
+        header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_instructor.php');
+        exit;
+} 
+
+$sql = "SELECT * FROM ".TABLE_PREFIX."basiclti_tools WHERE id = ".$tool.
+       " AND course_id = ". $_SESSION['course_id'];
+$result = mysql_query($sql, $db) or die(mysql_error());
+$toolrow = mysql_fetch_assoc($result);
+if ( $toolrow['id'] != $tool ) {
+    $msg->addFeedback('COULD_NOT_LOAD_TOOL');
+    header('Location: '.AT_BASE_HREF.'mods/_standard/basiclti/index_instructor.php');
+    exit;
+}
+
+include(AT_INCLUDE_PATH.'header.inc.php');
+
+$msg->printAll();
+
+?>
+<form method="post" action="<?php echo $_SERVER['PHP_SELF'];  ?>" name="basiclti_form" enctype="multipart/form-data">
+  <input type="hidden" name="form_basiclti" value="true" />
+  <input type="hidden" name="id" value="<?php echo $tool; ?>" />
+  <div class="input-form">
+    <fieldset class="group_form"><legend class="group_form"><?php echo _AT('properties'); ?></legend>
+<?php at_form_view($toolrow, $blti_instructor_form); ?>
+        <div class="buttons">
+                <input type="submit" name="done" value="<?php echo _AT('done');?>" />
+        </div>
+    </fieldset>
+  </div>
+</form>
+
+<?php
+require(AT_INCLUDE_PATH.'footer.inc.php');
index 73b9b8a..d78e75b 100644 (file)
@@ -22,7 +22,7 @@ if ($dir = @opendir(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/tran/')) {
                if (substr($file, -strlen('.html')) == '.html') {
                        $file = str_replace('.html', '', $file);
 
-                       $list[] = '<a href="'.url_rewrite('chat/view_transcript.php?t='.$file, AT_PRETTY_URL_IS_HEADER).'"'.
+                       $list[] = '<a href="'.url_rewrite('mods/_standard/chat/view_transcript.php?t='.$file, AT_PRETTY_URL_IS_HEADER).'"'.
                                  (strlen($file) > SUBLINK_TEXT_LEN ? ' title="'.$file.'"' : '') .'>'. 
                                  validate_length($file, SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY) .'</a>'; 
                        
index b1909a8..2c9ab11 100644 (file)
@@ -113,7 +113,7 @@ if (!$files) {
                                                        $selected = ' selected="selected"';\r
                                                }\r
                                        ?>\r
-                                       <option value="<?php echo $file['file_id'];?>" <?php echo $selected; ?>><?php echo _AT('revision'); ?> <?php echo $file['num_revisions']; ?>. <?php echo $file['file_name']; ?> - <?php echo $file['num_comments']; ?> <?php echo _AT('comments'); ?></option>\r
+                                       <option value="<?php echo $file['file_id'];?>" <?php echo $selected; ?>><?php echo _AT('revision'); ?> <?php echo $file['num_revisions']; ?>. <?php echo htmlentities_utf8($file['file_name']); ?> - <?php echo $file['num_comments']; ?> <?php echo _AT('comments'); ?></option>\r
                                <?php endforeach; ?>\r
                        </select>\r
                </div>\r
@@ -130,7 +130,7 @@ if (!$files) {
 \r
 <div class="input-form">\r
        <div class="row">\r
-               <h3><?php echo $current_file['file_name']; ?> <small> - <?php echo _AT('revision'); ?> <?php echo $current_file['num_revisions']; ?></small></h3>\r
+               <h3><?php echo htmlentities_utf8($current_file['file_name']); ?> <small> - <?php echo _AT('revision'); ?> <?php echo $current_file['num_revisions']; ?></small></h3>\r
                <span style="font-size: small"><?php echo get_display_name($current_file['member_id']); ?> - <?php echo AT_date(_AT('filemanager_date_format'), $current_file['date'], AT_DATE_MYSQL_DATETIME); ?></span>\r
                <p><?php echo nl2br(htmlspecialchars($current_file['description'])); ?></p>\r
        </div>\r
@@ -195,4 +195,4 @@ if ($row = mysql_fetch_assoc($result)): ?>
 </form>\r
 <?php endif; ?>\r
 \r
-<?php require(AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
+<?php require(AT_INCLUDE_PATH.'footer.inc.php'); ?>\r
index 429818a..ae4fbd8 100644 (file)
 /****************************************************************/
 // $Id$
 
+/**
+ * This script creates the main index page for "file storage" that
+ * handles file upload, edit, view, delete, assignment hand-in etc.
+ * The table below is the mapping between owner type and owner id:
+ ******************************************************
+ * owner_type              owner_id
+ ******************************************************
+ * WORKSPACE_COURSE        course_id
+ * WORKSPACE_PERSONAL      member_id
+ * WORKSPACE_GROUP         group_id
+ */
 define('AT_INCLUDE_PATH', '../../../include/');
 require(AT_INCLUDE_PATH.'vitals.inc.php');
 require_once(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php'); // for get_human_size()
@@ -164,7 +175,7 @@ else if (query_bit($owner_status, WORKSPACE_AUTH_WRITE) && isset($_GET['move'])
 else if (isset($_GET['download']) && (isset($_GET['folders']) || isset($_GET['files']))) {
        if (is_array($_GET['files']) && (count($_GET['files']) == 1) && empty($_GET['folders'])) {
                $file_id = current($_GET['files']);
-               $sql = "SELECT file_name, file_size FROM ".TABLE_PREFIX."files WHERE file_id=$file_id AND owner_type=$owner_type AND owner_id=$owner_id";
+               $sql = "SELECT file_name, file_size FROM ".TABLE_PREFIX."files WHERE file_id=$file_id";
                $result = mysql_query($sql, $db);
                if ($row = mysql_fetch_assoc($result)) {
                        $ext = fs_get_file_extension($row['file_name']);
index fa75f2b..0bd4ff0 100644 (file)
@@ -29,6 +29,7 @@ $this->_pages['mods/_standard/file_storage/comments.php']['children'] = array();
 $this->_pages['mods/_standard/file_storage/edit.php']['title_var'] = 'file_storage_edit_file';\r
 $this->_pages['mods/_standard/file_storage/edit.php']['parent'] = 'mods/_standard/file_storage/index.php';\r
 $this->_pages['mods/_standard/file_storage/edit.php']['children'] = array(); // empty array creates a "back to" link to index.php\r
+$this->_pages['mods/_standard/file_storage/edit.php']['guide']      = 'general/?p=fs_new_file.php';\r
 \r
 $this->_pages['mods/_standard/file_storage/edit_folder.php']['title_var'] = 'file_storage_edit_folder';\r
 $this->_pages['mods/_standard/file_storage/edit_folder.php']['parent'] = 'mods/_standard/file_storage/index.php';\r
@@ -45,6 +46,7 @@ $this->_pages['mods/_standard/file_storage/assignment.php']['children'] = array(
 $this->_pages['mods/_standard/file_storage/new.php']['title_var'] = 'file_storage_new_file';\r
 $this->_pages['mods/_standard/file_storage/new.php']['parent'] = 'mods/_standard/file_storage/index.php';\r
 $this->_pages['mods/_standard/file_storage/new.php']['children'] = array(); // empty array creates a "back to" link to index.php\r
+$this->_pages['mods/_standard/file_storage/new.php']['guide']      = 'general/?p=fs_new_file.php';\r
 \r
 $this->_pages['mods/_standard/file_storage/delete_revision.php']['title_var'] = 'delete';\r
 $this->_pages['mods/_standard/file_storage/delete_revision.php']['parent'] = 'mods/_standard/file_storage/index.php';\r
index 7216491..c83145f 100644 (file)
@@ -19,15 +19,34 @@ function file_storage_news() {
        global $db, $enrolled_courses, $system_courses;
        $news = array();
 
-       if ($enrolled_courses == ''){
+       if ($enrolled_courses == '') {
                return $news;
-       } 
-
-       $sql = "SELECT date, file_id, file_name, owner_id, description FROM ".TABLE_PREFIX."files WHERE owner_id IN $enrolled_courses ORDER BY date DESC";
+       }
+       
+       // As personal files are listed in any enrolled courses of the student,
+       // randomly pick one course for bouce.php
+       $end_of_first_course = strpos($enrolled_courses, ",") - 1;
+       $any_one_enrolled_course = substr($enrolled_courses, 1, $end_of_first_course ? $end_of_first_course : -1);
+       
+       $sql = "(SELECT date, file_id, file_name, owner_id course_id, description 
+                  FROM ".TABLE_PREFIX."files 
+                 WHERE owner_type = ".WORKSPACE_COURSE." AND owner_id IN ".$enrolled_courses.")
+               UNION
+               (SELECT date, file_id, file_name, ".$any_one_enrolled_course." course_id, description 
+                  FROM ".TABLE_PREFIX."files
+                 WHERE owner_type = ".WORKSPACE_PERSONAL." AND owner_id = ".$_SESSION['member_id'].")
+               UNION
+               (SELECT f.date, f.file_id, f.file_name, gt.course_id, f.description 
+                  FROM ".TABLE_PREFIX."files f, ".TABLE_PREFIX."groups g, ".TABLE_PREFIX."groups_types gt
+                 WHERE owner_type = ".WORKSPACE_GROUP." 
+                   AND f.owner_id = g.group_id 
+                   AND g.type_id = gt.type_id 
+                   AND gt.course_id IN ".$enrolled_courses.")
+                ORDER BY date DESC";
        $result = mysql_query($sql, $db);
+       
        if($result){
                while($row = mysql_fetch_assoc($result)){
-                       $row['course_id'] = $row['owner_id'];
                        if($row['description'] !=""){
                                $filetext = $row['description'];
                        } else {
@@ -35,15 +54,15 @@ function file_storage_news() {
                        }
                        $news[] = array('time'=>$row['date'], 
                              'object'=>$row, 
-                             'course'=>$system_courses[$row['owner_id']]['title'],
+                             'course'=>$system_courses[$row['course_id']]['title'],
                              'alt'=>_AT('download'),
                              'thumb'=>'images/application_get.png', 
-                             'link'=>'<a href="bounce.php?course='.$row['owner_id'].'&p='.urlencode('mods/_standard/file_storage/index.php?download=1'.SEP.'files[]='. $row['file_id']).'"'.
-                         (strlen($filetext) > SUBLINK_TEXT_LEN ? ' title="'.$filetext.'"' : '') .'>'. 
-                         validate_length($filetext, SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY) .'</a>');
+                             'link'=>'<a href="bounce.php?course='.$row['course_id'].SEP.'p='.urlencode('mods/_standard/file_storage/index.php?download=1'.SEP.'files[]='. $row['file_id']).'"'.
+                         (strlen($filetext) > SUBLINK_TEXT_LEN ? ' title="'.AT_print($filetext, 'input.text').'"' : '') .'>'. 
+                         AT_print(validate_length($filetext, SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY), 'input.text') .'</a>');
                }
        }
        return $news;
 }
 
-?>
\ No newline at end of file
+?>
index bfe4e0f..3cb4f76 100644 (file)
@@ -18,12 +18,12 @@ if (mysql_num_rows($result) > 0) {
                }
 
                $list[] = '<a href="'.url_rewrite('mods/_standard/file_storage/index.php?download=1'.SEP.'files[]='. $row['file_id'], AT_PRETTY_URL_IS_HEADER).'"'.
-                         (strlen($filetext) > SUBLINK_TEXT_LEN ? ' title="'.AT_print($filetext, 'text.input').'"' : '') .'>'. 
-                         AT_print(validate_length($filetext, SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY), 'text.input') .'</a>';
+                         (strlen($filetext) > SUBLINK_TEXT_LEN ? ' title="'.AT_print($filetext, 'input.text').'"' : '') .'>'. 
+                         AT_print(validate_length($filetext, SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY), 'input.text') .'</a>';
        }
        return $list;   
 } else {
        return 0;
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/docs/mods/_standard/flowplayer/.htaccess b/docs/mods/_standard/flowplayer/.htaccess
new file mode 100644 (file)
index 0000000..ed0ae1b
--- /dev/null
@@ -0,0 +1 @@
+SetEnv no-gzip dont-vary[E=no-gzip:1]
\ No newline at end of file
index 983686c..2e2c612 100644 (file)
@@ -47,8 +47,8 @@ for ($i=0;$i<count($media_replace);$i++){
                }
                else
                {
-                       $width = 425;
-                       $height = 350;
+                       $width = DEFAULT_VIDEO_PLAYER_WIDTH;
+                       $height = DEFAULT_VIDEO_PLAYER_HEIGHT;
                }
                
                //replace media tags with embedded media for each media tag
index e18f774..7f1f407 100644 (file)
@@ -116,7 +116,7 @@ require(AT_INCLUDE_PATH.'header.inc.php');
 
        $parent_name = $post_row['subject'];
 
-       echo '<ul id="forum-thread">';
+       echo '<ul class="forum-thread">';
        print_entry($post_row);
        $subject = $post_row['subject'];
        if ($_GET['reply'] == $post_row['post_id']) {
@@ -163,7 +163,7 @@ require(AT_INCLUDE_PATH.'header.inc.php');
                        }
                }
                echo '</div>';
-               echo '<ul id="forum-thread">';
+               echo '<ul class="forum-thread">';
        
                while ($row = mysql_fetch_assoc($result)) {
                        print_entry($row);
index 358e688..8d81d68 100644 (file)
@@ -41,7 +41,7 @@ function forums_news() {
                               'alt'=>_AT('forum'),
                               'thumb'=>'images/pin.png',
                               'course'=>$system_courses[$row['course_id']]['title'],
-                              'link'=>'<a href="bounce.php?course='.$row['course_id'].'&p='.urlencode('mods/_standard/forums/forum/index.php?fid='.$forum_obj['forum_id']).'"'.
+                              'link'=>'<a href="bounce.php?course='.$row['course_id'].SEP.'p='.urlencode('mods/_standard/forums/forum/index.php?fid='.$forum_obj['forum_id']).'"'.
                               (strlen($link_title) > SUBLINK_TEXT_LEN ? ' title="'.AT_print($link_title, 'forums.title').'"' : '') .'>'. 
                               AT_print(validate_length($link_title, SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY), 'forums.title') .'</a>');
                         }
index fa8b9f3..8fe9e09 100644 (file)
@@ -21,45 +21,48 @@ require_once("lib/gradebook.inc.php");
 
 if (isset($_GET['cancel'])) 
 {
-       $msg->addFeedback('CANCELLED');
-       header('Location: gradebook_tests.php');
-       exit;
+    $msg->addFeedback('CANCELLED');
+    header('Location: gradebook_tests.php');
+    exit;
 } 
 else if (isset($_GET['save'])) 
 {
-       foreach($_GET as $key => $value)
-       {
-               $value = $addslashes($value);
-               if (preg_match('/^grade_(.*)_(.*)$/', $key, $matches) > 0)
-               {
-                       $sql = "SELECT grade_scale_id FROM ".TABLE_PREFIX."gradebook_tests WHERE gradebook_test_id = ". $matches[1];
-                       $result = mysql_query($sql, $db) or die(mysql_error());
-                       $row = mysql_fetch_assoc($result);
-
-                       $sql = "REPLACE ".TABLE_PREFIX."gradebook_detail SET gradebook_test_id = ". $matches[1].", member_id=". $matches[2].", grade='".get_mark_by_grade($row["grade_scale_id"], $value)."'";
-                       $result = mysql_query($sql, $db) or die(mysql_error());
-               }
-       }
+    foreach($_GET as $key => $value)
+    {
+        $value = $addslashes($value);
+        if (preg_match('/^grade_(.*)_(.*)$/', $key, $matches) > 0)
+        {
+            $matches[1] = intval($matches[1]);
+            $matches[2] = intval($matches[2]);
+            
+            $sql = "SELECT grade_scale_id FROM ".TABLE_PREFIX."gradebook_tests WHERE gradebook_test_id = ". $matches[1];
+            $result    = mysql_query($sql, $db) or die(mysql_error());
+            $row = mysql_fetch_assoc($result);
+
+            $sql = "REPLACE ".TABLE_PREFIX."gradebook_detail SET gradebook_test_id = ". $matches[1].", member_id=". $matches[2].", grade='".get_mark_by_grade($row["grade_scale_id"], $value)."'";
+            $result    = mysql_query($sql, $db) or die(mysql_error());
+        }
+    }
 }
 
 $orders = array('asc' => 'desc', 'desc' => 'asc');
 
 if (isset($_GET['asc'])) 
 {
-       $order = 'asc';
-       $order_col = $_GET['asc'];
+    $order = 'asc';
+    $order_col = $addslashes($_GET['asc']);
 } 
 else if (isset($_GET['desc'])) {
-       $order = 'desc';
-       $order_col = $_GET['desc'];
+    $order = 'desc';
+    $order_col = $addslashes($_GET['desc']);
 } else {
-       // no order set
-       $order = 'asc';
-       $order_col   = 'name';
+    // no order set
+    $order = 'asc';
+    $order_col   = 'name';
 }
 
 if ($_GET['reset_filter']) {
-       unset($_GET);
+    unset($_GET);
 }
 
 // Initialize all applicable tests array and all enrolled students array
@@ -68,56 +71,56 @@ $all_students = array();
 
 // generate test array
 $sql = "(SELECT g.gradebook_test_id, g.id, g.type, t.title".
-                               " FROM ".TABLE_PREFIX."gradebook_tests g, ".TABLE_PREFIX."tests t".
-                               " WHERE g.type='ATutor Test'".
-                               " AND g.id = t.test_id".
-                               " AND t.course_id=".$_SESSION["course_id"]." ORDER BY title)".
-                               " UNION (SELECT g.gradebook_test_id, g.id, g.type, a.title".
-                               " FROM ".TABLE_PREFIX."gradebook_tests g, ".TABLE_PREFIX."assignments a".
-                               " WHERE g.type='ATutor Assignment'".
-                               " AND g.id = a.assignment_id".
-                               " AND a.course_id=".$_SESSION["course_id"]." ORDER BY title)".
-                               " UNION (SELECT gradebook_test_id, id, type, title".
-                               " FROM ".TABLE_PREFIX."gradebook_tests".
-                               " WHERE course_id=".$_SESSION["course_id"]." ORDER BY title)";
+                " FROM ".TABLE_PREFIX."gradebook_tests g, ".TABLE_PREFIX."tests t".
+                " WHERE g.type='ATutor Test'".
+                " AND g.id = t.test_id".
+                " AND t.course_id=".$_SESSION["course_id"]." ORDER BY title)".
+                " UNION (SELECT g.gradebook_test_id, g.id, g.type, a.title".
+                " FROM ".TABLE_PREFIX."gradebook_tests g, ".TABLE_PREFIX."assignments a".
+                " WHERE g.type='ATutor Assignment'".
+                " AND g.id = a.assignment_id".
+                " AND a.course_id=".$_SESSION["course_id"]." ORDER BY title)".
+                " UNION (SELECT gradebook_test_id, id, type, title".
+                " FROM ".TABLE_PREFIX."gradebook_tests".
+                " WHERE course_id=".$_SESSION["course_id"]." ORDER BY title)";
 $result        = mysql_query($sql, $db) or die(mysql_error());
 
 while ($row = mysql_fetch_assoc($result))
 {
-       $no_error = true;
-       
-       if($row["type"]=="ATutor Test")
-       {
-               $studs_take_num = get_studs_take_more_than_once($_SESSION["course_id"], $row["id"]);
-               
-               foreach ($studs_take_num as $member_id => $num)
-               {
-                       if ($no_error) $no_error = false;
-                       $error_msg .= get_display_name($member_id) . ": " . $num . " times<br>";
-               }
-                               
-               if (!$no_error)
-               {
-                       $f = array('ADD_TEST_INTO_GRADEBOOK',
-                                                       $row['title'], 
-                                                       $error_msg);
-                       $msg->addFeedback($f);
-               }
-       }
-       
-       if ($no_error) array_push($all_tests, $row);
+    $no_error = true;
+    
+    if($row["type"]=="ATutor Test")
+    {
+        $studs_take_num = get_studs_take_more_than_once($_SESSION["course_id"], $row["id"]);
+        
+        foreach ($studs_take_num as $member_id => $num)
+        {
+            if ($no_error) $no_error = false;
+            $error_msg .= get_display_name($member_id) . ": " . $num . " times<br>";
+        }
+                
+        if (!$no_error)
+        {
+            $f = array('ADD_TEST_INTO_GRADEBOOK',
+                            $row['title'], 
+                            $error_msg);
+            $msg->addFeedback($f);
+        }
+    }
+    
+    if ($no_error) array_push($all_tests, $row);
 }
 
 // generate students array
 $sql_students = "SELECT m.first_name, m.last_name, e.member_id FROM ".TABLE_PREFIX."members m, ".TABLE_PREFIX."course_enrollment e WHERE m.member_id = e.member_id AND e.course_id=".$_SESSION["course_id"]." AND e.approved='y' AND e.role!='Instructor'";
 if ($order_col == "name")
 {
-       $sql_students .= " ORDER BY m.first_name ".$order.",m.last_name ".$order;
+    $sql_students .= " ORDER BY m.first_name ".$order.",m.last_name ".$order;
 }
 $result        = mysql_query($sql_students, $db) or die(mysql_error());
 
 while ($row = mysql_fetch_assoc($result))
-       array_push($all_students, $row);
+    array_push($all_students, $row);
 // end of initialization
 
 // Creates arrays for filtered test/student
@@ -130,60 +133,60 @@ $grades = array();
 // generate test array
 if (($_GET["filter"] || $_GET["download"]) && $_GET["gradebook_test_id"]<>0)
 {
-       foreach ($all_tests as $test)
-       {
-               if ($test["gradebook_test_id"] == $_GET["gradebook_test_id"])
-               {
-                       $selected_tests[0]["gradebook_test_id"] = $test["gradebook_test_id"];
-                       $selected_tests[0]["title"] = $test["title"];
-                       $selected_tests[0]["type"] = $test["type"];
-               }
-       }
+    foreach ($all_tests as $test)
+    {
+        if ($test["gradebook_test_id"] == $_GET["gradebook_test_id"])
+        {
+            $selected_tests[0]["gradebook_test_id"] = $test["gradebook_test_id"];
+            $selected_tests[0]["title"] = $test["title"];
+            $selected_tests[0]["type"] = $test["type"];
+        }
+    }
 }
 else
-       $selected_tests = $all_tests;
+    $selected_tests = $all_tests;
 
 // generate students array
 if (($_GET["filter"] || $_GET["download"]) && $_GET["member_id"]<>0)
 {
-       foreach ($all_students as $student)
-       {
-               if ($student["member_id"] == $_GET["member_id"])
-               {
-                       $selected_students[0]["member_id"] = $student["member_id"];
-                       $selected_students[0]["first_name"] = $student["first_name"];
-                       $selected_students[0]["last_name"] = $student["last_name"];
-               }
-       }
-       
-       $sql_students = "SELECT first_name, last_name, member_id FROM ".TABLE_PREFIX."members WHERE member_id=" . $_GET["member_id"];
+    foreach ($all_students as $student)
+    {
+        if ($student["member_id"] == $_GET["member_id"])
+        {
+            $selected_students[0]["member_id"] = $student["member_id"];
+            $selected_students[0]["first_name"] = $student["first_name"];
+            $selected_students[0]["last_name"] = $student["last_name"];
+        }
+    }
+    $_GET["member_id"] = intval($_GET["member_id"]);
+    $sql_students = "SELECT first_name, last_name, member_id FROM ".TABLE_PREFIX."members WHERE member_id=" . $_GET["member_id"];
 }
 else
-       $selected_students = $all_students;
+    $selected_students = $all_students;
 
 // generate grade 2-dimentional array
 foreach ($selected_tests as $selected_test)
-       foreach($selected_students as $selected_student)
-       {
-               $sql = "SELECT grade FROM ".TABLE_PREFIX."gradebook_detail WHERE gradebook_test_id=".$selected_test["gradebook_test_id"]." AND member_id=".$selected_student["member_id"];
-               $result = mysql_query($sql, $db) or die(mysql_error());
-               $row = mysql_fetch_assoc($result);
-               
-               $grades[$selected_test["gradebook_test_id"]][$selected_student["member_id"]] = $row["grade"];
-       }
+    foreach($selected_students as $selected_student)
+    {
+        $sql = "SELECT grade FROM ".TABLE_PREFIX."gradebook_detail WHERE gradebook_test_id=".$selected_test["gradebook_test_id"]." AND member_id=".$selected_student["member_id"];
+        $result = mysql_query($sql, $db) or die(mysql_error());
+        $row = mysql_fetch_assoc($result);
+        
+        $grades[$selected_test["gradebook_test_id"]][$selected_student["member_id"]] = $row["grade"];
+    }
 
 // sort grade
 if ((isset($_GET["asc"]) || isset($_GET["desc"])) && $order_col <> "name")
 {
-       $sort = '$grades['.$order_col.'], SORT_'.strtoupper($order).', $selected_students, SORT_'.strtoupper($order);
-       
-       foreach($selected_tests as $test)
-       {
-               if ($test["gradebook_test_id"] <> $order_col)
-                       $sort .= ', $grades['.$test["gradebook_test_id"].'], SORT_'.strtoupper($order);
-       }
-       $sort='array_multisort('.$sort.');';
-       eval($sort);
+    $sort = '$grades['.$order_col.'], SORT_'.strtoupper($order).', $selected_students, SORT_'.strtoupper($order);
+    
+    foreach($selected_tests as $test)
+    {
+        if ($test["gradebook_test_id"] <> $order_col)
+            $sort .= ', $grades['.$test["gradebook_test_id"].'], SORT_'.strtoupper($order);
+    }
+    $sort='array_multisort('.$sort.');';
+    eval($sort);
 }
 // end of initialization
 
@@ -193,7 +196,7 @@ $num_pages = max(ceil($num_students / $results_per_page), 1);
 
 $page = intval($_GET['p']);
 if (!$page) {
-       $page = 1;
+    $page = 1;
 }      
 $count  = (($page-1) * $results_per_page) + 1;
 $offset = ($page-1)*$results_per_page;
@@ -203,13 +206,13 @@ $table_head = "<thead>\n\r";
 $table_head .= "<tr>\n\r";
 
 if ($_GET[filter] <> "")
-       $query_str = '&amp;filter='.$_GET[filter];
+    $query_str = '&amp;filter='.$_GET[filter];
 
 if ($_GET[member_id] <> "")
-       $query_str .= '&amp;member_id='.$_GET[member_id];
+    $query_str .= '&amp;member_id='.$_GET[member_id];
 
 if ($_GET[gradebook_test_id] <> "")
-       $query_str .= '&amp;gradebook_test_id='.$_GET[gradebook_test_id];
+    $query_str .= '&amp;gradebook_test_id='.$_GET[gradebook_test_id];
 
 $table_head .= "       <th scope='col'><a href='". $_SERVER['PHP_SELF'] .'?'.$orders[$order].'=name'.$query_str."'>". _AT('name')."</a></th>\n\r";
 
@@ -217,8 +220,8 @@ $csv_content = _AT('name');
 
 foreach ($selected_tests as $selected_test)
 {
-       $table_head .= "        <th scope='col'><a href='". $_SERVER['PHP_SELF'] ."?".$orders[$order]."=".$selected_test[gradebook_test_id].$query_str."'>". $selected_test[title]."</a></th>\n\r";
-       $csv_content .= ",".$selected_test[title];
+    $table_head .= "   <th scope='col'><a href='". $_SERVER['PHP_SELF'] ."?".$orders[$order]."=".$selected_test[gradebook_test_id].$query_str."'>". $selected_test[title]."</a></th>\n\r";
+    $csv_content .= ",".$selected_test[title];
 }
 $table_head .= "       <th scope='col'></th>\n\r";
 $table_head .= "</tr>\n\r";
@@ -231,15 +234,15 @@ $table_head .= "  <td></td>\n\r";
 $has_edit_button = false;
 foreach ($selected_tests as $selected_test)
 {
-       if ($selected_test["type"] == "External" || $selected_test["type"] == "ATutor Assignment")
-       {
-               $has_edit_button = true;
-               $table_head .= "        <td style='text-align:center'><a href='". $_SERVER['PHP_SELF']. '?edit=c_'.$selected_test['gradebook_test_id'].$query_str."'>". _AT("edit")."</a></td>\n\r";
-       }
-       else
-       {
-               $table_head .= "        <td></td>\n\r";
-       }
+    if ($selected_test["type"] == "External" || $selected_test["type"] == "ATutor Assignment")
+    {
+        $has_edit_button = true;
+        $table_head .= "       <td style='text-align:center'><a href='". $_SERVER['PHP_SELF']. '?edit=c_'.$selected_test['gradebook_test_id'].$query_str."'>". _AT("edit")."</a></td>\n\r";
+    }
+    else
+    {
+        $table_head .= "       <td></td>\n\r";
+    }
 }
 if ($has_edit_button) $table_head .= " <td></td>";
 $table_head .= "</tr>\n\r";
@@ -248,77 +251,77 @@ $table_head .= "</thead>\n\r";
 // generate table & csv content
 if ($num_students > 0)
 {
-       $table_content = "      <tbody>\n\r";
-       if ($offset + $results_per_page > $num_students) $end_pos = $num_students;
-       else $end_pos = $offset + $results_per_page;
-       
-       $tabindex_input = 1;
-       $tabindex_edit = 2;
-       
-       for ($i=$offset; $i < $end_pos; $i++)
-       {
-               $table_content .= "             <tr>\n\r";
-               $table_content .= "                     <td>".$selected_students[$i]["first_name"]." " . $selected_students[$i]["last_name"]."</td>\n\r";
-
-               $csv_content .= $selected_students[$i]["first_name"]." " . $selected_students[$i]["last_name"];
-
-               foreach ($selected_tests as $selected_test)
-               {
-                       $sql = "SELECT grade FROM ".TABLE_PREFIX."gradebook_detail WHERE gradebook_test_id=".$selected_test["gradebook_test_id"]." AND member_id=".$selected_students[$i]["member_id"];
-                       $result = mysql_query($sql, $db) or die(mysql_error());
-                       $row = mysql_fetch_assoc($result);
-                       
-                       $row["grade"] = htmlspecialchars($row["grade"]);   // handle html special chars
-                       
-                       if ($_GET["edit"]=="c_".$selected_test["gradebook_test_id"] || $_GET["edit"]=="r_".$selected_students[$i]["member_id"] && ($selected_test["type"]=="External" || $selected_test["type"]=="ATutor Assignment"))
-                       {
-                               $table_content .= "                     <td><input type='text' name='grade_".$selected_test["gradebook_test_id"]."_".$selected_students[$i]["member_id"]."' value=\"".$row["grade"]."\" tabindex='".$tabindex_input."' /></td>\n\r";
-                               $csv_content .= ",".$row["grade"];
-                       }
-                       else
-                       {
-                               if ($row["grade"]=="")
-                               {
-                                       $table_content .= "                     <td style='text-align:center'>"._AT("na")."</td>\n\r";
-                                       $csv_content .= ",". _AT("na");
-                               }
-                               else
-                               {
-                                       $table_content .= "                     <td style='text-align:center'>".$row["grade"]."</td>\n\r";
-                                       $csv_content .= ",".$row["grade"];
-                               }
-                       }
-               }
-               
-               if ($has_edit_button)
-                       $table_content .= "                     <td style='text-align:center'><a href=\"". $_SERVER['PHP_SELF']. "?edit=r_".$selected_students[$i]['member_id'].$query_str."\" tabindex='".$tabindex_edit."'>". _AT("edit") ."</a></td>\n\r";
-
-               $table_content .= "             </tr>\n\r";
-               $csv_content .= "\n";
-       }
-       
-       $table_content .= "     </tbody>\n\r";
+    $table_content = " <tbody>\n\r";
+    if ($offset + $results_per_page > $num_students) $end_pos = $num_students;
+    else $end_pos = $offset + $results_per_page;
+    
+    $tabindex_input = 1;
+    $tabindex_edit = 2;
+    
+    for ($i=$offset; $i < $end_pos; $i++)
+    {
+        $table_content .= "            <tr>\n\r";
+        $table_content .= "                    <td>".$selected_students[$i]["first_name"]." " . $selected_students[$i]["last_name"]."</td>\n\r";
+
+        $csv_content .= $selected_students[$i]["first_name"]." " . $selected_students[$i]["last_name"];
+
+        foreach ($selected_tests as $selected_test)
+        {
+            $sql = "SELECT grade FROM ".TABLE_PREFIX."gradebook_detail WHERE gradebook_test_id=".$selected_test["gradebook_test_id"]." AND member_id=".$selected_students[$i]["member_id"];
+            $result = mysql_query($sql, $db) or die(mysql_error());
+            $row = mysql_fetch_assoc($result);
+            
+            $row["grade"] = htmlspecialchars($row["grade"]);   // handle html special chars
+            
+            if ($_GET["edit"]=="c_".$selected_test["gradebook_test_id"] || $_GET["edit"]=="r_".$selected_students[$i]["member_id"] && ($selected_test["type"]=="External" || $selected_test["type"]=="ATutor Assignment"))
+            {
+                $table_content .= "                    <td><input type='text' name='grade_".$selected_test["gradebook_test_id"]."_".$selected_students[$i]["member_id"]."' value=\"".$row["grade"]."\" tabindex='".$tabindex_input."' /></td>\n\r";
+                $csv_content .= ",".$row["grade"];
+            }
+            else
+            {
+                if ($row["grade"]=="")
+                {
+                    $table_content .= "                        <td style='text-align:center'>"._AT("na")."</td>\n\r";
+                    $csv_content .= ",". _AT("na");
+                }
+                else
+                {
+                    $table_content .= "                        <td style='text-align:center'>".$row["grade"]."</td>\n\r";
+                    $csv_content .= ",".$row["grade"];
+                }
+            }
+        }
+        
+        if ($has_edit_button)
+            $table_content .= "                        <td style='text-align:center'><a href=\"". $_SERVER['PHP_SELF']. "?edit=r_".$selected_students[$i]['member_id'].$query_str."\" tabindex='".$tabindex_edit."'>". _AT("edit") ."</a></td>\n\r";
+
+        $table_content .= "            </tr>\n\r";
+        $csv_content .= "\n";
+    }
+    
+    $table_content .= "        </tbody>\n\r";
 }
 
 // download csv file
 if ($_GET['download'])
 {
-       if ($num_students == 0)
-       {
-               require (AT_INCLUDE_PATH.'header.inc.php');
-               $msg->printErrors('ITEM_NOT_FOUND');
-               require (AT_INCLUDE_PATH.'footer.inc.php');
-               exit;
-       }
-
-       header('Content-Type: application/x-excel');
-       header('Content-Disposition: inline; filename="grades.csv"');
-       header('Expires: 0');
-       header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
-       header('Pragma: public');
-       
-       echo $csv_content;
-       exit;
+    if ($num_students == 0)
+    {
+        require (AT_INCLUDE_PATH.'header.inc.php');
+        $msg->printErrors('ITEM_NOT_FOUND');
+        require (AT_INCLUDE_PATH.'footer.inc.php');
+        exit;
+    }
+
+    header('Content-Type: application/x-excel');
+    header('Content-Disposition: inline; filename="grades.csv"');
+    header('Expires: 0');
+    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+    header('Pragma: public');
+    
+    echo $csv_content;
+    exit;
 }
 
 require(AT_INCLUDE_PATH.'header.inc.php');
@@ -327,62 +330,62 @@ $msg->printFeedbacks();
 
 if (count($selected_tests)==0)
 {
-       echo '<div class="toolcontainer">'._AT('empty_gradebook').'</div>';
-       require(AT_INCLUDE_PATH.'footer.inc.php');
-       exit;
+    echo '<div class="toolcontainer">'._AT('empty_gradebook').'</div>';
+    require(AT_INCLUDE_PATH.'footer.inc.php');
+    exit;
 }
 ?>
 <form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
-       <div class="input-form" id="jump-area">
-       
-       <fieldset class="group_form"><legend class="group_form"><?php echo _AT('search'); ?></legend>
-               <div class="row">
-               <label for="select_gid"><?php echo _AT("name") ?></label><br />
-                       <select name="gradebook_test_id" id="select_gid">
-                               <option value="0"><?php echo _AT('all') ?></option>
+    <div class="input-form" id="jump-area">
+    
+    <fieldset class="group_form"><legend class="group_form"><?php echo _AT('search'); ?></legend>
+        <div class="row">
+        <label for="select_gid"><?php echo _AT("name") ?></label><br />
+            <select name="gradebook_test_id" id="select_gid">
+                <option value="0"><?php echo _AT('all') ?></option>
 <?php
-       foreach($all_tests as $test)
-       {
-               echo '                  <option value="'.$test[gradebook_test_id]. '"';
-               
-               if ($test[gradebook_test_id]==$_GET["gradebook_test_id"])
-                       echo ' SELECTED ';
-               echo '>'.$test["title"].'</option>'."\n\r";
-       }
+    foreach($all_tests as $test)
+    {
+        echo '                 <option value="'.$test[gradebook_test_id]. '"';
+        
+        if ($test[gradebook_test_id]==$_GET["gradebook_test_id"])
+            echo ' SELECTED ';
+        echo '>'.$test["title"].'</option>'."\n\r";
+    }
 ?>
-                       </select>
-               </div>
+            </select>
+        </div>
 
-               <div class="row">
-                       <label for="select_mid"><?php echo _AT("students") ?></label><br />
-                       <select name="member_id" id="select_mid">
-                               <option value="0"><?php echo _AT('all') ?></option>
+        <div class="row">
+            <label for="select_mid"><?php echo _AT("students") ?></label><br />
+            <select name="member_id" id="select_mid">
+                <option value="0"><?php echo _AT('all') ?></option>
 <?php
-       foreach($all_students as $student)
-       {
-               echo '                  <option value="'.$student[member_id].'"';
-               if ($student[member_id]==$_GET["member_id"])
-                       echo ' SELECTED ';
-               echo '>'.$student[first_name].' '.$student[last_name].'</option>'."\n\r";
-       }
+    foreach($all_students as $student)
+    {
+        echo '                 <option value="'.$student[member_id].'"';
+        if ($student[member_id]==$_GET["member_id"])
+            echo ' SELECTED ';
+        echo '>'.$student[first_name].' '.$student[last_name].'</option>'."\n\r";
+    }
 ?>
-                       </select>
-               </div>
+            </select>
+        </div>
 
-               <div class="row buttons">
-                       <input type="submit" name="filter" value="<?php echo _AT('filter'); ?>" />
-                       <input type="submit" name="reset_filter" value="<?php echo _AT('reset_filter'); ?>" />
-                       <input type="submit" name="download" value="<?php echo _AT('download_test_csv'); ?>" />
-               </div>
-       </fieldset>
-       </div>
+        <div class="row buttons">
+            <input type="submit" name="filter" value="<?php echo _AT('filter'); ?>" />
+            <input type="submit" name="reset_filter" value="<?php echo _AT('reset_filter'); ?>" />
+            <input type="submit" name="download" value="<?php echo _AT('download_test_csv'); ?>" />
+        </div>
+    </fieldset>
+    </div>
 
 </form>
 
 <form name="form" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
-<input type="hidden" name="filter" value="<?php echo $_GET[filter]?>" />
-<input type="hidden" name="gradebook_test_id" value="<?php echo $_GET[gradebook_test_id]?>" />
-<input type="hidden" name="member_id" value="<?php echo $_GET[member_id]?>" />
+<input type="hidden" name="filter" value="<?php echo AT_print($_GET[filter], 'input.hidden');?>" />
+<input type="hidden" name="gradebook_test_id" value="<?php echo AT_print($_GET[gradebook_test_id], 'input.hidden'); ?>" />
+<input type="hidden" name="member_id" value="<?php echo AT_print($_GET[member_id], 'input.hidden'); ?>" />
 <input type="hidden" name="p" value="<?php echo $page; ?>" />
 
 <?php print_paginator($page, $num_students, $sql_students, $results_per_page); ?>
@@ -394,11 +397,11 @@ echo $table_head;
 ?>
 <tfoot>
 <tr>
-       <td colspan="<?php echo count($selected_tests)+2; ?>">
-               <div class="row buttons">
-               <input type="submit" name="save" value="<?php echo _AT('save'); ?>" />
-               </div>
-       </td>
+    <td colspan="<?php echo count($selected_tests)+2; ?>">
+        <div class="row buttons">
+        <input type="submit" name="save" value="<?php echo _AT('save'); ?>" />
+        </div>
+    </td>
 </tr>
 </tfoot>
 
@@ -406,14 +409,14 @@ echo $table_head;
 if ($num_students == 0)
 {
 ?>
-       <tr>
-               <td colspan="<?php echo count($selected_tests)+1; ?>"><?php echo _AT('none_found'); ?></td>
-       </tr>
+    <tr>
+        <td colspan="<?php echo count($selected_tests)+1; ?>"><?php echo _AT('none_found'); ?></td>
+    </tr>
 <?php 
 }
 else
 {
-       echo $table_content;
+    echo $table_content;
 }
 ?>
 </table>
index fa9904d..9792a4b 100644 (file)
@@ -46,6 +46,7 @@ function add_test($test_id, $title)
 \r
        if ($no_error)  // add into gradebook\r
        {\r
+           $_POST["selected_grade_scale_id"] = intval($_POST["selected_grade_scale_id"]);\r
                $sql_insert = "INSERT INTO ".TABLE_PREFIX."gradebook_tests (id, type, grade_scale_id)\r
                               VALUES (". $test_id. ", 'ATutor Test', ".$_POST["selected_grade_scale_id"].")";\r
                $result_insert = mysql_query($sql_insert, $db) or die(mysql_error());\r
@@ -55,6 +56,7 @@ function add_test($test_id, $title)
 function add_assignment($assignment_id)\r
 {\r
        global $db;\r
+       $_POST["selected_grade_scale_id"] = intval($_POST["selected_grade_scale_id"]);\r
        \r
        $sql_insert = "INSERT INTO ".TABLE_PREFIX."gradebook_tests (id, type, grade_scale_id)\r
                       VALUES (". $assignment_id. ", 'ATutor Assignment', ".$_POST["selected_grade_scale_id"].")";\r
@@ -139,6 +141,14 @@ else if (isset($_POST['addExternalTest']))
 \r
        if (!$msg->containsErrors()) \r
        {\r
+           $_POST["year_due"] = intval($_POST["year_due"]);\r
+           $_POST["month_due"] = intval($_POST["month_due"]);\r
+           $_POST["day_due"] = intval($_POST["day_due"]);\r
+           $_POST["hour_due"] = intval($_POST["hour_due"]);\r
+           $_POST["min_due"] = intval($_POST["min_due"]);\r
+           $_POST["title"] = $addslashes($_POST["title"]);\r
+           $_POST["selected_grade_scale_id"] = intval($_POST["selected_grade_scale_id"]);\r
+           \r
                if ($_POST["has_due_date"] == 'true')\r
                        $date_due = $_POST["year_due"]. '-' .str_pad ($_POST["month_due"], 2, "0", STR_PAD_LEFT). '-' .str_pad ($_POST["day_due"], 2, "0", STR_PAD_LEFT). ' '.str_pad ($_POST["hour_due"], 2, "0", STR_PAD_LEFT). ':' .str_pad ($_POST["min_due"], 2, "0", STR_PAD_LEFT) . ':00';\r
 \r
@@ -251,7 +261,7 @@ else
 \r
        <div class="row">\r
                <span class="required" title="<?php echo _AT('required_field'); ?>">*</span><label for="title"><?php echo _AT('title'); ?></label><br />\r
-               <input type="text" name="title" id="title" size="30" value="<?php echo $_POST['title']; ?>" />\r
+               <input type="text" name="title" id="title" size="30" value="<?php echo AT_print($_POST['title'], 'input.title'); ?>" />\r
        </div>\r
 \r
        <div class="row">\r
index 5210f79..1f4b2f2 100644 (file)
@@ -28,6 +28,14 @@ if (isset($_POST['cancel']))
 else if (isset($_POST['save'])) \r
 {\r
        $missing_fields = array();\r
+       $_POST["selected_grade_scale_id"] = intval($_POST["selected_grade_scale_id"]);\r
+       $_REQUEST["gradebook_test_id"] = intval($_REQUEST["gradebook_test_id"]);\r
+       $_GET['gradebook_test_id'] = intval($_GET['gradebook_test_id']);\r
+       $_POST["year_due"] = intval($_POST["year_due"]);\r
+       $_POST["month_due"] = intval($_POST["month_due"]);\r
+       $_POST["day_due"] = intval($_POST["day_due"]);\r
+       $_POST["hour_due"] = intval($_POST["hour_due"]);\r
+       $_POST["min_due"] = intval($_POST["min_due"]);\r
 \r
        if (isset($_POST['title']) && $_POST['title'] == '') {\r
                $missing_fields[] = _AT('title');\r
index 123cd37..d35eea1 100644 (file)
@@ -115,7 +115,14 @@ else
                        <td width="10"><input type="radio" name="gradebook_test_id" value="<?php echo $row["gradebook_test_id"]; ?>" id="m<?php echo $row["gradebook_test_id"]; ?>" <?php if ($row["gradebook_test_id"]==$_POST['gradebook_test_id']) echo 'checked'; ?> /></td>\r
                        <td><label for="m<?php echo $row["gradebook_test_id"]; ?>"><?php echo $row["title"]; ?></label></td>\r
                        <td><?php echo $scale_content[$row["grade_scale_id"]]; ?></td>\r
-                       <td><?php echo $row["type"]; ?></td>\r
+                       <?php if ($row["type"] == "External"){?>\r
+                               <td><?php echo _AT("external"); ?></td>\r
+                       <?php } elseif($row["type"] == "ATutor Test"){ ?>\r
+                               <td><?php echo _AT("atutor_test"); ?></td>\r
+                       <?php } else if($row["type"] == "ATutor Assignment") { ?>\r
+                               <td><?php echo _AT("atutor_assignment"); ?></td>\r
+                       <?php } ?>\r
+                       \r
                </tr>\r
 <?php \r
        }\r
index c51cab5..2def6fe 100644 (file)
@@ -23,15 +23,15 @@ if (admin_authenticate(AT_ADMIN_PRIV_PATCHER, TRUE) || admin_authenticate(AT_ADM
        $this->_pages['mods/_standard/patcher/index_admin.php']['title_var'] = 'patcher';\r
        $this->_pages['mods/_standard/patcher/index_admin.php']['parent']    = AT_NAV_ADMIN;\r
        $this->_pages['mods/_standard/patcher/index_admin.php']['avail_in_mobile']   = false;\r
-\r
+
        $this->_pages['mods/_standard/patcher/index_admin.php']['children'] = array('mods/_standard/patcher/myown_patches.php','mods/_standard/patcher/patch_create.php');\r
        $this->_pages['mods/_standard/patcher/myown_patches.php']['title_var'] = 'myown_patches';\r
        $this->_pages['mods/_standard/patcher/myown_patches.php']['parent']   = 'mods/_standard/patcher/index_admin.php';\r
-\r
+       \r
        $this->_pages['mods/_standard/patcher/myown_patches.php']['children'] = array('mods/_standard/patcher/patch_create.php');\r
        $this->_pages['mods/_standard/patcher/patch_create.php']['title_var'] = 'create_patch';\r
        $this->_pages['mods/_standard/patcher/patch_create.php']['parent']   = 'mods/_standard/patcher/myown_patches.php';\r
-\r
+       \r
        $this->_pages['mods/_standard/patcher/patch_edit.php']['title_var'] = 'edit_patch';\r
        $this->_pages['mods/_standard/patcher/patch_edit.php']['parent']   = 'mods/_standard/patcher/myown_patches.php';\r
 \r
index 35537e7..23104cc 100644 (file)
@@ -20,7 +20,7 @@ $isadmin   = TRUE;
 //printer header iff this is not a POST request 
 //a hack to avoid 'header already sent...' error.
 if (!isset($_POST['submit']) && !isset($_POST['cancel'])){
-       $_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+       //$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
        require(AT_INCLUDE_PATH.'header.inc.php'); 
        $msg->printAll();
 }
index 63ca116..63e99ba 100644 (file)
@@ -20,7 +20,7 @@ $isadmin   = TRUE;
 //printer header iff this is not a POST request 
 //a hack to avoid 'header already sent...' error.
 if (!isset($_POST['submit']) && !isset($_POST['cancel'])){
-       $_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+       //$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
        require(AT_INCLUDE_PATH.'header.inc.php'); 
        $msg->printAll();
 }
index 8268495..a52120a 100644 (file)
@@ -18,7 +18,7 @@ include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
 include (AT_PA_INCLUDE.'classes/SimpleImage.class.php');
 include (AT_PA_INCLUDE.'lib.inc.php');
 include (AT_PA_INCLUDE.'classes/AjaxMessage.class.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 $_custom_head .= '<script src="'.$_base_path . AT_PA_BASENAME . 'include/ajaxupload.js" type="text/javascript"></script>';
 
 $id = intval($_REQUEST['id']);
index cc556bc..e4523e6 100644 (file)
@@ -15,7 +15,7 @@ define('AT_INCLUDE_PATH', '../../../include/');
 require (AT_INCLUDE_PATH.'vitals.inc.php');
 include (AT_PA_INCLUDE.'lib.inc.php');
 include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 
 //instantiate obj
 $pa = new PhotoAlbum();
index e5b29f0..ea7466b 100644 (file)
@@ -15,7 +15,7 @@ $_user_location = 'public';
 define('AT_INCLUDE_PATH', '../../../include/');
 require (AT_INCLUDE_PATH.'vitals.inc.php');
 include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 
 //quit if this is not a member
 if(!(isset($_SESSION['member_id']) && $_SESSION['member_id'] > 0)){
index 12db106..372d31e 100644 (file)
@@ -16,7 +16,7 @@ define('AT_INCLUDE_PATH', '../../../include/');
 require (AT_INCLUDE_PATH.'vitals.inc.php');
 include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
 include (AT_PA_INCLUDE.'lib.inc.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 
 $aid = intval($_REQUEST['id']);
 $pa = new PhotoAlbum($aid);
index 35638cd..ba5821b 100644 (file)
@@ -61,7 +61,7 @@ if ($isadmin) {
 //handle organize
 if(isset($_GET['org'])){
        $_custom_head .= '<script type="text/javascript" src="'.AT_PA_BASENAME.'include/imageReorderer.js"></script>';
-       $_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+       //$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
        //reset pages/submenu
        $_pages[AT_PA_BASENAME.'edit_photos.php']['title'] = _AT('pa_organize_photos');
 
@@ -88,7 +88,7 @@ if(isset($_GET['org'])){
 //printer header iff this is not a POST request 
 //a hack to avoid 'header already sent...' error.
 if (!isset($_POST['submit']) && !isset($_POST['cancel'])){
-       $_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+       //$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
        require(AT_INCLUDE_PATH.'header.inc.php'); 
        $msg->printAll();
 }
index 006ded8..179a918 100644 (file)
@@ -13,15 +13,15 @@ https://source.fluidproject.org/svn/LICENSE.txt
 
 /*global jQuery*/
 /*global fluid*/
-/*global demo*/
+/*global atutor*/
 
-var demo = demo || {};
+var atutor = atutor || {};
 (function (jQuery, fluid) {
        var afterMoveListener = function (thePhotoThatMoved, position, allPhotos) {
                // Loop through each item in the ordered list and update its hidden form field.
                allPhotos.each(function (idx, photo) {
                        jQuery(photo).children("a").children("input").val(idx+1);
-               });
+               }); 
 
                //POST it back to the server
                postOrder();
@@ -35,7 +35,7 @@ var demo = demo || {};
                // Send it back to the server via an AJAX POST request.
                jQuery.ajax({
                        type: "post",
-                       url: form.action
+                       url: form.attr('action')
                        data: photoRequest, 
                        complete: function (data, ajaxStatus) {
                                // Handle success or failure by being nice to the user.
@@ -43,15 +43,18 @@ var demo = demo || {};
                });
        };
 
-        
-    demo.formBasedImageReorderer = function () {
-        var reorderer = fluid.reorderImages("#reorder-images-form", {
+    
+    /**
+     * Which actually uses the Grid reorderer
+     */
+    atutor.formBasedImageReorderer = function () {
+        var reorderer = fluid.reorderGrid("#reorder-images-form", {
             selectors: {
                 movables: ".photo_wrapper"
             },
-                       listeners: {
-                          afterMove: afterMoveListener
-                       }
-        });  
+            listeners: {
+                afterMove: afterMoveListener
+            }
+        });
     };
-})(jQuery, fluid);
\ No newline at end of file
+})(jQuery, fluid);
index e18121c..a399523 100644 (file)
@@ -15,7 +15,7 @@
 if (!defined('AT_INCLUDE_PATH')) { exit; }
 include (AT_PA_INCLUDE.'lib.inc.php');
 include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 $_custom_head .= '<script src="'.$_base_path . AT_PA_BASENAME . 'include/ajaxupload.js" type="text/javascript"></script>';
 $member_id = intval($_GET['member_id']);
 $member_id = ($member_id==0)? $_SESSION['member_id']: $member_id;
diff --git a/docs/mods/_standard/photos/include/upload.js b/docs/mods/_standard/photos/include/upload.js
deleted file mode 100644 (file)
index b6fd401..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-Copyright 2008-2009 University of Cambridge
-Copyright 2008-2009 University of Toronto
-Copyright 2008-2009 University of California, Berkeley
-
-Licensed under the Educational Community License (ECL), Version 2.0 or the New
-BSD license. You may not use this file except in compliance with one these
-Licenses.
-
-You may obtain a copy of the ECL 2.0 License and BSD License at
-https://source.fluidproject.org/svn/LICENSE.txt
-*/
-
-/*global jQuery*/
-/*global fluid*/
-/*global demo*/
-
-var demo = demo || {};
-
-(function ($, fluid) {
-    demo.initUploader = function () {
-        fluid.progressiveEnhanceableUploader(".flc-uploader", ".fl-progEnhance-basic", {
-            demo: true,                
-            uploadManager: {
-                type: "fluid.swfUploadManager",        
-                options: {
-                   // Set the uploadURL to the URL for posting files to your server.
-                   uploadURL: "http://localhost/atutor155/atutor_163/mods/photo_album/albums.php",
-    
-                   // This option points to the location of the SWFUpload Flash object that ships with Fluid Infusion.
-                   flashURL: "../../jscript/infusion/lib/swfupload/flash/swfupload.swf"
-                }
-            },
-            decorators: [{
-                type: "fluid.swfUploadSetupDecorator",
-                options: {
-                    // This option points to the location of the Browse Files button used with Flash 10 clients.
-                    flashButtonImageURL: "../../jscript/infusion/components/uploader/images/browse.png"
-                }
-            }]
-        });    
-    }
-})(jQuery, fluid);
-
-
-  
\ No newline at end of file
index c1c338c..2828eb4 100644 (file)
@@ -17,7 +17,7 @@ define('AT_INCLUDE_PATH', '../../../include/');
 require (AT_INCLUDE_PATH.'vitals.inc.php');
 include (AT_PA_INCLUDE.'lib.inc.php');
 include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 
 //instantiate obj
 $pa = new PhotoAlbum();
index f964a2a..a1ee794 100644 (file)
@@ -18,7 +18,7 @@ include (AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php');   //cl
 //include (AT_INCLUDE_PATH.'lib/filemanager.inc.php'); //clr_dir()
 include (AT_PA_INCLUDE.'lib.inc.php');
 include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 admin_authenticate(AT_ADMIN_PRIV_PHOTO_ALBUM);
 
 //init
diff --git a/docs/mods/_standard/photos/module.css b/docs/mods/_standard/photos/module.css
deleted file mode 100644 (file)
index dad5198..0000000
+++ /dev/null
@@ -1,424 +0,0 @@
-div.topbar{
-       float:left;
-       width: 95%;
-}
-div.paginator{
-       float: right;
-       margin: 0px;
-}
-.paginator ul li{
-       list-style: none;
-}
-.paginator li{
-       padding-right: 0.5em;
-       float: left;
-}
-
-div.summary{
-       float: left;
-       margin-top: 0.5em;
-       width:70%;
-}
-
-div.album_panel{
-       float: left;
-       background: #F7F7F7;
-       border: 1px solid #D2D2D2;      
-       width: 96%;
-       border-radius:.5em;
-       -moz-border-radius: .5em .5em .5em .5em;
-       -moz-box-shadow:.2em .2em .1em #999999;
-    box-shadow: .2em .2em .1em #999999;
-       padding:.3em;
-}
-div.album_panel div.photo_wrapper {
-       /* This class is to fix the problem where the images shift
-        * to the right when there is a border upon selection 
-        */
-       height: 150px;
-       float: left;
-}
-div.album_panel .photo_frame{
-       float: left;
-       margin: 0.2em;
-       min-height: 140px;
-       min-width: 140px;
-       text-align: center;
-}
-div.album_panel .photo_frame a:focus, div.album_panel .photo_frame a:hover{
-       cursor: pointer;
-       float:left;
-       min-width: 140px;
-       min-height: 140px;
-       background: #FCE6C9;
-}
-div.album_panel .photo_frame img{
-       background: #FFFFFF;
-       border: 1px solid #D2D2D2;
-       padding: 0.2em;
-}
-div.album_panel .album_description{
-       margin: 0.5em;
-       width: 95%;
-       float: left;
-}
-
-div.search_bar {
-       /* background-image: url('images/search_bg.png');
-       background-repeat: no-repeat; */
-       background-color:#ffffff;
-       border:thin solid #cccccc;
-       margin-left: 0.5em;
-       margin-top: 0.5em;
-       height: 27px;
-       width: 180px;
-       float: left;
-       border-radius:.5em;
-       -moz-border-radius:.8em .8em .8em .8em;
-               -moz-box-shadow:.2em .2em .1em #999999;
-    box-shadow: .2em .2em .1em #999999;
-}
-div.search_bar .s{
-       float: left;
-       border: 0px;
-       margin-top: 0.3em;
-       margin-left: 0.5em;
-       width: 148px;
-}
-div.search_bar .s_img{
-       float: right;
-       border: 0px;
-       margin-top: 0.375em;    
-       margin-top: -1.4em\9; /* the \9 to accomodate IE 7&8 */
-       margin-right: 0.4em;
-}
-
-div.album {
-       background: #FFFFFF;
-       padding:1em;
-       border: 1px solid #D2D2D2;      
-       width: 95%;
-       margin: 0.5em;
-       float: left;
-       border-radius:.5em .5em .5em .5em;
-       -moz-border-radius: .5em .5em .5em .5em;
-               -moz-box-shadow:.2em .2em .1em #999999;
-    box-shadow: .2em .2em .1em #999999;
-}
-div.album .image{
-       float: left;
-       margin: 0.5em;
-       min-width: 140px;
-}
-div.album img{
-       border-width: 0px;
-}
-div.album .image img.no-image {
-       float: left;
-       width: 130px;
-       height: 97px;
-       background-color: #EFEFEF;
-}
-div.album .info{
-       float: left;
-       width: 70%;
-}
-div.album .info span{
-       float: left;
-       color: #666666;
-}
-div.album .info p{
-       font-size: 0.85em;
-       margin: 0;
-}
-div.album .search_photo_frame{
-       float: left;
-       margin: 0.2em;
-       min-height: 160px;
-       max-height: 160px;
-       max-width: 140px;
-       text-align: center;
-       border: 1px solid #d3d3d3;
-       overflow: hidden;
-}
-div.album .search_slider{
-       float: left;
-       overflow: hidden;
-       position: relative;     /* ie7 */
-}
-div.album .search_slider_left{
-       float: left;
-       width: 10%;
-}
-div.album .search_slider_right{
-       float: right;
-       text-align: right;
-       width: 10%;
-}
-div.album .search_slider ul {
-       list-style-type: none;
-       margin: 0;
-       padding: 0;
-       width: 99999px;
-       position: relative;
-}
-div.album .search_slider ul li{
-       float: left;
-}
-div.album .search_slider_a{
-       width: 80%;
-}
-div.album .search_slider_p{
-       width: 730px;   /* 146 per frame, 5 frame per row */
-}
-div.album .search_slider_p ul li{
-/*     height: 576px;  /* 144 per frame, 4 row */
-       width: 730px;   /* 146 per frame, 5 frame per row */
-}
-div.album .search_paginator {
-       width: 100%;
-}
-
-div.add_photo{
-       float: left;
-       background: #F7F7F7;
-       border: 1px solid #D2D2D2;      
-       width: 96%;
-       border-radius:.5em;
-       -moz-border-radius: .3em .3em .3em .3em;
-       margin-bottom:.2em;
-}
-div.add_photo ul{
-       margin: 0px;
-       padding: 0px;
-}
-div.add_photo .toggle_uploader{
-       width: 95%;
-       margin: 0.5em;
-}
-div.add_photo div#ajax_uploader{
-       display: none;
-       margin-top: 0.5em;
-}
-div.add_photo .files .tn {
-       max-height: 30px;
-}
-div.add_photo img{
-       border: 0;
-}
-div.add_photo ul li{
-       float: left;
-       padding: 0.2em;
-       list-style: none;
-       width: 100%;
-       height: 100%;
-       border-bottom: 1px solid #ddd;
-/*     display: inline; */
-}
-div.add_photo p.memory_usage {
-       float: right;
-       font-size: 0.9em;
-       color: #5B5B5B;
-}
-
-div.add_profile_photo{
-       float: left;
-       background: #F7F7F7;
-       border: 1px solid #D2D2D2;      
-       width: 96%;
-       border-radius:.5em;
-       -moz-border-radius: .5em .5em .5em .5em;
-               -moz-box-shadow:.2em .2em .1em #999999;
-    box-shadow: .2em .2em .1em #999999;
-       margin-bottom:.2em;
-
-}
-div.add_profile_photo .profile_photo{    
-       float: left;    
-       padding: 0.5em;
-
-}
-div.add_profile_photo .uploader{    
-       float: left;    
-       width: 50%;
-       padding: 0.5em;
-       border-bottom: 1px solid #ddd;
-}      
-
-div.photo_panel{
-       background: #F7F7F7;
-       float: left;
-       border: 1px solid #D2D2D2;
-       text-align: center;
-       width: 95%;
-       padding: 0.5em;
-       border-radius:.5em;
-       -moz-border-radius: .5em .5em .5em .5em;
-}
-div.photo_panel img{
-       background: #FFFFFF;
-       border: 1px solid #D2D2D2;
-       padding: 0.2em;
-}
-div.photo_panel div.ordering{
-       float:left;
-}
-div.photo_panel div.paginator{
-       float:right;
-}
-div.photo_panel .flc-inlineEditable{
-       width: 604px;
-       margin: 0 auto;
-       padding-top: 0.5em;
-       padding-bottom: 0.5em;
-}
-div.comment_panel{
-       background: #FFFFFF;
-       float: left;
-       border: 1px solid #D2D2D2;
-       width: 95%;
-       padding:.5em;
-       border-radius: .3em .3em .3em .3em;
-       -moz-border-radius: .3em .3em .3em .3em;
-               -moz-box-shadow:.2em .2em .1em #999999;
-    box-shadow: .2em .2em .1em #999999;
-       margin-top:.2em;
-}
-div.comment_panel .comment_feeds{
-       float: left;
-       width: 50%;
-}
-div.comment_panel .photo_actions{
-       margin: 0.5em;
-       max-width: 49%;
-       background: #F7F7F7;
-       float:right;
-       padding:1em;
-       border:thin solid #cccccc;
-       border-radius:.3em;
-       -moz-border-radius: .3em .3em .3em .3em;
-}
-.row textarea#comment_template, textarea#comment_template active{
-       background-color:#eeeeee;
-       border:thin solid #eeeeee;
-       border:thin solid #cccccc;
-       padding:.2em;
-       border-radius:.3em;
-       -moz-border-radius: .3em .3em .3em .3em;
-}
-.row textarea#comment{
-       background-color:#ffffff;
-       border:thin solid #eeeeee;
-       border:thin solid #cccccc;
-       padding:.2em;
-       border-radius:.3em;
-       -moz-border-radius: .3em .3em .3em .3em;
-}
-div.comment_panel textarea{
-       width:100%;
-}
-
-div.comment_box{
-       float:left;
-       width:100%;
-       margin: 0.5em;
-       padding-top: 0.5em;
-       padding-bottom: 0.5em;
-       background: #F7F7F7;
-}
-div.comment_box .comment_actions{
-       float: left;
-       margin-top: 1em;
-       font-size: 0.8em; 
-       color: #666666;
-}
-
-div.edit_photo_frame{
-       width: 95%;     
-       float: left;
-       padding: 0.2em;
-       background: #F7F7F7;
-       border:thin solid #cccccc;
-       border-radius:.5em;
-       -moz-border-radius: .5em .5em .5em .5em;
-}
-div.edit_photo_box{    
-       float: left;
-       border: 1px solid #D2D2D2;
-       background: white;
-       margin: 0.2em;
-       margin-bottom: 0.8em;
-       padding: 0.8em;
-       width: 94%;
-       border-radius:.3em;
-       -moz-border-radius: .3em .3em .3em .3em;
-}
-div.edit_photo_box .info{
-       float: left;
-       width: 60%;
-}
-
-.info textarea{
-       background-color: #eeeeee;
-       border:thin solid #cccccc;
-       border-radius:.3em;
-       -moz-border-radius: .3em .3em .3em .3em;
-       margin-top:.2em;
-}
-div.edit_photo_box .info textarea.alt_text{
-       height: 2.5em;
-}
-div.edit_photo_box .info textarea{
-       width: 100%;
-}
-div.edit_photo_box .action{
-       float: right;
-       background: #F7F7F7;
-       min-width: 140px;
-       padding:.2em;
-       border:thin solid #cccccc;
-       border-radius:.3em;
-       -moz-border-radius: .3em .3em .3em .3em;
-}
-
-
-/* FLUID Image Reorderer */
-.fl-imageReorderer-item {
-}
-.fl-reorderer-movable-hover a{
-       cursor: pointer;
-       background-color: #ECEECC;
-}
-.fl-reorderer-movable-dragging a{
-       background-color: #ECEECC;
-}
-.fl-reorderer-dropMarker {
-       border: 2px solid red;
-       min-height: 100px;
-       float: left;
-}
-.fl-reorderer-avatar {
-       opacity: 0.6;
-       filter:alpha(opacity=60);
-}
-
-
-/* FLUID Simple Inline Editor */
-.fl-inlineEdit-invitation {
-   background-color: #FFECB3 !important;
-   border: 1px solid #CCC !important;
-}
-.fl-inlineEdit-focus {
-    border: 2px solid #777777;
-}
-
-
-.pa_tool_link{
-
-text-decoration:none;
-}
-
-.pa_tool_image{
-vertical-align:middle;
-margin-right:.5em;
-}
index 9eeeca5..f4f60a3 100644 (file)
@@ -45,8 +45,8 @@ define('AT_ADMIN_PRIV_PHOTO_ALBUM', $this->getAdminPrivilege());
 /*******
  * if this module is to be made available to students on the Home or Main Navigation.
  */
-$_group_tool = $_student_tool = AT_PA_BASENAME.'index.php';
-
+//$_group_tool = $_student_tool = AT_PA_BASENAME.'index.php';
+$_student_tool = AT_PA_BASENAME.'index.php';
 $this->_list['pa_photo_gallery'] = array('title_var'=>'pa_photo_gallery','file'=>AT_PA_BASENAME.'sublinks.php');
 $this->_pages[AT_PA_BASENAME.'index.php']['icon']      = 'images/home-directory_sm.png';
 
index 486effa..41c7026 100644 (file)
@@ -16,7 +16,7 @@ define('AT_INCLUDE_PATH', '../../../include/');
 require (AT_INCLUDE_PATH.'vitals.inc.php');
 include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
 include (AT_PA_INCLUDE.'lib.inc.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 $_custom_head .= '<script type="text/javascript" src="'.AT_PA_BASENAME.'include/imageReorderer.js"></script>';
 
 $aid = intval($_GET['aid']);
index 55a16ee..307d77c 100644 (file)
@@ -17,7 +17,7 @@ define('AT_INCLUDE_PATH', '../../../include/');
 require (AT_INCLUDE_PATH.'vitals.inc.php');
 include (AT_PA_INCLUDE.'lib.inc.php');
 include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 
 //instantiate obj
 $pa = new PhotoAlbum();
index bbc3024..c34ad80 100644 (file)
@@ -15,7 +15,7 @@ define('AT_INCLUDE_PATH', '../../../include/');
 require (AT_INCLUDE_PATH.'vitals.inc.php');
 include (AT_PA_INCLUDE.'lib.inc.php');
 include (AT_PA_INCLUDE.'classes/PhotoAlbum.class.php');
-$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
+//$_custom_css = $_base_path . AT_PA_BASENAME . 'module.css'; // use a custom stylesheet
 
 //instantiate obj
 $pa = new PhotoAlbum();
index 064cafa..38c4a5d 100644 (file)
@@ -29,6 +29,7 @@ class StudentToolsUtil {
        {\r
                global $db;\r
                \r
+               $student_tools = array();\r
                $sql = "SELECT links FROM ".TABLE_PREFIX."fha_student_tools WHERE course_id=$course_id";\r
                $result = mysql_query($sql, $db);\r
                if ($row = mysql_fetch_assoc($result)) {\r
index aa2a24e..282530f 100644 (file)
@@ -70,7 +70,7 @@ jQuery(document).ready(function () {
 function remove_module(module)
 {
        jQuery.post("'.AT_BASE_HREF.'move_module.php", { "remove":module, "from":"student_tools" }, function(data) {});
-       jQuery("div[id="+module.replace(/\//g,"-")+"]").remove();
+       jQuery("div[id=\""+module.replace(/\//g,"-")+"\"]").remove();
 }
 
 </script>
index 74e72dc..0785383 100644 (file)
@@ -16,7 +16,8 @@ define('AT_INCLUDE_PATH', '../../../include/');
 require(AT_INCLUDE_PATH.'vitals.inc.php');\r
 \r
 authenticate(AT_PRIV_TESTS);\r
-$tid = $_REQUEST['tid'];\r
+$tid = intval($_REQUEST['tid']);\r
+$qid = intval($_GET['qid']);\r
 \r
 $_pages['mods/_standard/tests/results_quest_long.php']['title_var']  = 'view_responses';\r
 $_pages['mods/_standard/tests/results_quest_long.php']['parent'] = 'mods/_standard/tests/results_all_quest.php?tid='.$tid;\r
@@ -36,7 +37,7 @@ if ($_POST['back']) {
 \r
 require(AT_INCLUDE_PATH.'header.inc.php');\r
 \r
-$sql   = "SELECT title FROM ".TABLE_PREFIX."tests WHERE test_id=$_GET[tid]";\r
+$sql   = "SELECT title FROM ".TABLE_PREFIX."tests WHERE test_id=$tid";\r
 $result = mysql_query($sql, $db);\r
 $row = mysql_fetch_array($result);\r
 \r
@@ -51,7 +52,7 @@ echo '<br /><p>'._AT('response_text').' <strong>'.AT_print(urldecode($_GET['q'])
 //get the answers\r
 $sql = "SELECT count(*), A.answer\r
                FROM ".TABLE_PREFIX."tests_answers A, ".TABLE_PREFIX."tests_results R\r
-               WHERE A.question_id=".$_GET['qid']." AND R.result_id=A.result_id AND R.final_score<>'' AND R.test_id=".$_GET['tid']."\r
+               WHERE A.question_id=$qid AND R.result_id=A.result_id AND R.final_score<>'' AND R.test_id=$tid\r
                GROUP BY A.answer\r
                ORDER BY A.answer";\r
 \r
@@ -72,4 +73,4 @@ echo '</div>';
 echo '</div></form>';\r
 \r
 require(AT_INCLUDE_PATH.'footer.inc.php');\r
-?>
\ No newline at end of file
+?>\r
index 9b12c91..7eb9da5 100644 (file)
@@ -240,7 +240,8 @@ if (!isset($_REQUEST['gid']) && !$in_progress) {
        <div class="row buttons">
                <input type="submit" name="submit" value="<?php echo _AT('submit'); ?>" accesskey="s" onclick="confirmSubmit(this, '<?php echo $addslashes(_AT("test_confirm_submit")); ?>'); return false;"/>
        </div>
+       </fieldset>
 </div>
 </form>
-<script type="text/javascript" src="<?php echo $_base_href;?>/mods/_standard/tests/lib/take_test.js">
+<script type="text/javascript" src="<?php echo $_base_href;?>/mods/_standard/tests/lib/take_test.js"></script>
 <?php require(AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
index cea10b2..ee9de9e 100644 (file)
@@ -275,6 +275,7 @@ if (!$result || !$question_row) {
                        <input type="submit" name="next" value="<?php echo _AT('next'); ?>" accesskey="s" />
                <?php endif; ?>
        </div>
+       </fieldset>
 </div>
 </form>
 <script type="text/javascript" src="<?php echo $_base_href;?>/mods/_standard/tests/lib/take_test.js">
index b34bc62..573ac9a 100644 (file)
@@ -16,9 +16,12 @@ $_pages['mods/_core/content/index.php']['children'][]  = 'mods/_standard/tracker
 \r
 $_pages['mods/_standard/tracker/tools/index.php']['title_var'] = 'content_usage';\r
 $_pages['mods/_standard/tracker/tools/index.php']['parent']    = 'mods/_core/content/index.php';\r
-$_pages['mods/_standard/tracker/tools/index.php']['children']  = array('mods/_standard/tracker/tools/student_usage.php', 'mods/_standard/tracker/tools/reset.php');\r
+$_pages['mods/_standard/tracker/tools/index.php']['children']  = array('mods/_standard/tracker/tools/student_usage.php', 'mods/_standard/tracker/tools/reset.php','mods/_standard/tracker/tools/export.php');\r
 $_pages['mods/_standard/tracker/tools/index.php']['guide']     = 'instructor/?p=content_usage.php';            \r
 \r
+       //$_pages['mods/_standard/tracker/tools/page_student_stats.php']['title_var']  = 'page_stats';\r
+       //$_pages['mods/_standard/tracker/tools/page_student_stats.php']['parent'] = 'mods/_standard/tracker/tools/index.php';\r
+\r
        $_pages['mods/_standard/tracker/tools/student_usage.php']['title_var']  = 'member_stats';\r
        $_pages['mods/_standard/tracker/tools/student_usage.php']['parent'] = 'mods/_standard/tracker/tools/index.php';\r
 \r
index 9aa633e..7fd69d3 100644 (file)
@@ -12,10 +12,10 @@ foreach ($media_matches as $media_match) {
        $width = $media_match[2];
        $height = $media_match[3];
        if($width == ''){
-               $width = "425";
+               $width = DEFAULT_VIDEO_PLAYER_WIDTH;
        }
        if($height == ''){
-               $height = "350";
+               $height = DEFAULT_VIDEO_PLAYER_HEIGHT;
        }
        $video_id = $media_match[4];
 
index 7b6e11b..406dd3d 100644 (file)
@@ -254,7 +254,7 @@ if (isset($_POST['cancel'])) {
                               '$_POST[phone]', 
                               $status, 
                               '$_config[pref_defaults]', 
-                              now(),
+                              '$now',
                               '$_SESSION[lang]', 
                               $_config[pref_inbox_notify], 
                               $_POST[private_email], 
@@ -355,4 +355,4 @@ $savant->assign('languageManager', $languageManager);
 
 $savant->display('registration.tmpl.php');
 
-?>
\ No newline at end of file
+?>
index 9b7e518..fcde121 100644 (file)
@@ -6,7 +6,7 @@ $compact_title = str_replace(' ', '', $this->title);
 ?>
 
 <br />
-<h4 class="box"><span><?php echo $this->title ?></span><input class="fl-force-right" src="" alt="" title="" type="image" /></h4>
+<h2 class="box"><span><?php echo $this->title ?></span><input class="fl-force-right" src="" alt="" title="" type="image" /></h2>
 <div class="box" id="menu_<?php echo $compact_title ?>">
        <?php echo $this->dropdown_contents; ?>
 </div>
index d9c5752..9f766c7 100644 (file)
@@ -106,4 +106,14 @@ white-space:normal;
 }
 table.etabbed-table{
 margin-right: 4em;
+}
+div.details-text img{
+       float:right;
+       clear:right;
+       padding-left:.2em;
+}
+
+div.details-text{
+       line-height:1.5em;
+       margin-right:.2em;
 }
\ No newline at end of file
index 781cabd..5b7f4c6 100644 (file)
@@ -941,7 +941,7 @@ div.tabs a:hover, div.tabs a.active {
 }
 
 
-h4.box {
+h2.box {
        font-size: x-small;
        background-color: #DEE7EC;
        color: black;
@@ -1331,9 +1331,9 @@ dl#public-profile dd {
 }
 
 /** forum stuff **/
-#forum-thread li { clear:left; border:1px solid #eee; border-bottom: 1px solid #f0f0f0; float:left; width: 98%; list-style: none; }
-#forum-thread li.even { background: #fdfdfd; border-top: none; }
-#forum-thread li.odd { background: #fff; }
+.forum-thread li { clear:left; border:1px solid #eee; border-bottom: 1px solid #f0f0f0; float:left; width: 98%; list-style: none; }
+.forum-thread li.even { background: #fdfdfd; border-top: none; }
+.forum-thread li.odd { background: #fff; }
 div.forum-post-author { float:left; width:150px; padding:8px 10px; }
 div.forum-post-author a.title {        font-size: 1.1em; line-height: 1.2em; font-weight: bold; text-decoration:none; }        
 div.forum-post-author img.profile-picture { border: 2px solid #f0f0f0; }
@@ -1542,8 +1542,8 @@ div#menutoggle{
          min-width:30em;
          border-radius: .5em .5em .5em .5em;
        -moz-border-radius: .5em .5em .5em .5em;
-       -moz-box-shadow:.2em .2em .2em #999999;
-        box-shadow: .2em .2em  .2em #999999;
+/*     -moz-box-shadow:.2em .2em .2em #999999;
+        box-shadow: .2em .2em  .2em #999999;*/
 }
 /* berence Editor tabs */
 /* Preferences tabs */
@@ -2003,3 +2003,442 @@ fieldset.group_form legend{
 div.input-form{
        width:95%;      
 }
+
+/*  Photo Album Styles 
+ * 
+ * 
+ * 
+ * 
+ */
+div.topbar{
+       float:left;
+       width: 95%;
+}
+div.paginator{
+       float: right;
+       margin: 0px;
+}
+.paginator ul li{
+       list-style: none;
+}
+.paginator li{
+       padding-right: 0.5em;
+       float: left;
+}
+
+div.summary{
+       float: left;
+       margin-top: 0.5em;
+       width:70%;
+}
+
+div.album_panel{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+       -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       padding:.3em;
+}
+div.album_panel div.photo_wrapper {
+       /* This class is to fix the problem where the images shift
+        * to the right when there is a border upon selection 
+        */
+       height: 150px;
+       float: left;
+}
+div.album_panel .photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 140px;
+       min-width: 140px;
+       text-align: center;
+}
+div.album_panel .photo_frame a:focus, div.album_panel .photo_frame a:hover{
+       cursor: pointer;
+       float:left;
+       min-width: 140px;
+       min-height: 140px;
+       background: #FCE6C9;
+}
+div.album_panel .photo_frame img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.album_panel .album_description{
+       margin: 0.5em;
+       width: 95%;
+       float: left;
+}
+
+div.search_bar {
+       /* background-image: url('images/search_bg.png');
+       background-repeat: no-repeat; */
+       background-color:#ffffff;
+       border:thin solid #cccccc;
+       margin-left: 0.5em;
+       margin-top: 0.5em;
+       height: 27px;
+       width: 180px;
+       float: left;
+       border-radius:.5em;
+       -moz-border-radius:.8em .8em .8em .8em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.search_bar .s{
+       float: left;
+       border: 0px;
+       margin-top: 0.3em;
+       margin-left: 0.5em;
+       width: 148px;
+}
+div.search_bar .s_img{
+       float: right;
+       border: 0px;
+       margin-top: 0.375em;    
+       margin-top: -1.4em\9; /* the \9 to accomodate IE 7&8 */
+       margin-right: 0.4em;
+}
+
+div.album {
+       background: #FFFFFF;
+       padding:1em;
+       border: 1px solid #D2D2D2;      
+       width: 95%;
+       margin: 0.5em;
+       float: left;
+       border-radius:.5em .5em .5em .5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.album .image{
+       float: left;
+       margin: 0.5em;
+       min-width: 140px;
+}
+div.album img{
+       border-width: 0px;
+}
+div.album .image img.no-image {
+       float: left;
+       width: 130px;
+       height: 97px;
+       background-color: #EFEFEF;
+}
+div.album .info{
+       float: left;
+       width: 70%;
+}
+div.album .info span{
+       float: left;
+       color: #666666;
+}
+div.album .info p{
+       font-size: 0.85em;
+       margin: 0;
+}
+div.album .search_photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 160px;
+       max-height: 160px;
+       max-width: 140px;
+       text-align: center;
+       border: 1px solid #d3d3d3;
+       overflow: hidden;
+}
+div.album .search_slider{
+       float: left;
+       overflow: hidden;
+       position: relative;     /* ie7 */
+}
+div.album .search_slider_left{
+       float: left;
+       width: 10%;
+}
+div.album .search_slider_right{
+       float: right;
+       text-align: right;
+       width: 10%;
+}
+div.album .search_slider ul {
+       list-style-type: none;
+       margin: 0;
+       padding: 0;
+       width: 99999px;
+       position: relative;
+}
+div.album .search_slider ul li{
+       float: left;
+}
+div.album .search_slider_a{
+       width: 80%;
+}
+div.album .search_slider_p{
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_slider_p ul li{
+/*     height: 576px;  /* 144 per frame, 4 row */
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_paginator {
+       width: 100%;
+}
+
+div.add_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-bottom:.2em;
+}
+div.add_photo ul{
+       margin: 0px;
+       padding: 0px;
+}
+div.add_photo .toggle_uploader{
+       width: 95%;
+       margin: 0.5em;
+}
+div.add_photo div#ajax_uploader{
+       display: none;
+       margin-top: 0.5em;
+}
+div.add_photo .files .tn {
+       max-height: 30px;
+}
+div.add_photo img{
+       border: 0;
+}
+div.add_photo ul li{
+       float: left;
+       padding: 0.2em;
+       list-style: none;
+       width: 100%;
+       height: 100%;
+       border-bottom: 1px solid #ddd;
+/*     display: inline; */
+}
+div.add_photo p.memory_usage {
+       float: right;
+       font-size: 0.9em;
+       color: #5B5B5B;
+}
+
+div.add_profile_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-bottom:.2em;
+
+}
+div.add_profile_photo .profile_photo{    
+       float: left;    
+       padding: 0.5em;
+
+}
+div.add_profile_photo .uploader{    
+       float: left;    
+       width: 50%;
+       padding: 0.5em;
+       border-bottom: 1px solid #ddd;
+}      
+
+div.photo_panel{
+       background: #F7F7F7;
+       float: left;
+       border: 1px solid #D2D2D2;
+       text-align: center;
+       width: 95%;
+       padding: 0.5em;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.photo_panel img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.photo_panel div.ordering{
+       float:left;
+}
+div.photo_panel div.paginator{
+       float:right;
+}
+div.photo_panel .flc-inlineEditable{
+       width: 604px;
+       margin: 0 auto;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+}
+div.comment_panel{
+       background: #FFFFFF;
+       float: left;
+       border: 1px solid #D2D2D2;
+       width: 95%;
+       padding:.5em;
+       border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-top:.2em;
+}
+div.comment_panel .comment_feeds{
+       float: left;
+       width: 50%;
+}
+div.comment_panel .photo_actions{
+       margin: 0.5em;
+       max-width: 49%;
+       background: #F7F7F7;
+       float:right;
+       padding:1em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment_template, textarea#comment_template active{
+       background-color:#eeeeee;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment{
+       background-color:#ffffff;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.comment_panel textarea{
+       width:100%;
+}
+
+div.comment_box{
+       float:left;
+       width:100%;
+       margin: 0.5em;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+       background: #F7F7F7;
+}
+div.comment_box .comment_actions{
+       float: left;
+       margin-top: 1em;
+       font-size: 0.8em; 
+       color: #666666;
+}
+
+div.edit_photo_frame{
+       width: 95%;     
+       float: left;
+       padding: 0.2em;
+       background: #F7F7F7;
+       border:thin solid #cccccc;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.edit_photo_box{    
+       float: left;
+       border: 1px solid #D2D2D2;
+       background: white;
+       margin: 0.2em;
+       margin-bottom: 0.8em;
+       padding: 0.8em;
+       width: 94%;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.edit_photo_box .info{
+       float: left;
+       width: 60%;
+}
+
+.info textarea{
+       background-color: #eeeeee;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-top:.2em;
+}
+div.edit_photo_box .info textarea.alt_text{
+       height: 2.5em;
+}
+div.edit_photo_box .info textarea{
+       width: 100%;
+}
+div.edit_photo_box .action{
+       float: right;
+       background: #F7F7F7;
+       min-width: 140px;
+       padding:.2em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+
+
+/* FLUID Image Reorderer */
+.fl-imageReorderer-item {
+}
+.fl-reorderer-movable-hover a{
+       cursor: pointer;
+       background-color: #ECEECC;
+}
+.fl-reorderer-movable-dragging a{
+       background-color: #ECEECC;
+}
+.fl-reorderer-dropMarker {
+       border: 2px solid red;
+       min-height: 100px;
+       float: left;
+}
+.fl-reorderer-avatar {
+       opacity: 0.6;
+       filter:alpha(opacity=60);
+}
+
+
+/* FLUID Simple Inline Editor */
+.fl-inlineEdit-invitation {
+   background-color: #FFECB3 !important;
+   border: 1px solid #CCC !important;
+}
+.fl-inlineEdit-focus {
+    border: 2px solid #777777;
+}
+
+
+.pa_tool_link{
+
+text-decoration:none;
+}
+
+.pa_tool_image{
+vertical-align:middle;
+margin-right:.5em;
+}
+
+
+/* End Photo Album Styles
+ * 
+ * 
+ * 
+ * 
+ */
diff --git a/docs/themes/default/__MACOSX/simplified-desktop/._theme.cfg.php b/docs/themes/default/__MACOSX/simplified-desktop/._theme.cfg.php
deleted file mode 100644 (file)
index fe1219e..0000000
Binary files a/docs/themes/default/__MACOSX/simplified-desktop/._theme.cfg.php and /dev/null differ
diff --git a/docs/themes/default/__MACOSX/simplified-desktop/._theme_info.xml b/docs/themes/default/__MACOSX/simplified-desktop/._theme_info.xml
deleted file mode 100644 (file)
index 05d72a2..0000000
Binary files a/docs/themes/default/__MACOSX/simplified-desktop/._theme_info.xml and /dev/null differ
index f4f723a..6ff3c3c 100644 (file)
@@ -39,8 +39,8 @@ if ($_SESSION["prefs"]["PREF_SHOW_CONTENTS"] && $this->content_table <> "") {
 <?php if (!empty($this->test_ids)): ?>\r
 <div id="content-test" class="input-form">\r
        <ol>\r
-               <strong><?php echo _AT('tests') . ':' ; ?></strong>\r
-               <li class="top-tool"><?php echo $this->test_message; ?></li>\r
+               \r
+               <li><strong><?php echo _AT('tests') . ':' ; ?></strong>\r
                <ul class="tools">\r
                <?php \r
                        foreach ($this->test_ids as $id => $test_obj){\r
@@ -56,10 +56,9 @@ if ($_SESSION["prefs"]["PREF_SHOW_CONTENTS"] && $this->content_table <> "") {
 <?php\r
 \r
 if (!empty($this->forum_ids)): ?>\r
-<div id="content-test" class="input-form">\r
+<div id="content-forum" class="input-form">\r
     <ol>\r
-        <strong><?php echo _AT('forums') . ':' ; ?></strong>\r
-        <li class="top-tool"><?php echo $this->forum_message; ?></li>\r
+        <li><strong><?php echo _AT('forums') . ':' ; ?></strong>\r
             <ul class="tools">\r
                 <?php\r
                 foreach ($this->forum_ids as $id => $forum_obj) {\r
index e3708d0..fa83a75 100644 (file)
@@ -8,8 +8,8 @@ div.input-form {
        background-color: #F8F8F8;\r
        border-radius:.5em;\r
        -moz-border-radius: .5em .5em .5em .5em;\r
-    -moz-box-shadow:.1em .1em .2em #999999;\r
-    box-shadow: .1em .1em .2em #999999;\r
+/*    -moz-box-shadow:.1em .1em .2em #999999;\r
+    box-shadow: .1em .1em .2em #999999;*/\r
        padding:.2em;\r
 }\r
 \r
@@ -45,7 +45,7 @@ div.input-form textarea {
        *width:400px;\r
        padding: 2px;\r
        margin-right: 2px;\r
-       font-size:100%;\r
+/*     font-size:100%;*/\r
 }\r
 \r
 div.input-form input[type=text], div.input-form input[type=password] {\r
@@ -64,7 +64,7 @@ div.input-form textarea:focus, div.input-form  input[type=password]:focus, div.i
 input[type=checkbox]{\r
 \r
        background-color: #FFDAB9;\r
-font-size:100%;\r
+/*font-size:100%;*/\r
 \r
 }\r
 \r
@@ -95,41 +95,41 @@ div.input-form div.row_alternatives {
 input[type=text]{\r
        border-radius:.3em;\r
        -moz-border-radius: .3em .3em .3em .3em;\r
-       font-size:100%;\r
+/*     font-size:100%;*/\r
 }\r
 input[type=password]{\r
        border-radius:.3em;\r
        -moz-border-radius: .3em .3em .3em .3em;\r
-       font-size:100%;\r
+/*     font-size:100%;*/\r
 }\r
 \r
 input[type=submit]{\r
        border-radius:.3em;\r
        -moz-border-radius: .3em .3em .3em .3em;\r
-       font-size:100%;\r
+/*     font-size:100%;*/\r
 }\r
 \r
 input[type=reset]{\r
        border-radius:.3em;\r
        -moz-border-radius: .3em .3em .3em .3em;\r
-       -moz-box-shadow:.2em .2em .3em #999999;\r
-       box-shadow: .2em .2em .3em #999999;\r
+/*     -moz-box-shadow:.2em .2em .3em #999999;\r
+       box-shadow: .2em .2em .3em #999999;*/\r
 }\r
 \r
 div.input-form input[type=submit]{\r
        border-radius:.3em;\r
        -moz-border-radius: .3em .3em .3em .3em;\r
-       -moz-box-shadow:.1em .1em .2em #999999;\r
-        box-shadow: .1em .1em .2em #999999;\r
-       font-size:100%;\r
+/*     -moz-box-shadow:.1em .1em .2em #999999;\r
+        box-shadow: .1em .1em .2em #999999;*/\r
+/*     font-size:100%;*/\r
 }\r
 select{\r
        background-color:#eeeeee;\r
        border-radius: .2em .2em .2em .2em;\r
        -moz-border-radius: .2em .2em .2em .2em;\r
-       -moz-box-shadow:.2em .2em .3em #999999;\r
-       box-shadow: .2em .2em .3em #999999;\r
-       font-size:100%;\r
+/*     -moz-box-shadow:.2em .2em .3em #999999;\r
+       box-shadow: .2em .2em .3em #999999;*/\r
+/*     font-size:100%;*/\r
 }\r
 .test_instruction{\r
        background-color: #f3f3f3; \r
index b96c18f..54267ef 100644 (file)
@@ -9,21 +9,6 @@
 }
 
 
-ul#topnavlist {
-       zoom:100%;
-       margin:0px;
-       position:absolute;
-       top:5.3em;
-}
-
-ul#topnavlist li {
-       zoom:100%;
-       padding:0.3em;
-       margin-bottom:-3px;
-       border-bottom:0;
-       min-height:3.5em;
-
-}
 
 label {
        zoom:100%;
@@ -40,6 +25,32 @@ table.data tfoot input {
        border-bottom:0;
 }
 
+ul#topnavlist li {
+       margin-bottom:-3em;
+       *display: inline;
+}
+
+ul#topnavlist {
+       zoom:100%;
+       margin:0px;
+       position:absolute;
+       top:5em;
+}
+
+ul#topnavlist li {
+       zoom:100%;
+       padding:0.3em;
+       margin-bottom:-3px;
+       border-bottom:0;
+       min-height:3.5em;
+
+}
+ul#topnavlist li a:hover, ul#topnavlist li a:focus, ul#topnavlist li a.active {
+       margin-bottom:-25px;    
+       padding: .2em 1.8em .1em 1.8em;
+       border-bottom: none;
+}
+
 #header{
        height: 5.0em;
        margin-bottom:.1em;
@@ -59,15 +70,22 @@ div#top-links a:active{
        height:9.6em;
 }
 
-ul#topnavlist li {
-       margin-bottom:-3em;
-       *display: inline;
-}
 
 ul#subnavlist li {
        *display: inline;
        margin-right:.5em;
+       
+
 }
+ul#subnavlist li a:hover, ul#subnavlist li a:focus, ul#subnavlist li.active, ul#subnavlist li:hover{
+       color: black;
+       text-decoration:none;
+       background-color: #F8F8F8;
+       border-bottom:thin solid #F8F8F8;
+
+
+}
+
 fieldset.group_form{
        padding:.5em;
        padding-bottom:2em;
@@ -144,6 +162,7 @@ ul.current_list{
 #top-links-jump{
        background-color:#eeeeee;
        padding-right:.5em;
+
 }
 div#top-links {
        white-space:nowrap;
@@ -156,8 +175,8 @@ div#top-links {
        margin-top:0em;
 }
 #course_title_container{
-       margin-top:-1em;
-
+       margin-top:-2em;
+       *margin-top:-1em;
 }
 h1#section-title {
        margin-top:.5em;
@@ -185,7 +204,7 @@ div#guide_box{
 }
 
 .logoutbar{
-       margin-top:-.2em;       
+       margin-top:-2.5em;      
 }
 textarea#body_text{
        *width:600px;
index 0db523a..99107f4 100644 (file)
Binary files a/docs/themes/default/images/atutor_head.jpg and b/docs/themes/default/images/atutor_head.jpg differ
index 726d26c..19f575a 100644 (file)
@@ -5,7 +5,7 @@ global $_base_path;
 $compact_title = str_replace(' ', '', $this->title);
 ?>
 <br />
-<h4 class="box"><span><?php echo $this->title ?></span><input class="fl-force-right" src="" alt="" title="" type="image" /></h4>
+<h2 class="box"><span><?php echo $this->title ?></span><input class="fl-force-right" src="" alt="" title="" type="image" /></h2>
 <div class="box" id="menu_<?php echo $compact_title ?>">
        <?php echo $this->dropdown_contents; ?>
 </div>
index 75795a9..335301a 100644 (file)
@@ -63,6 +63,7 @@ global $system_courses, $_custom_css, $db;
        <base href="<?php echo $this->content_base_href; ?>" />
        <link rel="shortcut icon" href="<?php echo $this->base_path; ?>favicon.ico" type="image/x-icon" />
        <link rel="stylesheet" href="<?php echo $this->base_path.'themes/'.$this->theme; ?>/print.css" type="text/css" media="print" />
+       <link rel="stylesheet" href="<?php echo $this->base_path.'jscripts/infusion/framework/fss/css/fss-layout.css'; ?>" type="text/css" />
        <link rel="stylesheet" href="<?php echo $this->base_path.'themes/'.$this->theme; ?>/styles.css" type="text/css" />
        <!--[if IE]>
          <link rel="stylesheet" href="<?php echo $this->base_path.'themes/'.$this->theme; ?>/ie_styles.css" type="text/css" />
@@ -71,13 +72,16 @@ global $system_courses, $_custom_css, $db;
          <link rel="stylesheet" href="<?php echo $this->base_path.'themes/'.$this->theme; ?>/ie8_styles.css" type="text/css" />
        <![endif]-->
     <link rel="stylesheet" href="<?php echo $this->base_path.'themes/'.$this->theme; ?>/forms.css" type="text/css" />
-<link rel="stylesheet" type="text/css" href="<?php echo $this->base_path; ?>jscripts/infusion/framework/fss/css/fss-layout.css" />
 
 <?php if (isset($this->course_id) && $system_courses[$this->course_id]['rss']): ?>
        <link rel="alternate" type="application/rss+xml" title="<?php echo SITE_NAME; ?> - RSS 2.0" href="<?php echo $this->base_href; ?>get_rss.php?<?php echo $this->course_id; ?>-2" />
        <link rel="alternate" type="application/rss+xml" title="<?php echo SITE_NAME; ?> - RSS 1.0" href="<?php echo $this->base_href; ?>get_rss.php?<?php echo $this->course_id; ?>-1" />
 <?php endif; ?>
-       <script src="<?php echo $this->base_path; ?>jscripts/infusion/InfusionAll.js" type="text/javascript"></script>
+
+    <!-- Fluid and jQuery Dependencies -->
+    <script type="text/javascript" src="<?php echo $this->base_href; ?>jscripts/infusion/InfusionAll.js"></script>
+    <script type="text/javascript" src="<?php echo $this->base_href; ?>jscripts/infusion/framework/enhancement/js/ProgressiveEnhancement.js"></script>
+        
        <script language="javascript" type="text/javascript">
        //<!--
        jQuery.noConflict();
@@ -93,7 +97,7 @@ global $system_courses, $_custom_css, $db;
 <div id="header">
 <div class="bypass">
        <a href="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); ?>#content" accesskey="c">
-       <img src="<?php echo $this->base_path; ?>images/clr.gif" height="1" width="1" border="0" alt="<?php echo _AT('goto_content'); ?> ALT+c" /></a>          
+       <img src="<?php echo $this->base_path; ?>images/clr.gif" height="1" width="1" border="0" alt="<?php echo _AT('goto_content'); ?> ALT+c" /></a>
 
        <a href="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); ?>#menu<?php echo htmlentities_utf8($_REQUEST['cid']);  ?>"  accesskey="m"><img src="<?php echo $this->base_path; ?>images/clr.gif" height="1" width="1" border="0" alt="<?php echo _AT('goto_menu'); ?> ALT+m" /></a>
 </div> 
index 08ebb6a..1ffcdfc 100644 (file)
@@ -57,12 +57,14 @@ if($this->view_mode==0){
 <?php                  }  // end of foreach
                }// end of inner inner if
        } ?>
+
        </div> 
+       <br style="clear:both;" />&nbsp;
 <?php
 } // end of if
 
 if ($this->announcements): ?>
-
+       <br style="clear:both;" />
 <h2 class="page-title"><?php echo _AT('announcements'); ?></h2>
        <?php foreach ($this->announcements as $item): ?>
                <div class="news">
@@ -93,7 +95,7 @@ function print_sublinks($link){
                <div class="outside_box">
 <?php if (authenticate(AT_PRIV_ADMIN,AT_PRIV_RETURN)) {?>
                        <div class="buttonbox">
-                       <a href="#" onclick="javascript: remove_module('<?php echo htmlentities(substr($link['url'], strlen($_base_path))); ?>'); return false;"><img src="<?php echo AT_BASE_HREF; ?>images/x.gif" border="0" alt="<?php echo _AT('close'); ?>" class="img1616"/></a>
+                       <input type="image" onclick="javascript: remove_module('<?php echo htmlentities(substr($link['url'], strlen($_base_path))); ?>');" src="<?php echo AT_BASE_HREF; ?>images/x.gif" alt="<?php echo _AT('close'); ?>" value="<?php echo _AT('close'); ?>" class="img1616"/>
                        </div>
 <?php }?>
                        <img src="<?php echo $link['img']; ?>" alt="" border="0" style="vertical-align:middle;" class="img-size-home"/>
index d58abe0..e7cd20d 100644 (file)
@@ -9,13 +9,15 @@
        if ($_SESSION['course_id'] && ($course_album_privilege || true)): ?>
        <div class="row">
                <div class="left_row"<label for="album_type"><?php echo _AT('pa_album_type'); ?></label></div>
-               <label for="my_album"><?php echo _AT('pa_my_albums'); ?><label><input type="radio" name="album_type" id="my_album" value="1" checked="checked" />
+               <label for="my_album"><?php echo _AT('pa_my_albums'); ?></label><input type="radio" name="album_type" id="my_album" value="1" checked="checked" />
+       <?php  if($_SESSION['is_admin']){?>
                <label for="course_album"><?php echo _AT('pa_course_albums'); ?></label><input type="radio" name="album_type" id="course_album" value="2" />
+       <?php }?>
        </div>
        <?php endif; ?>
        <div class="row">
                <div class="left_row"<label for="album_permission"><?php echo _AT('pa_album_permission'); ?></label></div>
-               <label for="album_permission_private"><?php echo _AT('pa_private'); ?><label><input type="radio" name="album_permission" id="album_permission_private" value="0" checked="checked" />
+               <label for="album_permission_private"><?php echo _AT('pa_private'); ?></label><input type="radio" name="album_permission" id="album_permission_private" value="0" checked="checked" />
                <label for="album_permission_shared"><?php echo _AT('pa_shared'); ?></label><input type="radio" name="album_permission" id="album_permission_shared" value="1" />
        </div>
        <div class="row">
@@ -31,4 +33,4 @@
                <input name="cancel" type="submit" value="<?php echo _AT('cancel');?>" class="button"/>
        </div>
 </form>
-</div>
\ No newline at end of file
+</div>
index ceb430b..139fc56 100644 (file)
@@ -2,7 +2,7 @@
        <div class="album_panel">
                <?php if(!empty($this->photos)): ?>
                <p><?php echo _AT('pa_organize_photo_blurb'); ?></p>
-               <form action="<?php echo 'edit_photos.php?aid='.$this->album_info['id'].SEP.'org=1'; ?>" id="reorder-images-form" class="flc-imageReorderer fl-imageReorderer fl-reorderer-horizontalLayout" style="float:left;">
+               <form action="<?php echo AT_PA_BASENAME . 'edit_photos.php?aid='.$this->album_info['id'].SEP.'org=1'; ?>" id="reorder-images-form" class="fl-reorderer-horizontalLayout" style="float:left;">
                <!-- loop through this -->
                <?php foreach($this->photos as $key=>$photo):?>
                <div class="photo_wrapper">
@@ -24,5 +24,5 @@
 </div>
 
 <script type="text/javascript">
-       demo.formBasedImageReorderer(); 
+       atutor.formBasedImageReorderer();       
 </script>
index e10d306..62830d3 100644 (file)
@@ -100,4 +100,15 @@ table.etabbed-table        {
 }
 #subnavlist{
        *margin-right:4em;
+}
+
+div.details-text img{
+       float:right;
+       clear:right;
+       padding-left:.2em;
+}
+
+div.details-text{
+       line-height:1.5em;
+       margin-right:.2em;
 }
\ No newline at end of file
index e196044..230b2e7 100644 (file)
@@ -12,8 +12,9 @@
        }
        //take out double quotes until there is a way to escape XSS from the ajax script.
        $last_search = preg_replace('/\"/', '', $last_search);
+       $search_field = htmlentities_utf8($this->search_field);
 ?>
-<?php print_paginator($this->page, $this->num_pages, 'search_friends='.$this->search_field, 1);  ?>
+<?php print_paginator($this->page, $this->num_pages, 'search_friends='.$search_field, 1);  ?>
 
 <div class="input-form" style="float:right; width:34%;padding:1em;min-height:4.5em;">
        <div class="contentrow">
@@ -74,4 +75,4 @@
 </div>
 
 <div style="clear:both;"></div>
-<?php print_paginator($this->page, $this->num_pages, 'search_friends='.$this->search_field, 1);  ?>
+<?php print_paginator($this->page, $this->num_pages, 'search_friends='.$search_field, 1);  ?>
index efb76dd..60f7e6b 100644 (file)
@@ -13,22 +13,21 @@ html,body{
 /* main body attributes STARTED HERE */
 body {
        font-family: Verdana, Helevetica, Arial, sans-serif;
+       font-size:.8em;
        margin:0px;
-       margin-top: -10px;
-       background-color: #EDE7C2;
+       background-color: #F2F9FA;
 }
 .page_wrapper{
-       border:1px solid #aaaaaa;
-       width:97%;
+/*     border:1px solid #aaaaaa;*/
+       width:100%;
        margin-left:auto;
        margin-right:auto;
-       margin-top:1em;
        background-color: #ffffff;
        border-radius: 1em 1em 1em 1em;
        -moz-border-radius: 1em 1em 1em 1em;
-       -moz-box-shadow:.1em .1em  #999999;
-       box-shadow: .1em .1em  #999999;
-       background-image: url('images/atutor_head.jpg');
+/*     -moz-box-shadow:.1em .1em  #999999;
+       box-shadow: .1em .1em  #999999;*/
+/*     background-image: url('images/atutor_head.jpg');*/
        background-position: 0% 0%;
        background-repeat: repeat-x;
     background-size:auto auto;
@@ -38,7 +37,7 @@ p {
        margin: 0.5em 0em 1em 0em;
        text-align: justify;
        line-height: 150%;
-       font-size: 1em;
+/*     font-size: 1em;*/
 }
 
 p a {
@@ -73,6 +72,9 @@ h2 {
 h2.sidebox{
        font-size: 110%;
 }
+h2.box{
+       font-size: 110%;
+}
 h3 {
        font-size: 130%;
 }
@@ -172,9 +174,9 @@ a.dropdown-title {
        border:  #AAA  solid 1px;
        border-radius: .3em .3em .3em .3em;
        -moz-border-radius: .3em .3em .3em .3em;
-       -moz-box-shadow:.1em .1em .2em #999999;
-       box-shadow: .1em .1em .2em #999999;
-       font-size:100%;
+/*     -moz-box-shadow:.1em .1em .2em #999999;
+       box-shadow: .1em .1em .2em #999999;*/
+/*     font-size:100%;*/
 
 }
 .button:focus {
@@ -260,7 +262,6 @@ a .highlight{
 /* edit content tabs */
 .buttontab {
        color:#555;
-       font-size:10pt;
        white-space: nowrap;
        background-color: #FFFFFF;
        margin: 0px;
@@ -554,7 +555,7 @@ div#toctoggle {
 h1#section-title {
        float: left;
        margin-left:1em;
-       margin-top:-1em;
+       margin-top:-.5em;
        
 }
 
@@ -583,29 +584,29 @@ div#top-links a:focus{
        float:right;
        clear:right;
        margin-left: 2em;
-       margin-top:.2em;
+       margin-top:-1em;
        white-space:nowrap;
-       background-color:#eeeeee;
+       background-color:#F2F7F7;
        border:thin solid #cccccc;
        border-radius: .3em .3em .3em .3em;
        -mox-border-radius: .3em .3em .3em .3em;
-       -moz-box-shadow:.1em .1em .2em #999999;
-        box-shadow: .1em .1em  .2em #999999;
+/*     -moz-box-shadow:.1em .1em .2em #999999;
+        box-shadow: .1em .1em  .2em #999999;*/
 }
 #top-links-jump{
        float:left;
        white-space:nowrap;
-       margin-top:.2em;
-       background-color:#eeeeee;
+       margin-top:-1em;
+       background-color:#F2F7F7;
        padding-right:.5em;
 }
 
 #jumpmenu{
-       background-color:#eeeeee;
+       background-color:#F2F7F7;
        border:thin solid #cccccc;
        border-radius:.3em .3em .3em .3em;
        -moz-border-radius:.3em .3em .3em .3em; 
-       font-size:100%;
+/*     font-size:100%;*/
 }
 a#editor-link {
        background-color: #F7F3ED;
@@ -781,6 +782,7 @@ div#error ul, div#feedback ul, div#help ul {
        list-style: none;
        margin-left: 0px;
        padding-left: 0px;
+       list-style-type:none;
 }
 
 div#error ul li{
@@ -974,8 +976,12 @@ div.paging li a:hover, div.paging li a.current {
 
 #header{
        /* background-image: url('images/pencil_top_ds.png'); */
-       background-position: 99% 99%;
-       background-repeat: no-repeat;
+/*     background-position: 99% 99%;*/
+       background-repeat: repeatx;
+       background-image: url('images/atutor_head.jpg');
+       height:4em;
+       margin-bottom:-2em;
+       padding-bottom: 2em;
 }
 
 #header a{
@@ -1040,15 +1046,15 @@ div.tabs a:hover, div.tabs a.active {
 .contentbox{
        border-radius:.5em;
        -moz-border-radius: 0em 0em .5em .5em;
-       -moz-box-shadow:.1em .1em .1em #999999;
-       box-shadow: .1em .1em .1em #999999;
+/*     -moz-box-shadow:.1em .1em .1em #999999;
+       box-shadow: .1em .1em .1em #999999;*/
 }
 
 .headingbox{
        border-radius:.5em;
        -moz-border-radius: .5em .5em 0em 0em;
-       -moz-box-shadow:.1em .1em .2em #999999;
-       box-shadow: .1em .1em .2em #999999;
+/*     -moz-box-shadow:.1em .1em .2em #999999;
+       box-shadow: .1em .1em .2em #999999;*/
 }
 .headingbox a{
        color: #A50707;
@@ -1061,9 +1067,25 @@ h4.box {
        border-radius: .5em .5em 0em 0em;
        -moz-border-radius: .5em .5em 0em 0em;
        padding:.2em;
-       border:1px solid #ccc;
-       -moz-box-shadow:.1em .1em .1em #999999;
-       box-shadow: .1em .1em .1em #999999;
+       border-top:1px solid #F2F7F7;
+       border-left:1px solid #F2F7F7;
+       border-right:1px solid #F2F7F7;
+               border-bottom:1px solid #F2F7F7;
+/*     -moz-box-shadow:.1em .1em .1em #999999;
+       box-shadow: .1em .1em .1em #999999;*/
+}
+h2.box {
+       font-size:0.85em;
+       padding: 2px;
+       border-radius: .5em .5em 0em 0em;
+       -moz-border-radius: .5em .5em 0em 0em;
+       padding:.2em;
+       border-top:1px solid #F2F7F7;
+       border-left:1px solid #F2F7F7;
+       border-right:1px solid #F2F7F7;
+               border-bottom:1px solid #F2F7F7;
+/*     -moz-box-shadow:.1em .1em .1em #999999;
+       box-shadow: .1em .1em .1em #999999;*/
 }
 
 div.box {
@@ -1074,11 +1096,11 @@ div.box {
        font-weight: normal;
        border-radius:.0em .0em .5em .5em;
        -moz-border-radius: .0em .0em .5em .5em;
-       border-left:1px solid #ccc;
+/*     border-left:1px solid #ccc;
        border-right:1px solid #ccc;
-       border-bottom:1px solid #ccc;
-       -moz-box-shadow:.1em .1em .1em #999999;
-        box-shadow: .1em .1em  .1em #999999;
+       border-bottom:1px solid #ccc;*/
+/*     -moz-box-shadow:.1em .1em .1em #999999;
+        box-shadow: .1em .1em  .1em #999999;*/
 }
 
 h5.box { 
@@ -1111,7 +1133,7 @@ div.box a:hover {
 
 div.box .content {
        padding: 1em;
-       font-size:  1em;
+/*     font-size:  1em;*/
 }
 
 div.box a.close {
@@ -1198,9 +1220,9 @@ div#alternatives_shortcuts {
        margin: -2em 5pt;
        border-radius: .5em .5em .5em .5em;;
        -moz-border-radius: .5em .5em .5em .5em;
-       -moz-box-shadow:.1em .1em .2em #999999;
-        box-shadow: .1em .1em  .2em #999999;
-        border:1px solid #cccccc;
+/*     -moz-box-shadow:.1em .1em .2em #999999;
+        box-shadow: .1em .1em  .2em #999999;*/
+        border:1px solid #F2F7F7;
         padding-top: .2em;
         padding-left: .2em;
         padding-right: .2em;
@@ -1223,15 +1245,15 @@ fieldset {
        padding:.2em
 }
 div#shortcuts{
-       border-left:thin solid #cccccc;
-       border-right:thin solid #cccccc;
-       border-bottom:thin solid #cccccc;
-       border-radius: 0em 0em .5em .5em;;
+       border-left:thin solid #F2F7F7;
+       border-right:thin solid #F2F7F7;
+       border-bottom:thin solid #F2F7F7;
+       border-radius: 0em 0em .5em .5em;
        -moz-border-radius: 0em 0em .5em .5em;
        float:right;
                margin-top:-.2em;
-       -moz-box-shadow:.1em .1em .2em #999999;
-        box-shadow: .1em .1em  .2em #999999;
+/*     -moz-box-shadow:.1em .1em .2em #999999;
+        box-shadow: .1em .1em  .2em #999999;*/
        margin-right:2em;
        padding:.1em;
 }
@@ -1269,8 +1291,8 @@ div#guide_box{
        border-bottom:thin solid #cccccc;
        border-radius: 0em 0em .5em .5em;
        -moz-border-radius: 0em 0em .5em .5em;
-       -moz-box-shadow:.1em .1em .2em #999999;
-       box-shadow: .1em .1em .2em #999999;
+/*     -moz-box-shadow:.1em .1em .2em #999999;
+       box-shadow: .1em .1em .2em #999999;*/
        float:right;
        margin-top:-.2em;
        margin-right:2em;
@@ -1298,7 +1320,7 @@ div#content-test ol{
 }
 
 div#content-test ol ul li{
-       list-style: none;
+       list-style-type: none;
        padding: 0px 2px 0px 15px;
        margin-bottom: 1px; 
        line-height: 200%; 
@@ -1306,6 +1328,31 @@ div#content-test ol ul li{
        border-bottom: 1px solid #efefef; 
        border: 1px solid #eeeeff;
 }
+div#content-test li{
+       list-style-type: none;
+}
+div#content-forum {    
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+}
+div#content-forum ol{  
+       margin-right: 5pt;      
+}
+
+div#content-forum ol ul li{
+       list-style-type: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
+div#content-forum li{
+       list-style-type: none;
+}
 
 div#content-info {
        margin: 5pt;
@@ -1323,8 +1370,8 @@ div#container {
        border:1px solid #cccccc;
        border-radius: .5em .5em .5em .5em;
        -moz-border-radius: .5em .5em .5em .5em;
-       -moz-box-shadow:.1em .1em .2em #999999;
-        box-shadow: .1em .1em  .2em #999999;
+/*     -moz-box-shadow:.1em .1em .2em #999999;
+        box-shadow: .1em .1em  .2em #999999;*/
        padding:.2em
 }
 
@@ -1437,8 +1484,8 @@ div.social-wrapper{
        padding:5em;
        border-radius:.5em .5em .5em .5em;
        -moz-border-radius: .5em .5em .5em .5em;
-       -moz-box-shadow:.1em .1em .2em #999999;
-        box-shadow: .1em .1em .2em #999999;
+/*     -moz-box-shadow:.1em .1em .2em #999999;
+        box-shadow: .1em .1em .2em #999999;*/
 }
 /* floating layout */
 #contentwrapper{
@@ -1468,9 +1515,9 @@ overflow:hidden;
 }
 
 /** forum stuff **/
-#forum-thread li {border:1px solid #eee; border-bottom: 1px solid #F7F3ED; float:left; width: 97%; list-style: none; }
-#forum-thread li.even { background-color: #F7F3ED; border-top: none;  margin-top:.5em;}
-#forum-thread li.odd { background-color: #fff; margin-top:1em;}
+.forum-thread li {border:1px solid #eee; border-bottom: 1px solid #F7F3ED; float:left; width: 97%; list-style: none; }
+.forum-thread li.even { background-color: #F7F3ED; border-top: none;  margin-top:.5em;}
+.forum-thread li.odd { background-color: #fff; margin-top:1em;}
 div.forum-post-author { float:left; width:150px; padding:8px 10px; }
 div.forum-post-author a.title {font-size: 1.1em; line-height: 1.2em; font-weight: bold; text-decoration:none; }        
 div.forum-post-author img.profile-picture { border: 2px solid #F7F3ED; text-align:right;}
@@ -1495,9 +1542,9 @@ div#topnavlistcontainer {
        /*background-image: url('images/pencil_bottom_ds.png'); */
        height:1.6em;
        margin-left:1em;
-       border-bottom:1px solid #cccccc;
        clear:both;
 
+
 }
 
 ul#topnavlist {
@@ -1513,23 +1560,22 @@ ul#topnavlist li {
        list-style: none;
        display: inline-block;
        height:auto;
-       margin-top:.1em;
        border-radius: .5em .5em 0em 0em;
        -moz-border-radius: .5em .5em 0em 0em;
-       -moz-box-shadow:.1em .0em .1em #999999;
-       box-shadow: .1em .0em .1em #999999;
+/*     -moz-box-shadow:.1em .0em .1em #999999;
+       box-shadow: .1em .0em .1em #999999;*/
        padding: 0em 0em 0em 0em;
 
 }
 
 ul#topnavlist li a:hover, ul#topnavlist li a:focus, ul#topnavlist li a.active {
-       background-color: #E6E6E6;
+       background-color:  #F2F7F7;
        color: black;
        text-decoration:none;
        border-radius: .5em .5em 0em 0em;
        -moz-border-radius: .5em .5em 0em 0em;
-       padding: .2em 1.8em .2em 1.8em;
-       border-bottom: 1px solid #E6E6E6;
+       padding: .1em 1.8em .2em 1.8em;
+       border-bottom: 1px solid #F2F7F7;
 
 }
 
@@ -1555,7 +1601,8 @@ ul#topnavlist li a.selected {
        font-weight: normal;
        border-radius:.3em .3em 0em 0em;
        -moz-border-radius: .3em .3em 0em 0em;
-       padding: .2em 1.8em .1em 1.8em;
+       padding: 1em 1.8em 1em 1.8em;
+       margin-bottom:0em;
 }
 
 ol#tools>li:hover {
@@ -1596,7 +1643,7 @@ ul.child-top-tool:before {
 li.child-tool {
        display: inline;
        margin-right: 5px;
-       font-size: 80%;
+/*     font-size: 80%;*/
 }
 
 /* to modify  tool icons on the course home page */
@@ -1624,7 +1671,7 @@ div.browse-course {
        padding-bottom: 10px;
        background-color: #fffaf0;
        border:1px #6F7172 solid;
-       font-size:9pt;
+/*     font-size:9pt;*/
        min-height:18em;
        margin:auto;
        margin-left:1em;
@@ -1673,8 +1720,8 @@ legend.group_form{
        padding-right: 1em;
        border-radius:.2em;
        -moz-border-radius: .2em .2em .2em .2em;
-       -moz-box-shadow:.1em .1em .1em #999999;
-       box-shadow: .1em .1em .1em #999999;
+/*     -moz-box-shadow:.1em .1em .1em #999999;
+       box-shadow: .1em .1em .1em #999999;*/
 }
 /* file storage */
 
@@ -1775,7 +1822,7 @@ sup{
 }
 a.tooltip{
        color:blue;
-       font-size:100%;
+/*     font-size:100%;*/
        padding-left:.2em;
        padding-right:.2em;
        padding-bottom:.2em;
@@ -1787,8 +1834,8 @@ a.tooltip{
 
 div.home_box {
        width: 25em;
-       height: 166px;  
-       margin-top: .4em;
+       height: 10em;   
+       margin-top: 1em;
        padding: 3px;
        padding-bottom: .4em;
        float: left;
@@ -1803,8 +1850,8 @@ div.home_box {
        height:9.8em;
        -moz-border-radius:.3em .3em .3em .3em;
        border-radius: .3em .3em .3em .3em;
-       -moz-box-shadow:.1em .1em .2em #999999;
-       box-shadow: .1em .1em .2em #999999;
+/*     -moz-box-shadow:.1em .1em .2em #999999;
+       box-shadow: .1em .1em .2em #999999;*/
        padding:.2em;
 
 }
@@ -1835,14 +1882,13 @@ div.home_box {
 
 }
 .draggable_selected {
-       background-color: lightgrey;
+       background-color: lightgray;
        cursor: move;
 }
 div#subnavlistcontainer {
-       width:95%;
+       width:90%;
        margin:auto;
-
-       height:auto;
+       height:1.8em;
 
 }
 div#subnavbacktopage {
@@ -1865,7 +1911,7 @@ ul#subnavlist {
        padding-top: 4px;
        margin-top: 0px;
        font-family: Verdana,Helvetica,Arial,serif;
-       font-size:.8em;
+/*font-size:1.0em;*/
 
 
 }
@@ -1881,16 +1927,17 @@ ul#subnavlist li {
        border-right:1px solid #cccccc;
        border-radius: .3em .3em 0em 0em;
        -moz-border-radius: .3em .3em 0em 0em;
-       height:1.0em;   
-       -moz-box-shadow:.1em .0em .1em #999999;
-       box-shadow: .1em .0em .1em #999999;
+       height:.8em;    
+/*     -moz-box-shadow:.1em .0em .1em #999999;
+       box-shadow: .1em .0em .1em #999999;*/
        padding: 0em .5em .6em .5em ;
 }
 
 ul#subnavlist li a:hover, ul#subnavlist li a:focus, ul#subnavlist li.active, ul#subnavlist li:hover{
        color: black;
        text-decoration:none;
-       background-color: #E6E6E6;
+       background-color: #F8F8F8;
+       border-bottom:thin solid #F8F8F8;
 }
 
 ul#subnavlist li a {
@@ -1927,7 +1974,7 @@ tr.odd {
 /* Content editor tabs */
 .editor_buttontab {
        color:#000000;
-       font-size:10pt;
+/*     font-size:10pt;*/
        border:0;
        white-space: nowrap;
        background-color: #ffffff;
@@ -1950,8 +1997,8 @@ tr.odd {
        background-color: #ffffff;
        border-radius: .3em .3em 0em 0em;
        -moz-border-radius: .3em .3em 0em 0em;
-       -moz-box-shadow:.1em .0em .1em #999999;
-       box-shadow: .1em .0em .1em #999999;
+/*     -moz-box-shadow:.1em .0em .1em #999999;
+       box-shadow: .1em .0em .1em #999999;*/
        padding: 0em .2em 0em .2em ;
        height:1.4em;
 }
@@ -1987,8 +2034,8 @@ tr.odd {
        border: 1px solid #cccccc;
        border-radius: .5em .5em .5em .5em;
        -moz-border-radius: .5em .5em .5em .5em;
-       -moz-box-shadow:.1em .1em .1em #999999;
-        box-shadow: .1em .1em  .2em #999999;
+/*     -moz-box-shadow:.1em .1em .1em #999999;
+        box-shadow: .1em .1em  .2em #999999;*/
 }
 
 ul.current_list{
@@ -2001,11 +2048,10 @@ ul.current_list{
 }
 
 .logoutbar{
-      background-color:#E6E6E6
+      background-color: #F2F7F7
       font-size:0.85em; 
-      border-bottom:1px solid #cccccc
+      border-bottom:1px solid #F2F7F7
       height:2em;
-         margin-top:-.15em;
       text-align:right;
       padding-right:1em;
       clear:both;
@@ -2023,11 +2069,11 @@ ul.current_list{
 
 table.etabbed-table    {
        padding-left:5em;
-       font-size:10pt;
+/*     font-size:10pt;*/
 }
 /* Preference Editor tabs */
 .etabbed-list-container {
-       font-size:10pt;
+/*     font-size:10pt;*/
        width:75%;
        margin-left:auto;
        margin-right:auto;
@@ -2045,27 +2091,16 @@ table.etabbed-table     {
 }
 
 .prefs_buttontab {
-       height:1.4em;
+
        background-color: #ffffff;
        border-left:0;
        border-right:0;
        border-bottom:0;
        border-top:  1px solid #ffffff;
        
-
-/*     color:#000555;
-       font-size:0pt;
-       white-space: nowrap;
-       background-color: #ffffff;
-       border:0;
-       font-weight:500;
-       padding:0em 0em -.3em -.4em;
-       border-radius:.3em;
-       -moz-border-radius: .3em .3em .3em .3em;*/
-
 }
 .prefs_tab{
-       height:1.6em;
+
        border-top: 1px solid #cccccc;
        border-left: 1px solid #cccccc;
        border-right: 1px solid #cccccc;
@@ -2075,17 +2110,15 @@ table.etabbed-table     {
        background-color: #FFFFFF;
        border-radius: .3em .3em 0em 0em;
        -moz-border-radius: .3em .3em 0em 0em;
-       padding: .3em .2em 0em .3em;
+       padding: 0em .2em .2em .3em;
        display: inline;
        margin-left:.5em;
                font-weight:bold;
        text-decoration:none;
 }
     
-
-
 .prefs_tab_selected{
-    height:1.8em;
+
        border-top: 1px solid #cccccc;
        border-left: 1px solid #cccccc;
        border-right: 1px solid #cccccc;
@@ -2095,8 +2128,7 @@ table.etabbed-table       {
        background-color: #eeeeee;
        border-radius:.3em .3em 0em 0em;
        -moz-border-radius: .3em .3em 0em 0em;
-       padding: .2em .2em 0em .5em;
-       padding: .2em .2em 0em .3em;
+       padding: .2em .2em .2em .3em;
        display: inline;
        margin-left:.5em;
        font-weight:bold;
@@ -2104,60 +2136,9 @@ table.etabbed-table      {
        
 }
 
-
-/*.prefs_buttontab {
-       color:#000555;
-       font-size:0pt;
-       white-space: nowrap;
-       background-color: #ffffff;
-       margin-bottom: .5px;
-       border:0;
-       font-weight:500;
-       padding:0em 0em 0em;
-       border-radius:.3em;
-       -moz-border-radius: .3em .3em .3em .3em;
-
-}
-.prefs_tab{
-       border-top: 1px solid #cccccc;
-       border-left: 1px solid #cccccc;
-       border-right: 1px solid #cccccc;
-       text-align: center;
-       white-space: nowrap;
-       background-color: #FFFFFF;
-       border-radius: .3em .3em 0em 0em;
-       -moz-border-radius: .3em .3em 0em 0em;
-       padding: .2em .5em 0em .5em;
-       -moz-box-shadow:.1em .1em 0em #999999;
-       box-shadow: .1em .1em 0em #999999;
-       display: inline;
-       padding-bottom: .9px;
-       margin: .5em;
+a.pref_wiz_launcher{
+       cursor:pointer;
 }
-    
-.prefs_buttontab:hover, .prefs_tab:hover {
-       background-color: #eeeeee;
-}
-
-.prefs_tab_selected{
-    
-       border-top: 1px solid #cccccc;
-       border-left: 1px solid #cccccc;
-       border-right: 1px solid #cccccc;
-       border-bottom:0;
-         background-color: #eeeeee;
-       margin: 0px;
-       font-weight:bold;
-       text-align:center;
-       padding: .2em .5em 0em .5em ;
-       white-space: nowrap;
-       text-decoration:none;
-       border-radius:.3em;
-       -moz-border-radius: .3em .3em 0em 0em;
-       -moz-box-shadow:.1em .1em .0 #999999;
-       box-shadow: .1em .1em .1em #999999;
-       display: inline;
-}*/
 
 .admin_container{
        border:1px solid #cccccc;
@@ -2198,7 +2179,7 @@ table.etabbed-table       {
        width:100%;
        height:2.5em;
                clear:both;
-       font-size: 0.85em;
+/*     font-size: 0.85em;*/
        padding:3px;
        float:left;
 
@@ -2217,8 +2198,8 @@ table.etabbed-table       {
          float:left;
          border-radius: .5em .5em .5em .5em;
        -moz-border-radius: .5em .5em .5em .5em;
-       -moz-box-shadow:.1em .1em .1em #999999;
-        box-shadow: .1em .1em  .1em #999999;
+/*     -moz-box-shadow:.1em .1em .1em #999999;
+        box-shadow: .1em .1em  .1em #999999;*/
 }
 .shortcut_icon{
        border:0;
@@ -2269,8 +2250,8 @@ ul#content-tool-links img{
        margin-right:auto;
        border-radius: .3em .3em .3em .3em;
        -moz-border-radius: .3em .3em .3em .3em;
-       -moz-box-shadow:.1em .1em .1em #999999;
-       box-shadow: .1em .1em .1em #999999;
+/*     -moz-box-shadow:.1em .1em .1em #999999;
+       box-shadow: .1em .1em .1em #999999;*/
 }
 
 .tr_results_tools{
@@ -2281,8 +2262,8 @@ ul#content-tool-links img{
        border:thin solid #cccccc;
        border-radius: .3em .3em .3em .3em;
        -moz-border-radius: .3em .3em .3em .3em;
-       -moz-box-shadow:.1em .1em .1em #999999;
-       box-shadow: .1em .1em .1em #999999;
+/*     -moz-box-shadow:.1em .1em .1em #999999;
+       box-shadow: .1em .1em .1em #999999;*/
 }
 
 div.pageinator_box{
@@ -2478,16 +2459,20 @@ margin-left:2em;
        border:0;
 height:.9em;
 width:.9em;
-font-size:100%;
+/*font-size:100%;*/
 }
 div.bypass{
 height:1px;
 }
 /* relative image size styles */
 
-img.img1616{
-height:1.5em;
-width:1.5em;
+input.img1616{
+cursor:pointer;
+}
+
+input.img1616, img.img1616{
+height:1.6em;
+width:1.6em;
 }
 
 img.img1111{
@@ -2504,10 +2489,446 @@ width:.9em;
 font-size:100%;
 }
 
+.fl-force-right{
+float:right;   
+       
+}
 img.fl-col{
 height:3.5em;
 width:3.5em;
-font-size:100%;
+/*font-size:100%;*/
+}
+
+
+/*  Photo Album Styles 
+ * 
+ * 
+ * 
+ * 
+ */
+div.topbar{
+       float:left;
+       width: 95%;
+}
+div.paginator{
+       float: right;
+       margin: 0px;
+}
+.paginator ul li{
+       list-style: none;
+}
+.paginator li{
+       padding-right: 0.5em;
+       float: left;
+}
+
+div.summary{
+       float: left;
+       margin-top: 0.5em;
+       width:70%;
+}
+
+div.album_panel{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+/*     -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;*/
+       padding:.3em;
+}
+div.album_panel div.photo_wrapper {
+       /* This class is to fix the problem where the images shift
+        * to the right when there is a border upon selection 
+        */
+       height: 150px;
+       float: left;
+}
+div.album_panel .photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 140px;
+       min-width: 140px;
+       text-align: center;
+}
+div.album_panel .photo_frame a:focus, div.album_panel .photo_frame a:hover{
+       cursor: pointer;
+       float:left;
+       min-width: 140px;
+       min-height: 140px;
+       background: #FCE6C9;
+}
+div.album_panel .photo_frame img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.album_panel .album_description{
+       margin: 0.5em;
+       width: 95%;
+       float: left;
+}
+
+div.search_bar {
+       /* background-image: url('images/search_bg.png');
+       background-repeat: no-repeat; */
+       background-color:#ffffff;
+       border:thin solid #cccccc;
+       margin-left: 0.5em;
+       margin-top: 0.5em;
+       height: 27px;
+       width: 180px;
+       float: left;
+       border-radius:.5em;
+       -moz-border-radius:.8em .8em .8em .8em;
+/*             -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;*/
+}
+div.search_bar .s{
+       float: left;
+       border: 0px;
+       margin-top: 0.3em;
+       margin-left: 0.5em;
+       width: 148px;
+}
+div.search_bar .s_img{
+       float: right;
+       border: 0px;
+       margin-top: 0.375em;    
+       margin-top: -1.4em\9; /* the \9 to accomodate IE 7&8 */
+       margin-right: 0.4em;
+}
+
+div.album {
+       background: #FFFFFF;
+       padding:1em;
+       border: 1px solid #D2D2D2;      
+       width: 95%;
+       margin: 0.5em;
+       float: left;
+       border-radius:.5em .5em .5em .5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+/*             -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;*/
+}
+div.album .image{
+       float: left;
+       margin: 0.5em;
+       min-width: 140px;
+}
+div.album img{
+       border-width: 0px;
+}
+div.album .image img.no-image {
+       float: left;
+       width: 130px;
+       height: 97px;
+       background-color: #EFEFEF;
+}
+div.album .info{
+       float: left;
+       width: 70%;
+}
+div.album .info span{
+       float: left;
+       color: #666666;
+}
+div.album .info p{
+       font-size: 0.85em;
+       margin: 0;
+}
+div.album .search_photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 160px;
+       max-height: 160px;
+       max-width: 140px;
+       text-align: center;
+       border: 1px solid #d3d3d3;
+       overflow: hidden;
+}
+div.album .search_slider{
+       float: left;
+       overflow: hidden;
+       position: relative;     /* ie7 */
+}
+div.album .search_slider_left{
+       float: left;
+       width: 10%;
+}
+div.album .search_slider_right{
+       float: right;
+       text-align: right;
+       width: 10%;
+}
+div.album .search_slider ul {
+       list-style-type: none;
+       margin: 0;
+       padding: 0;
+       width: 99999px;
+       position: relative;
+}
+div.album .search_slider ul li{
+       float: left;
+}
+div.album .search_slider_a{
+       width: 80%;
+}
+div.album .search_slider_p{
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_slider_p ul li{
+/*     height: 576px;  /* 144 per frame, 4 row */
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_paginator {
+       width: 100%;
+}
+
+div.add_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-bottom:.2em;
+}
+div.add_photo ul{
+       margin: 0px;
+       padding: 0px;
+}
+div.add_photo .toggle_uploader{
+       width: 95%;
+       margin: 0.5em;
+}
+div.add_photo div#ajax_uploader{
+       display: none;
+       margin-top: 0.5em;
+}
+div.add_photo .files .tn {
+       max-height: 30px;
+}
+div.add_photo img{
+       border: 0;
+}
+div.add_photo ul li{
+       float: left;
+       padding: 0.2em;
+       list-style: none;
+       width: 100%;
+       height: 100%;
+       border-bottom: 1px solid #ddd;
+/*     display: inline; */
+}
+div.add_photo p.memory_usage {
+       float: right;
+       font-size: 0.9em;
+       color: #5B5B5B;
+}
+
+div.add_profile_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+/*             -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;*/
+       margin-bottom:.2em;
+
+}
+div.add_profile_photo .profile_photo{    
+       float: left;    
+       padding: 0.5em;
+
+}
+div.add_profile_photo .uploader{    
+       float: left;    
+       width: 50%;
+       padding: 0.5em;
+       border-bottom: 1px solid #ddd;
+}      
+
+div.photo_panel{
+       background: #F7F7F7;
+       float: left;
+       border: 1px solid #D2D2D2;
+       text-align: center;
+       width: 95%;
+       padding: 0.5em;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.photo_panel img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.photo_panel div.ordering{
+       float:left;
+}
+div.photo_panel div.paginator{
+       float:right;
+}
+div.photo_panel .flc-inlineEditable{
+       width: 604px;
+       margin: 0 auto;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+}
+div.comment_panel{
+       background: #FFFFFF;
+       float: left;
+       border: 1px solid #D2D2D2;
+       width: 95%;
+       padding:.5em;
+       border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+/*             -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;*/
+       margin-top:.2em;
+}
+div.comment_panel .comment_feeds{
+       float: left;
+       width: 50%;
+}
+div.comment_panel .photo_actions{
+       margin: 0.5em;
+       max-width: 49%;
+       background: #F7F7F7;
+       float:right;
+       padding:1em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment_template, textarea#comment_template active{
+       background-color:#eeeeee;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment{
+       background-color:#ffffff;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.comment_panel textarea{
+       width:100%;
+}
+
+div.comment_box{
+       float:left;
+       width:100%;
+       margin: 0.5em;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+       background: #F7F7F7;
+}
+div.comment_box .comment_actions{
+       float: left;
+       margin-top: 1em;
+       font-size: 0.8em; 
+       color: #666666;
+}
+
+div.edit_photo_frame{
+       width: 95%;     
+       float: left;
+       padding: 0.2em;
+       background: #F7F7F7;
+       border:thin solid #cccccc;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.edit_photo_box{    
+       float: left;
+       border: 1px solid #D2D2D2;
+       background: white;
+       margin: 0.2em;
+       margin-bottom: 0.8em;
+       padding: 0.8em;
+       width: 94%;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.edit_photo_box .info{
+       float: left;
+       width: 60%;
+}
+
+.info textarea{
+       background-color: #eeeeee;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-top:.2em;
+}
+div.edit_photo_box .info textarea.alt_text{
+       height: 2.5em;
+}
+div.edit_photo_box .info textarea{
+       width: 100%;
+}
+div.edit_photo_box .action{
+       float: right;
+       background: #F7F7F7;
+       min-width: 140px;
+       padding:.2em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+
+
+/* FLUID Image Reorderer */
+.fl-imageReorderer-item {
+}
+.fl-reorderer-movable-hover a{
+       cursor: pointer;
+       background-color: #ECEECC;
+}
+.fl-reorderer-movable-dragging a{
+       background-color: #ECEECC;
+}
+.fl-reorderer-dropMarker {
+       border: 2px solid red;
+       min-height: 100px;
+       float: left;
+}
+.fl-reorderer-avatar {
+       opacity: 0.6;
+       filter:alpha(opacity=60);
+}
+
+
+/* FLUID Simple Inline Editor */
+.fl-inlineEdit-invitation {
+   background-color: #FFECB3 !important;
+   border: 1px solid #CCC !important;
+}
+.fl-inlineEdit-focus {
+    border: 2px solid #777777;
+}
+
+
+.pa_tool_link{
+
+text-decoration:none;
+}
+
+.pa_tool_image{
+vertical-align:middle;
+margin-right:.5em;
 }
 /*social networking box on admin page */
 #social_networking{
@@ -2515,3 +2936,9 @@ padding: 1em;
 margin: 0;
 }
 
+/* End Photo Album Styles
+ * 
+ * 
+ * 
+ * 
+ */
index ea4a6cc..bb2503d 100644 (file)
@@ -12,7 +12,5 @@
        <?php endif; ?>
 
        <h3 style="color: black"><?php echo _AT('question'); ?> <?php echo $this->number; ?>: <span style="padding-left: 10px"><?php echo $this->type; ?></span></h3>
-</span>
-       </strong>
 </div>
 <div class="row" style="padding-bottom: 20px">
\ No newline at end of file
index 01ce9af..06adb6e 100644 (file)
@@ -5,6 +5,6 @@
 <ul style="padding: 0px; margin: 0px; list-style-type: none">
        <?php for ($i=0; $i < $this->num_choices; $i++): ?>
                <li style="padding: 4px">
-                       <input type="checkbox" name="answers[<?php echo $this->row['question_id']; ?>][]" value="<?php echo $i; ?>" id="choice_<?php echo $this->row['question_id'].'_'.$i; ?>" <?php if (in_array($i, $this->response)): ?>checked="checked"<?php endif; ?>/><label for="choice_<?php echo $this->row['question_id'].'_'.$i; ?>"><?php echo AT_print($this->row['choice_'.$i], 'tests_questions.choice_'.$i); ?></label>
+                       <input type="checkbox" name="answers[<?php echo $this->row['question_id']; ?>][]" value="<?php echo $i; ?>" id="choice_<?php echo $this->row['question_id'].'_'.$i; ?>" <?php if (in_array($i, $this->response)): ?>checked="checked"<?php endif; ?>/><label for="choice_<?php echo $this->row['question_id'].'_'.$i; ?>"><?php echo AT_print($this->row['choice_'.$i], 'tests_questions.choice_'.$i); ?></label></li>
        <?php endfor; ?>
 </ul>
\ No newline at end of file
index 5caf4a8..ee73e10 100644 (file)
@@ -5,9 +5,9 @@
                <li style="padding: 4px">
                        <input type="radio" name="answers[<?php echo $this->row['question_id']; ?>]" value="<?php echo $i; ?>" id="choice_<?php echo $this->row['question_id'].'_'.$i; ?>" <?php 
                        //Multiple choice will always have just 1 choice, thus the response is always in the array of $this->response[0]
-                       if (is_numeric($this->response[0]) && $i == $this->response[0]): ?>checked="checked"<?php endif; ?>/><label for="choice_<?php echo $this->row['question_id'].'_'.$i; ?>"><?php echo AT_print($this->row['choice_'.$i], 'tests_questions.choice_'.$i); ?></label>
+                       if (is_numeric($this->response[0]) && $i == $this->response[0]): ?>checked="checked"<?php endif; ?>/><label for="choice_<?php echo $this->row['question_id'].'_'.$i; ?>"><?php echo AT_print($this->row['choice_'.$i], 'tests_questions.choice_'.$i); ?></label></li>
        <?php endfor; ?>
        <li style="padding: 4px">
-               <input type="radio" name="answers[<?php echo $this->row['question_id']; ?>]" value="-1" id="choice_<?php echo $this->row['question_id']; ?>'_x" <?php if (is_numeric($this->response[0]) && -1 == $this->response[0]): ?>checked="checked"<?php endif; ?> /><label for="choice_<?php echo $this->row['question_id']; ?>'_x"><strong><?php echo _AT('leave_blank'); ?></strong></label>
+               <input type="radio" name="answers[<?php echo $this->row['question_id']; ?>]" value="-1" id="choice_<?php echo $this->row['question_id']; ?>_x" <?php if (is_numeric($this->response[0]) && -1 == $this->response[0]): ?>checked="checked"<?php endif; ?> /><label for="choice_<?php echo $this->row['question_id']; ?>_x"><strong><?php echo _AT('leave_blank'); ?></strong></label>
        </li>
 </ul>
\ No newline at end of file
index 1c1e8d2..540d841 100644 (file)
@@ -87,7 +87,7 @@
                </td>\r
                <td>\r
                        <?php if ($row['description']): ?>\r
-                               <div style="height:6.4em;" title="<?php echo htmlentities($row['description']);?>"><?php echo substr(htmlentities_utf8($row['description'], true),0,150); \r
+                               <div style="height:6.4em;" title="<?php echo htmlentities_utf8($row['description']);?>"><?php echo substr(htmlentities_utf8($row['description'], true),0,150); \r
                                if(strlen($row['description']) > 150){\r
                                echo "...";\r
                                }\r
index db9a69b..10c3f2b 100644 (file)
 
 
     </td>
-
     <td><?php echo '<a href="'.url_rewrite('bounce.php?course=' . $row['course_id']) . '"> '.htmlentities_utf8($row['title']).'</a>' ?>
     <br /><small><?php echo _AT('category'); ?>: <?php echo get_category_name($row['cat_id']); ?></small>
     </td>
-    <td><small><?php echo '<a href="'.AT_BASE_HREF.'inbox/send_message.php?id='.$row['member_id'].'">'. get_display_name($row['member_id']).'<a/>'; ?></small></td>
+    <td><small><?php echo '<a href="'.AT_BASE_HREF.'inbox/send_message.php?id='.$row['member_id'].'">'. get_display_name($row['member_id']).'</a>'; ?></small></td>
     <td><small>
     <?php      
 
 
     </small></td>
     <td>
-    <small>
-    <ul>
+<?php if($_config['allow_unenroll'] || $row['tests']){  ?>
+  <ul>
     <?php if ($row['member_id'] != $_SESSION['member_id']  && $_config['allow_unenroll'] == 1): ?>
            <li><a href="users/remove_course.php?course=<?php echo $row['course_id']; ?>"><?php echo _AT('unenroll_me'); ?></a></li>
-    <?php endif; ?><br>
+    <?php endif; ?>
     <?php if ($row['tests']): ?>
            <?php foreach ($row['tests'] as $test): ?>
                    <li><a href="bounce.php?course=<?php echo $row['course_id'].SEP.'p='.urlencode('mods/_standard/tests/test_intro.php?tid='.$test['test_id']); ?>"><span title="<?php echo _AT('tests'); ?>:<?php echo $test['title']; ?>"><?php echo $test['title']; ?></span></a> </li>
            <?php endforeach ;?>
     <?php endif; ?>
-    </ul>    </small>
+    </ul>  
+<?php }  ?>
+
     <?php if ($row['last_cid']): ?>
          <div class="shortcuts" style="float:right;">
                  <a href="bounce.php?course=<?php echo $row['course_id'].SEP.'p='.urlencode('content.php?cid='.$row['last_cid']); ?>"><img src="<?php echo $_base_href;  ?>themes/default/images/resume.png" border="" alt="<?php echo _AT('resume'); ?>" title="<?php echo _AT('resume'); ?>" class="img1616"/></a>
index dadc776..abdcfbc 100644 (file)
@@ -16,8 +16,8 @@ for ($i=0; $i < $num_tabs; $i++)
        }
 }
 
-if (!$switch_tab && isset($_POST['current_tab'])) {
-       $current_tab = intval($_POST['current_tab']);
+if (!$switch_tab && isset($_REQUEST['current_tab'])) {
+       $current_tab = intval($_REQUEST['current_tab']);
 }
 
 if ($current_tab == 1)
index 313f7c1..9a2811d 100644 (file)
@@ -64,7 +64,7 @@ if (!defined('AT_INCLUDE_PATH')) { exit; }
 <?php\r
 \r
 if (!empty($this->forum_ids)): ?>\r
-<div id="content-test" class="input-form">\r
+<div id="content-forum" class="input-form">\r
     <ol>\r
         <strong><?php echo _AT('forums') . ':' ; ?></strong>\r
         <li class="top-tool"><?php echo $this->forum_message; ?></li>\r
index f68c24d..eb320e1 100644 (file)
@@ -1,7 +1,7 @@
 <?php if (!defined('AT_INCLUDE_PATH')) { exit; } ?>
 
 <br />
-<h4 class="box"><?php echo $this->title; ?><input class="fl-force-right" src="" alt="" title="" type="image" /></h4>
+<h2 class="box"><?php echo $this->title; ?><input class="fl-force-right" src="" alt="" title="" type="image" /></h2>
 <div class="box">
                <?php echo $this->dropdown_contents; ?>
 </div>
\ No newline at end of file
index e2ca06b..557b65a 100644 (file)
@@ -114,4 +114,15 @@ h2.page-title{
 }
 a#back-to {
        background-position: 100% 100%;
+}
+
+div.details-text img{
+       float:right;
+       clear:right;
+       padding-left:.2em;
+}
+
+div.details-text{
+       line-height:1.5em;
+       margin-right:.2em;
 }
\ No newline at end of file
index e6adad8..1aa9608 100644 (file)
@@ -790,7 +790,30 @@ div#content-test ol ul li{
        border-bottom: 1px solid #efefef; 
        border: 1px solid #eeeeff;
 }
+div#content-forum {    
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+       background-color:#F4F9FE;
+       border:1px solid #70A1CA;
+               border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div#content-forum ol{  
+       margin-right: 5pt;
+       list-style:none;
+}
 
+div#content-forum ol ul li{
+       list-style: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
 div#content-info {
        margin: 5px;
        font-size: smaller;
@@ -971,6 +994,19 @@ h4.box {
        margin-left: 0px;
 }
 
+h2.box {
+       margin-top: 10px;
+       font-family: Helevetica, Arial, sans-serif;
+       background: #efefef;
+       border: 1px solid #afafaf;
+       color: black;
+       white-space:nowrap;
+       padding: 0em 1em 0em 1em;
+       display: inline;
+       font-weight:normal;
+       font-size:1em;
+       margin-left: 0px;
+}
 div.box {
     background: transparent;
     border-collapse: collapse;
@@ -1357,9 +1393,9 @@ img.headicon {
 
 
 /** forum stuff **/
-#forum-thread li { clear:left; border:1px solid #eee; border-bottom: 1px solid #f0f0f0; float:left; width: 98%; list-style: none; }
-#forum-thread li.even { background: #fdfdfd; border-top: none; }
-#forum-thread li.odd { background: #fff; }
+.forum-thread li { clear:left; border:1px solid #eee; border-bottom: 1px solid #f0f0f0; float:left; width: 98%; list-style: none; }
+.forum-thread li.even { background: #fdfdfd; border-top: none; }
+.forum-thread li.odd { background: #fff; }
 div.forum-post-author { float:left; width:150px; padding:8px 10px; }
 div.forum-post-author a.title {        font-size: 1.1em; line-height: 1.2em; font-weight: bold; text-decoration:none; }        
 div.forum-post-author img.profile-picture { border: 2px solid #f0f0f0; }
@@ -2005,3 +2041,442 @@ ul#subnavlist li a {
        text-decoration:underline;
        font-weight:500;
 }
+
+/*  Photo Album Styles 
+ * 
+ * 
+ * 
+ * 
+ */
+div.topbar{
+       float:left;
+       width: 95%;
+}
+div.paginator{
+       float: right;
+       margin: 0px;
+}
+.paginator ul li{
+       list-style: none;
+}
+.paginator li{
+       padding-right: 0.5em;
+       float: left;
+}
+
+div.summary{
+       float: left;
+       margin-top: 0.5em;
+       width:70%;
+}
+
+div.album_panel{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+       -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       padding:.3em;
+}
+div.album_panel div.photo_wrapper {
+       /* This class is to fix the problem where the images shift
+        * to the right when there is a border upon selection 
+        */
+       height: 150px;
+       float: left;
+}
+div.album_panel .photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 140px;
+       min-width: 140px;
+       text-align: center;
+}
+div.album_panel .photo_frame a:focus, div.album_panel .photo_frame a:hover{
+       cursor: pointer;
+       float:left;
+       min-width: 140px;
+       min-height: 140px;
+       background: #FCE6C9;
+}
+div.album_panel .photo_frame img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.album_panel .album_description{
+       margin: 0.5em;
+       width: 95%;
+       float: left;
+}
+
+div.search_bar {
+       /* background-image: url('images/search_bg.png');
+       background-repeat: no-repeat; */
+       background-color:#ffffff;
+       border:thin solid #cccccc;
+       margin-left: 0.5em;
+       margin-top: 0.5em;
+       height: 27px;
+       width: 180px;
+       float: left;
+       border-radius:.5em;
+       -moz-border-radius:.8em .8em .8em .8em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.search_bar .s{
+       float: left;
+       border: 0px;
+       margin-top: 0.3em;
+       margin-left: 0.5em;
+       width: 148px;
+}
+div.search_bar .s_img{
+       float: right;
+       border: 0px;
+       margin-top: 0.375em;    
+       margin-top: -1.4em\9; /* the \9 to accomodate IE 7&8 */
+       margin-right: 0.4em;
+}
+
+div.album {
+       background: #FFFFFF;
+       padding:1em;
+       border: 1px solid #D2D2D2;      
+       width: 95%;
+       margin: 0.5em;
+       float: left;
+       border-radius:.5em .5em .5em .5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.album .image{
+       float: left;
+       margin: 0.5em;
+       min-width: 140px;
+}
+div.album img{
+       border-width: 0px;
+}
+div.album .image img.no-image {
+       float: left;
+       width: 130px;
+       height: 97px;
+       background-color: #EFEFEF;
+}
+div.album .info{
+       float: left;
+       width: 70%;
+}
+div.album .info span{
+       float: left;
+       color: #666666;
+}
+div.album .info p{
+       font-size: 0.85em;
+       margin: 0;
+}
+div.album .search_photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 160px;
+       max-height: 160px;
+       max-width: 140px;
+       text-align: center;
+       border: 1px solid #d3d3d3;
+       overflow: hidden;
+}
+div.album .search_slider{
+       float: left;
+       overflow: hidden;
+       position: relative;     /* ie7 */
+}
+div.album .search_slider_left{
+       float: left;
+       width: 10%;
+}
+div.album .search_slider_right{
+       float: right;
+       text-align: right;
+       width: 10%;
+}
+div.album .search_slider ul {
+       list-style-type: none;
+       margin: 0;
+       padding: 0;
+       width: 99999px;
+       position: relative;
+}
+div.album .search_slider ul li{
+       float: left;
+}
+div.album .search_slider_a{
+       width: 80%;
+}
+div.album .search_slider_p{
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_slider_p ul li{
+/*     height: 576px;  /* 144 per frame, 4 row */
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_paginator {
+       width: 100%;
+}
+
+div.add_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-bottom:.2em;
+}
+div.add_photo ul{
+       margin: 0px;
+       padding: 0px;
+}
+div.add_photo .toggle_uploader{
+       width: 95%;
+       margin: 0.5em;
+}
+div.add_photo div#ajax_uploader{
+       display: none;
+       margin-top: 0.5em;
+}
+div.add_photo .files .tn {
+       max-height: 30px;
+}
+div.add_photo img{
+       border: 0;
+}
+div.add_photo ul li{
+       float: left;
+       padding: 0.2em;
+       list-style: none;
+       width: 100%;
+       height: 100%;
+       border-bottom: 1px solid #ddd;
+/*     display: inline; */
+}
+div.add_photo p.memory_usage {
+       float: right;
+       font-size: 0.9em;
+       color: #5B5B5B;
+}
+
+div.add_profile_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-bottom:.2em;
+
+}
+div.add_profile_photo .profile_photo{    
+       float: left;    
+       padding: 0.5em;
+
+}
+div.add_profile_photo .uploader{    
+       float: left;    
+       width: 50%;
+       padding: 0.5em;
+       border-bottom: 1px solid #ddd;
+}      
+
+div.photo_panel{
+       background: #F7F7F7;
+       float: left;
+       border: 1px solid #D2D2D2;
+       text-align: center;
+       width: 95%;
+       padding: 0.5em;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.photo_panel img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.photo_panel div.ordering{
+       float:left;
+}
+div.photo_panel div.paginator{
+       float:right;
+}
+div.photo_panel .flc-inlineEditable{
+       width: 604px;
+       margin: 0 auto;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+}
+div.comment_panel{
+       background: #FFFFFF;
+       float: left;
+       border: 1px solid #D2D2D2;
+       width: 95%;
+       padding:.5em;
+       border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-top:.2em;
+}
+div.comment_panel .comment_feeds{
+       float: left;
+       width: 50%;
+}
+div.comment_panel .photo_actions{
+       margin: 0.5em;
+       max-width: 49%;
+       background: #F7F7F7;
+       float:right;
+       padding:1em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment_template, textarea#comment_template active{
+       background-color:#eeeeee;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment{
+       background-color:#ffffff;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.comment_panel textarea{
+       width:100%;
+}
+
+div.comment_box{
+       float:left;
+       width:100%;
+       margin: 0.5em;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+       background: #F7F7F7;
+}
+div.comment_box .comment_actions{
+       float: left;
+       margin-top: 1em;
+       font-size: 0.8em; 
+       color: #666666;
+}
+
+div.edit_photo_frame{
+       width: 95%;     
+       float: left;
+       padding: 0.2em;
+       background: #F7F7F7;
+       border:thin solid #cccccc;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.edit_photo_box{    
+       float: left;
+       border: 1px solid #D2D2D2;
+       background: white;
+       margin: 0.2em;
+       margin-bottom: 0.8em;
+       padding: 0.8em;
+       width: 94%;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.edit_photo_box .info{
+       float: left;
+       width: 60%;
+}
+
+.info textarea{
+       background-color: #eeeeee;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-top:.2em;
+}
+div.edit_photo_box .info textarea.alt_text{
+       height: 2.5em;
+}
+div.edit_photo_box .info textarea{
+       width: 100%;
+}
+div.edit_photo_box .action{
+       float: right;
+       background: #F7F7F7;
+       min-width: 140px;
+       padding:.2em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+
+
+/* FLUID Image Reorderer */
+.fl-imageReorderer-item {
+}
+.fl-reorderer-movable-hover a{
+       cursor: pointer;
+       background-color: #ECEECC;
+}
+.fl-reorderer-movable-dragging a{
+       background-color: #ECEECC;
+}
+.fl-reorderer-dropMarker {
+       border: 2px solid red;
+       min-height: 100px;
+       float: left;
+}
+.fl-reorderer-avatar {
+       opacity: 0.6;
+       filter:alpha(opacity=60);
+}
+
+
+/* FLUID Simple Inline Editor */
+.fl-inlineEdit-invitation {
+   background-color: #FFECB3 !important;
+   border: 1px solid #CCC !important;
+}
+.fl-inlineEdit-focus {
+    border: 2px solid #777777;
+}
+
+
+.pa_tool_link{
+
+text-decoration:none;
+}
+
+.pa_tool_image{
+vertical-align:middle;
+margin-right:.5em;
+}
+
+
+/* End Photo Album Styles
+ * 
+ * 
+ * 
+ * 
+ */
index 79297b1..69a8e88 100644 (file)
@@ -118,4 +118,15 @@ ul.etabbed-list{
 }
 #subnavlist{
        margin-right:5em;       
+}
+
+div.details-text img{
+       float:right;
+       clear:right;
+       padding-left:.2em;
+}
+
+div.details-text{
+       line-height:1.5em;
+       margin-right:.2em;
 }
\ No newline at end of file
index 04e00da..bc755ff 100644 (file)
@@ -53,6 +53,9 @@ h2 {
 h2.sidebox{
     font-size: 110%;
 }
+h2.box{
+    font-size: 110%;
+}
 h3 {
     font-size: 130%;
 }
@@ -1115,6 +1118,55 @@ div#content-text li {
        margin-left: 15pt;
 }
 
+div#content-test {     
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+       background-color:#F4F9FE;
+       border:1px solid #70A1CA;
+               border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div#content-test ol{   
+       margin-right: 5pt;
+       list-style:none;
+}
+
+div#content-test ol ul li{
+       list-style: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
+div#content-forum {    
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+       background-color:#F4F9FE;
+       border:1px solid #70A1CA;
+               border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div#content-forum ol{  
+       margin-right: 5pt;
+       list-style:none;
+}
+
+div#content-forum ol ul li{
+       list-style: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
+
 div#content-info {
        margin: 5pt;
        font-size: small;
@@ -1288,9 +1340,9 @@ dl#public-profile dd {
 }
 
 /** forum stuff **/
-#forum-thread li {border:1px solid #eee; border-bottom: 1px solid #F7F3ED; float:left; width: 98%; list-style: none; }
-#forum-thread li.even { background-color: #F7F3ED; border-top: none; }
-#forum-thread li.odd { background-color: #fff; }
+.forum-thread li {border:1px solid #eee; border-bottom: 1px solid #F7F3ED; float:left; width: 98%; list-style: none; }
+.forum-thread li.even { background-color: #F7F3ED; border-top: none; }
+.forum-thread li.odd { background-color: #fff; }
 div.forum-post-author { float:left; width:150px; padding:8px 10px; }
 div.forum-post-author a.title {font-size: 1.1em; line-height: 1.2em; font-weight: bold; text-decoration:none; }        
 div.forum-post-author img.profile-picture { border: 2px solid #F7F3ED; text-align:right;}
@@ -2287,3 +2339,442 @@ ul#subnavlist li a {
        text-decoration:underline;
        font-weight:500;
 }
+
+/*  Photo Album Styles 
+ * 
+ * 
+ * 
+ * 
+ */
+div.topbar{
+       float:left;
+       width: 95%;
+}
+div.paginator{
+       float: right;
+       margin: 0px;
+}
+.paginator ul li{
+       list-style: none;
+}
+.paginator li{
+       padding-right: 0.5em;
+       float: left;
+}
+
+div.summary{
+       float: left;
+       margin-top: 0.5em;
+       width:70%;
+}
+
+div.album_panel{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+       -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       padding:.3em;
+}
+div.album_panel div.photo_wrapper {
+       /* This class is to fix the problem where the images shift
+        * to the right when there is a border upon selection 
+        */
+       height: 150px;
+       float: left;
+}
+div.album_panel .photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 140px;
+       min-width: 140px;
+       text-align: center;
+}
+div.album_panel .photo_frame a:focus, div.album_panel .photo_frame a:hover{
+       cursor: pointer;
+       float:left;
+       min-width: 140px;
+       min-height: 140px;
+       background: #FCE6C9;
+}
+div.album_panel .photo_frame img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.album_panel .album_description{
+       margin: 0.5em;
+       width: 95%;
+       float: left;
+}
+
+div.search_bar {
+       /* background-image: url('images/search_bg.png');
+       background-repeat: no-repeat; */
+       background-color:#ffffff;
+       border:thin solid #cccccc;
+       margin-left: 0.5em;
+       margin-top: 0.5em;
+       height: 27px;
+       width: 180px;
+       float: left;
+       border-radius:.5em;
+       -moz-border-radius:.8em .8em .8em .8em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.search_bar .s{
+       float: left;
+       border: 0px;
+       margin-top: 0.3em;
+       margin-left: 0.5em;
+       width: 148px;
+}
+div.search_bar .s_img{
+       float: right;
+       border: 0px;
+       margin-top: 0.375em;    
+       margin-top: -1.4em\9; /* the \9 to accomodate IE 7&8 */
+       margin-right: 0.4em;
+}
+
+div.album {
+       background: #FFFFFF;
+       padding:1em;
+       border: 1px solid #D2D2D2;      
+       width: 95%;
+       margin: 0.5em;
+       float: left;
+       border-radius:.5em .5em .5em .5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.album .image{
+       float: left;
+       margin: 0.5em;
+       min-width: 140px;
+}
+div.album img{
+       border-width: 0px;
+}
+div.album .image img.no-image {
+       float: left;
+       width: 130px;
+       height: 97px;
+       background-color: #EFEFEF;
+}
+div.album .info{
+       float: left;
+       width: 70%;
+}
+div.album .info span{
+       float: left;
+       color: #666666;
+}
+div.album .info p{
+       font-size: 0.85em;
+       margin: 0;
+}
+div.album .search_photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 160px;
+       max-height: 160px;
+       max-width: 140px;
+       text-align: center;
+       border: 1px solid #d3d3d3;
+       overflow: hidden;
+}
+div.album .search_slider{
+       float: left;
+       overflow: hidden;
+       position: relative;     /* ie7 */
+}
+div.album .search_slider_left{
+       float: left;
+       width: 10%;
+}
+div.album .search_slider_right{
+       float: right;
+       text-align: right;
+       width: 10%;
+}
+div.album .search_slider ul {
+       list-style-type: none;
+       margin: 0;
+       padding: 0;
+       width: 99999px;
+       position: relative;
+}
+div.album .search_slider ul li{
+       float: left;
+}
+div.album .search_slider_a{
+       width: 80%;
+}
+div.album .search_slider_p{
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_slider_p ul li{
+/*     height: 576px;  /* 144 per frame, 4 row */
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_paginator {
+       width: 100%;
+}
+
+div.add_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-bottom:.2em;
+}
+div.add_photo ul{
+       margin: 0px;
+       padding: 0px;
+}
+div.add_photo .toggle_uploader{
+       width: 95%;
+       margin: 0.5em;
+}
+div.add_photo div#ajax_uploader{
+       display: none;
+       margin-top: 0.5em;
+}
+div.add_photo .files .tn {
+       max-height: 30px;
+}
+div.add_photo img{
+       border: 0;
+}
+div.add_photo ul li{
+       float: left;
+       padding: 0.2em;
+       list-style: none;
+       width: 100%;
+       height: 100%;
+       border-bottom: 1px solid #ddd;
+/*     display: inline; */
+}
+div.add_photo p.memory_usage {
+       float: right;
+       font-size: 0.9em;
+       color: #5B5B5B;
+}
+
+div.add_profile_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-bottom:.2em;
+
+}
+div.add_profile_photo .profile_photo{    
+       float: left;    
+       padding: 0.5em;
+
+}
+div.add_profile_photo .uploader{    
+       float: left;    
+       width: 50%;
+       padding: 0.5em;
+       border-bottom: 1px solid #ddd;
+}      
+
+div.photo_panel{
+       background: #F7F7F7;
+       float: left;
+       border: 1px solid #D2D2D2;
+       text-align: center;
+       width: 95%;
+       padding: 0.5em;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.photo_panel img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.photo_panel div.ordering{
+       float:left;
+}
+div.photo_panel div.paginator{
+       float:right;
+}
+div.photo_panel .flc-inlineEditable{
+       width: 604px;
+       margin: 0 auto;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+}
+div.comment_panel{
+       background: #FFFFFF;
+       float: left;
+       border: 1px solid #D2D2D2;
+       width: 95%;
+       padding:.5em;
+       border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-top:.2em;
+}
+div.comment_panel .comment_feeds{
+       float: left;
+       width: 50%;
+}
+div.comment_panel .photo_actions{
+       margin: 0.5em;
+       max-width: 49%;
+       background: #F7F7F7;
+       float:right;
+       padding:1em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment_template, textarea#comment_template active{
+       background-color:#eeeeee;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment{
+       background-color:#ffffff;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.comment_panel textarea{
+       width:100%;
+}
+
+div.comment_box{
+       float:left;
+       width:100%;
+       margin: 0.5em;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+       background: #F7F7F7;
+}
+div.comment_box .comment_actions{
+       float: left;
+       margin-top: 1em;
+       font-size: 0.8em; 
+       color: #666666;
+}
+
+div.edit_photo_frame{
+       width: 95%;     
+       float: left;
+       padding: 0.2em;
+       background: #F7F7F7;
+       border:thin solid #cccccc;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.edit_photo_box{    
+       float: left;
+       border: 1px solid #D2D2D2;
+       background: white;
+       margin: 0.2em;
+       margin-bottom: 0.8em;
+       padding: 0.8em;
+       width: 94%;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.edit_photo_box .info{
+       float: left;
+       width: 60%;
+}
+
+.info textarea{
+       background-color: #eeeeee;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-top:.2em;
+}
+div.edit_photo_box .info textarea.alt_text{
+       height: 2.5em;
+}
+div.edit_photo_box .info textarea{
+       width: 100%;
+}
+div.edit_photo_box .action{
+       float: right;
+       background: #F7F7F7;
+       min-width: 140px;
+       padding:.2em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+
+
+/* FLUID Image Reorderer */
+.fl-imageReorderer-item {
+}
+.fl-reorderer-movable-hover a{
+       cursor: pointer;
+       background-color: #ECEECC;
+}
+.fl-reorderer-movable-dragging a{
+       background-color: #ECEECC;
+}
+.fl-reorderer-dropMarker {
+       border: 2px solid red;
+       min-height: 100px;
+       float: left;
+}
+.fl-reorderer-avatar {
+       opacity: 0.6;
+       filter:alpha(opacity=60);
+}
+
+
+/* FLUID Simple Inline Editor */
+.fl-inlineEdit-invitation {
+   background-color: #FFECB3 !important;
+   border: 1px solid #CCC !important;
+}
+.fl-inlineEdit-focus {
+    border: 2px solid #777777;
+}
+
+
+.pa_tool_link{
+
+text-decoration:none;
+}
+
+.pa_tool_image{
+vertical-align:middle;
+margin-right:.5em;
+}
+
+
+/* End Photo Album Styles
+ * 
+ * 
+ * 
+ * 
+ */
index c33a8ef..61dd9f0 100644 (file)
@@ -105,3 +105,6 @@ div .button {
 textarea#body_text{
        *width:600px;
 }
+#shortcuts{
+       *width:12%;
+}
\ No newline at end of file
index 54b7b92..284098f 100644 (file)
@@ -136,3 +136,14 @@ table.etabbed-table        {
 .etabbed-list{
        *margin-right:4em;
 }
+
+div.details-text img{
+       float:right;
+       clear:right;
+       padding-left:.2em;
+}
+
+div.details-text{
+       line-height:1.5em;
+       margin-right:.2em;
+}
\ No newline at end of file
index 0ffdbd3..ae67179 100644 (file)
@@ -818,6 +818,71 @@ div#content-text {
        margin-left: 5px;
        padding-right: 5px;
 }
+div#content-test {     
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+       background-color:#F4F9FE;
+       border:1px solid #70A1CA;
+               border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div#content-test ol{   
+       margin-right: 5pt;
+       list-style:none;
+}
+
+div#content-test ol ul li{
+       list-style: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
+div#content-forum {    
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+       background-color:#F4F9FE;
+       border:1px solid #70A1CA;
+               border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div#content-forum ol{  
+       margin-right: 5pt;
+       list-style:none;
+}
+
+div#content-forum ol ul li{
+       list-style: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
+/** forum stuff **/
+.forum-thread li {border:1px solid #eee; border-bottom: 1px solid #F7F3ED; float:left; width: 98%; list-style: none; }
+.forum-thread li.even { background-color: #F7F3ED; border-top: none; }
+.forum-thread li.odd { background-color: #fff; }
+div.forum-post-author { float:left; width:150px; padding:8px 10px; }
+div.forum-post-author a.title {font-size: 1.1em; line-height: 1.2em; font-weight: bold; text-decoration:none; }        
+div.forum-post-author img.profile-picture { border: 2px solid #F7F3ED; text-align:right;}
+div.forum-post-content { margin-left: 150px; padding: 5px 0px 18px 18px;}
+div.forum-post-content h3 { font-weight: 500; float:left;clear:right; }
+div.forum-post-ctrl { float: right; padding-right: 5px; color: #a1a1a1;}
+div.forum-post-ctrl a { text-decoration: none; }
+div.forum-post-ctrl span { color: black; background-color: #fefdc2; padding: 3px; }
+div.forum-post-content p.date { color: #a1a1a1; border-bottom: 1px solid #F7F3ED; }
+div.forum-post-content div.body p { margin-bottom:1em; }
+div.forum-paginator{border:thin #cccccc solid; padding:.3em; width:95%;margin:auto;background-color:#F7F3ED;}
+span.forum-paginator-active{font-weight:700;text-decoration:underline; height:2em;}
+
 
 div#content-info {
        margin: 5px;
@@ -991,12 +1056,12 @@ fieldset {
   width:19em;
 margin-right:.3em;
 }
-h4.box {
+h2.box {
 
     border: 1px solid #788CB3;
 }
 
-h4.box span {
+h2.box span {
     background: #788CB3;
     border: 1px solid #788CB3;
     font-family: Helevetica, Arial, sans-serif;
@@ -1944,3 +2009,441 @@ div.input-form{
        margin-right:1em;
        float:right;
 }
+/*  Photo Album Styles 
+ * 
+ * 
+ * 
+ * 
+ */
+div.topbar{
+       float:left;
+       width: 95%;
+}
+div.paginator{
+       float: right;
+       margin: 0px;
+}
+.paginator ul li{
+       list-style: none;
+}
+.paginator li{
+       padding-right: 0.5em;
+       float: left;
+}
+
+div.summary{
+       float: left;
+       margin-top: 0.5em;
+       width:70%;
+}
+
+div.album_panel{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+       -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       padding:.3em;
+}
+div.album_panel div.photo_wrapper {
+       /* This class is to fix the problem where the images shift
+        * to the right when there is a border upon selection 
+        */
+       height: 150px;
+       float: left;
+}
+div.album_panel .photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 140px;
+       min-width: 140px;
+       text-align: center;
+}
+div.album_panel .photo_frame a:focus, div.album_panel .photo_frame a:hover{
+       cursor: pointer;
+       float:left;
+       min-width: 140px;
+       min-height: 140px;
+       background: #FCE6C9;
+}
+div.album_panel .photo_frame img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.album_panel .album_description{
+       margin: 0.5em;
+       width: 95%;
+       float: left;
+}
+
+div.search_bar {
+       /* background-image: url('images/search_bg.png');
+       background-repeat: no-repeat; */
+       background-color:#ffffff;
+       border:thin solid #cccccc;
+       margin-left: 0.5em;
+       margin-top: 0.5em;
+       height: 27px;
+       width: 180px;
+       float: left;
+       border-radius:.5em;
+       -moz-border-radius:.8em .8em .8em .8em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.search_bar .s{
+       float: left;
+       border: 0px;
+       margin-top: 0.3em;
+       margin-left: 0.5em;
+       width: 148px;
+}
+div.search_bar .s_img{
+       float: right;
+       border: 0px;
+       margin-top: 0.375em;    
+       margin-top: -1.4em\9; /* the \9 to accomodate IE 7&8 */
+       margin-right: 0.4em;
+}
+
+div.album {
+       background: #FFFFFF;
+       padding:1em;
+       border: 1px solid #D2D2D2;      
+       width: 95%;
+       margin: 0.5em;
+       float: left;
+       border-radius:.5em .5em .5em .5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.album .image{
+       float: left;
+       margin: 0.5em;
+       min-width: 140px;
+}
+div.album img{
+       border-width: 0px;
+}
+div.album .image img.no-image {
+       float: left;
+       width: 130px;
+       height: 97px;
+       background-color: #EFEFEF;
+}
+div.album .info{
+       float: left;
+       width: 70%;
+}
+div.album .info span{
+       float: left;
+       color: #666666;
+}
+div.album .info p{
+       font-size: 0.85em;
+       margin: 0;
+}
+div.album .search_photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 160px;
+       max-height: 160px;
+       max-width: 140px;
+       text-align: center;
+       border: 1px solid #d3d3d3;
+       overflow: hidden;
+}
+div.album .search_slider{
+       float: left;
+       overflow: hidden;
+       position: relative;     /* ie7 */
+}
+div.album .search_slider_left{
+       float: left;
+       width: 10%;
+}
+div.album .search_slider_right{
+       float: right;
+       text-align: right;
+       width: 10%;
+}
+div.album .search_slider ul {
+       list-style-type: none;
+       margin: 0;
+       padding: 0;
+       width: 99999px;
+       position: relative;
+}
+div.album .search_slider ul li{
+       float: left;
+}
+div.album .search_slider_a{
+       width: 80%;
+}
+div.album .search_slider_p{
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_slider_p ul li{
+/*     height: 576px;  /* 144 per frame, 4 row */
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_paginator {
+       width: 100%;
+}
+
+div.add_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-bottom:.2em;
+}
+div.add_photo ul{
+       margin: 0px;
+       padding: 0px;
+}
+div.add_photo .toggle_uploader{
+       width: 95%;
+       margin: 0.5em;
+}
+div.add_photo div#ajax_uploader{
+       display: none;
+       margin-top: 0.5em;
+}
+div.add_photo .files .tn {
+       max-height: 30px;
+}
+div.add_photo img{
+       border: 0;
+}
+div.add_photo ul li{
+       float: left;
+       padding: 0.2em;
+       list-style: none;
+       width: 100%;
+       height: 100%;
+       border-bottom: 1px solid #ddd;
+/*     display: inline; */
+}
+div.add_photo p.memory_usage {
+       float: right;
+       font-size: 0.9em;
+       color: #5B5B5B;
+}
+
+div.add_profile_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-bottom:.2em;
+
+}
+div.add_profile_photo .profile_photo{    
+       float: left;    
+       padding: 0.5em;
+
+}
+div.add_profile_photo .uploader{    
+       float: left;    
+       width: 50%;
+       padding: 0.5em;
+       border-bottom: 1px solid #ddd;
+}      
+
+div.photo_panel{
+       background: #F7F7F7;
+       float: left;
+       border: 1px solid #D2D2D2;
+       text-align: center;
+       width: 95%;
+       padding: 0.5em;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.photo_panel img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.photo_panel div.ordering{
+       float:left;
+}
+div.photo_panel div.paginator{
+       float:right;
+}
+div.photo_panel .flc-inlineEditable{
+       width: 604px;
+       margin: 0 auto;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+}
+div.comment_panel{
+       background: #FFFFFF;
+       float: left;
+       border: 1px solid #D2D2D2;
+       width: 95%;
+       padding:.5em;
+       border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-top:.2em;
+}
+div.comment_panel .comment_feeds{
+       float: left;
+       width: 50%;
+}
+div.comment_panel .photo_actions{
+       margin: 0.5em;
+       max-width: 49%;
+       background: #F7F7F7;
+       float:right;
+       padding:1em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment_template, textarea#comment_template active{
+       background-color:#eeeeee;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment{
+       background-color:#ffffff;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.comment_panel textarea{
+       width:100%;
+}
+
+div.comment_box{
+       float:left;
+       width:100%;
+       margin: 0.5em;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+       background: #F7F7F7;
+}
+div.comment_box .comment_actions{
+       float: left;
+       margin-top: 1em;
+       font-size: 0.8em; 
+       color: #666666;
+}
+
+div.edit_photo_frame{
+       width: 95%;     
+       float: left;
+       padding: 0.2em;
+       background: #F7F7F7;
+       border:thin solid #cccccc;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.edit_photo_box{    
+       float: left;
+       border: 1px solid #D2D2D2;
+       background: white;
+       margin: 0.2em;
+       margin-bottom: 0.8em;
+       padding: 0.8em;
+       width: 94%;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.edit_photo_box .info{
+       float: left;
+       width: 60%;
+}
+
+.info textarea{
+       background-color: #eeeeee;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-top:.2em;
+}
+div.edit_photo_box .info textarea.alt_text{
+       height: 2.5em;
+}
+div.edit_photo_box .info textarea{
+       width: 100%;
+}
+div.edit_photo_box .action{
+       float: right;
+       background: #F7F7F7;
+       min-width: 140px;
+       padding:.2em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+
+
+/* FLUID Image Reorderer */
+.fl-imageReorderer-item {
+}
+.fl-reorderer-movable-hover a{
+       cursor: pointer;
+       background-color: #ECEECC;
+}
+.fl-reorderer-movable-dragging a{
+       background-color: #ECEECC;
+}
+.fl-reorderer-dropMarker {
+       border: 2px solid red;
+       min-height: 100px;
+       float: left;
+}
+.fl-reorderer-avatar {
+       opacity: 0.6;
+       filter:alpha(opacity=60);
+}
+
+
+/* FLUID Simple Inline Editor */
+.fl-inlineEdit-invitation {
+   background-color: #FFECB3 !important;
+   border: 1px solid #CCC !important;
+}
+.fl-inlineEdit-focus {
+    border: 2px solid #777777;
+}
+
+
+.pa_tool_link{
+
+text-decoration:none;
+}
+
+.pa_tool_image{
+vertical-align:middle;
+margin-right:.5em;
+}
+
+
+/* End Photo Album Styles
+ * 
+ * 
+ * 
+ * 
+ */
\ No newline at end of file
index 5309d59..2bc141f 100644 (file)
@@ -41,7 +41,9 @@ div#breadcrumbs {
        background-color: #e1ecfe;
        width:100%;
 }
-
+#shortcuts{
+       *width:12%;
+}
 div#top-links {
        position: relative;
        padding-right: 5px;
index 8b28aa3..7cdfd57 100644 (file)
@@ -101,4 +101,14 @@ table.etabbed-table        {
 }
 #subnavlist{
        *margin-right:5em;      
+}
+div.details-text img{
+       float:right;
+       clear:right;
+       padding-left:.2em;
+}
+
+div.details-text{
+       line-height:1.5em;
+       margin-right:.2em;
 }
\ No newline at end of file
index 5a647f3..7c1be12 100644 (file)
@@ -1048,6 +1048,54 @@ div#content-text {
        line-height:150%;
 }
 
+div#content-test {     
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+       background-color:#F4F9FE;
+       border:1px solid #70A1CA;
+               border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div#content-test ol{   
+       margin-right: 5pt;
+       list-style:none;
+}
+
+div#content-test ol ul li{
+       list-style: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
+div#content-forum {    
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+       background-color:#F4F9FE;
+       border:1px solid #70A1CA;
+               border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div#content-forum ol{  
+       margin-right: 5pt;
+       list-style:none;
+}
+
+div#content-forum ol ul li{
+       list-style: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
 div#content-text li {
        margin-left: 15pt;
 }
@@ -1207,9 +1255,9 @@ dl#public-profile dd {
 }
 
 /** forum stuff **/
-#forum-thread li {border:1px solid #eee; border-bottom: 1px solid #F7F3ED; float:left; width: 98%; list-style: none; }
-#forum-thread li.even { background-color: #F7F3ED; border-top: none; }
-#forum-thread li.odd { background-color: #fff; }
+.forum-thread li {border:1px solid #eee; border-bottom: 1px solid #F7F3ED; float:left; width: 98%; list-style: none; }
+.forum-thread li.even { background-color: #F7F3ED; border-top: none; }
+.forum-thread li.odd { background-color: #fff; }
 div.forum-post-author { float:left; width:150px; padding:8px 10px; }
 div.forum-post-author a.title {font-size: 1.1em; line-height: 1.2em; font-weight: bold; text-decoration:none; }        
 div.forum-post-author img.profile-picture { border: 2px solid #F7F3ED; text-align:right;}
@@ -2006,4 +2054,443 @@ ul#subnavlist li a {
 }
 .fl-container{
        background-color:#F7FAF7;       
-}
\ No newline at end of file
+}
+
+/*  Photo Album Styles 
+ * 
+ * 
+ * 
+ * 
+ */
+div.topbar{
+       float:left;
+       width: 95%;
+}
+div.paginator{
+       float: right;
+       margin: 0px;
+}
+.paginator ul li{
+       list-style: none;
+}
+.paginator li{
+       padding-right: 0.5em;
+       float: left;
+}
+
+div.summary{
+       float: left;
+       margin-top: 0.5em;
+       width:70%;
+}
+
+div.album_panel{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+       -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       padding:.3em;
+}
+div.album_panel div.photo_wrapper {
+       /* This class is to fix the problem where the images shift
+        * to the right when there is a border upon selection 
+        */
+       height: 150px;
+       float: left;
+}
+div.album_panel .photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 140px;
+       min-width: 140px;
+       text-align: center;
+}
+div.album_panel .photo_frame a:focus, div.album_panel .photo_frame a:hover{
+       cursor: pointer;
+       float:left;
+       min-width: 140px;
+       min-height: 140px;
+       background: #FCE6C9;
+}
+div.album_panel .photo_frame img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.album_panel .album_description{
+       margin: 0.5em;
+       width: 95%;
+       float: left;
+}
+
+div.search_bar {
+       /* background-image: url('images/search_bg.png');
+       background-repeat: no-repeat; */
+       background-color:#ffffff;
+       border:thin solid #cccccc;
+       margin-left: 0.5em;
+       margin-top: 0.5em;
+       height: 27px;
+       width: 180px;
+       float: left;
+       border-radius:.5em;
+       -moz-border-radius:.8em .8em .8em .8em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.search_bar .s{
+       float: left;
+       border: 0px;
+       margin-top: 0.3em;
+       margin-left: 0.5em;
+       width: 148px;
+}
+div.search_bar .s_img{
+       float: right;
+       border: 0px;
+       margin-top: 0.375em;    
+       margin-top: -1.4em\9; /* the \9 to accomodate IE 7&8 */
+       margin-right: 0.4em;
+}
+
+div.album {
+       background: #FFFFFF;
+       padding:1em;
+       border: 1px solid #D2D2D2;      
+       width: 95%;
+       margin: 0.5em;
+       float: left;
+       border-radius:.5em .5em .5em .5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.album .image{
+       float: left;
+       margin: 0.5em;
+       min-width: 140px;
+}
+div.album img{
+       border-width: 0px;
+}
+div.album .image img.no-image {
+       float: left;
+       width: 130px;
+       height: 97px;
+       background-color: #EFEFEF;
+}
+div.album .info{
+       float: left;
+       width: 70%;
+}
+div.album .info span{
+       float: left;
+       color: #666666;
+}
+div.album .info p{
+       font-size: 0.85em;
+       margin: 0;
+}
+div.album .search_photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 160px;
+       max-height: 160px;
+       max-width: 140px;
+       text-align: center;
+       border: 1px solid #d3d3d3;
+       overflow: hidden;
+}
+div.album .search_slider{
+       float: left;
+       overflow: hidden;
+       position: relative;     /* ie7 */
+}
+div.album .search_slider_left{
+       float: left;
+       width: 10%;
+}
+div.album .search_slider_right{
+       float: right;
+       text-align: right;
+       width: 10%;
+}
+div.album .search_slider ul {
+       list-style-type: none;
+       margin: 0;
+       padding: 0;
+       width: 99999px;
+       position: relative;
+}
+div.album .search_slider ul li{
+       float: left;
+}
+div.album .search_slider_a{
+       width: 80%;
+}
+div.album .search_slider_p{
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_slider_p ul li{
+/*     height: 576px;  /* 144 per frame, 4 row */
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_paginator {
+       width: 100%;
+}
+
+div.add_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-bottom:.2em;
+}
+div.add_photo ul{
+       margin: 0px;
+       padding: 0px;
+}
+div.add_photo .toggle_uploader{
+       width: 95%;
+       margin: 0.5em;
+}
+div.add_photo div#ajax_uploader{
+       display: none;
+       margin-top: 0.5em;
+}
+div.add_photo .files .tn {
+       max-height: 30px;
+}
+div.add_photo img{
+       border: 0;
+}
+div.add_photo ul li{
+       float: left;
+       padding: 0.2em;
+       list-style: none;
+       width: 100%;
+       height: 100%;
+       border-bottom: 1px solid #ddd;
+/*     display: inline; */
+}
+div.add_photo p.memory_usage {
+       float: right;
+       font-size: 0.9em;
+       color: #5B5B5B;
+}
+
+div.add_profile_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-bottom:.2em;
+
+}
+div.add_profile_photo .profile_photo{    
+       float: left;    
+       padding: 0.5em;
+
+}
+div.add_profile_photo .uploader{    
+       float: left;    
+       width: 50%;
+       padding: 0.5em;
+       border-bottom: 1px solid #ddd;
+}      
+
+div.photo_panel{
+       background: #F7F7F7;
+       float: left;
+       border: 1px solid #D2D2D2;
+       text-align: center;
+       width: 95%;
+       padding: 0.5em;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.photo_panel img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.photo_panel div.ordering{
+       float:left;
+}
+div.photo_panel div.paginator{
+       float:right;
+}
+div.photo_panel .flc-inlineEditable{
+       width: 604px;
+       margin: 0 auto;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+}
+div.comment_panel{
+       background: #FFFFFF;
+       float: left;
+       border: 1px solid #D2D2D2;
+       width: 95%;
+       padding:.5em;
+       border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-top:.2em;
+}
+div.comment_panel .comment_feeds{
+       float: left;
+       width: 50%;
+}
+div.comment_panel .photo_actions{
+       margin: 0.5em;
+       max-width: 49%;
+       background: #F7F7F7;
+       float:right;
+       padding:1em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment_template, textarea#comment_template active{
+       background-color:#eeeeee;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment{
+       background-color:#ffffff;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.comment_panel textarea{
+       width:100%;
+}
+
+div.comment_box{
+       float:left;
+       width:100%;
+       margin: 0.5em;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+       background: #F7F7F7;
+}
+div.comment_box .comment_actions{
+       float: left;
+       margin-top: 1em;
+       font-size: 0.8em; 
+       color: #666666;
+}
+
+div.edit_photo_frame{
+       width: 95%;     
+       float: left;
+       padding: 0.2em;
+       background: #F7F7F7;
+       border:thin solid #cccccc;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.edit_photo_box{    
+       float: left;
+       border: 1px solid #D2D2D2;
+       background: white;
+       margin: 0.2em;
+       margin-bottom: 0.8em;
+       padding: 0.8em;
+       width: 94%;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.edit_photo_box .info{
+       float: left;
+       width: 60%;
+}
+
+.info textarea{
+       background-color: #eeeeee;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-top:.2em;
+}
+div.edit_photo_box .info textarea.alt_text{
+       height: 2.5em;
+}
+div.edit_photo_box .info textarea{
+       width: 100%;
+}
+div.edit_photo_box .action{
+       float: right;
+       background: #F7F7F7;
+       min-width: 140px;
+       padding:.2em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+
+
+/* FLUID Image Reorderer */
+.fl-imageReorderer-item {
+}
+.fl-reorderer-movable-hover a{
+       cursor: pointer;
+       background-color: #ECEECC;
+}
+.fl-reorderer-movable-dragging a{
+       background-color: #ECEECC;
+}
+.fl-reorderer-dropMarker {
+       border: 2px solid red;
+       min-height: 100px;
+       float: left;
+}
+.fl-reorderer-avatar {
+       opacity: 0.6;
+       filter:alpha(opacity=60);
+}
+
+
+/* FLUID Simple Inline Editor */
+.fl-inlineEdit-invitation {
+   background-color: #FFECB3 !important;
+   border: 1px solid #CCC !important;
+}
+.fl-inlineEdit-focus {
+    border: 2px solid #777777;
+}
+
+
+.pa_tool_link{
+
+text-decoration:none;
+}
+
+.pa_tool_image{
+vertical-align:middle;
+margin-right:.5em;
+}
+
+
+/* End Photo Album Styles
+ * 
+ * 
+ * 
+ * 
+ */
index 41017d5..914591d 100644 (file)
@@ -72,7 +72,7 @@ if ($_SESSION["prefs"]["PREF_SHOW_CONTENTS"] && $this->content_table <> "")
 <?php\r
 \r
 if (!empty($this->forum_ids)): ?>\r
-<div id="content-test" class="input-form">\r
+<div id="content-forum" class="input-form">\r
     <ol>\r
         <strong><?php echo _AT('forums') . ':' ; ?></strong>\r
         <li class="top-tool"><?php echo $this->forum_message; ?></li>\r
index 498dd4f..85364a3 100644 (file)
@@ -6,7 +6,7 @@ $compact_title = str_replace(' ', '', $this->title);
 ?>
 
 <br />
-<h4 class="box"><span><?php echo $this->title ?></span><input class="fl-force-right" src="" alt="" title="" type="image" /></h4>
+<h2 class="box"><span><?php echo $this->title ?></span><input class="fl-force-right" src="" alt="" title="" type="image" /></h2>
 <div class="box" id="menu_<?php echo $compact_title ?>">
        <?php echo $this->dropdown_contents; ?>
 </div>
\ No newline at end of file
index 85e2372..dab7cbe 100644 (file)
@@ -101,4 +101,15 @@ white-space:normal;
 
 table.etabbed-table    {
        padding-right:5em;
+}
+
+div.details-text img{
+       float:right;
+       clear:right;
+       padding-left:.2em;
+}
+
+div.details-text{
+       line-height:1.5em;
+       margin-right:.2em;
 }
\ No newline at end of file
index 0227cc6..753d2fb 100644 (file)
@@ -943,7 +943,7 @@ div.tabs a:hover, div.tabs a.active {
 }
 
 
-h4.box {
+h2.box {
        background-color: #DEECE2;
        color: black;
        border: 1px solid #57945A;
@@ -1176,6 +1176,30 @@ div#content-test ol ul li{
        border: 1px solid #eeeeff;
 }
 
+div#content-forum {    
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+       background-color:#F4F9FE;
+       border:1px solid #70A1CA;
+               border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div#content-forum ol{  
+       margin-right: 5pt;
+       list-style:none;
+}
+
+div#content-forum ol ul li{
+       list-style: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
 
 div#content-info {
        margin: 5pt;
@@ -1330,9 +1354,9 @@ dl#public-profile dd {
 }
 
 /** forum stuff **/
-#forum-thread li { clear:left; border:1px solid #eee; border-bottom: 1px solid #f0f0f0; float:left; width: 98%; list-style: none; }
-#forum-thread li.even { background: #fdfdfd; border-top: none; }
-#forum-thread li.odd { background: #fff; }
+.forum-thread li { clear:left; border:1px solid #eee; border-bottom: 1px solid #f0f0f0; float:left; width: 98%; list-style: none; }
+.forum-thread li.even { background: #fdfdfd; border-top: none; }
+.forum-thread li.odd { background: #fff; }
 div.forum-post-author { float:left; width:150px; padding:8px 10px; }
 div.forum-post-author a.title {        font-size: 1.1em; line-height: 1.2em; font-weight: bold; text-decoration:none; }        
 div.forum-post-author img.profile-picture { border: 2px solid #f0f0f0; }
@@ -2048,3 +2072,443 @@ ul#subnavlist li a {
 .fl-container{
 background-color:#F7FAF7;      
 }
+
+
+/*  Photo Album Styles 
+ * 
+ * 
+ * 
+ * 
+ */
+div.topbar{
+       float:left;
+       width: 95%;
+}
+div.paginator{
+       float: right;
+       margin: 0px;
+}
+.paginator ul li{
+       list-style: none;
+}
+.paginator li{
+       padding-right: 0.5em;
+       float: left;
+}
+
+div.summary{
+       float: left;
+       margin-top: 0.5em;
+       width:70%;
+}
+
+div.album_panel{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+       -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       padding:.3em;
+}
+div.album_panel div.photo_wrapper {
+       /* This class is to fix the problem where the images shift
+        * to the right when there is a border upon selection 
+        */
+       height: 150px;
+       float: left;
+}
+div.album_panel .photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 140px;
+       min-width: 140px;
+       text-align: center;
+}
+div.album_panel .photo_frame a:focus, div.album_panel .photo_frame a:hover{
+       cursor: pointer;
+       float:left;
+       min-width: 140px;
+       min-height: 140px;
+       background: #FCE6C9;
+}
+div.album_panel .photo_frame img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.album_panel .album_description{
+       margin: 0.5em;
+       width: 95%;
+       float: left;
+}
+
+div.search_bar {
+       /* background-image: url('images/search_bg.png');
+       background-repeat: no-repeat; */
+       background-color:#ffffff;
+       border:thin solid #cccccc;
+       margin-left: 0.5em;
+       margin-top: 0.5em;
+       height: 27px;
+       width: 180px;
+       float: left;
+       border-radius:.5em;
+       -moz-border-radius:.8em .8em .8em .8em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.search_bar .s{
+       float: left;
+       border: 0px;
+       margin-top: 0.3em;
+       margin-left: 0.5em;
+       width: 148px;
+}
+div.search_bar .s_img{
+       float: right;
+       border: 0px;
+       margin-top: 0.375em;    
+       margin-top: -1.4em\9; /* the \9 to accomodate IE 7&8 */
+       margin-right: 0.4em;
+}
+
+div.album {
+       background: #FFFFFF;
+       padding:1em;
+       border: 1px solid #D2D2D2;      
+       width: 95%;
+       margin: 0.5em;
+       float: left;
+       border-radius:.5em .5em .5em .5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.album .image{
+       float: left;
+       margin: 0.5em;
+       min-width: 140px;
+}
+div.album img{
+       border-width: 0px;
+}
+div.album .image img.no-image {
+       float: left;
+       width: 130px;
+       height: 97px;
+       background-color: #EFEFEF;
+}
+div.album .info{
+       float: left;
+       width: 70%;
+}
+div.album .info span{
+       float: left;
+       color: #666666;
+}
+div.album .info p{
+       font-size: 0.85em;
+       margin: 0;
+}
+div.album .search_photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 160px;
+       max-height: 160px;
+       max-width: 140px;
+       text-align: center;
+       border: 1px solid #d3d3d3;
+       overflow: hidden;
+}
+div.album .search_slider{
+       float: left;
+       overflow: hidden;
+       position: relative;     /* ie7 */
+}
+div.album .search_slider_left{
+       float: left;
+       width: 10%;
+}
+div.album .search_slider_right{
+       float: right;
+       text-align: right;
+       width: 10%;
+}
+div.album .search_slider ul {
+       list-style-type: none;
+       margin: 0;
+       padding: 0;
+       width: 99999px;
+       position: relative;
+}
+div.album .search_slider ul li{
+       float: left;
+}
+div.album .search_slider_a{
+       width: 80%;
+}
+div.album .search_slider_p{
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_slider_p ul li{
+/*     height: 576px;  /* 144 per frame, 4 row */
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_paginator {
+       width: 100%;
+}
+
+div.add_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-bottom:.2em;
+}
+div.add_photo ul{
+       margin: 0px;
+       padding: 0px;
+}
+div.add_photo .toggle_uploader{
+       width: 95%;
+       margin: 0.5em;
+}
+div.add_photo div#ajax_uploader{
+       display: none;
+       margin-top: 0.5em;
+}
+div.add_photo .files .tn {
+       max-height: 30px;
+}
+div.add_photo img{
+       border: 0;
+}
+div.add_photo ul li{
+       float: left;
+       padding: 0.2em;
+       list-style: none;
+       width: 100%;
+       height: 100%;
+       border-bottom: 1px solid #ddd;
+/*     display: inline; */
+}
+div.add_photo p.memory_usage {
+       float: right;
+       font-size: 0.9em;
+       color: #5B5B5B;
+}
+
+div.add_profile_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-bottom:.2em;
+
+}
+div.add_profile_photo .profile_photo{    
+       float: left;    
+       padding: 0.5em;
+
+}
+div.add_profile_photo .uploader{    
+       float: left;    
+       width: 50%;
+       padding: 0.5em;
+       border-bottom: 1px solid #ddd;
+}      
+
+div.photo_panel{
+       background: #F7F7F7;
+       float: left;
+       border: 1px solid #D2D2D2;
+       text-align: center;
+       width: 95%;
+       padding: 0.5em;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.photo_panel img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.photo_panel div.ordering{
+       float:left;
+}
+div.photo_panel div.paginator{
+       float:right;
+}
+div.photo_panel .flc-inlineEditable{
+       width: 604px;
+       margin: 0 auto;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+}
+div.comment_panel{
+       background: #FFFFFF;
+       float: left;
+       border: 1px solid #D2D2D2;
+       width: 95%;
+       padding:.5em;
+       border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-top:.2em;
+}
+div.comment_panel .comment_feeds{
+       float: left;
+       width: 50%;
+}
+div.comment_panel .photo_actions{
+       margin: 0.5em;
+       max-width: 49%;
+       background: #F7F7F7;
+       float:right;
+       padding:1em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment_template, textarea#comment_template active{
+       background-color:#eeeeee;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment{
+       background-color:#ffffff;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.comment_panel textarea{
+       width:100%;
+}
+
+div.comment_box{
+       float:left;
+       width:100%;
+       margin: 0.5em;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+       background: #F7F7F7;
+}
+div.comment_box .comment_actions{
+       float: left;
+       margin-top: 1em;
+       font-size: 0.8em; 
+       color: #666666;
+}
+
+div.edit_photo_frame{
+       width: 95%;     
+       float: left;
+       padding: 0.2em;
+       background: #F7F7F7;
+       border:thin solid #cccccc;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.edit_photo_box{    
+       float: left;
+       border: 1px solid #D2D2D2;
+       background: white;
+       margin: 0.2em;
+       margin-bottom: 0.8em;
+       padding: 0.8em;
+       width: 94%;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.edit_photo_box .info{
+       float: left;
+       width: 60%;
+}
+
+.info textarea{
+       background-color: #eeeeee;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-top:.2em;
+}
+div.edit_photo_box .info textarea.alt_text{
+       height: 2.5em;
+}
+div.edit_photo_box .info textarea{
+       width: 100%;
+}
+div.edit_photo_box .action{
+       float: right;
+       background: #F7F7F7;
+       min-width: 140px;
+       padding:.2em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+
+
+/* FLUID Image Reorderer */
+.fl-imageReorderer-item {
+}
+.fl-reorderer-movable-hover a{
+       cursor: pointer;
+       background-color: #ECEECC;
+}
+.fl-reorderer-movable-dragging a{
+       background-color: #ECEECC;
+}
+.fl-reorderer-dropMarker {
+       border: 2px solid red;
+       min-height: 100px;
+       float: left;
+}
+.fl-reorderer-avatar {
+       opacity: 0.6;
+       filter:alpha(opacity=60);
+}
+
+
+/* FLUID Simple Inline Editor */
+.fl-inlineEdit-invitation {
+   background-color: #FFECB3 !important;
+   border: 1px solid #CCC !important;
+}
+.fl-inlineEdit-focus {
+    border: 2px solid #777777;
+}
+
+
+.pa_tool_link{
+
+text-decoration:none;
+}
+
+.pa_tool_image{
+vertical-align:middle;
+margin-right:.5em;
+}
+
+
+/* End Photo Album Styles
+ * 
+ * 
+ * 
+ * 
+ */
\ No newline at end of file
index b03c8a3..6b9e898 100644 (file)
@@ -54,7 +54,7 @@ if (!defined('AT_INCLUDE_PATH')) { exit; } ?>
 <?php\r
 \r
 if (!empty($this->forum_ids)): ?>\r
-<div id="content-test" class="input-form">\r
+<div id="content-forum" class="input-form">\r
     <ol>\r
         <strong><?php echo _AT('forums') . ':' ; ?></strong>\r
         <li class="top-tool"><?php echo $this->forum_message; ?></li>\r
index 9b7e518..fcde121 100644 (file)
@@ -6,7 +6,7 @@ $compact_title = str_replace(' ', '', $this->title);
 ?>
 
 <br />
-<h4 class="box"><span><?php echo $this->title ?></span><input class="fl-force-right" src="" alt="" title="" type="image" /></h4>
+<h2 class="box"><span><?php echo $this->title ?></span><input class="fl-force-right" src="" alt="" title="" type="image" /></h2>
 <div class="box" id="menu_<?php echo $compact_title ?>">
        <?php echo $this->dropdown_contents; ?>
 </div>
index d9c5752..3361ef9 100644 (file)
@@ -106,4 +106,15 @@ white-space:normal;
 }
 table.etabbed-table{
 margin-right: 4em;
+}
+
+div.details-text img{
+       float:right;
+       clear:right;
+       padding-left:.2em;
+}
+
+div.details-text{
+       line-height:1.5em;
+       margin-right:.2em;
 }
\ No newline at end of file
index 26c7bb6..629bafa 100644 (file)
@@ -994,11 +994,12 @@ div.tabs a:hover, div.tabs a.active {
 }
 
 
-h4.box {
+h2.box {
        background-color: #DEE7EC;
        color: black;
        border: 1px solid #8CACBB;
        padding: 2px;
+       font-size:1em;
 }
 
 div.box {
@@ -1219,6 +1220,30 @@ div#content-test ol ul li{
        border: 1px solid #eeeeff;
 }
 
+div#content-forum {    
+       float: left;
+       margin-top: 2em;
+       padding-right: 5pt;
+       width: 80%;
+       background-color:#F4F9FE;
+       border:1px solid #70A1CA;
+               border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div#content-forum ol{  
+       margin-right: 5pt;
+       list-style:none;
+}
+
+div#content-forum ol ul li{
+       list-style: none;
+       padding: 0px 2px 0px 15px;
+       margin-bottom: 1px; 
+       line-height: 200%; 
+       background-color: #fdfdfd; 
+       border-bottom: 1px solid #efefef; 
+       border: 1px solid #eeeeff;
+}
 
 div#content-info {
        margin: 5pt;
@@ -1375,9 +1400,9 @@ dl#public-profile dd {
 }
 
 /** forum stuff **/
-#forum-thread li { clear:left; border:1px solid #eee; border-bottom: 1px solid #f0f0f0; float:left; width: 98%; list-style: none; }
-#forum-thread li.even { background: #fdfdfd; border-top: none; }
-#forum-thread li.odd { background: #fff; }
+.forum-thread li { clear:left; border:1px solid #eee; border-bottom: 1px solid #f0f0f0; float:left; width: 98%; list-style: none; }
+.forum-thread li.even { background: #fdfdfd; border-top: none; }
+.forum-thread li.odd { background: #fff; }
 div.forum-post-author { float:left; width:150px; padding:8px 10px; }
 div.forum-post-author a.title {        font-size: 1.1em; line-height: 1.2em; font-weight: bold; text-decoration:none; }        
 div.forum-post-author img.profile-picture { border: 2px solid #f0f0f0; }
@@ -2025,3 +2050,441 @@ ul#subnavlist li a {
        font-weight:500;
 }
 
+/*  Photo Album Styles 
+ * 
+ * 
+ * 
+ * 
+ */
+div.topbar{
+       float:left;
+       width: 95%;
+}
+div.paginator{
+       float: right;
+       margin: 0px;
+}
+.paginator ul li{
+       list-style: none;
+}
+.paginator li{
+       padding-right: 0.5em;
+       float: left;
+}
+
+div.summary{
+       float: left;
+       margin-top: 0.5em;
+       width:70%;
+}
+
+div.album_panel{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+       -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       padding:.3em;
+}
+div.album_panel div.photo_wrapper {
+       /* This class is to fix the problem where the images shift
+        * to the right when there is a border upon selection 
+        */
+       height: 150px;
+       float: left;
+}
+div.album_panel .photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 140px;
+       min-width: 140px;
+       text-align: center;
+}
+div.album_panel .photo_frame a:focus, div.album_panel .photo_frame a:hover{
+       cursor: pointer;
+       float:left;
+       min-width: 140px;
+       min-height: 140px;
+       background: #FCE6C9;
+}
+div.album_panel .photo_frame img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.album_panel .album_description{
+       margin: 0.5em;
+       width: 95%;
+       float: left;
+}
+
+div.search_bar {
+       /* background-image: url('images/search_bg.png');
+       background-repeat: no-repeat; */
+       background-color:#ffffff;
+       border:thin solid #cccccc;
+       margin-left: 0.5em;
+       margin-top: 0.5em;
+       height: 27px;
+       width: 180px;
+       float: left;
+       border-radius:.5em;
+       -moz-border-radius:.8em .8em .8em .8em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.search_bar .s{
+       float: left;
+       border: 0px;
+       margin-top: 0.3em;
+       margin-left: 0.5em;
+       width: 148px;
+}
+div.search_bar .s_img{
+       float: right;
+       border: 0px;
+       margin-top: 0.375em;    
+       margin-top: -1.4em\9; /* the \9 to accomodate IE 7&8 */
+       margin-right: 0.4em;
+}
+
+div.album {
+       background: #FFFFFF;
+       padding:1em;
+       border: 1px solid #D2D2D2;      
+       width: 95%;
+       margin: 0.5em;
+       float: left;
+       border-radius:.5em .5em .5em .5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+}
+div.album .image{
+       float: left;
+       margin: 0.5em;
+       min-width: 140px;
+}
+div.album img{
+       border-width: 0px;
+}
+div.album .image img.no-image {
+       float: left;
+       width: 130px;
+       height: 97px;
+       background-color: #EFEFEF;
+}
+div.album .info{
+       float: left;
+       width: 70%;
+}
+div.album .info span{
+       float: left;
+       color: #666666;
+}
+div.album .info p{
+       font-size: 0.85em;
+       margin: 0;
+}
+div.album .search_photo_frame{
+       float: left;
+       margin: 0.2em;
+       min-height: 160px;
+       max-height: 160px;
+       max-width: 140px;
+       text-align: center;
+       border: 1px solid #d3d3d3;
+       overflow: hidden;
+}
+div.album .search_slider{
+       float: left;
+       overflow: hidden;
+       position: relative;     /* ie7 */
+}
+div.album .search_slider_left{
+       float: left;
+       width: 10%;
+}
+div.album .search_slider_right{
+       float: right;
+       text-align: right;
+       width: 10%;
+}
+div.album .search_slider ul {
+       list-style-type: none;
+       margin: 0;
+       padding: 0;
+       width: 99999px;
+       position: relative;
+}
+div.album .search_slider ul li{
+       float: left;
+}
+div.album .search_slider_a{
+       width: 80%;
+}
+div.album .search_slider_p{
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_slider_p ul li{
+/*     height: 576px;  /* 144 per frame, 4 row */
+       width: 730px;   /* 146 per frame, 5 frame per row */
+}
+div.album .search_paginator {
+       width: 100%;
+}
+
+div.add_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-bottom:.2em;
+}
+div.add_photo ul{
+       margin: 0px;
+       padding: 0px;
+}
+div.add_photo .toggle_uploader{
+       width: 95%;
+       margin: 0.5em;
+}
+div.add_photo div#ajax_uploader{
+       display: none;
+       margin-top: 0.5em;
+}
+div.add_photo .files .tn {
+       max-height: 30px;
+}
+div.add_photo img{
+       border: 0;
+}
+div.add_photo ul li{
+       float: left;
+       padding: 0.2em;
+       list-style: none;
+       width: 100%;
+       height: 100%;
+       border-bottom: 1px solid #ddd;
+/*     display: inline; */
+}
+div.add_photo p.memory_usage {
+       float: right;
+       font-size: 0.9em;
+       color: #5B5B5B;
+}
+
+div.add_profile_photo{
+       float: left;
+       background: #F7F7F7;
+       border: 1px solid #D2D2D2;      
+       width: 96%;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-bottom:.2em;
+
+}
+div.add_profile_photo .profile_photo{    
+       float: left;    
+       padding: 0.5em;
+
+}
+div.add_profile_photo .uploader{    
+       float: left;    
+       width: 50%;
+       padding: 0.5em;
+       border-bottom: 1px solid #ddd;
+}      
+
+div.photo_panel{
+       background: #F7F7F7;
+       float: left;
+       border: 1px solid #D2D2D2;
+       text-align: center;
+       width: 95%;
+       padding: 0.5em;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.photo_panel img{
+       background: #FFFFFF;
+       border: 1px solid #D2D2D2;
+       padding: 0.2em;
+}
+div.photo_panel div.ordering{
+       float:left;
+}
+div.photo_panel div.paginator{
+       float:right;
+}
+div.photo_panel .flc-inlineEditable{
+       width: 604px;
+       margin: 0 auto;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+}
+div.comment_panel{
+       background: #FFFFFF;
+       float: left;
+       border: 1px solid #D2D2D2;
+       width: 95%;
+       padding:.5em;
+       border-radius: .3em .3em .3em .3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+               -moz-box-shadow:.2em .2em .1em #999999;
+    box-shadow: .2em .2em .1em #999999;
+       margin-top:.2em;
+}
+div.comment_panel .comment_feeds{
+       float: left;
+       width: 50%;
+}
+div.comment_panel .photo_actions{
+       margin: 0.5em;
+       max-width: 49%;
+       background: #F7F7F7;
+       float:right;
+       padding:1em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment_template, textarea#comment_template active{
+       background-color:#eeeeee;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+.row textarea#comment{
+       background-color:#ffffff;
+       border:thin solid #eeeeee;
+       border:thin solid #cccccc;
+       padding:.2em;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.comment_panel textarea{
+       width:100%;
+}
+
+div.comment_box{
+       float:left;
+       width:100%;
+       margin: 0.5em;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+       background: #F7F7F7;
+}
+div.comment_box .comment_actions{
+       float: left;
+       margin-top: 1em;
+       font-size: 0.8em; 
+       color: #666666;
+}
+
+div.edit_photo_frame{
+       width: 95%;     
+       float: left;
+       padding: 0.2em;
+       background: #F7F7F7;
+       border:thin solid #cccccc;
+       border-radius:.5em;
+       -moz-border-radius: .5em .5em .5em .5em;
+}
+div.edit_photo_box{    
+       float: left;
+       border: 1px solid #D2D2D2;
+       background: white;
+       margin: 0.2em;
+       margin-bottom: 0.8em;
+       padding: 0.8em;
+/*     width: 94%; 
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+div.edit_photo_box .info{
+       float: left;
+       width: 60%;
+}
+
+.info textarea{
+       background-color: #eeeeee;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+       margin-top:.2em;
+}
+div.edit_photo_box .info textarea.alt_text{
+       height: 2.5em;
+}
+div.edit_photo_box .info textarea{
+       width: 100%;
+}
+div.edit_photo_box .action{
+       float: right;
+       background: #F7F7F7;
+       min-width: 140px;
+       padding:.2em;
+       border:thin solid #cccccc;
+       border-radius:.3em;
+       -moz-border-radius: .3em .3em .3em .3em;
+}
+
+
+/* FLUID Image Reorderer */
+.fl-imageReorderer-item {
+}
+.fl-reorderer-movable-hover a{
+       cursor: pointer;
+       background-color: #ECEECC;
+}
+.fl-reorderer-movable-dragging a{
+       background-color: #ECEECC;
+}
+.fl-reorderer-dropMarker {
+       border: 2px solid red;
+       min-height: 100px;
+       float: left;
+}
+.fl-reorderer-avatar {
+       opacity: 0.6;
+       filter:alpha(opacity=60);
+}
+
+
+/* FLUID Simple Inline Editor */
+.fl-inlineEdit-invitation {
+   background-color: #FFECB3 !important;
+   border: 1px solid #CCC !important;
+}
+.fl-inlineEdit-focus {
+    border: 2px solid #777777;
+}
+
+
+.pa_tool_link{
+
+text-decoration:none;
+}
+
+.pa_tool_image{
+vertical-align:middle;
+margin-right:.5em;
+}
+
+
+/* End Photo Album Styles
+ * 
+ * 
+ * 
+ * 
+ */
\ No newline at end of file
index 4be4541..8a8954d 100644 (file)
@@ -97,7 +97,7 @@ function print_sublinks($link){
                <div class="outside_box">
 <?php if (authenticate(AT_PRIV_ADMIN,AT_PRIV_RETURN)) {?>
                        <div class="buttonbox">
-                       <a href="#" onclick="javascript: remove_module('<?php echo htmlentities(substr($link['url'], strlen($_base_path))); ?>'); return false;"><img src="<?php echo AT_BASE_HREF; ?>images/x.gif" border="0" alt="<?php echo _AT('close'); ?>"/></a>
+                       <input type="image" onclick="javascript: remove_module('<?php echo htmlentities(substr($link['url'], strlen($_base_path))); ?>');" src="<?php echo AT_BASE_HREF; ?>images/x.gif" alt="<?php echo _AT('close'); ?>" value="<?php echo _AT('close'); ?>" class="img1616"/>
                        </div>
 <?php }?>
                        <img src="<?php echo $link['img']; ?>" alt="" border="0" height="45" width="45"/>
@@ -129,47 +129,5 @@ function print_sublinks($link){
        </div>
 </div>
 
-
-
-
-<!--
-<div class="details_ol">
-       <div class="details_or">
-               <div class="outside_box">
-<?php if (authenticate(AT_PRIV_ADMIN,AT_PRIV_RETURN)) {?>
-                       <div class="buttonbox">
-                       <a href="#" onclick="javascript: remove_module('<?php echo htmlentities(substr($link['url'], strlen($_base_path))); ?>'); return false;"><img src="<?php echo AT_BASE_HREF; ?>images/x.gif" border="0" alt="<?php echo _AT('close'); ?>"/></a>
-                       </div>
-<?php }?>
-                       <img src="<?php echo $link['img']; ?>" alt="" border="0" height="51" width="51"/>
-                       <span class="home-title"><a href="<?php echo $link['url']; ?>"><?php echo $link['title']; ?></a></span>
-                       <div class="inside_box">
-                               <div class="details_il">&nbsp;</div>
-                               <div class="details_ir"></div>
-<?php
-       // if $link['sub_file'] is defined, print the text array returned from sub_file, otherwise, print the text defined in $link['text']
-       if($link['sub_file']!=""){
-               //$array = require(AT_INCLUDE_PATH.'../'.$link['sub_file']);
-               if(!is_array($array)){ 
-?>
-                               <div class="details-text">
-                               <i><?php echo _AT('none_found'); ?></i>
-                               </div>
-<?php } else { ?>
-                               <div class="details-text">
-<?php  foreach($array as $sublink){ ?>
-                                       <img src="<?php echo $link['icon']; ?>" border="0" alt="" /> 
-<?php          if ($sublink <> '') echo $sublink."<br />"; } ?>
-                               </div> 
-<?php 
-               } // end of else                                                
-       } else { ?>
-                               <div class="details_text"><?php echo $link['text']; ?></div>
-<?php } ?>
-                       </div>
-               </div>
-       </div>
-</div>
--->
 <?php } ?>
 
diff --git a/docs/users/contact_instructor.php b/docs/users/contact_instructor.php
deleted file mode 100644 (file)
index c2d7eb1..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-<?php
-/****************************************************************/
-/* ATutor                                                                                                              */
-/****************************************************************/
-/* Copyright (c) 2002-2010                                      */
-/* Inclusive Design Institute                                   */
-/* http://atutor.ca                                                                                            */
-/*                                                              */
-/* This program is free software. You can redistribute it and/or*/
-/* modify it under the terms of the GNU General Public License  */
-/* as published by the Free Software Foundation.                               */
-/****************************************************************/
-// $Id$
-
-if ($_REQUEST['from_browse']) {
-       $page = 'browse_courses';
-} else {
-       $page = 'my_courses';
-}
-
-$_user_location        = 'users';
-define('AT_INCLUDE_PATH', '../include/');
-require(AT_INCLUDE_PATH.'vitals.inc.php');
-
-if ($_POST['cancel']) {
-       if ($_POST['from_browse']) {
-               header('Location: browse.php');
-       } else {
-               header('Location: index.php');
-       }
-       exit;
-}
-
-       require(AT_INCLUDE_PATH.'header.inc.php');
-
-       echo '<h2>'._AT('contact_instructor').'</h2>';
-
-       $sql    = "SELECT first_name, last_name, email FROM ".TABLE_PREFIX."members WHERE member_id=$_SESSION[member_id]";
-       $result = mysql_query($sql, $db);
-       if ($row = mysql_fetch_array($result)) {
-               $student_name = $row['last_name'];
-               $student_name .= ($row['first_name'] ? ', '.$row['first_name'] : '');
-
-               $student_email = $row['email'];
-       } else {
-               $msg->printErrors('STUD_INFO_NOT_FOUND');
-               require(AT_INCLUDE_PATH.'footer.inc.php');
-               exit;
-       }
-
-       if ($_GET['course']) {
-               $course = intval($_GET['course']);
-       } else {
-               $course = intval($_POST['course']);
-       }
-
-       $sql    = "SELECT M.first_name, M.last_name, M.email, C.title FROM ".TABLE_PREFIX."members M, ".TABLE_PREFIX."courses C WHERE M.member_id=C.member_id AND C.course_id=$course";
-       $result = mysql_query($sql, $db);
-
-       if ($row = mysql_fetch_array($result)) {
-               $instructor_name = $row['last_name'];
-               $instructor_name .= ($row['first_name'] ? ', '.$row['first_name'] : '');
-
-               $instructor_email = $row['email'];
-       } else {
-               $msg->printErrors('INST_INFO_NOT_FOUND');
-               require(AT_INCLUDE_PATH.'footer.inc.php');
-               exit;
-       }
-
-       if ($_POST['submit']) {
-               $missing_fields = array();
-
-               $to_email = $instructor_email;
-               $_POST['subject'] = trim($_POST['subject']);
-               $_POST['body']    = trim($_POST['body']);
-
-               if ($_POST['subject'] == '') {
-                       $missing_fields[] = _AT('subject');
-               }
-               if ($_POST['body'] == '') {
-                       $missing_fields[] = _AT('body');
-               }
-               
-               if ($missing_fields) {
-                       $missing_fields = implode(', ', $missing_fields);
-                       $msg->addError(array('EMPTY_FIELDS', $missing_fields));
-               }
-               if (!$msg->containsErrors()) {
-                       $tmp_message = _AT('from_atutor', $row['title'])."\n\n";
-                       $tmp_message .= $_POST['body']."\n\n";
-
-                       if ($to_email != '') {
-                               require(AT_INCLUDE_PATH . 'classes/phpmailer/atutormailer.class.php');
-
-                               $mail = new ATutorMailer;
-
-                               $mail->From     = $_POST['from_email'];
-                               $mail->FromName = $_POST['from'];
-                               $mail->AddAddress($to_email);
-                               $mail->Subject = $_POST['subject'];
-                               $mail->Body    = $tmp_message;
-
-                               if(!$mail->Send()) {
-                                  //echo 'There was an error sending the message';
-                                  $msg->printErrors('SENDING_ERROR');
-                                  exit;
-                               }
-
-                               unset($mail);
-
-                               $msg->printFeedbacks('ACTION_COMPLETED_SUCCESSFULLY');
-                               require(AT_INCLUDE_PATH.'footer.inc.php');
-                               exit;
-                       }
-               }
-       }
-
-$msg->printErrors();
-
-?>
-<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
-<input type="hidden" name="course" value="<?php echo $course; ?>" />
-<input type="hidden" name="from_browse" value="<?php echo $_REQUEST['from_browse']; ?>" />
-<table cellspacing="1" cellpadding="0" border="0" summary="" width="85%" class="bodyline" align="center">
-<tr>
-       <th colspan="2" align="left" class="cyan"><?php echo _AT('instructor_contact_form'); ?></th>
-</tr>
-<tr>
-       <td class="row1" align="right"><b><?php echo _AT('contact_name'); ?>:</b></td>
-       <td class="row1"><?php echo $row[title]; ?></td>
-</tr>
-<tr><td height="1" class="row2" colspan="2"></td></tr>
-<tr>
-       <td class="row1" align="right"><b><?php echo _AT('to_name'); ?>:</b></td>
-       <td class="row1"><?php echo $instructor_name; ?> (<?php echo _AT('course_instructor'); ?>)</td>
-</tr>
-<tr><td height="1" class="row2" colspan="2"></td></tr>
-<tr>
-       <td class="row1" align="right"><b><?php echo _AT('to_email'); ?>:</b></td>
-       <td class="row1"><i><?php echo _AT('hidden'); ?></i></td>
-</tr>
-<tr><td height="1" class="row2" colspan="2"></td></tr>
-<tr>
-       <td class="row1" align="right"><label for="from"><b><?php echo _AT('from_name'); ?>:</b></label></td>
-       <td class="row1"><input type="text" class="formfield" name="from" id="from" size="40" value="<?php echo $student_name;?>" /></td>
-</tr>
-<tr><td height="1" class="row2" colspan="2"></td></tr>
-<tr>
-       <td class="row1" align="right"><label for="from_email"><b><?php echo _AT('from_email'); ?>:</b></label></td>
-       <td class="row1"><input type="text" class="formfield" name="from_email" id="from_email" size="40" value="<?php echo $student_email;?>" /></td>
-</tr>
-<tr><td height="1" class="row2" colspan="2"></td></tr>
-<tr>
-       <td class="row1" align="right"><label for="subject"><b><?php echo _AT('subject'); ?>:</b></label></td>
-       <td class="row1"><input type="text"  class="formfield" name="subject" id="subject" size="40" value="<?php echo $_POST['subject']; ?>" /></td>
-</tr>
-<tr><td height="1" class="row2" colspan="2"></td></tr>
-<tr>
-       <td class="row1" align="right" valign="top"><label for="body"><b><?php echo _AT('body'); ?>:</b></label></td>
-       <td class="row1"><textarea class="formfield" cols="55" rows="15" id="body" name="body"><?php echo $_POST['body']; ?></textarea><br /><br /></td>
-</tr>
-<tr><td height="1" class="row2" colspan="2"></td></tr>
-<tr><td height="1" class="row2" colspan="2"></td></tr>
-<tr>
-       <td class="row1" align="center" colspan="2"><input type="submit" name="submit" class="button" value="<?php echo _AT('send'); ?> [Alt-s]" accesskey="s" /> <input type="submit" name="cancel" class="button" value="<?php echo _AT('cancel'); ?>" /></td>
-</tr>
-</table>
-</form>
-<br />
-
-<?php
-       require(AT_INCLUDE_PATH.'footer.inc.php');
-?>
\ No newline at end of file
index 8451d32..c911098 100644 (file)
@@ -36,7 +36,7 @@
                                        $selected_fs = "1";   // default
 
 ?>
-                               <option value="1.0" <?php if ($selected_fs == "1.0") echo 'selected="selected"'; ?>><?php echo _AT('default'); ?></option>     
+                               <option value=".8" <?php if ($selected_fs == ".8") echo 'selected="selected"'; ?>><?php echo _AT('default'); ?></option>     
                                <option value="1.5" <?php if ($selected_fs == "1.5") echo 'selected="selected"'; ?>>1.5X</option>     
                                <option value="2" <?php if ($selected_fs == "2") echo 'selected="selected"'; ?>>2X</option>     
                                <option value="2.5" <?php if ($selected_fs == "2.5") echo 'selected="selected"'; ?>>2.5X</option>     
index b1bb4e4..962b4a6 100644 (file)
@@ -29,6 +29,7 @@ if (!$_SESSION['valid_user']) {
 $is_auto_login = checkAutoLoginCookie();
 
 if (isset($_POST['submit']) || isset($_POST['set_default'])) {
+       $current_tab = $_POST['current_tab'];
        if (isset($_POST['submit']))
        {
            //copy posted variables to a temporary array
@@ -58,7 +59,7 @@ if (isset($_POST['submit']) || isset($_POST['set_default'])) {
     }
 
        $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
-       header('Location: preferences.php');
+       header('Location: preferences.php?current_tab='.$current_tab);
        exit;
 }
 
diff --git a/mods/mediawiki/MySQL_Auth/Auth_viaMySQL/Auth_viaMySQL.php b/mods/mediawiki/MySQL_Auth/Auth_viaMySQL/Auth_viaMySQL.php
new file mode 100644 (file)
index 0000000..317653c
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Auth_viaMySQL MediaWiki extension MediaWiki version 1.14.0rc1
+ *
+ * @file
+ * @ingroup Extensions
+ * @version 1.0
+ * @author John Derby Russell
+ * @link http://www.mediawiki.org/w/index.php/Extension:Auth_viaMySQL
+ */
+# Not a valid entry point, skip unless MEDIAWIKI is defined
+if( !defined( 'MEDIAWIKI' ) )
+{
+        echo "Auth_viaMySQL extension";
+        die();
+}
+// Extension credits that will show up on Special:Version
+$wgExtensionCredits['other'][] = array(
+      'name' => 'MySQL Auto Authentication -> Auth_viaMySQL',
+      'version' => '1.0',
+      'author' => 'John Derby Russell',
+      'url' => 'http://www.mediawiki.org/w/index.php/Extension:Auth_viaMySQL',
+      'description' => 'Auto-authenticates users using MySQL database',
+);
+/**
+ *
+ * MySQL Login Database Integration
+ *
+ */
+require_once(MW_INSTALL_PATH.'/MySQLActiveUser.php') ;
+$wgHooks['UserLoadFromSession'][] = 'Auth_viaMySQL';
+// Kill logout url
+$wgHooks['PersonalUrls'][] = 'PersonalUrls_killLogout'; /* Disallow logout link */
+function Auth_viaMySQL( $user, $result ) {
+    global $MySQLActiveUserData;
+    $MySQLActiveUserData->distribute_cookie_data() ;
+    wfSetupSession();
+    /**
+     * A lot of this is from User::newFromName
+     */
+    // Force usernames to capital
+    global $wgContLang;
+    $name = $wgContLang->ucfirst( $MySQLActiveUserData->active_user_name );
+    // Clean up name according to title rules
+    $t = Title::newFromText( $name );
+    if( is_null( $t ) ) {
+        return(true) ;
+    }
+    $canonicalName = $t->getText();
+    if( !User::isValidUserName( $canonicalName ) ) {
+        return(true) ;
+    }
+    $user->setName( $canonicalName );
+    $user_id_fromMW_DB = $user->idFromName( $MySQLActiveUserData->active_user_name ) ;
+    $user->setId( $user_id_fromMW_DB );
+    if ( $user->getID() == 0 ) {
+        /**
+        * A lot of this is from LoginForm::initUser
+        * LoginForm in in the file called SpecialUserLogin.php line 342 (version 1.14.0rc1)
+        */
+        $canonicalName = $t->getText();
+        $user->setName( $canonicalName );
+        $user->addToDatabase();
+        $user->setEmail( $MySQLActiveUserData->active_user_email );
+        $user->setRealName( '' );
+        $user->setToken();
+        $user->saveSettings();
+    } else {
+        if ( !$user->loadFromDatabase() ) {
+            // Can't load from ID, user is anonymous
+            return(true) ;
+        }
+        $user->saveToCache();
+    }
+    $result = 1; // This causes the rest of the authentication process to be skipped.
+    return(false);   // As should this, according to the internal error report:
+}
+// Kill logout url
+function PersonalUrls_killLogout($personal_urls, $title) {
+    $personal_urls['logout'] = null ;
+    $personal_urls['login'] = null ;
+    $personal_urls['anonlogin'] = null ;
+    return true ;
+}
+?>
diff --git a/mods/mediawiki/MySQL_Auth/Auth_viaMySQL/CacheTimer_viaMySQL.php b/mods/mediawiki/MySQL_Auth/Auth_viaMySQL/CacheTimer_viaMySQL.php
new file mode 100644 (file)
index 0000000..1d4b496
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+/**
+ * CacheTimer_viaMySQL MediaWiki extension
+ *
+ * @file
+ * @ingroup Extensions
+ * @version 1.0
+ * @author John Derby Russell
+ * @link http://www.mediawiki.org/w/index.php/Extension:Auth_viaMySQL
+ */
+// Extension credits that will show up on Special:Version
+$wgExtensionCredits['other'][] = array(
+      'name' => 'MySQL Cache Timer',
+      'version' => '1.0',
+      'author' => 'John Derby Russell',
+      'url' => 'http://www.mediawiki.org/w/index.php/Extension:Auth_viaMySQL',
+      'description' => 'Tells Wiki when to regenerate client cache for users',
+);
+require_once(MW_INSTALL_PATH.'/MySQLActiveUser.php') ;
+/**
+ *
+ * The MySQL cache epoche timer is for when to rebuild the cache stored on the client side.
+ * This is ussually done at login.
+ *
+ */
+function CacheTimer_viaMySQL( ) {
+    global $MySQLActiveUserData ;
+    $MySQLActiveUserData->distribute_cookie_data() ;
+    return $MySQLActiveUserData->active_user_login_time ;
+}
+?>
diff --git a/mods/mediawiki/MySQL_Auth/MySQLActiveUser.php b/mods/mediawiki/MySQL_Auth/MySQLActiveUser.php
new file mode 100644 (file)
index 0000000..e3bc3e8
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+class MySQLActiveUser
+{
+    var $active_user_id ;
+    var $active_user_name ;
+    var $active_user_password;
+    var $active_user_email ;
+    var $active_user_login_time ;
+    function MySQLActiveUser()  {
+    }
+    function set_cookie($username, $user_id, $password_hash, $user_email, $login_time) {
+        setcookie("mysql_active_user",
+                  serialize(array($username, $user_id, $password_hash, $user_email, $login_time)), time()+60*60*24*100, "/") ;
+        $this->active_user_name = $username ;
+        $this->active_user_id = $user_id ;
+        $this->active_user_password = $password_hash ;
+        $this->active_user_email = $user_email ;
+        $this->active_user_login_time = $login_time ;
+    }
+    function clear_cookie() {
+        $this->active_user_name = "" ;
+        $this->active_user_id = 0 ;
+        $this->active_user_password = 0 ;
+        $this->active_user_email = "" ;
+        $this->active_user_login_time = 0 ;
+        setcookie("mysql_active_user",
+                serialize(array("", "", "", "")), time()-60*60*24*100, "/") ;
+    }
+    function distribute_cookie_data() {
+        $mysql_cookie_name = "mysql_active_user" ;
+        if (isset($_COOKIE[$mysql_cookie_name]))
+                list($this->active_user_name,
+                     $this->active_user_id,
+                     $this->active_user_password,
+                     $this->active_user_email,
+                     $this->active_user_login_time) = @unserialize($_COOKIE[$mysql_cookie_name]);
+    }
+}
+$MySQLActiveUserData = new MySQLActiveUser();
+?>
\ No newline at end of file
diff --git a/mods/mediawiki/README b/mods/mediawiki/README
new file mode 100644 (file)
index 0000000..a415693
--- /dev/null
@@ -0,0 +1,96 @@
+## MediaWiki Integration module for ATutor
+
+####################
+
+This module allows you to manage MediaWiki as a course tool and open MediaWiki in an iframe within ATutor courses, and MyStart areas. It is a community wiki, meaning all users in all courses can access it. It also creates a single sign-on. When a user logs into ATutor, they  are automatically logged into Mediawiki.
+
+**MediaWiki needs to be installed and configured before installing this module. See the MediaWiki documentation for instructions on installing and configuring it. MediaWiki needs to be installed on the same server as ATutor, though it may be installed in its own database.
+
+http://www.mediawiki.org/wiki/Installation
+
+
+####################
+Installing the ATutor MediaWiki Module:
+
+1. Unzip the atutor_mediawiki.x.x.x.zip module file into the ATutor mods/ directory to create a "mediawiki/" directory.
+2. Login to ATutor as the admin, click on the Modules tab then click Install Modules. Mediawiki should be listed. Select it and press the Install button.
+3. Follow the installer instructions.
+4. Once the module is installed, select the Mediawiki module now listed in the available modules in the Module Manager, then press the Enable button. This inserts another main navigation tab above.
+5. Click the MediaWiki tab then enter the URL to the base directory under which Mediawiki is run (e.g. http://myserver.com/mediawiki/ , including the trailing slash), then press the Save button. MediaWiki should then appear below.
+6. Next set the database access information for MediaWiki in the mw_config.php file in the  module directory (e.g mods/mediawiki), then save the file. This information is required if you intended on using the module detailed view to display recent changes in the wiki on the course home page, or on the student tools page.
+
+
+#####################
+Authenticate MediaWiki Users from the ATutor Members table (Single Sign-on)
+
+This section is optional. If not implented, users will need to create an account on MediaWiki, and they'll need to manually login.
+
+To remove the need to setup separate accounts in MediaWiki and ATutor, you can install the Auth viaMySQL extention. This effectively creates a single sign-on between ATutor and MediaWiki based on ATutor member accounts.
+
+Extention details can be found at:
+http://www.mediawiki.org/wiki/Extension:Auth_viaMySQL
+(Just for information about the extension's origin. Instead follow the instructions below)
+
+Note that you will probably want to install this extension before you start using MediaWiki with ATutor. Otherwise you may have conflicts between ATutor users and independent Mediawiki users owbership of content. The only account that should exist before installing the extension is the admin account created during the MediaWiki installation.
+
+Copy Auth_viaMySQL.php, CacheTimer_viaMySQL.php, and  MySQLActiveUser.php from the ATutor MediaWiki module directory (mods/mediawiki/MySQL_Auth/) to the MediaWiki installation directory as follows:
+
+MediaWiki/extensions/Auth_viaMySQL/Auth_viaMySQL.php
+MediaWiki/extensions/Auth_viaMySQL/CacheTimer_viaMySQL.php
+MediaWiki/MySQLActiveUser.php
+
+(**You'll probably need to create the extensions/Auth_viaMySQL directory, and depending on how MediaWiki was installed, you may need root access to do that and to copy the files into the MediaWiki directory)
+
+After the files are copied to the MediaWiki installation directory, copy the following code and paste it immediately before the first instance of the "$msg->addFeedback('LOGIN_SUCCESS');" statement of the login.php file located in the root directory of ATutor. This sets the MediaWiki authentication cookie for student and instructor users, but not for admin users. The admin user must login manually using the "MediaWiki Login" link under the MediaWiki tab in the admin area, using the admin login information created during the MediaWiki installation.
+
+#####
+# adjust the path in the first line below to the location of your MediaWiki installation directory. 
+
+       $mediawiki_install_path = "/var/lib/mediawiki/";
+       require_once($mediawiki_install_path.'MySQLActiveUser.php');
+       global $MySQLActiveUserData ;
+       global $db ;
+
+       $userName = $_POST['login'] ;
+       $command = "SELECT * FROM ".TABLE_PREFIX."members WHERE login='".$userName."';" ;
+       $result = mysql_query($command, $db);
+       $account = mysql_fetch_assoc($result) ;
+       if ($account)
+       {
+               $current_mw_timecode = gmdate( 'YmdHis' ) ;
+               $MySQLActiveUserData->set_cookie($account['login'],
+                                                                                       $account['member_id'],
+                                                                                       $account['password'],
+                                                                                       $account['email'],
+                                                                                       $current_mw_timecode) ;
+       }
+#####
+
+Copy the following code and paste it immediately after the "require(AT_INCLUDE_PATH.'vitals.inc.php');" statement of the logout.php file located in the root directory of ATutor. This deletes the MediaWiki authentication cookie when a user logs out of ATutor.
+
+#####
+# adjust the path in the first line below to the location of your MediaWiki installation directory. 
+
+       $mediawiki_install_path = "/var/lib/mediawiki/";
+       require_once($mediawiki_install_path.'MySQLActiveUser.php');
+       global $MySQLActiveUserData ;
+       $MySQLActiveUserData->clear_cookie() ;
+
+#####
+
+Add the following lines to the end of the MediaWiki LocalSettings.php file
+
+#####
+
+       require_once($IP."/extensions/Auth_viaMySQL/Auth_viaMySQL.php");
+       require_once($IP."/extensions/Auth_viaMySQL/CacheTimer_viaMySQL.php");
+
+       $local_var_login_time = CacheTimer_viaMySQL() ;
+       $wgCacheEpoch = max( $wgCacheEpoch, $local_var_login_time ) ;
+       $wgCachePages = false ;
+        $wgEditPageFrameOptions='SAMEORIGIN';
+
+#####
+
+
+
diff --git a/mods/mediawiki/index.php b/mods/mediawiki/index.php
new file mode 100644 (file)
index 0000000..d3581fc
--- /dev/null
@@ -0,0 +1,26 @@
+<?php\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+$_custom_css = $_base_path . 'mods/mediawiki/module.css'; // use a custom stylesheet\r
+global $_config;\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+\r
+if($_GET['p']){\r
+       $p = $addslashes($_GET['p']);\r
+}\r
+\r
+if(!$_COOKIE['mysql_active_user']){\r
+       echo '<a href="'.$_config['mw-url'].'index.php?title=Special:UserLogin&returnto=Special:UserLogin" target="toolframe">'._AT('mediawiki_login').'</a>';\r
+}\r
+\r
+?>\r
+\r
+<iframe src="<?php echo $_config['mw-url']; ?><?php if($p){ echo "index.php/".$p;} ?>" width="95%" height="500" style="border:none;" name="toolframe">\r
+<p><?php echo _AT('mediawiki_no_iframe',$_config['mw-url']); ?>"><?php echo _AT('mediawiki_login'); ?></a></p>\r
+</iframe>\r
+<script>\r
+window.toolframe.wgNamespaceNumber = 1;\r
+</script>\r
+\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>\r
+\r
diff --git a/mods/mediawiki/index_admin.php b/mods/mediawiki/index_admin.php
new file mode 100644 (file)
index 0000000..b2d5786
--- /dev/null
@@ -0,0 +1,48 @@
+<?php\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+$_custom_css = $_base_path . 'mods/mediawiki/module.css'; // use a custom stylesheet\r
+admin_authenticate(AT_ADMIN_PRIV_MEDIAWIKI);\r
+\r
+$_POST['mw-url'] = $addslashes($_POST['mw-url']);\r
+\r
+if($_POST['submit']){\r
+       foreach($_POST as $key=>$mw_config)\r
+       if($key != "submit"){\r
+       $sql="REPLACE INTO ".TABLE_PREFIX."config SET name='$key', value='".$mw_config."'";\r
+       if($result= mysql_query($sql, $db)){\r
+               $msg->addFeedback("MW_CONFIG_SAVED");\r
+               $_config['mw-url'] = $_POST['mw-url'];\r
+\r
+       }else{\r
+               $msg->addError("WP_CONFIG_FAIL");\r
+       }\r
+\r
+       }\r
+}\r
+\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+\r
+?>\r
+\r
+<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">\r
+<label for="mw-url"><?php echo _AT('mediawiki_login_url'); ?></label>\r
+<input type="text" name="mw-url" id="mw-url" value="<?php if($_config['mw-url']){echo $_config['mw-url'];}else{ echo 'http://';} ?>" size="60" /><br />\r
+\r
+<input type="submit" name="submit" value="<?php echo _AT('mediawiki_save'); ?>">\r
+</form>\r
+\r
+\r
+<?php\r
+if($_config['mw-url']){?>\r
+       <br /><br /><a href="<?php echo $_config['mw-url']; ?>index.php?title=Special:UserLogin&returnto=Special:UserLogin" target="toolframe"><?php echo _AT('mediawiki_login'); ?></a>\r
+       <iframe name="toolframe" src="<?php echo $_config['mw-url']; ?>" width="95%" height="450" id="frame_set">\r
+       <p><?php echo _AT('mediawiki_no_iframes',$_config['mw-url']); ?> ?></p>\r
+       </iframe>\r
+<?php }else{ ?>\r
+       <p><?php echo _AT('mediawiki_do_setup'); ?> ?></p>\r
+\r
+<?php } ?>\r
+\r
+\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
diff --git a/mods/mediawiki/index_instructor.php b/mods/mediawiki/index_instructor.php
new file mode 100644 (file)
index 0000000..94aacac
--- /dev/null
@@ -0,0 +1,18 @@
+<?php\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+authenticate(AT_PRIV_MEDIAWIKI);\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+\r
+\r
+if(!$_COOKIE['mysql_active_user']){\r
+       echo '<a href="'.$_config['mw-url'].'index.php?title=Special:UserLogin&returnto=Special:UserLogin" target="toolframe">'._AT('mediawiki_login').'</a>';\r
+}\r
+?>\r
+\r
+<iframe src="<?php echo $_config['mw-url']; ?>" width="95%" height="450" style="border:none;" name="blog_frame">\r
+<p><?php echo _AT('mediawiki_no_iframe',$_config['mw-url']); ?>"><?php echo _AT('mediawiki_login'); ?></a></p>\r
+</iframe>\r
+\r
+\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
diff --git a/mods/mediawiki/index_mystart.php b/mods/mediawiki/index_mystart.php
new file mode 100644 (file)
index 0000000..ee93ef8
--- /dev/null
@@ -0,0 +1,25 @@
+<?php\r
+$_user_location        = 'users';\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+$_custom_css = $_base_path . 'mods/mediawiki/module.css'; // use a custom stylesheet\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+\r
+\r
+if($_GET['p']){\r
+       $p = $addslashes($_GET['p']);\r
+}\r
+\r
+if(!$_COOKIE['mysql_active_user']){\r
+\r
+echo '<a href="'.$_config['mw-url'].'index.php?title=Special:UserLogin&returnto=Special:UserLogin" target="toolframe">'._AT('mediawiki_login').'</a>';\r
+\r
+}\r
+?>\r
+\r
+<iframe src="<?php echo $_config['mw-url']; ?><?php if($p){ echo "index.php/".$p;} ?>" width="95%" height="500" style="border:none;" name="toolframe">\r
+<p><?php echo _AT('mediawiki_no_iframe',$_config['mw-url']); ?>"><?php echo _AT('mediawiki_login'); ?></a></p>\r
+</iframe>\r
+\r
+\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
diff --git a/mods/mediawiki/index_public.php b/mods/mediawiki/index_public.php
new file mode 100644 (file)
index 0000000..a7ca3d6
--- /dev/null
@@ -0,0 +1,26 @@
+<?php\r
+// This file is disabled by default. To enable it, modify the "public pages" \r
+// section in the module.php file for this module\r
+\r
+\r
+$_user_location        = 'public';\r
+\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+$_custom_css = $_base_path . 'mods/mediawiki/module.css'; // use a custom stylesheet\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+\r
+\r
+if(!$_COOKIE['mysql_active_user']){\r
+\r
+echo '<a href="'.$_config['mw-url'].'index.php?title=Special:UserLogin&returnto=Special:UserLogin" target="toolframe">'._AT('mediawiki_login').'</a>';\r
+\r
+}\r
+?>\r
+<iframe src="<?php echo $_config['mw-url']; ?><?php if($p){ echo "index.php/".$p;} ?>" width="95%" height="500" style="border:none;" name="toolframe">\r
+<p><?php echo _AT('mediawiki_no_iframe',$_config['mw-url']); ?>"><?php echo _AT('mediawiki_login'); ?></a></p>\r
+</iframe>\r
+\r
+\r
+\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
diff --git a/mods/mediawiki/module.css b/mods/mediawiki/module.css
new file mode 100644 (file)
index 0000000..0d3ed71
--- /dev/null
@@ -0,0 +1,5 @@
+\r
+\r
+#frame_set{\r
+       border:none;\r
+}
\ No newline at end of file
diff --git a/mods/mediawiki/module.php b/mods/mediawiki/module.php
new file mode 100644 (file)
index 0000000..257abdf
--- /dev/null
@@ -0,0 +1,89 @@
+<?php
+/*******
+ * doesn't allow this file to be loaded with a browser.
+ */
+if (!defined('AT_INCLUDE_PATH')) { exit; }
+
+/******
+ * this file must only be included within a Module obj
+ */
+if (!isset($this) || (isset($this) && (strtolower(get_class($this)) != 'module'))) { exit(__FILE__ . ' is not a Module'); }
+
+/*******
+ * assign the instructor and admin privileges to the constants.
+ * not technically need for instructors for the current version of the module
+ */
+define('AT_PRIV_MEDIAWIKI',       $this->getPrivilege());
+define('AT_ADMIN_PRIV_MEDIAWIKI', $this->getAdminPrivilege());
+
+/*******
+ * create a side menu box/stack.
+ */
+// Sidemenu block is disbaled by default in this version of the module
+//$this->_stacks['mediawiki'] = array('title_var'=>'mediawiki', 'file'=>'mods/mediawiki/side_menu.inc.php');
+// ** possible alternative: **
+// $this->addStack('mediawiki', array('title_var' => 'mediawiki', 'file' => './side_menu.inc.php');
+
+/*******
+ * create optional sublinks for module "detail view" on course home page
+ * when this line is uncommented, "mods/mediawiki/sublinks.php" need to be created to return an array of content to be displayed
+ */
+$this->_list['mediawiki'] = array('title_var'=>'mediawiki','file'=>'mods/mediawiki/sublinks.php');
+
+// Uncomment for tiny list bullet icon for module sublinks "icon view" on course home page
+$this->_pages['mods/mediawiki/index.php']['icon']      = 'mods/mediawiki/mw_icon_sm.png';
+
+// Uncomment for big icon for module sublinks "detail view" on course home page
+//$this->_pages['mods/mediawiki/index.php']['img']      = 'mods/mediawiki/mediawiki.jpg';
+
+// ** possible alternative: **
+// the text to display on module "detail view" when sublinks are not available
+$this->_pages['mods/mediawiki/index.php']['text']      = _AT('mediawiki_text');
+
+/*******
+ * if this module is to be made available to students on the Home or Main Navigation.
+ */
+$_group_tool = $_student_tool = 'mods/mediawiki/index.php';
+
+/*******
+ * add the admin pages when needed.
+ */
+if (admin_authenticate(AT_ADMIN_PRIV_MEDIAWIKI, TRUE) || admin_authenticate(AT_ADMIN_PRIV_ADMIN, TRUE)) {
+       $this->_pages[AT_NAV_ADMIN] = array('mods/mediawiki/index_admin.php');
+       $this->_pages['mods/mediawiki/index_admin.php']['title_var'] = 'mediawiki';
+       $this->_pages['mods/mediawiki/index_admin.php']['parent']    = AT_NAV_ADMIN;
+}
+
+/*******
+ * instructor Manage section:
+ */
+$this->_pages['mods/mediawiki/index_instructor.php']['title_var'] = 'mediawiki';
+$this->_pages['mods/mediawiki/index_instructor.php']['parent']   = 'tools/index.php';
+// ** possible alternative: **
+// $this->pages['./index_instructor.php']['title_var'] = 'mediawiki';
+// $this->pages['./index_instructor.php']['parent']    = 'tools/index.php';
+
+/*******
+ * student page.
+ */
+$this->_pages['mods/mediawiki/index.php']['title_var'] = 'mediawiki';
+$this->_pages['mods/mediawiki/index.php']['img']       = 'mods/mediawiki/mw_logo.png';
+
+// /* public pages */
+// Uncomment the following three lines if MediaWiki should be accessible from public pages
+// for users who are not logged into ATutor
+
+// $this->_pages[AT_NAV_PUBLIC] = array('mods/mediawiki/index_public.php');
+// $this->_pages['mods/mediawiki/index_public.php']['title_var'] = 'mediawiki';
+// $this->_pages['mods/mediawiki/index_public.php']['parent'] = AT_NAV_PUBLIC;
+
+/* my start page pages */
+$this->_pages[AT_NAV_START]  = array('mods/mediawiki/index_mystart.php');
+$this->_pages['mods/mediawiki/index_mystart.php']['title_var'] = 'mediawiki';
+$this->_pages['mods/mediawiki/index_mystart.php']['parent'] = AT_NAV_START;
+
+function mediawiki_get_group_url($group_id) {
+       return 'mods/mediawiki/index.php';
+}
+
+?>
\ No newline at end of file
diff --git a/mods/mediawiki/module.sql b/mods/mediawiki/module.sql
new file mode 100644 (file)
index 0000000..c504ac1
--- /dev/null
@@ -0,0 +1,13 @@
+# sql file for mediawiki integration module\r
+\r
+\r
+INSERT INTO `language_text` VALUES ('en', '_module','mediawiki','MediaWiki',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','mediawiki_text','A sample mediawiki text for detailed homepage.',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','mediawiki_admin_login','Login to Administer MediaWiki',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','mediawiki_login_url','MediaWiki Base URL',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','mediawiki_login','MediaWiki Login',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','mediawiki_save','Save',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','mediawiki_no_iframes','Your browser does not support iframes. Got to <a href="'.%s.'">MediaWiki Login</a>',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','mediawiki_do_setup','Enter the URL to the MediaWiki based Web accessible directory (e.g, http://myserver.com/mediawiki/, including the trailing slash), to have MediaWiki appear here.',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MW_CONFIG_SAVED','MediaWiki configuration successfully saved',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_MW_CONFIG_FAIL','MediaWiki configuration failed to save. ',NOW(),'');
\ No newline at end of file
diff --git a/mods/mediawiki/module.xml b/mods/mediawiki/module.xml
new file mode 100644 (file)
index 0000000..816adef
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?> \r
+<module version="1.0"> \r
+    <name lang="en">MediaWiki Integration</name> \r
+       <description lang="en">This module integrates MediaWiki with ATutor, creating a single sign-on, and making MediaWiki available as a single shared wiki used as a course tool across all courses.</description> \r
+    <maintainers>\r
+        <maintainer> \r
+            <name>ATutor Team</name> \r
+            <email>info@atutor.ca</email> \r
+        </maintainer>\r
+    </maintainers> \r
+    <url>http://atutor.ca</url> \r
+    <license>BSD</license> \r
+       <release> \r
+        <version>1.0</version> \r
+        <date>2011-06-14</date> \r
+        <state>Stable</state> \r
+        <notes> Be sure to read the README file for the module for details on setting up single sign-on. While usable without single sign-on, it needs to be setup manually. You will be required to enable the module once installed, then enter the URL to MediaWiki through the MediaWiki tab added once enabled. </notes> \r
+    </release> \r
+</module>\r
diff --git a/mods/mediawiki/module_delete.php b/mods/mediawiki/module_delete.php
new file mode 100644 (file)
index 0000000..322d3a6
--- /dev/null
@@ -0,0 +1,21 @@
+<?php\r
+/*******\r
+ * this function named [module_name]_delete is called whenever a course content is deleted\r
+ * which includes when restoring a backup with override set, or when deleting an entire course.\r
+ * the function must delete all module-specific material associated with this course.\r
+ * $course is the ID of the course to delete.\r
+ */\r
+\r
+function hello_world_delete($course) {\r
+       global $db;\r
+\r
+       // delete hello_world course table entries\r
+       $sql = "DELETE FROM ".TABLE_PREFIX."hello_world WHERE course_id=$course";\r
+       mysql_query($sql, $db);\r
+\r
+       // delete hello_world course files\r
+       $path = AT_CONTENT_DIR .'hello_world/' . $course .'/';\r
+       clr_dir($path);\r
+}\r
+\r
+?>
\ No newline at end of file
diff --git a/mods/mediawiki/module_install.php b/mods/mediawiki/module_install.php
new file mode 100644 (file)
index 0000000..9a82811
--- /dev/null
@@ -0,0 +1,67 @@
+<?php\r
+/*******\r
+ * the line below safe-guards this file from being accessed directly from\r
+ * a web browser. It will only execute if required from within an ATutor script,\r
+ * in our case the Module::install() method.\r
+ */\r
+if (!defined('AT_INCLUDE_PATH')) { exit; }\r
+\r
+/*******\r
+ * Note: the many options for these variables are used to decrease confusion.\r
+ *       TRUE | FALSE | 1 will be the convention.\r
+ *\r
+ * $_course_privilege\r
+ *     specifies the type of instructor privilege this module uses.\r
+ *     set to empty | FALSE | 0   to disable any privileges.\r
+ *     set to 1 | AT_PRIV_ADMIN   to use the instructor only privilege.\r
+ *     set to TRUE | 'new'        to create a privilege specifically for this module:\r
+ *                                will make this module available as a student privilege.\r
+ *\r
+ * $_admin_privilege\r
+ *    specifies the type of ATutor administrator privilege this module uses.\r
+ *    set to FALSE | AT_ADMIN_PRIV_ADMIN   to use the super administrator only privilege.\r
+ *    set to TRUE | 'new'                  to create a privilege specifically for this module:\r
+ *                                         will make this module available as an administrator privilege.\r
+ *\r
+ *\r
+ * $_cron_interval\r
+ *    if non-zero specifies in minutes how often the module's cron job should be run.\r
+ *    set to 0 or not set to disable.\r
+ */\r
+$_course_privilege = TRUE; // possible values: FALSE | AT_PRIV_ADMIN | TRUE\r
+$_admin_privilege  = TRUE; // possible values: FALSE | TRUE\r
+$_cron_interval    = 35; // run every 30 minutes\r
+\r
+\r
+/********\r
+ * the following code is used for creating a module-specific directory.\r
+ * it generates appropriate error messages to aid in its creation.\r
+ */\r
+$directory = AT_CONTENT_DIR .'hello_world';\r
+\r
+// check if the directory is writeable\r
+if (!is_dir($directory) && !@mkdir($directory)) {\r
+       $msg->addError(array('MODULE_INSTALL', '<li>'.$directory.' does not exist. Please create it.</li>'));\r
+} else if (!is_writable($directory) && @chmod($directory, 0666)) {\r
+       $msg->addError(array('MODULE_INSTALL', '<li>'.$directory.' is not writeable. On Unix issue the command <kbd>chmod a+rw</kbd>.</li>'));\r
+}\r
+\r
+\r
+/******\r
+ * the following code checks if there are any errors (generated previously)\r
+ * then uses the SqlUtility to run any database queries it needs, ie. to create\r
+ * its own tables.\r
+ */\r
+if (!$msg->containsErrors() && file_exists(dirname(__FILE__) . '/module.sql')) {\r
+       // deal with the SQL file:\r
+       require(AT_INCLUDE_PATH . 'classes/sqlutility.class.php');\r
+       $sqlUtility =& new SqlUtility();\r
+\r
+       /*\r
+        * the SQL file could be stored anywhere, and named anything, "module.sql" is simply\r
+        * a convention we're using.\r
+        */\r
+       $sqlUtility->queryFromFile(dirname(__FILE__) . '/module.sql', TABLE_PREFIX);\r
+}\r
+\r
+?>
\ No newline at end of file
diff --git a/mods/mediawiki/module_news.php b/mods/mediawiki/module_news.php
new file mode 100644 (file)
index 0000000..92f9eea
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+/*
+* Rename the function to match the name of the module. Names of all news functions must be unique
+* across all modules installed on a system. Return a variable called $news
+*/
+require('mw_connect.php');
+               // Number of links to be displayed on "detail view" box
+function mediawiki_news() {
+       global $db_mw, $_config;
+               $link_limit = "3";
+       if($_GET['p'] == "all"){
+               $link_limit = "100";
+       }
+       $news = array();
+       $sql = "SELECT  P.page_id, P.page_title, R.rev_timestamp FROM ".MW_DB_PREFIX."page P, ".MW_DB_PREFIX."revision R WHERE R.rev_page = P.page_id ORDER BY R.rev_timestamp DESC";
+       $result = mysql_query($sql, $db_mw);
+       if($result){
+               $news_count = 0;
+               $page_ids = array();
+               while($row = mysql_fetch_assoc($result)){
+
+                       if($news_count < $link_limit && !in_array( $row['page_id'],$page_ids)){
+                               $this_time = AT_date("%Y-%m-%d %G:%i:%s", $row['rev_timestamp'],AT_DATE_MYSQL_TIMESTAMP_14);
+                               $page_ids[] = $row['page_id'];
+                               $news[] = array('time'=> $this_time, 
+                                       'alt'=>_AT('mediawiki_update'),
+                                       'thumb'=>'mods/mediawiki/mw_icon_sm.png', 
+                                       'link'=>'<a href="'.AT_BASE_HREF.url_rewrite('mods/mediawiki/index_mystart.php?p='.$row['page_title']).'"'.
+                                       (strlen($row['page_title']) > SUBLINK_TEXT_LEN ? ' title="'.$row['page_title'].'"' : '') .'>'. 
+                                       validate_length($row['page_title'], SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY) .'</a>');
+                               $news_count++;
+                       }
+               }
+       }
+       return $news;
+
+}
+?>
diff --git a/mods/mediawiki/module_uninstall.php b/mods/mediawiki/module_uninstall.php
new file mode 100644 (file)
index 0000000..9ed6969
--- /dev/null
@@ -0,0 +1,44 @@
+<?php\r
+/*******\r
+ * module_uninstall.php performs reversion of module_install.php\r
+ */\r
+\r
+/*******\r
+ * the line below safe-guards this file from being accessed directly from\r
+ * a web browser. It will only execute if required from within an ATutor script,\r
+ * in our case the Module::uninstall() method.\r
+ */\r
+if (!defined('AT_INCLUDE_PATH')) { exit; }\r
+\r
+/********\r
+ * the following code is used for removing a module-specific directory created in module_install.php.\r
+ * it generates appropriate error messages to aid in its creation.\r
+ */\r
+$directory = AT_CONTENT_DIR .'hello_world';\r
+\r
+// check if the directory exists\r
+if (is_dir($directory)) {\r
+       require(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php');\r
+\r
+       if (!clr_dir($directory))\r
+               $msg->addError(array('MODULE_UNINSTALL', '<li>'.$directory.' can not be removed. Please manually remove it.</li>'));\r
+}\r
+\r
+/******\r
+ * the following code checks if there are any errors (generated previously)\r
+ * then uses the SqlUtility to run reverted database queries of module.sql, \r
+ * ie. "create table" statement in module.sql is run as drop according table.\r
+ */\r
+if (!$msg->containsErrors() && file_exists(dirname(__FILE__) . '/module.sql')) {\r
+       // deal with the SQL file:\r
+       require(AT_INCLUDE_PATH . 'classes/sqlutility.class.php');\r
+       $sqlUtility = new SqlUtility();\r
+\r
+       /*\r
+        * the SQL file could be stored anywhere, and named anything, "module.sql" is simply\r
+        * a convention we're using.\r
+        */\r
+       $sqlUtility->revertQueryFromFile(dirname(__FILE__) . '/module.sql', TABLE_PREFIX);\r
+}\r
+\r
+?>
\ No newline at end of file
diff --git a/mods/mediawiki/mw_config.php b/mods/mediawiki/mw_config.php
new file mode 100644 (file)
index 0000000..c9135e0
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+// MediaWiki database access information.
+// Set the values below to those needed to access your MediaWiki database
+// Mediawiki needs to be installed in the same server as ATutor
+
+define('MW_DB_USER',   '');           # enter your mysql database user name
+define('MW_DB_PWD',    '');           # enter your mysql database password
+define('MW_DB_NAME',   'wikidb');         #default "wikidb"
+define('MW_DB_PREFIX', 'mw_');            #default "mw_"
+define('MW_DB_HOST',   'localhost');      #default "localhost"
+define('MW_DB_PORT',   '3600');           #default "3600"
+
+?>
\ No newline at end of file
diff --git a/mods/mediawiki/mw_connect.php b/mods/mediawiki/mw_connect.php
new file mode 100644 (file)
index 0000000..ea367b8
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+// MediaWiki database connection setup for atutor_mediawiki integration module
+require('mw_config.php');
+global $db_mw;
+
+if (AT_INCLUDE_PATH !== 'NULL') {
+       $db_mw= @mysql_connect(MW_DB_HOST.':'.MW_DB_PORT, MW_DB_USER, MW_DB_PWD);       
+
+       if (!$db_mw) {
+               /* AT_ERROR_NO_DB_CONNECT */
+               require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
+               $err = new ErrorHandler();
+               trigger_error('VITAL#Unable to connect to db. Set database information in the module\'s mw_config.php file.', E_USER_ERROR);
+               exit;
+       }
+       if (!@mysql_select_db(MW_DB_NAME, $db_mw)) {
+               require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
+               $err = new ErrorHandler();
+               trigger_error('VITAL#DB connection established, but database "'.MW_DB_NAME.'" cannot be selected.',
+                                               E_USER_ERROR);
+               exit;
+       }
+
+}
+?>
\ No newline at end of file
diff --git a/mods/mediawiki/mw_icon_sm.png b/mods/mediawiki/mw_icon_sm.png
new file mode 100644 (file)
index 0000000..e78f017
Binary files /dev/null and b/mods/mediawiki/mw_icon_sm.png differ
diff --git a/mods/mediawiki/mw_logo.png b/mods/mediawiki/mw_logo.png
new file mode 100644 (file)
index 0000000..01d2d92
Binary files /dev/null and b/mods/mediawiki/mw_logo.png differ
diff --git a/mods/mediawiki/side_menu.inc.php b/mods/mediawiki/side_menu.inc.php
new file mode 100644 (file)
index 0000000..d594369
--- /dev/null
@@ -0,0 +1,15 @@
+<?php \r
+/* start output buffering: */\r
+// disabled by default in this version of the module\r
+\r
+ob_start(); ?>\r
+\r
+hello world\r
+\r
+<?php\r
+$savant->assign('dropdown_contents', ob_get_contents());\r
+ob_end_clean();\r
+\r
+$savant->assign('title', _AT('mediawiki')); // the box title\r
+$savant->display('include/box.tmpl.php');\r
+?>
\ No newline at end of file
diff --git a/mods/mediawiki/sublinks.php b/mods/mediawiki/sublinks.php
new file mode 100644 (file)
index 0000000..1010a6e
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+if (!defined('AT_INCLUDE_PATH')) { exit; }
+
+/*****
+* Free form PHP can appear here to retreive current information
+* from the module, or a text description of the module where there is
+* not current information
+*****/
+require('mw_connect.php');
+global $db_mw;
+
+$link_limit = 3;               // Number of links to be displayed on "detail view" box
+
+$sql = "SELECT P.page_title, R.rev_timestamp FROM ".MW_DB_PREFIX."page P, ".MW_DB_PREFIX."revision R ORDER BY R.rev_timestamp DESC LIMIT  $link_limit";
+
+// $sql = "SELECT hello_world_id, value FROM ".TABLE_PREFIX."hello_world WHERE course_id=".$_SESSION[course_id].
+//        " ORDER BY value LIMIT $link_limit";
+$result = mysql_query($sql, $db_mw);
+
+if (mysql_num_rows($result) > 0) {
+       while ($row = mysql_fetch_assoc($result)) {
+               /****
+               * SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY are defined in include/lib/constance.lib.inc
+               * SUBLINK_TEXT_LEN determins the maxium length of the string to be displayed on "detail view" box.
+               *****/
+               $list[] = '<a href="'.AT_BASE_HREF.url_rewrite('mods/mediawiki/index.php?p='.$row['page_title']).'"'.
+                         (strlen($row['page_title']) > SUBLINK_TEXT_LEN ? ' title="'.$row['page_title'].'"' : '') .'>'. 
+                         validate_length($row['page_title'], SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY) .'</a>';
+       }
+       return $list;   
+} else {
+       return 0;
+}
+
+?>
\ No newline at end of file
diff --git a/mods/wordpress/README b/mods/wordpress/README
new file mode 100644 (file)
index 0000000..238d298
--- /dev/null
@@ -0,0 +1,28 @@
+## WordPress Integration module for ATutor
+
+####################
+
+**Wordpress needs to be installed and configured before installing this module. See the Wordpress documentation for instruction on installing and configuring Wordpress.
+
+http://codex.wordpress.org/Installing_WordPress
+
+
+####################
+Installation the ATutor WordPress Module:
+1. Unzip the atutor_wordpress.x.x.x.zip file into the ATutor mods/ directory to create a "wordpress directory.
+2. Login to ATutor as the admin, click on the Modules tab then click Install Modules. Wordpress should be listed. Select it and press the Install button.
+3. Follow the installer instructions.
+4. Once the module is installed, select the WordPress module now listed in the available modules in the module manager, then press the Enable button. This inserts another main navigation tab above.
+5. Click the WordPress tab then enter the URL to the base directory under which WordPress is installed, then press the Save button. WordPress should then appear below.
+6. Next set the database access information for WordPress in the wp_config.php file in the module directory, then save the file. This information is required for the module detailed view to display recent posts on a course home page, or student tools page.
+
+#####################
+Authenticate Wordpress Users from ATutor Members
+To remove the need to setup separate accounts in WordPress and ATutor, you can install the WordPress External DB  Authentication plugin. A copy of the plugin is available in the modules' wp_plugin directory. For details on how to install the plugin, see the link below.
+
+Plugin details can be found at:
+http://wordpress.org/extend/plugins/external-database-authentication/
+
+Note that this is not a single sign-on, but rather just a way to ensure anyone registered in ATutor, is automatically registered in Wordpress. When a user logs into Wordpress for the first time, the member information in ATutor is copied over to WordPress. If you find you are unable to login with an account you know exists in ATutor, review the cookies you have set in your browser, and remove any WordPress related ones. Then try to login again. This problem can occur when you are using more than one ATutor account to access Wordpress.
+
+Note also that you will probably want to install this ATutor Wordpress plugin before you start using Wordpress. Otherwise you will need to recreate any Wordpress accounts in ATutor. Once the module is installed, Wrodpress users are no longer able to modify their Wordpress account information.
\ No newline at end of file
diff --git a/mods/wordpress/index.php b/mods/wordpress/index.php
new file mode 100644 (file)
index 0000000..ab72ba4
--- /dev/null
@@ -0,0 +1,18 @@
+<?php\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+$_custom_css = $_base_path . 'mods/wordpress/module.css'; // use a custom stylesheet\r
+\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+$p = intval($_GET['p']);\r
+\r
+\r
+?>\r
+\r
+<a href="<?php echo $_config['wp-url']; ?>wp-login.php" target="toolframe">\r
+<?php echo _AT('wordpress_login'); ?></a>\r
+<iframe name="toolframe"  src="<?php echo $_config['wp-url']; ?><?php if($p !=''){ echo '?p='.$p;} ?>" width="95%" height="450" style="border:none;" id="randomid<?php srand(time()); ?>">\r
+<p><?php echo _AT('wordpress_no_iframe',$_config['wp-url']); ?>"><?php echo _AT('wordpress_login'); ?></a></p>\r
+</iframe>\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>\r
+\r
diff --git a/mods/wordpress/index_admin.php b/mods/wordpress/index_admin.php
new file mode 100644 (file)
index 0000000..ccb4dea
--- /dev/null
@@ -0,0 +1,46 @@
+<?php\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+$_custom_css = $_base_path . 'mods/wordpress/module.css'; // use a custom stylesheet\r
+admin_authenticate(AT_ADMIN_PRIV_WORDPRESS);\r
+\r
+$_POST['wp-url'] = $addslashes($_POST['wp-url']);\r
+\r
+if($_POST['submit']){\r
+       foreach($_POST as $key=>$wp_config)\r
+       if($key != "submit"){\r
+       $sql="REPLACE INTO ".TABLE_PREFIX."config SET name='$key', value='".$wp_config."'";\r
+       if($result= mysql_query($sql, $db)){\r
+               $msg->addFeedback("WP_CONFIG_SAVED");\r
+               $_config['wp-url'] = $_POST['wp-url'];\r
+       }else{\r
+               $msg->addError("WP_CONFIG_FAIL");\r
+       }\r
+\r
+       }\r
+}\r
+\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+\r
+?>\r
+\r
+<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">\r
+<label for="wp-url"><?php echo _AT('wordpress_base_url'); ?></label>\r
+<input type="text" name="wp-url" id="wp-url" value="<?php if($_config['wp-url']){echo $_config['wp-url'];}else{ echo 'http://';} ?>" size="60" /><br />\r
+\r
+<input type="submit" name="submit" value="<?php echo _AT('wordpress_save'); ?>">\r
+</form>\r
+\r
+<h3><?php echo _AT('wordpress_admin_login');  ?></h3>\r
+<a href="<?php echo $_config['wp-url']; ?>wp-login.php" target="toolframe"><?php echo _AT('wordpress_login'); ?></a>\r
+<?php\r
+if($_config['wp-url']){?>\r
+       <iframe frameborder="0" border="0" name="toolframe" src="<?php echo $_config['wp-url']; ?>" width="95%" height="450" id="frame_set" onload="if (window.parent &amp;&amp; window.parent.autoIframe) {window.parent.autoIframe('tree');}">\r
+       <p><?php echo _AT('wordpress_no_iframes',$_config['wp-url']); ?> </p>\r
+       </iframe>\r
+<?php }else{ ?>\r
+       <p><?php echo _AT('wordpress_do_setup'); ?></p>\r
+\r
+<?php } ?>\r
+\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
diff --git a/mods/wordpress/index_instructor.php b/mods/wordpress/index_instructor.php
new file mode 100644 (file)
index 0000000..cbdc742
--- /dev/null
@@ -0,0 +1,13 @@
+<?php\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+authenticate(AT_PRIV_WORDPRESS);\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+?>\r
+<a href="<?php echo $_config['wp-url']; ?>wp-login.php" target="tool_frame">\r
+<?php echo _AT('wordpress_login'); ?></a>\r
+<iframe src="<?php echo $_config['wp-url']; ?>" width="95%" height="450" style="border:none;" name="tool_frame">\r
+<p><?php echo _AT('wordpress_no_iframe',$_config['wp-url']); ?>wp-login.php"><?php echo _AT('wordpress_login'); ?></a></p>\r
+</iframe>\r
+\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
diff --git a/mods/wordpress/index_mystart.php b/mods/wordpress/index_mystart.php
new file mode 100644 (file)
index 0000000..d66deed
--- /dev/null
@@ -0,0 +1,15 @@
+<?php\r
+$_user_location        = 'users';\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+$_custom_css = $_base_path . 'mods/wordpress/module.css'; // use a custom stylesheet\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+$p = intval($_GET['p']);\r
+?>\r
+\r
+<a href="<?php echo $_config['wp-url']; ?>wp-login.php" target="toolframe">\r
+<?php echo _AT('wordpress_login'); ?></a>\r
+<iframe name="toolframe"  src="<?php echo $_config['wp-url']; ?><?php if($p !=''){ echo 'index.php?p='.$p;} ?>" width="95%" height="450" style="border:none;">\r
+<p><?php echo _AT('wordpress_no_iframe',$_config['wp-url']); ?>"><?php echo _AT('wordpress_login'); ?></a></p>\r
+</iframe>\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>\r
diff --git a/mods/wordpress/index_public.php b/mods/wordpress/index_public.php
new file mode 100644 (file)
index 0000000..cf2ca95
--- /dev/null
@@ -0,0 +1,17 @@
+<?php\r
+\r
+$_user_location        = 'public';\r
+\r
+define('AT_INCLUDE_PATH', '../../include/');\r
+require (AT_INCLUDE_PATH.'vitals.inc.php');\r
+$_custom_css = $_base_path . 'mods/wordpress/module.css'; // use a custom stylesheet\r
+require (AT_INCLUDE_PATH.'header.inc.php');\r
+?>\r
+\r
+<a href="<?php echo $_config['wp-url']; ?>" target="toolwin">\r
+<?php echo _AT('wordpress_login'); ?><?php echo _AT('wordpress_login_newwin'); ?></a>\r
+<iframe src="<?php echo $_config['wp-url']; ?>" width="95%" height="450" style="border:none;" name="blog_frame">\r
+<p><?php echo _AT('wordpress_no_iframe',$_config['wp-url']); ?>"><?php echo _AT('wordpress_login'); ?></a></p>\r
+</iframe>\r
+\r
+<?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\ No newline at end of file
diff --git a/mods/wordpress/module.css b/mods/wordpress/module.css
new file mode 100644 (file)
index 0000000..c9fce7a
--- /dev/null
@@ -0,0 +1,15 @@
+div#helloworld {\r
+       border: 1px solid #ccc;\r
+       padding: 10px;\r
+       width: 50%;\r
+       margin-right: auto;\r
+       margin-left: auto;\r
+       background-color: #efefef;\r
+       color: #444;\r
+       margin-top: 30px;\r
+       margin-bottom: 30px;\r
+}\r
+\r
+#frame_set{\r
+       border:none;\r
+}
\ No newline at end of file
diff --git a/mods/wordpress/module.php b/mods/wordpress/module.php
new file mode 100644 (file)
index 0000000..a8134c0
--- /dev/null
@@ -0,0 +1,84 @@
+<?php
+/*******
+ * doesn't allow this file to be loaded with a browser.
+ */
+if (!defined('AT_INCLUDE_PATH')) { exit; }
+
+/******
+ * this file must only be included within a Module obj
+ */
+if (!isset($this) || (isset($this) && (strtolower(get_class($this)) != 'module'))) { exit(__FILE__ . ' is not a Module'); }
+
+/*******
+ * assign the instructor and admin privileges to the constants.
+ */
+define('AT_PRIV_WORDPRESS',       $this->getPrivilege());
+define('AT_ADMIN_PRIV_WORDPRESS', $this->getAdminPrivilege());
+
+/*******
+ * create a side menu box/stack.
+ */
+//$this->_stacks['wordpress'] = array('title_var'=>'wordpress', 'file'=>'mods/wordpress/side_menu.inc.php');
+// ** possible alternative: **
+// $this->addStack('wordpress', array('title_var' => 'wordpress', 'file' => './side_menu.inc.php');
+
+/*******
+ * create optional sublinks for module "detail view" on course home page
+ * when this line is uncommented, "mods/wordpress/sublinks.php" need to be created to return an array of content to be displayed
+ */
+$this->_list['wordpress'] = array('title_var'=>'wordpress','file'=>'mods/wordpress/sublinks.php');
+
+// Uncomment for tiny list bullet icon for module sublinks "icon view" on course home page
+$this->_pages['mods/wordpress/index.php']['icon']      = 'mods/wordpress/wordpress_icon_sm.png';
+
+// Uncomment for big icon for module sublinks "detail view" on course home page
+//$this->_pages['mods/wordpress/index.php']['img']      = 'mods/wordpress/wordpress.jpg';
+
+// ** possible alternative: **
+// the text to display on module "detail view" when sublinks are not available
+$this->_pages['mods/wordpress/index.php']['text']      = _AT('wordpress_text');
+
+/*******
+ * if this module is to be made available to students on the Home or Main Navigation.
+ */
+$_group_tool = $_student_tool = 'mods/wordpress/index.php';
+
+/*******
+ * add the admin pages when needed.
+ */
+if (admin_authenticate(AT_ADMIN_PRIV_WORDPRESS, TRUE) || admin_authenticate(AT_ADMIN_PRIV_ADMIN, TRUE)) {
+       $this->_pages[AT_NAV_ADMIN] = array('mods/wordpress/index_admin.php');
+       $this->_pages['mods/wordpress/index_admin.php']['title_var'] = 'wordpress';
+       $this->_pages['mods/wordpress/index_admin.php']['parent']    = AT_NAV_ADMIN;
+}
+
+/*******
+ * instructor Manage section:
+ */
+$this->_pages['mods/wordpress/index_instructor.php']['title_var'] = 'wordpress';
+$this->_pages['mods/wordpress/index_instructor.php']['parent']   = 'tools/index.php';
+// ** possible alternative: **
+// $this->pages['./index_instructor.php']['title_var'] = 'wordpress';
+// $this->pages['./index_instructor.php']['parent']    = 'tools/index.php';
+
+/*******
+ * student page.
+ */
+$this->_pages['mods/wordpress/index.php']['title_var'] = 'wordpress';
+$this->_pages['mods/wordpress/index.php']['img']       = 'mods/wordpress/wordpress_logo.png';
+
+/* public pages */
+//$this->_pages[AT_NAV_PUBLIC] = array('mods/wordpress/index_public.php');
+//$this->_pages['mods/wordpress/index_public.php']['title_var'] = 'wordpress';
+//$this->_pages['mods/wordpress/index_public.php']['parent'] = AT_NAV_PUBLIC;
+
+/* my start page pages */
+$this->_pages[AT_NAV_START]  = array('mods/wordpress/index_mystart.php');
+$this->_pages['mods/wordpress/index_mystart.php']['title_var'] = 'wordpress';
+$this->_pages['mods/wordpress/index_mystart.php']['parent'] = AT_NAV_START;
+
+function wordpress_get_group_url($group_id) {
+       return 'mods/wordpress/index.php';
+}
+
+?>
\ No newline at end of file
diff --git a/mods/wordpress/module.sql b/mods/wordpress/module.sql
new file mode 100644 (file)
index 0000000..c9e2eac
--- /dev/null
@@ -0,0 +1,30 @@
+# sql file for hello world module\r
+\r
+CREATE TABLE `wordpress` (\r
+   `wordpress_id` mediumint(8) unsigned NOT NULL,\r
+   `course_id` mediumint(8) unsigned NOT NULL,\r
+   `value` VARCHAR( 30 ) NOT NULL ,\r
+   PRIMARY KEY ( `wordpress_id` )\r
+) ENGINE = MyISAM;\r
+\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress','WordPress',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_admin_login','Login to Administer WordPress',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_base_url','WordPress base URL',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_login','WordPress Login',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_host_url','WordPress Host URL',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_db_name','WordPress Database Name',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_db_port','WordPress Database Port',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_db_user','WordPress Database User',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_update','WordPress Update',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_db_pwd','WordPress Database Password',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_db_prefix','WordPress Database Table Prefix',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_save','Save',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_no_iframes','Your browser does not support iframes. Go to <a href="'.%s.'">WordPress Login</a>',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_do_setup','Enter the URL to the WordPress based directory in the form field above, including a trailing slash (/), to have WordPress appear here.',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_module','wordpress_no_db_info','To access current information here, modify the wp_config.php file in the WordPress module.',NOW(),'');\r
+\r
+\r
+\r
+\r
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_WP_CONFIG_SAVED','Wordpress configuration successfully saved',NOW(),'');\r
+INSERT INTO `language_text` VALUES ('en', '_msgs','AT_FEEDBACK_WP_CONFIG_FAIL','Wordpress configuration failed to save. ',NOW(),'');
\ No newline at end of file
diff --git a/mods/wordpress/module.xml b/mods/wordpress/module.xml
new file mode 100644 (file)
index 0000000..ce996a6
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?> \r
+<module version="0.1"> \r
+    <name lang="en">Wordpress Integration</name> \r
+    <description lang="en">This module integrate wordpress with ATutor, opening it in an iframe either as a course tool, or as My Start Page Blog. With the Wordpress external DB authentication plugin installed, available in the wp_plugins directory of the module, it synchronizes Wordpress users with ATutor members. See the README file for additional details.</description> \r
+    <maintainers>\r
+        <maintainer> \r
+            <name>ATutor Team</name> \r
+            <email>info@atutor.ca</email> \r
+        </maintainer>\r
+    </maintainers> \r
+    <url>http://atutor.ca</url> \r
+    <license>BSD</license> \r
+       <release> \r
+        <version>1.0</version> \r
+        <date>2011-06-21</date> \r
+        <state>beta</state> \r
+        <notes>Once installed, enable the module then under the new Wordpress tab, enter the URL to the base directory in which Wordpress is installed.</notes> \r
+    </release> \r
+</module>\r
diff --git a/mods/wordpress/module_delete.php b/mods/wordpress/module_delete.php
new file mode 100644 (file)
index 0000000..322d3a6
--- /dev/null
@@ -0,0 +1,21 @@
+<?php\r
+/*******\r
+ * this function named [module_name]_delete is called whenever a course content is deleted\r
+ * which includes when restoring a backup with override set, or when deleting an entire course.\r
+ * the function must delete all module-specific material associated with this course.\r
+ * $course is the ID of the course to delete.\r
+ */\r
+\r
+function hello_world_delete($course) {\r
+       global $db;\r
+\r
+       // delete hello_world course table entries\r
+       $sql = "DELETE FROM ".TABLE_PREFIX."hello_world WHERE course_id=$course";\r
+       mysql_query($sql, $db);\r
+\r
+       // delete hello_world course files\r
+       $path = AT_CONTENT_DIR .'hello_world/' . $course .'/';\r
+       clr_dir($path);\r
+}\r
+\r
+?>
\ No newline at end of file
diff --git a/mods/wordpress/module_install.php b/mods/wordpress/module_install.php
new file mode 100644 (file)
index 0000000..9a82811
--- /dev/null
@@ -0,0 +1,67 @@
+<?php\r
+/*******\r
+ * the line below safe-guards this file from being accessed directly from\r
+ * a web browser. It will only execute if required from within an ATutor script,\r
+ * in our case the Module::install() method.\r
+ */\r
+if (!defined('AT_INCLUDE_PATH')) { exit; }\r
+\r
+/*******\r
+ * Note: the many options for these variables are used to decrease confusion.\r
+ *       TRUE | FALSE | 1 will be the convention.\r
+ *\r
+ * $_course_privilege\r
+ *     specifies the type of instructor privilege this module uses.\r
+ *     set to empty | FALSE | 0   to disable any privileges.\r
+ *     set to 1 | AT_PRIV_ADMIN   to use the instructor only privilege.\r
+ *     set to TRUE | 'new'        to create a privilege specifically for this module:\r
+ *                                will make this module available as a student privilege.\r
+ *\r
+ * $_admin_privilege\r
+ *    specifies the type of ATutor administrator privilege this module uses.\r
+ *    set to FALSE | AT_ADMIN_PRIV_ADMIN   to use the super administrator only privilege.\r
+ *    set to TRUE | 'new'                  to create a privilege specifically for this module:\r
+ *                                         will make this module available as an administrator privilege.\r
+ *\r
+ *\r
+ * $_cron_interval\r
+ *    if non-zero specifies in minutes how often the module's cron job should be run.\r
+ *    set to 0 or not set to disable.\r
+ */\r
+$_course_privilege = TRUE; // possible values: FALSE | AT_PRIV_ADMIN | TRUE\r
+$_admin_privilege  = TRUE; // possible values: FALSE | TRUE\r
+$_cron_interval    = 35; // run every 30 minutes\r
+\r
+\r
+/********\r
+ * the following code is used for creating a module-specific directory.\r
+ * it generates appropriate error messages to aid in its creation.\r
+ */\r
+$directory = AT_CONTENT_DIR .'hello_world';\r
+\r
+// check if the directory is writeable\r
+if (!is_dir($directory) && !@mkdir($directory)) {\r
+       $msg->addError(array('MODULE_INSTALL', '<li>'.$directory.' does not exist. Please create it.</li>'));\r
+} else if (!is_writable($directory) && @chmod($directory, 0666)) {\r
+       $msg->addError(array('MODULE_INSTALL', '<li>'.$directory.' is not writeable. On Unix issue the command <kbd>chmod a+rw</kbd>.</li>'));\r
+}\r
+\r
+\r
+/******\r
+ * the following code checks if there are any errors (generated previously)\r
+ * then uses the SqlUtility to run any database queries it needs, ie. to create\r
+ * its own tables.\r
+ */\r
+if (!$msg->containsErrors() && file_exists(dirname(__FILE__) . '/module.sql')) {\r
+       // deal with the SQL file:\r
+       require(AT_INCLUDE_PATH . 'classes/sqlutility.class.php');\r
+       $sqlUtility =& new SqlUtility();\r
+\r
+       /*\r
+        * the SQL file could be stored anywhere, and named anything, "module.sql" is simply\r
+        * a convention we're using.\r
+        */\r
+       $sqlUtility->queryFromFile(dirname(__FILE__) . '/module.sql', TABLE_PREFIX);\r
+}\r
+\r
+?>
\ No newline at end of file
diff --git a/mods/wordpress/module_news.php b/mods/wordpress/module_news.php
new file mode 100644 (file)
index 0000000..c6df538
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+/*
+* Rename the function to match the name of the module. Names of all news functions must be unique
+* across all modules installed on a system. Return a variable called $news
+*/
+require('wp_connect.php');
+               // Number of links to be displayed on "detail view" box
+function wordpress_news() {
+       global $db_wp, $_config;
+if($_GET['p'] != "all"){
+       $link_limit = "LIMIT 3";
+}
+
+       $news = array();
+
+       $sql = "SELECT ID, post_title, guid, post_content, post_modified FROM ".WP_DB_PREFIX."posts WHERE post_status = 'publish' ORDER BY post_modified DESC ".$link_limit;
+       
+$result = mysql_query($sql, $db_wp);
+
+       if($result){
+               //$news_count = 0;
+               //$page_ids = array();
+               $post_title = array();
+               while($row = mysql_fetch_assoc($result)){
+               if(strlen($row['post_content']) > 100){
+                       $row['post_content'] = substr($row['post_content'],0,100)."...";
+               }
+                               if(!in_array($row['post_title'], $post_title)){
+                               $post_title[] = $row['post_title'];
+                               $news[] = array('time'=> $row['post_modified'], 
+                                       'alt'=>_AT('wordpress_update'),
+                                       'thumb'=>'mods/wordpress/wordpress_icon_sm.png', 
+                                       'link'=>'<a href="'.AT_BASE_HREF.url_rewrite('mods/wordpress/index_mystart.php?p='.$row['ID']).'"'.
+                                       (strlen($row['post_title']) > SUBLINK_TEXT_LEN ? ' title="'.$row['post_title'].'"' : '') .'>'. 
+                                       validate_length($row['post_title'], SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY) .'</a> <br />'.$row['post_content']);
+                               }
+               }
+       }
+
+       return $news;
+
+}
+?>
diff --git a/mods/wordpress/module_uninstall.php b/mods/wordpress/module_uninstall.php
new file mode 100644 (file)
index 0000000..9ed6969
--- /dev/null
@@ -0,0 +1,44 @@
+<?php\r
+/*******\r
+ * module_uninstall.php performs reversion of module_install.php\r
+ */\r
+\r
+/*******\r
+ * the line below safe-guards this file from being accessed directly from\r
+ * a web browser. It will only execute if required from within an ATutor script,\r
+ * in our case the Module::uninstall() method.\r
+ */\r
+if (!defined('AT_INCLUDE_PATH')) { exit; }\r
+\r
+/********\r
+ * the following code is used for removing a module-specific directory created in module_install.php.\r
+ * it generates appropriate error messages to aid in its creation.\r
+ */\r
+$directory = AT_CONTENT_DIR .'hello_world';\r
+\r
+// check if the directory exists\r
+if (is_dir($directory)) {\r
+       require(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php');\r
+\r
+       if (!clr_dir($directory))\r
+               $msg->addError(array('MODULE_UNINSTALL', '<li>'.$directory.' can not be removed. Please manually remove it.</li>'));\r
+}\r
+\r
+/******\r
+ * the following code checks if there are any errors (generated previously)\r
+ * then uses the SqlUtility to run reverted database queries of module.sql, \r
+ * ie. "create table" statement in module.sql is run as drop according table.\r
+ */\r
+if (!$msg->containsErrors() && file_exists(dirname(__FILE__) . '/module.sql')) {\r
+       // deal with the SQL file:\r
+       require(AT_INCLUDE_PATH . 'classes/sqlutility.class.php');\r
+       $sqlUtility = new SqlUtility();\r
+\r
+       /*\r
+        * the SQL file could be stored anywhere, and named anything, "module.sql" is simply\r
+        * a convention we're using.\r
+        */\r
+       $sqlUtility->revertQueryFromFile(dirname(__FILE__) . '/module.sql', TABLE_PREFIX);\r
+}\r
+\r
+?>
\ No newline at end of file
diff --git a/mods/wordpress/sublinks.php b/mods/wordpress/sublinks.php
new file mode 100644 (file)
index 0000000..5a8e775
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+if (!defined('AT_INCLUDE_PATH')) { exit; }
+
+/*****
+* Free form PHP can appear here to retreive current information
+* from the module, or a text description of the module where there is
+* not current information
+*****/
+require('wp_connect.php');
+
+global $db_wp;
+
+$link_limit = 3;               // Number of links to be displayed on "detail view" box
+$sql = "SELECT ID, post_title, guid FROM ".WP_DB_PREFIX."posts WHERE post_status = 'publish' ORDER BY post_modified DESC LIMIT $link_limit";
+
+$result = mysql_query($sql, $db_wp);
+$wp_posts = array();
+$i = 1;
+while($row = mysql_fetch_assoc($result)){
+       $wp_posts[$i] = $row;
+       $i++;
+}
+
+if($wp_posts != ''){
+       foreach($wp_posts as $key=>$value){
+       $list[] = '<a href="'.AT_BASE_HREF.url_rewrite('mods/wordpress/index.php?p='. $value['ID']).'"'.
+                                       (strlen($row['value']) > SUBLINK_TEXT_LEN ? ' title="'.$row['value'].'"' : '') .'>'. 
+                                       validate_length($value['post_title'], SUBLINK_TEXT_LEN, VALIDATE_LENGTH_FOR_DISPLAY) .'</a>';
+       }
+       return $list;
+} else {
+       return 0; 
+}
+
+?>
\ No newline at end of file
diff --git a/mods/wordpress/wordpress_icon_sm.png b/mods/wordpress/wordpress_icon_sm.png
new file mode 100644 (file)
index 0000000..ea59600
Binary files /dev/null and b/mods/wordpress/wordpress_icon_sm.png differ
diff --git a/mods/wordpress/wordpress_logo.png b/mods/wordpress/wordpress_logo.png
new file mode 100644 (file)
index 0000000..88e20b9
Binary files /dev/null and b/mods/wordpress/wordpress_logo.png differ
diff --git a/mods/wordpress/wp_config.php b/mods/wordpress/wp_config.php
new file mode 100644 (file)
index 0000000..3e667c5
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+// WordPress database access information.
+// Set the values below to those needed to access your Wordpress database
+// Wordpress needs to be installed in the same server as ATutor
+
+define('WP_DB_USER',   '');           # enter your mysql database user name
+define('WP_DB_PWD',    '');           # enter your mysql database password
+define('WP_DB_NAME',   'wordpress');         #default "wordpress"
+define('WP_DB_PREFIX', 'wp_');            #default "wp_"
+define('WP_DB_HOST',   'localhost');      #default "localhost"
+define('WP_DB_PORT',   '3600');           #default "3600"
+
+?>
diff --git a/mods/wordpress/wp_connect.php b/mods/wordpress/wp_connect.php
new file mode 100644 (file)
index 0000000..f220f37
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+// Wordpress database connection setup for atutor_wordpress integration module
+require('wp_config.php');
+global $db_wp;
+
+if (AT_INCLUDE_PATH !== 'NULL') {
+       $db_wp= @mysql_connect(WP_DB_HOST.':'.WP_DB_PORT, WP_DB_USER, WP_DB_PWD);       
+
+       if (!$db_wp) {
+               /* AT_ERROR_NO_DB_CONNECT */
+               require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
+               $err = new ErrorHandler();
+               trigger_error('VITAL#Unable to connect to db. Set database information in the module\'s wp_config.php file.', E_USER_ERROR);
+               exit;
+       }
+       if (!@mysql_select_db(WP_DB_NAME, $db_wp)) {
+               require_once(AT_INCLUDE_PATH . 'classes/ErrorHandler/ErrorHandler.class.php');
+               $err = new ErrorHandler();
+               trigger_error('VITAL#DB connection established, but database "'.WP_DB_NAME.'" cannot be selected.',
+                                               E_USER_ERROR);
+               exit;
+       }
+
+}
+?>
\ No newline at end of file
diff --git a/mods/wordpress/wp_plugin/external-database-authentication/ext_db_auth.php b/mods/wordpress/wp_plugin/external-database-authentication/ext_db_auth.php
new file mode 100644 (file)
index 0000000..abf690d
--- /dev/null
@@ -0,0 +1,536 @@
+<?php
+/*
+Plugin Name: External DB authentication
+Plugin URI: http://www.ploofle.com/tag/ext_db_auth/
+Description: Used to externally authenticate WP users with an existing user DB.
+Version: 3.15
+Author: Charlene Barina
+Author URI: http://www.ploofle.com
+
+    Copyright 2007  Charlene Barina  (email : cbarina@u.washington.edu)
+
+    This program is free software; you can redistribute it and/or modify
+    it  under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+//backwords compatability with php < 5 for htmlspecialchars_decode
+if ( !function_exists('htmlspecialchars_decode') )
+{
+    function htmlspecialchars_decode($text)
+    {
+        return strtr($text, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
+    }
+}
+
+function ext_db_auth_activate() {
+       add_option('ext_db_type',"MySQL","External database type");
+       add_option('ext_db_mdb2_path',"","Path to MDB2 (if non-standard)");
+       add_option('ext_host',"","External database hostname");
+       add_option('ext_db_port',"","Database port (if non-standard)");
+       add_option('ext_db',"","External database name");
+       add_option('ext_db_user',"","External database username");
+       add_option('ext_db_pw',"","External database password");
+       add_option('ext_db_table',"","External database table for authentication");
+       add_option('ext_db_namefield',"","External database field for username");
+       add_option('ext_db_pwfield',"","External database field for password");
+       add_option('ext_db_first_name',"");
+       add_option('ext_db_last_name',"");
+       add_option('ext_db_user_url',"");
+       add_option('ext_db_user_email',"");
+       add_option('ext_db_description',"");
+       add_option('ext_db_aim',"");
+       add_option('ext_db_yim',"");
+       add_option('ext_db_jabber',"");
+       add_option('ext_db_enc',"","Type of encoding for external db (default SHA1? or MD5?)");
+       add_option('ext_db_error_msg',"","Custom login message");   
+       add_option('ext_db_other_enc','$password2 = $password;');
+       add_option('ext_db_role_bool','');
+       add_option('ext_db_role','');
+       add_option('ext_db_role_value','');
+}
+
+function ext_db_auth_init(){
+       register_setting('ext_db_auth','ext_db_type');
+       register_setting('ext_db_auth','ext_db_mdb2_path');
+       register_setting('ext_db_auth','ext_host');
+       register_setting('ext_db_auth','ext_db_port');
+       register_setting('ext_db_auth','ext_db');
+       register_setting('ext_db_auth','ext_db_user');
+       register_setting('ext_db_auth','ext_db_pw');
+       register_setting('ext_db_auth','ext_db_table');
+       register_setting('ext_db_auth','ext_db_namefield');
+       register_setting('ext_db_auth','ext_db_pwfield');
+       register_setting('ext_db_auth','ext_db_first_name');
+       register_setting('ext_db_auth','ext_db_last_name');
+       register_setting('ext_db_auth','ext_db_user_url');
+       register_setting('ext_db_auth','ext_db_user_email');
+       register_setting('ext_db_auth','ext_db_description');
+       register_setting('ext_db_auth','ext_db_aim');
+       register_setting('ext_db_auth','ext_db_yim');
+       register_setting('ext_db_auth','ext_db_jabber');
+       register_setting('ext_db_auth','ext_db_enc');
+       register_setting('ext_db_auth','ext_db_error_msg');   
+       register_setting('ext_db_auth','ext_db_other_enc');
+       register_setting('ext_db_auth','ext_db_role');
+       register_setting('ext_db_auth','ext_db_role_bool');
+       register_setting('ext_db_auth','ext_db_role_value');
+}
+
+//page for config menu
+function ext_db_auth_add_menu() {
+       add_options_page("External DB settings", "External DB settings", 10, __FILE__,"ext_db_auth_display_options");
+}
+
+//actual configuration screen
+function ext_db_auth_display_options() { 
+    $db_types[] = "MySQL";
+    $db_types[] = "MSSQL";
+    $db_types[] = "PgSQL";
+?>
+       <div class="wrap">
+       <h2>External Database Authentication Settings</h2>        
+       <form method="post" action="options.php">
+       <?php settings_fields('ext_db_auth'); ?>
+        <h3>External Database Settings</h3>
+          <strong>Make sure your WP admin account exists in the external db prior to saving these settings.</strong>
+        <table class="form-table">
+        <tr valign="top">
+            <th scope="row">Database type</th>
+                <td><select name="ext_db_type" >
+                <?php 
+                    foreach ($db_types as $key=>$value) { //print out radio buttons
+                        if ($value == get_option('ext_db_type'))
+                            echo '<option value="'.$value.'" selected="selected">'.$value.'<br/>';
+                        else echo '<option value="'.$value.'">'.$value.'<br/>';;
+                    }                
+                ?>
+                </select> 
+                               </td>
+                               <td>
+                                       <span class="description"><strong style="color:red;">required</strong>; If not MySQL, requires <a href="http://pear.php.net/package/MDB2/" target="_blank">PEAR MDB2 package</a> and relevant database driver package installation.</span>
+                               </td>
+        </tr>        
+        <tr valign="top">
+            <th scope="row"><label>Path to MDB2.php</label></th>
+                               <td><input type="text" name="ext_db_mdb2_path" value="<?php echo get_option('ext_db_mdb2_path'); ?>" /> </td>
+                               <td><span class="description">Only when using non-MySQL database and in case this isn't in some sort of include path in your PHP configuration.  No trailing slash! e.g., /home/username/php </span></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Host</label></th>
+                               <td><input type="text" name="ext_host" value="<?php echo get_option('ext_host'); ?>" /> </td>
+                               <td><span class="description"><strong style="color:red;">required</strong>; (often localhost)</span> </td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Port</label></th>
+                               <td><input type="text" name="ext_db_port" value="<?php echo get_option('ext_db_port'); ?>" /> </td>
+                               <td><span class="description">Only set this if you have a non-standard port for connecting.</span></td>
+        </tr>        
+        <tr valign="top">
+            <th scope="row"><label>Name</label></th>
+                               <td><input type="text" name="ext_db" value="<?php echo get_option('ext_db'); ?>" /></td>
+                               <td><span class="description"><strong style="color:red;">required</strong></span></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Username</label></th>
+                               <td><input type="text" name="ext_db_user" value="<?php echo get_option('ext_db_user'); ?>" /></td>
+                               <td><span class="description"><strong style="color:red;">required</strong>; (recommend select privileges only)</span></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Password</label></th>
+                               <td><input type="password" name="ext_db_pw" value="<?php echo get_option('ext_db_pw'); ?>" /></td>
+                               <td><span class="description"><strong style="color:red;">required</strong></span></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>User table</label></th>
+                               <td><input type="text" name="ext_db_table" value="<?php echo get_option('ext_db_table'); ?>" /></td>
+                               <td><span class="description"><strong style="color:red;">required</strong></span></td>
+        </tr>
+        </table>
+        
+        <h3>External Database Source Fields</h3>
+        <table class="form-table">
+        <tr valign="top">
+            <th scope="row"><label>Username</label></th>
+                               <td><input type="text" name="ext_db_namefield" value="<?php echo get_option('ext_db_namefield'); ?>" /></td>
+                               <td><span class="description"><strong style="color:red;">required</strong></span></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Password</label></th>
+                               <td><input type="text" name="ext_db_pwfield" value="<?php echo get_option('ext_db_pwfield'); ?>" /></td>
+                               <td><span class="description"><strong style="color:red;">required</strong></span><td>
+        </tr>
+        <tr valign="top">
+            <th scope="row">Password encryption method</th>
+                <td><select name="ext_db_enc">
+                <?php 
+                    switch(get_option('ext_db_enc')) {
+                    case "SHA1" :
+                        echo '<option selected="selected">SHA1</option><option>MD5</option><option>Other</option>';
+                        break;
+                    case "MD5" :
+                        echo '<option>SHA1</option><option selected="selected">MD5</option><option>Other</option>';
+                        break;                
+                    case "Other" :
+                        echo '<option>SHA1</option><option  selected="selected">MD5</option><option selected="selected">Other</option>';
+                        break;                                        
+                    default :
+                        echo '<option selected="selected">SHA1</option><option>MD5</option><option>Other</option>';
+                        break;
+                    }
+                ?>
+                               </select></td>
+                       <td><span class="description"><strong style="color:red;">required</strong>; (using "Other" requires you to enter PHP code below!)</td>            
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Hash code</label></th>
+                               <td><input type="text" name="ext_db_other_enc" size="50" value="<?php echo get_option('ext_db_other_enc'); ?>" /></td>
+                               <td><span class="description">Only will run if "Other" is selected and needs to be PHP code. Variable you need to set is $password2, and you have access to (original) $username and $password.</td>
+        </tr>
+               <tr valign="top">
+            <th scope="row"><label>Role check</label></th>
+                       <td><input type="text" name="ext_db_role" value="<?php echo get_option('ext_db_role'); ?>" />
+                               <br />
+                               <select name="ext_db_role_bool">
+                <?php 
+                    switch(get_option('ext_db_role_bool')) {
+                    case "is" :
+                        echo '<option selected="selected">is</option><option>greater than</option><option>less than</option>';
+                        break;
+                    case "greater than" :
+                        echo '<option>is</option><option selected="selected">greater than</option><option>less than</option>';
+                        break;                
+                    case "less than" :
+                        echo '<option>is</option><option>greater than</option><option selected="selected">less than</option>';
+                        break;                                        
+                    default :
+                        echo '<option selected="selected">is</option><option>greater than</option><option>less than</option>';
+                        break;
+                    }
+                ?>
+                               </select><br />
+                               <input type="text" name="ext_db_role_value" value="<?php echo get_option('ext_db_role_value'); ?>" /></td>
+                               <td><span class="description">Use this if you have certain user role ids in your external database to further restrict allowed logins.  If unused, leave fields blank.</span></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>First name</label></th>
+                       <td><input type="text" name="ext_db_first_name" value="<?php echo get_option('ext_db_first_name'); ?>" /></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Last name</label></th>
+                       <td><input type="text" name="ext_db_last_name" value="<?php echo get_option('ext_db_last_name'); ?>" /></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Homepage</label></th>
+                       <td><input type="text" name="ext_db_user_url" value="<?php echo get_option('ext_db_user_url'); ?>" /></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Email</label></th>
+                       <td><input type="text" name="ext_db_user_email" value="<?php echo get_option('ext_db_user_email'); ?>" /></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>Bio/description</label></th>
+                       <td><input type="text" name="ext_db_description" value="<?php echo get_option('ext_db_description'); ?>" /></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>AIM screen name</label></th>
+                       <td><input type="text" name="ext_db_aim" value="<?php echo get_option('ext_db_aim'); ?>" /></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>YIM screen name</label></th>
+                       <td><input type="text" name="ext_db_yim" value="<?php echo get_option('ext_db_yim'); ?>" /></td>
+        </tr>
+        <tr valign="top">
+            <th scope="row"><label>JABBER screen name</label></th>
+                       <td><input type="text" name="ext_db_jabber" value="<?php echo get_option('ext_db_jabber'); ?>" /></td>
+        </tr>
+        </table>
+        <h3>Other</h3>
+        <table class="form-table">
+        <tr valign="top">
+                <th scope="row">Custom login message</th>
+                <td><textarea name="ext_db_error_msg" cols=40 rows=4><?php echo htmlspecialchars(get_option('ext_db_error_msg'));?></textarea></td>
+                <td><span class="description">Shows up in login box, e.g., to tell them where to get an account. You can use HTML in this text.</td>
+        </tr>        
+    </table>
+       
+       <p class="submit">
+       <input type="submit" name="Submit" value="Save changes" />
+       </p>
+       </form>
+       </div>
+<?php
+}
+
+//sort-of wrapper for all DB interactions
+function db_functions($driver,$process,$resource,$query) {
+    if ($driver == "MySQL") {  //use built-in PHP mysql connection
+        switch($process) {
+            case "connect" :
+                $port = get_option('ext_db_port');                
+                if (!empty($port))   $port = ":".get_option('ext_db_port');
+                $resource = mysql_connect(get_option('ext_host').$port, get_option('ext_db_user'), get_option('ext_db_pw'),true) or die(mysql_error());                
+                mysql_select_db(get_option('ext_db'),$resource) or die(mysql_error());
+                return $resource;
+                break;
+            case "query":
+                $result = mysql_query($query,$resource) or die(mysql_error());
+                return $result;
+                break;            
+            case "numrows":
+                return mysql_num_rows($resource);
+                break;
+            case "fetch":
+                return mysql_fetch_assoc($resource);            
+                break;
+            case "close":
+                mysql_close($resource);            
+                break;
+        }
+    }
+    else {  //Use MDB2   
+        $mdbpath = get_option('ext_db_mdb2_path')."/MDB2.php";        
+        require_once($mdbpath);
+        switch($process) {
+            case "connect" :                
+                $port = get_option('ext_db_port');                
+                if (!empty($port))   $port = ":".get_option('ext_db_port');                
+                $url = strtolower($driver)."://".get_option('ext_db_user').":".get_option('ext_db_pw')."@".get_option('ext_host').$port."/".get_option('ext_db');                
+                $resource =& MDB2::connect($url);
+                if(PEAR::isError($resource)) die("Error while connecting : " . $resource->getMessage());
+                return $resource;        
+                break;
+            case "query":    
+                $result = $resource->query($query);
+                if(PEAR::isError($result)) die('Failed to issue query, error message : ' . $result->getMessage());                            
+                return $result;
+                break;            
+            case "numrows":
+                return $resource->numRows();
+                break;
+            case "fetch":
+                return $resource->fetchRow(MDB2_FETCHMODE_ASSOC);                
+                break;
+            case "close":
+                $resource->disconnect();                
+                break;
+        }
+    }
+}
+
+//actual meat of plugin - essentially, you're setting $username and $password to pass on to the system.
+//You check from your external system and insert/update users into the WP system just before WP actually
+//authenticates with its own database.
+function ext_db_auth_check_login($username,$password) {
+       require_once('./wp-includes/registration.php');
+     
+    //first figure out the DB type and connect...
+    $driver = get_option('ext_db_type');
+       //if on same host have to use resource id to make sure you don't lose the wp db connection        
+        
+    $mdbpath = get_option('ext_db_mdb2_path')."/MDB2.php";        
+    if ($mdbpath != "/MDB2.php") @require_once($mdbpath);
+    
+    $resource = db_functions($driver,"connect","","");
+       //prepare the db for unicode queries
+       //to pick up umlauts, non-latin text, etc., without choking
+       $utfquery = "SET NAMES 'utf8'";
+       $resultutf = db_functions($driver,"query",$resource,$utfquery);  
+
+       //do the password hash for comparing
+       switch(get_option('ext_db_enc')) {
+               case "SHA1" :
+                       $password2 = sha1($password);
+                       break;
+               case "MD5" :
+                       $password2 = md5($password);
+                       break;                  
+        case "Other" :             //right now defaulting to plaintext.  People can change code here for their own special hash
+            eval(get_option('ext_db_other_enc'));
+            break;
+       }
+        
+   
+   //first check to see if login exists in external db
+   $query = "SELECT count(*) AS numrows FROM " . get_option('ext_db_table') . " WHERE ".get_option('ext_db_namefield')." = '$username'";
+   $result = db_functions($driver,"query",$resource,$query);    
+   $numrows = db_functions($driver,"fetch",$result,"");
+   $numrows = $numrows["numrows"];
+       
+    if ($numrows) {
+            //then check to see if pw matches and get other fields...
+        $sqlfields['first_name'] = get_option('ext_db_first_name');
+        $sqlfields['last_name'] = get_option('ext_db_last_name');
+        $sqlfields['user_url'] = get_option('ext_db_user_url');
+        $sqlfields['user_email'] = get_option('ext_db_user_email');
+        $sqlfields['description'] = get_option('ext_db_description');
+        $sqlfields['aim'] = get_option('ext_db_aim');
+        $sqlfields['yim'] = get_option('ext_db_yim');
+        $sqlfields['jabber'] = get_option('ext_db_jabber');    
+               $sqlfields['ext_db_role'] = get_option('ext_db_role');
+                 
+        foreach($sqlfields as $key=>$value) {                          
+            if ($value == "") unset($sqlfields[$key]);
+        }
+        $sqlfields2 = implode(", ",$sqlfields);
+    
+        //just so queries won't error out if there are no relevant fields for extended data.
+        if (empty($sqlfields2)) $sqlfields2 = get_option('ext_db_namefield');
+                 
+           $query = "SELECT $sqlfields2 FROM " . get_option('ext_db_table') . " WHERE ".get_option('ext_db_namefield')." = '$username' AND ".get_option('ext_db_pwfield')." = '$password2'";                                                   
+           $result = db_functions($driver,"query",$resource,$query);    
+        $numrows = db_functions($driver,"numrows",$result,"");         
+               
+               if ($numrows) {    //create/update wp account from external database if login/pw exact match exists in that db          
+            $extfields = db_functions($driver,"fetch",$result,""); 
+                       $process = TRUE;
+                               
+                       //check role, if present.
+                       $role = get_option('ext_db_role');
+                       if (!empty($role)) {    //build the role checker too                                    
+                               $rolevalue = $extfields[$sqlfields['ext_db_role']];                     
+                               $rolethresh = get_option('ext_db_role_value');
+                               $rolebool = get_option('ext_db_role_bool');                                     
+                               global $ext_error;
+                               if ($rolebool == 'is') {
+                                       if ($rolevalue == $rolethresh) {}
+                                       else {
+                                               $username = NULL;
+                                               $ext_error = "wrongrole";                                                                                                       
+                                               $process = FALSE;
+                                       }
+                               }
+                               if ($rolebool == 'greater than') {
+                                       if ($rolevalue > $rolethresh) {}
+                                       else {                                  
+                                               $username = NULL;
+                                               $ext_error = "wrongrole";                                                                                                               
+                                               $process = FALSE;
+                                       }
+                               }
+                               if ($rolebool == 'less than') {
+                                       if ($rolevalue < $rolethresh) {}
+                                       else {
+                                               $username = NULL;
+                                               $ext_error = "wrongrole";
+                                               $process = FALSE;
+                                       }
+                               }                       
+                       }                                                               
+                       //only continue with user update/creation if login/pw is valid AND, if used, proper role perms
+                       if ($process) {
+                               $userarray['user_login'] = $username;
+                               $userarray['user_pass'] = $password;                    
+                               $userarray['first_name'] = $extfields[$sqlfields['first_name']];
+                               $userarray['last_name'] = $extfields[$sqlfields['last_name']];        
+                               $userarray['user_url'] = $extfields[$sqlfields['user_url']];
+                               $userarray['user_email'] = $extfields[$sqlfields['user_email']];
+                               $userarray['description'] = $extfields[$sqlfields['description']];
+                               $userarray['aim'] = $extfields[$sqlfields['aim']];
+                               $userarray['yim'] = $extfields[$sqlfields['yim']];
+                               $userarray['jabber'] = $extfields[$sqlfields['jabber']];
+                               $userarray['display_name'] = $extfields[$sqlfields['first_name']]." ".$extfields[$sqlfields['last_name']];            
+                               
+                               //also if no extended data fields
+                               if ($userarray['display_name'] == " ") $userarray['display_name'] = $username;
+                               
+                               db_functions($driver,"close",$resource,"");
+                               
+                               //looks like wp functions clean up data before entry, so I'm not going to try to clean out fields beforehand.
+                               if ($id = username_exists($username)) {   //just do an update
+                                        $userarray['ID'] = $id;
+                                        wp_update_user($userarray);
+                               }
+                               else wp_insert_user($userarray);          //otherwise create
+                       }
+        }                        
+               else {  //username exists but wrong password...                 
+                       global $ext_error;
+                       $ext_error = "wrongpw";                         
+                       $username = NULL;
+               }
+       }
+       else {  //don't let login even if it's in the WP db - it needs to come only from the external db.
+               global $ext_error;
+               $ext_error = "notindb";
+               $username = NULL;
+       }            
+}
+
+
+//gives warning for login - where to get "source" login
+function ext_db_auth_warning() {
+   echo "<p class=\"message\">".get_option('ext_db_error_msg')."</p>";
+}
+
+function ext_db_errors() {
+       global $error;
+       global $ext_error;
+       if ($ext_error == "notindb")
+               return "<strong>ERROR:</strong> Username not found.";
+       else if ($ext_error == "wrongrole")
+               return "<strong>ERROR:</strong> You don't have permissions to log in.";
+       else if ($ext_error == "wrongpw")
+               return "<strong>ERROR:</strong> Invalid password.";
+       else
+               return $error;
+}
+
+//hopefully grays stuff out.
+function ext_db_warning() {
+       echo '<strong style="color:red;">Any changes made below WILL NOT be preserved when you login again. You have to change your personal information per instructions found in the <a href="../wp-login.php">login box</a>.</strong>'; 
+}
+
+//disables the (useless) password reset option in WP when this plugin is enabled.
+function ext_db_show_password_fields() {
+       return 0;
+}
+
+
+/*
+ * Disable functions.  Idea taken from http auth plugin.
+ */
+function disable_function_register() { 
+       $errors = new WP_Error();
+       $errors->add('registerdisabled', __('User registration is not available from this site, so you can\'t create an account or retrieve your password from here. See the message above.'));
+       ?></form><br /><div id="login_error">User registration is not available from this site, so you can't create an account or retrieve your password from here. See the message above.</div>
+               <p id="backtoblog"><a href="<?php bloginfo('url'); ?>/" title="<?php _e('Are you lost?') ?>"><?php printf(__('&larr; Back to %s'), get_bloginfo('title', 'display' )); ?></a></p>
+       <?php
+       exit();
+}
+
+function disable_function() {  
+       $errors = new WP_Error();
+       $errors->add('registerdisabled', __('User registration is not available from this site, so you can\'t create an account or retrieve your password from here. See the message above.'));
+       login_header(__('Log In'), '', $errors);
+       ?>
+       <p id="backtoblog"><a href="<?php bloginfo('url'); ?>/" title="<?php _e('Are you lost?') ?>"><?php printf(__('&larr; Back to %s'), get_bloginfo('title', 'display' )); ?></a></p>
+       <?php
+       exit();
+}
+
+
+add_action('admin_init', 'ext_db_auth_init' );
+add_action('admin_menu', 'ext_db_auth_add_menu');
+add_action('wp_authenticate', 'ext_db_auth_check_login', 1, 2 );
+add_action('lost_password', 'disable_function');
+add_action('user_register', 'disable_function');
+add_action('register_form', 'disable_function_register');
+add_action('retrieve_password', 'disable_function');
+add_action('password_reset', 'disable_function');
+add_action('profile_personal_options','ext_db_warning');
+add_filter('login_errors','ext_db_errors');
+add_filter('show_password_fields','ext_db_show_password_fields');
+add_filter('login_message','ext_db_auth_warning');
+
+register_activation_hook( __FILE__, 'ext_db_auth_activate' );
diff --git a/mods/wordpress/wp_plugin/external-database-authentication/readme.txt b/mods/wordpress/wp_plugin/external-database-authentication/readme.txt
new file mode 100644 (file)
index 0000000..83ebefd
--- /dev/null
@@ -0,0 +1,70 @@
+=== Plugin Name ===\r
+Contributors: charlener\r
+Donate link: none\r
+Tags: authentication, login, database, MSSQL, MySQL, PostgreSQL\r
+Requires at least: 2.7\r
+Tested up to: 2.9\r
+Stable tag: 3.15\r
+\r
+A plugin that allows the use of an external database (MySQL, PostgreSQL, or MSSQL) for authentication into wordpress.  Supports various password hashing methods and user role checks from the external database.\r
+\r
+== Description ==\r
+A plugin that allows the use of an external MySQL, PostgreSQL, or MSSQL database for authentication into wordpress.  It requires you know the encryption method for the passwords stored in the external database and allows you to use MD5, SHA1, plaintext, or enter the hash/salt method yourself.  It disables password reset/retrieval and account creation within the wordpress system on the user-end, and it doesn't allow updating from the wordpress end back into the external authentication source. \r
+\r
+In addition to authentication the plugin allows you to:\r
+1. Choose additional fields, such as first name/last name and website, to be imported into the wordpress user system.\r
+1. Enter a custom message for users concerning logins. \r
+1. Do user role checks from the external database: you can set the plugin to check from a specific role field and compare to a value to allow login to wordpress.  \r
+\r
+PostgreSQL or MSSQL database authentication requires MDB2 PEAR database abstraction package and relevant database drivers. MySQL continues to use the built-in PHP functions.\r
+\r
+== Installation ==\r
+\r
+1. Prepare your WP admin account on your external database: make a login with username 'admin' and password hashed the way accounts are handled on that database.\r
+1. If using PostgreSQL or MSSQL, install the MDB2 PEAR database abstraction package and relevant database drivers and confirm its include path.\r
+1. Change "New User Default Role" in Settings->General, if desired, to whatever level of control you wish externally authenticated users to have.\r
+1. Upload `ext_db_auth.php` to the `/wp-content/plugins/` directory\r
+1. Activate the plugin through the 'Plugins' menu in WordPress\r
+1. Enter your external database settings in Settings->External DB settings\r
+\r
+\r
+== Frequently Asked Questions ==\r
+\r
+= My admin account for WP doesn't work anymore! =\r
+\r
+We're authenticating externally, right?  Take that admin account you initially created in your WP setup and make sure it's in your external database.  Once it's in there you'll be able to log in as admin with no problems.  If you can't do this, delete the plugin and it'll restore access using your WP admin account.\r
+\r
+= Can I still create accounts within WordPress? =\r
+\r
+You could, but they don't work properly as it's not checking against the WP database, just the external then making sure the WP user info is the same as what's currently on the external database.\r
+\r
+= Can I update user information within WordPress? =\r
+\r
+Nope.\r
+\r
+= My external database's passwords are hashed with a salt/datestamp/phases of the moon/etc =\r
+\r
+Choose "Other" as your encoding method, then enter the method you use in the "Other" textbox as PHP code. If it involves more than the username and password, though, you may need to modify the plugin source code.\r
+\r
+= I'm locked out! =\r
+\r
+Delete or rename the plugin; if it's a DB connection-related error most likely you have the wrong connection, etc. information for the external database.\r
+\r
+== Screenshots ==\r
+\r
+1. Plugin config screen\r
+2. Example login warning message upon access to wp-login.php\r
+3. Example "Lost my password" retrieval attempt\r
+\r
+== Changelog ==\r
+\r
+= 3.15 =\r
+* Disables password reset on user profile screen and has warning concerning updating profile within Wordpress\r
+* Changes to config screen form for improved usability.\r
+* Made lost your password and register error messages less fugly.\r
+* Updated readme.txt\r
+\r
+= 3.12 =\r
+* Now correctly imports unicode text into user profile fields\r
+* Checked with 2.8x WP, 2.8x WPMU, and 2.9 WP\r
+* Added in line as noted in forum post http://wordpress.org/support/topic/277235?replies=4
\ No newline at end of file