* Added external JavaScript library extJS 2.2 to contrib
authorThomas Hempel <thomas.hempel@typo3.org>
Fri, 8 Aug 2008 08:22:51 +0000 (08:22 +0000)
committerThomas Hempel <thomas.hempel@typo3.org>
Fri, 8 Aug 2008 08:22:51 +0000 (08:22 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@3950 709f56b5-9817-0410-a4d7-c38de5d9e867

742 files changed:
ChangeLog
typo3/contrib/extJS/CHANGES.html [new file with mode: 0755]
typo3/contrib/extJS/INCLUDE_ORDER.txt [new file with mode: 0755]
typo3/contrib/extJS/build/adapter/ext-base-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/adapter/jquery-bridge-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/adapter/prototype-bridge-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/adapter/yui-bridge-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/core/CompositeElement-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/core/DomHelper-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/core/DomQuery-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/core/Element-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/core/EventManager-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/core/Ext-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/core/Fx-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/core/Template-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/core/UpdateManager-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/ArrayReader-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/Connection-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/DataField-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/DataProxy-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/DataReader-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/GroupingStore-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/HttpProxy-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/JsonReader-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/JsonStore-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/MemoryProxy-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/Record-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/ScriptTagProxy-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/SimpleStore-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/SortTypes-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/Store-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/StoreMgr-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/Tree-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/data/XmlReader-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/dd/DDCore-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/dd/DragSource-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/dd/DragTracker-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/dd/DragZone-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/dd/DropTarget-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/dd/DropZone-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/dd/Registry-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/dd/ScrollManager-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/dd/StatusProxy-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/debug-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-af.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-bg.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-ca.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-cs.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-da.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-de.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-el_GR.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-en.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-en_UK.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-es.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-fa.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-fr.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-fr_CA.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-gr.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-he.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-hr.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-hu.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-id.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-it.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-ja.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-ko.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-lt.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-lv.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-mk.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-nl.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-no_NB.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-no_NN.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-pl.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-pt.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-pt_BR.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-ro.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-ru.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-sk.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-sl.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-sr.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-sr_RS.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-sv_SE.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-th.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-tr.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-ukr.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-vn.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-zh_CN.js [new file with mode: 0755]
typo3/contrib/extJS/build/locale/ext-lang-zh_TW.js [new file with mode: 0755]
typo3/contrib/extJS/build/state/CookieProvider-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/state/Provider-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/state/StateManager-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/CSS-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/ClickRepeater-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/Date-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/DelayedTask-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/Format-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/History-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/JSON-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/KeyMap-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/KeyNav-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/MixedCollection-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/Observable-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/TaskMgr-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/TextMetrics-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/util/XTemplate-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Action-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/BoxComponent-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Button-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/ColorPalette-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Component-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/ComponentMgr-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Container-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/CycleButton-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/DataView-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/DatePicker-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Editor-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Layer-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/LoadMask-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/MessageBox-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/PagingToolbar-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Panel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/PanelDD-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/ProgressBar-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Resizable-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Shadow-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Slider-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/SplitBar-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/SplitButton-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/StatusBar-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/TabPanel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Toolbar-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Viewport-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/Window-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/WindowManager-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/Action-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/BasicForm-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/Checkbox-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/CheckboxGroup-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/Combo-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/DateField-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/Field-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/FieldSet-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/Form-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/Hidden-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/HtmlEditor-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/Label-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/NumberField-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/Radio-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/RadioGroup-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/TextArea-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/TextField-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/TimeField-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/TriggerField-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/form/VTypes-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/AbstractSelectionModel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/CellSelectionModel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/CheckboxSelectionModel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/ColumnDD-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/ColumnModel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/ColumnSplitDD-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/EditorGrid-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/GridDD-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/GridEditor-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/GridPanel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/GridView-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/GroupingView-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/PropertyGrid-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/RowNumberer-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/grid/RowSelectionModel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/AbsoluteLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/AccordionLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/AnchorLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/BorderLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/CardLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/ColumnLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/ContainerLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/FitLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/FormLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/layout/TableLayout-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/Adapter-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/BaseItem-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/CheckItem-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/ColorItem-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/ColorMenu-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/DateItem-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/DateMenu-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/Item-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/Menu-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/MenuMgr-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/Separator-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/menu/TextItem-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tips/QuickTip-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tips/QuickTips-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tips/Tip-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tips/ToolTip-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/AsyncTreeNode-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeDragZone-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeDropZone-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeEditor-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeEventModel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeFilter-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeLoader-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeNode-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeNodeUI-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreePanel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeSelectionModel-min.js [new file with mode: 0755]
typo3/contrib/extJS/build/widgets/tree/TreeSorter-min.js [new file with mode: 0755]
typo3/contrib/extJS/ext-all-debug.js [new file with mode: 0755]
typo3/contrib/extJS/ext-all.js [new file with mode: 0755]
typo3/contrib/extJS/ext-core-debug.js [new file with mode: 0755]
typo3/contrib/extJS/ext-core.js [new file with mode: 0755]
typo3/contrib/extJS/ext-prototype-adapter.js [new file with mode: 0755]
typo3/contrib/extJS/license.txt [new file with mode: 0755]
typo3/contrib/extJS/resources/css/README.txt [new file with mode: 0755]
typo3/contrib/extJS/resources/css/borders.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/box.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/button.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/combo.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/core.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/date-picker.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/dd.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/debug.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/dialog.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/editor.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/ext-all.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/form.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/grid.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/layout.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/menu.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/panel.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/progress.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/qtips.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/reset-min.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/reset.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/resizable.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/slider.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/tabs.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/toolbar.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/tree.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/window.css [new file with mode: 0755]
typo3/contrib/extJS/resources/css/xtheme-gray.css [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/box/corners-blue.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/box/corners.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/box/l-blue.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/box/l.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/box/r-blue.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/box/r.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/box/tb-blue.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/box/tb.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/button/btn-arrow.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/button/btn-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/dd/drop-add.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/dd/drop-no.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/dd/drop-yes.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/editor/tb-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/checkbox.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/clear-trigger.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/clear-trigger.psd [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/date-trigger.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/date-trigger.psd [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/error-tip-corners.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/exclamation.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/radio.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/search-trigger.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/search-trigger.psd [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/text-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/trigger-tpl.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/trigger.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/form/trigger.psd [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/gradient-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/arrow-left-white.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/arrow-right-white.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/col-move-bottom.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/col-move-top.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/columns.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/dirty.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/done.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/drop-no.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/drop-yes.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/footer-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid-blue-hd.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid-blue-split.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid-hrow.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid-loading.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid-split.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid-vista-hd.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid3-hd-btn.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid3-hrow-over.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid3-hrow.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid3-special-col-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/grid3-special-col-sel-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/group-by.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/group-expand-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/hd-pop.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/hmenu-asc.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/hmenu-desc.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/hmenu-lock.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/hmenu-lock.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/hmenu-unlock.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/hmenu-unlock.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/invalid_line.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/loading.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/mso-hd.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/nowait.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/page-first-disabled.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/page-first.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/page-last-disabled.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/page-last.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/page-next-disabled.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/page-next.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/page-prev-disabled.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/page-prev.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/pick-button.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/refresh.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/row-check-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/row-expand-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/row-over.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/row-sel.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/sort_asc.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/sort_desc.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/grid/wait.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/collapse.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/expand.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/gradient-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/mini-bottom.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/mini-left.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/mini-right.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/mini-top.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/ns-collapse.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/ns-expand.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/panel-close.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/panel-title-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/panel-title-light-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/stick.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/stuck.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/tab-close-on.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/layout/tab-close.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/menu/checked.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/menu/group-checked.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/menu/item-over.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/menu/menu-parent.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/menu/menu.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/menu/unchecked.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/corners-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/left-right.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/light-hd.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/tool-sprite-tpl.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/tool-sprites.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/tools-sprites-trans.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/top-bottom.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/top-bottom.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/white-corners-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/white-left-right.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/panel/white-top-bottom.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/progress/progress-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/qtip/bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/qtip/close.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/qtip/tip-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/s.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shadow-c.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shadow-c.psd [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shadow-lr.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shadow.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shared/blue-loading.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shared/calendar.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shared/glass-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shared/hd-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shared/large-loading.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shared/left-btn.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shared/loading-balls.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shared/right-btn.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/shared/warning.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/e-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/e-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/ne-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/ne-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/nw-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/nw-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/s-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/s-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/se-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/se-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/square.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/sw-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/sizer/sw-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/slider/slider-bg.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/slider/slider-thumb.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/slider/slider-v-bg.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/slider/slider-v-thumb.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/scroll-left.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/scroll-right.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/scroller-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/tab-btm-inactive-left-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/tab-btm-inactive-right-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/tab-btm-left-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/tab-btm-right-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/tab-close.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/tab-strip-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/tab-strip-bg.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/tab-strip-btm-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tabs/tabs-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/toolbar/bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/toolbar/btn-arrow-light.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/toolbar/btn-arrow.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/toolbar/btn-over-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/toolbar/gray-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/toolbar/tb-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/toolbar/tb-btn-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/arrows.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/drop-add.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/drop-between.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/drop-no.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/drop-over.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/drop-under.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/drop-yes.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-end-minus-nl.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-end-minus.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-end-plus-nl.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-end-plus.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-end.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-line.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-minus-nl.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-minus.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-plus-nl.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow-plus.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/elbow.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/folder-open.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/folder.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/leaf.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/loading.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/tree/s.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/icon-error.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/icon-info.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/icon-question.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/icon-warning.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/left-corners.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/left-corners.psd [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/left-right.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/left-right.psd [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/right-corners.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/right-corners.psd [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/top-bottom.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/default/window/top-bottom.psd [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/button/btn-arrow.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/button/btn-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/gradient-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/corners-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/left-right.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/light-hd.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/tool-sprite-tpl.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/tool-sprites.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/tools-sprites-trans.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/top-bottom.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/top-bottom.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/white-corners-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/white-left-right.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/panel/white-top-bottom.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/qtip/bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/qtip/close.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/qtip/tip-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/s.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/scroll-left.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/scroll-right.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/scroller-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/tab-btm-left-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/tab-btm-right-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/tab-close.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/tab-strip-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/tab-strip-bg.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/tab-strip-btm-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/tabs/tabs-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/toolbar/bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/toolbar/btn-arrow-light.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/toolbar/btn-arrow.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/toolbar/btn-over-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/toolbar/gray-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/toolbar/tb-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/toolbar/tb-btn-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/window/icon-error.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/window/icon-info.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/window/icon-question.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/window/icon-warning.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/window/left-corners.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/window/left-corners.pspimage [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/window/left-right.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/window/right-corners.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/gray/window/top-bottom.png [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/bg-center.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/bg-left.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/bg-right.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/close.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/collapse.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/dlg-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/e-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/expand.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/hd-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/s-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/se-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/basic-dialog/w-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/gradient-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/grid/grid-split.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/grid/grid-vista-hd.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/collapse.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/expand.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/gradient-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/ns-collapse.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/ns-expand.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/panel-close.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/panel-title-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/panel-title-light-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/stick.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/tab-close-on.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/layout/tab-close.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/qtip/bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/qtip/tip-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/s.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/e-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/e-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/ne-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/ne-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/nw-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/nw-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/s-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/s-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/se-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/se-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/sw-handle-dark.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/sizer/sw-handle.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/tabs/tab-btm-inactive-left-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/tabs/tab-btm-inactive-right-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/tabs/tab-btm-left-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/tabs/tab-btm-right-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/tabs/tab-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/toolbar/gray-bg.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/images/vista/toolbar/tb-btn-sprite.gif [new file with mode: 0755]
typo3/contrib/extJS/resources/resources.jsb [new file with mode: 0755]
typo3/contrib/extJS/source/adapter/ext-base.js [new file with mode: 0755]
typo3/contrib/extJS/source/adapter/jquery-bridge.js [new file with mode: 0755]
typo3/contrib/extJS/source/adapter/prototype-bridge.js [new file with mode: 0755]
typo3/contrib/extJS/source/adapter/yui-bridge.js [new file with mode: 0755]
typo3/contrib/extJS/source/core/CompositeElement.js [new file with mode: 0755]
typo3/contrib/extJS/source/core/DomHelper.js [new file with mode: 0755]
typo3/contrib/extJS/source/core/DomQuery.js [new file with mode: 0755]
typo3/contrib/extJS/source/core/Element.js [new file with mode: 0755]
typo3/contrib/extJS/source/core/EventManager.js [new file with mode: 0755]
typo3/contrib/extJS/source/core/Ext.js [new file with mode: 0755]
typo3/contrib/extJS/source/core/Fx.js [new file with mode: 0755]
typo3/contrib/extJS/source/core/Template.js [new file with mode: 0755]
typo3/contrib/extJS/source/core/UpdateManager.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/ArrayReader.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/Connection.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/DataField.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/DataProxy.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/DataReader.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/GroupingStore.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/HttpProxy.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/JsonReader.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/JsonStore.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/MemoryProxy.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/Record.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/ScriptTagProxy.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/SimpleStore.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/SortTypes.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/Store.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/StoreMgr.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/Tree.js [new file with mode: 0755]
typo3/contrib/extJS/source/data/XmlReader.js [new file with mode: 0755]
typo3/contrib/extJS/source/dd/DDCore.js [new file with mode: 0755]
typo3/contrib/extJS/source/dd/DragSource.js [new file with mode: 0755]
typo3/contrib/extJS/source/dd/DragTracker.js [new file with mode: 0755]
typo3/contrib/extJS/source/dd/DragZone.js [new file with mode: 0755]
typo3/contrib/extJS/source/dd/DropTarget.js [new file with mode: 0755]
typo3/contrib/extJS/source/dd/DropZone.js [new file with mode: 0755]
typo3/contrib/extJS/source/dd/Registry.js [new file with mode: 0755]
typo3/contrib/extJS/source/dd/ScrollManager.js [new file with mode: 0755]
typo3/contrib/extJS/source/dd/StatusProxy.js [new file with mode: 0755]
typo3/contrib/extJS/source/debug.js [new file with mode: 0755]
typo3/contrib/extJS/source/ext.jsb [new file with mode: 0755]
typo3/contrib/extJS/source/license.txt [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-af.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-bg.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-ca.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-cs.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-da.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-de.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-el_GR.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-en.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-en_UK.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-es.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-fa.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-fr.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-fr_CA.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-gr.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-he.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-hr.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-hu.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-id.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-it.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-ja.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-ko.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-lt.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-lv.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-mk.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-nl.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-no_NB.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-no_NN.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-pl.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-pt.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-pt_BR.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-ro.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-ru.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-sk.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-sl.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-sr.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-sr_RS.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-sv_SE.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-th.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-tr.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-ukr.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-vn.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-zh_CN.js [new file with mode: 0755]
typo3/contrib/extJS/source/locale/ext-lang-zh_TW.js [new file with mode: 0755]
typo3/contrib/extJS/source/state/CookieProvider.js [new file with mode: 0755]
typo3/contrib/extJS/source/state/Provider.js [new file with mode: 0755]
typo3/contrib/extJS/source/state/StateManager.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/CSS.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/ClickRepeater.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/Date.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/DelayedTask.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/Format.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/History.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/JSON.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/KeyMap.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/KeyNav.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/MixedCollection.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/Observable.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/TaskMgr.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/TextMetrics.js [new file with mode: 0755]
typo3/contrib/extJS/source/util/XTemplate.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Action.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/BoxComponent.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Button.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/ColorPalette.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Component.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/ComponentMgr.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Container.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/CycleButton.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/DataView.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/DatePicker.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Editor.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Layer.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/LoadMask.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/MessageBox.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/PagingToolbar.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Panel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/PanelDD.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/ProgressBar.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Resizable.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Shadow.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Slider.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/SplitBar.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/SplitButton.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/StatusBar.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/TabPanel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Toolbar.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Viewport.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/Window.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/WindowManager.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/Action.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/BasicForm.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/Checkbox.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/CheckboxGroup.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/Combo.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/DateField.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/Field.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/FieldSet.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/Form.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/Hidden.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/HtmlEditor.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/Label.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/NumberField.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/Radio.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/RadioGroup.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/TextArea.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/TextField.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/TimeField.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/TriggerField.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/form/VTypes.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/AbstractSelectionModel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/CellSelectionModel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/CheckboxSelectionModel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/ColumnDD.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/ColumnModel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/ColumnSplitDD.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/EditorGrid.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/GridDD.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/GridEditor.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/GridPanel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/GridView.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/GroupingView.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/PropertyGrid.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/RowNumberer.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/grid/RowSelectionModel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/AbsoluteLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/AccordionLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/AnchorLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/BorderLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/CardLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/ColumnLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/ContainerLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/FitLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/FormLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/layout/TableLayout.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/Adapter.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/BaseItem.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/CheckItem.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/ColorItem.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/ColorMenu.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/DateItem.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/DateMenu.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/Item.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/Menu.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/MenuMgr.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/Separator.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/menu/TextItem.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tips/QuickTip.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tips/QuickTips.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tips/Tip.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tips/ToolTip.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/AsyncTreeNode.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeDragZone.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeDropZone.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeEditor.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeEventModel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeFilter.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeLoader.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeNode.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeNodeUI.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreePanel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeSelectionModel.js [new file with mode: 0755]
typo3/contrib/extJS/source/widgets/tree/TreeSorter.js [new file with mode: 0755]

index afde12c..153f4af 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-08-08     Thomas Hempel  <thomas@typo3.org>
+
+       * Added external JavaScript library extJS 2.2 to contrib
+
 2008-08-07  Oliver Hader  <oliver@typo3.org>
 
        * Fixed bug: #1897: Basic Configuration uses different scheme to write im_path to localconf.php
diff --git a/typo3/contrib/extJS/CHANGES.html b/typo3/contrib/extJS/CHANGES.html
new file mode 100755 (executable)
index 0000000..c5b5c87
--- /dev/null
@@ -0,0 +1,363 @@
+<html>
+<head>
+       <title>Ext Release Notes for 2.2.0</title>
+       <style>
+               * {
+                       font-family: 'helvetica', tahoma, verdana, sans-serif;
+                       font-size: 12px;
+               }
+               body { padding: 20px; }
+               h1 { font-size: 18px; }
+               h2 { font-size: 16px; }
+               h3 { font-size: 14px; }
+               li { padding: 2px 0; }
+       </style>
+</head>
+
+<body>
+
+<h1>Release Notes for Ext 2.2.0</h1>
+
+<p>
+       Release Date: August 4, 2008<br/>
+       Current Version: 2.2.0 (rev 2547) <br/>
+       Previous Version: 2.1.0 (rev 2042)
+</p>
+
+<h2>Overview</h2>
+<ul>
+       <li>Full Firefox 3.0 support</li>
+       <li>Added Ext.History component and sample</li>
+       <li>Completely refactored Checkbox and Radio controls</li>
+       <li>Added CheckboxGroup and RadioGroup components and sample</li>
+       <li>Added MultiSelect and ItemSelector extensions and sample</li>
+       <li>Added FileUploadField extension and sample</li>
+       <li>Added XMLTreeLoader extension and sample</li>
+       <li>Added several new Drag-and-Drop samples</li>
+       <li>Added GMapPanel extension and sample</li>
+       <li>Grid performance improvements</li>
+       <li>Many general improvements and bug fixes</li>
+       <li>Extensive documentation improvements</li>
+       <li>Various locale file updates</li>
+</ul>
+
+<h2>Change Log</h2>
+<ul>
+       <li><strong>Adapters</strong></li>
+       <ul>
+               <li>Ext Base</li>
+               <ul>
+                       <li>Added UTF-8 to defaultPostHeader to support international char sets properly</li>
+               </ul>
+       </ul>
+
+       <li><strong>Ext.core</strong></li>
+       <ul>
+               <li>Ext</li>
+               <ul>
+                       <li>New properties for isGecko2 and isGecko3</li>
+                       <li>Updated useShims property to be Gecko2-only on Mac</li>
+                       <li>Fix for isArray and array check fix in Ext.each</li>
+               </ul>
+               <li>Ext.Element</li>
+               <ul>
+                       <li>Event registration improvements</li>
+                       <li>Updated Gecko/Mac overflow auto fix to be scoped to Gecko2 only</li>
+                       <li>Shim border fix for IE8</li>
+               </ul>
+               <li>Ext.EventManager</li>
+               <ul>
+                       <li>Event handler registration logic refactored to fix DOM leak issues</li>
+               </ul>
+               <li>Ext.Updater</li>
+               <ul>
+                       <li>Now extends Ext.util.Observable</li>
+                       <li>New overrideable getDefaultRenderer method</li>
+                       <li>Fix in update method to preserve passed in config options correctly</li>
+               </ul>
+       </ul>
+
+       <li><strong>Ext.data</strong></li>
+       <ul>
+               <li>Ext.data.Connection</li>
+               <ul>
+                       <li>New disableCachingParam config</li>
+               </ul>
+               <li>Ext.data.Record</li>
+               <ul>
+                       <li>Fixed type coercion bug in isModified</li>
+               </ul>
+               <li>Ext.data.Tree</li>
+               <ul>
+                       <li>New Node.isExpandable method</li>
+               </ul>
+       </ul>
+
+       <li><strong>Ext.util</strong></li>
+       <ul>
+               <li>Ext.util.ClickRepeater</li>
+               <ul>
+                       <li>Fixed scope issue when unregistering interal event handlers</li>
+               </ul>
+               <li>Ext.util.Date</li>
+               <ul>
+                       <li>Various date format fixes</li>
+               </ul>
+               <li>Ext.util.Format</li>
+               <ul>
+                       <li>Fix in htmlDecode to handle ampersands correctly</li>
+                       <li>New nl2br (newline to BR) function</li>
+               </ul>
+               <li>Ext.util.History</li>
+               <ul>
+                       <li>New component</li>
+               </ul>
+               <li>Ext.util.KeyMap</li>
+               <ul>
+                       <li>Added stopEvent as a valid config option for the addBinding method</li>
+               </ul>
+       </ul>
+
+       <li><strong>Ext.widgets</strong></li>
+       <ul>
+               <li>Ext.Button</li>
+               <ul>
+                       <li>Fixes to minimize mouse handlers created on buttons</li>
+               </ul>
+               <li>Ext.Component</li>
+               <ul>
+                       <li>New initPlugin method for more flexible plugin initialization</li>
+                       <li>Fix to ignore state events if stateful=false</li>
+               </ul>
+               <li>Ext.Container</li>
+               <ul>
+                       <li>Updated onDestroy to call destroy on the container's layout if available</li>
+                       <li>Fixed default scope passed to the cascaded function in Container.cascade</li>
+               </ul>
+               <li>Ext.DatePicker</li>
+               <ul>
+                       <li>Marked constrainToViewport config as deprecated (it's not currently used)</li>
+                       <li>Changed disabledDaysText and disabledDatesText to default to "Disabled" instead of ""</li>
+                       <li>New configs for minDate, maxDate, disabledDays, disabledDaysRE and disabledDates</li>
+                       <li>New methods setDisabledDates, setDisabledDays, setMinDate and setMaxDate</li>
+                       <li>New showToday config to show/hide the Today button and footer</li>
+                       <li>Fixed selectToday to check for disabled Today button before changing the date</li>
+               </ul>
+               <li>Ext.DataView</li>
+               <ul>
+                       <li>New mouseenter and mouseleave events</li>
+                       <li>New trackOver config to enable mouse events</li>
+                       <li>Fix in getNodes to calculate the end node correctly</li>
+               </ul>
+               <li>Ext.Editor</li>
+               <ul>
+                       <li>New canceledit event</li>
+                       <li>Fixed issue with TriggerField editors not blurring correctly on key navigation</li>
+                       <li>Fixed editor wrapper element scrollbar issue in FF2/Opera</li>
+               </ul>
+               <li>Ext.PagingToolbar</li>
+               <ul>
+                       <li>Added beforechange and change events and changePage method</li>
+                       <li>Fixed handling of 0 entered into the page field</li>
+               </ul>
+               <li>Ext.Panel</li>
+               <ul>
+                       <li>Change to set ownerCt on buttons added to panels</li>
+                       <li>Fix for FF2/Mac scroll bar issue on contained items</li>
+                       <li>Fix panel disabling support in IE</li>
+                       <li>Fixed in destruction order of internal components</li>
+               </ul>
+               <li>Ext.ProgressBar</li>
+               <ul>
+                       <li>Fix to only attempt progress updates if rendered</li>
+                       <li>Added support for the text config in the wait method</li>
+                       <li>Fix for preserving the proper progress width in ratio to the value on resize</li>
+               </ul>
+               <li>Ext.QuickTips</li>
+               <ul>
+                       <li>Added autoRender support to fix initial display issues</li>
+               </ul>
+               <li>Ext.Resizable</li>
+               <ul>
+                       <li>Change to render the resize proxy to the document body instead of as a sibling to its element so it doesn't interfere with Component position calculations</li>
+               </ul>
+               <li>Ext.Slider</li>
+               <ul>
+                       <li>New dragging property and changecomplete event</li>
+                       <li>Fixes for slider with minValue != 0</li>
+                       <li>Fix for preserving the proper thumb position in ratio to the value on resize</li>
+               </ul>
+               <li>Ext.StatusBar</li>
+               <ul>
+                       <li>Fix for setting the proper default icon on clear</li>
+               </ul>
+               <li>Ext.TabPanel</li>
+               <ul>
+                       <li>Fix to position the tab strip spacer element correctly for tabPosition bottom</li>
+                       <li>Fix for FF3 to raise the contextmenu event correctly on tab strip right-click</li>
+               </ul>
+               <li>Ext.Tip</li>
+               <ul>
+                       <li>Fixed IE7 repaint bug on initial show</li>
+               </ul>
+               <li>Ext.Toolbar</li>
+               <ul>
+                       <li>Fix in addField to add the fields to the items collection rather than the Toolbar items</li>
+               </ul>
+               <li>Ext.Window</li>
+               <ul>
+                       <li>Added doLayout call on resize</li>
+               </ul>
+               <li>Ext.dd.DDCore</li>
+               <ul>
+                       <li>Fixed null error in isValidHandleChild</li>
+               </ul>
+               <li>Ext.dd.ScrollManager</li>
+               <ul>
+                       <li>Fix to enable overriding scroll frequency in the scroll config object</li>
+               </ul>
+               <li>Ext.dd.StatusProxy</li>
+               <ul>
+                       <li>Fix to remove float style from ghost elements when adding them to the proxy to prevent proxy box collapse</li>
+               </ul>
+               <li>Ext.form.Checkbox</li>
+               <ul>
+                       <li>Completely refactored to support new visual styles</li>
+               </ul>
+               <li>Ext.form.CheckboxGroup</li>
+               <ul>
+                       <li>New component</li>
+               </ul>
+               <li>Ext.form.DateField</li>
+               <ul>
+                       <li>New showToday config to show/hide the Today button and footer on the associated DatePicker</li>
+                       <li>New methods setDisabledDates, setDisabledDays, setMinValue and setMaxValue</li>
+               </ul>
+               <li>Ext.form.Field</li>
+               <ul>
+                       <li>Fix to prevent initializing the data value to emptyText</li>
+                       <li>Fix to preserve the originalValue on init</li>
+                       <li>Fix for odd FF/Win issue when changing OS window focus that disabled editing</li>
+                       <li>Change to default error messages to basic tooltips if no field container el is available</li>
+               </ul>
+               <li>Ext.form.FormPanel</li>
+               <ul>
+                       <li>Change to make the form tag into the panel's body element</li>
+               </ul>
+               <li>Ext.form.HtmlEditor</li>
+               <ul>
+                       <li>Scoped disabling the font, link, lists and source edit buttons to Safari2 only (Safari3 is OK)</li>
+                       <li>Various fixes to improve initialization</li>
+                       <li>Fix to prevent multiple event handlers from being setup (resolved double line break issue in IE)</li>
+                       <li>Fixed issue of IE allowing toolbar commands to apply to content outside the editor body</li>
+               </ul>
+               <li>Ext.form.Label</li>
+               <ul>
+                       <li>Added setText method</li>
+               </ul>
+               <li>Ext.form.TextArea</li>
+               <ul>
+                       <li>Fixed onKeyUp not calling its superclass method</li>
+               </ul>
+               <li>Ext.form.TimeField</li>
+               <ul>
+                       <li>Fix for broken field on DST boundary dates</li>
+               </ul>
+               <li>Ext.form.TriggerField</li>
+               <ul>
+                       <li>Fix for trigger icon alignment to field in IE</li>
+                       <li>Fixed missing scope to properly remove the document mousedown handler after mimicing blur</li>
+               </ul>
+               <li>Ext.form.Radio</li>
+               <ul>
+                       <li>Completely refactored to support new visual styles</li>
+               </ul>
+               <li>Ext.form.RadioGroup</li>
+               <ul>
+                       <li>New component</li>
+               </ul>
+               <li>Ext.form.TextField</li>
+               <ul>
+                       <li>Fix for selectOnFocus support</li>
+                       <li>Fixed broken key filtering when using maskRe in non-FF browsers</li>
+               </ul>
+               <li>Ext.grid.ColumnModel</li>
+               <ul>
+                       <li>Fixed configchange event declaration name typo</li>
+               </ul>
+               <li>Ext.grid.EditorGrid</li>
+               <ul>
+                       <li>Fix to align editors correctly with mixed-height row content</li>
+                       <li>Fixed bug in preEditValue that prevented html decoding when needed</li>
+                       <li>Added onDestroy method to clean up column model's editors on destroy</li>
+               </ul>
+               <li>Ext.grid.GridPanel</li>
+               <ul>
+                       <li>New deferRowRender config</li>
+               </ul>
+               <li>Ext.grid.GridView</li>
+               <ul>
+                       <li>New configs for controlling cell and row selector class and depth</li>
+                       <li>Fixes to sync the invisible focus element on row add/remove actions</li>
+                       <li>Moved some rendering logic to afterRender (improved performance)</li>
+               </ul>
+               <li>Ext.layout.BorderLayout</li>
+               <ul>
+                       <li>Added destroy method to clean up splitbars created by layout</li>
+               </ul>
+               <li>Ext.layout.ColumnLayout</li>
+               <ul>
+                       <li>Target size calculation fix for IE</li>
+               </ul>
+               <li>Ext.layoutContainerLayout</li>
+               <ul>
+                       <li>Added support for subclass destroy functions</li>
+               </ul>
+               <li>Ext.menu.Item</li>
+               <ul>
+                       <li>Improved tolerance for mousing from a menu to its submenu without dismissing the submenu too quickly while passing over other menu items</li>
+               </ul>
+               <li>Ext.menu.Menu</li>
+               <ul>
+                       <li>New ignoreParentClicks config to ignore clicks on menu items with child menus</li>
+               </ul>
+               <li>Ext.menu.TextItem</li>
+               <ul>
+                       <li>Updated constructor to support config object in addition to just text</li>
+               </ul>
+               <li>Ext.tree.TreeDragZone</li>
+               <ul>
+                       <li>Fix to honor the hlDrop config on invalid drop repair</li>
+               </ul>
+               <li>Ext.tree.TreeDropZone</li>
+               <ul>
+                       <li>Fixed highlight calls to check enableFx first to avoid possible errors</li>
+               </ul>
+               <li>Ext.tree.TreeEditor</li>
+               <ul>
+                       <li>Fixed editor alignment to node when autoScroll is on and the node is outside the scroll area</li>
+               </ul>
+               <li>Ext.tree.TreeLoader</li>
+               <ul>
+                       <li>Fixed type coercion bug in isLoading</li>
+                       <li>Updated createNode to support new TreePanel.nodeTypes</li>
+               </ul>
+               <li>Ext.tree.TreeNode</li>
+               <ul>
+                       <li>New getLoader method</li>
+                       <li>Fixed null error in destroy when no child nodes present</li>
+               </ul>
+               <li>Ext.tree.TreeNodeUI</li>
+               <ul>
+                       <li>Refactored internal support for Ext.data.Node.isExpandable</li>
+               </ul>
+               <li>Ext.tree.TreePanel</li>
+               <ul>
+                       <li>Ability to specify dataUrl or a TreeLoader config in addition to a TreeLoader instance</li>
+                       <li>New nodeTypes support for more flexible node declaration and creation</li>
+               </ul>
+       </ul>
+
+</ul>
+</body>
+</html>
\ No newline at end of file
diff --git a/typo3/contrib/extJS/INCLUDE_ORDER.txt b/typo3/contrib/extJS/INCLUDE_ORDER.txt
new file mode 100755 (executable)
index 0000000..1ca61f6
--- /dev/null
@@ -0,0 +1,35 @@
+All adapter related files below are located in \r
+/adapters/<lib name>/ of this zip file.\r
+\r
+Your include order should be:\r
+\r
+Ext Stand-alone\r
+-------------------------------------------------------------------\r
+ext-base.js\r
+ext-all.js (or your choice of files)\r
+\r
+\r
+Yahoo! UI (.12+)\r
+-------------------------------------------------------------------\r
+yui-utilities.js\r
+ext-yui-adapter.js\r
+ext-all.js (or your choice of files)\r
+\r
+\r
+jQuery (1.1+)\r
+-------------------------------------------------------------------\r
+jquery.js\r
+ext-jquery-adapter.js\r
+ext-all.js (or your choice of files)\r
+\r
+\r
+Prototype (1.5+) / Scriptaculous (1.7+)\r
+-------------------------------------------------------------------\r
+prototype.js\r
+scriptaculous.js?load=effects  (or whatever you want to load)\r
+ext-prototype-adapter.js\r
+ext-all.js (or your choice of files)\r
+\r
+\r
+\r
+See the examples folders for more examples.
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/adapter/ext-base-min.js b/typo3/contrib/extJS/build/adapter/ext-base-min.js
new file mode 100755 (executable)
index 0000000..69b00dd
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+(function(){var B;Ext.lib.Dom={getViewWidth:function(E){return E?this.getDocumentWidth():this.getViewportWidth()},getViewHeight:function(E){return E?this.getDocumentHeight():this.getViewportHeight()},getDocumentHeight:function(){var E=(document.compatMode!="CSS1Compat")?document.body.scrollHeight:document.documentElement.scrollHeight;return Math.max(E,this.getViewportHeight())},getDocumentWidth:function(){var E=(document.compatMode!="CSS1Compat")?document.body.scrollWidth:document.documentElement.scrollWidth;return Math.max(E,this.getViewportWidth())},getViewportHeight:function(){if(Ext.isIE){return Ext.isStrict?document.documentElement.clientHeight:document.body.clientHeight}else{return self.innerHeight}},getViewportWidth:function(){if(Ext.isIE){return Ext.isStrict?document.documentElement.clientWidth:document.body.clientWidth}else{return self.innerWidth}},isAncestor:function(F,G){F=Ext.getDom(F);G=Ext.getDom(G);if(!F||!G){return false}if(F.contains&&!Ext.isSafari){return F.contains(G)}else{if(F.compareDocumentPosition){return !!(F.compareDocumentPosition(G)&16)}else{var E=G.parentNode;while(E){if(E==F){return true}else{if(!E.tagName||E.tagName.toUpperCase()=="HTML"){return false}}E=E.parentNode}return false}}},getRegion:function(E){return Ext.lib.Region.getRegion(E)},getY:function(E){return this.getXY(E)[1]},getX:function(E){return this.getXY(E)[0]},getXY:function(G){var F,K,M,N,J=(document.body||document.documentElement);G=Ext.getDom(G);if(G==J){return[0,0]}if(G.getBoundingClientRect){M=G.getBoundingClientRect();N=C(document).getScroll();return[M.left+N.left,M.top+N.top]}var O=0,L=0;F=G;var E=C(G).getStyle("position")=="absolute";while(F){O+=F.offsetLeft;L+=F.offsetTop;if(!E&&C(F).getStyle("position")=="absolute"){E=true}if(Ext.isGecko){K=C(F);var P=parseInt(K.getStyle("borderTopWidth"),10)||0;var H=parseInt(K.getStyle("borderLeftWidth"),10)||0;O+=H;L+=P;if(F!=G&&K.getStyle("overflow")!="visible"){O+=H;L+=P}}F=F.offsetParent}if(Ext.isSafari&&E){O-=J.offsetLeft;L-=J.offsetTop}if(Ext.isGecko&&!E){var I=C(J);O+=parseInt(I.getStyle("borderLeftWidth"),10)||0;L+=parseInt(I.getStyle("borderTopWidth"),10)||0}F=G.parentNode;while(F&&F!=J){if(!Ext.isOpera||(F.tagName!="TR"&&C(F).getStyle("display")!="inline")){O-=F.scrollLeft;L-=F.scrollTop}F=F.parentNode}return[O,L]},setXY:function(E,F){E=Ext.fly(E,"_setXY");E.position();var G=E.translatePoints(F);if(F[0]!==false){E.dom.style.left=G.left+"px"}if(F[1]!==false){E.dom.style.top=G.top+"px"}},setX:function(F,E){this.setXY(F,[E,false])},setY:function(E,F){this.setXY(E,[false,F])}};Ext.lib.Event=function(){var F=false;var G=[];var K=[];var I=0;var H=[];var E=0;var J=null;return{POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,_interval:null,startInterval:function(){if(!this._interval){var L=this;var M=function(){L._tryPreloadAttach()};this._interval=setInterval(M,this.POLL_INTERVAL)}},onAvailable:function(N,L,O,M){H.push({id:N,fn:L,obj:O,override:M,checkReady:false});I=this.POLL_RETRYS;this.startInterval()},addListener:function(Q,M,P){Q=Ext.getDom(Q);if(!Q||!P){return false}if("unload"==M){K[K.length]=[Q,M,P];return true}var O=function(R){return typeof Ext!="undefined"?P(Ext.lib.Event.getEvent(R)):false};var L=[Q,M,P,O];var N=G.length;G[N]=L;this.doAdd(Q,M,O,false);return true},removeListener:function(S,O,R){var Q,N;S=Ext.getDom(S);if(!R){return this.purgeElement(S,false,O)}if("unload"==O){for(Q=0,N=K.length;Q<N;Q++){var M=K[Q];if(M&&M[0]==S&&M[1]==O&&M[2]==R){K.splice(Q,1);return true}}return false}var L=null;var P=arguments[3];if("undefined"==typeof P){P=this._getCacheIndex(S,O,R)}if(P>=0){L=G[P]}if(!S||!L){return false}this.doRemove(S,O,L[this.WFN],false);delete G[P][this.WFN];delete G[P][this.FN];G.splice(P,1);return true},getTarget:function(N,M){N=N.browserEvent||N;var L=N.target||N.srcElement;return this.resolveTextNode(L)},resolveTextNode:function(L){if(Ext.isSafari&&L&&3==L.nodeType){return L.parentNode}else{return L}},getPageX:function(M){M=M.browserEvent||M;var L=M.pageX;if(!L&&0!==L){L=M.clientX||0;if(Ext.isIE){L+=this.getScroll()[1]}}return L},getPageY:function(L){L=L.browserEvent||L;var M=L.pageY;if(!M&&0!==M){M=L.clientY||0;if(Ext.isIE){M+=this.getScroll()[0]}}return M},getXY:function(L){L=L.browserEvent||L;return[this.getPageX(L),this.getPageY(L)]},getRelatedTarget:function(M){M=M.browserEvent||M;var L=M.relatedTarget;if(!L){if(M.type=="mouseout"){L=M.toElement}else{if(M.type=="mouseover"){L=M.fromElement}}}return this.resolveTextNode(L)},getTime:function(N){N=N.browserEvent||N;if(!N.time){var M=new Date().getTime();try{N.time=M}catch(L){this.lastError=L;return M}}return N.time},stopEvent:function(L){this.stopPropagation(L);this.preventDefault(L)},stopPropagation:function(L){L=L.browserEvent||L;if(L.stopPropagation){L.stopPropagation()}else{L.cancelBubble=true}},preventDefault:function(L){L=L.browserEvent||L;if(L.preventDefault){L.preventDefault()}else{L.returnValue=false}},getEvent:function(M){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break}N=N.caller}}return L},getCharCode:function(L){L=L.browserEvent||L;return L.charCode||L.keyCode||0},_getCacheIndex:function(Q,N,P){for(var O=0,M=G.length;O<M;++O){var L=G[O];if(L&&L[this.FN]==P&&L[this.EL]==Q&&L[this.TYPE]==N){return O}}return -1},elCache:{},getEl:function(L){return document.getElementById(L)},clearCache:function(){},_load:function(M){F=true;var L=Ext.lib.Event;if(Ext.isIE){L.doRemove(window,"load",L._load)}},_tryPreloadAttach:function(){if(this.locked){return false}this.locked=true;var R=!F;if(!R){R=(I>0)}var Q=[];for(var M=0,L=H.length;M<L;++M){var P=H[M];if(P){var O=this.getEl(P.id);if(O){if(!P.checkReady||F||O.nextSibling||(document&&document.body)){var N=O;if(P.override){if(P.override===true){N=P.obj}else{N=P.override}}P.fn.call(N,P.obj);H[M]=null}}else{Q.push(P)}}}I=(Q.length===0)?0:I-1;if(R){this.startInterval()}else{clearInterval(this._interval);this._interval=null}this.locked=false;return true},purgeElement:function(P,Q,N){var R=this.getListeners(P,N);if(R){for(var O=0,L=R.length;O<L;++O){var M=R[O];this.removeListener(P,M.type,M.fn)}}if(Q&&P&&P.childNodes){for(O=0,L=P.childNodes.length;O<L;++O){this.purgeElement(P.childNodes[O],Q,N)}}},getListeners:function(M,R){var P=[],L;if(!R){L=[G,K]}else{if(R=="unload"){L=[K]}else{L=[G]}}for(var O=0;O<L.length;++O){var T=L[O];if(T&&T.length>0){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===M&&(!R||R===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.ADJ_SCOPE],index:Q})}}}}return(P.length)?P:null},_unload:function(S){var R=Ext.lib.Event,P,O,M,L,N;for(P=0,L=K.length;P<L;++P){M=K[P];if(M){var Q=window;if(M[R.ADJ_SCOPE]){if(M[R.ADJ_SCOPE]===true){Q=M[R.OBJ]}else{Q=M[R.ADJ_SCOPE]}}M[R.FN].call(Q,R.getEvent(S),M[R.OBJ]);K[P]=null;M=null;Q=null}}K=null;if(G&&G.length>0){O=G.length;while(O){N=O-1;M=G[N];if(M){R.removeListener(M[R.EL],M[R.TYPE],M[R.FN],N)}O=O-1}M=null;R.clearCache()}R.doRemove(window,"unload",R._unload)},getScroll:function(){var L=document.documentElement,M=document.body;if(L&&(L.scrollTop||L.scrollLeft)){return[L.scrollTop,L.scrollLeft]}else{if(M){return[M.scrollTop,M.scrollLeft]}else{return[0,0]}}},doAdd:function(){if(window.addEventListener){return function(O,M,N,L){O.addEventListener(M,N,(L))}}else{if(window.attachEvent){return function(O,M,N,L){O.attachEvent("on"+M,N)}}else{return function(){}}}}(),doRemove:function(){if(window.removeEventListener){return function(O,M,N,L){O.removeEventListener(M,N,(L))}}else{if(window.detachEvent){return function(N,L,M){N.detachEvent("on"+L,M)}}else{return function(){}}}}()}}();var D=Ext.lib.Event;D.on=D.addListener;D.un=D.removeListener;if(document&&document.body){D._load()}else{D.doAdd(window,"load",D._load)}D.doAdd(window,"unload",D._unload);D._tryPreloadAttach();Ext.lib.Ajax={request:function(K,I,E,J,F){if(F){var G=F.headers;if(G){for(var H in G){if(G.hasOwnProperty(H)){this.initHeader(H,G[H],false)}}}if(F.xmlData){if(!G||!G["Content-Type"]){this.initHeader("Content-Type","text/xml",false)}K=(K?K:(F.method?F.method:"POST"));J=F.xmlData}else{if(F.jsonData){if(!G||!G["Content-Type"]){this.initHeader("Content-Type","application/json",false)}K=(K?K:(F.method?F.method:"POST"));J=typeof F.jsonData=="object"?Ext.encode(F.jsonData):F.jsonData}}}return this.asyncRequest(K,I,E,J)},serializeForm:function(F){if(typeof F=="string"){F=(document.getElementById(F)||document.forms[F])}var G,E,H,J,K="",M=false;for(var L=0;L<F.elements.length;L++){G=F.elements[L];J=F.elements[L].disabled;E=F.elements[L].name;H=F.elements[L].value;if(!J&&E){switch(G.type){case"select-one":case"select-multiple":for(var I=0;I<G.options.length;I++){if(G.options[I].selected){if(Ext.isIE){K+=encodeURIComponent(E)+"="+encodeURIComponent(G.options[I].attributes["value"].specified?G.options[I].value:G.options[I].text)+"&"}else{K+=encodeURIComponent(E)+"="+encodeURIComponent(G.options[I].hasAttribute("value")?G.options[I].value:G.options[I].text)+"&"}}}break;case"radio":case"checkbox":if(G.checked){K+=encodeURIComponent(E)+"="+encodeURIComponent(H)+"&"}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(M==false){K+=encodeURIComponent(E)+"="+encodeURIComponent(H)+"&";M=true}break;default:K+=encodeURIComponent(E)+"="+encodeURIComponent(H)+"&";break}}}K=K.substr(0,K.length-1);return K},headers:{},hasHeaders:false,useDefaultHeader:true,defaultPostHeader:"application/x-www-form-urlencoded; charset=UTF-8",useDefaultXhrHeader:true,defaultXhrHeader:"XMLHttpRequest",hasDefaultHeaders:true,defaultHeaders:{},poll:{},timeout:{},pollInterval:50,transactionId:0,setProgId:function(E){this.activeX.unshift(E)},setDefaultPostHeader:function(E){this.useDefaultHeader=E},setDefaultXhrHeader:function(E){this.useDefaultXhrHeader=E},setPollingInterval:function(E){if(typeof E=="number"&&isFinite(E)){this.pollInterval=E}},createXhrObject:function(I){var H,E;try{E=new XMLHttpRequest();H={conn:E,tId:I}}catch(G){for(var F=0;F<this.activeX.length;++F){try{E=new ActiveXObject(this.activeX[F]);H={conn:E,tId:I};break}catch(G){}}}finally{return H}},getConnectionObject:function(){var F;var G=this.transactionId;try{F=this.createXhrObject(G);if(F){this.transactionId++}}catch(E){}finally{return F}},asyncRequest:function(I,F,H,E){var G=this.getConnectionObject();if(!G){return null}else{G.conn.open(I,F,true);if(this.useDefaultXhrHeader){if(!this.defaultHeaders["X-Requested-With"]){this.initHeader("X-Requested-With",this.defaultXhrHeader,true)}}if(E&&this.useDefaultHeader&&(!this.hasHeaders||!this.headers["Content-Type"])){this.initHeader("Content-Type",this.defaultPostHeader)}if(this.hasDefaultHeaders||this.hasHeaders){this.setHeader(G)}this.handleReadyState(G,H);G.conn.send(E||null);return G}},handleReadyState:function(F,G){var E=this;if(G&&G.timeout){this.timeout[F.tId]=window.setTimeout(function(){E.abort(F,G,true)},G.timeout)}this.poll[F.tId]=window.setInterval(function(){if(F.conn&&F.conn.readyState==4){window.clearInterval(E.poll[F.tId]);delete E.poll[F.tId];if(G&&G.timeout){window.clearTimeout(E.timeout[F.tId]);delete E.timeout[F.tId]}E.handleTransactionResponse(F,G)}},this.pollInterval)},handleTransactionResponse:function(I,J,E){if(!J){this.releaseObject(I);return }var G,F;try{if(I.conn.status!==undefined&&I.conn.status!=0){G=I.conn.status}else{G=13030}}catch(H){G=13030}if(G>=200&&G<300){F=this.createResponseObject(I,J.argument);if(J.success){if(!J.scope){J.success(F)}else{J.success.apply(J.scope,[F])}}}else{switch(G){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:F=this.createExceptionObject(I.tId,J.argument,(E?E:false));if(J.failure){if(!J.scope){J.failure(F)}else{J.failure.apply(J.scope,[F])}}break;default:F=this.createResponseObject(I,J.argument);if(J.failure){if(!J.scope){J.failure(F)}else{J.failure.apply(J.scope,[F])}}}}this.releaseObject(I);F=null},createResponseObject:function(E,K){var H={};var M={};try{var G=E.conn.getAllResponseHeaders();var J=G.split("\n");for(var I=0;I<J.length;I++){var F=J[I].indexOf(":");if(F!=-1){M[J[I].substring(0,F)]=J[I].substring(F+2)}}}catch(L){}H.tId=E.tId;H.status=E.conn.status;H.statusText=E.conn.statusText;H.getResponseHeader=M;H.getAllResponseHeaders=G;H.responseText=E.conn.responseText;H.responseXML=E.conn.responseXML;if(typeof K!==undefined){H.argument=K}return H},createExceptionObject:function(L,H,E){var J=0;var K="communication failure";var G=-1;var F="transaction aborted";var I={};I.tId=L;if(E){I.status=G;I.statusText=F}else{I.status=J;I.statusText=K}if(H){I.argument=H}return I},initHeader:function(E,H,G){var F=(G)?this.defaultHeaders:this.headers;if(F[E]===undefined){F[E]=H}else{F[E]=H+","+F[E]}if(G){this.hasDefaultHeaders=true}else{this.hasHeaders=true}},setHeader:function(E){if(this.hasDefaultHeaders){for(var F in this.defaultHeaders){if(this.defaultHeaders.hasOwnProperty(F)){E.conn.setRequestHeader(F,this.defaultHeaders[F])}}}if(this.hasHeaders){for(var F in this.headers){if(this.headers.hasOwnProperty(F)){E.conn.setRequestHeader(F,this.headers[F])}}this.headers={};this.hasHeaders=false}},resetDefaultHeaders:function(){delete this.defaultHeaders;this.defaultHeaders={};this.hasDefaultHeaders=false},abort:function(F,G,E){if(this.isCallInProgress(F)){F.conn.abort();window.clearInterval(this.poll[F.tId]);delete this.poll[F.tId];if(E){delete this.timeout[F.tId]}this.handleTransactionResponse(F,G,true);return true}else{return false}},isCallInProgress:function(E){if(E.conn){return E.conn.readyState!=4&&E.conn.readyState!=0}else{return false}},releaseObject:function(E){E.conn=null;E=null},activeX:["MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"]};Ext.lib.Region=function(G,H,E,F){this.top=G;this[1]=G;this.right=H;this.bottom=E;this.left=F;this[0]=F};Ext.lib.Region.prototype={contains:function(E){return(E.left>=this.left&&E.right<=this.right&&E.top>=this.top&&E.bottom<=this.bottom)},getArea:function(){return((this.bottom-this.top)*(this.right-this.left))},intersect:function(I){var G=Math.max(this.top,I.top);var H=Math.min(this.right,I.right);var E=Math.min(this.bottom,I.bottom);var F=Math.max(this.left,I.left);if(E>=G&&H>=F){return new Ext.lib.Region(G,H,E,F)}else{return null}},union:function(I){var G=Math.min(this.top,I.top);var H=Math.max(this.right,I.right);var E=Math.max(this.bottom,I.bottom);var F=Math.min(this.left,I.left);return new Ext.lib.Region(G,H,E,F)},constrainTo:function(E){this.top=this.top.constrain(E.top,E.bottom);this.bottom=this.bottom.constrain(E.top,E.bottom);this.left=this.left.constrain(E.left,E.right);this.right=this.right.constrain(E.left,E.right);return this},adjust:function(G,F,E,H){this.top+=G;this.left+=F;this.right+=H;this.bottom+=E;return this}};Ext.lib.Region.getRegion=function(H){var J=Ext.lib.Dom.getXY(H);var G=J[1];var I=J[0]+H.offsetWidth;var E=J[1]+H.offsetHeight;var F=J[0];return new Ext.lib.Region(G,I,E,F)};Ext.lib.Point=function(E,F){if(Ext.isArray(E)){F=E[1];E=E[0]}this.x=this.right=this.left=this[0]=E;this.y=this.top=this.bottom=this[1]=F};Ext.lib.Point.prototype=new Ext.lib.Region();Ext.lib.Anim={scroll:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.Scroll)},motion:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.Motion)},color:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.ColorAnim)},run:function(I,F,K,L,E,H,G){G=G||Ext.lib.AnimBase;if(typeof L=="string"){L=Ext.lib.Easing[L]}var J=new G(I,F,K,L);J.animateX(function(){Ext.callback(E,H)});return J}};function C(E){if(!B){B=new Ext.Element.Flyweight()}B.dom=E;return B}if(Ext.isIE){function A(){var E=Function.prototype;delete E.createSequence;delete E.defer;delete E.createDelegate;delete E.createCallback;delete E.createInterceptor;window.detachEvent("onunload",A)}window.attachEvent("onunload",A)}Ext.lib.AnimBase=function(F,E,G,H){if(F){this.init(F,E,G,H)}};Ext.lib.AnimBase.prototype={toString:function(){var E=this.getEl();var F=E.id||E.tagName;return("Anim "+F)},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(E,G,F){return this.method(this.currentFrame,G,F-G,this.totalFrames)},setAttribute:function(E,G,F){if(this.patterns.noNegatives.test(E)){G=(G>0)?G:0}Ext.fly(this.getEl(),"_anim").setStyle(E,G+F)},getAttribute:function(E){var G=this.getEl();var I=C(G).getStyle(E);if(I!=="auto"&&!this.patterns.offsetUnit.test(I)){return parseFloat(I)}var F=this.patterns.offsetAttribute.exec(E)||[];var J=!!(F[3]);var H=!!(F[2]);if(H||(C(G).getStyle("position")=="absolute"&&J)){I=G["offset"+F[0].charAt(0).toUpperCase()+F[0].substr(1)]}else{I=0}return I},getDefaultUnit:function(E){if(this.patterns.defaultUnit.test(E)){return"px"}return""},animateX:function(G,E){var F=function(){this.onComplete.removeListener(F);if(typeof G=="function"){G.call(E||this,this)}};this.onComplete.addListener(F,this);this.animate()},setRuntimeAttribute:function(F){var K;var G;var H=this.attributes;this.runtimeAttributes[F]={};var J=function(L){return(typeof L!=="undefined")};if(!J(H[F]["to"])&&!J(H[F]["by"])){return false}K=(J(H[F]["from"]))?H[F]["from"]:this.getAttribute(F);if(J(H[F]["to"])){G=H[F]["to"]}else{if(J(H[F]["by"])){if(K.constructor==Array){G=[];for(var I=0,E=K.length;I<E;++I){G[I]=K[I]+H[F]["by"][I]}}else{G=K+H[F]["by"]}}}this.runtimeAttributes[F].start=K;this.runtimeAttributes[F].end=G;this.runtimeAttributes[F].unit=(J(H[F].unit))?H[F]["unit"]:this.getDefaultUnit(F)},init:function(G,L,K,E){var F=false;var H=null;var J=0;G=Ext.getDom(G);this.attributes=L||{};this.duration=K||1;this.method=E||Ext.lib.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=Ext.lib.AnimMgr.fps;this.getEl=function(){return G};this.isAnimated=function(){return F};this.getStartTime=function(){return H};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false}this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(Ext.lib.AnimMgr.fps*this.duration):this.duration;Ext.lib.AnimMgr.registerElement(this)};this.stop=function(O){if(O){this.currentFrame=this.totalFrames;this._onTween.fire()}Ext.lib.AnimMgr.stop(this)};var N=function(){this.onStart.fire();this.runtimeAttributes={};for(var O in this.attributes){this.setRuntimeAttribute(O)}F=true;J=0;H=new Date()};var M=function(){var Q={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};Q.toString=function(){return("duration: "+Q.duration+", currentFrame: "+Q.currentFrame)};this.onTween.fire(Q);var P=this.runtimeAttributes;for(var O in P){this.setAttribute(O,this.doMethod(O,P[O].start,P[O].end),P[O].unit)}J+=1};var I=function(){var O=(new Date()-H)/1000;var P={duration:O,frames:J,fps:J/O};P.toString=function(){return("duration: "+P.duration+", frames: "+P.frames+", fps: "+P.fps)};F=false;J=0;this.onComplete.fire(P)};this._onStart=new Ext.util.Event(this);this.onStart=new Ext.util.Event(this);this.onTween=new Ext.util.Event(this);this._onTween=new Ext.util.Event(this);this.onComplete=new Ext.util.Event(this);this._onComplete=new Ext.util.Event(this);this._onStart.addListener(N);this._onTween.addListener(M);this._onComplete.addListener(I)}};Ext.lib.AnimMgr=new function(){var G=null;var F=[];var E=0;this.fps=1000;this.delay=1;this.registerElement=function(J){F[F.length]=J;E+=1;J._onStart.fire();this.start()};this.unRegister=function(K,J){K._onComplete.fire();J=J||I(K);if(J!=-1){F.splice(J,1)}E-=1;if(E<=0){this.stop()}};this.start=function(){if(G===null){G=setInterval(this.run,this.delay)}};this.stop=function(L){if(!L){clearInterval(G);for(var K=0,J=F.length;K<J;++K){if(F[0].isAnimated()){this.unRegister(F[0],0)}}F=[];G=null;E=0}else{this.unRegister(L)}};this.run=function(){for(var L=0,J=F.length;L<J;++L){var K=F[L];if(!K||!K.isAnimated()){continue}if(K.currentFrame<K.totalFrames||K.totalFrames===null){K.currentFrame+=1;if(K.useSeconds){H(K)}K._onTween.fire()}else{Ext.lib.AnimMgr.stop(K,L)}}};var I=function(L){for(var K=0,J=F.length;K<J;++K){if(F[K]==L){return K}}return -1};var H=function(K){var N=K.totalFrames;var M=K.currentFrame;var L=(K.currentFrame*K.duration*1000/K.totalFrames);var J=(new Date()-K.getStartTime());var O=0;if(J<K.duration*1000){O=Math.round((J/L-1)*K.currentFrame)}else{O=N-(M+1)}if(O>0&&isFinite(O)){if(K.currentFrame+O>=N){O=N-(M+1)}K.currentFrame+=O}}};Ext.lib.Bezier=new function(){this.getPosition=function(I,H){var J=I.length;var G=[];for(var F=0;F<J;++F){G[F]=[I[F][0],I[F][1]]}for(var E=1;E<J;++E){for(F=0;F<J-E;++F){G[F][0]=(1-H)*G[F][0]+H*G[parseInt(F+1,10)][0];G[F][1]=(1-H)*G[F][1]+H*G[parseInt(F+1,10)][1]}}return[G[0][0],G[0][1]]}};(function(){Ext.lib.ColorAnim=function(I,H,J,K){Ext.lib.ColorAnim.superclass.constructor.call(this,I,H,J,K)};Ext.extend(Ext.lib.ColorAnim,Ext.lib.AnimBase);var F=Ext.lib;var G=F.ColorAnim.superclass;var E=F.ColorAnim.prototype;E.toString=function(){var H=this.getEl();var I=H.id||H.tagName;return("ColorAnim "+I)};E.patterns.color=/color$/i;E.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;E.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;E.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;E.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;E.parseColor=function(H){if(H.length==3){return H}var I=this.patterns.hex.exec(H);if(I&&I.length==4){return[parseInt(I[1],16),parseInt(I[2],16),parseInt(I[3],16)]}I=this.patterns.rgb.exec(H);if(I&&I.length==4){return[parseInt(I[1],10),parseInt(I[2],10),parseInt(I[3],10)]}I=this.patterns.hex3.exec(H);if(I&&I.length==4){return[parseInt(I[1]+I[1],16),parseInt(I[2]+I[2],16),parseInt(I[3]+I[3],16)]}return null};E.getAttribute=function(H){var J=this.getEl();if(this.patterns.color.test(H)){var K=C(J).getStyle(H);if(this.patterns.transparent.test(K)){var I=J.parentNode;K=C(I).getStyle(H);while(I&&this.patterns.transparent.test(K)){I=I.parentNode;K=C(I).getStyle(H);if(I.tagName.toUpperCase()=="HTML"){K="#fff"}}}}else{K=G.getAttribute.call(this,H)}return K};E.doMethod=function(I,M,J){var L;if(this.patterns.color.test(I)){L=[];for(var K=0,H=M.length;K<H;++K){L[K]=G.doMethod.call(this,I,M[K],J[K])}L="rgb("+Math.floor(L[0])+","+Math.floor(L[1])+","+Math.floor(L[2])+")"}else{L=G.doMethod.call(this,I,M,J)}return L};E.setRuntimeAttribute=function(I){G.setRuntimeAttribute.call(this,I);if(this.patterns.color.test(I)){var K=this.attributes;var M=this.parseColor(this.runtimeAttributes[I].start);var J=this.parseColor(this.runtimeAttributes[I].end);if(typeof K[I]["to"]==="undefined"&&typeof K[I]["by"]!=="undefined"){J=this.parseColor(K[I].by);for(var L=0,H=M.length;L<H;++L){J[L]=M[L]+J[L]}}this.runtimeAttributes[I].start=M;this.runtimeAttributes[I].end=J}}})();Ext.lib.Easing={easeNone:function(F,E,H,G){return H*F/G+E},easeIn:function(F,E,H,G){return H*(F/=G)*F+E},easeOut:function(F,E,H,G){return -H*(F/=G)*(F-2)+E},easeBoth:function(F,E,H,G){if((F/=G/2)<1){return H/2*F*F+E}return -H/2*((--F)*(F-2)-1)+E},easeInStrong:function(F,E,H,G){return H*(F/=G)*F*F*F+E},easeOutStrong:function(F,E,H,G){return -H*((F=F/G-1)*F*F*F-1)+E},easeBothStrong:function(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F+E}return -H/2*((F-=2)*F*F*F-2)+E},elasticIn:function(G,E,K,J,F,I){if(G==0){return E}if((G/=J)==1){return E+K}if(!I){I=J*0.3}if(!F||F<Math.abs(K)){F=K;var H=I/4}else{var H=I/(2*Math.PI)*Math.asin(K/F)}return -(F*Math.pow(2,10*(G-=1))*Math.sin((G*J-H)*(2*Math.PI)/I))+E},elasticOut:function(G,E,K,J,F,I){if(G==0){return E}if((G/=J)==1){return E+K}if(!I){I=J*0.3}if(!F||F<Math.abs(K)){F=K;var H=I/4}else{var H=I/(2*Math.PI)*Math.asin(K/F)}return F*Math.pow(2,-10*G)*Math.sin((G*J-H)*(2*Math.PI)/I)+K+E},elasticBoth:function(G,E,K,J,F,I){if(G==0){return E}if((G/=J/2)==2){return E+K}if(!I){I=J*(0.3*1.5)}if(!F||F<Math.abs(K)){F=K;var H=I/4}else{var H=I/(2*Math.PI)*Math.asin(K/F)}if(G<1){return -0.5*(F*Math.pow(2,10*(G-=1))*Math.sin((G*J-H)*(2*Math.PI)/I))+E}return F*Math.pow(2,-10*(G-=1))*Math.sin((G*J-H)*(2*Math.PI)/I)*0.5+K+E},backIn:function(F,E,I,H,G){if(typeof G=="undefined"){G=1.70158}return I*(F/=H)*F*((G+1)*F-G)+E},backOut:function(F,E,I,H,G){if(typeof G=="undefined"){G=1.70158}return I*((F=F/H-1)*F*((G+1)*F+G)+1)+E},backBoth:function(F,E,I,H,G){if(typeof G=="undefined"){G=1.70158}if((F/=H/2)<1){return I/2*(F*F*(((G*=(1.525))+1)*F-G))+E}return I/2*((F-=2)*F*(((G*=(1.525))+1)*F+G)+2)+E},bounceIn:function(F,E,H,G){return H-Ext.lib.Easing.bounceOut(G-F,0,H,G)+E},bounceOut:function(F,E,H,G){if((F/=G)<(1/2.75)){return H*(7.5625*F*F)+E}else{if(F<(2/2.75)){return H*(7.5625*(F-=(1.5/2.75))*F+0.75)+E}else{if(F<(2.5/2.75)){return H*(7.5625*(F-=(2.25/2.75))*F+0.9375)+E}}}return H*(7.5625*(F-=(2.625/2.75))*F+0.984375)+E},bounceBoth:function(F,E,H,G){if(F<G/2){return Ext.lib.Easing.bounceIn(F*2,0,H,G)*0.5+E}return Ext.lib.Easing.bounceOut(F*2-G,0,H,G)*0.5+H*0.5+E}};(function(){Ext.lib.Motion=function(K,J,L,M){if(K){Ext.lib.Motion.superclass.constructor.call(this,K,J,L,M)}};Ext.extend(Ext.lib.Motion,Ext.lib.ColorAnim);var H=Ext.lib;var I=H.Motion.superclass;var F=H.Motion.prototype;F.toString=function(){var J=this.getEl();var K=J.id||J.tagName;return("Motion "+K)};F.patterns.points=/^points$/i;F.setAttribute=function(J,L,K){if(this.patterns.points.test(J)){K=K||"px";I.setAttribute.call(this,"left",L[0],K);I.setAttribute.call(this,"top",L[1],K)}else{I.setAttribute.call(this,J,L,K)}};F.getAttribute=function(J){if(this.patterns.points.test(J)){var K=[I.getAttribute.call(this,"left"),I.getAttribute.call(this,"top")]}else{K=I.getAttribute.call(this,J)}return K};F.doMethod=function(J,N,K){var M=null;if(this.patterns.points.test(J)){var L=this.method(this.currentFrame,0,100,this.totalFrames)/100;M=H.Bezier.getPosition(this.runtimeAttributes[J],L)}else{M=I.doMethod.call(this,J,N,K)}return M};F.setRuntimeAttribute=function(S){if(this.patterns.points.test(S)){var K=this.getEl();var M=this.attributes;var J;var O=M["points"]["control"]||[];var L;var P,R;if(O.length>0&&!Ext.isArray(O[0])){O=[O]}else{var N=[];for(P=0,R=O.length;P<R;++P){N[P]=O[P]}O=N}Ext.fly(K,"_anim").position();if(G(M["points"]["from"])){Ext.lib.Dom.setXY(K,M["points"]["from"])}else{Ext.lib.Dom.setXY(K,Ext.lib.Dom.getXY(K))}J=this.getAttribute("points");if(G(M["points"]["to"])){L=E.call(this,M["points"]["to"],J);var Q=Ext.lib.Dom.getXY(this.getEl());for(P=0,R=O.length;P<R;++P){O[P]=E.call(this,O[P],J)}}else{if(G(M["points"]["by"])){L=[J[0]+M["points"]["by"][0],J[1]+M["points"]["by"][1]];for(P=0,R=O.length;P<R;++P){O[P]=[J[0]+O[P][0],J[1]+O[P][1]]}}}this.runtimeAttributes[S]=[J];if(O.length>0){this.runtimeAttributes[S]=this.runtimeAttributes[S].concat(O)}this.runtimeAttributes[S][this.runtimeAttributes[S].length]=L}else{I.setRuntimeAttribute.call(this,S)}};var E=function(J,L){var K=Ext.lib.Dom.getXY(this.getEl());J=[J[0]-K[0]+L[0],J[1]-K[1]+L[1]];return J};var G=function(J){return(typeof J!=="undefined")}})();(function(){Ext.lib.Scroll=function(I,H,J,K){if(I){Ext.lib.Scroll.superclass.constructor.call(this,I,H,J,K)}};Ext.extend(Ext.lib.Scroll,Ext.lib.ColorAnim);var F=Ext.lib;var G=F.Scroll.superclass;var E=F.Scroll.prototype;E.toString=function(){var H=this.getEl();var I=H.id||H.tagName;return("Scroll "+I)};E.doMethod=function(H,K,I){var J=null;if(H=="scroll"){J=[this.method(this.currentFrame,K[0],I[0]-K[0],this.totalFrames),this.method(this.currentFrame,K[1],I[1]-K[1],this.totalFrames)]}else{J=G.doMethod.call(this,H,K,I)}return J};E.getAttribute=function(H){var J=null;var I=this.getEl();if(H=="scroll"){J=[I.scrollLeft,I.scrollTop]}else{J=G.getAttribute.call(this,H)}return J};E.setAttribute=function(H,K,J){var I=this.getEl();if(H=="scroll"){I.scrollLeft=K[0];I.scrollTop=K[1]}else{G.setAttribute.call(this,H,K,J)}}})()})();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/adapter/jquery-bridge-min.js b/typo3/contrib/extJS/build/adapter/jquery-bridge-min.js
new file mode 100755 (executable)
index 0000000..5cdf1b0
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+if(typeof jQuery=="undefined"){throw"Unable to load Ext, jQuery not found."}(function(){var B;Ext.lib.Dom={getViewWidth:function(D){return D?Math.max(jQuery(document).width(),jQuery(window).width()):jQuery(window).width()},getViewHeight:function(D){return D?Math.max(jQuery(document).height(),jQuery(window).height()):jQuery(window).height()},isAncestor:function(E,F){E=Ext.getDom(E);F=Ext.getDom(F);if(!E||!F){return false}if(E.contains&&!Ext.isSafari){return E.contains(F)}else{if(E.compareDocumentPosition){return !!(E.compareDocumentPosition(F)&16)}else{var D=F.parentNode;while(D){if(D==E){return true}else{if(!D.tagName||D.tagName.toUpperCase()=="HTML"){return false}}D=D.parentNode}return false}}},getRegion:function(D){return Ext.lib.Region.getRegion(D)},getY:function(D){return this.getXY(D)[1]},getX:function(D){return this.getXY(D)[0]},getXY:function(F){var E,J,L,M,I=(document.body||document.documentElement);F=Ext.getDom(F);if(F==I){return[0,0]}if(F.getBoundingClientRect){L=F.getBoundingClientRect();M=C(document).getScroll();return[L.left+M.left,L.top+M.top]}var N=0,K=0;E=F;var D=C(F).getStyle("position")=="absolute";while(E){N+=E.offsetLeft;K+=E.offsetTop;if(!D&&C(E).getStyle("position")=="absolute"){D=true}if(Ext.isGecko){J=C(E);var O=parseInt(J.getStyle("borderTopWidth"),10)||0;var G=parseInt(J.getStyle("borderLeftWidth"),10)||0;N+=G;K+=O;if(E!=F&&J.getStyle("overflow")!="visible"){N+=G;K+=O}}E=E.offsetParent}if(Ext.isSafari&&D){N-=I.offsetLeft;K-=I.offsetTop}if(Ext.isGecko&&!D){var H=C(I);N+=parseInt(H.getStyle("borderLeftWidth"),10)||0;K+=parseInt(H.getStyle("borderTopWidth"),10)||0}E=F.parentNode;while(E&&E!=I){if(!Ext.isOpera||(E.tagName!="TR"&&C(E).getStyle("display")!="inline")){N-=E.scrollLeft;K-=E.scrollTop}E=E.parentNode}return[N,K]},setXY:function(D,E){D=Ext.fly(D,"_setXY");D.position();var F=D.translatePoints(E);if(E[0]!==false){D.dom.style.left=F.left+"px"}if(E[1]!==false){D.dom.style.top=F.top+"px"}},setX:function(E,D){this.setXY(E,[D,false])},setY:function(D,E){this.setXY(D,[false,E])}};function C(D){if(!B){B=new Ext.Element.Flyweight()}B.dom=D;return B}Ext.lib.Event={getPageX:function(D){D=D.browserEvent||D;return D.pageX},getPageY:function(D){D=D.browserEvent||D;return D.pageY},getXY:function(D){D=D.browserEvent||D;return[D.pageX,D.pageY]},getTarget:function(D){return D.target},on:function(H,D,G,F,E){jQuery(H).bind(D,G)},un:function(F,D,E){jQuery(F).unbind(D,E)},purgeElement:function(D){jQuery(D).unbind()},preventDefault:function(D){D=D.browserEvent||D;if(D.preventDefault){D.preventDefault()}else{D.returnValue=false}},stopPropagation:function(D){D=D.browserEvent||D;if(D.stopPropagation){D.stopPropagation()}else{D.cancelBubble=true}},stopEvent:function(D){this.preventDefault(D);this.stopPropagation(D)},onAvailable:function(I,E,D){var H=new Date();var F=function(){if(H.getElapsed()>10000){clearInterval(G)}var J=document.getElementById(I);if(J){clearInterval(G);E.call(D||window,J)}};var G=setInterval(F,50)},resolveTextNode:function(D){if(D&&3==D.nodeType){return D.parentNode}else{return D}},getRelatedTarget:function(E){E=E.browserEvent||E;var D=E.relatedTarget;if(!D){if(E.type=="mouseout"){D=E.toElement}else{if(E.type=="mouseover"){D=E.fromElement}}}return this.resolveTextNode(D)}};Ext.lib.Ajax=function(){var D=function(E){return function(G,F){if((F=="error"||F=="timeout")&&E.failure){E.failure.call(E.scope||window,{responseText:G.responseText,responseXML:G.responseXML,argument:E.argument})}else{if(E.success){E.success.call(E.scope||window,{responseText:G.responseText,responseXML:G.responseXML,argument:E.argument})}}}};return{request:function(K,H,E,I,F){var J={type:K,url:H,data:I,timeout:E.timeout,complete:D(E)};if(F){var G=F.headers;if(F.xmlData){J.data=F.xmlData;J.processData=false;J.type=(K?K:(F.method?F.method:"POST"));if(!G||!G["Content-Type"]){J.contentType="text/xml"}}else{if(F.jsonData){J.data=typeof F.jsonData=="object"?Ext.encode(F.jsonData):F.jsonData;J.processData=false;J.type=(K?K:(F.method?F.method:"POST"));if(!G||!G["Content-Type"]){J.contentType="application/json"}}}if(G){J.beforeSend=function(M){for(var L in G){if(G.hasOwnProperty(L)){M.setRequestHeader(L,G[L])}}}}}jQuery.ajax(J)},formRequest:function(I,H,F,J,E,G){jQuery.ajax({type:Ext.getDom(I).method||"POST",url:H,data:jQuery(I).serialize()+(J?"&"+J:""),timeout:F.timeout,complete:D(F)})},isCallInProgress:function(E){return false},abort:function(E){return false},serializeForm:function(E){return jQuery(E.dom||E).serialize()}}}();Ext.lib.Anim=function(){var D=function(E,F){var G=true;return{stop:function(H){},isAnimated:function(){return G},proxyCallback:function(){G=false;Ext.callback(E,F)}}};return{scroll:function(H,F,J,K,E,G){var I=D(E,G);H=Ext.getDom(H);if(typeof F.scroll.to[0]=="number"){H.scrollLeft=F.scroll.to[0]}if(typeof F.scroll.to[1]=="number"){H.scrollTop=F.scroll.to[1]}I.proxyCallback();return I},motion:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G)},color:function(H,F,J,K,E,G){var I=D(E,G);I.proxyCallback();return I},run:function(F,N,I,M,G,P,O){var J=D(G,P),K=Ext.fly(F,"_animrun");var E={};for(var H in N){if(N[H].from){if(H!="points"){K.setStyle(H,N[H].from)}}switch(H){case"points":var L,R;K.position();if(L=N.points.by){var Q=K.getXY();R=K.translatePoints([Q[0]+L[0],Q[1]+L[1]])}else{R=K.translatePoints(N.points.to)}E.left=R.left;E.top=R.top;if(!parseInt(K.getStyle("left"),10)){K.setLeft(0)}if(!parseInt(K.getStyle("top"),10)){K.setTop(0)}if(N.points.from){K.setXY(N.points.from)}break;case"width":E.width=N.width.to;break;case"height":E.height=N.height.to;break;case"opacity":E.opacity=N.opacity.to;break;case"left":E.left=N.left.to;break;case"top":E.top=N.top.to;break;default:E[H]=N[H].to;break}}jQuery(F).animate(E,I*1000,undefined,J.proxyCallback);return J}}}();Ext.lib.Region=function(F,G,D,E){this.top=F;this[1]=F;this.right=G;this.bottom=D;this.left=E;this[0]=E};Ext.lib.Region.prototype={contains:function(D){return(D.left>=this.left&&D.right<=this.right&&D.top>=this.top&&D.bottom<=this.bottom)},getArea:function(){return((this.bottom-this.top)*(this.right-this.left))},intersect:function(H){var F=Math.max(this.top,H.top);var G=Math.min(this.right,H.right);var D=Math.min(this.bottom,H.bottom);var E=Math.max(this.left,H.left);if(D>=F&&G>=E){return new Ext.lib.Region(F,G,D,E)}else{return null}},union:function(H){var F=Math.min(this.top,H.top);var G=Math.max(this.right,H.right);var D=Math.max(this.bottom,H.bottom);var E=Math.min(this.left,H.left);return new Ext.lib.Region(F,G,D,E)},constrainTo:function(D){this.top=this.top.constrain(D.top,D.bottom);this.bottom=this.bottom.constrain(D.top,D.bottom);this.left=this.left.constrain(D.left,D.right);this.right=this.right.constrain(D.left,D.right);return this},adjust:function(F,E,D,G){this.top+=F;this.left+=E;this.right+=G;this.bottom+=D;return this}};Ext.lib.Region.getRegion=function(G){var I=Ext.lib.Dom.getXY(G);var F=I[1];var H=I[0]+G.offsetWidth;var D=I[1]+G.offsetHeight;var E=I[0];return new Ext.lib.Region(F,H,D,E)};Ext.lib.Point=function(D,E){if(Ext.isArray(D)){E=D[1];D=D[0]}this.x=this.right=this.left=this[0]=D;this.y=this.top=this.bottom=this[1]=E};Ext.lib.Point.prototype=new Ext.lib.Region();if(Ext.isIE){function A(){var D=Function.prototype;delete D.createSequence;delete D.defer;delete D.createDelegate;delete D.createCallback;delete D.createInterceptor;window.detachEvent("onunload",A)}window.attachEvent("onunload",A)}})();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/adapter/prototype-bridge-min.js b/typo3/contrib/extJS/build/adapter/prototype-bridge-min.js
new file mode 100755 (executable)
index 0000000..0abef9c
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+(function(){var B;Ext.lib.Dom={getViewWidth:function(D){return D?this.getDocumentWidth():this.getViewportWidth()},getViewHeight:function(D){return D?this.getDocumentHeight():this.getViewportHeight()},getDocumentHeight:function(){var D=(document.compatMode!="CSS1Compat")?document.body.scrollHeight:document.documentElement.scrollHeight;return Math.max(D,this.getViewportHeight())},getDocumentWidth:function(){var D=(document.compatMode!="CSS1Compat")?document.body.scrollWidth:document.documentElement.scrollWidth;return Math.max(D,this.getViewportWidth())},getViewportHeight:function(){var D=self.innerHeight;var E=document.compatMode;if((E||Ext.isIE)&&!Ext.isOpera){D=(E=="CSS1Compat")?document.documentElement.clientHeight:document.body.clientHeight}return D},getViewportWidth:function(){var D=self.innerWidth;var E=document.compatMode;if(E||Ext.isIE){D=(E=="CSS1Compat")?document.documentElement.clientWidth:document.body.clientWidth}return D},isAncestor:function(E,F){E=Ext.getDom(E);F=Ext.getDom(F);if(!E||!F){return false}if(E.contains&&!Ext.isSafari){return E.contains(F)}else{if(E.compareDocumentPosition){return !!(E.compareDocumentPosition(F)&16)}else{var D=F.parentNode;while(D){if(D==E){return true}else{if(!D.tagName||D.tagName.toUpperCase()=="HTML"){return false}}D=D.parentNode}return false}}},getRegion:function(D){return Ext.lib.Region.getRegion(D)},getY:function(D){return this.getXY(D)[1]},getX:function(D){return this.getXY(D)[0]},getXY:function(F){var E,J,L,M,I=(document.body||document.documentElement);F=Ext.getDom(F);if(F==I){return[0,0]}if(F.getBoundingClientRect){L=F.getBoundingClientRect();M=C(document).getScroll();return[L.left+M.left,L.top+M.top]}var N=0,K=0;E=F;var D=C(F).getStyle("position")=="absolute";while(E){N+=E.offsetLeft;K+=E.offsetTop;if(!D&&C(E).getStyle("position")=="absolute"){D=true}if(Ext.isGecko){J=C(E);var O=parseInt(J.getStyle("borderTopWidth"),10)||0;var G=parseInt(J.getStyle("borderLeftWidth"),10)||0;N+=G;K+=O;if(E!=F&&J.getStyle("overflow")!="visible"){N+=G;K+=O}}E=E.offsetParent}if(Ext.isSafari&&D){N-=I.offsetLeft;K-=I.offsetTop}if(Ext.isGecko&&!D){var H=C(I);N+=parseInt(H.getStyle("borderLeftWidth"),10)||0;K+=parseInt(H.getStyle("borderTopWidth"),10)||0}E=F.parentNode;while(E&&E!=I){if(!Ext.isOpera||(E.tagName!="TR"&&C(E).getStyle("display")!="inline")){N-=E.scrollLeft;K-=E.scrollTop}E=E.parentNode}return[N,K]},setXY:function(D,E){D=Ext.fly(D,"_setXY");D.position();var F=D.translatePoints(E);if(E[0]!==false){D.dom.style.left=F.left+"px"}if(E[1]!==false){D.dom.style.top=F.top+"px"}},setX:function(E,D){this.setXY(E,[D,false])},setY:function(D,E){this.setXY(D,[false,E])}};Ext.lib.Event={getPageX:function(D){return Event.pointerX(D.browserEvent||D)},getPageY:function(D){return Event.pointerY(D.browserEvent||D)},getXY:function(D){D=D.browserEvent||D;return[Event.pointerX(D),Event.pointerY(D)]},getTarget:function(D){return Event.element(D.browserEvent||D)},resolveTextNode:function(D){if(D&&3==D.nodeType){return D.parentNode}else{return D}},getRelatedTarget:function(E){E=E.browserEvent||E;var D=E.relatedTarget;if(!D){if(E.type=="mouseout"){D=E.toElement}else{if(E.type=="mouseover"){D=E.fromElement}}}return this.resolveTextNode(D)},on:function(F,D,E){Event.observe(F,D,E,false)},un:function(F,D,E){Event.stopObserving(F,D,E,false)},purgeElement:function(D){},preventDefault:function(D){D=D.browserEvent||D;if(D.preventDefault){D.preventDefault()}else{D.returnValue=false}},stopPropagation:function(D){D=D.browserEvent||D;if(D.stopPropagation){D.stopPropagation()}else{D.cancelBubble=true}},stopEvent:function(D){Event.stop(D.browserEvent||D)},onAvailable:function(I,E,D){var H=new Date(),G;var F=function(){if(H.getElapsed()>10000){clearInterval(G)}var J=document.getElementById(I);if(J){clearInterval(G);E.call(D||window,J)}};G=setInterval(F,50)}};Ext.lib.Ajax=function(){var E=function(F){return F.success?function(G){F.success.call(F.scope||window,{responseText:G.responseText,responseXML:G.responseXML,argument:F.argument})}:Ext.emptyFn};var D=function(F){return F.failure?function(G){F.failure.call(F.scope||window,{responseText:G.responseText,responseXML:G.responseXML,argument:F.argument})}:Ext.emptyFn};return{request:function(L,I,F,J,G){var K={method:L,parameters:J||"",timeout:F.timeout,onSuccess:E(F),onFailure:D(F)};if(G){var H=G.headers;if(H){K.requestHeaders=H}if(G.xmlData){L=(L?L:(G.method?G.method:"POST"));if(!H||!H["Content-Type"]){K.contentType="text/xml"}K.postBody=G.xmlData;delete K.parameters}if(G.jsonData){L=(L?L:(G.method?G.method:"POST"));if(!H||!H["Content-Type"]){K.contentType="application/json"}K.postBody=typeof G.jsonData=="object"?Ext.encode(G.jsonData):G.jsonData;delete K.parameters}}new Ajax.Request(I,K)},formRequest:function(J,I,G,K,F,H){new Ajax.Request(I,{method:Ext.getDom(J).method||"POST",parameters:Form.serialize(J)+(K?"&"+K:""),timeout:G.timeout,onSuccess:E(G),onFailure:D(G)})},isCallInProgress:function(F){return false},abort:function(F){return false},serializeForm:function(F){return Form.serialize(F.dom||F)}}}();Ext.lib.Anim=function(){var D={easeOut:function(F){return 1-Math.pow(1-F,2)},easeIn:function(F){return 1-Math.pow(1-F,2)}};var E=function(F,G){return{stop:function(H){this.effect.cancel()},isAnimated:function(){return this.effect.state=="running"},proxyCallback:function(){Ext.callback(F,G)}}};return{scroll:function(I,G,K,L,F,H){var J=E(F,H);I=Ext.getDom(I);if(typeof G.scroll.to[0]=="number"){I.scrollLeft=G.scroll.to[0]}if(typeof G.scroll.to[1]=="number"){I.scrollTop=G.scroll.to[1]}J.proxyCallback();return J},motion:function(I,G,J,K,F,H){return this.run(I,G,J,K,F,H)},color:function(I,G,J,K,F,H){return this.run(I,G,J,K,F,H)},run:function(G,O,K,N,H,Q,P){var F={};for(var J in O){switch(J){case"points":var M,S,L=Ext.fly(G,"_animrun");L.position();if(M=O.points.by){var R=L.getXY();S=L.translatePoints([R[0]+M[0],R[1]+M[1]])}else{S=L.translatePoints(O.points.to)}F.left=S.left+"px";F.top=S.top+"px";break;case"width":F.width=O.width.to+"px";break;case"height":F.height=O.height.to+"px";break;case"opacity":F.opacity=String(O.opacity.to);break;default:F[J]=String(O[J].to);break}}var I=E(H,Q);I.effect=new Effect.Morph(Ext.id(G),{duration:K,afterFinish:I.proxyCallback,transition:D[N]||Effect.Transitions.linear,style:F});return I}}}();function C(D){if(!B){B=new Ext.Element.Flyweight()}B.dom=D;return B}Ext.lib.Region=function(F,G,D,E){this.top=F;this[1]=F;this.right=G;this.bottom=D;this.left=E;this[0]=E};Ext.lib.Region.prototype={contains:function(D){return(D.left>=this.left&&D.right<=this.right&&D.top>=this.top&&D.bottom<=this.bottom)},getArea:function(){return((this.bottom-this.top)*(this.right-this.left))},intersect:function(H){var F=Math.max(this.top,H.top);var G=Math.min(this.right,H.right);var D=Math.min(this.bottom,H.bottom);var E=Math.max(this.left,H.left);if(D>=F&&G>=E){return new Ext.lib.Region(F,G,D,E)}else{return null}},union:function(H){var F=Math.min(this.top,H.top);var G=Math.max(this.right,H.right);var D=Math.max(this.bottom,H.bottom);var E=Math.min(this.left,H.left);return new Ext.lib.Region(F,G,D,E)},constrainTo:function(D){this.top=this.top.constrain(D.top,D.bottom);this.bottom=this.bottom.constrain(D.top,D.bottom);this.left=this.left.constrain(D.left,D.right);this.right=this.right.constrain(D.left,D.right);return this},adjust:function(F,E,D,G){this.top+=F;this.left+=E;this.right+=G;this.bottom+=D;return this}};Ext.lib.Region.getRegion=function(G){var I=Ext.lib.Dom.getXY(G);var F=I[1];var H=I[0]+G.offsetWidth;var D=I[1]+G.offsetHeight;var E=I[0];return new Ext.lib.Region(F,H,D,E)};Ext.lib.Point=function(D,E){if(Ext.isArray(D)){E=D[1];D=D[0]}this.x=this.right=this.left=this[0]=D;this.y=this.top=this.bottom=this[1]=E};Ext.lib.Point.prototype=new Ext.lib.Region();if(Ext.isIE){function A(){var D=Function.prototype;delete D.createSequence;delete D.defer;delete D.createDelegate;delete D.createCallback;delete D.createInterceptor;window.detachEvent("onunload",A)}window.attachEvent("onunload",A)}})();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/adapter/yui-bridge-min.js b/typo3/contrib/extJS/build/adapter/yui-bridge-min.js
new file mode 100755 (executable)
index 0000000..8cfda19
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+if(typeof YAHOO=="undefined"){throw"Unable to load Ext, core YUI utilities (yahoo, dom, event) not found."}(function(){var I=YAHOO.util.Event;var J=YAHOO.util.Dom;var C=YAHOO.util.Connect;var K=YAHOO.util.Easing;var B=YAHOO.util.Anim;var G;Ext.lib.Dom={getViewWidth:function(A){return A?J.getDocumentWidth():J.getViewportWidth()},getViewHeight:function(A){return A?J.getDocumentHeight():J.getViewportHeight()},isAncestor:function(A,D){return J.isAncestor(A,D)},getRegion:function(A){return J.getRegion(A)},getY:function(A){return this.getXY(A)[1]},getX:function(A){return this.getXY(A)[0]},getXY:function(E){var D,O,Q,R,N=(document.body||document.documentElement);E=Ext.getDom(E);if(E==N){return[0,0]}if(E.getBoundingClientRect){Q=E.getBoundingClientRect();R=H(document).getScroll();return[Q.left+R.left,Q.top+R.top]}var S=0,P=0;D=E;var A=H(E).getStyle("position")=="absolute";while(D){S+=D.offsetLeft;P+=D.offsetTop;if(!A&&H(D).getStyle("position")=="absolute"){A=true}if(Ext.isGecko){O=H(D);var T=parseInt(O.getStyle("borderTopWidth"),10)||0;var L=parseInt(O.getStyle("borderLeftWidth"),10)||0;S+=L;P+=T;if(D!=E&&O.getStyle("overflow")!="visible"){S+=L;P+=T}}D=D.offsetParent}if(Ext.isSafari&&A){S-=N.offsetLeft;P-=N.offsetTop}if(Ext.isGecko&&!A){var M=H(N);S+=parseInt(M.getStyle("borderLeftWidth"),10)||0;P+=parseInt(M.getStyle("borderTopWidth"),10)||0}D=E.parentNode;while(D&&D!=N){if(!Ext.isOpera||(D.tagName!="TR"&&H(D).getStyle("display")!="inline")){S-=D.scrollLeft;P-=D.scrollTop}D=D.parentNode}return[S,P]},setXY:function(A,D){A=Ext.fly(A,"_setXY");A.position();var E=A.translatePoints(D);if(D[0]!==false){A.dom.style.left=E.left+"px"}if(D[1]!==false){A.dom.style.top=E.top+"px"}},setX:function(D,A){this.setXY(D,[A,false])},setY:function(A,D){this.setXY(A,[false,D])}};Ext.lib.Event={getPageX:function(A){return I.getPageX(A.browserEvent||A)},getPageY:function(A){return I.getPageY(A.browserEvent||A)},getXY:function(A){return I.getXY(A.browserEvent||A)},getTarget:function(A){return I.getTarget(A.browserEvent||A)},getRelatedTarget:function(A){return I.getRelatedTarget(A.browserEvent||A)},on:function(M,A,L,E,D){I.on(M,A,L,E,D)},un:function(E,A,D){I.removeListener(E,A,D)},purgeElement:function(A){I.purgeElement(A)},preventDefault:function(A){I.preventDefault(A.browserEvent||A)},stopPropagation:function(A){I.stopPropagation(A.browserEvent||A)},stopEvent:function(A){I.stopEvent(A.browserEvent||A)},onAvailable:function(L,E,D,A){return I.onAvailable(L,E,D,A)}};Ext.lib.Ajax={request:function(O,M,A,N,D){if(D){var E=D.headers;if(E){for(var L in E){if(E.hasOwnProperty(L)){C.initHeader(L,E[L],false)}}}if(D.xmlData){if(!E||!E["Content-Type"]){C.initHeader("Content-Type","text/xml",false)}O=(O?O:(D.method?D.method:"POST"));N=D.xmlData}else{if(D.jsonData){if(!E||!E["Content-Type"]){C.initHeader("Content-Type","application/json",false)}O=(O?O:(D.method?D.method:"POST"));N=typeof D.jsonData=="object"?Ext.encode(D.jsonData):D.jsonData}}}return C.asyncRequest(O,M,A,N)},formRequest:function(M,L,D,N,A,E){C.setForm(M,A,E);return C.asyncRequest(Ext.getDom(M).method||"POST",L,D,N)},isCallInProgress:function(A){return C.isCallInProgress(A)},abort:function(A){return C.abort(A)},serializeForm:function(A){var D=C.setForm(A.dom||A);C.resetFormState();return D}};Ext.lib.Region=YAHOO.util.Region;Ext.lib.Point=YAHOO.util.Point;Ext.lib.Anim={scroll:function(L,D,M,N,A,E){this.run(L,D,M,N,A,E,YAHOO.util.Scroll)},motion:function(L,D,M,N,A,E){this.run(L,D,M,N,A,E,YAHOO.util.Motion)},color:function(L,D,M,N,A,E){this.run(L,D,M,N,A,E,YAHOO.util.ColorAnim)},run:function(M,D,O,P,A,L,E){E=E||YAHOO.util.Anim;if(typeof P=="string"){P=YAHOO.util.Easing[P]}var N=new E(M,D,O,P);N.animateX(function(){Ext.callback(A,L)});return N}};function H(A){if(!G){G=new Ext.Element.Flyweight()}G.dom=A;return G}if(Ext.isIE){function F(){var A=Function.prototype;delete A.createSequence;delete A.defer;delete A.createDelegate;delete A.createCallback;delete A.createInterceptor;window.detachEvent("onunload",F)}window.attachEvent("onunload",F)}if(YAHOO.util.Anim){YAHOO.util.Anim.prototype.animateX=function(E,A){var D=function(){this.onComplete.unsubscribe(D);if(typeof E=="function"){E.call(A||this,this)}};this.onComplete.subscribe(D,this,true);this.animate()}}if(YAHOO.util.DragDrop&&Ext.dd.DragDrop){YAHOO.util.DragDrop.defaultPadding=Ext.dd.DragDrop.defaultPadding;YAHOO.util.DragDrop.constrainTo=Ext.dd.DragDrop.constrainTo}YAHOO.util.Dom.getXY=function(A){var D=function(E){return Ext.lib.Dom.getXY(E)};return YAHOO.util.Dom.batch(A,D,YAHOO.util.Dom,true)};if(YAHOO.util.AnimMgr){YAHOO.util.AnimMgr.fps=1000}YAHOO.util.Region.prototype.adjust=function(E,D,A,L){this.top+=E;this.left+=D;this.right+=L;this.bottom+=A;return this};YAHOO.util.Region.prototype.constrainTo=function(A){this.top=this.top.constrain(A.top,A.bottom);this.bottom=this.bottom.constrain(A.top,A.bottom);this.left=this.left.constrain(A.left,A.right);this.right=this.right.constrain(A.left,A.right);return this}})();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/core/CompositeElement-min.js b/typo3/contrib/extJS/build/core/CompositeElement-min.js
new file mode 100755 (executable)
index 0000000..38fba44
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.CompositeElement=function(A){this.elements=[];this.addElements(A)};Ext.CompositeElement.prototype={isComposite:true,addElements:function(E){if(!E){return this}if(typeof E=="string"){E=Ext.Element.selectorFunction(E)}var D=this.elements;var B=D.length-1;for(var C=0,A=E.length;C<A;C++){D[++B]=Ext.get(E[C])}return this},fill:function(A){this.elements=[];this.add(A);return this},filter:function(A){var B=[];this.each(function(C){if(C.is(A)){B[B.length]=C.dom}});this.fill(B);return this},invoke:function(E,B){var D=this.elements;for(var C=0,A=D.length;C<A;C++){Ext.Element.prototype[E].apply(D[C],B)}return this},add:function(A){if(typeof A=="string"){this.addElements(Ext.Element.selectorFunction(A))}else{if(A.length!==undefined){this.addElements(A)}else{this.addElements([A])}}return this},each:function(E,D){var C=this.elements;for(var B=0,A=C.length;B<A;B++){if(E.call(D||C[B],C[B],this,B)===false){break}}return this},item:function(A){return this.elements[A]||null},first:function(){return this.item(0)},last:function(){return this.item(this.elements.length-1)},getCount:function(){return this.elements.length},contains:function(A){return this.indexOf(A)!==-1},indexOf:function(A){return this.elements.indexOf(Ext.get(A))},removeElement:function(D,F){if(Ext.isArray(D)){for(var C=0,A=D.length;C<A;C++){this.removeElement(D[C])}return this}var B=typeof D=="number"?D:this.indexOf(D);if(B!==-1&&this.elements[B]){if(F){var E=this.elements[B];if(E.dom){E.remove()}else{Ext.removeNode(E)}}this.elements.splice(B,1)}return this},replaceElement:function(D,C,A){var B=typeof D=="number"?D:this.indexOf(D);if(B!==-1){if(A){this.elements[B].replaceWith(C)}else{this.elements.splice(B,1,Ext.get(C))}}return this},clear:function(){this.elements=[]}};(function(){Ext.CompositeElement.createCall=function(B,C){if(!B[C]){B[C]=function(){return this.invoke(C,arguments)}}};for(var A in Ext.Element.prototype){if(typeof Ext.Element.prototype[A]=="function"){Ext.CompositeElement.createCall(Ext.CompositeElement.prototype,A)}}})();Ext.CompositeElementLite=function(A){Ext.CompositeElementLite.superclass.constructor.call(this,A);this.el=new Ext.Element.Flyweight()};Ext.extend(Ext.CompositeElementLite,Ext.CompositeElement,{addElements:function(E){if(E){if(Ext.isArray(E)){this.elements=this.elements.concat(E)}else{var D=this.elements;var B=D.length-1;for(var C=0,A=E.length;C<A;C++){D[++B]=E[C]}}}return this},invoke:function(F,B){var D=this.elements;var E=this.el;for(var C=0,A=D.length;C<A;C++){E.dom=D[C];Ext.Element.prototype[F].apply(E,B)}return this},item:function(A){if(!this.elements[A]){return null}this.el.dom=this.elements[A];return this.el},addListener:function(B,G,F,E){var D=this.elements;for(var C=0,A=D.length;C<A;C++){Ext.EventManager.on(D[C],B,G,F||D[C],E)}return this},each:function(F,E){var C=this.elements;var D=this.el;for(var B=0,A=C.length;B<A;B++){D.dom=C[B];if(F.call(E||D,D,this,B)===false){break}}return this},indexOf:function(A){return this.elements.indexOf(Ext.getDom(A))},replaceElement:function(D,C,A){var B=typeof D=="number"?D:this.indexOf(D);if(B!==-1){C=Ext.getDom(C);if(A){var E=this.elements[B];E.parentNode.insertBefore(C,E);Ext.removeNode(E)}this.elements.splice(B,1,C)}return this}});Ext.CompositeElementLite.prototype.on=Ext.CompositeElementLite.prototype.addListener;if(Ext.DomQuery){Ext.Element.selectorFunction=Ext.DomQuery.select}Ext.Element.select=function(A,D,B){var C;if(typeof A=="string"){C=Ext.Element.selectorFunction(A,B)}else{if(A.length!==undefined){C=A}else{throw"Invalid selector"}}if(D===true){return new Ext.CompositeElement(C)}else{return new Ext.CompositeElementLite(C)}};Ext.select=Ext.Element.select;
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/core/DomHelper-min.js b/typo3/contrib/extJS/build/core/DomHelper-min.js
new file mode 100755 (executable)
index 0000000..8807245
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.DomHelper=function(){var L=null;var F=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;var B=/^table|tbody|tr|td$/i;var A=function(T){if(typeof T=="string"){return T}var O="";if(Ext.isArray(T)){for(var R=0,P=T.length;R<P;R++){O+=A(T[R])}return O}if(!T.tag){T.tag="div"}O+="<"+T.tag;for(var N in T){if(N=="tag"||N=="children"||N=="cn"||N=="html"||typeof T[N]=="function"){continue}if(N=="style"){var S=T["style"];if(typeof S=="function"){S=S.call()}if(typeof S=="string"){O+=" style=\""+S+"\""}else{if(typeof S=="object"){O+=" style=\"";for(var Q in S){if(typeof S[Q]!="function"){O+=Q+":"+S[Q]+";"}}O+="\""}}}else{if(N=="cls"){O+=" class=\""+T["cls"]+"\""}else{if(N=="htmlFor"){O+=" for=\""+T["htmlFor"]+"\""}else{O+=" "+N+"=\""+T[N]+"\""}}}}if(F.test(T.tag)){O+="/>"}else{O+=">";var U=T.children||T.cn;if(U){O+=A(U)}else{if(T.html){O+=T.html}}O+="</"+T.tag+">"}return O};var M=function(T,O){var S;if(Ext.isArray(T)){S=document.createDocumentFragment();for(var R=0,P=T.length;R<P;R++){M(T[R],S)}}else{if(typeof T=="string"){S=document.createTextNode(T)}else{S=document.createElement(T.tag||"div");var Q=!!S.setAttribute;for(var N in T){if(N=="tag"||N=="children"||N=="cn"||N=="html"||N=="style"||typeof T[N]=="function"){continue}if(N=="cls"){S.className=T["cls"]}else{if(Q){S.setAttribute(N,T[N])}else{S[N]=T[N]}}}Ext.DomHelper.applyStyles(S,T.style);var U=T.children||T.cn;if(U){M(U,S)}else{if(T.html){S.innerHTML=T.html}}}}if(O){O.appendChild(S)}return S};var I=function(S,Q,P,R){L.innerHTML=[Q,P,R].join("");var N=-1,O=L;while(++N<S){O=O.firstChild}return O};var J="<table>",E="</table>",C=J+"<tbody>",K="</tbody>"+E,H=C+"<tr>",D="</tr>"+K;var G=function(N,O,Q,P){if(!L){L=document.createElement("div")}var R;var S=null;if(N=="td"){if(O=="afterbegin"||O=="beforeend"){return }if(O=="beforebegin"){S=Q;Q=Q.parentNode}else{S=Q.nextSibling;Q=Q.parentNode}R=I(4,H,P,D)}else{if(N=="tr"){if(O=="beforebegin"){S=Q;Q=Q.parentNode;R=I(3,C,P,K)}else{if(O=="afterend"){S=Q.nextSibling;Q=Q.parentNode;R=I(3,C,P,K)}else{if(O=="afterbegin"){S=Q.firstChild}R=I(4,H,P,D)}}}else{if(N=="tbody"){if(O=="beforebegin"){S=Q;Q=Q.parentNode;R=I(2,J,P,E)}else{if(O=="afterend"){S=Q.nextSibling;Q=Q.parentNode;R=I(2,J,P,E)}else{if(O=="afterbegin"){S=Q.firstChild}R=I(3,C,P,K)}}}else{if(O=="beforebegin"||O=="afterend"){return }if(O=="afterbegin"){S=Q.firstChild}R=I(2,J,P,E)}}}Q.insertBefore(R,S);return R};return{useDom:false,markup:function(N){return A(N)},applyStyles:function(P,Q){if(Q){P=Ext.fly(P);if(typeof Q=="string"){var O=/\s?([a-z\-]*)\:\s?([^;]*);?/gi;var R;while((R=O.exec(Q))!=null){P.setStyle(R[1],R[2])}}else{if(typeof Q=="object"){for(var N in Q){P.setStyle(N,Q[N])}}else{if(typeof Q=="function"){Ext.DomHelper.applyStyles(P,Q.call())}}}}},insertHtml:function(P,R,Q){P=P.toLowerCase();if(R.insertAdjacentHTML){if(B.test(R.tagName)){var O;if(O=G(R.tagName.toLowerCase(),P,R,Q)){return O}}switch(P){case"beforebegin":R.insertAdjacentHTML("BeforeBegin",Q);return R.previousSibling;case"afterbegin":R.insertAdjacentHTML("AfterBegin",Q);return R.firstChild;case"beforeend":R.insertAdjacentHTML("BeforeEnd",Q);return R.lastChild;case"afterend":R.insertAdjacentHTML("AfterEnd",Q);return R.nextSibling}throw"Illegal insertion point -> \""+P+"\""}var N=R.ownerDocument.createRange();var S;switch(P){case"beforebegin":N.setStartBefore(R);S=N.createContextualFragment(Q);R.parentNode.insertBefore(S,R);return R.previousSibling;case"afterbegin":if(R.firstChild){N.setStartBefore(R.firstChild);S=N.createContextualFragment(Q);R.insertBefore(S,R.firstChild);return R.firstChild}else{R.innerHTML=Q;return R.firstChild}case"beforeend":if(R.lastChild){N.setStartAfter(R.lastChild);S=N.createContextualFragment(Q);R.appendChild(S);return R.lastChild}else{R.innerHTML=Q;return R.lastChild}case"afterend":N.setStartAfter(R);S=N.createContextualFragment(Q);R.parentNode.insertBefore(S,R.nextSibling);return R.nextSibling}throw"Illegal insertion point -> \""+P+"\""},insertBefore:function(N,P,O){return this.doInsert(N,P,O,"beforeBegin")},insertAfter:function(N,P,O){return this.doInsert(N,P,O,"afterEnd","nextSibling")},insertFirst:function(N,P,O){return this.doInsert(N,P,O,"afterBegin","firstChild")},doInsert:function(Q,S,R,T,P){Q=Ext.getDom(Q);var O;if(this.useDom){O=M(S,null);(P==="firstChild"?Q:Q.parentNode).insertBefore(O,P?Q[P]:Q)}else{var N=A(S);O=this.insertHtml(T,Q,N)}return R?Ext.get(O,true):O},append:function(P,R,Q){P=Ext.getDom(P);var O;if(this.useDom){O=M(R,null);P.appendChild(O)}else{var N=A(R);O=this.insertHtml("beforeEnd",P,N)}return Q?Ext.get(O,true):O},overwrite:function(N,P,O){N=Ext.getDom(N);N.innerHTML=A(P);return O?Ext.get(N.firstChild,true):N.firstChild},createTemplate:function(O){var N=A(O);return new Ext.Template(N)}}}();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/core/DomQuery-min.js b/typo3/contrib/extJS/build/core/DomQuery-min.js
new file mode 100755 (executable)
index 0000000..d9663e8
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.DomQuery=function(){var cache={},simpleCache={},valueCache={};var nonSpace=/\S/;var trimRe=/^\s+|\s+$/g;var tplRe=/\{(\d+)\}/g;var modeRe=/^(\s?[\/>+~]\s?|\s|$)/;var tagTokenRe=/^(#)?([\w-\*]+)/;var nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/;function child(p,index){var i=0;var n=p.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n}}n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n}function children(d){var n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue)){d.removeChild(n)}else{n.nodeIndex=++ni}n=nx}return this}function byClassName(c,a,v){if(!v){return c}var r=[],ri=-1,cn;for(var i=0,ci;ci=c[i];i++){if((" "+ci.className+" ").indexOf(v)!=-1){r[++ri]=ci}}return r}function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined"){n=n[0]}if(!n){return null}if(attr=="for"){return n.htmlFor}if(attr=="class"||attr=="className"){return n.className}return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs;if(!ns){return result}tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns]}if(!mode){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(var j=0,ci;ci=cs[j];j++){result[++ri]=ci}}}else{if(mode=="/"||mode==">"){var utag=tagName.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=ni.children||ni.childNodes;for(var j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName=="*"){result[++ri]=cj}}}}else{if(mode=="+"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=="*")){result[++ri]=n}}}else{if(mode=="~"){for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&(n.nodeType!=1||(tagName=="*"||n.tagName.toLowerCase()!=tagName))){}if(n){result[++ri]=n}}}}}}return result}function concat(a,b){if(b.slice){return a.concat(b)}for(var i=0,l=b.length;i<l;i++){a[a.length]=b[i]}return a}function byTag(cs,tagName){if(cs.tagName||cs==document){cs=[cs]}if(!tagName){return cs}var r=[],ri=-1;tagName=tagName.toLowerCase();for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType==1&&ci.tagName.toLowerCase()==tagName){r[++ri]=ci}}return r}function byId(cs,attr,id){if(cs.tagName||cs==document){cs=[cs]}if(!id){return cs}var r=[],ri=-1;for(var i=0,ci;ci=cs[i];i++){if(ci&&ci.id==id){r[++ri]=ci;return r}}return r}function byAttribute(cs,attr,value,op,custom){var r=[],ri=-1,st=custom=="{";var f=Ext.DomQuery.operators[op];for(var i=0,ci;ci=cs[i];i++){var a;if(st){a=Ext.DomQuery.getStyle(ci,attr)}else{if(attr=="class"||attr=="className"){a=ci.className}else{if(attr=="for"){a=ci.htmlFor}else{if(attr=="href"){a=ci.getAttribute("href",2)}else{a=ci.getAttribute(attr)}}}}if((f&&f(a,value))||(!f&&a)){r[++ri]=ci}}return r}function byPseudo(cs,name,value){return Ext.DomQuery.pseudos[name](cs,value)}var isIE=window.ActiveXObject?true:false;eval("var batch = 30803;");var key=30803;function nodupIEXml(cs){var d=++key;cs[0].setAttribute("_nodup",d);var r=[cs[0]];for(var i=1,len=cs.length;i<len;i++){var c=cs[i];if(!c.getAttribute("_nodup")!=d){c.setAttribute("_nodup",d);r[r.length]=c}}for(var i=0,len=cs.length;i<len;i++){cs[i].removeAttribute("_nodup")}return r}function nodup(cs){if(!cs){return[]}var len=cs.length,c,i,r=cs,cj,ri=-1;if(!len||typeof cs.nodeType!="undefined"||len==1){return cs}if(isIE&&typeof cs[0].selectSingleNode!="undefined"){return nodupIEXml(cs)}var d=++key;cs[0]._nodup=d;for(i=1;c=cs[i];i++){if(c._nodup!=d){c._nodup=d}else{r=[];for(var j=0;j<i;j++){r[++ri]=cs[j]}for(j=i+1;cj=cs[j];j++){if(cj._nodup!=d){cj._nodup=d;r[++ri]=cj}}return r}}return r}function quickDiffIEXml(c1,c2){var d=++key;for(var i=0,len=c1.length;i<len;i++){c1[i].setAttribute("_qdiff",d)}var r=[];for(var i=0,len=c2.length;i<len;i++){if(c2[i].getAttribute("_qdiff")!=d){r[r.length]=c2[i]}}for(var i=0,len=c1.length;i<len;i++){c1[i].removeAttribute("_qdiff")}return r}function quickDiff(c1,c2){var len1=c1.length;if(!len1){return c2}if(isIE&&c1[0].selectSingleNode){return quickDiffIEXml(c1,c2)}var d=++key;for(var i=0;i<len1;i++){c1[i]._qdiff=d}var r=[];for(var i=0,len=c2.length;i<len;i++){if(c2[i]._qdiff!=d){r[r.length]=c2[i]}}return r}function quickId(ns,mode,root,id){if(ns==root){var d=root.ownerDocument||root;return d.getElementById(id)}ns=getNodes(ns,mode,"*");return byId(ns,null,id)}return{getStyle:function(el,name){return Ext.fly(el).getStyle(name)},compile:function(path,type){type=type||"select";var fn=["var f = function(root){\n var mode; ++batch; var n = root || document;\n"];var q=path,mode,lq;var tk=Ext.DomQuery.matchers;var tklen=tk.length;var mm;var lmode=q.match(modeRe);if(lmode&&lmode[1]){fn[fn.length]="mode=\""+lmode[1].replace(trimRe,"")+"\";";q=q.replace(lmode[1],"")}while(path.substr(0,1)=="/"){path=path.substr(1)}while(q&&lq!=q){lq=q;var tm=q.match(tagTokenRe);if(type=="select"){if(tm){if(tm[1]=="#"){fn[fn.length]="n = quickId(n, mode, root, \""+tm[2]+"\");"}else{fn[fn.length]="n = getNodes(n, mode, \""+tm[2]+"\");"}q=q.replace(tm[0],"")}else{if(q.substr(0,1)!="@"){fn[fn.length]="n = getNodes(n, mode, \"*\");"}}}else{if(tm){if(tm[1]=="#"){fn[fn.length]="n = byId(n, null, \""+tm[2]+"\");"}else{fn[fn.length]="n = byTag(n, \""+tm[2]+"\");"}q=q.replace(tm[0],"")}}while(!(mm=q.match(modeRe))){var matched=false;for(var j=0;j<tklen;j++){var t=tk[j];var m=q.match(t.re);if(m){fn[fn.length]=t.select.replace(tplRe,function(x,i){return m[i]});q=q.replace(m[0],"");matched=true;break}}if(!matched){throw"Error parsing selector, parsing failed at \""+q+"\""}}if(mm[1]){fn[fn.length]="mode=\""+mm[1].replace(trimRe,"")+"\";";q=q.replace(mm[1],"")}}fn[fn.length]="return nodup(n);\n}";eval(fn.join(""));return f},select:function(path,root,type){if(!root||root==document){root=document}if(typeof root=="string"){root=document.getElementById(root)}var paths=path.split(",");var results=[];for(var i=0,len=paths.length;i<len;i++){var p=paths[i].replace(trimRe,"");if(!cache[p]){cache[p]=Ext.DomQuery.compile(p);if(!cache[p]){throw p+" is not a valid selector"}}var result=cache[p](root);if(result&&result!=document){results=results.concat(result)}}if(paths.length>1){return nodup(results)}return results},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,"select")}var n=valueCache[path](root);n=n[0]?n[0]:n;var v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==="")?defaultValue:v)},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el)}var isArray=Ext.isArray(el);var result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?(result.length==el.length):(result.length>0)},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,"simple")}var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w-]+)/,select:"n = byClassName(n, null, \" {1} \");"},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:"n = byPseudo(n, \"{1}\", \"{2}\");"},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:"n = byAttribute(n, \"{2}\", \"{4}\", \"{3}\", \"{1}\");"},{re:/^#([\w-]+)/,select:"n = byId(n, null, \"{1}\");"},{re:/^@([\w-]+)/,select:"return {firstChild:{nodeValue:attrValue(n, \"{1}\")}};"}],operators:{"=":function(a,v){return a==v},"!=":function(a,v){return a!=v},"^=":function(a,v){return a&&a.substr(0,v.length)==v},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v},"*=":function(a,v){return a&&a.indexOf(v)!==-1},"%=":function(a,v){return(a%v)==0},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-")},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1}},pseudos:{"first-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"last-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"nth-child":function(c,a){var r=[],ri=-1;var m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a);var f=(m[1]||1)-0,l=m[2]-0;for(var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j}}pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n}}}return r},"only-child":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci}}return r},"empty":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty){r[++ri]=ci}}return r},"contains":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if((ci.textContent||ci.innerText||"").indexOf(v)!=-1){r[++ri]=ci}}return r},"nodeValue":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci}}return r},"checked":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci}}return r},"not":function(c,ss){return Ext.DomQuery.filter(c,ss,true)},"any":function(c,selectors){var ss=selectors.split("|");var r=[],ri=-1,s;for(var i=0,ci;ci=c[i];i++){for(var j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}}}return r},"odd":function(c){return this["nth-child"](c,"odd")},"even":function(c){return this["nth-child"](c,"even")},"nth":function(c,a){return c[a-1]||[]},"first":function(c){return c[0]||[]},"last":function(c){return c[c.length-1]||[]},"has":function(c,ss){var s=Ext.DomQuery.select;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci}}return r},"next":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r},"prev":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r}}}}();Ext.query=Ext.DomQuery.select;
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/core/Element-min.js b/typo3/contrib/extJS/build/core/Element-min.js
new file mode 100755 (executable)
index 0000000..03bda47
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+(function(){var D=Ext.lib.Dom;var E=Ext.lib.Event;var A=Ext.lib.Anim;var propCache={};var camelRe=/(-[a-z])/gi;var camelFn=function(m,a){return a.charAt(1).toUpperCase()};var view=document.defaultView;Ext.Element=function(element,forceNew){var dom=typeof element=="string"?document.getElementById(element):element;if(!dom){return null}var id=dom.id;if(forceNew!==true&&id&&Ext.Element.cache[id]){return Ext.Element.cache[id]}this.dom=dom;this.id=id||Ext.id(dom)};var El=Ext.Element;El.prototype={originalDisplay:"",visibilityMode:1,defaultUnit:"px",setVisibilityMode:function(visMode){this.visibilityMode=visMode;return this},enableDisplayMode:function(display){this.setVisibilityMode(El.DISPLAY);if(typeof display!="undefined"){this.originalDisplay=display}return this},findParent:function(simpleSelector,maxDepth,returnEl){var p=this.dom,b=document.body,depth=0,dq=Ext.DomQuery,stopEl;maxDepth=maxDepth||50;if(typeof maxDepth!="number"){stopEl=Ext.getDom(maxDepth);maxDepth=10}while(p&&p.nodeType==1&&depth<maxDepth&&p!=b&&p!=stopEl){if(dq.is(p,simpleSelector)){return returnEl?Ext.get(p):p}depth++;p=p.parentNode}return null},findParentNode:function(simpleSelector,maxDepth,returnEl){var p=Ext.fly(this.dom.parentNode,"_internal");return p?p.findParent(simpleSelector,maxDepth,returnEl):null},up:function(simpleSelector,maxDepth){return this.findParentNode(simpleSelector,maxDepth,true)},is:function(simpleSelector){return Ext.DomQuery.is(this.dom,simpleSelector)},animate:function(args,duration,onComplete,easing,animType){this.anim(args,{duration:duration,callback:onComplete,easing:easing},animType);return this},anim:function(args,opt,animType,defaultDur,defaultEase,cb){animType=animType||"run";opt=opt||{};var anim=Ext.lib.Anim[animType](this.dom,args,(opt.duration||defaultDur)||0.35,(opt.easing||defaultEase)||"easeOut",function(){Ext.callback(cb,this);Ext.callback(opt.callback,opt.scope||this,[this,opt])},this);opt.anim=anim;return anim},preanim:function(a,i){return !a[i]?false:(typeof a[i]=="object"?a[i]:{duration:a[i+1],callback:a[i+2],easing:a[i+3]})},clean:function(forceReclean){if(this.isCleaned&&forceReclean!==true){return this}var ns=/\S/;var d=this.dom,n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!ns.test(n.nodeValue)){d.removeChild(n)}else{n.nodeIndex=++ni}n=nx}this.isCleaned=true;return this},scrollIntoView:function(container,hscroll){var c=Ext.getDom(container)||Ext.getBody().dom;var el=this.dom;var o=this.getOffsetsTo(c),l=o[0]+c.scrollLeft,t=o[1]+c.scrollTop,b=t+el.offsetHeight,r=l+el.offsetWidth;var ch=c.clientHeight;var ct=parseInt(c.scrollTop,10);var cl=parseInt(c.scrollLeft,10);var cb=ct+ch;var cr=cl+c.clientWidth;if(el.offsetHeight>ch||t<ct){c.scrollTop=t}else{if(b>cb){c.scrollTop=b-ch}}c.scrollTop=c.scrollTop;if(hscroll!==false){if(el.offsetWidth>c.clientWidth||l<cl){c.scrollLeft=l}else{if(r>cr){c.scrollLeft=r-c.clientWidth}}c.scrollLeft=c.scrollLeft}return this},scrollChildIntoView:function(child,hscroll){Ext.fly(child,"_scrollChildIntoView").scrollIntoView(this,hscroll)},autoHeight:function(animate,duration,onComplete,easing){var oldHeight=this.getHeight();this.clip();this.setHeight(1);setTimeout(function(){var height=parseInt(this.dom.scrollHeight,10);if(!animate){this.setHeight(height);this.unclip();if(typeof onComplete=="function"){onComplete()}}else{this.setHeight(oldHeight);this.setHeight(height,animate,duration,function(){this.unclip();if(typeof onComplete=="function"){onComplete()}}.createDelegate(this),easing)}}.createDelegate(this),0);return this},contains:function(el){if(!el){return false}return D.isAncestor(this.dom,el.dom?el.dom:el)},isVisible:function(deep){var vis=!(this.getStyle("visibility")=="hidden"||this.getStyle("display")=="none");if(deep!==true||!vis){return vis}var p=this.dom.parentNode;while(p&&p.tagName.toLowerCase()!="body"){if(!Ext.fly(p,"_isVisible").isVisible()){return false}p=p.parentNode}return true},select:function(selector,unique){return El.select(selector,unique,this.dom)},query:function(selector){return Ext.DomQuery.select(selector,this.dom)},child:function(selector,returnDom){var n=Ext.DomQuery.selectNode(selector,this.dom);return returnDom?n:Ext.get(n)},down:function(selector,returnDom){var n=Ext.DomQuery.selectNode(" > "+selector,this.dom);return returnDom?n:Ext.get(n)},initDD:function(group,config,overrides){var dd=new Ext.dd.DD(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides)},initDDProxy:function(group,config,overrides){var dd=new Ext.dd.DDProxy(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides)},initDDTarget:function(group,config,overrides){var dd=new Ext.dd.DDTarget(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides)},setVisible:function(visible,animate){if(!animate||!A){if(this.visibilityMode==El.DISPLAY){this.setDisplayed(visible)}else{this.fixDisplay();this.dom.style.visibility=visible?"visible":"hidden"}}else{var dom=this.dom;var visMode=this.visibilityMode;if(visible){this.setOpacity(0.01);this.setVisible(true)}this.anim({opacity:{to:(visible?1:0)}},this.preanim(arguments,1),null,0.35,"easeIn",function(){if(!visible){if(visMode==El.DISPLAY){dom.style.display="none"}else{dom.style.visibility="hidden"}Ext.get(dom).setOpacity(1)}})}return this},isDisplayed:function(){return this.getStyle("display")!="none"},toggle:function(animate){this.setVisible(!this.isVisible(),this.preanim(arguments,0));return this},setDisplayed:function(value){if(typeof value=="boolean"){value=value?this.originalDisplay:"none"}this.setStyle("display",value);return this},focus:function(){try{this.dom.focus()}catch(e){}return this},blur:function(){try{this.dom.blur()}catch(e){}return this},addClass:function(className){if(Ext.isArray(className)){for(var i=0,len=className.length;i<len;i++){this.addClass(className[i])}}else{if(className&&!this.hasClass(className)){this.dom.className=this.dom.className+" "+className}}return this},radioClass:function(className){var siblings=this.dom.parentNode.childNodes;for(var i=0;i<siblings.length;i++){var s=siblings[i];if(s.nodeType==1){Ext.get(s).removeClass(className)}}this.addClass(className);return this},removeClass:function(className){if(!className||!this.dom.className){return this}if(Ext.isArray(className)){for(var i=0,len=className.length;i<len;i++){this.removeClass(className[i])}}else{if(this.hasClass(className)){var re=this.classReCache[className];if(!re){re=new RegExp("(?:^|\\s+)"+className+"(?:\\s+|$)","g");this.classReCache[className]=re}this.dom.className=this.dom.className.replace(re," ")}}return this},classReCache:{},toggleClass:function(className){if(this.hasClass(className)){this.removeClass(className)}else{this.addClass(className)}return this},hasClass:function(className){return className&&(" "+this.dom.className+" ").indexOf(" "+className+" ")!=-1},replaceClass:function(oldClassName,newClassName){this.removeClass(oldClassName);this.addClass(newClassName);return this},getStyles:function(){var a=arguments,len=a.length,r={};for(var i=0;i<len;i++){r[a[i]]=this.getStyle(a[i])}return r},getStyle:function(){return view&&view.getComputedStyle?function(prop){var el=this.dom,v,cs,camel;if(prop=="float"){prop="cssFloat"}if(v=el.style[prop]){return v}if(cs=view.getComputedStyle(el,"")){if(!(camel=propCache[prop])){camel=propCache[prop]=prop.replace(camelRe,camelFn)}return cs[camel]}return null}:function(prop){var el=this.dom,v,cs,camel;if(prop=="opacity"){if(typeof el.style.filter=="string"){var m=el.style.filter.match(/alpha\(opacity=(.*)\)/i);if(m){var fv=parseFloat(m[1]);if(!isNaN(fv)){return fv?fv/100:0}}}return 1}else{if(prop=="float"){prop="styleFloat"}}if(!(camel=propCache[prop])){camel=propCache[prop]=prop.replace(camelRe,camelFn)}if(v=el.style[camel]){return v}if(cs=el.currentStyle){return cs[camel]}return null}}(),setStyle:function(prop,value){if(typeof prop=="string"){var camel;if(!(camel=propCache[prop])){camel=propCache[prop]=prop.replace(camelRe,camelFn)}if(camel=="opacity"){this.setOpacity(value)}else{this.dom.style[camel]=value}}else{for(var style in prop){if(typeof prop[style]!="function"){this.setStyle(style,prop[style])}}}return this},applyStyles:function(style){Ext.DomHelper.applyStyles(this.dom,style);return this},getX:function(){return D.getX(this.dom)},getY:function(){return D.getY(this.dom)},getXY:function(){return D.getXY(this.dom)},getOffsetsTo:function(el){var o=this.getXY();var e=Ext.fly(el,"_internal").getXY();return[o[0]-e[0],o[1]-e[1]]},setX:function(x,animate){if(!animate||!A){D.setX(this.dom,x)}else{this.setXY([x,this.getY()],this.preanim(arguments,1))}return this},setY:function(y,animate){if(!animate||!A){D.setY(this.dom,y)}else{this.setXY([this.getX(),y],this.preanim(arguments,1))}return this},setLeft:function(left){this.setStyle("left",this.addUnits(left));return this},setTop:function(top){this.setStyle("top",this.addUnits(top));return this},setRight:function(right){this.setStyle("right",this.addUnits(right));return this},setBottom:function(bottom){this.setStyle("bottom",this.addUnits(bottom));return this},setXY:function(pos,animate){if(!animate||!A){D.setXY(this.dom,pos)}else{this.anim({points:{to:pos}},this.preanim(arguments,1),"motion")}return this},setLocation:function(x,y,animate){this.setXY([x,y],this.preanim(arguments,2));return this},moveTo:function(x,y,animate){this.setXY([x,y],this.preanim(arguments,2));return this},getRegion:function(){return D.getRegion(this.dom)},getHeight:function(contentHeight){var h=this.dom.offsetHeight||0;h=contentHeight!==true?h:h-this.getBorderWidth("tb")-this.getPadding("tb");return h<0?0:h},getWidth:function(contentWidth){var w=this.dom.offsetWidth||0;w=contentWidth!==true?w:w-this.getBorderWidth("lr")-this.getPadding("lr");return w<0?0:w},getComputedHeight:function(){var h=Math.max(this.dom.offsetHeight,this.dom.clientHeight);if(!h){h=parseInt(this.getStyle("height"),10)||0;if(!this.isBorderBox()){h+=this.getFrameWidth("tb")}}return h},getComputedWidth:function(){var w=Math.max(this.dom.offsetWidth,this.dom.clientWidth);if(!w){w=parseInt(this.getStyle("width"),10)||0;if(!this.isBorderBox()){w+=this.getFrameWidth("lr")}}return w},getSize:function(contentSize){return{width:this.getWidth(contentSize),height:this.getHeight(contentSize)}},getStyleSize:function(){var w,h,d=this.dom,s=d.style;if(s.width&&s.width!="auto"){w=parseInt(s.width,10);if(Ext.isBorderBox){w-=this.getFrameWidth("lr")}}if(s.height&&s.height!="auto"){h=parseInt(s.height,10);if(Ext.isBorderBox){h-=this.getFrameWidth("tb")}}return{width:w||this.getWidth(true),height:h||this.getHeight(true)}},getViewSize:function(){var d=this.dom,doc=document,aw=0,ah=0;if(d==doc||d==doc.body){return{width:D.getViewWidth(),height:D.getViewHeight()}}else{return{width:d.clientWidth,height:d.clientHeight}}},getValue:function(asNumber){return asNumber?parseInt(this.dom.value,10):this.dom.value},adjustWidth:function(width){if(typeof width=="number"){if(this.autoBoxAdjust&&!this.isBorderBox()){width-=(this.getBorderWidth("lr")+this.getPadding("lr"))}if(width<0){width=0}}return width},adjustHeight:function(height){if(typeof height=="number"){if(this.autoBoxAdjust&&!this.isBorderBox()){height-=(this.getBorderWidth("tb")+this.getPadding("tb"))}if(height<0){height=0}}return height},setWidth:function(width,animate){width=this.adjustWidth(width);if(!animate||!A){this.dom.style.width=this.addUnits(width)}else{this.anim({width:{to:width}},this.preanim(arguments,1))}return this},setHeight:function(height,animate){height=this.adjustHeight(height);if(!animate||!A){this.dom.style.height=this.addUnits(height)}else{this.anim({height:{to:height}},this.preanim(arguments,1))}return this},setSize:function(width,height,animate){if(typeof width=="object"){height=width.height;width=width.width}width=this.adjustWidth(width);height=this.adjustHeight(height);if(!animate||!A){this.dom.style.width=this.addUnits(width);this.dom.style.height=this.addUnits(height)}else{this.anim({width:{to:width},height:{to:height}},this.preanim(arguments,2))}return this},setBounds:function(x,y,width,height,animate){if(!animate||!A){this.setSize(width,height);this.setLocation(x,y)}else{width=this.adjustWidth(width);height=this.adjustHeight(height);this.anim({points:{to:[x,y]},width:{to:width},height:{to:height}},this.preanim(arguments,4),"motion")}return this},setRegion:function(region,animate){this.setBounds(region.left,region.top,region.right-region.left,region.bottom-region.top,this.preanim(arguments,1));return this},addListener:function(eventName,fn,scope,options){Ext.EventManager.on(this.dom,eventName,fn,scope||this,options)},removeListener:function(eventName,fn,scope){Ext.EventManager.removeListener(this.dom,eventName,fn,scope||this);return this},removeAllListeners:function(){Ext.EventManager.removeAll(this.dom);return this},relayEvent:function(eventName,observable){this.on(eventName,function(e){observable.fireEvent(eventName,e)})},setOpacity:function(opacity,animate){if(!animate||!A){var s=this.dom.style;if(Ext.isIE){s.zoom=1;s.filter=(s.filter||"").replace(/alpha\([^\)]*\)/gi,"")+(opacity==1?"":" alpha(opacity="+opacity*100+")")}else{s.opacity=opacity}}else{this.anim({opacity:{to:opacity}},this.preanim(arguments,1),null,0.35,"easeIn")}return this},getLeft:function(local){if(!local){return this.getX()}else{return parseInt(this.getStyle("left"),10)||0}},getRight:function(local){if(!local){return this.getX()+this.getWidth()}else{return(this.getLeft(true)+this.getWidth())||0}},getTop:function(local){if(!local){return this.getY()}else{return parseInt(this.getStyle("top"),10)||0}},getBottom:function(local){if(!local){return this.getY()+this.getHeight()}else{return(this.getTop(true)+this.getHeight())||0}},position:function(pos,zIndex,x,y){if(!pos){if(this.getStyle("position")=="static"){this.setStyle("position","relative")}}else{this.setStyle("position",pos)}if(zIndex){this.setStyle("z-index",zIndex)}if(x!==undefined&&y!==undefined){this.setXY([x,y])}else{if(x!==undefined){this.setX(x)}else{if(y!==undefined){this.setY(y)}}}},clearPositioning:function(value){value=value||"";this.setStyle({"left":value,"right":value,"top":value,"bottom":value,"z-index":"","position":"static"});return this},getPositioning:function(){var l=this.getStyle("left");var t=this.getStyle("top");return{"position":this.getStyle("position"),"left":l,"right":l?"":this.getStyle("right"),"top":t,"bottom":t?"":this.getStyle("bottom"),"z-index":this.getStyle("z-index")}},getBorderWidth:function(side){return this.addStyles(side,El.borders)},getPadding:function(side){return this.addStyles(side,El.paddings)},setPositioning:function(pc){this.applyStyles(pc);if(pc.right=="auto"){this.dom.style.right=""}if(pc.bottom=="auto"){this.dom.style.bottom=""}return this},fixDisplay:function(){if(this.getStyle("display")=="none"){this.setStyle("visibility","hidden");this.setStyle("display",this.originalDisplay);if(this.getStyle("display")=="none"){this.setStyle("display","block")}}},setOverflow:function(v){if(v=="auto"&&Ext.isMac&&Ext.isGecko2){this.dom.style.overflow="hidden";(function(){this.dom.style.overflow="auto"}).defer(1,this)}else{this.dom.style.overflow=v}},setLeftTop:function(left,top){this.dom.style.left=this.addUnits(left);this.dom.style.top=this.addUnits(top);return this},move:function(direction,distance,animate){var xy=this.getXY();direction=direction.toLowerCase();switch(direction){case"l":case"left":this.moveTo(xy[0]-distance,xy[1],this.preanim(arguments,2));break;case"r":case"right":this.moveTo(xy[0]+distance,xy[1],this.preanim(arguments,2));break;case"t":case"top":case"up":this.moveTo(xy[0],xy[1]-distance,this.preanim(arguments,2));break;case"b":case"bottom":case"down":this.moveTo(xy[0],xy[1]+distance,this.preanim(arguments,2));break}return this},clip:function(){if(!this.isClipped){this.isClipped=true;this.originalClip={"o":this.getStyle("overflow"),"x":this.getStyle("overflow-x"),"y":this.getStyle("overflow-y")};this.setStyle("overflow","hidden");this.setStyle("overflow-x","hidden");this.setStyle("overflow-y","hidden")}return this},unclip:function(){if(this.isClipped){this.isClipped=false;var o=this.originalClip;if(o.o){this.setStyle("overflow",o.o)}if(o.x){this.setStyle("overflow-x",o.x)}if(o.y){this.setStyle("overflow-y",o.y)}}return this},getAnchorXY:function(anchor,local,s){var w,h,vp=false;if(!s){var d=this.dom;if(d==document.body||d==document){vp=true;w=D.getViewWidth();h=D.getViewHeight()}else{w=this.getWidth();h=this.getHeight()}}else{w=s.width;h=s.height}var x=0,y=0,r=Math.round;switch((anchor||"tl").toLowerCase()){case"c":x=r(w*0.5);y=r(h*0.5);break;case"t":x=r(w*0.5);y=0;break;case"l":x=0;y=r(h*0.5);break;case"r":x=w;y=r(h*0.5);break;case"b":x=r(w*0.5);y=h;break;case"tl":x=0;y=0;break;case"bl":x=0;y=h;break;case"br":x=w;y=h;break;case"tr":x=w;y=0;break}if(local===true){return[x,y]}if(vp){var sc=this.getScroll();return[x+sc.left,y+sc.top]}var o=this.getXY();return[x+o[0],y+o[1]]},getAlignToXY:function(el,p,o){el=Ext.get(el);if(!el||!el.dom){throw"Element.alignToXY with an element that doesn't exist"}var d=this.dom;var c=false;var p1="",p2="";o=o||[0,0];if(!p){p="tl-bl"}else{if(p=="?"){p="tl-bl?"}else{if(p.indexOf("-")==-1){p="tl-"+p}}}p=p.toLowerCase();var m=p.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!m){throw"Element.alignTo with an invalid alignment "+p}p1=m[1];p2=m[2];c=!!m[3];var a1=this.getAnchorXY(p1,true);var a2=el.getAnchorXY(p2,false);var x=a2[0]-a1[0]+o[0];var y=a2[1]-a1[1]+o[1];if(c){var w=this.getWidth(),h=this.getHeight(),r=el.getRegion();var dw=D.getViewWidth()-5,dh=D.getViewHeight()-5;var p1y=p1.charAt(0),p1x=p1.charAt(p1.length-1);var p2y=p2.charAt(0),p2x=p2.charAt(p2.length-1);var swapY=((p1y=="t"&&p2y=="b")||(p1y=="b"&&p2y=="t"));var swapX=((p1x=="r"&&p2x=="l")||(p1x=="l"&&p2x=="r"));var doc=document;var scrollX=(doc.documentElement.scrollLeft||doc.body.scrollLeft||0)+5;var scrollY=(doc.documentElement.scrollTop||doc.body.scrollTop||0)+5;if((x+w)>dw+scrollX){x=swapX?r.left-w:dw+scrollX-w}if(x<scrollX){x=swapX?r.right:scrollX}if((y+h)>dh+scrollY){y=swapY?r.top-h:dh+scrollY-h}if(y<scrollY){y=swapY?r.bottom:scrollY}}return[x,y]},getConstrainToXY:function(){var os={top:0,left:0,bottom:0,right:0};return function(el,local,offsets,proposedXY){el=Ext.get(el);offsets=offsets?Ext.applyIf(offsets,os):os;var vw,vh,vx=0,vy=0;if(el.dom==document.body||el.dom==document){vw=Ext.lib.Dom.getViewWidth();vh=Ext.lib.Dom.getViewHeight()}else{vw=el.dom.clientWidth;vh=el.dom.clientHeight;if(!local){var vxy=el.getXY();vx=vxy[0];vy=vxy[1]}}var s=el.getScroll();vx+=offsets.left+s.left;vy+=offsets.top+s.top;vw-=offsets.right;vh-=offsets.bottom;var vr=vx+vw;var vb=vy+vh;var xy=proposedXY||(!local?this.getXY():[this.getLeft(true),this.getTop(true)]);var x=xy[0],y=xy[1];var w=this.dom.offsetWidth,h=this.dom.offsetHeight;var moved=false;if((x+w)>vr){x=vr-w;moved=true}if((y+h)>vb){y=vb-h;moved=true}if(x<vx){x=vx;moved=true}if(y<vy){y=vy;moved=true}return moved?[x,y]:false}}(),adjustForConstraints:function(xy,parent,offsets){return this.getConstrainToXY(parent||document,false,offsets,xy)||xy},alignTo:function(element,position,offsets,animate){var xy=this.getAlignToXY(element,position,offsets);this.setXY(xy,this.preanim(arguments,3));return this},anchorTo:function(el,alignment,offsets,animate,monitorScroll,callback){var action=function(){this.alignTo(el,alignment,offsets,animate);Ext.callback(callback,this)};Ext.EventManager.onWindowResize(action,this);var tm=typeof monitorScroll;if(tm!="undefined"){Ext.EventManager.on(window,"scroll",action,this,{buffer:tm=="number"?monitorScroll:50})}action.call(this);return this},clearOpacity:function(){if(window.ActiveXObject){if(typeof this.dom.style.filter=="string"&&(/alpha/i).test(this.dom.style.filter)){this.dom.style.filter=""}}else{this.dom.style.opacity="";this.dom.style["-moz-opacity"]="";this.dom.style["-khtml-opacity"]=""}return this},hide:function(animate){this.setVisible(false,this.preanim(arguments,0));return this},show:function(animate){this.setVisible(true,this.preanim(arguments,0));return this},addUnits:function(size){return Ext.Element.addUnits(size,this.defaultUnit)},update:function(html,loadScripts,callback){if(typeof html=="undefined"){html=""}if(loadScripts!==true){this.dom.innerHTML=html;if(typeof callback=="function"){callback()}return this}var id=Ext.id();var dom=this.dom;html+="<span id=\""+id+"\"></span>";E.onAvailable(id,function(){var hd=document.getElementsByTagName("head")[0];var re=/(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;var srcRe=/\ssrc=([\'\"])(.*?)\1/i;var typeRe=/\stype=([\'\"])(.*?)\1/i;var match;while(match=re.exec(html)){var attrs=match[1];var srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){var s=document.createElement("script");s.src=srcMatch[2];var typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2]){s.type=typeMatch[2]}hd.appendChild(s)}else{if(match[2]&&match[2].length>0){if(window.execScript){window.execScript(match[2])}else{window.eval(match[2])}}}}var el=document.getElementById(id);if(el){Ext.removeNode(el)}if(typeof callback=="function"){callback()}});dom.innerHTML=html.replace(/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this},load:function(){var um=this.getUpdater();um.update.apply(um,arguments);return this},getUpdater:function(){if(!this.updateManager){this.updateManager=new Ext.Updater(this)}return this.updateManager},unselectable:function(){this.dom.unselectable="on";this.swallowEvent("selectstart",true);this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");this.addClass("x-unselectable");return this},getCenterXY:function(){return this.getAlignToXY(document,"c-c")},center:function(centerIn){this.alignTo(centerIn||document,"c-c");return this},isBorderBox:function(){return noBoxAdjust[this.dom.tagName.toLowerCase()]||Ext.isBorderBox},getBox:function(contentBox,local){var xy;if(!local){xy=this.getXY()}else{var left=parseInt(this.getStyle("left"),10)||0;var top=parseInt(this.getStyle("top"),10)||0;xy=[left,top]}var el=this.dom,w=el.offsetWidth,h=el.offsetHeight,bx;if(!contentBox){bx={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:w,height:h}}else{var l=this.getBorderWidth("l")+this.getPadding("l");var r=this.getBorderWidth("r")+this.getPadding("r");var t=this.getBorderWidth("t")+this.getPadding("t");var b=this.getBorderWidth("b")+this.getPadding("b");bx={x:xy[0]+l,y:xy[1]+t,0:xy[0]+l,1:xy[1]+t,width:w-(l+r),height:h-(t+b)}}bx.right=bx.x+bx.width;bx.bottom=bx.y+bx.height;return bx},getFrameWidth:function(sides,onlyContentBox){return onlyContentBox&&Ext.isBorderBox?0:(this.getPadding(sides)+this.getBorderWidth(sides))},setBox:function(box,adjust,animate){var w=box.width,h=box.height;if((adjust&&!this.autoBoxAdjust)&&!this.isBorderBox()){w-=(this.getBorderWidth("lr")+this.getPadding("lr"));h-=(this.getBorderWidth("tb")+this.getPadding("tb"))}this.setBounds(box.x,box.y,w,h,this.preanim(arguments,2));return this},repaint:function(){var dom=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.get(dom).removeClass("x-repaint")},1);return this},getMargins:function(side){if(!side){return{top:parseInt(this.getStyle("margin-top"),10)||0,left:parseInt(this.getStyle("margin-left"),10)||0,bottom:parseInt(this.getStyle("margin-bottom"),10)||0,right:parseInt(this.getStyle("margin-right"),10)||0}}else{return this.addStyles(side,El.margins)}},addStyles:function(sides,styles){var val=0,v,w;for(var i=0,len=sides.length;i<len;i++){v=this.getStyle(styles[sides.charAt(i)]);if(v){w=parseInt(v,10);if(w){val+=(w>=0?w:-1*w)}}}return val},createProxy:function(config,renderTo,matchBox){config=typeof config=="object"?config:{tag:"div",cls:config};var proxy;if(renderTo){proxy=Ext.DomHelper.append(renderTo,config,true)}else{proxy=Ext.DomHelper.insertBefore(this.dom,config,true)}if(matchBox){proxy.setBox(this.getBox())}return proxy},mask:function(msg,msgCls){if(this.getStyle("position")=="static"){this.setStyle("position","relative")}if(this._maskMsg){this._maskMsg.remove()}if(this._mask){this._mask.remove()}this._mask=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask"},true);this.addClass("x-masked");this._mask.setDisplayed(true);if(typeof msg=="string"){this._maskMsg=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask-msg",cn:{tag:"div"}},true);var mm=this._maskMsg;mm.dom.className=msgCls?"ext-el-mask-msg "+msgCls:"ext-el-mask-msg";mm.dom.firstChild.innerHTML=msg;mm.setDisplayed(true);mm.center(this)}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&this.getStyle("height")=="auto"){this._mask.setSize(this.dom.clientWidth,this.getHeight())}return this._mask},unmask:function(){if(this._mask){if(this._maskMsg){this._maskMsg.remove();delete this._maskMsg}this._mask.remove();delete this._mask}this.removeClass("x-masked")},isMasked:function(){return this._mask&&this._mask.isVisible()},createShim:function(){var el=document.createElement("iframe");el.frameBorder="0";el.className="ext-shim";if(Ext.isIE&&Ext.isSecure){el.src=Ext.SSL_SECURE_URL}var shim=Ext.get(this.dom.parentNode.insertBefore(el,this.dom));shim.autoBoxAdjust=false;return shim},remove:function(){Ext.removeNode(this.dom);delete El.cache[this.dom.id]},hover:function(overFn,outFn,scope){var preOverFn=function(e){if(!e.within(this,true)){overFn.apply(scope||this,arguments)}};var preOutFn=function(e){if(!e.within(this,true)){outFn.apply(scope||this,arguments)}};this.on("mouseover",preOverFn,this.dom);this.on("mouseout",preOutFn,this.dom);return this},addClassOnOver:function(className){this.hover(function(){Ext.fly(this,"_internal").addClass(className)},function(){Ext.fly(this,"_internal").removeClass(className)});return this},addClassOnFocus:function(className){this.on("focus",function(){Ext.fly(this,"_internal").addClass(className)},this.dom);this.on("blur",function(){Ext.fly(this,"_internal").removeClass(className)},this.dom);return this},addClassOnClick:function(className){var dom=this.dom;this.on("mousedown",function(){Ext.fly(dom,"_internal").addClass(className);var d=Ext.getDoc();var fn=function(){Ext.fly(dom,"_internal").removeClass(className);d.removeListener("mouseup",fn)};d.on("mouseup",fn)});return this},swallowEvent:function(eventName,preventDefault){var fn=function(e){e.stopPropagation();if(preventDefault){e.preventDefault()}};if(Ext.isArray(eventName)){for(var i=0,len=eventName.length;i<len;i++){this.on(eventName[i],fn)}return this}this.on(eventName,fn);return this},parent:function(selector,returnDom){return this.matchNode("parentNode","parentNode",selector,returnDom)},next:function(selector,returnDom){return this.matchNode("nextSibling","nextSibling",selector,returnDom)},prev:function(selector,returnDom){return this.matchNode("previousSibling","previousSibling",selector,returnDom)},first:function(selector,returnDom){return this.matchNode("nextSibling","firstChild",selector,returnDom)},last:function(selector,returnDom){return this.matchNode("previousSibling","lastChild",selector,returnDom)},matchNode:function(dir,start,selector,returnDom){var n=this.dom[start];while(n){if(n.nodeType==1&&(!selector||Ext.DomQuery.is(n,selector))){return !returnDom?Ext.get(n):n}n=n[dir]}return null},appendChild:function(el){el=Ext.get(el);el.appendTo(this);return this},createChild:function(config,insertBefore,returnDom){config=config||{tag:"div"};if(insertBefore){return Ext.DomHelper.insertBefore(insertBefore,config,returnDom!==true)}return Ext.DomHelper[!this.dom.firstChild?"overwrite":"append"](this.dom,config,returnDom!==true)},appendTo:function(el){el=Ext.getDom(el);el.appendChild(this.dom);return this},insertBefore:function(el){el=Ext.getDom(el);el.parentNode.insertBefore(this.dom,el);return this},insertAfter:function(el){el=Ext.getDom(el);el.parentNode.insertBefore(this.dom,el.nextSibling);return this},insertFirst:function(el,returnDom){el=el||{};if(typeof el=="object"&&!el.nodeType&&!el.dom){return this.createChild(el,this.dom.firstChild,returnDom)}else{el=Ext.getDom(el);this.dom.insertBefore(el,this.dom.firstChild);return !returnDom?Ext.get(el):el}},insertSibling:function(el,where,returnDom){var rt;if(Ext.isArray(el)){for(var i=0,len=el.length;i<len;i++){rt=this.insertSibling(el[i],where,returnDom)}return rt}where=where?where.toLowerCase():"before";el=el||{};var refNode=where=="before"?this.dom:this.dom.nextSibling;if(typeof el=="object"&&!el.nodeType&&!el.dom){if(where=="after"&&!this.dom.nextSibling){rt=Ext.DomHelper.append(this.dom.parentNode,el,!returnDom)}else{rt=Ext.DomHelper[where=="after"?"insertAfter":"insertBefore"](this.dom,el,!returnDom)}}else{rt=this.dom.parentNode.insertBefore(Ext.getDom(el),refNode);if(!returnDom){rt=Ext.get(rt)}}return rt},wrap:function(config,returnDom){if(!config){config={tag:"div"}}var newEl=Ext.DomHelper.insertBefore(this.dom,config,!returnDom);newEl.dom?newEl.dom.appendChild(this.dom):newEl.appendChild(this.dom);return newEl},replace:function(el){el=Ext.get(el);this.insertBefore(el);el.remove();return this},replaceWith:function(el){if(typeof el=="object"&&!el.nodeType&&!el.dom){el=this.insertSibling(el,"before")}else{el=Ext.getDom(el);this.dom.parentNode.insertBefore(el,this.dom)}El.uncache(this.id);this.dom.parentNode.removeChild(this.dom);this.dom=el;this.id=Ext.id(el);El.cache[this.id]=this;return this},insertHtml:function(where,html,returnEl){var el=Ext.DomHelper.insertHtml(where,this.dom,html);return returnEl?Ext.get(el):el},set:function(o,useSet){var el=this.dom;useSet=typeof useSet=="undefined"?(el.setAttribute?true:false):useSet;for(var attr in o){if(attr=="style"||typeof o[attr]=="function"){continue}if(attr=="cls"){el.className=o["cls"]}else{if(o.hasOwnProperty(attr)){if(useSet){el.setAttribute(attr,o[attr])}else{el[attr]=o[attr]}}}}if(o.style){Ext.DomHelper.applyStyles(el,o.style)}return this},addKeyListener:function(key,fn,scope){var config;if(typeof key!="object"||Ext.isArray(key)){config={key:key,fn:fn,scope:scope}}else{config={key:key.key,shift:key.shift,ctrl:key.ctrl,alt:key.alt,fn:fn,scope:scope}}return new Ext.KeyMap(this,config)},addKeyMap:function(config){return new Ext.KeyMap(this,config)},isScrollable:function(){var dom=this.dom;return dom.scrollHeight>dom.clientHeight||dom.scrollWidth>dom.clientWidth},scrollTo:function(side,value,animate){var prop=side.toLowerCase()=="left"?"scrollLeft":"scrollTop";if(!animate||!A){this.dom[prop]=value}else{var to=prop=="scrollLeft"?[value,this.dom.scrollTop]:[this.dom.scrollLeft,value];this.anim({scroll:{"to":to}},this.preanim(arguments,2),"scroll")}return this},scroll:function(direction,distance,animate){if(!this.isScrollable()){return }var el=this.dom;var l=el.scrollLeft,t=el.scrollTop;var w=el.scrollWidth,h=el.scrollHeight;var cw=el.clientWidth,ch=el.clientHeight;direction=direction.toLowerCase();var scrolled=false;var a=this.preanim(arguments,2);switch(direction){case"l":case"left":if(w-l>cw){var v=Math.min(l+distance,w-cw);this.scrollTo("left",v,a);scrolled=true}break;case"r":case"right":if(l>0){var v=Math.max(l-distance,0);this.scrollTo("left",v,a);scrolled=true}break;case"t":case"top":case"up":if(t>0){var v=Math.max(t-distance,0);this.scrollTo("top",v,a);scrolled=true}break;case"b":case"bottom":case"down":if(h-t>ch){var v=Math.min(t+distance,h-ch);this.scrollTo("top",v,a);scrolled=true}break}return scrolled},translatePoints:function(x,y){if(typeof x=="object"||Ext.isArray(x)){y=x[1];x=x[0]}var p=this.getStyle("position");var o=this.getXY();var l=parseInt(this.getStyle("left"),10);var t=parseInt(this.getStyle("top"),10);if(isNaN(l)){l=(p=="relative")?0:this.dom.offsetLeft}if(isNaN(t)){t=(p=="relative")?0:this.dom.offsetTop}return{left:(x-o[0]+l),top:(y-o[1]+t)}},getScroll:function(){var d=this.dom,doc=document;if(d==doc||d==doc.body){var l,t;if(Ext.isIE&&Ext.isStrict){l=doc.documentElement.scrollLeft||(doc.body.scrollLeft||0);t=doc.documentElement.scrollTop||(doc.body.scrollTop||0)}else{l=window.pageXOffset||(doc.body.scrollLeft||0);t=window.pageYOffset||(doc.body.scrollTop||0)}return{left:l,top:t}}else{return{left:d.scrollLeft,top:d.scrollTop}}},getColor:function(attr,defaultValue,prefix){var v=this.getStyle(attr);if(!v||v=="transparent"||v=="inherit"){return defaultValue}var color=typeof prefix=="undefined"?"#":prefix;if(v.substr(0,4)=="rgb("){var rvs=v.slice(4,v.length-1).split(",");for(var i=0;i<3;i++){var h=parseInt(rvs[i]);var s=h.toString(16);if(h<16){s="0"+s}color+=s}}else{if(v.substr(0,1)=="#"){if(v.length==4){for(var i=1;i<4;i++){var c=v.charAt(i);color+=c+c}}else{if(v.length==7){color+=v.substr(1)}}}}return(color.length>5?color.toLowerCase():defaultValue)},boxWrap:function(cls){cls=cls||"x-box";var el=Ext.get(this.insertHtml("beforeBegin",String.format("<div class=\"{0}\">"+El.boxMarkup+"</div>",cls)));el.child("."+cls+"-mc").dom.appendChild(this.dom);return el},getAttributeNS:Ext.isIE?function(ns,name){var d=this.dom;var type=typeof d[ns+":"+name];if(type!="undefined"&&type!="unknown"){return d[ns+":"+name]}return d[name]}:function(ns,name){var d=this.dom;return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)||d.getAttribute(name)||d[name]},getTextWidth:function(text,min,max){return(Ext.util.TextMetrics.measure(this.dom,Ext.value(text,this.dom.innerHTML,true)).width).constrain(min||0,max||1000000)}};var ep=El.prototype;ep.on=ep.addListener;ep.mon=ep.addListener;ep.getUpdateManager=ep.getUpdater;ep.un=ep.removeListener;ep.autoBoxAdjust=true;El.unitPattern=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;El.addUnits=function(v,defaultUnit){if(v===""||v=="auto"){return v}if(v===undefined){return""}if(typeof v=="number"||!El.unitPattern.test(v)){return v+(defaultUnit||"px")}return v};El.boxMarkup="<div class=\"{0}-tl\"><div class=\"{0}-tr\"><div class=\"{0}-tc\"></div></div></div><div class=\"{0}-ml\"><div class=\"{0}-mr\"><div class=\"{0}-mc\"></div></div></div><div class=\"{0}-bl\"><div class=\"{0}-br\"><div class=\"{0}-bc\"></div></div></div>";El.VISIBILITY=1;El.DISPLAY=2;El.borders={l:"border-left-width",r:"border-right-width",t:"border-top-width",b:"border-bottom-width"};El.paddings={l:"padding-left",r:"padding-right",t:"padding-top",b:"padding-bottom"};El.margins={l:"margin-left",r:"margin-right",t:"margin-top",b:"margin-bottom"};El.cache={};var docEl;El.get=function(el){var ex,elm,id;if(!el){return null}if(typeof el=="string"){if(!(elm=document.getElementById(el))){return null}if(ex=El.cache[el]){ex.dom=elm}else{ex=El.cache[el]=new El(elm)}return ex}else{if(el.tagName){if(!(id=el.id)){id=Ext.id(el)}if(ex=El.cache[id]){ex.dom=el}else{ex=El.cache[id]=new El(el)}return ex}else{if(el instanceof El){if(el!=docEl){el.dom=document.getElementById(el.id)||el.dom;El.cache[el.id]=el}return el}else{if(el.isComposite){return el}else{if(Ext.isArray(el)){return El.select(el)}else{if(el==document){if(!docEl){var f=function(){};f.prototype=El.prototype;docEl=new f();docEl.dom=document}return docEl}}}}}}return null};El.uncache=function(el){for(var i=0,a=arguments,len=a.length;i<len;i++){if(a[i]){delete El.cache[a[i].id||a[i]]}}};El.garbageCollect=function(){if(!Ext.enableGarbageCollector){clearInterval(El.collectorThread);return }for(var eid in El.cache){var el=El.cache[eid],d=el.dom;if(!d||!d.parentNode||(!d.offsetParent&&!document.getElementById(eid))){delete El.cache[eid];if(d&&Ext.enableListenerCollection){Ext.EventManager.removeAll(d)}}}};El.collectorThreadId=setInterval(El.garbageCollect,30000);var flyFn=function(){};flyFn.prototype=El.prototype;var _cls=new flyFn();El.Flyweight=function(dom){this.dom=dom};El.Flyweight.prototype=_cls;El.Flyweight.prototype.isFlyweight=true;El._flyweights={};El.fly=function(el,named){named=named||"_global";el=Ext.getDom(el);if(!el){return null}if(!El._flyweights[named]){El._flyweights[named]=new El.Flyweight()}El._flyweights[named].dom=el;return El._flyweights[named]};Ext.get=El.get;Ext.fly=El.fly;var noBoxAdjust=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1};if(Ext.isIE||Ext.isGecko){noBoxAdjust["button"]=1}Ext.EventManager.on(window,"unload",function(){delete El.cache;delete El._flyweights})})();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/core/EventManager-min.js b/typo3/contrib/extJS/build/core/EventManager-min.js
new file mode 100755 (executable)
index 0000000..192072e
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.EventManager=function(){var X,Q,M=false;var N,W,H,S;var P=Ext.lib.Event;var R=Ext.lib.Dom;var A="Ex"+"t";var J={};var O=function(b,E,a,Z,Y){var d=Ext.id(b);if(!J[d]){J[d]={}}var c=J[d];if(!c[E]){c[E]=[]}var D=c[E];D.push({id:d,ename:E,fn:a,wrap:Z,scope:Y});P.on(b,E,Z);if(E=="mousewheel"&&b.addEventListener){b.addEventListener("DOMMouseScroll",Z,false);P.on(window,"unload",function(){b.removeEventListener("DOMMouseScroll",Z,false)})}if(E=="mousedown"&&b==document){Ext.EventManager.stoppedMouseDownEvent.addListener(Z)}};var I=function(Y,a,e,g){Y=Ext.getDom(Y);var D=Ext.id(Y),f=J[D],E;if(f){var c=f[a],Z;if(c){for(var b=0,d=c.length;b<d;b++){Z=c[b];if(Z.fn==e&&(!g||Z.scope==g)){E=Z.wrap;P.un(Y,a,E);c.splice(b,1);break}}}}if(a=="mousewheel"&&Y.addEventListener&&E){Y.removeEventListener("DOMMouseScroll",E,false)}if(a=="mousedown"&&Y==document&&E){Ext.EventManager.stoppedMouseDownEvent.removeListener(E)}};var F=function(a){a=Ext.getDom(a);var c=Ext.id(a),b=J[c],E;if(b){for(var Z in b){if(b.hasOwnProperty(Z)){E=b[Z];for(var Y=0,D=E.length;Y<D;Y++){P.un(a,Z,E[Y].wrap);E[Y]=null}}b[Z]=null}delete J[c]}};var C=function(){if(!M){M=Ext.isReady=true;if(Ext.isGecko||Ext.isOpera){document.removeEventListener("DOMContentLoaded",C,false)}}if(Q){clearInterval(Q);Q=null}if(X){X.fire();X.clearListeners()}};var B=function(){X=new Ext.util.Event();if(Ext.isReady){return }P.on(window,"load",C);if(Ext.isGecko||Ext.isOpera){document.addEventListener("DOMContentLoaded",C,false)}else{if(Ext.isIE){Q=setInterval(function(){try{Ext.isReady||(document.documentElement.doScroll("left"))}catch(D){return }C()},5);document.onreadystatechange=function(){if(document.readyState=="complete"){document.onreadystatechange=null;C()}}}else{if(Ext.isSafari){Q=setInterval(function(){var D=document.readyState;if(D=="complete"){C()}},10)}}}};var V=function(E,Y){var D=new Ext.util.DelayedTask(E);return function(Z){Z=new Ext.EventObjectImpl(Z);D.delay(Y.buffer,E,null,[Z])}};var T=function(a,Z,D,Y,E){return function(b){Ext.EventManager.removeListener(Z,D,Y,E);a(b)}};var G=function(D,E){return function(Y){Y=new Ext.EventObjectImpl(Y);setTimeout(function(){D(Y)},E.delay||10)}};var L=function(Y,E,D,c,b){var d=(!D||typeof D=="boolean")?{}:D;c=c||d.fn;b=b||d.scope;var a=Ext.getDom(Y);if(!a){throw"Error listening for \""+E+"\". Element \""+Y+"\" doesn't exist."}var Z=function(g){if(!window[A]){return }g=Ext.EventObject.setEvent(g);var f;if(d.delegate){f=g.getTarget(d.delegate,a);if(!f){return }}else{f=g.target}if(d.stopEvent===true){g.stopEvent()}if(d.preventDefault===true){g.preventDefault()}if(d.stopPropagation===true){g.stopPropagation()}if(d.normalized===false){g=g.browserEvent}c.call(b||a,g,f,d)};if(d.delay){Z=G(Z,d)}if(d.single){Z=T(Z,a,E,c,b)}if(d.buffer){Z=V(Z,d)}O(a,E,c,Z,b);return Z};var K=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;var U={addListener:function(Y,D,a,Z,E){if(typeof D=="object"){var c=D;for(var b in c){if(K.test(b)){continue}if(typeof c[b]=="function"){L(Y,b,c,c[b],c.scope)}else{L(Y,b,c[b])}}return }return L(Y,D,E,a,Z)},removeListener:function(E,D,Z,Y){return I(E,D,Z,Y)},removeAll:function(D){return F(D)},onDocumentReady:function(Y,E,D){if(!X){B()}if(M||Ext.isReady){D||(D={});Y.defer(D.delay||0,E)}else{X.addListener(Y,E,D)}},onWindowResize:function(Y,E,D){if(!N){N=new Ext.util.Event();W=new Ext.util.DelayedTask(function(){N.fire(R.getViewWidth(),R.getViewHeight())});P.on(window,"resize",this.fireWindowResize,this)}N.addListener(Y,E,D)},fireWindowResize:function(){if(N){if((Ext.isIE||Ext.isAir)&&W){W.delay(50)}else{N.fire(R.getViewWidth(),R.getViewHeight())}}},onTextResize:function(Z,Y,D){if(!H){H=new Ext.util.Event();var E=new Ext.Element(document.createElement("div"));E.dom.className="x-text-resize";E.dom.innerHTML="X";E.appendTo(document.body);S=E.dom.offsetHeight;setInterval(function(){if(E.dom.offsetHeight!=S){H.fire(S,S=E.dom.offsetHeight)}},this.textResizeInterval)}H.addListener(Z,Y,D)},removeResizeListener:function(E,D){if(N){N.removeListener(E,D)}},fireResize:function(){if(N){N.fire(R.getViewWidth(),R.getViewHeight())}},ieDeferSrc:false,textResizeInterval:50};U.on=U.addListener;U.un=U.removeListener;U.stoppedMouseDownEvent=new Ext.util.Event();return U}();Ext.onReady=Ext.EventManager.onDocumentReady;(function(){var A=function(){var C=document.body||document.getElementsByTagName("body")[0];if(!C){return false}var B=[" ",Ext.isIE?"ext-ie "+(Ext.isIE6?"ext-ie6":"ext-ie7"):Ext.isGecko?"ext-gecko "+(Ext.isGecko2?"ext-gecko2":"ext-gecko3"):Ext.isOpera?"ext-opera":Ext.isSafari?"ext-safari":""];if(Ext.isMac){B.push("ext-mac")}if(Ext.isLinux){B.push("ext-linux")}if(Ext.isBorderBox){B.push("ext-border-box")}if(Ext.isStrict){var D=C.parentNode;if(D){D.className+=" ext-strict"}}C.className+=B.join(" ");return true};if(!A()){Ext.onReady(A)}})();Ext.EventObject=function(){var B=Ext.lib.Event;var A={3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35};var C=Ext.isIE?{1:0,4:1,2:2}:(Ext.isSafari?{1:0,2:1,3:2}:{0:0,1:1,2:2});Ext.EventObjectImpl=function(D){if(D){this.setEvent(D.browserEvent||D)}};Ext.EventObjectImpl.prototype={browserEvent:null,button:-1,shiftKey:false,ctrlKey:false,altKey:false,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,RETURN:13,SHIFT:16,CTRL:17,CONTROL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGEUP:33,PAGE_DOWN:34,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,setEvent:function(D){if(D==this||(D&&D.browserEvent)){return D}this.browserEvent=D;if(D){this.button=D.button?C[D.button]:(D.which?D.which-1:-1);if(D.type=="click"&&this.button==-1){this.button=0}this.type=D.type;this.shiftKey=D.shiftKey;this.ctrlKey=D.ctrlKey||D.metaKey;this.altKey=D.altKey;this.keyCode=D.keyCode;this.charCode=D.charCode;this.target=B.getTarget(D);this.xy=B.getXY(D)}else{this.button=-1;this.shiftKey=false;this.ctrlKey=false;this.altKey=false;this.keyCode=0;this.charCode=0;this.target=null;this.xy=[0,0]}return this},stopEvent:function(){if(this.browserEvent){if(this.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this)}B.stopEvent(this.browserEvent)}},preventDefault:function(){if(this.browserEvent){B.preventDefault(this.browserEvent)}},isNavKeyPress:function(){var D=this.keyCode;D=Ext.isSafari?(A[D]||D):D;return(D>=33&&D<=40)||D==this.RETURN||D==this.TAB||D==this.ESC},isSpecialKey:function(){var D=this.keyCode;return(this.type=="keypress"&&this.ctrlKey)||D==9||D==13||D==40||D==27||(D==16)||(D==17)||(D>=18&&D<=20)||(D>=33&&D<=35)||(D>=36&&D<=39)||(D>=44&&D<=45)},stopPropagation:function(){if(this.browserEvent){if(this.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this)}B.stopPropagation(this.browserEvent)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){var D=this.keyCode||this.charCode;return Ext.isSafari?(A[D]||D):D},getPageX:function(){return this.xy[0]},getPageY:function(){return this.xy[1]},getTime:function(){if(this.browserEvent){return B.getTime(this.browserEvent)}return null},getXY:function(){return this.xy},getTarget:function(E,F,D){return E?Ext.fly(this.target).findParent(E,F,D):(D?Ext.get(this.target):this.target)},getRelatedTarget:function(){if(this.browserEvent){return B.getRelatedTarget(this.browserEvent)}return null},getWheelDelta:function(){var D=this.browserEvent;var E=0;if(D.wheelDelta){E=D.wheelDelta/120}else{if(D.detail){E=-D.detail/3}}return E},hasModifier:function(){return((this.ctrlKey||this.altKey)||this.shiftKey)?true:false},within:function(E,F){var D=this[F?"getRelatedTarget":"getTarget"]();return D&&Ext.fly(E).contains(D)},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1])}};return new Ext.EventObjectImpl()}();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/core/Ext-min.js b/typo3/contrib/extJS/build/core/Ext-min.js
new file mode 100755 (executable)
index 0000000..448820d
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext={version:"2.2"};window["undefined"]=window["undefined"];Ext.apply=function(C,D,B){if(B){Ext.apply(C,B)}if(C&&D&&typeof D=="object"){for(var A in D){C[A]=D[A]}}return C};(function(){var idSeed=0;var ua=navigator.userAgent.toLowerCase();var isStrict=document.compatMode=="CSS1Compat",isOpera=ua.indexOf("opera")>-1,isSafari=(/webkit|khtml/).test(ua),isSafari3=isSafari&&ua.indexOf("webkit/5")!=-1,isIE=!isOpera&&ua.indexOf("msie")>-1,isIE7=!isOpera&&ua.indexOf("msie 7")>-1,isGecko=!isSafari&&ua.indexOf("gecko")>-1,isGecko3=!isSafari&&ua.indexOf("rv:1.9")>-1,isBorderBox=isIE&&!isStrict,isWindows=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),isMac=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),isAir=(ua.indexOf("adobeair")!=-1),isLinux=(ua.indexOf("linux")!=-1),isSecure=window.location.href.toLowerCase().indexOf("https")===0;if(isIE&&!isIE7){try{document.execCommand("BackgroundImageCache",false,true)}catch(e){}}Ext.apply(Ext,{isStrict:isStrict,isSecure:isSecure,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http:/"+"/extjs.com/s.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p]}}}return o},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o)});return }var cache={};for(var b in o){var parts=b.split("@");if(parts[1]){var s=parts[0];if(!cache[s]){cache[s]=Ext.select(s)}cache[s].on(parts[1],o[b])}}cache=null},id:function(el,prefix){prefix=prefix||"ext-gen";el=Ext.getDom(el);var id=prefix+(++idSeed);return el?(el.id?el.id:(el.id=id)):id},extend:function(){var io=function(o){for(var m in o){this[m]=o[m]}};var oc=Object.prototype.constructor;return function(sb,sp,overrides){if(typeof sp=="object"){overrides=sp;sp=sb;sb=overrides.constructor!=oc?overrides.constructor:function(){sp.apply(this,arguments)}}var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==oc){spp.constructor=sp}sb.override=function(o){Ext.override(sb,o)};sbp.override=io;Ext.override(sb,overrides);sb.extend=function(o){Ext.extend(sb,o)};return sb}}(),override:function(origclass,overrides){if(overrides){var p=origclass.prototype;for(var method in overrides){p[method]=overrides[method]}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i<a.length;++i){d=a[i].split(".");rt=d[0];eval("if (typeof "+rt+" == \"undefined\"){"+rt+" = {};} o = "+rt+";");for(j=1;j<d.length;++j){o[d[j]]=o[d[j]]||{};o=o[d[j]]}}},urlEncode:function(o){if(!o){return""}var buf=[];for(var key in o){var ov=o[key],k=encodeURIComponent(key);var type=typeof ov;if(type=="undefined"){buf.push(k,"=&")}else{if(type!="function"&&type!="object"){buf.push(k,"=",encodeURIComponent(ov),"&")}else{if(Ext.isArray(ov)){if(ov.length){for(var i=0,len=ov.length;i<len;i++){buf.push(k,"=",encodeURIComponent(ov[i]===undefined?"":ov[i]),"&")}}else{buf.push(k,"=&")}}}}}buf.pop();return buf.join("")},urlDecode:function(string,overwrite){if(!string||!string.length){return{}}var obj={};var pairs=string.split("&");var pair,name,value;for(var i=0,len=pairs.length;i<len;i++){pair=pairs[i].split("=");name=decodeURIComponent(pair[0]);value=decodeURIComponent(pair[1]);if(overwrite!==true){if(typeof obj[name]=="undefined"){obj[name]=value}else{if(typeof obj[name]=="string"){obj[name]=[obj[name]];obj[name].push(value)}else{obj[name].push(value)}}}else{obj[name]=value}}return obj},each:function(array,fn,scope){if(typeof array.length=="undefined"||typeof array=="string"){array=[array]}for(var i=0,len=array.length;i<len;i++){if(fn.call(scope||array[i],array[i],i,array)===false){return i}}},combine:function(){var as=arguments,l=as.length,r=[];for(var i=0;i<l;i++){var a=as[i];if(Ext.isArray(a)){r=r.concat(a)}else{if(a.length!==undefined&&!a.substr){r=r.concat(Array.prototype.slice.call(a,0))}else{r.push(a)}}}return r},escapeRe:function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},callback:function(cb,scope,args,delay){if(typeof cb=="function"){if(delay){cb.defer(delay,scope,args||[])}else{cb.apply(scope,args||[])}}},getDom:function(el){if(!el||!document){return null}return el.dom?el.dom:(typeof el=="string"?document.getElementById(el):el)},getDoc:function(){return Ext.get(document)},getBody:function(){return Ext.get(document.body||document.documentElement)},getCmp:function(id){return Ext.ComponentMgr.get(id)},num:function(v,defaultValue){if(typeof v!="number"){return defaultValue}return v},destroy:function(){for(var i=0,a=arguments,len=a.length;i<len;i++){var as=a[i];if(as){if(typeof as.destroy=="function"){as.destroy()}else{if(as.dom){as.removeAllListeners();as.remove()}}}}},removeNode:isIE?function(){var d;return function(n){if(n&&n.tagName!="BODY"){d=d||document.createElement("div");d.appendChild(n);d.innerHTML=""}}}():function(n){if(n&&n.parentNode&&n.tagName!="BODY"){n.parentNode.removeChild(n)}},type:function(o){if(o===undefined||o===null){return false}if(o.htmlElement){return"element"}var t=typeof o;if(t=="object"&&o.nodeName){switch(o.nodeType){case 1:return"element";case 3:return(/\S/).test(o.nodeValue)?"textnode":"whitespace"}}if(t=="object"||t=="function"){switch(o.constructor){case Array:return"array";case RegExp:return"regexp"}if(typeof o.length=="number"&&typeof o.item=="function"){return"nodelist"}}return t},isEmpty:function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==="":false)},value:function(v,defaultValue,allowBlank){return Ext.isEmpty(v,allowBlank)?defaultValue:v},isArray:function(v){return v&&typeof v.length=="number"&&typeof v.splice=="function"},isDate:function(v){return v&&typeof v.getFullYear=="function"},isOpera:isOpera,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7,isIE7:isIE7,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux");Ext.apply(Function.prototype,{createCallback:function(){var A=arguments;var B=this;return function(){return B.apply(window,A)}},createDelegate:function(C,B,A){var D=this;return function(){var F=B||arguments;if(A===true){F=Array.prototype.slice.call(arguments,0);F=F.concat(B)}else{if(typeof A=="number"){F=Array.prototype.slice.call(arguments,0);var E=[A,0].concat(B);Array.prototype.splice.apply(F,E)}}return D.apply(C||window,F)}},defer:function(C,E,B,A){var D=this.createDelegate(E,B,A);if(C){return setTimeout(D,C)}D();return 0},createSequence:function(B,A){if(typeof B!="function"){return this}var C=this;return function(){var D=C.apply(this||window,arguments);B.apply(A||this||window,arguments);return D}},createInterceptor:function(B,A){if(typeof B!="function"){return this}var C=this;return function(){B.target=this;B.method=C;if(B.apply(A||this||window,arguments)===false){return }return C.apply(this||window,arguments)}}});Ext.applyIf(String,{escape:function(A){return A.replace(/('|\\)/g,"\\$1")},leftPad:function(D,B,C){var A=new String(D);if(!C){C=" "}while(A.length<B){A=C+A}return A.toString()},format:function(B){var A=Array.prototype.slice.call(arguments,1);return B.replace(/\{(\d+)\}/g,function(C,D){return A[D]})}});String.prototype.toggle=function(B,A){return this==B?A:B};String.prototype.trim=function(){var A=/^\s+|\s+$/g;return function(){return this.replace(A,"")}}();Ext.applyIf(Number.prototype,{constrain:function(B,A){return Math.min(Math.max(this,B),A)}});Ext.applyIf(Array.prototype,{indexOf:function(C){for(var B=0,A=this.length;B<A;B++){if(this[B]==C){return B}}return -1},remove:function(B){var A=this.indexOf(B);if(A!=-1){this.splice(A,1)}return this}});Date.prototype.getElapsed=function(A){return Math.abs((A||new Date()).getTime()-this.getTime())};
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/core/Fx-min.js b/typo3/contrib/extJS/build/core/Fx-min.js
new file mode 100755 (executable)
index 0000000..3801bab
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.enableFx=true;Ext.Fx={slideIn:function(A,C){var B=this.getFxEl();C=C||{};B.queueFx(C,function(){A=A||"t";this.fixDisplay();var D=this.getFxRestore();var I=this.getBox();this.setSize(I);var F=this.fxWrap(D.pos,C,"hidden");var K=this.dom.style;K.visibility="visible";K.position="absolute";var E=function(){B.fxUnwrap(F,D.pos,C);K.width=D.width;K.height=D.height;B.afterFx(C)};var J,L={to:[I.x,I.y]},H={to:I.width},G={to:I.height};switch(A.toLowerCase()){case"t":F.setSize(I.width,0);K.left=K.bottom="0";J={height:G};break;case"l":F.setSize(0,I.height);K.right=K.top="0";J={width:H};break;case"r":F.setSize(0,I.height);F.setX(I.right);K.left=K.top="0";J={width:H,points:L};break;case"b":F.setSize(I.width,0);F.setY(I.bottom);K.left=K.top="0";J={height:G,points:L};break;case"tl":F.setSize(0,0);K.right=K.bottom="0";J={width:H,height:G};break;case"bl":F.setSize(0,0);F.setY(I.y+I.height);K.right=K.top="0";J={width:H,height:G,points:L};break;case"br":F.setSize(0,0);F.setXY([I.right,I.bottom]);K.left=K.top="0";J={width:H,height:G,points:L};break;case"tr":F.setSize(0,0);F.setX(I.x+I.width);K.left=K.bottom="0";J={width:H,height:G,points:L};break}this.dom.style.visibility="visible";F.show();arguments.callee.anim=F.fxanim(J,C,"motion",0.5,"easeOut",E)});return this},slideOut:function(A,C){var B=this.getFxEl();C=C||{};B.queueFx(C,function(){A=A||"t";var I=this.getFxRestore();var D=this.getBox();this.setSize(D);var G=this.fxWrap(I.pos,C,"visible");var F=this.dom.style;F.visibility="visible";F.position="absolute";G.setSize(D);var J=function(){if(C.useDisplay){B.setDisplayed(false)}else{B.hide()}B.fxUnwrap(G,I.pos,C);F.width=I.width;F.height=I.height;B.afterFx(C)};var E,H={to:0};switch(A.toLowerCase()){case"t":F.left=F.bottom="0";E={height:H};break;case"l":F.right=F.top="0";E={width:H};break;case"r":F.left=F.top="0";E={width:H,points:{to:[D.right,D.y]}};break;case"b":F.left=F.top="0";E={height:H,points:{to:[D.x,D.bottom]}};break;case"tl":F.right=F.bottom="0";E={width:H,height:H};break;case"bl":F.right=F.top="0";E={width:H,height:H,points:{to:[D.x,D.bottom]}};break;case"br":F.left=F.top="0";E={width:H,height:H,points:{to:[D.x+D.width,D.bottom]}};break;case"tr":F.left=F.bottom="0";E={width:H,height:H,points:{to:[D.right,D.y]}};break}arguments.callee.anim=G.fxanim(E,C,"motion",0.5,"easeOut",J)});return this},puff:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){this.clearOpacity();this.show();var F=this.getFxRestore();var D=this.dom.style;var G=function(){if(B.useDisplay){A.setDisplayed(false)}else{A.hide()}A.clearOpacity();A.setPositioning(F.pos);D.width=F.width;D.height=F.height;D.fontSize="";A.afterFx(B)};var E=this.getWidth();var C=this.getHeight();arguments.callee.anim=this.fxanim({width:{to:this.adjustWidth(E*2)},height:{to:this.adjustHeight(C*2)},points:{by:[-(E*0.5),-(C*0.5)]},opacity:{to:0},fontSize:{to:200,unit:"%"}},B,"motion",0.5,"easeOut",G)});return this},switchOff:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){this.clearOpacity();this.clip();var D=this.getFxRestore();var C=this.dom.style;var E=function(){if(B.useDisplay){A.setDisplayed(false)}else{A.hide()}A.clearOpacity();A.setPositioning(D.pos);C.width=D.width;C.height=D.height;A.afterFx(B)};this.fxanim({opacity:{to:0.3}},null,null,0.1,null,function(){this.clearOpacity();(function(){this.fxanim({height:{to:1},points:{by:[0,this.getHeight()*0.5]}},B,"motion",0.3,"easeIn",E)}).defer(100,this)})});return this},highlight:function(A,C){var B=this.getFxEl();C=C||{};B.queueFx(C,function(){A=A||"ffff9c";var D=C.attr||"backgroundColor";this.clearOpacity();this.show();var G=this.getColor(D);var H=this.dom.style[D];var F=(C.endColor||G)||"ffffff";var I=function(){B.dom.style[D]=H;B.afterFx(C)};var E={};E[D]={from:A,to:F};arguments.callee.anim=this.fxanim(E,C,"color",1,"easeIn",I)});return this},frame:function(A,C,D){var B=this.getFxEl();D=D||{};B.queueFx(D,function(){A=A||"#C3DAF9";if(A.length==6){A="#"+A}C=C||1;var G=D.duration||1;this.show();var E=this.getBox();var F=function(){var H=Ext.getBody().createChild({style:{visbility:"hidden",position:"absolute","z-index":"35000",border:"0px solid "+A}});var I=Ext.isBorderBox?2:1;H.animate({top:{from:E.y,to:E.y-20},left:{from:E.x,to:E.x-20},borderWidth:{from:0,to:10},opacity:{from:1,to:0},height:{from:E.height,to:(E.height+(20*I))},width:{from:E.width,to:(E.width+(20*I))}},G,function(){H.remove();if(--C>0){F()}else{B.afterFx(D)}})};F.call(this)});return this},pause:function(C){var A=this.getFxEl();var B={};A.queueFx(B,function(){setTimeout(function(){A.afterFx(B)},C*1000)});return this},fadeIn:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){this.setOpacity(0);this.fixDisplay();this.dom.style.visibility="visible";var C=B.endOpacity||1;arguments.callee.anim=this.fxanim({opacity:{to:C}},B,null,0.5,"easeOut",function(){if(C==1){this.clearOpacity()}A.afterFx(B)})});return this},fadeOut:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){arguments.callee.anim=this.fxanim({opacity:{to:B.endOpacity||0}},B,null,0.5,"easeOut",function(){if(this.visibilityMode==Ext.Element.DISPLAY||B.useDisplay){this.dom.style.display="none"}else{this.dom.style.visibility="hidden"}this.clearOpacity();A.afterFx(B)})});return this},scale:function(A,B,C){this.shift(Ext.apply({},C,{width:A,height:B}));return this},shift:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){var E={},D=B.width,F=B.height,C=B.x,H=B.y,G=B.opacity;if(D!==undefined){E.width={to:this.adjustWidth(D)}}if(F!==undefined){E.height={to:this.adjustHeight(F)}}if(B.left!==undefined){E.left={to:B.left}}if(B.top!==undefined){E.top={to:B.top}}if(B.right!==undefined){E.right={to:B.right}}if(B.bottom!==undefined){E.bottom={to:B.bottom}}if(C!==undefined||H!==undefined){E.points={to:[C!==undefined?C:this.getX(),H!==undefined?H:this.getY()]}}if(G!==undefined){E.opacity={to:G}}if(B.xy!==undefined){E.points={to:B.xy}}arguments.callee.anim=this.fxanim(E,B,"motion",0.35,"easeOut",function(){A.afterFx(B)})});return this},ghost:function(A,C){var B=this.getFxEl();C=C||{};B.queueFx(C,function(){A=A||"b";var H=this.getFxRestore();var E=this.getWidth(),G=this.getHeight();var F=this.dom.style;var J=function(){if(C.useDisplay){B.setDisplayed(false)}else{B.hide()}B.clearOpacity();B.setPositioning(H.pos);F.width=H.width;F.height=H.height;B.afterFx(C)};var D={opacity:{to:0},points:{}},I=D.points;switch(A.toLowerCase()){case"t":I.by=[0,-G];break;case"l":I.by=[-E,0];break;case"r":I.by=[E,0];break;case"b":I.by=[0,G];break;case"tl":I.by=[-E,-G];break;case"bl":I.by=[-E,G];break;case"br":I.by=[E,G];break;case"tr":I.by=[E,-G];break}arguments.callee.anim=this.fxanim(D,C,"motion",0.5,"easeOut",J)});return this},syncFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:true,stopFx:false});return this},sequenceFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:false,stopFx:false});return this},nextFx:function(){var A=this.fxQueue[0];if(A){A.call(this)}},hasActiveFx:function(){return this.fxQueue&&this.fxQueue[0]},stopFx:function(){if(this.hasActiveFx()){var A=this.fxQueue[0];if(A&&A.anim&&A.anim.isAnimated()){this.fxQueue=[A];A.anim.stop(true)}}return this},beforeFx:function(A){if(this.hasActiveFx()&&!A.concurrent){if(A.stopFx){this.stopFx();return true}return false}return true},hasFxBlock:function(){var A=this.fxQueue;return A&&A[0]&&A[0].block},queueFx:function(C,A){if(!this.fxQueue){this.fxQueue=[]}if(!this.hasFxBlock()){Ext.applyIf(C,this.fxDefaults);if(!C.concurrent){var B=this.beforeFx(C);A.block=C.block;this.fxQueue.push(A);if(B){this.nextFx()}}else{A.call(this)}}return this},fxWrap:function(F,D,C){var B;if(!D.wrap||!(B=Ext.get(D.wrap))){var A;if(D.fixPosition){A=this.getXY()}var E=document.createElement("div");E.style.visibility=C;B=Ext.get(this.dom.parentNode.insertBefore(E,this.dom));B.setPositioning(F);if(B.getStyle("position")=="static"){B.position("relative")}this.clearPositioning("auto");B.clip();B.dom.appendChild(this.dom);if(A){B.setXY(A)}}return B},fxUnwrap:function(A,C,B){this.clearPositioning();this.setPositioning(C);if(!B.wrap){A.dom.parentNode.insertBefore(this.dom,A.dom);A.remove()}},getFxRestore:function(){var A=this.dom.style;return{pos:this.getPositioning(),width:A.width,height:A.height}},afterFx:function(A){if(A.afterStyle){this.applyStyles(A.afterStyle)}if(A.afterCls){this.addClass(A.afterCls)}if(A.remove===true){this.remove()}Ext.callback(A.callback,A.scope,[this]);if(!A.concurrent){this.fxQueue.shift();this.nextFx()}},getFxEl:function(){return Ext.get(this.dom)},fxanim:function(D,E,B,F,C,A){B=B||"run";E=E||{};var G=Ext.lib.Anim[B](this.dom,D,(E.duration||F)||0.35,(E.easing||C)||"easeOut",function(){Ext.callback(A,this)},this);E.anim=G;return G}};Ext.Fx.resize=Ext.Fx.scale;Ext.apply(Ext.Element.prototype,Ext.Fx);
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/core/Template-min.js b/typo3/contrib/extJS/build/core/Template-min.js
new file mode 100755 (executable)
index 0000000..42fef67
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.Template=function(E){var B=arguments;if(Ext.isArray(E)){E=E.join("")}else{if(B.length>1){var C=[];for(var D=0,A=B.length;D<A;D++){if(typeof B[D]=="object"){Ext.apply(this,B[D])}else{C[C.length]=B[D]}}E=C.join("")}}this.html=E;if(this.compiled){this.compile()}};Ext.Template.prototype={applyTemplate:function(B){if(this.compiled){return this.compiled(B)}var A=this.disableFormats!==true;var E=Ext.util.Format,C=this;var D=function(G,I,L,H){if(L&&A){if(L.substr(0,5)=="this."){return C.call(L.substr(5),B[I],B)}else{if(H){var K=/^\s*['"](.*)["']\s*$/;H=H.split(",");for(var J=0,F=H.length;J<F;J++){H[J]=H[J].replace(K,"$1")}H=[B[I]].concat(H)}else{H=[B[I]]}return E[L].apply(E,H)}}else{return B[I]!==undefined?B[I]:""}};return this.html.replace(this.re,D)},set:function(A,B){this.html=A;this.compiled=null;if(B){this.compile()}return this},disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var fm=Ext.util.Format;var useF=this.disableFormats!==true;var sep=Ext.isGecko?"+":",";var fn=function(m,name,format,args){if(format&&useF){args=args?","+args:"";if(format.substr(0,5)!="this."){format="fm."+format+"("}else{format="this.call(\""+format.substr(5)+"\", ";args=", values"}}else{args="";format="(values['"+name+"'] == undefined ? '' : "}return"'"+sep+format+"values['"+name+"']"+args+")"+sep+"'"};var body;if(Ext.isGecko){body="this.compiled = function(values){ return '"+this.html.replace(/\\/g,"\\\\").replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn)+"';};"}else{body=["this.compiled = function(values){ return ['"];body.push(this.html.replace(/\\/g,"\\\\").replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn));body.push("'].join('');};");body=body.join("")}eval(body);return this},call:function(C,B,A){return this[C](B,A)},insertFirst:function(B,A,C){return this.doInsert("afterBegin",B,A,C)},insertBefore:function(B,A,C){return this.doInsert("beforeBegin",B,A,C)},insertAfter:function(B,A,C){return this.doInsert("afterEnd",B,A,C)},append:function(B,A,C){return this.doInsert("beforeEnd",B,A,C)},doInsert:function(C,E,B,A){E=Ext.getDom(E);var D=Ext.DomHelper.insertHtml(C,E,this.applyTemplate(B));return A?Ext.get(D,true):D},overwrite:function(B,A,C){B=Ext.getDom(B);B.innerHTML=this.applyTemplate(A);return C?Ext.get(B.firstChild,true):B.firstChild}};Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.DomHelper.Template=Ext.Template;Ext.Template.from=function(B,A){B=Ext.getDom(B);return new Ext.Template(B.value||B.innerHTML,A||"")};
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/core/UpdateManager-min.js b/typo3/contrib/extJS/build/core/UpdateManager-min.js
new file mode 100755 (executable)
index 0000000..fc868aa
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.Updater=Ext.extend(Ext.util.Observable,{constructor:function(B,A){B=Ext.get(B);if(!A&&B.updateManager){return B.updateManager}this.el=B;this.defaultUrl=null;this.addEvents("beforeupdate","update","failure");var C=Ext.Updater.defaults;this.sslBlankUrl=C.sslBlankUrl;this.disableCaching=C.disableCaching;this.indicatorText=C.indicatorText;this.showLoadIndicator=C.showLoadIndicator;this.timeout=C.timeout;this.loadScripts=C.loadScripts;this.transaction=null;this.refreshDelegate=this.refresh.createDelegate(this);this.updateDelegate=this.update.createDelegate(this);this.formUpdateDelegate=this.formUpdate.createDelegate(this);if(!this.renderer){this.renderer=this.getDefaultRenderer()}Ext.Updater.superclass.constructor.call(this)},getDefaultRenderer:function(){return new Ext.Updater.BasicRenderer()},getEl:function(){return this.el},update:function(B,F,G,D){if(this.fireEvent("beforeupdate",this.el,B,F)!==false){var A,C;if(typeof B=="object"){A=B;B=A.url;F=F||A.params;G=G||A.callback;D=D||A.discardUrl;C=A.scope;if(typeof A.nocache!="undefined"){this.disableCaching=A.nocache}if(typeof A.text!="undefined"){this.indicatorText="<div class=\"loading-indicator\">"+A.text+"</div>"}if(typeof A.scripts!="undefined"){this.loadScripts=A.scripts}if(typeof A.timeout!="undefined"){this.timeout=A.timeout}}this.showLoading();if(!D){this.defaultUrl=B}if(typeof B=="function"){B=B.call(this)}var E=Ext.apply({},{url:B,params:(typeof F=="function"&&C)?F.createDelegate(C):F,success:this.processSuccess,failure:this.processFailure,scope:this,callback:undefined,timeout:(this.timeout*1000),disableCaching:this.disableCaching,argument:{"options":A,"url":B,"form":null,"callback":G,"scope":C||window,"params":F}},A);this.transaction=Ext.Ajax.request(E)}},formUpdate:function(C,A,B,D){if(this.fireEvent("beforeupdate",this.el,C,A)!==false){if(typeof A=="function"){A=A.call(this)}C=Ext.getDom(C);this.transaction=Ext.Ajax.request({form:C,url:A,success:this.processSuccess,failure:this.processFailure,scope:this,timeout:(this.timeout*1000),argument:{"url":A,"form":C,"callback":D,"reset":B}});this.showLoading.defer(1,this)}},refresh:function(A){if(this.defaultUrl==null){return }this.update(this.defaultUrl,null,A,true)},startAutoRefresh:function(B,C,D,E,A){if(A){this.update(C||this.defaultUrl,D,E,true)}if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId)}this.autoRefreshProcId=setInterval(this.update.createDelegate(this,[C||this.defaultUrl,D,E,true]),B*1000)},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId}},isAutoRefreshing:function(){return this.autoRefreshProcId?true:false},showLoading:function(){if(this.showLoadIndicator){this.el.update(this.indicatorText)}},processSuccess:function(A){this.transaction=null;if(A.argument.form&&A.argument.reset){try{A.argument.form.reset()}catch(B){}}if(this.loadScripts){this.renderer.render(this.el,A,this,this.updateComplete.createDelegate(this,[A]))}else{this.renderer.render(this.el,A,this);this.updateComplete(A)}},updateComplete:function(A){this.fireEvent("update",this.el,A);if(typeof A.argument.callback=="function"){A.argument.callback.call(A.argument.scope,this.el,true,A,A.argument.options)}},processFailure:function(A){this.transaction=null;this.fireEvent("failure",this.el,A);if(typeof A.argument.callback=="function"){A.argument.callback.call(A.argument.scope,this.el,false,A,A.argument.options)}},setRenderer:function(A){this.renderer=A},getRenderer:function(){return this.renderer},setDefaultUrl:function(A){this.defaultUrl=A},abort:function(){if(this.transaction){Ext.Ajax.abort(this.transaction)}},isUpdating:function(){if(this.transaction){return Ext.Ajax.isLoading(this.transaction)}return false}});Ext.Updater.defaults={timeout:30,loadScripts:false,sslBlankUrl:(Ext.SSL_SECURE_URL||"javascript:false"),disableCaching:false,showLoadIndicator:true,indicatorText:"<div class=\"loading-indicator\">Loading...</div>"};Ext.Updater.updateElement=function(D,C,E,B){var A=Ext.get(D).getUpdater();Ext.apply(A,B);A.update(C,E,B?B.callback:null)};Ext.Updater.BasicRenderer=function(){};Ext.Updater.BasicRenderer.prototype={render:function(C,A,B,D){C.update(A.responseText,B.loadScripts,D)}};Ext.UpdateManager=Ext.Updater;
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/ArrayReader-min.js b/typo3/contrib/extJS/build/data/ArrayReader-min.js
new file mode 100755 (executable)
index 0000000..82aac89
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.ArrayReader=Ext.extend(Ext.data.JsonReader,{readRecords:function(C){var B=this.meta?this.meta.id:null;var G=this.recordType,K=G.prototype.fields;var E=[];var M=C;for(var I=0;I<M.length;I++){var D=M[I];var O={};var A=((B||B===0)&&D[B]!==undefined&&D[B]!==""?D[B]:null);for(var H=0,P=K.length;H<P;H++){var L=K.items[H];var F=L.mapping!==undefined&&L.mapping!==null?L.mapping:H;var N=D[F]!==undefined?D[F]:L.defaultValue;N=L.convert(N,D);O[L.name]=N}var J=new G(O,A);J.json=D;E[E.length]=J}return{records:E,totalRecords:E.length}}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/Connection-min.js b/typo3/contrib/extJS/build/data/Connection-min.js
new file mode 100755 (executable)
index 0000000..d147434
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.Connection=function(A){Ext.apply(this,A);this.addEvents("beforerequest","requestcomplete","requestexception");Ext.data.Connection.superclass.constructor.call(this)};Ext.extend(Ext.data.Connection,Ext.util.Observable,{timeout:30000,autoAbort:false,disableCaching:true,disableCachingParam:"_dc",request:function(E){if(this.fireEvent("beforerequest",this,E)!==false){var C=E.params;if(typeof C=="function"){C=C.call(E.scope||window,E)}if(typeof C=="object"){C=Ext.urlEncode(C)}if(this.extraParams){var G=Ext.urlEncode(this.extraParams);C=C?(C+"&"+G):G}var B=E.url||this.url;if(typeof B=="function"){B=B.call(E.scope||window,E)}if(E.form){var D=Ext.getDom(E.form);B=B||D.action;var J=D.getAttribute("enctype");if(E.isUpload||(J&&J.toLowerCase()=="multipart/form-data")){return this.doFormUpload(E,C,B)}var I=Ext.lib.Ajax.serializeForm(D);C=C?(C+"&"+I):I}var K=E.headers;if(this.defaultHeaders){K=Ext.apply(K||{},this.defaultHeaders);if(!E.headers){E.headers=K}}var F={success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{options:E},timeout:E.timeout||this.timeout};var A=E.method||this.method||((C||E.xmlData||E.jsonData)?"POST":"GET");if(A=="GET"&&(this.disableCaching&&E.disableCaching!==false)||E.disableCaching===true){var H=E.disableCachingParam||this.disableCachingParam;B+=(B.indexOf("?")!=-1?"&":"?")+H+"="+(new Date().getTime())}if(typeof E.autoAbort=="boolean"){if(E.autoAbort){this.abort()}}else{if(this.autoAbort!==false){this.abort()}}if((A=="GET"||E.xmlData||E.jsonData)&&C){B+=(B.indexOf("?")!=-1?"&":"?")+C;C=""}this.transId=Ext.lib.Ajax.request(A,B,F,C,E);return this.transId}else{Ext.callback(E.callback,E.scope,[E,null,null]);return null}},isLoading:function(A){if(A){return Ext.lib.Ajax.isCallInProgress(A)}else{return this.transId?true:false}},abort:function(A){if(A||this.isLoading()){Ext.lib.Ajax.abort(A||this.transId)}},handleResponse:function(A){this.transId=false;var B=A.argument.options;A.argument=B?B.argument:null;this.fireEvent("requestcomplete",this,A,B);Ext.callback(B.success,B.scope,[A,B]);Ext.callback(B.callback,B.scope,[B,true,A])},handleFailure:function(A,C){this.transId=false;var B=A.argument.options;A.argument=B?B.argument:null;this.fireEvent("requestexception",this,A,B,C);Ext.callback(B.failure,B.scope,[A,B]);Ext.callback(B.callback,B.scope,[B,false,A])},doFormUpload:function(E,A,B){var C=Ext.id();var F=document.createElement("iframe");F.id=C;F.name=C;F.className="x-hidden";if(Ext.isIE){F.src=Ext.SSL_SECURE_URL}document.body.appendChild(F);if(Ext.isIE){document.frames[C].name=C}var D=Ext.getDom(E.form);D.target=C;D.method="POST";D.enctype=D.encoding="multipart/form-data";if(B){D.action=B}var L,J;if(A){L=[];A=Ext.urlDecode(A,false);for(var H in A){if(A.hasOwnProperty(H)){J=document.createElement("input");J.type="hidden";J.name=H;J.value=A[H];D.appendChild(J);L.push(J)}}}function G(){var M={responseText:"",responseXML:null};M.argument=E?E.argument:null;try{var O;if(Ext.isIE){O=F.contentWindow.document}else{O=(F.contentDocument||window.frames[C].document)}if(O&&O.body){M.responseText=O.body.innerHTML}if(O&&O.XMLDocument){M.responseXML=O.XMLDocument}else{M.responseXML=O}}catch(N){}Ext.EventManager.removeListener(F,"load",G,this);this.fireEvent("requestcomplete",this,M,E);Ext.callback(E.success,E.scope,[M,E]);Ext.callback(E.callback,E.scope,[E,true,M]);setTimeout(function(){Ext.removeNode(F)},100)}Ext.EventManager.on(F,"load",G,this);D.submit();if(L){for(var I=0,K=L.length;I<K;I++){Ext.removeNode(L[I])}}}});Ext.Ajax=new Ext.data.Connection({autoAbort:false,serializeForm:function(A){return Ext.lib.Ajax.serializeForm(A)}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/DataField-min.js b/typo3/contrib/extJS/build/data/DataField-min.js
new file mode 100755 (executable)
index 0000000..cfb6a22
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.Field=function(D){if(typeof D=="string"){D={name:D}}Ext.apply(this,D);if(!this.type){this.type="auto"}var C=Ext.data.SortTypes;if(typeof this.sortType=="string"){this.sortType=C[this.sortType]}if(!this.sortType){switch(this.type){case"string":this.sortType=C.asUCString;break;case"date":this.sortType=C.asDate;break;default:this.sortType=C.none}}var E=/[\$,%]/g;if(!this.convert){var B,A=this.dateFormat;switch(this.type){case"":case"auto":case undefined:B=function(F){return F};break;case"string":B=function(F){return(F===undefined||F===null)?"":String(F)};break;case"int":B=function(F){return F!==undefined&&F!==null&&F!==""?parseInt(String(F).replace(E,""),10):""};break;case"float":B=function(F){return F!==undefined&&F!==null&&F!==""?parseFloat(String(F).replace(E,""),10):""};break;case"bool":case"boolean":B=function(F){return F===true||F==="true"||F==1};break;case"date":B=function(G){if(!G){return""}if(Ext.isDate(G)){return G}if(A){if(A=="timestamp"){return new Date(G*1000)}if(A=="time"){return new Date(parseInt(G,10))}return Date.parseDate(G,A)}var F=Date.parse(G);return F?new Date(F):null};break}this.convert=B}};Ext.data.Field.prototype={dateFormat:null,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC"};
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/DataProxy-min.js b/typo3/contrib/extJS/build/data/DataProxy-min.js
new file mode 100755 (executable)
index 0000000..864598a
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.DataProxy=function(){this.addEvents("beforeload","load");Ext.data.DataProxy.superclass.constructor.call(this)};Ext.extend(Ext.data.DataProxy,Ext.util.Observable);
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/DataReader-min.js b/typo3/contrib/extJS/build/data/DataReader-min.js
new file mode 100755 (executable)
index 0000000..7f489ed
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.DataReader=function(A,B){this.meta=A;this.recordType=Ext.isArray(B)?Ext.data.Record.create(B):B};Ext.data.DataReader.prototype={};
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/GroupingStore-min.js b/typo3/contrib/extJS/build/data/GroupingStore-min.js
new file mode 100755 (executable)
index 0000000..59591ee
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.GroupingStore=Ext.extend(Ext.data.Store,{remoteGroup:false,groupOnSort:false,clearGrouping:function(){this.groupField=false;if(this.remoteGroup){if(this.baseParams){delete this.baseParams.groupBy}this.reload()}else{this.applySort();this.fireEvent("datachanged",this)}},groupBy:function(C,B){if(this.groupField==C&&!B){return }this.groupField=C;if(this.remoteGroup){if(!this.baseParams){this.baseParams={}}this.baseParams["groupBy"]=C}if(this.groupOnSort){this.sort(C);return }if(this.remoteGroup){this.reload()}else{var A=this.sortInfo||{};if(A.field!=C){this.applySort()}else{this.sortData(C)}this.fireEvent("datachanged",this)}},applySort:function(){Ext.data.GroupingStore.superclass.applySort.call(this);if(!this.groupOnSort&&!this.remoteGroup){var A=this.getGroupState();if(A&&A!=this.sortInfo.field){this.sortData(this.groupField)}}},applyGrouping:function(A){if(this.groupField!==false){this.groupBy(this.groupField,true);return true}else{if(A===true){this.fireEvent("datachanged",this)}return false}},getGroupState:function(){return this.groupOnSort&&this.groupField!==false?(this.sortInfo?this.sortInfo.field:undefined):this.groupField}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/HttpProxy-min.js b/typo3/contrib/extJS/build/data/HttpProxy-min.js
new file mode 100755 (executable)
index 0000000..740afdb
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.HttpProxy=function(A){Ext.data.HttpProxy.superclass.constructor.call(this);this.conn=A;this.useAjax=!A||!A.events};Ext.extend(Ext.data.HttpProxy,Ext.data.DataProxy,{getConnection:function(){return this.useAjax?Ext.Ajax:this.conn},load:function(E,B,F,C,A){if(this.fireEvent("beforeload",this,E)!==false){var D={params:E||{},request:{callback:F,scope:C,arg:A},reader:B,callback:this.loadResponse,scope:this};if(this.useAjax){Ext.applyIf(D,this.conn);if(this.activeRequest){Ext.Ajax.abort(this.activeRequest)}this.activeRequest=Ext.Ajax.request(D)}else{this.conn.request(D)}}else{F.call(C||this,null,A,false)}},loadResponse:function(E,D,B){delete this.activeRequest;if(!D){this.fireEvent("loadexception",this,E,B);E.request.callback.call(E.request.scope,null,E.request.arg,false);return }var A;try{A=E.reader.read(B)}catch(C){this.fireEvent("loadexception",this,E,B,C);E.request.callback.call(E.request.scope,null,E.request.arg,false);return }this.fireEvent("load",this,E,E.request.arg);E.request.callback.call(E.request.scope,A,E.request.arg,true)},update:function(A){},updateResponse:function(A){}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/JsonReader-min.js b/typo3/contrib/extJS/build/data/JsonReader-min.js
new file mode 100755 (executable)
index 0000000..0f2ca76
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.JsonReader=function(A,B){A=A||{};Ext.data.JsonReader.superclass.constructor.call(this,A,B||A.fields)};Ext.extend(Ext.data.JsonReader,Ext.data.DataReader,{read:function(response){var json=response.responseText;var o=eval("("+json+")");if(!o){throw {message:"JsonReader.read: Json object not found"}}return this.readRecords(o)},onMetaChange:function(A,C,B){},simpleAccess:function(B,A){return B[A]},getJsonAccessor:function(){var A=/[\[\.]/;return function(C){try{return(A.test(C))?new Function("obj","return obj."+C):function(D){return D[C]}}catch(B){}return Ext.emptyFn}}(),readRecords:function(K){this.jsonData=K;if(K.metaData){delete this.ef;this.meta=K.metaData;this.recordType=Ext.data.Record.create(K.metaData.fields);this.onMetaChange(this.meta,this.recordType,K)}var H=this.meta,A=this.recordType,R=A.prototype.fields,F=R.items,E=R.length;if(!this.ef){if(H.totalProperty){this.getTotal=this.getJsonAccessor(H.totalProperty)}if(H.successProperty){this.getSuccess=this.getJsonAccessor(H.successProperty)}this.getRoot=H.root?this.getJsonAccessor(H.root):function(U){return U};if(H.id){var Q=this.getJsonAccessor(H.id);this.getId=function(V){var U=Q(V);return(U===undefined||U==="")?null:U}}else{this.getId=function(){return null}}this.ef=[];for(var O=0;O<E;O++){R=F[O];var T=(R.mapping!==undefined&&R.mapping!==null)?R.mapping:R.name;this.ef[O]=this.getJsonAccessor(T)}}var M=this.getRoot(K),S=M.length,I=S,D=true;if(H.totalProperty){var G=parseInt(this.getTotal(K),10);if(!isNaN(G)){I=G}}if(H.successProperty){var G=this.getSuccess(K);if(G===false||G==="false"){D=false}}var P=[];for(var O=0;O<S;O++){var L=M[O];var B={};var J=this.getId(L);for(var N=0;N<E;N++){R=F[N];var G=this.ef[N](L);B[R.name]=R.convert((G!==undefined)?G:R.defaultValue,L)}var C=new A(B,J);C.json=L;P[O]=C}return{success:D,records:P,totalRecords:I}}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/JsonStore-min.js b/typo3/contrib/extJS/build/data/JsonStore-min.js
new file mode 100755 (executable)
index 0000000..1911d1f
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.JsonStore=function(A){Ext.data.JsonStore.superclass.constructor.call(this,Ext.apply(A,{proxy:A.proxy||(!A.data?new Ext.data.HttpProxy({url:A.url}):undefined),reader:new Ext.data.JsonReader(A,A.fields)}))};Ext.extend(Ext.data.JsonStore,Ext.data.Store);
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/MemoryProxy-min.js b/typo3/contrib/extJS/build/data/MemoryProxy-min.js
new file mode 100755 (executable)
index 0000000..97af1ba
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.MemoryProxy=function(A){Ext.data.MemoryProxy.superclass.constructor.call(this);this.data=A};Ext.extend(Ext.data.MemoryProxy,Ext.data.DataProxy,{load:function(F,C,G,D,B){F=F||{};var A;try{A=C.readRecords(this.data)}catch(E){this.fireEvent("loadexception",this,B,null,E);G.call(D,null,B,false);return }G.call(D,A,B,true)},update:function(B,A){}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/Record-min.js b/typo3/contrib/extJS/build/data/Record-min.js
new file mode 100755 (executable)
index 0000000..a3f874e
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.Record=function(A,B){this.id=(B||B===0)?B:++Ext.data.Record.AUTO_ID;this.data=A};Ext.data.Record.create=function(E){var C=Ext.extend(Ext.data.Record,{});var D=C.prototype;D.fields=new Ext.util.MixedCollection(false,function(F){return F.name});for(var B=0,A=E.length;B<A;B++){D.fields.add(new Ext.data.Field(E[B]))}C.getField=function(F){return D.fields.get(F)};return C};Ext.data.Record.AUTO_ID=1000;Ext.data.Record.EDIT="edit";Ext.data.Record.REJECT="reject";Ext.data.Record.COMMIT="commit";Ext.data.Record.prototype={dirty:false,editing:false,error:null,modified:null,join:function(A){this.store=A},set:function(A,B){if(String(this.data[A])==String(B)){return }this.dirty=true;if(!this.modified){this.modified={}}if(typeof this.modified[A]=="undefined"){this.modified[A]=this.data[A]}this.data[A]=B;if(!this.editing&&this.store){this.store.afterEdit(this)}},get:function(A){return this.data[A]},beginEdit:function(){this.editing=true;this.modified={}},cancelEdit:function(){this.editing=false;delete this.modified},endEdit:function(){this.editing=false;if(this.dirty&&this.store){this.store.afterEdit(this)}},reject:function(B){var A=this.modified;for(var C in A){if(typeof A[C]!="function"){this.data[C]=A[C]}}this.dirty=false;delete this.modified;this.editing=false;if(this.store&&B!==true){this.store.afterReject(this)}},commit:function(A){this.dirty=false;delete this.modified;this.editing=false;if(this.store&&A!==true){this.store.afterCommit(this)}},getChanges:function(){var A=this.modified,B={};for(var C in A){if(A.hasOwnProperty(C)){B[C]=this.data[C]}}return B},hasError:function(){return this.error!=null},clearError:function(){this.error=null},copy:function(A){return new this.constructor(Ext.apply({},this.data),A||this.id)},isModified:function(A){return !!(this.modified&&this.modified.hasOwnProperty(A))}};
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/ScriptTagProxy-min.js b/typo3/contrib/extJS/build/data/ScriptTagProxy-min.js
new file mode 100755 (executable)
index 0000000..673dd5b
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.ScriptTagProxy=function(A){Ext.data.ScriptTagProxy.superclass.constructor.call(this);Ext.apply(this,A);this.head=document.getElementsByTagName("head")[0]};Ext.data.ScriptTagProxy.TRANS_ID=1000;Ext.extend(Ext.data.ScriptTagProxy,Ext.data.DataProxy,{timeout:30000,callbackParam:"callback",nocache:true,load:function(E,F,H,I,J){if(this.fireEvent("beforeload",this,E)!==false){var C=Ext.urlEncode(Ext.apply(E,this.extraParams));var B=this.url;B+=(B.indexOf("?")!=-1?"&":"?")+C;if(this.nocache){B+="&_dc="+(new Date().getTime())}var A=++Ext.data.ScriptTagProxy.TRANS_ID;var K={id:A,cb:"stcCallback"+A,scriptId:"stcScript"+A,params:E,arg:J,url:B,callback:H,scope:I,reader:F};var D=this;window[K.cb]=function(L){D.handleResponse(L,K)};B+=String.format("&{0}={1}",this.callbackParam,K.cb);if(this.autoAbort!==false){this.abort()}K.timeoutId=this.handleFailure.defer(this.timeout,this,[K]);var G=document.createElement("script");G.setAttribute("src",B);G.setAttribute("type","text/javascript");G.setAttribute("id",K.scriptId);this.head.appendChild(G);this.trans=K}else{H.call(I||this,null,J,false)}},isLoading:function(){return this.trans?true:false},abort:function(){if(this.isLoading()){this.destroyTrans(this.trans)}},destroyTrans:function(B,A){this.head.removeChild(document.getElementById(B.scriptId));clearTimeout(B.timeoutId);if(A){window[B.cb]=undefined;try{delete window[B.cb]}catch(C){}}else{window[B.cb]=function(){window[B.cb]=undefined;try{delete window[B.cb]}catch(D){}}}},handleResponse:function(D,B){this.trans=false;this.destroyTrans(B,true);var A;try{A=B.reader.readRecords(D)}catch(C){this.fireEvent("loadexception",this,D,B.arg,C);B.callback.call(B.scope||window,null,B.arg,false);return }this.fireEvent("load",this,D,B.arg);B.callback.call(B.scope||window,A,B.arg,true)},handleFailure:function(A){this.trans=false;this.destroyTrans(A,false);this.fireEvent("loadexception",this,null,A.arg);A.callback.call(A.scope||window,null,A.arg,false)}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/SimpleStore-min.js b/typo3/contrib/extJS/build/data/SimpleStore-min.js
new file mode 100755 (executable)
index 0000000..7435105
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.SimpleStore=function(A){Ext.data.SimpleStore.superclass.constructor.call(this,Ext.apply(A,{reader:new Ext.data.ArrayReader({id:A.id},Ext.data.Record.create(A.fields))}))};Ext.extend(Ext.data.SimpleStore,Ext.data.Store,{loadData:function(E,B){if(this.expandData===true){var D=[];for(var C=0,A=E.length;C<A;C++){D[D.length]=[E[C]]}E=D}Ext.data.SimpleStore.superclass.loadData.call(this,E,B)}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/SortTypes-min.js b/typo3/contrib/extJS/build/data/SortTypes-min.js
new file mode 100755 (executable)
index 0000000..d63b6a6
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.SortTypes={none:function(A){return A},stripTagsRE:/<\/?[^>]+>/gi,asText:function(A){return String(A).replace(this.stripTagsRE,"")},asUCText:function(A){return String(A).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(A){return String(A).toUpperCase()},asDate:function(A){if(!A){return 0}if(Ext.isDate(A)){return A.getTime()}return Date.parse(String(A))},asFloat:function(A){var B=parseFloat(String(A).replace(/,/g,""));if(isNaN(B)){B=0}return B},asInt:function(A){var B=parseInt(String(A).replace(/,/g,""));if(isNaN(B)){B=0}return B}};
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/Store-min.js b/typo3/contrib/extJS/build/data/Store-min.js
new file mode 100755 (executable)
index 0000000..23c5dac
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.Store=function(A){this.data=new Ext.util.MixedCollection(false);this.data.getKey=function(B){return B.id};this.baseParams={};this.paramNames={"start":"start","limit":"limit","sort":"sort","dir":"dir"};if(A&&A.data){this.inlineData=A.data;delete A.data}Ext.apply(this,A);if(this.url&&!this.proxy){this.proxy=new Ext.data.HttpProxy({url:this.url})}if(this.reader){if(!this.recordType){this.recordType=this.reader.recordType}if(this.reader.onMetaChange){this.reader.onMetaChange=this.onMetaChange.createDelegate(this)}}if(this.recordType){this.fields=this.recordType.prototype.fields}this.modified=[];this.addEvents("datachanged","metachange","add","remove","update","clear","beforeload","load","loadexception");if(this.proxy){this.relayEvents(this.proxy,["loadexception"])}this.sortToggle={};if(this.sortInfo){this.setDefaultSort(this.sortInfo.field,this.sortInfo.direction)}Ext.data.Store.superclass.constructor.call(this);if(this.storeId||this.id){Ext.StoreMgr.register(this)}if(this.inlineData){this.loadData(this.inlineData);delete this.inlineData}else{if(this.autoLoad){this.load.defer(10,this,[typeof this.autoLoad=="object"?this.autoLoad:undefined])}}};Ext.extend(Ext.data.Store,Ext.util.Observable,{remoteSort:false,pruneModifiedRecords:false,lastOptions:null,destroy:function(){if(this.id){Ext.StoreMgr.unregister(this)}this.data=null;this.purgeListeners()},add:function(B){B=[].concat(B);if(B.length<1){return }for(var D=0,A=B.length;D<A;D++){B[D].join(this)}var C=this.data.length;this.data.addAll(B);if(this.snapshot){this.snapshot.addAll(B)}this.fireEvent("add",this,B,C)},addSorted:function(A){var B=this.findInsertIndex(A);this.insert(B,A)},remove:function(A){var B=this.data.indexOf(A);this.data.removeAt(B);if(this.pruneModifiedRecords){this.modified.remove(A)}if(this.snapshot){this.snapshot.remove(A)}this.fireEvent("remove",this,A,B)},removeAll:function(){this.data.clear();if(this.snapshot){this.snapshot.clear()}if(this.pruneModifiedRecords){this.modified=[]}this.fireEvent("clear",this)},insert:function(C,B){B=[].concat(B);for(var D=0,A=B.length;D<A;D++){this.data.insert(C,B[D]);B[D].join(this)}this.fireEvent("add",this,B,C)},indexOf:function(A){return this.data.indexOf(A)},indexOfId:function(A){return this.data.indexOfKey(A)},getById:function(A){return this.data.key(A)},getAt:function(A){return this.data.itemAt(A)},getRange:function(B,A){return this.data.getRange(B,A)},storeOptions:function(A){A=Ext.apply({},A);delete A.callback;delete A.scope;this.lastOptions=A},load:function(B){B=B||{};if(this.fireEvent("beforeload",this,B)!==false){this.storeOptions(B);var C=Ext.apply(B.params||{},this.baseParams);if(this.sortInfo&&this.remoteSort){var A=this.paramNames;C[A["sort"]]=this.sortInfo.field;C[A["dir"]]=this.sortInfo.direction}this.proxy.load(C,this.reader,this.loadRecords,this,B);return true}else{return false}},reload:function(A){this.load(Ext.applyIf(A||{},this.lastOptions))},loadRecords:function(G,B,F){if(!G||F===false){if(F!==false){this.fireEvent("load",this,[],B)}if(B.callback){B.callback.call(B.scope||this,[],B,false)}return }var E=G.records,D=G.totalRecords||E.length;if(!B||B.add!==true){if(this.pruneModifiedRecords){this.modified=[]}for(var C=0,A=E.length;C<A;C++){E[C].join(this)}if(this.snapshot){this.data=this.snapshot;delete this.snapshot}this.data.clear();this.data.addAll(E);this.totalLength=D;this.applySort();this.fireEvent("datachanged",this)}else{this.totalLength=Math.max(D,this.data.length+E.length);this.add(E)}this.fireEvent("load",this,E,B);if(B.callback){B.callback.call(B.scope||this,E,B,true)}},loadData:function(C,A){var B=this.reader.readRecords(C);this.loadRecords(B,{add:A},true)},getCount:function(){return this.data.length||0},getTotalCount:function(){return this.totalLength||0},getSortState:function(){return this.sortInfo},applySort:function(){if(this.sortInfo&&!this.remoteSort){var A=this.sortInfo,B=A.field;this.sortData(B,A.direction)}},sortData:function(C,D){D=D||"ASC";var A=this.fields.get(C).sortType;var B=function(F,E){var H=A(F.data[C]),G=A(E.data[C]);return H>G?1:(H<G?-1:0)};this.data.sort(D,B);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(D,B)}},setDefaultSort:function(B,A){A=A?A.toUpperCase():"ASC";this.sortInfo={field:B,direction:A};this.sortToggle[B]=A},sort:function(E,C){var D=this.fields.get(E);if(!D){return false}if(!C){if(this.sortInfo&&this.sortInfo.field==D.name){C=(this.sortToggle[D.name]||"ASC").toggle("ASC","DESC")}else{C=D.sortDir}}var B=(this.sortToggle)?this.sortToggle[D.name]:null;var A=(this.sortInfo)?this.sortInfo:null;this.sortToggle[D.name]=C;this.sortInfo={field:D.name,direction:C};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged",this)}else{if(!this.load(this.lastOptions)){if(B){this.sortToggle[D.name]=B}if(A){this.sortInfo=A}}}},each:function(B,A){this.data.each(B,A)},getModifiedRecords:function(){return this.modified},createFilterFn:function(C,B,D,A){if(Ext.isEmpty(B,false)){return false}B=this.data.createValueMatcher(B,D,A);return function(E){return B.test(E.data[C])}},sum:function(E,F,A){var C=this.data.items,B=0;F=F||0;A=(A||A===0)?A:C.length-1;for(var D=F;D<=A;D++){B+=(C[D].data[E]||0)}return B},filter:function(D,C,E,A){var B=this.createFilterFn(D,C,E,A);return B?this.filterBy(B):this.clearFilter()},filterBy:function(B,A){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(B,A||this);this.fireEvent("datachanged",this)},query:function(D,C,E,A){var B=this.createFilterFn(D,C,E,A);return B?this.queryBy(B):this.data.clone()},queryBy:function(B,A){var C=this.snapshot||this.data;return C.filterBy(B,A||this)},find:function(D,C,F,E,A){var B=this.createFilterFn(D,C,E,A);return B?this.data.findIndexBy(B,null,F):-1},findBy:function(B,A,C){return this.data.findIndexBy(B,A,C)},collect:function(G,H,B){var F=(B===true&&this.snapshot)?this.snapshot.items:this.data.items;var I,J,A=[],C={};for(var D=0,E=F.length;D<E;D++){I=F[D].data[G];J=String(I);if((H||!Ext.isEmpty(I))&&!C[J]){C[J]=true;A[A.length]=I}}return A},clearFilter:function(A){if(this.isFiltered()){this.data=this.snapshot;delete this.snapshot;if(A!==true){this.fireEvent("datachanged",this)}}},isFiltered:function(){return this.snapshot&&this.snapshot!=this.data},afterEdit:function(A){if(this.modified.indexOf(A)==-1){this.modified.push(A)}this.fireEvent("update",this,A,Ext.data.Record.EDIT)},afterReject:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Ext.data.Record.REJECT)},afterCommit:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Ext.data.Record.COMMIT)},commitChanges:function(){var B=this.modified.slice(0);this.modified=[];for(var C=0,A=B.length;C<A;C++){B[C].commit()}},rejectChanges:function(){var B=this.modified.slice(0);this.modified=[];for(var C=0,A=B.length;C<A;C++){B[C].reject()}},onMetaChange:function(B,A,C){this.recordType=A;this.fields=A.prototype.fields;delete this.snapshot;this.sortInfo=B.sortInfo;this.modified=[];this.fireEvent("metachange",this,this.reader.meta)},findInsertIndex:function(A){this.suspendEvents();var C=this.data.clone();this.data.add(A);this.applySort();var B=this.data.indexOf(A);this.data=C;this.resumeEvents();return B}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/StoreMgr-min.js b/typo3/contrib/extJS/build/data/StoreMgr-min.js
new file mode 100755 (executable)
index 0000000..1a57191
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.StoreMgr=Ext.apply(new Ext.util.MixedCollection(),{register:function(){for(var A=0,B;B=arguments[A];A++){this.add(B)}},unregister:function(){for(var A=0,B;B=arguments[A];A++){this.remove(this.lookup(B))}},lookup:function(A){return typeof A=="object"?A:this.get(A)},getKey:function(A){return A.storeId||A.id}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/Tree-min.js b/typo3/contrib/extJS/build/data/Tree-min.js
new file mode 100755 (executable)
index 0000000..3aed23c
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.Tree=function(A){this.nodeHash={};this.root=null;if(A){this.setRootNode(A)}this.addEvents("append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert");Ext.data.Tree.superclass.constructor.call(this)};Ext.extend(Ext.data.Tree,Ext.util.Observable,{pathSeparator:"/",proxyNodeEvent:function(){return this.fireEvent.apply(this,arguments)},getRootNode:function(){return this.root},setRootNode:function(A){this.root=A;A.ownerTree=this;A.isRoot=true;this.registerNode(A);return A},getNodeById:function(A){return this.nodeHash[A]},registerNode:function(A){this.nodeHash[A.id]=A},unregisterNode:function(A){delete this.nodeHash[A.id]},toString:function(){return"[Tree"+(this.id?" "+this.id:"")+"]"}});Ext.data.Node=function(A){this.attributes=A||{};this.leaf=this.attributes.leaf;this.id=this.attributes.id;if(!this.id){this.id=Ext.id(null,"ynode-");this.attributes.id=this.id}this.childNodes=[];if(!this.childNodes.indexOf){this.childNodes.indexOf=function(D){for(var C=0,B=this.length;C<B;C++){if(this[C]==D){return C}}return -1}}this.parentNode=null;this.firstChild=null;this.lastChild=null;this.previousSibling=null;this.nextSibling=null;this.addEvents({"append":true,"remove":true,"move":true,"insert":true,"beforeappend":true,"beforeremove":true,"beforemove":true,"beforeinsert":true});this.listeners=this.attributes.listeners;Ext.data.Node.superclass.constructor.call(this)};Ext.extend(Ext.data.Node,Ext.util.Observable,{fireEvent:function(B){if(Ext.data.Node.superclass.fireEvent.apply(this,arguments)===false){return false}var A=this.getOwnerTree();if(A){if(A.proxyNodeEvent.apply(A,arguments)===false){return false}}return true},isLeaf:function(){return this.leaf===true},setFirstChild:function(A){this.firstChild=A},setLastChild:function(A){this.lastChild=A},isLast:function(){return(!this.parentNode?true:this.parentNode.lastChild==this)},isFirst:function(){return(!this.parentNode?true:this.parentNode.firstChild==this)},hasChildNodes:function(){return !this.isLeaf()&&this.childNodes.length>0},isExpandable:function(){return this.attributes.expandable||this.hasChildNodes()},appendChild:function(E){var F=false;if(Ext.isArray(E)){F=E}else{if(arguments.length>1){F=arguments}}if(F){for(var D=0,A=F.length;D<A;D++){this.appendChild(F[D])}}else{if(this.fireEvent("beforeappend",this.ownerTree,this,E)===false){return false}var B=this.childNodes.length;var C=E.parentNode;if(C){if(E.fireEvent("beforemove",E.getOwnerTree(),E,C,this,B)===false){return false}C.removeChild(E)}B=this.childNodes.length;if(B==0){this.setFirstChild(E)}this.childNodes.push(E);E.parentNode=this;var G=this.childNodes[B-1];if(G){E.previousSibling=G;G.nextSibling=E}else{E.previousSibling=null}E.nextSibling=null;this.setLastChild(E);E.setOwnerTree(this.getOwnerTree());this.fireEvent("append",this.ownerTree,this,E,B);if(C){E.fireEvent("move",this.ownerTree,E,C,this,B)}return E}},removeChild:function(B){var A=this.childNodes.indexOf(B);if(A==-1){return false}if(this.fireEvent("beforeremove",this.ownerTree,this,B)===false){return false}this.childNodes.splice(A,1);if(B.previousSibling){B.previousSibling.nextSibling=B.nextSibling}if(B.nextSibling){B.nextSibling.previousSibling=B.previousSibling}if(this.firstChild==B){this.setFirstChild(B.nextSibling)}if(this.lastChild==B){this.setLastChild(B.previousSibling)}B.setOwnerTree(null);B.parentNode=null;B.previousSibling=null;B.nextSibling=null;this.fireEvent("remove",this.ownerTree,this,B);return B},insertBefore:function(D,A){if(!A){return this.appendChild(D)}if(D==A){return false}if(this.fireEvent("beforeinsert",this.ownerTree,this,D,A)===false){return false}var B=this.childNodes.indexOf(A);var C=D.parentNode;var E=B;if(C==this&&this.childNodes.indexOf(D)<B){E--}if(C){if(D.fireEvent("beforemove",D.getOwnerTree(),D,C,this,B,A)===false){return false}C.removeChild(D)}if(E==0){this.setFirstChild(D)}this.childNodes.splice(E,0,D);D.parentNode=this;var F=this.childNodes[E-1];if(F){D.previousSibling=F;F.nextSibling=D}else{D.previousSibling=null}D.nextSibling=A;A.previousSibling=D;D.setOwnerTree(this.getOwnerTree());this.fireEvent("insert",this.ownerTree,this,D,A);if(C){D.fireEvent("move",this.ownerTree,D,C,this,E,A)}return D},remove:function(){this.parentNode.removeChild(this);return this},item:function(A){return this.childNodes[A]},replaceChild:function(A,B){this.insertBefore(A,B);this.removeChild(B);return B},indexOf:function(A){return this.childNodes.indexOf(A)},getOwnerTree:function(){if(!this.ownerTree){var A=this;while(A){if(A.ownerTree){this.ownerTree=A.ownerTree;break}A=A.parentNode}}return this.ownerTree},getDepth:function(){var B=0;var A=this;while(A.parentNode){++B;A=A.parentNode}return B},setOwnerTree:function(B){if(B!=this.ownerTree){if(this.ownerTree){this.ownerTree.unregisterNode(this)}this.ownerTree=B;var D=this.childNodes;for(var C=0,A=D.length;C<A;C++){D[C].setOwnerTree(B)}if(B){B.registerNode(this)}}},getPath:function(B){B=B||"id";var D=this.parentNode;var A=[this.attributes[B]];while(D){A.unshift(D.attributes[B]);D=D.parentNode}var C=this.getOwnerTree().pathSeparator;return C+A.join(C)},bubble:function(C,B,A){var D=this;while(D){if(C.apply(B||D,A||[D])===false){break}D=D.parentNode}},cascade:function(F,E,B){if(F.apply(E||this,B||[this])!==false){var D=this.childNodes;for(var C=0,A=D.length;C<A;C++){D[C].cascade(F,E,B)}}},eachChild:function(F,E,B){var D=this.childNodes;for(var C=0,A=D.length;C<A;C++){if(F.apply(E||this,B||[D[C]])===false){break}}},findChild:function(D,E){var C=this.childNodes;for(var B=0,A=C.length;B<A;B++){if(C[B].attributes[D]==E){return C[B]}}return null},findChildBy:function(E,D){var C=this.childNodes;for(var B=0,A=C.length;B<A;B++){if(E.call(D||C[B],C[B])===true){return C[B]}}return null},sort:function(E,D){var C=this.childNodes;var A=C.length;if(A>0){var F=D?function(){E.apply(D,arguments)}:E;C.sort(F);for(var B=0;B<A;B++){var G=C[B];G.previousSibling=C[B-1];G.nextSibling=C[B+1];if(B==0){this.setFirstChild(G)}if(B==A-1){this.setLastChild(G)}}}},contains:function(A){return A.isAncestor(this)},isAncestor:function(A){var B=this.parentNode;while(B){if(B==A){return true}B=B.parentNode}return false},toString:function(){return"[Node"+(this.id?" "+this.id:"")+"]"}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/data/XmlReader-min.js b/typo3/contrib/extJS/build/data/XmlReader-min.js
new file mode 100755 (executable)
index 0000000..6605d50
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.data.XmlReader=function(A,B){A=A||{};Ext.data.XmlReader.superclass.constructor.call(this,A,B||A.fields)};Ext.extend(Ext.data.XmlReader,Ext.data.DataReader,{read:function(A){var B=A.responseXML;if(!B){throw {message:"XmlReader.read: XML Document not available"}}return this.readRecords(B)},readRecords:function(T){this.xmlData=T;var N=T.documentElement||T;var I=Ext.DomQuery;var B=this.recordType,L=B.prototype.fields;var D=this.meta.id;var G=0,E=true;if(this.meta.totalRecords){G=I.selectNumber(this.meta.totalRecords,N,0)}if(this.meta.success){var K=I.selectValue(this.meta.success,N,true);E=K!==false&&K!=="false"}var Q=[];var U=I.select(this.meta.record,N);for(var P=0,R=U.length;P<R;P++){var M=U[P];var A={};var J=D?I.selectValue(D,M):undefined;for(var O=0,H=L.length;O<H;O++){var S=L.items[O];var F=I.selectValue(S.mapping||S.name,M,S.defaultValue);F=S.convert(F,M);A[S.name]=F}var C=new B(A,J);C.node=M;Q[Q.length]=C}return{success:E,records:Q,totalRecords:G||Q.length}}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/dd/DDCore-min.js b/typo3/contrib/extJS/build/dd/DDCore-min.js
new file mode 100755 (executable)
index 0000000..29ab018
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+(function(){var A=Ext.EventManager;var B=Ext.lib.Dom;Ext.dd.DragDrop=function(E,C,D){if(E){this.init(E,C,D)}};Ext.dd.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},unlock:function(){this.locked=false},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(H,F,M){if(typeof F=="number"){F={left:F,right:F,top:F,bottom:F}}F=F||this.defaultPadding;var J=Ext.get(this.getEl()).getBox();var C=Ext.get(H);var L=C.getScroll();var I,D=C.dom;if(D==document.body){I={x:L.left,y:L.top,width:Ext.lib.Dom.getViewWidth(),height:Ext.lib.Dom.getViewHeight()}}else{var K=C.getXY();I={x:K[0]+L.left,y:K[1]+L.top,width:D.clientWidth,height:D.clientHeight}}var G=J.y-I.y;var E=J.x-I.x;this.resetConstraints();this.setXConstraint(E-(F.left||0),I.width-E-J.width-(F.right||0),this.xTickSize);this.setYConstraint(G-(F.top||0),I.height-G-J.height-(F.bottom||0),this.yTickSize)},getEl:function(){if(!this._domRef){this._domRef=Ext.getDom(this.id)}return this._domRef},getDragEl:function(){return Ext.getDom(this.dragElId)},init:function(E,C,D){this.initTarget(E,C,D);A.on(this.id,"mousedown",this.handleMouseDown,this)},initTarget:function(E,C,D){this.config=D||{};this.DDM=Ext.dd.DDM;this.groups={};if(typeof E!=="string"){E=Ext.id(E)}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();this.handleOnAvailable()},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false)},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E]}else{if(!F&&0!==F){this.padding=[E,C,E,C]}else{this.padding=[E,C,F,D]}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){return }var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H)},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1]},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C)},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C]}this.DDM.removeDDFromGroup(this,C)},setDragElId:function(C){this.dragElId=C},setHandleElId:function(C){if(typeof C!=="string"){C=Ext.id(C)}this.handleElId=C;this.DDM.regHandle(this.id,C)},setOuterHandleElId:function(C){if(typeof C!=="string"){C=Ext.id(C)}A.on(C,"mousedown",this.handleMouseDown,this);this.setHandleElId(C);this.hasOuterHandles=true},unreg:function(){A.un(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this)},destroy:function(){this.unreg()},isLocked:function(){return(this.DDM.isLocked()||this.locked)},handleMouseDown:function(E,D){if(this.primaryButtonOnly&&E.button!=0){return }if(this.isLocked()){return }this.DDM.refreshCache(this.groups);var C=new Ext.lib.Point(Ext.lib.Event.getPageX(E),Ext.lib.Event.getPageY(E));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(C,this)){}else{if(this.clickValidator(E)){this.setStartPosition();this.b4MouseDown(E);this.onMouseDown(E);this.DDM.handleMouseDown(E,this);this.DDM.stopEvent(E)}else{}}},clickValidator:function(D){var C=D.getTarget();return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)))},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D},addInvalidHandleId:function(C){if(typeof C!=="string"){C=Ext.id(C)}this.invalidHandleIds[C]=C},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C)},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D]},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=Ext.id(C)}delete this.invalidHandleIds[C]},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E<C;++E){if(this.invalidHandleClasses[E]==D){delete this.invalidHandleClasses[E]}}},isValidHandleChild:function(F){var E=true;var H;try{H=F.nodeName.toUpperCase()}catch(G){H=F.nodeName}E=E&&!this.invalidHandleTypes[H];E=E&&!this.invalidHandleIds[F.id];for(var D=0,C=this.invalidHandleClasses.length;E&&D<C;++D){E=!Ext.fly(F).hasClass(this.invalidHandleClasses[D])}return E},setXTicks:function(F,C){this.xTicks=[];this.xTickSize=C;var E={};for(var D=this.initPageX;D>=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true}}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true}}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(E,D,C){this.leftConstraint=E;this.rightConstraint=D;this.minX=this.initPageX-E;this.maxX=this.initPageX+D;if(C){this.setXTicks(this.initPageX,C)}this.constrainX=true},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks()},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0},setYConstraint:function(C,E,D){this.topConstraint=C;this.bottomConstraint=E;this.minY=this.initPageY-C;this.maxY=this.initPageY+E;if(D){this.setYTicks(this.initPageY,D)}this.constrainY=true},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C)}else{this.setInitPosition()}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize)}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)}},getTick:function(I,F){if(!F){return I}else{if(F[0]>=I){return F[0]}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E]}}return F[F.length-1]}}},toString:function(){return("DragDrop "+this.id)}}})();if(!Ext.dd.DragDropMgr){Ext.dd.DragDropMgr=function(){var A=Ext.EventManager;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true},POINT:0,INTERSECT:1,mode:0,_execOnAll:function(D,C){for(var E in this.ids){for(var B in this.ids[E]){var F=this.ids[E][B];if(!this.isTypeOfDD(F)){continue}F[D].apply(F,C)}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true)},_onResize:function(B){this._execOnAll("resetConstraints",[])},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(C,B){if(!this.initialized){this.init()}if(!this.ids[B]){this.ids[B]={}}this.ids[B][C.id]=C},removeDDFromGroup:function(D,B){if(!this.ids[B]){this.ids[B]={}}var C=this.ids[B];if(C&&C[D.id]){delete C[D.id]}},_remove:function(C){for(var B in C.groups){if(B&&this.ids[B][C.id]){delete this.ids[B][C.id]}}delete this.handleIds[C.id]},regHandle:function(C,B){if(!this.handleIds[C]){this.handleIds[C]={}}this.handleIds[C][B]=B},isDragDrop:function(B){return(this.getDDById(B))?true:false},getRelated:function(F,C){var E=[];for(var D in F.groups){for(j in this.ids[D]){var B=this.ids[D][j];if(!this.isTypeOfDD(B)){continue}if(!C||B.isTarget){E[E.length]=B}}}return E},isLegalTarget:function(F,E){var C=this.getRelated(F,true);for(var D=0,B=C.length;D<B;++D){if(C[D].id==E.id){return true}}return false},isTypeOfDD:function(B){return(B&&B.__ygDragDrop)},isHandle:function(C,B){return(this.handleIds[C]&&this.handleIds[C][B])},getDDById:function(C){for(var B in this.ids){if(this.ids[B][C]){return this.ids[B][C]}}return null},handleMouseDown:function(D,C){if(Ext.QuickTips){Ext.QuickTips.disable()}this.currentTarget=D.getTarget();this.dragCurrent=C;var B=C.getEl();this.startX=D.getPageX();this.startY=D.getPageY();this.deltaX=this.startX-B.offsetLeft;this.deltaY=this.startY-B.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var E=Ext.dd.DDM;E.startDrag(E.startX,E.startY)},this.clickTimeThresh)},startDrag:function(B,C){clearTimeout(this.clickTimeout);if(this.dragCurrent){this.dragCurrent.b4StartDrag(B,C);this.dragCurrent.startDrag(B,C)}this.dragThreshMet=true},handleMouseUp:function(B){if(Ext.QuickTips){Ext.QuickTips.enable()}if(!this.dragCurrent){return }clearTimeout(this.clickTimeout);if(this.dragThreshMet){this.fireEvents(B,true)}else{}this.stopDrag(B);this.stopEvent(B)},stopEvent:function(B){if(this.stopPropagation){B.stopPropagation()}if(this.preventDefault){B.preventDefault()}},stopDrag:function(B){if(this.dragCurrent){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(B);this.dragCurrent.endDrag(B)}this.dragCurrent.onMouseUp(B)}this.dragCurrent=null;this.dragOvers={}},handleMouseMove:function(D){if(!this.dragCurrent){return true}if(Ext.isIE&&(D.button!==0&&D.button!==1&&D.button!==2)){this.stopEvent(D);return this.handleMouseUp(D)}if(!this.dragThreshMet){var C=Math.abs(this.startX-D.getPageX());var B=Math.abs(this.startY-D.getPageY());if(C>this.clickPixelThresh||B>this.clickPixelThresh){this.startDrag(this.startX,this.startY)}}if(this.dragThreshMet){this.dragCurrent.b4Drag(D);this.dragCurrent.onDrag(D);if(!this.dragCurrent.moveOnly){this.fireEvents(D,false)}}this.stopEvent(D);return true},fireEvents:function(K,L){var N=this.dragCurrent;if(!N||N.isLocked()){return }var O=K.getPoint();var B=[];var E=[];var I=[];var G=[];var D=[];for(var F in this.dragOvers){var C=this.dragOvers[F];if(!this.isTypeOfDD(C)){continue}if(!this.isOverTarget(O,C,this.mode)){E.push(C)}B[F]=true;delete this.dragOvers[F]}for(var M in N.groups){if("string"!=typeof M){continue}for(F in this.ids[M]){var H=this.ids[M][F];if(!this.isTypeOfDD(H)){continue}if(H.isTarget&&!H.isLocked()&&H!=N){if(this.isOverTarget(O,H,this.mode)){if(L){G.push(H)}else{if(!B[H.id]){D.push(H)}else{I.push(H)}this.dragOvers[H.id]=H}}}}}if(this.mode){if(E.length){N.b4DragOut(K,E);N.onDragOut(K,E)}if(D.length){N.onDragEnter(K,D)}if(I.length){N.b4DragOver(K,I);N.onDragOver(K,I)}if(G.length){N.b4DragDrop(K,G);N.onDragDrop(K,G)}}else{var J=0;for(F=0,J=E.length;F<J;++F){N.b4DragOut(K,E[F].id);N.onDragOut(K,E[F].id)}for(F=0,J=D.length;F<J;++F){N.onDragEnter(K,D[F].id)}for(F=0,J=I.length;F<J;++F){N.b4DragOver(K,I[F].id);N.onDragOver(K,I[F].id)}for(F=0,J=G.length;F<J;++F){N.b4DragDrop(K,G[F].id);N.onDragDrop(K,G[F].id)}}if(L&&!G.length){N.onInvalidDrop(K)}},getBestMatch:function(D){var F=null;var C=D.length;if(C==1){F=D[0]}else{for(var E=0;E<C;++E){var B=D[E];if(B.cursorIsOver){F=B;break}else{if(!F||F.overlap.getArea()<B.overlap.getArea()){F=B}}}}return F},refreshCache:function(C){for(var B in C){if("string"!=typeof B){continue}for(var D in this.ids[B]){var E=this.ids[B][D];if(this.isTypeOfDD(E)){var F=this.getLocation(E);if(F){this.locationCache[E.id]=F}else{delete this.locationCache[E.id]}}}}},verifyEl:function(C){if(C){var B;if(Ext.isIE){try{B=C.offsetParent}catch(D){}}else{B=C.offsetParent}if(B){return true}}return false},getLocation:function(G){if(!this.isTypeOfDD(G)){return null}var E=G.getEl(),J,D,C,L,K,M,B,I,F;try{J=Ext.lib.Dom.getXY(E)}catch(H){}if(!J){return null}D=J[0];C=D+E.offsetWidth;L=J[1];K=L+E.offsetHeight;M=L-G.padding[0];B=C+G.padding[1];I=K+G.padding[2];F=D-G.padding[3];return new Ext.lib.Region(M,B,I,F)},isOverTarget:function(J,B,D){var F=this.locationCache[B.id];if(!F||!this.useCache){F=this.getLocation(B);this.locationCache[B.id]=F}if(!F){return false}B.cursorIsOver=F.contains(J);var I=this.dragCurrent;if(!I||!I.getTargetCoord||(!D&&!I.constrainX&&!I.constrainY)){return B.cursorIsOver}B.overlap=null;var G=I.getTargetCoord(J.x,J.y);var C=I.getDragEl();var E=new Ext.lib.Region(G.y,G.x+C.offsetWidth,G.y+C.offsetHeight,G.x);var H=E.intersect(F);if(H){B.overlap=H;return(D)?true:B.cursorIsOver}else{return false}},_onUnload:function(C,B){Ext.dd.DragDropMgr.unregAll()},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null}this._execOnAll("unreg",[]);for(var B in this.elementCache){delete this.elementCache[B]}this.elementCache={};this.ids={}},elementCache:{},getElWrapper:function(C){var B=this.elementCache[C];if(!B||!B.el){B=this.elementCache[C]=new this.ElementWrapper(Ext.getDom(C))}return B},getElement:function(B){return Ext.getDom(B)},getCss:function(C){var B=Ext.getDom(C);return(B)?B.style:null},ElementWrapper:function(B){this.el=B||null;this.id=this.el&&B.id;this.css=this.el&&B.style},getPosX:function(B){return Ext.lib.Dom.getX(B)},getPosY:function(B){return Ext.lib.Dom.getY(B)},swapNode:function(D,B){if(D.swapNode){D.swapNode(B)}else{var E=B.parentNode;var C=B.nextSibling;if(C==D){E.insertBefore(D,B)}else{if(B==D.nextSibling){E.insertBefore(B,D)}else{D.parentNode.replaceChild(B,D);E.insertBefore(D,C)}}}},getScroll:function(){var D,B,E=document.documentElement,C=document.body;if(E&&(E.scrollTop||E.scrollLeft)){D=E.scrollTop;B=E.scrollLeft}else{if(C){D=C.scrollTop;B=C.scrollLeft}else{}}return{top:D,left:B}},getStyle:function(C,B){return Ext.fly(C).getStyle(B)},getScrollTop:function(){return this.getScroll().top},getScrollLeft:function(){return this.getScroll().left},moveToEl:function(B,D){var C=Ext.lib.Dom.getXY(D);Ext.lib.Dom.setXY(B,C)},numericSort:function(C,B){return(C-B)},_timeoutCount:0,_addListeners:function(){var B=Ext.dd.DDM;if(Ext.lib.Event&&document){B._onLoad()}else{if(B._timeoutCount>2000){}else{setTimeout(B._addListeners,10);if(document&&document.body){B._timeoutCount+=1}}}},handleWasClicked:function(B,D){if(this.isHandle(D,B.id)){return true}else{var C=B.parentNode;while(C){if(this.isHandle(D,C.id)){return true}else{C=C.parentNode}}}return false}}}();Ext.dd.DDM=Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners()}Ext.dd.DD=function(C,A,B){if(C){this.init(C,A,B)}};Ext.extend(Ext.dd.DD,Ext.dd.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D)},setDelta:function(B,A){this.deltaX=B;this.deltaY=A},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B)},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);var B=C.dom?C:Ext.fly(C,"_dd");if(!this.deltaSetXY){var H=[E.x,E.y];B.setXY(H);var D=B.getLeft(true);var A=B.getTop(true);this.deltaSetXY=[D-E.x,A-E.y]}else{B.setLeftTop(E.x+this.deltaSetXY[0],E.y+this.deltaSetXY[1])}this.cachePosition(E.x,E.y);this.autoScroll(E.x,E.y,C.offsetHeight,C.offsetWidth);return E},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A}else{var C=Ext.lib.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1]}},autoScroll:function(J,I,E,K){if(this.scroll){var L=Ext.lib.Dom.getViewHeight();var B=Ext.lib.Dom.getViewWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A)}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A)}if(M>B&&F<C){window.scrollTo(D+A,N)}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N)}}},getTargetCoord:function(C,B){var A=C-this.deltaX;var D=B-this.deltaY;if(this.constrainX){if(A<this.minX){A=this.minX}if(A>this.maxX){A=this.maxX}}if(this.constrainY){if(D<this.minY){D=this.minY}if(D>this.maxY){D=this.maxY}}A=this.getTick(A,this.xTicks);D=this.getTick(D,this.yTicks);return{x:A,y:D}},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false)},b4MouseDown:function(A){this.autoOffset(A.getPageX(),A.getPageY())},b4Drag:function(A){this.setDragElPos(A.getPageX(),A.getPageY())},toString:function(){return("DD "+this.id)}});Ext.dd.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame()}};Ext.dd.DDProxy.dragElId="ygddfdiv";Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this;var A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame()},50);return }var D=this.getDragEl();if(!D){D=document.createElement("div");D.id=this.dragElId;var C=D.style;C.position="absolute";C.visibility="hidden";C.cursor="move";C.border="2px solid #aaa";C.zIndex=999;A.insertBefore(D,A.firstChild)}},initFrame:function(){this.createFrame()},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2))}this.setDragElPos(E,D);Ext.fly(A).show()},_resizeProxy:function(){if(this.resizeFrame){var A=this.getEl();Ext.fly(this.getDragEl()).setSize(A.offsetWidth,A.offsetHeight)}},b4MouseDown:function(B){var A=B.getPageX();var C=B.getPageY();this.autoOffset(A,C);this.setDragElPos(A,C)},b4StartDrag:function(A,B){this.showFrame(A,B)},b4EndDrag:function(A){Ext.fly(this.getDragEl()).hide()},endDrag:function(C){var B=this.getEl();var A=this.getDragEl();A.style.visibility="";this.beforeMove();B.style.visibility="hidden";Ext.dd.DDM.moveToEl(B,A);A.style.visibility="hidden";B.style.visibility="";this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return("DDProxy "+this.id)}});Ext.dd.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B)}};Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{toString:function(){return("DDTarget "+this.id)}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/dd/DragSource-min.js b/typo3/contrib/extJS/build/dd/DragSource-min.js
new file mode 100755 (executable)
index 0000000..efcab3d
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.dd.DragSource=function(B,A){this.el=Ext.get(B);if(!this.dragData){this.dragData={}}Ext.apply(this,A);if(!this.proxy){this.proxy=new Ext.dd.StatusProxy()}Ext.dd.DragSource.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{dragElId:this.proxy.id,resizeFrame:false,isTarget:false,scroll:this.scroll===true});this.dragging=false};Ext.extend(Ext.dd.DragSource,Ext.dd.DDProxy,{dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",getDragData:function(A){return this.dragData},onDragEnter:function(C,D){var B=Ext.dd.DragDropMgr.getDDById(D);this.cachedTarget=B;if(this.beforeDragEnter(B,C,D)!==false){if(B.isNotifyTarget){var A=B.notifyEnter(this,C,this.dragData);this.proxy.setStatus(A)}else{this.proxy.setStatus(this.dropAllowed)}if(this.afterDragEnter){this.afterDragEnter(B,C,D)}}},beforeDragEnter:function(B,A,C){return true},alignElWithMouse:function(){Ext.dd.DragSource.superclass.alignElWithMouse.apply(this,arguments);this.proxy.sync()},onDragOver:function(C,D){var B=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(D);if(this.beforeDragOver(B,C,D)!==false){if(B.isNotifyTarget){var A=B.notifyOver(this,C,this.dragData);this.proxy.setStatus(A)}if(this.afterDragOver){this.afterDragOver(B,C,D)}}},beforeDragOver:function(B,A,C){return true},onDragOut:function(B,C){var A=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(C);if(this.beforeDragOut(A,B,C)!==false){if(A.isNotifyTarget){A.notifyOut(this,B,this.dragData)}this.proxy.reset();if(this.afterDragOut){this.afterDragOut(A,B,C)}}this.cachedTarget=null},beforeDragOut:function(B,A,C){return true},onDragDrop:function(B,C){var A=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(C);if(this.beforeDragDrop(A,B,C)!==false){if(A.isNotifyTarget){if(A.notifyDrop(this,B,this.dragData)){this.onValidDrop(A,B,C)}else{this.onInvalidDrop(A,B,C)}}else{this.onValidDrop(A,B,C)}if(this.afterDragDrop){this.afterDragDrop(A,B,C)}}delete this.cachedTarget},beforeDragDrop:function(B,A,C){return true},onValidDrop:function(B,A,C){this.hideProxy();if(this.afterValidDrop){this.afterValidDrop(B,A,C)}},getRepairXY:function(B,A){return this.el.getXY()},onInvalidDrop:function(B,A,C){this.beforeInvalidDrop(B,A,C);if(this.cachedTarget){if(this.cachedTarget.isNotifyTarget){this.cachedTarget.notifyOut(this,A,this.dragData)}this.cacheTarget=null}this.proxy.repair(this.getRepairXY(A,this.dragData),this.afterRepair,this);if(this.afterInvalidDrop){this.afterInvalidDrop(A,C)}},afterRepair:function(){if(Ext.enableFx){this.el.highlight(this.hlColor||"c3daf9")}this.dragging=false},beforeInvalidDrop:function(B,A,C){return true},handleMouseDown:function(B){if(this.dragging){return }var A=this.getDragData(B);if(A&&this.onBeforeDrag(A,B)!==false){this.dragData=A;this.proxy.stop();Ext.dd.DragSource.superclass.handleMouseDown.apply(this,arguments)}},onBeforeDrag:function(A,B){return true},onStartDrag:Ext.emptyFn,startDrag:function(A,B){this.proxy.reset();this.dragging=true;this.proxy.update("");this.onInitDrag(A,B);this.proxy.show()},onInitDrag:function(A,C){var B=this.el.dom.cloneNode(true);B.id=Ext.id();this.proxy.update(B);this.onStartDrag(A,C);return true},getProxy:function(){return this.proxy},hideProxy:function(){this.proxy.hide();this.proxy.reset(true);this.dragging=false},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)},b4EndDrag:function(A){},endDrag:function(A){this.onEndDrag(this.dragData,A)},onEndDrag:function(A,B){},autoOffset:function(A,B){this.setDelta(-12,-20)}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/dd/DragTracker-min.js b/typo3/contrib/extJS/build/dd/DragTracker-min.js
new file mode 100755 (executable)
index 0000000..50f7cf5
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.dd.DragTracker=function(A){Ext.apply(this,A);this.addEvents("mousedown","mouseup","mousemove","dragstart","dragend","drag");this.dragRegion=new Ext.lib.Region(0,0,0,0);if(this.el){this.initEl(this.el)}};Ext.extend(Ext.dd.DragTracker,Ext.util.Observable,{active:false,tolerance:5,autoStart:false,initEl:function(A){this.el=Ext.get(A);A.on("mousedown",this.onMouseDown,this,this.delegate?{delegate:this.delegate}:undefined)},destroy:function(){this.el.un("mousedown",this.onMouseDown,this)},onMouseDown:function(C,B){if(this.fireEvent("mousedown",this,C)!==false&&this.onBeforeStart(C)!==false){this.startXY=this.lastXY=C.getXY();this.dragTarget=this.delegate?B:this.el.dom;C.preventDefault();var A=Ext.getDoc();A.on("mouseup",this.onMouseUp,this);A.on("mousemove",this.onMouseMove,this);A.on("selectstart",this.stopSelect,this);if(this.autoStart){this.timer=this.triggerStart.defer(this.autoStart===true?1000:this.autoStart,this)}}},onMouseMove:function(D,C){D.preventDefault();var B=D.getXY(),A=this.startXY;this.lastXY=B;if(!this.active){if(Math.abs(A[0]-B[0])>this.tolerance||Math.abs(A[1]-B[1])>this.tolerance){this.triggerStart()}else{return }}this.fireEvent("mousemove",this,D);this.onDrag(D);this.fireEvent("drag",this,D)},onMouseUp:function(B){var A=Ext.getDoc();A.un("mousemove",this.onMouseMove,this);A.un("mouseup",this.onMouseUp,this);A.un("selectstart",this.stopSelect,this);B.preventDefault();this.clearStart();this.active=false;delete this.elRegion;this.fireEvent("mouseup",this,B);this.onEnd(B);this.fireEvent("dragend",this,B)},triggerStart:function(A){this.clearStart();this.active=true;this.onStart(this.startXY);this.fireEvent("dragstart",this,this.startXY)},clearStart:function(){if(this.timer){clearTimeout(this.timer);delete this.timer}},stopSelect:function(A){A.stopEvent();return false},onBeforeStart:function(A){},onStart:function(A){},onDrag:function(A){},onEnd:function(A){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getXY:function(A){return A?this.constrainModes[A].call(this,this.lastXY):this.lastXY},getOffset:function(C){var B=this.getXY(C);var A=this.startXY;return[A[0]-B[0],A[1]-B[1]]},constrainModes:{"point":function(B){if(!this.elRegion){this.elRegion=this.getDragCt().getRegion()}var A=this.dragRegion;A.left=B[0];A.top=B[1];A.right=B[0];A.bottom=B[1];A.constrainTo(this.elRegion);return[A.left,A.top]}}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/dd/DragZone-min.js b/typo3/contrib/extJS/build/dd/DragZone-min.js
new file mode 100755 (executable)
index 0000000..a193efc
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.dd.DragZone=function(B,A){Ext.dd.DragZone.superclass.constructor.call(this,B,A);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el)}};Ext.extend(Ext.dd.DragZone,Ext.dd.DragSource,{getDragData:function(A){return Ext.dd.Registry.getHandleFromEvent(A)},onInitDrag:function(A,B){this.proxy.update(this.dragData.ddel.cloneNode(true));this.onStartDrag(A,B);return true},afterRepair:function(){if(Ext.enableFx){Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor||"c3daf9")}this.dragging=false},getRepairXY:function(A){return Ext.Element.fly(this.dragData.ddel).getXY()}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/dd/DropTarget-min.js b/typo3/contrib/extJS/build/dd/DropTarget-min.js
new file mode 100755 (executable)
index 0000000..bb3061e
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.dd.DropTarget=function(B,A){this.el=Ext.get(B);Ext.apply(this,A);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el)}Ext.dd.DropTarget.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{isTarget:true})};Ext.extend(Ext.dd.DropTarget,Ext.dd.DDTarget,{dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",isTarget:true,isNotifyTarget:true,notifyEnter:function(A,C,B){if(this.overClass){this.el.addClass(this.overClass)}return this.dropAllowed},notifyOver:function(A,C,B){return this.dropAllowed},notifyOut:function(A,C,B){if(this.overClass){this.el.removeClass(this.overClass)}},notifyDrop:function(A,C,B){return false}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/dd/DropZone-min.js b/typo3/contrib/extJS/build/dd/DropZone-min.js
new file mode 100755 (executable)
index 0000000..a6428fa
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.dd.DropZone=function(B,A){Ext.dd.DropZone.superclass.constructor.call(this,B,A)};Ext.extend(Ext.dd.DropZone,Ext.dd.DropTarget,{getTargetFromEvent:function(A){return Ext.dd.Registry.getTargetFromEvent(A)},onNodeEnter:function(D,A,C,B){},onNodeOver:function(D,A,C,B){return this.dropAllowed},onNodeOut:function(D,A,C,B){},onNodeDrop:function(D,A,C,B){return false},onContainerOver:function(A,C,B){return this.dropNotAllowed},onContainerDrop:function(A,C,B){return false},notifyEnter:function(A,C,B){return this.dropNotAllowed},notifyOver:function(A,C,B){var D=this.getTargetFromEvent(C);if(!D){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,A,C,B);this.lastOverNode=null}return this.onContainerOver(A,C,B)}if(this.lastOverNode!=D){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,A,C,B)}this.onNodeEnter(D,A,C,B);this.lastOverNode=D}return this.onNodeOver(D,A,C,B)},notifyOut:function(A,C,B){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,A,C,B);this.lastOverNode=null}},notifyDrop:function(A,C,B){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,A,C,B);this.lastOverNode=null}var D=this.getTargetFromEvent(C);return D?this.onNodeDrop(D,A,C,B):this.onContainerDrop(A,C,B)},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)}});
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/dd/Registry-min.js b/typo3/contrib/extJS/build/dd/Registry-min.js
new file mode 100755 (executable)
index 0000000..53dba76
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.dd.Registry=function(){var D={};var B={};var A=0;var C=function(F,E){if(typeof F=="string"){return F}var G=F.id;if(!G&&E!==false){G="extdd-"+(++A);F.id=G}return G};return{register:function(H,I){I=I||{};if(typeof H=="string"){H=document.getElementById(H)}I.ddel=H;D[C(H)]=I;if(I.isHandle!==false){B[I.ddel.id]=I}if(I.handles){var G=I.handles;for(var F=0,E=G.length;F<E;F++){B[C(G[F])]=I}}},unregister:function(H){var J=C(H,false);var I=D[J];if(I){delete D[J];if(I.handles){var G=I.handles;for(var F=0,E=G.length;F<E;F++){delete B[C(G[F],false)]}}}},getHandle:function(E){if(typeof E!="string"){E=E.id}return B[E]},getHandleFromEvent:function(F){var E=Ext.lib.Event.getTarget(F);return E?B[E.id]:null},getTarget:function(E){if(typeof E!="string"){E=E.id}return D[E]},getTargetFromEvent:function(F){var E=Ext.lib.Event.getTarget(F);return E?D[E.id]||B[E.id]:null}}}();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/dd/ScrollManager-min.js b/typo3/contrib/extJS/build/dd/ScrollManager-min.js
new file mode 100755 (executable)
index 0000000..ae3d833
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.dd.ScrollManager=function(){var C=Ext.dd.DragDropMgr;var E={};var B=null;var H={};var G=function(K){B=null;A()};var I=function(){if(C.dragCurrent){C.refreshCache(C.dragCurrent.groups)}};var D=function(){if(C.dragCurrent){var K=Ext.dd.ScrollManager;var L=H.el.ddScrollConfig?H.el.ddScrollConfig.increment:K.increment;if(!K.animate){if(H.el.scroll(H.dir,L)){I()}}else{H.el.scroll(H.dir,L,true,K.animDuration,I)}}};var A=function(){if(H.id){clearInterval(H.id)}H.id=0;H.el=null;H.dir=""};var F=function(L,K){A();H.el=L;H.dir=K;var M=(L.ddScrollConfig&&L.ddScrollConfig.frequency)?L.ddScrollConfig.frequency:Ext.dd.ScrollManager.frequency;H.id=setInterval(D,M)};var J=function(N,P){if(P||!C.dragCurrent){return }var Q=Ext.dd.ScrollManager;if(!B||B!=C.dragCurrent){B=C.dragCurrent;Q.refreshCache()}var R=Ext.lib.Event.getXY(N);var S=new Ext.lib.Point(R[0],R[1]);for(var L in E){var M=E[L],K=M._region;var O=M.ddScrollConfig?M.ddScrollConfig:Q;if(K&&K.contains(S)&&M.isScrollable()){if(K.bottom-S.y<=O.vthresh){if(H.el!=M){F(M,"down")}return }else{if(K.right-S.x<=O.hthresh){if(H.el!=M){F(M,"left")}return }else{if(S.y-K.top<=O.vthresh){if(H.el!=M){F(M,"up")}return }else{if(S.x-K.left<=O.hthresh){if(H.el!=M){F(M,"right")}return }}}}}}A()};C.fireEvents=C.fireEvents.createSequence(J,C);C.stopDrag=C.stopDrag.createSequence(G,C);return{register:function(M){if(Ext.isArray(M)){for(var L=0,K=M.length;L<K;L++){this.register(M[L])}}else{M=Ext.get(M);E[M.id]=M}},unregister:function(M){if(Ext.isArray(M)){for(var L=0,K=M.length;L<K;L++){this.unregister(M[L])}}else{M=Ext.get(M);delete E[M.id]}},vthresh:25,hthresh:25,increment:100,frequency:500,animate:true,animDuration:0.4,refreshCache:function(){for(var K in E){if(typeof E[K]=="object"){E[K]._region=E[K].getRegion()}}}}}();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/dd/StatusProxy-min.js b/typo3/contrib/extJS/build/dd/StatusProxy-min.js
new file mode 100755 (executable)
index 0000000..566a5a7
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.dd.StatusProxy=function(A){Ext.apply(this,A);this.id=this.id||Ext.id();this.el=new Ext.Layer({dh:{id:this.id,tag:"div",cls:"x-dd-drag-proxy "+this.dropNotAllowed,children:[{tag:"div",cls:"x-dd-drop-icon"},{tag:"div",cls:"x-dd-drag-ghost"}]},shadow:!A||A.shadow!==false});this.ghost=Ext.get(this.el.dom.childNodes[1]);this.dropStatus=this.dropNotAllowed};Ext.dd.StatusProxy.prototype={dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",setStatus:function(A){A=A||this.dropNotAllowed;if(this.dropStatus!=A){this.el.replaceClass(this.dropStatus,A);this.dropStatus=A}},reset:function(A){this.el.dom.className="x-dd-drag-proxy "+this.dropNotAllowed;this.dropStatus=this.dropNotAllowed;if(A){this.ghost.update("")}},update:function(A){if(typeof A=="string"){this.ghost.update(A)}else{this.ghost.update("");A.style.margin="0";this.ghost.dom.appendChild(A)}var B=this.ghost.dom.firstChild;if(B){Ext.fly(B).setStyle(Ext.isIE?"styleFloat":"cssFloat","none")}},getEl:function(){return this.el},getGhost:function(){return this.ghost},hide:function(A){this.el.hide();if(A){this.reset(true)}},stop:function(){if(this.anim&&this.anim.isAnimated&&this.anim.isAnimated()){this.anim.stop()}},show:function(){this.el.show()},sync:function(){this.el.sync()},repair:function(B,C,A){this.callback=C;this.scope=A;if(B&&this.animRepair!==false){this.el.addClass("x-dd-drag-repair");this.el.hideUnders(true);this.anim=this.el.shift({duration:this.repairDuration||0.5,easing:"easeOut",xy:B,stopFx:true,callback:this.afterRepair,scope:this})}else{this.afterRepair()}},afterRepair:function(){this.hide(true);if(typeof this.callback=="function"){this.callback.call(this.scope||this)}this.callback=null;this.scope=null}};
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/debug-min.js b/typo3/contrib/extJS/build/debug-min.js
new file mode 100755 (executable)
index 0000000..78d7b39
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * Ext JS Library 2.2\r
+ * Copyright(c) 2006-2008, Ext JS, LLC.\r
+ * licensing@extjs.com\r
+ * \r
+ * http://extjs.com/license\r
+ */\r
+\r
+Ext.debug={};(function(){var B;function A(){var E=new Ext.debug.ScriptsPanel();var G=new Ext.debug.LogPanel();var C=new Ext.debug.DomTree();var D=new Ext.TabPanel({activeTab:0,border:false,tabPosition:"bottom",items:[{title:"Debug Console",layout:"border",items:[G,E]},{title:"DOM Inspector",layout:"border",items:[C]}]});B=new Ext.Panel({id:"x-debug-browser",title:"Console",collapsible:true,animCollapse:false,style:"position:absolute;left:0;bottom:0;",height:200,logView:G,layout:"fit",tools:[{id:"close",handler:function(){B.destroy();B=null;Ext.EventManager.removeResizeListener(F)}}],items:D});B.render(document.body);B.resizer=new Ext.Resizable(B.el,{minHeight:50,handles:"n",pinned:true,transparent:true,resizeElement:function(){var H=this.proxy.getBox();this.proxy.hide();B.setHeight(H.height);return H}});function F(){B.setWidth(Ext.getBody().getViewSize().width)}Ext.EventManager.onWindowResize(F);F()}Ext.apply(Ext,{log:function(){if(!B){A()}B.logView.log.apply(B.logView,arguments)},logf:function(F,E,C,D){Ext.log(String.format.apply(String,arguments))},dump:function(F){if(typeof F=="string"||typeof F=="number"||typeof F=="undefined"||Ext.isDate(F)){Ext.log(F)}else{if(!F){Ext.log("null")}else{if(typeof F!="object"){Ext.log("Unknown return type")}else{if(Ext.isArray(F)){Ext.log("["+F.join(",")+"]")}else{var C=["{\n"];for(var D in F){var G=typeof F[D];if(G!="function"&&G!="object"){C.push(String.format("  {0}: {1},\n",D,F[D]))}}var E=C.join("");if(E.length>3){E=E.substr(0,E.length-2)}Ext.log(E+"\n}")}}}}},_timers:{},time:function(C){C=C||"def";Ext._timers[C]=new Date().getTime()},timeEnd:function(D,F){var E=new Date().getTime();D=D||"def";var C=String.format("{0} ms",E-Ext._timers[D]);Ext._timers[D]=new Date().getTime();if(F!==false){Ext.log("Timer "+(D=="def"?C:D+": "+C))}return C}})})();Ext.debug.ScriptsPanel=Ext.extend(Ext.Panel,{id:"x-debug-scripts",region:"east",minWidth:200,split:true,width:350,border:false,layout:"anchor",style:"border-width:0 0 0 1px;",initComponent:function(){this.scriptField=new Ext.form.TextArea({anchor:"100% -26",style:"border-width:0;"});this.trapBox=new Ext.form.Checkbox({id:"console-trap",boxLabel:"Trap Errors",checked:true});this.toolbar=new Ext.Toolbar([{text:"Run",scope:this,handler:this.evalScript},{text:"Clear",scope:this,handler:this.clear},"->",this.trapBox," "," "]);this.items=[this.toolbar,this.scriptField];Ext.debug.ScriptsPanel.superclass.initComponent.call(this)},evalScript:function(){var s=this.scriptField.getValue();if(this.trapBox.getValue()){try{var rt=eval(s);Ext.dump(rt===undefined?"(no return)":rt)}catch(e){Ext.log(e.message||e.descript)}}else{var rt=eval(s);Ext.dump(rt===undefined?"(no return)":rt)}},clear:function(){this.scriptField.setValue("");this.scriptField.focus()}});Ext.debug.LogPanel=Ext.extend(Ext.Panel,{autoScroll:true,region:"center",border:false,style:"border-width:0 1px 0 0",log:function(){var A=["<div style=\"padding:5px !important;border-bottom:1px solid #ccc;\">",Ext.util.Format.htmlEncode(Array.prototype.join.call(arguments,", ")).replace(/\n/g,"<br />").replace(/\s/g,"&#160;"),"</div>"].join("");this.body.insertHtml("beforeend",A);this.body.scrollTo("top",100000)},clear:function(){this.body.update("");this.body.dom.scrollTop=0}});Ext.debug.DomTree=Ext.extend(Ext.tree.TreePanel,{enableDD:false,lines:false,rootVisible:false,animate:false,hlColor:"ffff9c",autoScroll:true,region:"center",border:false,initComponent:function(){Ext.debug.DomTree.superclass.initComponent.call(this);var H=false,A;var I=/^\s*$/;var E=Ext.util.Format.htmlEncode;var G=Ext.util.Format.ellipsis;var D=/\s?([a-z\-]*)\:([^;]*)(?:[;\s\n\r]*)/gi;function B(P){if(!P||P.nodeType!=1||P==document.body||P==document){return false}var L=[P],N=P;while((N=N.parentNode)&&N.nodeType==1&&N.tagName.toUpperCase()!="HTML"){L.unshift(N)}var O=A;for(var M=0,J=L.length;M<J;M++){O.expand();O=O.findChild("htmlNode",L[M]);if(!O){return false}}O.select();var K=O.ui.anchor;treeEl.dom.scrollTop=Math.max(0,K.offsetTop-10);O.highlight();return true}function F(K){var J=K.tagName;if(K.id){J+="#"+K.id}else{if(K.className){J+="."+K.className}}return J}function C(V,J,S){return ;if(S&&S.unframe){S.unframe()}var P={};if(J&&J.htmlNode){if(frameEl.pressed){J.frame()}if(inspecting){return }addStyle.enable();reload.setDisabled(J.leaf);var M=J.htmlNode;stylePanel.setTitle(F(M));if(H&&!showAll.pressed){var W=M.style?M.style.cssText:"";if(W){var K;while((K=D.exec(W))!=null){P[K[1].toLowerCase()]=K[2]}}}else{if(H){var T=Ext.debug.cssList;var W=M.style,L=Ext.fly(M);if(W){for(var N=0,O=T.length;N<O;N++){var U=T[N];var R=W[U]||L.getStyle(U);if(R!=undefined&&R!==null&&R!==""){P[U]=R}}}}else{for(var Q in M){var R=M[Q];if((isNaN(Q+10))&&R!=undefined&&R!==null&&R!==""&&!(Ext.isGecko&&Q[0]==Q[0].toUpperCase())){P[Q]=R}}}}}else{if(inspecting){return }addStyle.disable();reload.disabled()}stylesGrid.setSource(P);stylesGrid.treeNode=J;stylesGrid.view.fitColumns()}this.loader=new Ext.tree.TreeLoader();this.loader.load=function(O,J){var K=O.htmlNode==document.body;var N=O.htmlNode.childNodes;for(var L=0,M;M=N[L];L++){if(K&&M.id=="x-debug-browser"){continue}if(M.nodeType==1){O.appendChild(new Ext.debug.HtmlNode(M))}else{if(M.nodeType==3&&!I.test(M.nodeValue)){O.appendChild(new Ext.tree.TreeNode({text:"<em>"+G(E(String(M.nodeValue)),35)+"</em>",cls:"x-tree-noicon"}))}}}J()};this.root=this.setRootNode(new Ext.tree.TreeNode("Ext"));A=this.root.appendChild(new Ext.debug.HtmlNode(document.getElementsByTagName("html")[0]))}});Ext.debug.HtmlNode=function(){var D=Ext.util.Format.htmlEncode;var B=Ext.util.Format.ellipsis;var A=/^\s*$/;var C=[{n:"id",v:"id"},{n:"className",v:"class"},{n:"name",v:"name"},{n:"type",v:"type"},{n:"src",v:"src"},{n:"href",v:"href"}];function F(J){for(var H=0,I;I=J.childNodes[H];H++){if(I.nodeType==1){return true}}return false}function E(I,L){var P=I.tagName.toLowerCase();var O="&lt;"+P;for(var J=0,K=C.length;J<K;J++){var M=C[J];var N=I[M.n];if(N&&!A.test(N)){O+=" "+M.v+"=&quot;<i>"+D(N)+"</i>&quot;"}}var H=I.style?I.style.cssText:"";if(H){O+=" style=&quot;<i>"+D(H.toLowerCase())+"</i>&quot;"}if(L&&I.childNodes.length>0){O+="&gt;<em>"+B(D(String(I.innerHTML)),35)+"</em>&lt;/"+P+"&gt;"}else{if(L){O+=" /&gt;"}else{O+="&gt;"}}return O}var G=function(J){var I=!F(J);this.htmlNode=J;this.tagName=J.tagName.toLowerCase();var H={text:E(J,I),leaf:I,cls:"x-tree-noicon"};G.superclass.constructor.call(this,H);this.attributes.htmlNode=J;if(!I){this.on("expand",this.onExpand,this);this.on("collapse",this.onCollapse,this)}};Ext.extend(G,Ext.tree.AsyncTreeNode,{cls:"x-tree-noicon",preventHScroll:true,refresh:function(I){var H=!F(this.htmlNode);this.setText(E(this.htmlNode,H));if(I){Ext.fly(this.ui.textNode).highlight()}},onExpand:function(){if(!this.closeNode&&this.parentNode){this.closeNode=this.parentNode.insertBefore(new Ext.tree.TreeNode({text:"&lt;/"+this.tagName+"&gt;",cls:"x-tree-noicon"}),this.nextSibling)}else{if(this.closeNode){this.closeNode.ui.show()}}},onCollapse:function(){if(this.closeNode){this.closeNode.ui.hide()}},render:function(H){G.superclass.render.call(this,H)},highlightNode:function(){},highlight:function(){},frame:function(){this.htmlNode.style.border="1px solid #0000ff"},unframe:function(){this.htmlNode.style.border=""}});return G}();
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/locale/ext-lang-af.js b/typo3/contrib/extJS/build/locale/ext-lang-af.js
new file mode 100755 (executable)
index 0000000..cafc287
--- /dev/null
@@ -0,0 +1,178 @@
+/*
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Afrikaans Translations
+ * by Thys Meintjes (20 July 2007)
+ */
+
+/* Ext Core translations */
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Besig om te laai...</div>';
+
+/* Ext single string translations */
+if(Ext.View){
+    Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+    Ext.grid.GridPanel.prototype.ddText = "{0} geselekteerde ry(e)";
+}
+
+if(Ext.TabPanelItem){
+    Ext.TabPanelItem.prototype.closeText = "Maak die oortjie toe";
+}
+
+if(Ext.form.Field){
+    Ext.form.Field.prototype.invalidText = "Die waarde in hierdie veld is foutief";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Besig om te laai...";
+}
+
+/* Javascript month and days translations */
+Date.monthNames = [
+   "Januarie",
+   "Februarie",
+   "Maart",
+   "April",
+   "Mei",
+   "Junie",
+   "Julie",
+   "Augustus",
+   "September",
+   "Oktober",
+   "November",
+   "Desember"
+];
+
+Date.dayNames = [
+   "Sondag",
+   "Maandag",
+   "Dinsdag",
+   "Woensdag",
+   "Donderdag",
+   "Vrydag",
+   "Saterdag"
+];
+
+/* Ext components translations */
+if(Ext.MessageBox){
+    Ext.MessageBox.buttonText = {
+       ok     : "OK",
+       cancel : "Kanselleer",
+       yes    : "Ja",
+       no     : "Nee"
+    };
+}
+
+if(Ext.util.Format){
+    Ext.util.Format.date = function(v, format){
+       if(!v) return "";
+       if(!(v instanceof Date)) v = new Date(Date.parse(v));
+       return v.dateFormat(format || "d-m-y");
+    };
+}
+
+if(Ext.DatePicker){
+    Ext.apply(Ext.DatePicker.prototype, {
+       todayText         : "Vandag",
+       minText           : "Hierdie datum is vroër as die minimum datum",
+       maxText           : "Hierdie dataum is later as die maximum datum",
+       disabledDaysText  : "",
+       disabledDatesText : "",
+       monthNames       : Date.monthNames,
+       dayNames                 : Date.dayNames,
+       nextText          : 'Volgende Maand (Beheer+Regs)',
+       prevText          : 'Vorige Maand (Beheer+Links)',
+       monthYearText     : "Kies 'n maand (Beheer+Op/Af volgende/vorige jaar)",
+       todayTip          : "{0} (Spasie)",
+       format            : "d-m-y",
+       startDay          : 0
+    });
+}
+
+if(Ext.PagingToolbar){
+    Ext.apply(Ext.PagingToolbar.prototype, {
+       beforePageText : "Bladsy",
+       afterPageText  : "van {0}",
+       firstText      : "Eerste Bladsy",
+       prevText       : "Vorige Bladsy",
+       nextText       : "Volgende Bladsy",
+       lastText       : "Laatste Bladsy",
+       refreshText    : "Verfris",
+       displayMsg     : "Wys {0} - {1} van {2}",
+       emptyMsg       : 'Geen data om te wys nie'
+    });
+}
+
+if(Ext.form.TextField){
+    Ext.apply(Ext.form.TextField.prototype, {
+       minLengthText : "Die minimum lengte van die veld is {0}",
+       maxLengthText : "Die maximum lengte van die veld is {0}",
+       blankText     : "Die veld is verpligtend",
+       regexText     : "",
+       emptyText     : null
+    });
+}
+
+if(Ext.form.NumberField){
+    Ext.apply(Ext.form.NumberField.prototype, {
+       minText : "Die minimum waarde vir die veld is {0}",
+       maxText : "Die maximum waarde vir die veld is {0}",
+       nanText : "{0} is nie 'n geldige waarde nie"
+    });
+}
+
+if(Ext.form.DateField){
+    Ext.apply(Ext.form.DateField.prototype, {
+       disabledDaysText  : "Afgeskakel",
+       disabledDatesText : "Afgeskakel",
+       minText           : "Die datum in hierdie veld moet na {0} wees",
+       maxText           : "Die datum in hierdie veld moet voor {0} wees",
+       invalidText       : "{0} is nie 'n geldige datum nie - datumformaat is {1}",
+       format            : "d/m/y",
+       altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+    });
+}
+
+if(Ext.form.ComboBox){
+    Ext.apply(Ext.form.ComboBox.prototype, {
+       loadingText       : "Besig om te laai...",
+       valueNotFoundText : undefined
+    });
+}
+
+if(Ext.form.VTypes){
+    Ext.apply(Ext.form.VTypes, {
+       emailText    : "Hierdie veld moet 'n e-pos adres wees met die formaat 'gebruiker@domein.za'",
+       urlText      : "Hierdie veld moet 'n URL wees me die formaat 'http:/'+'/www.domein.za'",
+       alphaText    : 'Die veld mag alleenlik letters en _ bevat',
+       alphanumText : 'Die veld mag alleenlik letters, syfers en _ bevat'
+    });
+}
+
+if(Ext.grid.GridView){
+    Ext.apply(Ext.grid.GridView.prototype, {
+       sortAscText  : "Sorteer Oplopend",
+       sortDescText : "Sorteer Aflopend",
+       lockText     : "Vries Kolom",
+       unlockText   : "Ontvries Kolom",
+       columnsText  : "Kolomme"
+    });
+}
+
+if(Ext.grid.PropertyColumnModel){
+    Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+       nameText   : "Naam",
+       valueText  : "Waarde",
+       dateFormat : "Y-m-j"
+    });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+    Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+       splitTip            : "Trek om grootte aan te pas.",
+       collapsibleSplitTip : "Trek om grootte aan te pas. Dubbel-klik om weg te steek."
+    });
+}
\ No newline at end of file
diff --git a/typo3/contrib/extJS/build/locale/ext-lang-bg.js b/typo3/contrib/extJS/build/locale/ext-lang-bg.js
new file mode 100755 (executable)
index 0000000..29d80b2
--- /dev/null
@@ -0,0 +1,272 @@
+/**
+ * Bulgarian Translation
+ *
+ * By Георги Костадинов, Калгари, Канада
+ * 10 October 2007
+ * By Nedko Penev 
+ * 26 October 2007
+ *
+ * (utf-8 encoding)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Зареждане...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+  Ext.grid.GridPanel.prototype.ddText = "{0} избрани колони";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Затвори таб";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "Невалидна стойност на полето";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Зареждане...";
+}
+
+Date.monthNames = [
+  "Януари",
+  "Февруари",
+  "Март",
+  "Април",
+  "Май",
+  "Юни",
+  "Юли",
+  "Август",
+  "Септември",
+  "Октомври",
+  "Ноември",
+  "Декември"
+];
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.dayNames = [
+  "Неделя",
+  "Понеделник",
+  "Вторник",
+  "Сряда",
+  "Четвъртък",
+  "Петък",
+  "Събота"
+];
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "OK",
+    cancel : "Отмени",
+    yes    : "Да",
+    no     : "Не"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d.m.Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Днес",
+    minText           : "Тази дата е преди минималната",
+    maxText           : "Тази дата е след максималната",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Следващ месец (Control+Right)',
+    prevText          : 'Предишен месец (Control+Left)',
+    monthYearText     : 'Избери месец (Control+Up/Down за преместване по години)',
+    todayTip          : "{0} (Spacebar)",
+    format            : "d.m.y",
+    okText            : "&#160;OK&#160;",
+    cancelText        : "Отмени",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Страница",
+    afterPageText  : "от {0}",
+    firstText      : "Първа страница",
+    prevText       : "Предишна страница",
+    nextText       : "Следваща страница",
+    lastText       : "Последна страница",
+    refreshText    : "Презареди",
+    displayMsg     : "Показвайки {0} - {1} от {2}",
+    emptyMsg       : 'Няма данни за показване'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "Минималната дължина на това поле е {0}",
+    maxLengthText : "Максималната дължина на това поле е {0}",
+    blankText     : "Това поле е задължително",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "Минималната стойност за това поле е {0}",
+    maxText : "Максималната стойност за това поле е {0}",
+    nanText : "{0} не е валидно число"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Недостъпен",
+    disabledDatesText : "Недостъпен",
+    minText           : "Датата в това поле трябва да е след {0}",
+    maxText           : "Датата в това поле трябва да е преди {0}",
+    invalidText       : "{0} не е валидна дата - трябва да бъде във формат {1}",
+    format            : "d.m.y",
+    altFormats        : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Зареждане...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'Това поле трябва да бъде емейл във формат "user@domain.com"',
+    urlText      : 'Това поле трябва да бъде URL във формат "http:/'+'/www.domain.com"',
+    alphaText    : 'Това поле трябва да съдържа само букви и _',
+    alphanumText : 'Това поле трябва да съдържа само букви, цифри и _'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Моля, въведете URL за връзката:',
+    buttonTips : {
+      bold : {
+        title: 'Bold (Ctrl+B)',
+        text: 'Удебелява избрания текст.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Italic (Ctrl+I)',
+        text: 'Прави избрания текст курсив.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Underline (Ctrl+U)',
+        text: 'Подчертава избрания текст.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Уголеми текста',
+        text: 'Уголемява размера на шрифта.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Намали текста',
+        text: 'Намалява размера на шрифта.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Цвят на маркирания текст',
+        text: 'Променя фоновия цвят на избрания текст.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Цвят на шрифта',
+        text: 'Променя цвета на избрания текст.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Ляво подравняване',
+        text: 'Подравнява текста на ляво.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Центриране',
+        text: 'Центрира текста.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Дясно подравняване',
+        text: 'Подравнява текста на дясно.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Неномериран списък',
+        text: 'Започва неномериран списък.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Номериран списък',
+        text: 'Започва номериран списък.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Хипервръзка',
+        text: 'Превръща избрания текст в хипервръзка.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Редактиране на кода',
+        text: 'Преминаване в режим на редактиране на кода.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Подреди в нарастващ ред",
+    sortDescText : "Подреди в намаляващ ред",
+    lockText     : "Заключи колона",
+    unlockText   : "Отключи колона",
+    columnsText  : "Колони"
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Име",
+    valueText  : "Стойност",
+    dateFormat : "d.m.Y"
+  });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Влачете с мишката за да промените размера.",
+    collapsibleSplitTip : "Влачете с мишката за да промените размера. Чукнете два пъти за да скриете."
+  });
+}
diff --git a/typo3/contrib/extJS/build/locale/ext-lang-ca.js b/typo3/contrib/extJS/build/locale/ext-lang-ca.js
new file mode 100755 (executable)
index 0000000..1d9842d
--- /dev/null
@@ -0,0 +1,286 @@
+/**
+ * Catalonian Translation by halkon_polako 6-12-2007
+ * December correction halkon_polako 11-12-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Carregant...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+  Ext.grid.GridPanel.prototype.ddText = "{0} fila(es) seleccionada(es)";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Tancar aquesta pestanya";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "El valor d&#39;aquest camp &#233;s inv&#224;lid";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Carregant...";
+}
+
+Date.monthNames = [
+  "Gener",
+  "Febrer",
+  "Mar&#231;",
+  "Abril",
+  "Maig",
+  "Juny",
+  "Juliol",
+  "Agost",
+  "Setembre",
+  "Octubre",
+  "Novembre",
+  "Desembre"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Gen : 0,
+  Feb : 1,
+  Mar : 2,
+  Abr : 3,
+  Mai : 4,
+  Jun : 5,
+  Jul : 6,
+  Ago : 7,
+  Set : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Diumenge",
+  "Dilluns",
+  "Dimarts",
+  "Dimecres",
+  "Dijous",
+  "Divendres",
+  "Dissabte"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "Acceptar",
+    cancel : "Cancel&#183;lar",
+    yes    : "S&#237;",
+    no     : "No"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d/m/Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Avui",
+    minText           : "Aquesta data &#233;s anterior a la data m&#237;nima",
+    maxText           : "Aquesta data &#233;s posterior a la data m&#224;xima",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Mes Seg&#252;ent (Control+Fletxa Dreta)',
+    prevText          : 'Mes Anterior (Control+Fletxa Esquerra)',
+    monthYearText     : 'Seleccioni un mes (Control+Fletxa a Dalt o Abaix per canviar els anys)',
+    todayTip          : "{0} (Barra d&#39;espai)",
+    format            : "d/m/Y",
+    okText            : "&#160;Acceptar&#160;",
+    cancelText        : "Cancel&#183;lar",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "P&#224;gina",
+    afterPageText  : "de {0}",
+    firstText      : "Primera P&#224;gina",
+    prevText       : "P&#224;gina Anterior",
+    nextText       : "P&#224;gina Seg&#252;ent",
+    lastText       : "Darrera P&#224;gina",
+    refreshText    : "Refrescar",
+    displayMsg     : "Mostrant {0} - {1} de {2}",
+    emptyMsg       : 'Sense dades per mostrar'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "El tamany m&#237;nim per aquest camp &#233;s {0}",
+    maxLengthText : "El tamany m&#224;xim per aquest camp &#233;s {0}",
+    blankText     : "Aquest camp &#233;s obligatori",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "El valor m&#237;nim per aquest camp &#233;s {0}",
+    maxText : "El valor m&#224;xim per aquest camp &#233;s {0}",
+    nanText : "{0} no &#233;s un nombre v&#224;lid"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Deshabilitat",
+    disabledDatesText : "Deshabilitat",
+    minText           : "La data en aquest camp ha de ser posterior a {0}",
+    maxText           : "La data en aquest camp ha de ser inferior a {0}",
+    invalidText       : "{0} no &#233;s una data v&#224;lida - ha de tenir el format {1}",
+    format            : "d/m/Y",
+    altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Carregant...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'Aquest camp ha de ser una adre&#231;a de e-mail amb el format "user@domain.com"',
+    urlText      : 'Aquest camp ha de ser una URL amb el format "http:/'+'/www.domain.com"',
+    alphaText    : 'Aquest camp nom&#233;s pot contenir lletres i _',
+    alphanumText : 'Aquest camp nom&#233;s por contenir lletres, nombres i _'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Si us plau, tecleixi la URL per l\'enlla&#231;:',
+    buttonTips : {
+      bold : {
+        title: 'Negreta (Ctrl+B)',
+        text: 'Posa el text seleccionat en negreta.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'It&#224;lica (Ctrl+I)',
+        text: 'Posa el text seleccionat en it&#224;lica.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Subratllat (Ctrl+U)',
+        text: 'Subratlla el text seleccionat.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Augmentar Text',
+        text: 'Augmenta el tamany de la font de text.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Disminuir Text',
+        text: 'Disminueix el tamany de la font de text.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Color de fons',
+        text: 'Canvia el color de fons del text seleccionat.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Color de la font de text',
+        text: 'Canvia el color del text seleccionat.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Alinear a la esquerra',
+        text: 'Alinea el text a la esquerra.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Centrar el text',
+        text: 'Centra el text a l\'editor',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Alinear a la dreta',
+        text: 'Alinea el text a la dreta.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Llista amb vinyetes',
+        text: 'Comen&#231;a una llista amb vinyetes.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Llista numerada',
+        text: 'Comen&#231;a una llista numerada.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Enlla&#231;',
+        text: 'Transforma el text seleccionat en un enlla&#231;.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Editar Codi',
+        text: 'Canvia al mode d\'edici&#243; de codi.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Ordenaci&#243; Ascendent",
+    sortDescText : "Ordenaci&#243; Descendent",
+    lockText     : "Bloquejar Columna",
+    unlockText   : "Desbloquejar Columna",
+    columnsText  : "Columnes"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Buit)',
+    groupByText    : 'Agrupar Per Aquest Camp',
+    showGroupsText : 'Mostrar en Grups'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Nom",
+    valueText  : "Valor",
+    dateFormat : "d/m/Y"
+  });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Cliqueu i arrossegueu per canviar el tamany del panell.",
+    collapsibleSplitTip : "Cliqueu i arrossegueu per canviar el tamany del panell. Doble clic per ocultar-ho."
+  });
+}
diff --git a/typo3/contrib/extJS/build/locale/ext-lang-cs.js b/typo3/contrib/extJS/build/locale/ext-lang-cs.js
new file mode 100755 (executable)
index 0000000..2d20d86
--- /dev/null
@@ -0,0 +1,287 @@
+/**
+ * Czech Translations
+ * Translated by Tomáš Korčák (72)
+ * 2008/02/08 18:02, Ext-2.0.1
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Prosím čekejte...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+   Ext.grid.GridPanel.prototype.ddText = "{0} vybraných řádků";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Zavřít záložku";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Hodnota v tomto poli je neplatná";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Prosím čekejte...";
+}
+
+Date.monthNames = [
+   "Leden",
+   "Únor",
+   "Březen",
+   "Duben",
+   "Květen",
+   "Červen",
+   "Červenec",
+   "Srpen",
+   "Září",
+   "Říjen",
+   "Listopad",
+   "Prosinec"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "Neděle",
+   "Pondělí",
+   "Úterý",
+   "Středa",
+   "Čtvrtek",
+   "Pátek",
+   "Sobota"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Storno",
+      yes    : "Ano",
+      no     : "Ne"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Dnes",
+      minText           : "Datum nesmí být starší než je minimální",
+      maxText           : "Datum nesmí být dřívější než je maximální",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames       : Date.monthNames,
+      dayNames         : Date.dayNames,
+      nextText          : 'Následující měsíc (Control+Right)',
+      prevText          : 'Předcházející měsíc (Control+Left)',
+      monthYearText     : 'Zvolte měsíc (ke změně let použijte Control+Up/Down)',
+      todayTip          : "{0} (Spacebar)",
+      format            : "d.m.Y",
+      okText            : "&#160;OK&#160;",
+      cancelText        : "Storno",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Strana",
+      afterPageText  : "z {0}",
+      firstText      : "První strana",
+      prevText       : "Přecházející strana",
+      nextText       : "Následující strana",
+      lastText       : "Poslední strana",
+      refreshText    : "Aktualizovat",
+      displayMsg     : "Zobrazeno {0} - {1} z celkových {2}",
+      emptyMsg       : 'Žádné záznamy nebyly nalezeny'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Pole nesmí mít méně {0} znaků",
+      maxLengthText : "Pole nesmí být delší než {0} znaků",
+      blankText     : "This field is required",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Hodnota v tomto poli nesmí být menší než {0}",
+      maxText : "Hodnota v tomto poli nesmí být větší než {0}",
+      nanText : "{0} není platné číslo"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Neaktivní",
+      disabledDatesText : "Neaktivní",
+      minText           : "Datum v tomto poli nesmí být starší než {0}",
+      maxText           : "Datum v tomto poli nesmí být novější než {0}",
+      invalidText       : "{0} není platným datem - zkontrolujte zda-li je ve formátu {1}",
+      format            : "d.m.Y",
+      altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Prosím čekejte...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'V tomto poli může být vyplněna pouze emailová adresa ve formátu "uživatel@doména.cz"',
+      urlText      : 'V tomto poli může být vyplněna pouze URL (adresa internetové stránky) ve formátu "http:/'+'/www.doména.cz"',
+      alphaText    : 'Toto pole může obsahovat pouze písmena abecedy a znak _',
+      alphanumText : 'Toto pole může obsahovat pouze písmena abecedy, čísla a znak _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Zadejte URL adresu odkazu:',
+    buttonTips : {
+      bold : {
+        title: 'Tučné (Ctrl+B)',
+        text: 'Označí vybraný text tučně.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Kurzíva (Ctrl+I)',
+        text: 'Označí vybraný text kurzívou.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Podtržení (Ctrl+U)',
+        text: 'Podtrhne vybraný text.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Zvětšit písmo',
+        text: 'Zvětší velikost písma.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Zúžit písmo',
+        text: 'Zmenší velikost písma.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Barva zvýraznění textu',
+        text: 'Označí vybraný text tak, aby vypadal jako označený zvýrazňovačem.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Barva písma',
+        text: 'Změní barvu textu.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Zarovnat text vlevo',
+        text: 'Zarovná text doleva.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Zarovnat na střed',
+        text: 'Zarovná text na střed.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Zarovnat text vpravo',
+        text: 'Zarovná text doprava.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Odrážky',
+        text: 'Začne seznam s odrážkami.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Číslování',
+        text: 'Začne číslovaný seznam.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Internetový odkaz',
+        text: 'Z vybraného textu vytvoří internetový odkaz.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Zdrojový kód',
+        text: 'Přepne do módu úpravy zdrojového kódu.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Řadit vzestupně",
+      sortDescText : "Řadit sestupně",
+      lockText     : "Ukotvit sloupec",
+      unlockText   : "Uvolnit sloupec",
+      columnsText  : "Sloupce"
+   });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Žádná data)',
+    groupByText    : 'Seskupit dle tohoto pole',
+    showGroupsText : 'Zobrazit ve skupině'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Název",
+      valueText  : "Hodnota",
+      dateFormat : "j.m.Y"
+   });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Tahem změnit velikost.",
+      collapsibleSplitTip : "Tahem změnit velikost. Dvojklikem skrýt."
+   });
+}
diff --git a/typo3/contrib/extJS/build/locale/ext-lang-da.js b/typo3/contrib/extJS/build/locale/ext-lang-da.js
new file mode 100755 (executable)
index 0000000..b8bd959
--- /dev/null
@@ -0,0 +1,290 @@
+/*
+ * Danish translation
+ * By JohnF
+ * 04-09-2007, 05:28 AM
+ * 
+ * Extended and modified by Karl Krukow, 
+ * December, 2007.
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Henter...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+   Ext.grid.GridPanel.prototype.ddText = "{0} markerede rækker";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Luk denne fane";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Værdien i dette felt er ugyldig";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Henter...";
+}
+
+Date.monthNames = [
+   "januar",
+   "februar",
+   "marts",
+   "april",
+   "maj",
+   "juni",
+   "juli",
+   "august",
+   "september",
+   "oktober",
+   "november",
+   "december"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "søndag",
+   "mandag",
+   "tirsdag",
+   "onsdag",
+   "torsdag",
+   "fredag",
+   "lørdag"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Fortryd",
+      yes    : "Ja",
+      no     : "Nej"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "I dag",
+      minText           : "Denne dato er før den tidligst tilladte",
+      maxText           : "Denne dato er senere end den senest tilladte",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames        : Date.monthNames,
+      dayNames          : Date.dayNames,      
+      nextText          : 'Næste måned (Ctrl + højre piltast)',
+      prevText          : 'Forrige måned (Ctrl + venstre piltast)',
+      monthYearText     : 'Vælg en måned (Ctrl + op/ned pil for at ændre årstal)',
+      todayTip          : "{0} (mellemrum)",
+      format            : "d/m/y",
+         okText            : "&#160;OK&#160;",
+      cancelText        : "Cancel",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Side",
+      afterPageText  : "af {0}",
+      firstText      : "Første side",
+      prevText       : "Forrige side",
+      nextText       : "Næste side",
+      lastText       : "Sidste side",
+      refreshText    : "Opfrisk",
+      displayMsg     : "Viser {0} - {1} af {2}",
+      emptyMsg       : 'Der er ingen data at vise'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Minimum længden for dette felt er {0}",
+      maxLengthText : "Maksimum længden for dette felt er {0}",
+      blankText     : "Dette felt skal udfyldes",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Mindste-værdien for dette felt er {0}",
+      maxText : "Maksimum-værdien for dette felt er {0}",
+      nanText : "{0} er ikke et tilladt nummer"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Inaktiveret",
+      disabledDatesText : "Inaktiveret",
+      minText           : "Datoen i dette felt skal være efter {0}",
+      maxText           : "Datoen i dette felt skal være før {0}",
+      invalidText       : "{0} er ikke en tilladt dato - datoer skal angives i formatet {1}",
+      format            : "d/m/y",
+      altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Henter...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Dette felt skal være en email adresse i formatet "xxx@yyy.zzz"',
+      urlText      : 'Dette felt skal være en URL i formatet "http:/'+'/xxx.yyy"',
+      alphaText    : 'Dette felt kan kun indeholde bogstaver og "_" (understregning)',
+      alphanumText : 'Dette felt kan kun indeholde bogstaver, tal og "_" (understregning)'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Indtast URL:',
+    buttonTips : {
+      bold : {
+        title: 'Fed (Ctrl+B)', //Can I change this to Ctrl+F?
+        text: 'Formater det markerede tekst med fed.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Kursiv (Ctrl+I)',//Ctrl+K
+        text: 'Formater det markerede tekst med kursiv.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Understreg (Ctrl+U)',
+        text: 'Understreg det markerede tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Forstør tekst',
+        text: 'Forøg fontstørrelsen.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Formindsk tekst',
+        text: 'Formindsk fontstørrelsen.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Farve for tekstfremhævelse',
+        text: 'Skift baggrundsfarve for det markerede tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Skriftfarve',
+        text: 'Skift skriftfarve for det markerede tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Juster venstre',
+        text: 'Venstrestil tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Centreret',
+        text: 'Centrer tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Juster højre',
+        text: 'Højrestil tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Punktopstilling',
+        text: 'Påbegynd punktopstilling.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Nummereret opstilling',
+        text: 'Påbegynd nummereret opstilling.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hyperlink',
+        text: 'Lav det markerede test til et hyperlink.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Kildetekstredigering',
+        text: 'Skift til redigering af kildetekst.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Sortér stigende",
+      sortDescText : "Sortér faldende",
+      lockText     : "Lås kolonne",
+      unlockText   : "Fjern lås fra kolonne",
+      columnsText  : "Kolonner"
+   });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Ingen)',
+    groupByText    : 'Gruppér efter dette felt',
+    showGroupsText : 'Vis i grupper' //should this be sort in groups?
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Navn",
+      valueText  : "Værdi",
+      dateFormat : "j/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Træk for at ændre størrelsen.",
+      collapsibleSplitTip : "Træk for at ændre størrelsen. Dobbelt-klik for at skjule."
+   });
+}
diff --git a/typo3/contrib/extJS/build/locale/ext-lang-de.js b/typo3/contrib/extJS/build/locale/ext-lang-de.js
new file mode 100755 (executable)
index 0000000..9f4db89
--- /dev/null
@@ -0,0 +1,301 @@
+/*
+ * German translation
+ * By schmidetzki and humpdi
+ * 04-07-2007
+ * Updated by wm003 10-31-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Übertrage Daten ...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+   Ext.grid.GridPanel.prototype.ddText = "{0} Zeile(n) ausgewählt";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Diesen Tab schließen";
+}
+
+if(Ext.form.BasicForm){
+   Ext.form.BasicForm.prototype.waitTitle = "Bitte warten...";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Der Wert des Feldes ist nicht korrekt";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Übertrage Daten...";
+}
+
+Date.monthNames = [
+   "Januar",
+   "Februar",
+   "März",
+   "April",
+   "Mai",
+   "Juni",
+   "Juli",
+   "August",
+   "September",
+   "Oktober",
+   "November",
+   "Dezember"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "Sonntag",
+   "Montag",
+   "Dienstag",
+   "Mittwoch",
+   "Donnerstag",
+   "Freitag",
+   "Samstag"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Abbrechen",
+      yes    : "Ja",
+      no     : "Nein"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Heute",
+      minText           : "Dieses Datum liegt von dem erstmöglichen Datum",
+      maxText           : "Dieses Datum liegt nach dem letztmöglichen Datum",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames           : Date.monthNames,
+      dayNames             : Date.dayNames,
+      nextText          : "Nächster Monat (Strg/Control + Rechts)",
+      prevText          : "Vorheriger Monat (Strg/Control + Links)",
+      monthYearText     : "Monat auswählen (Strg/Control + Hoch/Runter, um ein Jahr auszuwählen)",
+      todayTip          : "Heute ({0}) (Leertaste)",
+      format            : "d.m.Y",
+      okText            : "&#160;OK&#160;",
+      cancelText        : "Abbrechen",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Seite",
+      afterPageText  : "von {0}",
+      firstText      : "Erste Seite",
+      prevText       : "vorherige Seite",
+      nextText       : "nächste Seite",
+      lastText       : "letzte Seite",
+      refreshText    : "Aktualisieren",
+      displayMsg     : "Anzeige Eintrag {0} - {1} von {2}",
+      emptyMsg       : "Keine Daten vorhanden"
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Bitte geben Sie mindestens {0} Zeichen ein",
+      maxLengthText : "Bitte geben Sie maximal {0} Zeichen ein",
+      blankText     : "Dieses Feld darf nicht leer sein",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Der Mindestwert für dieses Feld ist {0}",
+      maxText : "Der Maximalwert für dieses Feld ist {0}",
+      nanText : "{0} ist keine Zahl"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "nicht erlaubt",
+      disabledDatesText : "nicht erlaubt",
+      minText           : "Das Datum in diesem Feld muß nach dem {0} liegen",
+      maxText           : "Das Datum in diesem Feld muß vor dem {0} liegen",
+      invalidText       : "{0} ist kein valides Datum - es muß im Format {1} eingegeben werden",
+      format            : "d.m.Y",
+      altFormats        : "d.m.Y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Lade Daten ...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Dieses Feld sollte eine E-Mail-Adresse enthalten. Format: "user@domain.com"',
+      urlText      : 'Dieses Feld sollte eine URL enthalten. Format: "http:/'+'/www.domain.com"',
+      alphaText    : 'Dieses Feld darf nur Buchstaben enthalten und _',
+      alphanumText : 'Dieses Feld darf nur Buchstaben und Zahlen enthalten und _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Bitte geben Sie die URL für den Link ein:',
+    buttonTips : {
+      bold : {
+        title: 'Fett (Ctrl+B)',
+        text: 'Erstellt den ausgewählten Text in Fettschrift.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Kursiv (Ctrl+I)',
+        text: 'Erstellt den ausgewählten Text in Schrägschrift.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Unterstrichen (Ctrl+U)',
+        text: 'Unterstreicht den ausgewählten Text.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Text vergößern',
+        text: 'Erhöht die Schriftgröße.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Text verkleinern',
+        text: 'Verringert die Schriftgröße.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Text farblich hervorheben',
+        text: 'Hintergrundfarbe des ausgewählten Textes ändern.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Schriftfarbe',
+        text: 'Farbe des ausgewählten Textes ändern.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Linksbündig',
+        text: 'Setzt den Text linksbündig.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Zentrieren',
+        text: 'Zentriert den Text in Editor.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Rechtsbündig',
+        text: 'Setzt den Text rechtsbündig.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Aufzählungsliste',
+        text: 'Beginnt eine Aufzählungsliste mit Spiegelstrichen.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Numerierte Liste',
+        text: 'Beginnt eine numerierte Liste.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hyperlink',
+        text: 'Erstellt einen Hyperlink aus dem ausgewählten text.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Source bearbeiten',
+        text: 'Zur Bearbeitung des Quelltextes wechseln.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Aufsteigend sortieren",
+      sortDescText : "Absteigend sortieren",
+      lockText     : "Spalte sperren",
+      unlockText   : "Spalte freigeben (entsperren)",
+      columnsText  : "Spalten"
+   });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Keine)',
+    groupByText    : 'Dieses Feld gruppieren',
+    showGroupsText : 'In Gruppen anzeigen'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Name",
+      valueText  : "Wert",
+      dateFormat : "d.m.Y"
+  });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Ziehen, um Größe zu ändern.",
+    collapsibleSplitTip : "Ziehen, um Größe zu ändern. Doppelklick um Panel auszublenden."
+  });
+}
+
+if(Ext.form.TimeField){
+   Ext.apply(Ext.form.TimeField.prototype, {
+    minText : "Die Zeit muss gleich oder nach {0} liegen",
+    maxText : "Die Zeit muss gleich oder vor {0} liegen",
+    invalidText : "{0} ist keine gültige Zeit",
+    format : "H:i"
+   });
+}
diff --git a/typo3/contrib/extJS/build/locale/ext-lang-el_GR.js b/typo3/contrib/extJS/build/locale/ext-lang-el_GR.js
new file mode 100755 (executable)
index 0000000..9eb35d4
--- /dev/null
@@ -0,0 +1,311 @@
+/*
+ * Ext JS Library 2.1
+ * Copyright(c) 2006-2008, Ext JS, LLC.
+ * licensing@extjs.com
+ * 
+ * http://extjs.com/license
+ */
+
+/**
+ * Greek translation
+ * By thesilentman (utf8 encoding)
+ * 27 Apr 2008
+ *
+ * Changes since previous (second) Version:
+ * + added Date.shortMonthNames 
+ * + added Date.getShortMonthName 
+ * + added Date.monthNumbers
+ * + added Ext.grid.GroupingView
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Μεταφόρτωση δεδομένων...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+   Ext.grid.GridPanel.prototype.ddText = "{0} Επιλεγμένες σειρές";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Κλείστε το tab";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Το περιεχόμενο του πεδίου δεν είναι αποδεκτό";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Μεταφόρτωση δεδομένων...";
+}
+
+Date.monthNames = [
+   "Ιανουάριος",
+   "Φεβρουάριος",
+   "Μάρτιος",
+   "Απρίλιος",
+   "Μάιος",
+   "Ιούνιος",
+   "Ιούλιος",
+   "Αύγουστος",
+   "Σεπτέμβριος",
+   "Οκτώβριος",
+   "Νοέμβριος",
+   "Δεκέμβριος"
+];
+
+Date.shortMonthNames = [
+   "Ιαν",
+   "Φεβ",
+   "Μάρ",
+   "Απρ",
+   "Μάι",
+   "Ιού",
+   "Ιού",
+   "Αύγ",
+   "Σεπ",
+   "Οκτ",
+   "Νοέ",
+   "Δεκ"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+
+Date.dayNames = [
+   "Κυριακή",
+   "Δευτέρα",
+   "Τρίτη",
+   "Τετάρτη",
+   "Πέμπτη",
+   "Παρασκευή",
+   "Σάββατο"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Άκυρο",
+      yes    : "Ναι",
+      no     : "Όχι"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Σήμερα",
+      minText           : "Η Ημερομηνία είναι προγενέστερη από την παλαιότερη αποδεκτή",
+      maxText           : "Η Ημερομηνία είναι μεταγενέστερη από την νεότερη αποδεκτή",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames  : Date.monthNames,
+      dayNames    : Date.dayNames,
+      nextText          : 'Επόμενος Μήνας (Control+Δεξί Βέλος)',
+      prevText          : 'Προηγούμενος Μήνας (Control + Αριστερό Βέλος)',
+      monthYearText     : 'Επιλογή Μηνός (Control + Επάνω/Κάτω Βέλος για μεταβολή ετών)',
+      todayTip          : "{0} (ΠΛήκτρο Διαστήματος)",
+      format            : "d/m/y"
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Σελίδα",
+      afterPageText  : "από {0}",
+      firstText      : "Πρώτη Σελίδα",
+      prevText       : "Προηγούμενη Σελίδα",
+      nextText       : "Επόμενη Σελίδα",
+      lastText       : "Τελευταία Σελίδα",
+      refreshText    : "Ανανέωση",
+      displayMsg     : "Εμφάνιση {0} - {1} από {2}",
+      emptyMsg       : 'Δεν υπάρχουν δεδομένα'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Το μικρότερο αποδεκτό μήκος για το πεδίο είναι {0}",
+      maxLengthText : "Το μεγαλύτερο αποδεκτό μήκος για το πεδίο είναι {0}",
+      blankText     : "Το πεδίο είναι υποχρεωτικό",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Η μικρότερη τιμή του πεδίου είναι {0}",
+      maxText : "Η μεγαλύτερη τιμή του πεδίου είναι {0}",
+      nanText : "{0} δεν είναι αποδεκτός αριθμός"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Ανενεργό",
+      disabledDatesText : "Ανενεργό",
+      minText           : "Η ημερομηνία αυτού του πεδίου πρέπει να είναι μετά την {0}",
+      maxText           : "Η ημερομηνία αυτού του πεδίου πρέπει να είναι πριν την {0}",
+      invalidText       : "{0} δεν είναι έγκυρη ημερομηνία - πρέπει να είναι στη μορφή {1}",
+      format            : "d/m/y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Μεταφόρτωση δεδομένων...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Το πεδίο δέχεται μόνο διευθύνσεις Email σε μορφή "user@domain.com"',
+      urlText      : 'Το πεδίο δέχεται μόνο URL σε μορφή "http:/'+'/www.domain.com"',
+      alphaText    : 'Το πεδίο δέχεται μόνο χαρακτήρες και _',
+      alphanumText : 'Το πεδίο δέχεται μόνο χαρακτήρες, αριθμούς και _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+   Ext.apply(Ext.form.HtmlEditor.prototype, {
+        createLinkText : 'Δώστε τη διεύθυνση (URL) για το σύνδεσμο (link):',
+        buttonTips : {
+            bold : {
+               title: 'Έντονα (Ctrl+B)',
+               text: 'Κάνετε το προεπιλεγμένο κείμενο έντονο.',
+               cls: 'x-html-editor-tip'
+            },
+            italic : {
+               title: 'Πλάγια (Ctrl+I)',
+               text: 'Κάνετε το προεπιλεγμένο κείμενο πλάγιο.',
+               cls: 'x-html-editor-tip'
+            },
+            underline : {
+               title: 'Υπογράμμιση (Ctrl+U)',
+               text: 'Υπογραμμίζετε το προεπιλεγμένο κείμενο.',
+               cls: 'x-html-editor-tip'
+           },
+           increasefontsize : {
+               title: 'Μεγέθυνση κειμένου',
+               text: 'Μεγαλώνετε τη γραμματοσειρά.',
+               cls: 'x-html-editor-tip'
+           },
+           decreasefontsize : {
+               title: 'Σμίκρυνση κειμένου',
+               text: 'Μικραίνετε τη γραμματοσειρά.',
+               cls: 'x-html-editor-tip'
+           },
+           backcolor : {
+               title: 'Χρώμα Φόντου Κειμένου',
+               text: 'Αλλάζετε το χρώμα στο φόντο του προεπιλεγμένου κειμένου.',
+               cls: 'x-html-editor-tip'
+           },
+           forecolor : {
+               title: 'Χρώμα Γραμματοσειράς',
+               text: 'Αλλάζετε το χρώμα στη γραμματοσειρά του προεπιλεγμένου κειμένου.',               
+               cls: 'x-html-editor-tip'
+           },
+           justifyleft : {
+               title: 'Αριστερή Στοίχιση Κειμένου',
+               text: 'Στοιχίζετε το κείμενο στα αριστερά.',
+               cls: 'x-html-editor-tip'
+           },
+           justifycenter : {
+               title: 'Κεντράρισμα Κειμένου',
+               text: 'Στοιχίζετε το κείμενο στο κέντρο.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyright : {
+               title: 'Δεξιά Στοίχιση Κειμένου',
+               text: 'Στοιχίζετε το κείμενο στα δεξιά.',
+               cls: 'x-html-editor-tip'
+           },
+           insertunorderedlist : {
+               title: 'Εισαγωγή Λίστας Κουκίδων',
+               text: 'Ξεκινήστε μια λίστα με κουκίδες.',
+               cls: 'x-html-editor-tip'
+           },
+           insertorderedlist : {
+               title: 'Εισαγωγή Λίστας Αρίθμησης',
+               text: 'Ξεκινήστε μια λίστα με αρίθμηση.',
+               cls: 'x-html-editor-tip'
+           },
+           createlink : {
+               title: 'Hyperlink',
+               text: 'Μετατρέπετε το προεπιλεγμένο κείμενο σε Link.',
+               cls: 'x-html-editor-tip'
+           },
+           sourceedit : {
+               title: 'Επεξεργασία Κώδικα',
+               text: 'Μεταβαίνετε στη λειτουργία επεξεργασίας κώδικα.',
+               cls: 'x-html-editor-tip'
+           }
+        }
+   });
+}
+
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Αύξουσα ταξινόμηση",
+      sortDescText : "Φθίνουσα ταξινόμηση",
+      lockText     : "Κλείδωμα στήλης",
+      unlockText   : "Ξεκλείδωμα στήλης",
+      columnsText  : "Στήλες"
+   });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+  emptyGroupText : '(Καμμία)',
+  groupByText    : 'Ομαδοποίηση βάσει αυτού του πεδίου',
+  showGroupsText : 'Να εμφανίζεται στις ομάδες'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Όνομα",
+      valueText  : "Περιεχόμενο",
+      dateFormat : "m/d/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Σύρετε για αλλαγή μεγέθους.",
+      collapsibleSplitTip : "Σύρετε για αλλαγή μεγέθους. Διπλό κλικ για απόκρυψη."
+   });
+}
+
diff --git a/typo3/contrib/extJS/build/locale/ext-lang-en.js b/typo3/contrib/extJS/build/locale/ext-lang-en.js
new file mode 100755 (executable)
index 0000000..a817f8a
--- /dev/null
@@ -0,0 +1,292 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * English Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Loading...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+  Ext.grid.GridPanel.prototype.ddText = "{0} selected row(s)";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Close this tab";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Loading...";
+}
+
+Date.monthNames = [
+  "January",
+  "February",
+  "March",
+  "April",
+  "May",
+  "June",
+  "July",
+  "August",
+  "September",
+  "October",
+  "November",
+  "December"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Sunday",
+  "Monday",
+  "Tuesday",
+  "Wednesday",
+  "Thursday",
+  "Friday",
+  "Saturday"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "OK",
+    cancel : "Cancel",
+    yes    : "Yes",
+    no     : "No"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "m/d/Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Today",
+    minText           : "This date is before the minimum date",
+    maxText           : "This date is after the maximum date",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Next Month (Control+Right)',
+    prevText          : 'Previous Month (Control+Left)',
+    monthYearText     : 'Choose a month (Control+Up/Down to move years)',
+    todayTip          : "{0} (Spacebar)",
+    format            : "m/d/y",
+    okText            : "&#160;OK&#160;",
+    cancelText        : "Cancel",
+    startDay          : 0
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Page",
+    afterPageText  : "of {0}",
+    firstText      : "First Page",
+    prevText       : "Previous Page",
+    nextText       : "Next Page",
+    lastText       : "Last Page",
+    refreshText    : "Refresh",
+    displayMsg     : "Displaying {0} - {1} of {2}",
+    emptyMsg       : 'No data to display'
+  });
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "The minimum length for this field is {0}",
+    maxLengthText : "The maximum length for this field is {0}",
+    blankText     : "This field is required",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "The minimum value for this field is {0}",
+    maxText : "The maximum value for this field is {0}",
+    nanText : "{0} is not a valid number"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Disabled",
+    disabledDatesText : "Disabled",
+    minText           : "The date in this field must be after {0}",
+    maxText           : "The date in this field must be before {0}",
+    invalidText       : "{0} is not a valid date - it must be in the format {1}",
+    format            : "m/d/y",
+    altFormats        : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Loading...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'This field should be an e-mail address in the format "user@domain.com"',
+    urlText      : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
+    alphaText    : 'This field should only contain letters and _',
+    alphanumText : 'This field should only contain letters, numbers and _'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Please enter the URL for the link:',
+    buttonTips : {
+      bold : {
+        title: 'Bold (Ctrl+B)',
+        text: 'Make the selected text bold.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Italic (Ctrl+I)',
+        text: 'Make the selected text italic.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Underline (Ctrl+U)',
+        text: 'Underline the selected text.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Grow Text',
+        text: 'Increase the font size.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Shrink Text',
+        text: 'Decrease the font size.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Text Highlight Color',
+        text: 'Change the background color of the selected text.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Font Color',
+        text: 'Change the color of the selected text.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Align Text Left',
+        text: 'Align text to the left.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Center Text',
+        text: 'Center text in the editor.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Align Text Right',
+        text: 'Align text to the right.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Bullet List',
+        text: 'Start a bulleted list.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Numbered List',
+        text: 'Start a numbered list.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hyperlink',
+        text: 'Make the selected text a hyperlink.',
+        cls: 'x-html-editor-tip'
+ &nb