/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/license.txt |
---|
New file |
0,0 → 1,50 |
Ext JS - JavaScript Library |
Copyright (c) 2006-2008, Ext JS, LLC |
All rights reserved. |
licensing@extjs.com |
http://extjs.com/license |
License of CSS and Graphics ("Assets") |
------------------------------------------------------------------------------------------ |
The Assets distributed with Ext are licensed for use ONLY |
with their associated Ext JavaScript component ("Component"). Use of the Assets in |
any way that does not also include the Component is prohibited without explicit |
permission from Ext JS, LLC. Deriving images and CSS from the Assets in an effort |
to bypass this license is also prohibited. |
Open Source License |
------------------------------------------------------------------------------------------ |
Ext is also licensed under the terms of the Open Source LGPL 3.0 license. You may use |
our open source license if you: |
* Want to use Ext in an open source project that precludes using non-open source software |
* Plan to use Ext in a personal, educational or non-profit manner |
* Are using Ext in a commercial application that is not a software development library |
or toolkit, you will meet LGPL requirements and you do not wish to support the project |
http://www.gnu.org/licenses/lgpl.html |
Commercial License |
------------------------------------------------------------------------------------------ |
If you are using this library for commercial purposes, we encourage you to purchase |
a commercial license. Please visit http://extjs.com/license for more details. |
OEM / Reseller License |
------------------------------------------------------------------------------------------ |
If you plan to distribute Ext in a product that will be packaged or sold as a software |
development library, toolkit or plug-in-based framework ("LIBRARY"), we require that you |
work with us to establish a specific license that is appropriate. Use of the open source |
license in a LIBRARY is not permitted without explicit permission from Ext JS, LLC. |
For more details, please visit: http://extjs.com/license. |
-- |
This library is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
Lesser General Public License for more details. |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/legacy/grid.css |
---|
New file |
0,0 → 1,295 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
/* Grid2 styles */ |
.x-grid { |
position:relative; |
overflow:hidden; |
background-color:#fff; |
} |
.x-grid-scroller { |
overflow:auto; |
} |
.x-grid-viewport, .x-grid-locked{ |
position:absolute; |
left:0; top: 0; |
z-index:2; |
overflow:hidden; |
visibility:hidden; |
} |
.x-grid-cell-inner, .x-grid-hd-inner{ |
overflow:hidden; |
-o-text-overflow: ellipsis; |
text-overflow: ellipsis; |
} |
.x-grid-hd-row td, .x-grid-row td{ |
font:normal 11px arial, tahoma, helvetica, sans-serif; |
line-height:13px; |
white-space: nowrap; |
vertical-align: top; |
-moz-outline: none; |
-moz-user-focus: normal; |
} |
.x-grid-hd-row td { |
line-height:14px; |
} |
.x-grid-col { |
border-right: 1px solid #ebebeb; |
border-bottom: 1px solid #ebebeb; |
} |
/* Locked styles */ |
.x-grid-locked .x-grid-body td { |
background-color: #FBFDFF; |
border-right: 1px solid #deecfd; |
border-bottom: 1px solid #deecfd !important; |
} |
.x-grid-locked .x-grid-body td .x-grid-cell-inner { |
border-top:0 none; |
} |
.x-grid-locked .x-grid-row-alt td{ |
background-color: #F5FAFE; |
} |
.x-grid-locked .x-grid-header table{ |
border-right:1px solid transparent; |
} |
.x-grid-locked .x-grid-body table{ |
border-right:1px solid #c3daf9; |
} |
.x-grid-locked .x-grid-body td .x-grid-cell-inner { |
} |
.x-grid-row { |
cursor: default; |
} |
.x-grid-row-alt{ |
background-color:#f1f1f1; |
} |
.x-grid-row-over td{ |
background-color:#d9e8fb; |
} |
.x-grid-resize-proxy { |
width:3px; |
background-color:#cccccc; |
cursor: e-resize; |
cursor: col-resize; |
position:absolute; |
top:0; |
height:100px; |
overflow:hidden; |
visibility:hidden; |
border:0 none; |
z-index:7; |
} |
.x-grid-focus { |
position:absolute; |
top:0; |
-moz-outline:0 none; |
outline:0 none; |
-moz-user-select: normal; |
-khtml-user-select: normal; |
} |
/* header styles */ |
.x-grid-header{ |
background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x; |
overflow:hidden; |
position:relative; |
cursor:default; |
width:100%; |
} |
.x-grid-hd-row{ |
height:22px; |
} |
.x-grid-hd { |
padding-right:1px; |
} |
.x-grid-hd-over .x-grid-hd-inner { |
border-bottom: 1px solid #c3daf9; |
} |
.x-grid-hd-over .x-grid-hd-text { |
background: #fafafa url(../images/default/grid/grid-hrow.gif) repeat-x 0 1px; |
padding-bottom:1px; |
border-bottom: 1px solid #b3cae9; |
} |
.x-grid-sort-icon{ |
background-repeat: no-repeat; |
display: none; |
height: 4px; |
width: 13px; |
margin-left:3px; |
vertical-align: middle; |
} |
.x-grid-header .sort-asc .x-grid-sort-icon { |
background-image: url(../images/default/grid/sort_asc.gif); |
display: inline; |
} |
.x-grid-header .sort-desc .x-grid-sort-icon { |
background-image: url(../images/default/grid/sort_desc.gif); |
display: inline; |
} |
/* Body Styles */ |
.x-grid-body { |
overflow:hidden; |
position:relative; |
width:100%; |
zoom:1; |
} |
.x-grid-cell-text,.x-grid-hd-text { |
display: block; |
padding: 3px 5px 3px 5px; |
-moz-user-select: none; |
-khtml-user-select: none; |
color:black; |
} |
.x-grid-hd-text { |
padding-top:4px; |
} |
.x-grid-split { |
background-image: url(../images/default/grid/grid-split.gif); |
background-position: center; |
background-repeat: no-repeat; |
cursor: e-resize; |
cursor: col-resize; |
display: block; |
font-size: 1px; |
height: 16px; |
overflow: hidden; |
position: absolute; |
top: 2px; |
width: 6px; |
z-index: 3; |
} |
.x-grid-hd-text { |
color:#15428b; |
} |
/* Column Reorder DD */ |
.x-dd-drag-proxy .x-grid-hd-inner{ |
background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x; |
height:22px; |
width:120px; |
} |
.col-move-top, .col-move-bottom{ |
width:9px; |
height:9px; |
position:absolute; |
top:0; |
line-height:1px; |
font-size:1px; |
overflow:hidden; |
visibility:hidden; |
z-index:20000; |
} |
.col-move-top{ |
background:transparent url(../images/default/grid/col-move-top.gif) no-repeat left top; |
} |
.col-move-bottom{ |
background:transparent url(../images/default/grid/col-move-bottom.gif) no-repeat left top; |
} |
/* Selection Styles */ |
.x-grid-row-selected td, .x-grid-locked .x-grid-row-selected td{ |
background-color: #316ac5 !important; |
color: white; |
} |
.x-grid-row-selected span, .x-grid-row-selected b, .x-grid-row-selected div, .x-grid-row-selected strong, .x-grid-row-selected i{ |
color: white !important; |
} |
.x-grid-row-selected .x-grid-cell-text{ |
color: white; |
} |
.x-grid-cell-selected{ |
background-color: #316ac5 !important; |
color: white; |
} |
.x-grid-cell-selected span{ |
color: white !important; |
} |
.x-grid-cell-selected .x-grid-cell-text{ |
color: white; |
} |
.x-grid-locked td.x-grid-row-marker, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker{ |
background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x 0 bottom !important; |
vertical-align:middle !important; |
color:black; |
padding:0; |
border-top:1px solid white; |
border-bottom:none !important; |
border-right:1px solid #6fa0df !important; |
text-align:center; |
} |
.x-grid-locked td.x-grid-row-marker div, .x-grid-locked .x-grid-row-selected td.x-grid-row-marker div{ |
padding:0 4px; |
color:#15428b !important; |
text-align:center; |
} |
/* dirty cells */ |
.x-grid-dirty-cell { |
background: transparent url(../images/default/grid/dirty.gif) no-repeat 0 0; |
} |
/* Grid Toolbars */ |
.x-grid-topbar, .x-grid-bottombar{ |
font:normal 11px arial, tahoma, helvetica, sans-serif; |
overflow:hidden; |
display:none; |
zoom:1; |
position:relative; |
} |
.x-grid-topbar .x-toolbar{ |
border-right:0 none; |
} |
.x-grid-bottombar .x-toolbar{ |
border-right:0 none; |
border-bottom:0 none; |
border-top:1px solid #a9bfd3; |
} |
/* Props Grid Styles */ |
.x-props-grid .x-grid-cell-selected .x-grid-cell-text{ |
background-color: #316ac5 !important; |
} |
.x-props-grid .x-grid-col-value .x-grid-cell-text{ |
background-color: white; |
} |
.x-props-grid .x-grid-col-name{ |
background-color: #c3daf9; |
} |
.x-props-grid .x-grid-col-name .x-grid-cell-text{ |
background-color: white; |
margin-left:10px; |
} |
.x-props-grid .x-grid-split-value { |
visibility:hidden; |
} |
/* header menu */ |
.xg-hmenu-sort-asc .x-menu-item-icon{ |
background-image: url(../images/default/grid/hmenu-asc.gif); |
} |
.xg-hmenu-sort-desc .x-menu-item-icon{ |
background-image: url(../images/default/grid/hmenu-desc.gif); |
} |
.xg-hmenu-lock .x-menu-item-icon{ |
background-image: url(../images/default/grid/hmenu-lock.gif); |
} |
.xg-hmenu-unlock .x-menu-item-icon{ |
background-image: url(../images/default/grid/hmenu-unlock.gif); |
} |
/* dd */ |
.x-dd-drag-ghost .x-grid-dd-wrap { |
padding:1px 3px 3px 1px; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/legacy/basic-dialog.css |
---|
New file |
0,0 → 1,286 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-dlg-proxy { |
background-image: url(../images/default/gradient-bg.gif); |
background-color:#c3daf9; |
border:1px solid #6593cf; |
z-index:10001; |
overflow:hidden; |
position:absolute; |
left:0;top:0; |
} |
.x-dlg-shadow{ |
background:#aaaaaa; |
position:absolute; |
left:0;top:0; |
} |
.x-dlg-focus{ |
-moz-outline:0 none; |
outline:0 none; |
width:0; |
height:0; |
overflow:hidden; |
position:absolute; |
top:0; |
left:0; |
} |
.x-dlg-mask{ |
z-index:10000; |
display:none; |
position:absolute; |
top:0; |
left:0; |
-moz-opacity: 0.5; |
opacity:.50; |
filter: alpha(opacity=50); |
background-color:#CCC; |
} |
body.x-body-masked select { |
visibility:hidden; |
} |
body.x-body-masked .x-dlg select { |
visibility:visible; |
} |
.x-dlg{ |
z-index:10001; |
overflow:hidden; |
position:absolute; |
left:300;top:0; |
} |
.x-dlg .x-dlg-hd { |
background: url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; |
background-color:navy; |
color:#FFF; |
font:bold 12px "sans serif", tahoma, verdana, helvetica; |
overflow:hidden; |
padding:5px; |
white-space: nowrap; |
} |
.x-dlg .x-dlg-hd-left { |
background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; |
padding-left:3px; |
margin:0; |
} |
.x-dlg .x-dlg-hd-right { |
background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0; |
padding-right:3px; |
} |
.x-dlg .x-dlg-dlg-body{ |
background:url(../images/default/layout/gradient-bg.gif); |
border:1px solid #6593cf; |
border-top:0 none; |
padding:10px; |
position:absolute; |
top:24px;left:0; |
z-index:1; |
overflow:hidden; |
} |
.x-dlg-collapsed .x-resizable-handle{ |
display:none; |
} |
.x-dlg .x-dlg-bd{ |
overflow:hidden; |
} |
.x-dlg .x-dlg-ft{ |
overflow:hidden; |
padding:5px; |
padding-bottom:0; |
} |
.x-dlg .x-tabs-body{ |
background:white; |
overflow:auto; |
} |
.x-dlg .x-tabs-top .x-tabs-body{ |
border:1px solid #6593cf; |
border-top:0 none; |
} |
.x-dlg .x-tabs-bottom .x-tabs-body{ |
border:1px solid #6593cf; |
border-bottom:0 none; |
} |
.x-dlg .x-layout-container .x-tabs-body{ |
border:0 none; |
} |
.x-dlg .inner-tab{ |
margin:5px; |
} |
.x-dlg .x-dlg-ft .x-btn{ |
margin-right:5px; |
float:right; |
clear:none; |
} |
.x-dlg .x-dlg-ft .x-dlg-btns td { |
border:0; |
padding:0; |
} |
.x-dlg .x-dlg-ft .x-dlg-btns-right table{ |
float:right; |
clear:none; |
} |
.x-dlg .x-dlg-ft .x-dlg-btns-left table{ |
float:left; |
clear:none; |
} |
.x-dlg .x-dlg-ft .x-dlg-btns-center{ |
text-align:center; /*ie*/ |
} |
.x-dlg .x-dlg-ft .x-dlg-btns-center table{ |
margin:0 auto; /*everyone else*/ |
} |
.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-focus .x-btn-left{ |
background-position:0 -147px; |
} |
.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-focus .x-btn-right{ |
background-position:0 -168px; |
} |
.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-focus .x-btn-center{ |
background-position:0 -189px; |
} |
.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-click .x-btn-center{ |
background-position:0 -126px; |
} |
.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-click .x-btn-right{ |
background-position:0 -84px; |
} |
.x-dlg .x-dlg-ft .x-dlg-btns .x-btn-click .x-btn-left{ |
background-position:0 -63px; |
} |
.x-dlg-draggable .x-dlg-hd{ |
cursor:move; |
} |
.x-dlg-closable .x-dlg-hd{ |
padding-right:22px; |
} |
.x-dlg-toolbox { |
position:absolute; |
top:4px; |
right:4px; |
z-index:6; |
width:40px; |
cursor:default; |
height:15px; |
background:transparent; |
} |
.x-dlg .x-dlg-close, .x-dlg .x-dlg-collapse { |
float:right; |
height:15px; |
width:15px; |
margin:0; |
margin-left:2px; |
padding:0; |
line-height:1px; |
font-size:1px; |
background-repeat:no-repeat; |
cursor:pointer; |
visibility:inherit; |
} |
.x-dlg .x-dlg-close { |
background-image:url(../images/default/basic-dialog/close.gif); |
} |
.x-dlg .x-dlg-collapse { |
background-image:url(../images/default/basic-dialog/collapse.gif); |
} |
.x-dlg-collapsed .x-dlg-collapse { |
background-image:url(../images/default/basic-dialog/expand.gif); |
} |
.x-dlg .x-dlg-close-over, .x-dlg .x-dlg-collapse-over { |
} |
.x-dlg div.x-resizable-handle-east{ |
background-image:url(../images/default/basic-dialog/e-handle.gif); |
border:0; |
background-position:right; |
margin-right:0; |
} |
.x-dlg div.x-resizable-handle-south{ |
background-image:url(../images/default/sizer/s-handle-dark.gif); |
border:0; |
height:6px; |
} |
.x-dlg div.x-resizable-handle-west{ |
background-image:url(../images/default/basic-dialog/e-handle.gif); |
border:0; |
background-position:1px; |
} |
.x-dlg div.x-resizable-handle-north{ |
background-image:url(../images/default/s.gif); |
border:0; |
} |
.x-dlg div.x-resizable-handle-northeast, .xtheme-gray .x-dlg div.x-resizable-handle-northeast{ |
background-image:url(../images/default/s.gif); |
border:0; |
} |
.x-dlg div.x-resizable-handle-northwest, .xtheme-gray .x-dlg div.x-resizable-handle-northwest{ |
background-image:url(../images/default/s.gif); |
border:0; |
} |
.x-dlg div.x-resizable-handle-southeast{ |
background-image:url(../images/default/basic-dialog/se-handle.gif); |
background-position: bottom right; |
width:8px; |
height:8px; |
border:0; |
} |
.x-dlg div.x-resizable-handle-southwest{ |
background-image:url(../images/default/sizer/sw-handle-dark.gif); |
background-position: top right; |
margin-left:1px; |
margin-bottom:1px; |
border:0; |
} |
#x-msg-box .x-dlg-ft .x-btn{ |
float:none; |
clear:none; |
margin:0 3px; |
} |
#x-msg-box .x-dlg-bd { |
padding:5px; |
overflow:hidden !important; |
font:normal 13px verdana,tahoma,sans-serif; |
} |
#x-msg-box .ext-mb-input { |
margin-top:4px; |
width:95%; |
} |
#x-msg-box .ext-mb-textarea { |
margin-top:4px; |
font:normal 13px verdana,tahoma,sans-serif; |
} |
#x-msg-box .ext-mb-progress-wrap { |
margin-top:4px; |
border:1px solid #6593cf; |
} |
#x-msg-box .ext-mb-progress { |
height:18px; |
background: #e0e8f3 url(../images/default/qtip/bg.gif) repeat-x; |
} |
#x-msg-box .ext-mb-progress-bar { |
height:18px; |
overflow:hidden; |
width:0; |
background:#8BB8F3; |
border-top:1px solid #B2D0F7; |
border-bottom:1px solid #65A1EF; |
border-right:1px solid #65A1EF; |
} |
#x-msg-box .x-msg-box-wait { |
background: transparent url(../images/default/grid/loading.gif) no-repeat left; |
display:block; |
width:300px; |
padding-left:18px; |
line-height:18px; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/qtip/close.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/qtip/close.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/qtip/bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/qtip/bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/qtip/tip-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/qtip/tip-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/tool-sprites.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/tool-sprites.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/top-bottom.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/top-bottom.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/left-right.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/left-right.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/tools-sprites-trans.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/tools-sprites-trans.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/white-corners-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/white-corners-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/tool-sprite-tpl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/tool-sprite-tpl.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/corners-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/corners-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/light-hd.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/light-hd.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/white-top-bottom.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/white-top-bottom.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/top-bottom.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/top-bottom.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/white-left-right.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/panel/white-left-right.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/btn-arrow.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/btn-arrow.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/tb-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/tb-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/btn-arrow-light.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/btn-arrow-light.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/btn-over-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/btn-over-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/gray-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/gray-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/tb-btn-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/toolbar/tb-btn-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/s.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/s.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/gradient-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/gradient-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/icon-error.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/icon-error.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/icon-info.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/icon-info.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/left-corners.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/left-corners.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/left-corners.pspimage |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/left-corners.pspimage |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/top-bottom.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/top-bottom.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/left-right.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/left-right.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/right-corners.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/right-corners.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/icon-warning.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/icon-warning.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/icon-question.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/window/icon-question.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-btm-left-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-btm-left-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/scroll-left.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/scroll-left.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-btm-right-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-btm-right-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/scroll-right.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/scroll-right.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-close.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-close.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-strip-bg.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-strip-bg.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/scroller-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/scroller-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-strip-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-strip-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-strip-btm-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tab-strip-btm-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tabs-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/tabs/tabs-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/button/btn-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/button/btn-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/button/btn-arrow.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/gray/button/btn-arrow.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-minus-nl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-minus-nl.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/folder-open.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/folder-open.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/folder.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/folder.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end-minus-nl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end-minus-nl.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-over.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-over.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/arrows.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/arrows.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/loading.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/loading.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-no.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-no.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-under.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-under.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-plus.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-plus.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-add.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-add.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-between.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-between.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end-plus.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end-plus.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-line.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-line.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-plus-nl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-plus-nl.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-minus.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-minus.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/s.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/s.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-yes.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/drop-yes.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end-plus-nl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end-plus-nl.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end-minus.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/elbow-end-minus.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/leaf.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tree/leaf.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/corners-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/corners-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/light-hd.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/light-hd.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/light-hd.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/light-hd.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/white-top-bottom.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/white-top-bottom.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/tool-sprites.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/tool-sprites.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/top-bottom.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/top-bottom.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/white-left-right.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/white-left-right.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/tool-sprites.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/tool-sprites.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/top-bottom.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/top-bottom.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/left-right.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/left-right.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/tools-sprites-trans.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/tools-sprites-trans.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/light-hd.sauv.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/light-hd.sauv.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/white-corners-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/white-corners-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/tool-sprite-tpl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/panel/tool-sprite-tpl.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/tb-btn-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/tb-btn-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/btn-arrow.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/btn-arrow.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/tab-strip-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/tab-strip-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/tb-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/tb-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/btn-arrow-light.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/btn-arrow-light.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/btn-over-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/btn-over-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/gray-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/toolbar/gray-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/clear-trigger.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/clear-trigger.psd |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/text-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/text-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/error-tip-corners.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/error-tip-corners.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/date-trigger.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/date-trigger.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/date-trigger.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/date-trigger.psd |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/trigger-tpl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/trigger-tpl.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/trigger.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/trigger.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/exclamation.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/exclamation.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/trigger.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/trigger.psd |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/search-trigger.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/search-trigger.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/clear-trigger.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/clear-trigger.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/search-trigger.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/form/search-trigger.psd |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/group-checked.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/group-checked.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/menu.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/menu.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/checked.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/checked.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/item-over.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/item-over.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/unchecked.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/unchecked.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/menu-parent.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/menu/menu-parent.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/progress/progress-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/progress/progress-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/blue-loading.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/blue-loading.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/large-loading.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/large-loading.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/warning.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/warning.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/loading-balls.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/loading-balls.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/calendar.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/calendar.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/left-btn.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/left-btn.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/right-btn.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/right-btn.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/glass-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/glass-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/hd-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shared/hd-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/s.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/s.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/icon-question.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/icon-question.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/icon-error.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/icon-error.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/icon-info.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/icon-info.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/left-corners.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/left-corners.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/top-bottom.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/top-bottom.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/left-corners.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/left-corners.psd |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/left-right.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/left-right.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/right-corners.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/right-corners.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/top-bottom.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/top-bottom.psd |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/left-right.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/left-right.psd |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/right-corners.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/right-corners.psd |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/icon-warning.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/window/icon-warning.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shadow.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shadow.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/button/btn-arrow.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/button/btn-arrow.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/button/btn-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/button/btn-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/qtip/bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/qtip/bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/qtip/tip-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/qtip/tip-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/qtip/close.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/qtip/close.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/panel-title-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/panel-title-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/mini-right.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/mini-right.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/panel-title-light-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/panel-title-light-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/tab-close.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/tab-close.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/stick.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/stick.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/expand.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/expand.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/ns-collapse.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/ns-collapse.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/gradient-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/gradient-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/tab-close-on.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/tab-close-on.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/mini-left.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/mini-left.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/stuck.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/stuck.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/mini-top.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/mini-top.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/ns-expand.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/ns-expand.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/mini-bottom.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/mini-bottom.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/collapse.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/collapse.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/panel-close.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/layout/panel-close.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shadow-lr.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shadow-lr.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/sort_asc.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/sort_asc.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/loading.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/loading.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-split.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-split.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/drop-no.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/drop-no.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/columns.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/columns.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-lock.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-lock.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-hd-btn.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-hd-btn.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-last-disabled.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-last-disabled.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/arrow-right-white.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/arrow-right-white.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/col-move-bottom.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/col-move-bottom.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-unlock.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-unlock.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-hrow.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-hrow.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/sort_desc.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/sort_desc.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hd-pop.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hd-pop.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/mso-hd.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/mso-hd.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-desc.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-desc.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-next.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-next.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/row-expand-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/row-expand-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/dirty.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/dirty.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/invalid_line.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/invalid_line.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-next-disabled.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-next-disabled.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/pick-button.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/pick-button.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/nowait.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/nowait.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-lock.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-lock.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/drop-yes.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/drop-yes.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-unlock.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-unlock.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-first-disabled.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-first-disabled.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/group-expand-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/group-expand-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-last.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-last.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-asc.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/hmenu-asc.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/row-over.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/row-over.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/col-move-top.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/col-move-top.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/Thumbs.db |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/Thumbs.db |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/footer-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/footer-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/done.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/done.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-prev.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-prev.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/row-check-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/row-check-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-special-col-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-special-col-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/row-sel.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/row-sel.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-prev-disabled.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-prev-disabled.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-hrow-over.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-hrow-over.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/refresh.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/refresh.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-loading.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-loading.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/arrow-left-white.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/arrow-left-white.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-first.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/page-first.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-hrow.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-hrow.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-vista-hd.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-vista-hd.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-blue-split.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-blue-split.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-blue-hd.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid-blue-hd.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/wait.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/wait.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/group-by.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/group-by.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-special-col-sel-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/grid/grid3-special-col-sel-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/editor/tb-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/editor/tb-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/dd/drop-add.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/dd/drop-add.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/dd/drop-no.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/dd/drop-no.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/dd/drop-yes.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/dd/drop-yes.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/gradient-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/gradient-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/corners-blue.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/corners-blue.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/l-blue.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/l-blue.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/r.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/r.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/tb.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/tb.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/r-blue.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/r-blue.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/tb-blue.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/tb-blue.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/corners.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/corners.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/l.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/box/l.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shadow-c.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/shadow-c.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-btm-inactive-left-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-btm-inactive-left-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-btm-left-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-btm-left-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/scroll-left.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/scroll-left.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-btm-inactive-right-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-btm-inactive-right-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-btm-right-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-btm-right-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/scroll-right.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/scroll-right.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-close.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-close.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-strip-bg.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-strip-bg.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/scroller-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/scroller-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-strip-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-strip-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-strip-btm-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tab-strip-btm-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tabs-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/tabs/tabs-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/e-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/e-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/nw-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/nw-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/se-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/se-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/se-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/se-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/square.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/square.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/sw-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/sw-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/sw-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/sw-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/ne-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/ne-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/s-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/s-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/ne-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/ne-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/s-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/s-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/e-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/e-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/nw-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/default/sizer/nw-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/grid/grid-split.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/grid/grid-split.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/grid/grid-vista-hd.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/grid/grid-vista-hd.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/s.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/s.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/gradient-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/gradient-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-btm-inactive-left-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-btm-inactive-left-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-btm-left-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-btm-left-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-btm-inactive-right-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-btm-inactive-right-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-btm-right-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-btm-right-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/tabs/tab-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/se-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/se-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/se-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/se-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/sw-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/sw-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/sw-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/sw-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/ne-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/ne-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/s-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/s-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/ne-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/ne-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/s-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/s-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/e-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/e-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/nw-handle-dark.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/nw-handle-dark.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/e-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/e-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/nw-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/sizer/nw-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/ns-expand.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/ns-expand.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/stick.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/stick.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/expand.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/expand.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/ns-collapse.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/ns-collapse.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/collapse.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/collapse.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/panel-close.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/panel-close.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/gradient-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/gradient-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/tab-close-on.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/tab-close-on.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/panel-title-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/panel-title-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/panel-title-light-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/panel-title-light-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/tab-close.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/layout/tab-close.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/qtip/tip-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/qtip/tip-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/qtip/bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/qtip/bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/expand.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/expand.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/hd-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/hd-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/w-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/w-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/bg-left.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/bg-left.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/se-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/se-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/collapse.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/collapse.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/bg-right.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/bg-right.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/close.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/close.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/bg-center.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/bg-center.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/s-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/s-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/dlg-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/dlg-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/e-handle.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/basic-dialog/e-handle.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/toolbar/gray-bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/toolbar/gray-bg.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/toolbar/tb-btn-sprite.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/images/vista/toolbar/tb-btn-sprite.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/resources.jsb |
---|
New file |
0,0 → 1,694 |
<?xml version="1.0" encoding="utf-8"?> |
<project path="" name="Ext - Resources" author="Ext JS, LLC" version="2.0.2" copyright="Ext JS Library $version
Copyright(c) 2006-2008, $author.
licensing@extjs.com

http://extjs.com/license" output="C:\apps\www\deploy\ext-2.0.2\resources" source="true" source-dir="$output" minify="False" min-dir="$output\build" doc="False" doc-dir="$output\docs" master="true" master-file="$output\yui-ext.js" zip="true" zip-file="$output\yuo-ext.$version.zip"> |
<directory name="" /> |
<target name="All css" file="$output\css\ext-all.css" debug="True" shorthand="False" shorthand-list="YAHOO.util.Dom.setStyle
YAHOO.util.Dom.getStyle
YAHOO.util.Dom.getRegion
YAHOO.util.Dom.getViewportHeight
YAHOO.util.Dom.getViewportWidth
YAHOO.util.Dom.get
YAHOO.util.Dom.getXY
YAHOO.util.Dom.setXY
YAHOO.util.CustomEvent
YAHOO.util.Event.addListener
YAHOO.util.Event.getEvent
YAHOO.util.Event.getTarget
YAHOO.util.Event.preventDefault
YAHOO.util.Event.stopEvent
YAHOO.util.Event.stopPropagation
YAHOO.util.Event.stopEvent
YAHOO.util.Anim
YAHOO.util.Motion
YAHOO.util.Connect.asyncRequest
YAHOO.util.Connect.setForm
YAHOO.util.Dom
YAHOO.util.Event"> |
<include name="css\reset.css" /> |
<include name="css\core.css" /> |
<include name="css\tabs.css" /> |
<include name="css\form.css" /> |
<include name="css\button.css" /> |
<include name="css\toolbar.css" /> |
<include name="css\resizable.css" /> |
<include name="css\grid.css" /> |
<include name="css\dd.css" /> |
<include name="css\tree.css" /> |
<include name="css\date-picker.css" /> |
<include name="css\qtips.css" /> |
<include name="css\menu.css" /> |
<include name="css\box.css" /> |
<include name="css\debug.css" /> |
<include name="css\combo.css" /> |
<include name="css\panel.css" /> |
<include name="css\window.css" /> |
<include name="css\editor.css" /> |
<include name="css\borders.css" /> |
<include name="css\layout.css" /> |
<include name="css\progress.css" /> |
<include name="css\dialog.css" /> |
</target> |
<file name="images\basic-dialog\gray\close.gif" path="images\basic-dialog\gray" /> |
<file name="images\basic-dialog\gray\dlg-bg.gif" path="images\basic-dialog\gray" /> |
<file name="images\basic-dialog\gray\e-handle.gif" path="images\basic-dialog\gray" /> |
<file name="images\basic-dialog\gray\hd-sprite.gif" path="images\basic-dialog\gray" /> |
<file name="images\basic-dialog\gray\s-handle.gif" path="images\basic-dialog\gray" /> |
<file name="images\basic-dialog\gray\se-handle.gif" path="images\basic-dialog\gray" /> |
<file name="images\basic-dialog\btn-sprite.gif" path="images\basic-dialog" /> |
<file name="images\basic-dialog\close.gif" path="images\basic-dialog" /> |
<file name="images\basic-dialog\e-handle.gif" path="images\basic-dialog" /> |
<file name="images\basic-dialog\hd-sprite.gif" path="images\basic-dialog" /> |
<file name="images\basic-dialog\s-handle.gif" path="images\basic-dialog" /> |
<file name="images\basic-dialog\se-handle.gif" path="images\basic-dialog" /> |
<file name="images\grid\arrow-left-white.gif" path="images\grid" /> |
<file name="images\grid\arrow-right-white.gif" path="images\grid" /> |
<file name="images\grid\done.gif" path="images\grid" /> |
<file name="images\grid\drop-no.gif" path="images\grid" /> |
<file name="images\grid\drop-yes.gif" path="images\grid" /> |
<file name="images\grid\footer-bg.gif" path="images\grid" /> |
<file name="images\grid\grid-blue-hd.gif" path="images\grid" /> |
<file name="images\grid\grid-blue-split.gif" path="images\grid" /> |
<file name="images\grid\grid-loading.gif" path="images\grid" /> |
<file name="images\grid\grid-split.gif" path="images\grid" /> |
<file name="images\grid\grid-vista-hd.gif" path="images\grid" /> |
<file name="images\grid\invalid_line.gif" path="images\grid" /> |
<file name="images\grid\loading.gif" path="images\grid" /> |
<file name="images\grid\mso-hd.gif" path="images\grid" /> |
<file name="images\grid\nowait.gif" path="images\grid" /> |
<file name="images\grid\page-first-disabled.gif" path="images\grid" /> |
<file name="images\grid\page-first.gif" path="images\grid" /> |
<file name="images\grid\page-last-disabled.gif" path="images\grid" /> |
<file name="images\grid\page-last.gif" path="images\grid" /> |
<file name="images\grid\page-next-disabled.gif" path="images\grid" /> |
<file name="images\grid\page-next.gif" path="images\grid" /> |
<file name="images\grid\page-prev-disabled.gif" path="images\grid" /> |
<file name="images\grid\page-prev.gif" path="images\grid" /> |
<file name="images\grid\pick-button.gif" path="images\grid" /> |
<file name="images\grid\refresh.gif" path="images\grid" /> |
<file name="images\grid\sort_asc.gif" path="images\grid" /> |
<file name="images\grid\sort_desc.gif" path="images\grid" /> |
<file name="images\grid\wait.gif" path="images\grid" /> |
<file name="images\layout\gray\collapse.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\expand.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\gradient-bg.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\ns-collapse.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\ns-expand.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\panel-close.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\panel-title-bg.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\panel-title-light-bg.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\screenshot.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\tab-close-on.gif" path="images\layout\gray" /> |
<file name="images\layout\gray\tab-close.gif" path="images\layout\gray" /> |
<file name="images\layout\collapse.gif" path="images\layout" /> |
<file name="images\layout\expand.gif" path="images\layout" /> |
<file name="images\layout\gradient-bg.gif" path="images\layout" /> |
<file name="images\layout\ns-collapse.gif" path="images\layout" /> |
<file name="images\layout\ns-expand.gif" path="images\layout" /> |
<file name="images\layout\panel-close.gif" path="images\layout" /> |
<file name="images\layout\panel-title-bg.gif" path="images\layout" /> |
<file name="images\layout\panel-title-light-bg.gif" path="images\layout" /> |
<file name="images\layout\tab-close-on.gif" path="images\layout" /> |
<file name="images\layout\tab-close.gif" path="images\layout" /> |
<file name="images\sizer\gray\e-handle-dark.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\e-handle.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\ne-handle-dark.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\ne-handle.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\nw-handle-dark.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\nw-handle.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\s-handle-dark.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\s-handle.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\se-handle-dark.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\se-handle.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\sw-handle-dark.gif" path="images\sizer\gray" /> |
<file name="images\sizer\gray\sw-handle.gif" path="images\sizer\gray" /> |
<file name="images\sizer\e-handle-dark.gif" path="images\sizer" /> |
<file name="images\sizer\e-handle.gif" path="images\sizer" /> |
<file name="images\sizer\ne-handle-dark.gif" path="images\sizer" /> |
<file name="images\sizer\ne-handle.gif" path="images\sizer" /> |
<file name="images\sizer\nw-handle-dark.gif" path="images\sizer" /> |
<file name="images\sizer\nw-handle.gif" path="images\sizer" /> |
<file name="images\sizer\s-handle-dark.gif" path="images\sizer" /> |
<file name="images\sizer\s-handle.gif" path="images\sizer" /> |
<file name="images\sizer\se-handle-dark.gif" path="images\sizer" /> |
<file name="images\sizer\se-handle.gif" path="images\sizer" /> |
<file name="images\sizer\square.gif" path="images\sizer" /> |
<file name="images\sizer\sw-handle-dark.gif" path="images\sizer" /> |
<file name="images\sizer\sw-handle.gif" path="images\sizer" /> |
<file name="images\tabs\gray\tab-btm-inactive-left-bg.gif" path="images\tabs\gray" /> |
<file name="images\tabs\gray\tab-btm-inactive-right-bg.gif" path="images\tabs\gray" /> |
<file name="images\tabs\gray\tab-btm-left-bg.gif" path="images\tabs\gray" /> |
<file name="images\tabs\gray\tab-btm-right-bg.gif" path="images\tabs\gray" /> |
<file name="images\tabs\gray\tab-sprite.gif" path="images\tabs\gray" /> |
<file name="images\tabs\tab-btm-inactive-left-bg.gif" path="images\tabs" /> |
<file name="images\tabs\tab-btm-inactive-right-bg.gif" path="images\tabs" /> |
<file name="images\tabs\tab-btm-left-bg.gif" path="images\tabs" /> |
<file name="images\tabs\tab-btm-right-bg.gif" path="images\tabs" /> |
<file name="images\tabs\tab-sprite.gif" path="images\tabs" /> |
<file name="images\toolbar\gray-bg.gif" path="images\toolbar" /> |
<file name="images\gradient-bg.gif" path="images" /> |
<file name="images\s.gif" path="images" /> |
<file name="images\toolbar\btn-over-bg.gif" path="images\toolbar" /> |
<file name="images\dd\drop-add.gif" path="images\dd" /> |
<file name="images\dd\drop-no.gif" path="images\dd" /> |
<file name="images\dd\drop-yes.gif" path="images\dd" /> |
<file name="images\qtip\bg.gif" path="images\qtip" /> |
<file name="images\tree\drop-add.gif" path="images\tree" /> |
<file name="images\tree\drop-between.gif" path="images\tree" /> |
<file name="images\tree\drop-no.gif" path="images\tree" /> |
<file name="images\tree\drop-over.gif" path="images\tree" /> |
<file name="images\tree\drop-under.gif" path="images\tree" /> |
<file name="images\tree\drop-yes.gif" path="images\tree" /> |
<file name="images\tree\elbow-end-minus-nl.gif" path="images\tree" /> |
<file name="images\tree\elbow-end-minus.gif" path="images\tree" /> |
<file name="images\tree\elbow-end-plus-nl.gif" path="images\tree" /> |
<file name="images\tree\elbow-end-plus.gif" path="images\tree" /> |
<file name="images\tree\elbow-end.gif" path="images\tree" /> |
<file name="images\tree\elbow-line.gif" path="images\tree" /> |
<file name="images\tree\elbow-minus-nl.gif" path="images\tree" /> |
<file name="images\tree\elbow-minus.gif" path="images\tree" /> |
<file name="images\tree\elbow-plus-nl.gif" path="images\tree" /> |
<file name="images\tree\elbow-plus.gif" path="images\tree" /> |
<file name="images\tree\elbow.gif" path="images\tree" /> |
<file name="images\tree\folder-open.gif" path="images\tree" /> |
<file name="images\tree\folder.gif" path="images\tree" /> |
<file name="images\tree\leaf.gif" path="images\tree" /> |
<file name="images\tree\s.gif" path="images\tree" /> |
<file name="images\qtip\gray\bg.gif" path="images\qtip\gray" /> |
<file name="css\aero.css" path="css" /> |
<file name="images\grid\grid-hrow.gif" path="images\grid" /> |
<file name="images\aero\toolbar\gray-bg.gif" path="images\aero\toolbar" /> |
<file name="css\basic-dialog.css" path="css" /> |
<file name="css\button.css" path="css" /> |
<file name="css\core.css" path="css" /> |
<file name="css\dd.css" path="css" /> |
<file name="css\grid.css" path="css" /> |
<file name="css\inline-editor.css" path="css" /> |
<file name="css\layout.css" path="css" /> |
<file name="css\qtips.css" path="css" /> |
<file name="css\reset-min.css" path="css" /> |
<file name="css\resizable.css" path="css" /> |
<file name="css\tabs.css" path="css" /> |
<file name="css\toolbar.css" path="css" /> |
<file name="css\tree.css" path="css" /> |
<file name="css\ytheme-aero.css" path="css" /> |
<file name="css\ytheme-gray.css" path="css" /> |
<file name="css\ytheme-vista.css" path="css" /> |
<file name="images\aero\basic-dialog\aero-close-over.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\aero-close.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\bg-center.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\bg-left.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\bg-right.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\close.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\dlg-bg.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\e-handle.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\hd-sprite.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\s-handle.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\se-handle.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\w-handle.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\grid\grid-blue-split.gif" path="images\aero\grid" /> |
<file name="images\aero\grid\grid-hrow.gif" path="images\aero\grid" /> |
<file name="images\aero\grid\grid-split.gif" path="images\aero\grid" /> |
<file name="images\aero\grid\grid-vista-hd.gif" path="images\aero\grid" /> |
<file name="images\aero\grid\sort-col-bg.gif" path="images\aero\grid" /> |
<file name="images\aero\grid\sort_asc.gif" path="images\aero\grid" /> |
<file name="images\aero\grid\sort_desc.gif" path="images\aero\grid" /> |
<file name="images\aero\layout\collapse.gif" path="images\aero\layout" /> |
<file name="images\aero\layout\expand.gif" path="images\aero\layout" /> |
<file name="images\aero\layout\gradient-bg.gif" path="images\aero\layout" /> |
<file name="images\aero\layout\ns-collapse.gif" path="images\aero\layout" /> |
<file name="images\aero\layout\ns-expand.gif" path="images\aero\layout" /> |
<file name="images\aero\layout\panel-close.gif" path="images\aero\layout" /> |
<file name="images\aero\layout\panel-title-bg.gif" path="images\aero\layout" /> |
<file name="images\aero\layout\panel-title-light-bg.gif" path="images\aero\layout" /> |
<file name="images\aero\layout\tab-close-on.gif" path="images\aero\layout" /> |
<file name="images\aero\layout\tab-close.gif" path="images\aero\layout" /> |
<file name="images\aero\qtip\bg.gif" path="images\aero\qtip" /> |
<file name="images\aero\sizer\e-handle-dark.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\e-handle.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\ne-handle-dark.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\ne-handle.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\nw-handle-dark.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\nw-handle.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\s-handle-dark.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\s-handle.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\se-handle-dark.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\se-handle.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\sw-handle-dark.gif" path="images\aero\sizer" /> |
<file name="images\aero\sizer\sw-handle.gif" path="images\aero\sizer" /> |
<file name="images\aero\tabs\tab-btm-inactive-left-bg.gif" path="images\aero\tabs" /> |
<file name="images\aero\tabs\tab-btm-inactive-right-bg.gif" path="images\aero\tabs" /> |
<file name="images\aero\tabs\tab-btm-left-bg.gif" path="images\aero\tabs" /> |
<file name="images\aero\tabs\tab-btm-right-bg.gif" path="images\aero\tabs" /> |
<file name="images\aero\tabs\tab-sprite.gif" path="images\aero\tabs" /> |
<file name="images\aero\tabs\tab-strip-bg.gif" path="images\aero\tabs" /> |
<file name="images\aero\tabs\tab-strip-bg.png" path="images\aero\tabs" /> |
<file name="images\aero\tabs\tab-strip-btm-bg.gif" path="images\aero\tabs" /> |
<file name="images\aero\toolbar\bg.gif" path="images\aero\toolbar" /> |
<file name="images\aero\gradient-bg.gif" path="images\aero" /> |
<file name="images\aero\s.gif" path="images\aero" /> |
<file name="images\default\basic-dialog\btn-sprite.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\close.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\e-handle.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\hd-sprite.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\progress.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\progress2.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\s-handle.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\se-handle.gif" path="images\default\basic-dialog" /> |
<file name="images\default\dd\drop-add.gif" path="images\default\dd" /> |
<file name="images\default\dd\drop-no.gif" path="images\default\dd" /> |
<file name="images\default\dd\drop-yes.gif" path="images\default\dd" /> |
<file name="images\default\grid\arrow-left-white.gif" path="images\default\grid" /> |
<file name="images\default\grid\arrow-right-white.gif" path="images\default\grid" /> |
<file name="images\default\grid\done.gif" path="images\default\grid" /> |
<file name="images\default\grid\drop-no.gif" path="images\default\grid" /> |
<file name="images\default\grid\drop-yes.gif" path="images\default\grid" /> |
<file name="images\default\grid\footer-bg.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid-blue-hd.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid-blue-split.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid-hrow.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid-loading.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid-split.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid-vista-hd.gif" path="images\default\grid" /> |
<file name="images\default\grid\invalid_line.gif" path="images\default\grid" /> |
<file name="images\default\grid\loading.gif" path="images\default\grid" /> |
<file name="images\default\grid\mso-hd.gif" path="images\default\grid" /> |
<file name="images\default\grid\nowait.gif" path="images\default\grid" /> |
<file name="images\default\grid\page-first-disabled.gif" path="images\default\grid" /> |
<file name="images\default\grid\page-first.gif" path="images\default\grid" /> |
<file name="images\default\grid\page-last-disabled.gif" path="images\default\grid" /> |
<file name="images\default\grid\page-last.gif" path="images\default\grid" /> |
<file name="images\default\grid\page-next-disabled.gif" path="images\default\grid" /> |
<file name="images\default\grid\page-next.gif" path="images\default\grid" /> |
<file name="images\default\grid\page-prev-disabled.gif" path="images\default\grid" /> |
<file name="images\default\grid\page-prev.gif" path="images\default\grid" /> |
<file name="images\default\grid\pick-button.gif" path="images\default\grid" /> |
<file name="images\default\grid\refresh.gif" path="images\default\grid" /> |
<file name="images\default\grid\sort_asc.gif" path="images\default\grid" /> |
<file name="images\default\grid\sort_desc.gif" path="images\default\grid" /> |
<file name="images\default\grid\wait.gif" path="images\default\grid" /> |
<file name="images\default\layout\collapse.gif" path="images\default\layout" /> |
<file name="images\default\layout\expand.gif" path="images\default\layout" /> |
<file name="images\default\layout\gradient-bg.gif" path="images\default\layout" /> |
<file name="images\default\layout\ns-collapse.gif" path="images\default\layout" /> |
<file name="images\default\layout\ns-expand.gif" path="images\default\layout" /> |
<file name="images\default\layout\panel-close.gif" path="images\default\layout" /> |
<file name="images\default\layout\panel-title-bg.gif" path="images\default\layout" /> |
<file name="images\default\layout\panel-title-light-bg.gif" path="images\default\layout" /> |
<file name="images\default\layout\tab-close-on.gif" path="images\default\layout" /> |
<file name="images\default\layout\tab-close.gif" path="images\default\layout" /> |
<file name="images\default\qtip\bg.gif" path="images\default\qtip" /> |
<file name="images\default\sizer\e-handle-dark.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\e-handle.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\ne-handle-dark.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\ne-handle.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\nw-handle-dark.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\nw-handle.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\s-handle-dark.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\s-handle.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\se-handle-dark.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\se-handle.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\square.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\sw-handle-dark.gif" path="images\default\sizer" /> |
<file name="images\default\sizer\sw-handle.gif" path="images\default\sizer" /> |
<file name="images\default\tabs\tab-btm-inactive-left-bg.gif" path="images\default\tabs" /> |
<file name="images\default\tabs\tab-btm-inactive-right-bg.gif" path="images\default\tabs" /> |
<file name="images\default\tabs\tab-btm-left-bg.gif" path="images\default\tabs" /> |
<file name="images\default\tabs\tab-btm-right-bg.gif" path="images\default\tabs" /> |
<file name="images\default\tabs\tab-sprite.gif" path="images\default\tabs" /> |
<file name="images\default\toolbar\btn-over-bg.gif" path="images\default\toolbar" /> |
<file name="images\default\toolbar\gray-bg.gif" path="images\default\toolbar" /> |
<file name="images\default\tree\drop-add.gif" path="images\default\tree" /> |
<file name="images\default\tree\drop-between.gif" path="images\default\tree" /> |
<file name="images\default\tree\drop-no.gif" path="images\default\tree" /> |
<file name="images\default\tree\drop-over.gif" path="images\default\tree" /> |
<file name="images\default\tree\drop-under.gif" path="images\default\tree" /> |
<file name="images\default\tree\drop-yes.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-end-minus-nl.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-end-minus.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-end-plus-nl.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-end-plus.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-end.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-line.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-minus-nl.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-minus.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-plus-nl.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow-plus.gif" path="images\default\tree" /> |
<file name="images\default\tree\elbow.gif" path="images\default\tree" /> |
<file name="images\default\tree\folder-open.gif" path="images\default\tree" /> |
<file name="images\default\tree\folder.gif" path="images\default\tree" /> |
<file name="images\default\tree\leaf.gif" path="images\default\tree" /> |
<file name="images\default\tree\loading.gif" path="images\default\tree" /> |
<file name="images\default\tree\s.gif" path="images\default\tree" /> |
<file name="images\default\gradient-bg.gif" path="images\default" /> |
<file name="images\default\s.gif" path="images\default" /> |
<file name="images\gray\basic-dialog\close.gif" path="images\gray\basic-dialog" /> |
<file name="images\gray\basic-dialog\dlg-bg.gif" path="images\gray\basic-dialog" /> |
<file name="images\gray\basic-dialog\e-handle.gif" path="images\gray\basic-dialog" /> |
<file name="images\gray\basic-dialog\hd-sprite.gif" path="images\gray\basic-dialog" /> |
<file name="images\gray\basic-dialog\s-handle.gif" path="images\gray\basic-dialog" /> |
<file name="images\gray\basic-dialog\se-handle.gif" path="images\gray\basic-dialog" /> |
<file name="images\gray\layout\collapse.gif" path="images\gray\layout" /> |
<file name="images\gray\layout\expand.gif" path="images\gray\layout" /> |
<file name="images\gray\layout\gradient-bg.gif" path="images\gray\layout" /> |
<file name="images\gray\layout\ns-collapse.gif" path="images\gray\layout" /> |
<file name="images\gray\layout\ns-expand.gif" path="images\gray\layout" /> |
<file name="images\gray\layout\panel-close.gif" path="images\gray\layout" /> |
<file name="images\gray\layout\panel-title-bg.gif" path="images\gray\layout" /> |
<file name="images\gray\layout\panel-title-light-bg.gif" path="images\gray\layout" /> |
<file name="images\gray\layout\tab-close-on.gif" path="images\gray\layout" /> |
<file name="images\gray\layout\tab-close.gif" path="images\gray\layout" /> |
<file name="images\gray\qtip\bg.gif" path="images\gray\qtip" /> |
<file name="images\gray\sizer\e-handle-dark.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\e-handle.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\ne-handle-dark.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\ne-handle.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\nw-handle-dark.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\nw-handle.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\s-handle-dark.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\s-handle.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\se-handle-dark.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\se-handle.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\sw-handle-dark.gif" path="images\gray\sizer" /> |
<file name="images\gray\sizer\sw-handle.gif" path="images\gray\sizer" /> |
<file name="images\gray\tabs\tab-btm-inactive-left-bg.gif" path="images\gray\tabs" /> |
<file name="images\gray\tabs\tab-btm-inactive-right-bg.gif" path="images\gray\tabs" /> |
<file name="images\gray\tabs\tab-btm-left-bg.gif" path="images\gray\tabs" /> |
<file name="images\gray\tabs\tab-btm-right-bg.gif" path="images\gray\tabs" /> |
<file name="images\gray\tabs\tab-sprite.gif" path="images\gray\tabs" /> |
<file name="images\gray\toolbar\gray-bg.gif" path="images\gray\toolbar" /> |
<file name="images\gray\gradient-bg.gif" path="images\gray" /> |
<file name="images\gray\s.gif" path="images\gray" /> |
<file name="images\vista\basic-dialog\bg-center.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\bg-left.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\bg-right.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\close.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\dlg-bg.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\e-handle.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\hd-sprite.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\s-handle.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\se-handle.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\w-handle.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\grid\grid-split.gif" path="images\vista\grid" /> |
<file name="images\vista\grid\grid-vista-hd.gif" path="images\vista\grid" /> |
<file name="images\vista\layout\collapse.gif" path="images\vista\layout" /> |
<file name="images\vista\layout\expand.gif" path="images\vista\layout" /> |
<file name="images\vista\layout\gradient-bg.gif" path="images\vista\layout" /> |
<file name="images\vista\layout\ns-collapse.gif" path="images\vista\layout" /> |
<file name="images\vista\layout\ns-expand.gif" path="images\vista\layout" /> |
<file name="images\vista\layout\panel-close.gif" path="images\vista\layout" /> |
<file name="images\vista\layout\panel-title-bg.gif" path="images\vista\layout" /> |
<file name="images\vista\layout\panel-title-light-bg.gif" path="images\vista\layout" /> |
<file name="images\vista\layout\tab-close-on.gif" path="images\vista\layout" /> |
<file name="images\vista\layout\tab-close.gif" path="images\vista\layout" /> |
<file name="images\vista\qtip\bg.gif" path="images\vista\qtip" /> |
<file name="images\vista\sizer\e-handle-dark.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\e-handle.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\ne-handle-dark.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\ne-handle.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\nw-handle-dark.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\nw-handle.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\s-handle-dark.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\s-handle.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\se-handle-dark.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\se-handle.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\sw-handle-dark.gif" path="images\vista\sizer" /> |
<file name="images\vista\sizer\sw-handle.gif" path="images\vista\sizer" /> |
<file name="images\vista\tabs\tab-btm-inactive-left-bg.gif" path="images\vista\tabs" /> |
<file name="images\vista\tabs\tab-btm-inactive-right-bg.gif" path="images\vista\tabs" /> |
<file name="images\vista\tabs\tab-btm-left-bg.gif" path="images\vista\tabs" /> |
<file name="images\vista\tabs\tab-btm-right-bg.gif" path="images\vista\tabs" /> |
<file name="images\vista\tabs\tab-sprite.gif" path="images\vista\tabs" /> |
<file name="images\vista\toolbar\gray-bg.gif" path="images\vista\toolbar" /> |
<file name="images\vista\gradient-bg.gif" path="images\vista" /> |
<file name="images\vista\s.gif" path="images\vista" /> |
<file name="images\default\grid\col-move.gif" path="images\default\grid" /> |
<file name="images\default\grid\col-move-bottom.gif" path="images\default\grid" /> |
<file name="images\default\grid\col-move-top.gif" path="images\default\grid" /> |
<file name="images\default\basic-dialog\btn-arrow.gif" path="images\default\basic-dialog" /> |
<file name="images\default\toolbar\tb-btn-sprite.gif" path="images\default\toolbar" /> |
<file name="images\aero\toolbar\tb-btn-sprite.gif" path="images\aero\toolbar" /> |
<file name="images\vista\toolbar\tb-btn-sprite.gif" path="images\vista\toolbar" /> |
<file name="images\default\toolbar\btn-arrow.gif" path="images\default\toolbar" /> |
<file name="images\default\menu\menu.gif" path="images\default\menu" /> |
<file name="images\default\menu\unchecked.gif" path="images\default\menu" /> |
<file name="images\default\menu\checked.gif" path="images\default\menu" /> |
<file name="images\default\menu\menu-parent.gif" path="images\default\menu" /> |
<file name="images\default\menu\group-checked.gif" path="images\default\menu" /> |
<file name="css\menu.css" path="css" /> |
<file name="css\grid2.css" path="css" /> |
<file name="css\README.txt" path="css" /> |
<file name="images\default\grid\hmenu-asc.gif" path="images\default\grid" /> |
<file name="images\default\grid\hmenu-desc.gif" path="images\default\grid" /> |
<file name="images\default\grid\hmenu-lock.png" path="images\default\grid" /> |
<file name="images\default\grid\hmenu-unlock.png" path="images\default\grid" /> |
<file name="images\default\grid\Thumbs.db" path="images\default\grid" /> |
<file name="images\default\menu\shadow-lite.png" path="images\default\menu" /> |
<file name="images\default\menu\shadow.png" path="images\default\menu" /> |
<file name="license.txt" path="" /> |
<file name="css\date-picker.css" path="css" /> |
<file name="images\default\basic-dialog\collapse.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\expand.gif" path="images\default\basic-dialog" /> |
<file name="images\aero\basic-dialog\collapse.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\collapse-over.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\expand.gif" path="images\aero\basic-dialog" /> |
<file name="images\aero\basic-dialog\expand-over.gif" path="images\aero\basic-dialog" /> |
<file name="images\gray\basic-dialog\collapse.gif" path="images\gray\basic-dialog" /> |
<file name="images\gray\basic-dialog\expand.gif" path="images\gray\basic-dialog" /> |
<file name="images\vista\basic-dialog\collapse.gif" path="images\vista\basic-dialog" /> |
<file name="images\vista\basic-dialog\expand.gif" path="images\vista\basic-dialog" /> |
<file name="css\.DS_Store" path="css" /> |
<file name="images\default\grid\.DS_Store" path="images\default\grid" /> |
<file name="images\default\toolbar\btn-arrow-light.gif" path="images\default\toolbar" /> |
<file name="images\default\.DS_Store" path="images\default" /> |
<file name="images\default\shared\left-btn.gif" path="images\default\shared" /> |
<file name="images\default\shared\right-btn.gif" path="images\default\shared" /> |
<file name="images\default\shared\calendar.gif" path="images\default\shared" /> |
<file name="css\form.css" path="css" /> |
<file name="images\aero\grid\pspbrwse.jbf" path="images\aero\grid" /> |
<file name="images\default\bg.png" path="images\default" /> |
<file name="images\default\shadow.png" path="images\default" /> |
<file name="images\default\shadow-lr.png" path="images\default" /> |
<file name="images\.DS_Store" path="images" /> |
<file name=".DS_Store" path="" /> |
<file name="yui-ext-resources.jsb" path="" /> |
<file name="resources.jsb" path="" /> |
<file name="css\box.css" path="css" /> |
<file name="images\default\box\.DS_Store" path="images\default\box" /> |
<file name="images\default\box\corners-blue.gif" path="images\default\box" /> |
<file name="images\default\box\corners.gif" path="images\default\box" /> |
<file name="images\default\box\l-blue.gif" path="images\default\box" /> |
<file name="images\default\box\l.gif" path="images\default\box" /> |
<file name="images\default\box\r-blue.gif" path="images\default\box" /> |
<file name="images\default\box\r.gif" path="images\default\box" /> |
<file name="images\default\box\tb-blue.gif" path="images\default\box" /> |
<file name="images\default\box\tb.gif" path="images\default\box" /> |
<file name="images\gray\menu\checked.gif" path="images\gray\menu" /> |
<file name="images\gray\menu\group-checked.gif" path="images\gray\menu" /> |
<file name="images\gray\menu\menu-parent.gif" path="images\gray\menu" /> |
<file name="images\gray\menu\menu.gif" path="images\gray\menu" /> |
<file name="images\gray\menu\unchecked.gif" path="images\gray\menu" /> |
<file name="images\default\layout\stick.gif" path="images\default\layout" /> |
<file name="images\default\layout\stuck.gif" path="images\default\layout" /> |
<file name="images\gray\layout\stick.gif" path="images\gray\layout" /> |
<file name="images\vista\layout\stick.gif" path="images\vista\layout" /> |
<file name="images\gray\grid\grid-hrow.gif" path="images\gray\grid" /> |
<file name="images\default\toolbar\tb-bg.gif" path="images\default\toolbar" /> |
<file name="images\gray\toolbar\tb-btn-sprite.gif" path="images\gray\toolbar" /> |
<file name="css\debug.css" path="css" /> |
<file name="images\default\form\trigger.gif" path="images\default\form" /> |
<file name="css\combo.css" path="css" /> |
<file name="images\default\form\date-trigger.gif" path="images\default\form" /> |
<file name="images\default\shared\warning.gif" path="images\default\shared" /> |
<file name="images\default\grid\dirty.gif" path="images\default\grid" /> |
<file name="images\default\grid\hmenu-lock.gif" path="images\default\grid" /> |
<file name="images\default\grid\hmenu-unlock.gif" path="images\default\grid" /> |
<file name="images\default\form\text-bg.gif" path="images\default\form" /> |
<file name="images\default\form\exclamation.png" path="images\default\form" /> |
<file name="images\default\form\exclamation.gif" path="images\default\form" /> |
<file name="images\default\form\error-tip-bg.gif" path="images\default\form" /> |
<file name="images\default\form\error-tip-corners.gif" path="images\default\form" /> |
<file name="images\default\qtip\tip-sprite.gif" path="images\default\qtip" /> |
<file name="images\default\qtip\close.gif" path="images\default\qtip" /> |
<file name="images\gray\qtip\tip-sprite.gif" path="images\gray\qtip" /> |
<file name="images\vista\qtip\tip-sprite.gif" path="images\vista\qtip" /> |
<file name="images\default\grid\hd-pop.gif" path="images\default\grid" /> |
<file name="css\panel.css" path="css" /> |
<file name="images\default\panel\panel-sprite.gif" path="images\default\panel" /> |
<file name="images\default\panel\panel-blue-sprite.gif" path="images\default\panel" /> |
<file name="images\default\panel\toggle-sprite.gif" path="images\default\panel" /> |
<file name="images\default\panel\close-sprite.gif" path="images\default\panel" /> |
<file name="images\default\window\corners-sprite.gif" path="images\default\window" /> |
<file name="images\default\window\left-right.gif" path="images\default\window" /> |
<file name="images\default\window\top-bottom.gif" path="images\default\window" /> |
<file name="css\window.css" path="css" /> |
<file name="images\default\window\corners-sprite.png" path="images\default\window" /> |
<file name="images\default\window\corners-sprite.psd" path="images\default\window" /> |
<file name="images\default\shadow-c.png" path="images\default" /> |
<file name="css\grid3.css" path="css" /> |
<file name="css\layout2.css" path="css" /> |
<file name="css\tabs2.css" path="css" /> |
<file name="images\default\panel\corners-sprite.gif" path="images\default\panel" /> |
<file name="images\default\panel\left-right.gif" path="images\default\panel" /> |
<file name="images\default\panel\tool-sprite-tpl.gif" path="images\default\panel" /> |
<file name="images\default\panel\tool-sprites.gif" path="images\default\panel" /> |
<file name="images\default\panel\top-bottom.gif" path="images\default\panel" /> |
<file name="images\default\panel\top-bottom.png" path="images\default\panel" /> |
<file name="images\default\panel\white-corners-sprite.gif" path="images\default\panel" /> |
<file name="images\default\panel\white-left-right.gif" path="images\default\panel" /> |
<file name="images\default\panel\white-top-bottom.gif" path="images\default\panel" /> |
<file name="images\default\window\left-corners.png" path="images\default\window" /> |
<file name="images\default\window\left-corners.psd" path="images\default\window" /> |
<file name="images\default\window\left-right.png" path="images\default\window" /> |
<file name="images\default\window\left-right.psd" path="images\default\window" /> |
<file name="images\default\window\right-corners.png" path="images\default\window" /> |
<file name="images\default\window\right-corners.psd" path="images\default\window" /> |
<file name="images\default\window\top-bottom.png" path="images\default\window" /> |
<file name="images\default\window\top-bottom.psd" path="images\default\window" /> |
<file name="images\default\._.DS_Store" path="images\default" /> |
<file name="images\._.DS_Store" path="images" /> |
<file name="._.DS_Store" path="" /> |
<file name="css\editor.css" path="css" /> |
<file name="images\default\editor\tb-sprite.gif" path="images\default\editor" /> |
<file name="css\borders.css" path="css" /> |
<file name="images\default\form\clear-trigger.gif" path="images\default\form" /> |
<file name="images\default\form\search-trigger.gif" path="images\default\form" /> |
<file name="images\default\form\trigger-tpl.gif" path="images\default\form" /> |
<file name="images\default\grid\row-over.gif" path="images\default\grid" /> |
<file name="images\default\grid\row-sel.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid3-hrow.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid3-hrow-over.gif" path="images\default\grid" /> |
<file name="images\default\grid\row-collapse.gif" path="images\default\grid" /> |
<file name="images\default\grid\row-expand.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid3-hd-btn.gif" path="images\default\grid" /> |
<file name="images\aero\menu\menu.gif" path="images\aero\menu" /> |
<file name="images\aero\menu\item-over.gif" path="images\aero\menu" /> |
<file name="images\aero\menu\checked.gif" path="images\aero\menu" /> |
<file name="images\aero\menu\unchecked.gif" path="images\aero\menu" /> |
<file name="images\default\grid\grid3-expander-b-bg.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid3-expander-c-bg.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid3-special-col-bg.gif" path="images\default\grid" /> |
<file name="images\default\grid\row-expand-sprite.gif" path="images\default\grid" /> |
<file name="images\default\grid\row-check-sprite.gif" path="images\default\grid" /> |
<file name="images\default\grid\grid3-special-col-sel-bg.gif" path="images\default\grid" /> |
<file name="images\default\shared\glass-bg.gif" path="images\default\shared" /> |
<file name="legacy\grid.css" path="legacy" /> |
<file name="css\xtheme-aero.css" path="css" /> |
<file name="css\xtheme-gray.css" path="css" /> |
<file name="css\xtheme-vista.css" path="css" /> |
<file name="legacy\basic-dialog.css" path="legacy" /> |
<file name="images\default\form\clear-trigger.psd" path="images\default\form" /> |
<file name="images\default\form\date-trigger.psd" path="images\default\form" /> |
<file name="images\default\form\search-trigger.psd" path="images\default\form" /> |
<file name="images\default\form\trigger.psd" path="images\default\form" /> |
<file name="images\aero\tabs\tab-close.gif" path="images\aero\tabs" /> |
<file name="images\default\panel\light-hd.gif" path="images\default\panel" /> |
<file name="images\default\panel\tools-sprites-trans.gif" path="images\default\panel" /> |
<file name="images\aero\tabs\scroller-bg.gif" path="images\aero\tabs" /> |
<file name="images\default\tabs\scroller-bg.gif" path="images\default\tabs" /> |
<file name="images\default\grid\group-expand-sprite.gif" path="images\default\grid" /> |
<file name="images\default\grid\group-by.gif" path="images\default\grid" /> |
<file name="images\default\grid\columns.gif" path="images\default\grid" /> |
<file name="css\dialog.css" path="css" /> |
<file name="images\default\basic-dialog\icon-error.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\icon-info.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\icon-question.gif" path="images\default\basic-dialog" /> |
<file name="images\default\basic-dialog\icon-warning.gif" path="images\default\basic-dialog" /> |
<file name="css\progress.css" path="css" /> |
<file name="images\default\widgets\progress-bg.gif" path="images\default\widgets" /> |
<file name="images\default\progress\progress-bg.gif" path="images\default\progress" /> |
<file name="images\default\layout\mini-bottom.gif" path="images\default\layout" /> |
<file name="images\default\layout\mini-left.gif" path="images\default\layout" /> |
<file name="images\default\layout\mini-right.gif" path="images\default\layout" /> |
<file name="images\default\layout\mini-top.gif" path="images\default\layout" /> |
<file name="images\default\shared\blue-loading.gif" path="images\default\shared" /> |
<file name="images\default\shared\large-loading.gif" path="images\default\shared" /> |
<file name="images\default\menu\item-over.gif" path="images\default\menu" /> |
<file name="images\default\tabs\tab-close.gif" path="images\default\tabs" /> |
<file name="images\default\tabs\tab-strip-bg.gif" path="images\default\tabs" /> |
<file name="images\default\tabs\tab-strip-bg.png" path="images\default\tabs" /> |
<file name="images\default\tabs\tab-strip-btm-bg.gif" path="images\default\tabs" /> |
<file name="images\default\toolbar\bg.gif" path="images\default\toolbar" /> |
<file name="images\default\button\btn-arrow.gif" path="images\default\button" /> |
<file name="images\default\button\btn-sprite.gif" path="images\default\button" /> |
<file name="images\default\shared\hd-sprite.gif" path="images\default\shared" /> |
<file name="images\default\window\icon-error.gif" path="images\default\window" /> |
<file name="images\default\window\icon-info.gif" path="images\default\window" /> |
<file name="images\default\window\icon-question.gif" path="images\default\window" /> |
<file name="images\default\window\icon-warning.gif" path="images\default\window" /> |
<file name="images\gray\panel\corners-sprite.gif" path="images\gray\panel" /> |
<file name="images\gray\panel\left-right.gif" path="images\gray\panel" /> |
<file name="images\gray\panel\light-hd.gif" path="images\gray\panel" /> |
<file name="images\gray\panel\tool-sprite-tpl.gif" path="images\gray\panel" /> |
<file name="images\gray\panel\tool-sprites.gif" path="images\gray\panel" /> |
<file name="images\gray\panel\tools-sprites-trans.gif" path="images\gray\panel" /> |
<file name="images\gray\panel\top-bottom.gif" path="images\gray\panel" /> |
<file name="images\gray\panel\top-bottom.png" path="images\gray\panel" /> |
<file name="images\gray\panel\white-corners-sprite.gif" path="images\gray\panel" /> |
<file name="images\gray\panel\white-left-right.gif" path="images\gray\panel" /> |
<file name="images\gray\panel\white-top-bottom.gif" path="images\gray\panel" /> |
<file name="images\gray\qtip\close.gif" path="images\gray\qtip" /> |
<file name="images\gray\toolbar\bg.gif" path="images\gray\toolbar" /> |
<file name="images\gray\toolbar\btn-arrow-light.gif" path="images\gray\toolbar" /> |
<file name="images\gray\toolbar\btn-arrow.gif" path="images\gray\toolbar" /> |
<file name="images\gray\toolbar\btn-over-bg.gif" path="images\gray\toolbar" /> |
<file name="images\gray\toolbar\tb-bg.gif" path="images\gray\toolbar" /> |
<file name="images\gray\tabs\scroller-bg.gif" path="images\gray\tabs" /> |
<file name="images\gray\tabs\tab-close.gif" path="images\gray\tabs" /> |
<file name="images\gray\tabs\tab-strip-bg.gif" path="images\gray\tabs" /> |
<file name="images\gray\tabs\tab-strip-bg.png" path="images\gray\tabs" /> |
<file name="images\gray\tabs\tab-strip-btm-bg.gif" path="images\gray\tabs" /> |
<file name="images\gray\window\icon-error.gif" path="images\gray\window" /> |
<file name="images\gray\window\icon-info.gif" path="images\gray\window" /> |
<file name="images\gray\window\icon-question.gif" path="images\gray\window" /> |
<file name="images\gray\window\icon-warning.gif" path="images\gray\window" /> |
<file name="images\gray\window\left-corners.png" path="images\gray\window" /> |
<file name="images\gray\window\left-corners.psd" path="images\gray\window" /> |
<file name="images\gray\window\left-right.png" path="images\gray\window" /> |
<file name="images\gray\window\left-right.psd" path="images\gray\window" /> |
<file name="images\gray\window\right-corners.png" path="images\gray\window" /> |
<file name="images\gray\window\right-corners.psd" path="images\gray\window" /> |
<file name="images\gray\window\top-bottom.png" path="images\gray\window" /> |
<file name="images\gray\window\top-bottom.psd" path="images\gray\window" /> |
<file name="images\gray\button\btn-arrow.gif" path="images\gray\button" /> |
<file name="images\gray\button\btn-sprite.gif" path="images\gray\button" /> |
<file name="css\xtheme-gray-blue.css" path="css" /> |
<file name="images\gray\window\left-corners.pspimage" path="images\gray\window" /> |
<file name="images\gray\window\right-corners.pspimage" path="images\gray\window" /> |
<file name="images\default\tabs\tabs-sprite.gif" path="images\default\tabs" /> |
<file name="images\gray\tabs\tabs-sprite.gif" path="images\gray\tabs" /> |
<file name="css\xtheme-dark.css" path="css" /> |
<file name="images\dark\button\btn-arrow.gif" path="images\dark\button" /> |
<file name="images\dark\button\btn-sprite.gif" path="images\dark\button" /> |
<file name="images\dark\panel\corners-sprite.gif" path="images\dark\panel" /> |
<file name="images\dark\panel\left-right.gif" path="images\dark\panel" /> |
<file name="images\dark\panel\light-hd.gif" path="images\dark\panel" /> |
<file name="images\dark\panel\tool-sprite-tpl.gif" path="images\dark\panel" /> |
<file name="images\dark\panel\tool-sprites.gif" path="images\dark\panel" /> |
<file name="images\dark\panel\tools-sprites-trans.gif" path="images\dark\panel" /> |
<file name="images\dark\panel\top-bottom.gif" path="images\dark\panel" /> |
<file name="images\dark\panel\top-bottom.png" path="images\dark\panel" /> |
<file name="images\dark\panel\white-corners-sprite.gif" path="images\dark\panel" /> |
<file name="images\dark\panel\white-left-right.gif" path="images\dark\panel" /> |
<file name="images\dark\panel\white-top-bottom.gif" path="images\dark\panel" /> |
<file name="images\dark\qtip\bg.gif" path="images\dark\qtip" /> |
<file name="images\dark\qtip\close.gif" path="images\dark\qtip" /> |
<file name="images\dark\qtip\tip-sprite.gif" path="images\dark\qtip" /> |
<file name="images\dark\tabs\scroller-bg.gif" path="images\dark\tabs" /> |
<file name="images\dark\tabs\tab-btm-inactive-left-bg.gif" path="images\dark\tabs" /> |
<file name="images\dark\tabs\tab-btm-inactive-right-bg.gif" path="images\dark\tabs" /> |
<file name="images\dark\tabs\tab-btm-left-bg.gif" path="images\dark\tabs" /> |
<file name="images\dark\tabs\tab-btm-right-bg.gif" path="images\dark\tabs" /> |
<file name="images\dark\tabs\tab-close.gif" path="images\dark\tabs" /> |
<file name="images\dark\tabs\tab-strip-bg.gif" path="images\dark\tabs" /> |
<file name="images\dark\tabs\tab-strip-bg.png" path="images\dark\tabs" /> |
<file name="images\dark\tabs\tab-strip-btm-bg.gif" path="images\dark\tabs" /> |
<file name="images\dark\tabs\tabs-sprite.gif" path="images\dark\tabs" /> |
<file name="images\dark\toolbar\bg.gif" path="images\dark\toolbar" /> |
<file name="images\dark\toolbar\btn-arrow-light.gif" path="images\dark\toolbar" /> |
<file name="images\dark\toolbar\btn-arrow.gif" path="images\dark\toolbar" /> |
<file name="images\dark\toolbar\btn-over-bg.gif" path="images\dark\toolbar" /> |
<file name="images\dark\toolbar\gray-bg.gif" path="images\dark\toolbar" /> |
<file name="images\dark\toolbar\tb-bg.gif" path="images\dark\toolbar" /> |
<file name="images\dark\toolbar\tb-btn-sprite.gif" path="images\dark\toolbar" /> |
<file name="images\dark\window\icon-error.gif" path="images\dark\window" /> |
<file name="images\dark\window\icon-info.gif" path="images\dark\window" /> |
<file name="images\dark\window\icon-question.gif" path="images\dark\window" /> |
<file name="images\dark\window\icon-warning.gif" path="images\dark\window" /> |
<file name="images\dark\window\left-corners.png" path="images\dark\window" /> |
<file name="images\dark\window\left-corners.pspimage" path="images\dark\window" /> |
<file name="images\dark\window\left-right.png" path="images\dark\window" /> |
<file name="images\dark\window\right-corners.png" path="images\dark\window" /> |
<file name="images\dark\window\top-bottom.png" path="images\dark\window" /> |
<file name="images\dark\gradient-bg.gif" path="images\dark" /> |
<file name="images\dark\s.gif" path="images\dark" /> |
<file name="images\default\tabs\scroll-left.gif" path="images\default\tabs" /> |
<file name="images\default\tabs\scroll-right.gif" path="images\default\tabs" /> |
<file name="css\reset.css" path="css" /> |
<file name="images\gray\tabs\scroll-left.gif" path="images\gray\tabs" /> |
<file name="images\gray\tabs\scroll-right.gif" path="images\gray\tabs" /> |
<file name="images\default\shared\loading-balls.gif" path="images\default\shared" /> |
<file name="raw-images\shadow.psd" path="raw-images" /> |
<file name="images\default\tree\arrow-closed-over.gif" path="images\default\tree" /> |
<file name="images\default\tree\arrow-closed.gif" path="images\default\tree" /> |
<file name="images\default\tree\arrow-open-over.gif" path="images\default\tree" /> |
<file name="images\default\tree\arrow-open.gif" path="images\default\tree" /> |
<file name="images\default\tree\arrows.gif" path="images\default\tree" /> |
</project> |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/tabs.css |
---|
New file |
0,0 → 1,345 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-tab-panel { |
overflow:hidden; |
} |
.x-tab-panel-header, .x-tab-panel-footer { |
background: #deecfd; |
border: 1px solid #8db2e3; |
overflow:hidden; |
zoom:1; |
} |
.x-tab-panel-header { |
border: 1px solid #8db2e3; |
padding-bottom: 2px; |
} |
.x-tab-panel-footer { |
border: 1px solid #8db2e3; |
padding-top: 2px; |
} |
.x-tab-strip-wrap { |
width:100%; |
overflow:hidden; |
position:relative; |
zoom:1; |
} |
ul.x-tab-strip { |
display:block; |
width:5000px; |
zoom:1; |
} |
ul.x-tab-strip-top{ |
padding-top: 1px; |
background: url(../images/default/tabs/tab-strip-bg.gif) #cedff5 repeat-x bottom; |
border-bottom: 1px solid #8db2e3; |
} |
ul.x-tab-strip-bottom{ |
padding-bottom: 1px; |
background: url(../images/default/tabs/tab-strip-btm-bg.gif) #cedff5 repeat-x top; |
border-top: 1px solid #8db2e3; |
border-bottom: 0 none; |
} |
.x-tab-panel-header-plain .x-tab-strip-top { |
background:transparent !important; |
padding-top:0 !important; |
} |
.x-tab-panel-header-plain { |
background:transparent !important; |
border-width:0 !important; |
padding-bottom:0 !important; |
} |
.x-tab-panel-header-plain .x-tab-strip-spacer { |
border:1px solid #8db2e3; |
border-top: 0 none; |
height:2px; |
background: #deecfd; |
font-size:1px; |
line-height:1px; |
} |
.ext-border-box .x-tab-panel-header-plain .x-tab-strip-spacer { |
height:3px; |
} |
ul.x-tab-strip li { |
float:left; |
margin-left:2px; |
} |
ul.x-tab-strip li.x-tab-edge { |
float:left; |
margin:0 !important; |
padding:0 !important; |
border:0 none !important; |
font-size:1px !important; |
line-height:1px !important; |
overflow:hidden; |
zoom:1; |
background:transparent !important; |
width:1px; |
} |
.x-tab-strip a, .x-tab-strip span, .x-tab-strip em { |
display:block; |
} |
.x-tab-strip a { |
text-decoration:none !important; |
-moz-outline: none; |
outline: none; |
cursor:pointer; |
} |
.x-tab-strip-inner { |
overflow:hidden; |
text-overflow: ellipsis; |
} |
.x-tab-strip span.x-tab-strip-text { |
font:normal 11px tahoma,arial,helvetica; |
color:#416aa3; |
white-space: nowrap; |
cursor:pointer; |
padding:4px 0; |
} |
.x-tab-strip .x-tab-with-icon .x-tab-right { |
padding-left:6px; |
} |
.x-tab-strip .x-tab-with-icon span.x-tab-strip-text { |
padding-left:20px; |
background-position: 0 3px; |
background-repeat: no-repeat; |
} |
.x-tab-strip-over span.x-tab-strip-text { |
color:#15428b; |
} |
.x-tab-strip-active { |
cursor:default; |
} |
.x-tab-strip-active span.x-tab-strip-text { |
cursor:default; |
color:#15428b; |
font-weight:bold; |
} |
.x-tab-strip-disabled .x-tabs-text { |
cursor:default; |
color:#aaaaaa; |
} |
.x-tab-panel-body { |
overflow:hidden; |
} |
.x-tab-panel-bwrap { |
overflow:hidden; |
} |
.ext-ie .x-tab-strip .x-tab-right { |
position:relative; |
} |
.x-tab-strip-top .x-tab-strip-active .x-tab-right { |
margin-bottom:-1px; |
} |
.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text { |
padding-bottom:5px; |
} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { |
margin-top:-1px; |
} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text { |
padding-top:5px; |
} |
.x-tab-strip-top .x-tab-right { |
background: transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat 0 -51px; |
padding-left:10px; |
} |
.x-tab-strip-top .x-tab-left { |
background: transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat right -351px; |
padding-right:10px; |
} |
.x-tab-strip-top .x-tab-strip-inner { |
background: transparent url(../images/default/tabs/tabs-sprite.gif) repeat-x 0 -201px; |
} |
.x-tab-strip-top .x-tab-strip-over .x-tab-right { |
background-position:0 -101px; |
} |
.x-tab-strip-top .x-tab-strip-over .x-tab-left { |
background-position:right -401px; |
} |
.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner { |
background-position:0 -251px; |
} |
.x-tab-strip-top .x-tab-strip-active .x-tab-right { |
background-position: 0 0; |
} |
.x-tab-strip-top .x-tab-strip-active .x-tab-left { |
background-position: right -301px; |
} |
.x-tab-strip-top .x-tab-strip-active .x-tab-strip-inner { |
background-position: 0 -151px; |
} |
.x-tab-strip-bottom .x-tab-right { |
background: url(../images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right; |
} |
.x-tab-strip-bottom .x-tab-left { |
background: url(../images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left; |
} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { |
background: url(../images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left; |
} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { |
background: url(../images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right; |
} |
.x-tab-strip-bottom .x-tab-left { |
padding:0 10px; |
} |
.x-tab-strip-bottom .x-tab-right { |
padding:0; |
} |
.x-tab-strip .x-tab-strip-close { |
display:none; |
} |
.x-tab-strip-closable { |
position:relative; |
} |
.x-tab-strip-closable .x-tab-left { |
padding-right:19px; |
} |
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { |
background-image:url(../images/default/tabs/tab-close.gif); |
opacity:.6; |
-moz-opacity:.6; |
background-repeat:no-repeat; |
display:block; |
width:11px;height:11px; |
position:absolute; |
top:3px; |
right:3px; |
cursor:pointer; |
z-index:2; |
} |
.x-tab-strip .x-tab-strip-active a.x-tab-strip-close { |
opacity:.8; |
-moz-opacity:.8; |
} |
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ |
background-image:url(../images/default/tabs/tab-close.gif); |
opacity:1; |
-moz-opacity:1; |
} |
.x-tab-panel-body { |
border: 1px solid #8db2e3; |
background:#fff; |
} |
.x-tab-panel-body-top { |
border-top: 0 none; |
} |
.x-tab-panel-body-bottom { |
border-bottom: 0 none; |
} |
.x-tab-scroller-left { |
background: transparent url(../images/default/tabs/scroll-left.gif) no-repeat -18px 0; |
border-bottom: 1px solid #8db2e3; |
width:18px; |
position:absolute; |
left:0; |
top:0; |
z-index:10; |
cursor:pointer; |
} |
.x-tab-scroller-left-over { |
background-position: 0 0; |
} |
.x-tab-scroller-left-disabled { |
background-position: -18px 0; |
opacity:.5; |
-moz-opacity:.5; |
filter:alpha(opacity=50); |
cursor:default; |
} |
.x-tab-scroller-right { |
background: transparent url(../images/default/tabs/scroll-right.gif) no-repeat 0 0; |
border-bottom: 1px solid #8db2e3; |
width:18px; |
position:absolute; |
right:0; |
top:0; |
z-index:10; |
cursor:pointer; |
} |
.x-tab-scroller-right-over { |
background-position: -18px 0; |
} |
.x-tab-scroller-right-disabled { |
background-position: 0 0; |
opacity:.5; |
-moz-opacity:.5; |
filter:alpha(opacity=50); |
cursor:default; |
} |
.x-tab-scrolling .x-tab-strip-wrap { |
margin-left:18px; |
margin-right:18px; |
} |
.x-tab-scrolling { |
position:relative; |
} |
.x-tab-panel-bbar .x-toolbar { |
border:1px solid #99bbe8; |
border-top:0 none; |
overflow:hidden; |
padding:2px; |
} |
.x-tab-panel-tbar .x-toolbar { |
border:1px solid #99bbe8; |
border-top:0 none; |
overflow:hidden; |
padding:2px; |
} |
.x-border-layout-ct .x-tab-panel { |
background: white; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/xtheme-gray.css |
---|
New file |
0,0 → 1,415 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-panel { |
border-style: solid; |
border-color: #d0d0d0; |
} |
.x-panel-header { |
color:#333; |
border:1px solid #d0d0d0; |
background-image:url(../images/gray/panel/white-top-bottom.gif); |
} |
.x-panel-body { |
border-color:#d0d0d0; |
} |
.x-panel-bbar .x-toolbar { |
border-color:#d0d0d0; |
} |
.x-panel-tbar .x-toolbar { |
border-color:#d0d0d0; |
} |
.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { |
border-color:#d0d0d0; |
} |
.x-panel-body-noheader, .x-panel-mc .x-panel-body { |
border-color:#d0d0d0; |
} |
.x-panel-tl .x-panel-header { |
color:#333; |
} |
.x-panel-tc { |
background-image:url(../images/gray/panel/top-bottom.gif); |
} |
.x-panel-tl { |
background-image:url(../images/gray/panel/corners-sprite.gif); |
border-color:#d0d0d0; |
} |
.x-panel-tr { |
background-image:url(../images/gray/panel/corners-sprite.gif); |
} |
.x-panel-bc { |
background-image:url(../images/gray/panel/top-bottom.gif); |
} |
.x-panel-bl { |
background-image:url(../images/gray/panel/corners-sprite.gif); |
} |
.x-panel-br { |
background-image:url(../images/gray/panel/corners-sprite.gif); |
} |
.x-panel-mc { |
background:#f1f1f1; |
} |
.x-panel-mc .x-panel-body { |
background:transparent; |
border: 0 none; |
} |
.x-panel-ml { |
background-image:url(../images/gray/panel/left-right.gif); |
} |
.x-panel-mr { |
background-image:url(../images/gray/panel/left-right.gif); |
} |
/* Tools */ |
.x-tool { |
background-image:url(../images/gray/panel/tool-sprites.gif); |
} |
/* Ghosting */ |
.x-panel-ghost { |
background:#e0e0e0; |
} |
.x-panel-ghost ul { |
border-color:#b0b0b0; |
} |
.x-grid-panel .x-panel-mc .x-panel-body { |
border:1px solid #d0d0d0; |
} |
/* Buttons */ |
.x-btn-left{ |
background-image:url(../images/gray/button/btn-sprite.gif); |
} |
.x-btn-right{ |
background-image:url(../images/gray/button/btn-sprite.gif); |
} |
.x-btn-center{ |
background-image:url(../images/gray/button/btn-sprite.gif); |
} |
/* Layout classes */ |
.x-border-layout-ct { |
background:#f0f0f0; |
} |
.x-accordion-hd { |
background-image:url(../images/gray/panel/light-hd.gif); |
} |
.x-layout-collapsed{ |
background-color:#eee; |
border-color:#e0e0e0; |
} |
.x-layout-collapsed-over{ |
background-color:#fbfbfb; |
} |
/* qtips */ |
.x-tip .x-tip-top { |
background-image:url(../images/gray/qtip/tip-sprite.gif); |
} |
.x-tip .x-tip-top-left { |
background-image:url(../images/gray/qtip/tip-sprite.gif); |
} |
.x-tip .x-tip-top-right { |
background-image:url(../images/gray/qtip/tip-sprite.gif); |
} |
.x-tip .x-tip-ft { |
background-image:url(../images/gray/qtip/tip-sprite.gif); |
} |
.x-tip .x-tip-ft-left { |
background-image:url(../images/gray/qtip/tip-sprite.gif); |
} |
.x-tip .x-tip-ft-right { |
background-image:url(../images/gray/qtip/tip-sprite.gif); |
} |
.x-tip .x-tip-bd-left { |
background-image:url(../images/gray/qtip/tip-sprite.gif); |
} |
.x-tip .x-tip-bd-right { |
background-image:url(../images/gray/qtip/tip-sprite.gif); |
} |
/* Toolbars */ |
.x-toolbar{ |
border-color:#d0d0d0; |
background:#f0f4f5 url(../images/gray/toolbar/bg.gif) repeat-x top left; |
} |
.x-toolbar button { |
color:#444; |
} |
.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { |
background-image:url(../images/gray/toolbar/btn-arrow.gif); |
} |
.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { |
background-image:url(../images/gray/toolbar/btn-arrow.gif); |
} |
.x-toolbar .x-btn-over .x-btn-left{ |
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); |
} |
.x-toolbar .x-btn-over .x-btn-right{ |
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); |
} |
.x-toolbar .x-btn-over .x-btn-center{ |
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); |
} |
.x-toolbar .x-btn-over button { |
color:#111; |
} |
.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ |
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); |
} |
.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ |
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); |
} |
.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ |
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif); |
} |
.x-toolbar .ytb-sep { |
background-image: url(../images/default/grid/grid-split.gif); |
} |
/* Tabs */ |
.x-tab-panel-header, .x-tab-panel-footer { |
background: #EAEAEA; |
border-color:#d0d0d0; |
} |
.x-tab-panel-header { |
border-color:#d0d0d0; |
} |
.x-tab-panel-footer { |
border-color:#d0d0d0; |
} |
ul.x-tab-strip-top{ |
background:#dbdbdb url(../images/gray/tabs/tab-strip-bg.gif) repeat-x left top; |
border-color:#d0d0d0; |
padding-top: 2px; |
} |
ul.x-tab-strip-bottom{ |
background-image:url(../images/gray/tabs/tab-strip-btm-bg.gif); |
border-color:#d0d0d0; |
} |
.x-tab-strip span.x-tab-strip-text { |
color:#333; |
} |
.x-tab-strip-over span.x-tab-strip-text { |
color:#111; |
} |
.x-tab-strip-active span.x-tab-strip-text { |
color:#333; |
} |
.x-tab-strip-disabled .x-tabs-text { |
color:#aaaaaa; |
} |
.x-tab-strip-top .x-tab-right { |
background-image:url(../images/gray/tabs/tabs-sprite.gif); |
} |
.x-tab-strip-top .x-tab-left { |
background-image:url(../images/gray/tabs/tabs-sprite.gif); |
} |
.x-tab-strip-top .x-tab-strip-inner { |
background-image:url(../images/gray/tabs/tabs-sprite.gif); |
} |
.x-tab-strip-bottom .x-tab-right { |
background-image:url(../images/gray/tabs/tab-btm-inactive-right-bg.gif); |
} |
.x-tab-strip-bottom .x-tab-left { |
background-image:url(../images/gray/tabs/tab-btm-inactive-left-bg.gif); |
} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right { |
background-image:url(../images/gray/tabs/tab-btm-right-bg.gif); |
} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-left { |
background-image:url(../images/gray/tabs/tab-btm-left-bg.gif); |
} |
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close { |
background-image:url(../images/gray/tabs/tab-close.gif); |
} |
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{ |
background-image:url(../images/gray/tabs/tab-close.gif); |
} |
.x-tab-panel-body { |
border-color:#d0d0d0; |
background:#fff; |
} |
.x-tab-panel-bbar .x-toolbar { |
border-color: #d0d0d0; |
} |
.x-tab-panel-tbar .x-toolbar { |
border-color: #d0d0d0; |
} |
.x-tab-panel-header-plain .x-tab-strip-spacer { |
border-color:#d0d0d0; |
background: #eaeaea; |
} |
.x-tab-scroller-left { |
background-image: url(../images/gray/tabs/scroll-left.gif); |
border-color:#aeaeae; |
} |
.x-tab-scroller-right { |
background-image: url(../images/gray/tabs/scroll-right.gif); |
border-color:#aeaeae; |
} |
/* Window */ |
.x-window-proxy { |
background:#e0e0e0; |
border-color:#b0b0b0; |
} |
.x-window-tl .x-window-header { |
color:#555; |
} |
.x-window-tc { |
background-image:url(../images/gray/window/top-bottom.png); |
} |
.x-window-tl { |
background-image:url(../images/gray/window/left-corners.png); |
} |
.x-window-tr { |
background-image:url(../images/gray/window/right-corners.png); |
} |
.x-window-bc { |
background-image:url(../images/gray/window/top-bottom.png); |
} |
.x-window-bl { |
background-image:url(../images/gray/window/left-corners.png); |
} |
.x-window-br { |
background-image:url(../images/gray/window/right-corners.png); |
} |
.x-window-mc { |
border:1px solid #d0d0d0; |
background:#e8e8e8; |
} |
.x-window-ml { |
background-image:url(../images/gray/window/left-right.png); |
} |
.x-window-mr { |
background-image:url(../images/gray/window/left-right.png); |
} |
.x-panel-ghost .x-window-tl { |
border-color:#d0d0d0; |
} |
.x-panel-collapsed .x-window-tl { |
border-color:#d0d0d0; |
} |
.x-window-plain .x-window-mc { |
background: #e8e8e8; |
border-right:1px solid #eee; |
border-bottom:1px solid #eee; |
border-top:1px solid #d0d0d0; |
border-left:1px solid #d0d0d0; |
} |
.x-window-plain .x-window-body { |
border-left:1px solid #eee; |
border-top:1px solid #eee; |
border-bottom:1px solid #d0d0d0; |
border-right:1px solid #d0d0d0; |
background:transparent !important; |
} |
body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc { |
background-color: #e4e4e4; |
} |
/* misc */ |
.x-html-editor-wrap { |
border-color:#d0d0d0; |
} |
/* Borders go last for specificity */ |
.x-panel-noborder .x-panel-body-noborder { |
border-width:0; |
} |
.x-panel-noborder .x-panel-header-noborder { |
border-width:0; |
border-bottom:1px solid #d0d0d0; |
} |
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { |
border-width:0; |
border-bottom:1px solid #d0d0d0; |
} |
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { |
border-width:0; |
border-top:1px solid #d0d0d0; |
} |
.x-window-noborder .x-window-mc { |
border-width:0; |
} |
.x-window-plain .x-window-body-noborder { |
border-width:0; |
} |
.x-tab-panel-noborder .x-tab-panel-body-noborder { |
border-width:0; |
} |
.x-tab-panel-noborder .x-tab-panel-header-noborder { |
border-top-width:0; |
border-left-width:0; |
border-right-width:0; |
} |
.x-tab-panel-noborder .x-tab-panel-footer-noborder { |
border-bottom-width:0; |
border-left-width:0; |
border-right-width:0; |
} |
.x-tab-panel-bbar-noborder .x-toolbar { |
border-width:0; |
border-top:1px solid #d0d0d0; |
} |
.x-tab-panel-tbar-noborder .x-toolbar { |
border-width:0; |
border-bottom:1px solid #d0d0d0; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/tree.css |
---|
New file |
0,0 → 1,250 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-tree .x-panel-body{ |
background-color:#fff; |
} |
.ext-strict .ext-ie .x-tree .x-panel-bwrap{ |
position:relative; |
overflow:hidden; |
} |
.x-tree-icon, .x-tree-ec-icon, .x-tree-elbow-line, .x-tree-elbow, .x-tree-elbow-end, .x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{ |
border: 0 none; |
height: 18px; |
margin: 0; |
padding: 0; |
vertical-align: top; |
width: 16px; |
background-repeat: no-repeat; |
} |
.x-tree-node-collapsed .x-tree-node-icon, .x-tree-node-expanded .x-tree-node-icon, .x-tree-node-leaf .x-tree-node-icon{ |
border: 0 none; |
height: 18px; |
margin: 0; |
padding: 0; |
vertical-align: top; |
width: 16px; |
background-position:center; |
background-repeat: no-repeat; |
} |
.ext-ie .x-tree-node-indent img, .ext-ie .x-tree-node-icon, .ext-ie .x-tree-ec-icon { |
vertical-align:middle !important; |
} |
/* some default icons for leaf/folder */ |
.x-tree-node-expanded .x-tree-node-icon{ |
background-image:url(../images/default/tree/folder-open.gif); |
} |
.x-tree-node-leaf .x-tree-node-icon{ |
background-image:url(../images/default/tree/leaf.gif); |
} |
.x-tree-node-collapsed .x-tree-node-icon{ |
background-image:url(../images/default/tree/folder.gif); |
} |
/* checkboxes */ |
.ext-ie input.x-tree-node-cb { |
width:15px; |
height:15px; |
} |
input.x-tree-node-cb { |
margin-left:1px; |
} |
.ext-ie input.x-tree-node-cb { |
margin-left:0; |
} |
.x-tree-noicon .x-tree-node-icon{ |
width:0; height:0; |
} |
/* loading icon */ |
.x-tree-node-loading .x-tree-node-icon{ |
background-image:url(../images/default/tree/loading.gif) !important; |
} |
.x-tree-node-loading a span{ |
font-style: italic; |
color:#444444; |
} |
.ext-ie .x-tree-node-el input { |
width:15px; |
height:15px; |
} |
/* Line styles */ |
.x-tree-lines .x-tree-elbow{ |
background-image:url(../images/default/tree/elbow.gif); |
} |
.x-tree-lines .x-tree-elbow-plus{ |
background-image:url(../images/default/tree/elbow-plus.gif); |
} |
.x-tree-lines .x-tree-elbow-minus{ |
background-image:url(../images/default/tree/elbow-minus.gif); |
} |
.x-tree-lines .x-tree-elbow-end{ |
background-image:url(../images/default/tree/elbow-end.gif); |
} |
.x-tree-lines .x-tree-elbow-end-plus{ |
background-image:url(../images/default/tree/elbow-end-plus.gif); |
} |
.x-tree-lines .x-tree-elbow-end-minus{ |
background-image:url(../images/default/tree/elbow-end-minus.gif); |
} |
.x-tree-lines .x-tree-elbow-line{ |
background-image:url(../images/default/tree/elbow-line.gif); |
} |
/* No line styles */ |
.x-tree-no-lines .x-tree-elbow{ |
background:transparent; |
} |
.x-tree-no-lines .x-tree-elbow-plus{ |
background-image:url(../images/default/tree/elbow-plus-nl.gif); |
} |
.x-tree-no-lines .x-tree-elbow-minus{ |
background-image:url(../images/default/tree/elbow-minus-nl.gif); |
} |
.x-tree-no-lines .x-tree-elbow-end{ |
background:transparent; |
} |
.x-tree-no-lines .x-tree-elbow-end-plus{ |
background-image:url(../images/default/tree/elbow-end-plus-nl.gif); |
} |
.x-tree-no-lines .x-tree-elbow-end-minus{ |
background-image:url(../images/default/tree/elbow-end-minus-nl.gif); |
} |
.x-tree-no-lines .x-tree-elbow-line{ |
background:transparent; |
} |
/* Arrows */ |
.x-tree-arrows .x-tree-elbow{ |
background:transparent; |
} |
.x-tree-arrows .x-tree-elbow-plus{ |
background:transparent url(../images/default/tree/arrows.gif) no-repeat 0 0; |
} |
.x-tree-arrows .x-tree-elbow-minus{ |
background:transparent url(../images/default/tree/arrows.gif) no-repeat -16px 0; |
} |
.x-tree-arrows .x-tree-elbow-end{ |
background:transparent; |
} |
.x-tree-arrows .x-tree-elbow-end-plus{ |
background:transparent url(../images/default/tree/arrows.gif) no-repeat 0 0; |
} |
.x-tree-arrows .x-tree-elbow-end-minus{ |
background:transparent url(../images/default/tree/arrows.gif) no-repeat -16px 0; |
} |
.x-tree-arrows .x-tree-elbow-line{ |
background:transparent; |
} |
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-plus{ |
background-position:-32px 0; |
} |
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-minus{ |
background-position:-48px 0; |
} |
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-plus{ |
background-position:-32px 0; |
} |
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-minus{ |
background-position:-48px 0; |
} |
.x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{ |
cursor:pointer; |
} |
.ext-ie ul.x-tree-node-ct{ |
font-size:0; |
line-height:0; |
zoom:1; |
} |
.x-tree-node{ |
color: black; |
font: normal 11px arial, tahoma, helvetica, sans-serif; |
white-space: nowrap; |
} |
.x-tree-node-el { |
line-height:18px; |
cursor:pointer; |
} |
.x-tree-node a, .x-dd-drag-ghost a{ |
text-decoration:none; |
color:black; |
-khtml-user-select:none; |
-moz-user-select:none; |
-kthml-user-focus:normal; |
-moz-user-focus:normal; |
-moz-outline: 0 none; |
outline:0 none; |
} |
.x-tree-node a span, .x-dd-drag-ghost a span{ |
text-decoration:none; |
color:black; |
padding:1px 3px 1px 2px; |
} |
.x-tree-node .x-tree-node-disabled a span{ |
color:gray !important; |
} |
.x-tree-node .x-tree-node-disabled .x-tree-node-icon{ |
-moz-opacity: 0.5; |
opacity:.5; |
filter: alpha(opacity=50); |
} |
.x-tree-node .x-tree-node-inline-icon{ |
background:transparent; |
} |
.x-tree-node a:hover, .x-dd-drag-ghost a:hover{ |
text-decoration:none; |
} |
.x-tree-node div.x-tree-drag-insert-below{ |
border-bottom:1px dotted #3366cc; |
} |
.x-tree-node div.x-tree-drag-insert-above{ |
border-top:1px dotted #3366cc; |
} |
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{ |
border-bottom:0 none; |
} |
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{ |
border-top:0 none; |
} |
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{ |
border-bottom:2px solid #3366cc; |
} |
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{ |
border-top:2px solid #3366cc; |
} |
.x-tree-node .x-tree-drag-append a span{ |
background:#dddddd; |
border:1px dotted gray; |
} |
.x-tree-node .x-tree-node-over { |
background-color: #eee; |
} |
.x-tree-node .x-tree-selected { |
background-color: #d9e8fb; |
} |
.x-dd-drag-ghost .x-tree-node-indent, .x-dd-drag-ghost .x-tree-ec-icon{ |
display:none !important; |
} |
.x-tree-drop-ok-append .x-dd-drop-icon{ |
background-image: url(../images/default/tree/drop-add.gif); |
} |
.x-tree-drop-ok-above .x-dd-drop-icon{ |
background-image: url(../images/default/tree/drop-over.gif); |
} |
.x-tree-drop-ok-below .x-dd-drop-icon{ |
background-image: url(../images/default/tree/drop-under.gif); |
} |
.x-tree-drop-ok-between .x-dd-drop-icon{ |
background-image: url(../images/default/tree/drop-between.gif); |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/panel.css |
---|
New file |
0,0 → 1,423 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-panel { |
border-style: solid; |
border-color: #99bbe8; |
border-width:0; |
} |
.x-panel-header { |
overflow:hidden; |
zoom:1; |
color:#15428b; |
font:bold 11px tahoma,arial,verdana,sans-serif; |
padding:5px 3px 4px 5px; |
border:1px solid #99bbe8; |
line-height: 15px; |
background: transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 -1px; |
} |
.x-panel-body { |
border:1px solid #99bbe8; |
border-top:0 none; |
overflow:hidden; |
background:white; |
position: relative; /* added for item scroll positioning */ |
} |
.x-panel-bbar .x-toolbar { |
border:1px solid #99bbe8; |
border-top:0 none; |
overflow:hidden; |
padding:2px; |
} |
.x-panel-tbar .x-toolbar { |
border:1px solid #99bbe8; |
border-top:0 none; |
overflow:hidden; |
padding:2px; |
} |
.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar { |
border-top:1px solid #99bbe8; |
border-bottom: 0 none; |
} |
.x-panel-body-noheader, .x-panel-mc .x-panel-body { |
border-top:1px solid #99bbe8; |
} |
.x-panel-header { |
overflow:hidden; |
zoom:1; |
} |
.x-panel-tl .x-panel-header { |
color:#15428b; |
font:bold 11px tahoma,arial,verdana,sans-serif; |
padding:5px 0 4px 0; |
border:0 none; |
background:transparent; |
} |
.x-panel-tl .x-panel-icon, .x-window-tl .x-panel-icon { |
padding-left:20px !important; |
background-repeat:no-repeat; |
background-position:0 4px; |
zoom:1; |
} |
.x-panel-inline-icon { |
width:16px; |
height:16px; |
background-repeat:no-repeat; |
background-position:0 0; |
vertical-align:middle; |
margin-right:4px; |
margin-top:-1px; |
margin-bottom:-1px; |
} |
.x-panel-tc { |
background: transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 0; |
overflow:hidden; |
} |
/* fix ie7 strict mode bug */ |
.ext-strict .ext-ie7 .x-panel-tc { |
overflow: visible; |
} |
.x-panel-tl { |
background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 0; |
padding-left:6px; |
zoom:1; |
border-bottom:1px solid #99bbe8; |
} |
.x-panel-tr { |
background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat right 0; |
zoom:1; |
padding-right:6px; |
} |
.x-panel-bc { |
background: transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 bottom; |
zoom:1; |
} |
.x-panel-bc .x-panel-footer { |
zoom:1; |
} |
.x-panel-bl { |
background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 bottom; |
padding-left:6px; |
zoom:1; |
} |
.x-panel-br { |
background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat right bottom; |
padding-right:6px; |
zoom:1; |
} |
.x-panel-mc { |
border:0 none; |
padding:0; |
margin:0; |
font: normal 11px tahoma,arial,helvetica,sans-serif; |
padding-top:6px; |
background:#dfe8f6; |
} |
.x-panel-mc .x-panel-body { |
background:transparent; |
border: 0 none; |
} |
.x-panel-ml { |
background: #fff url(../images/default/panel/left-right.gif) repeat-y 0 0; |
padding-left:6px; |
zoom:1; |
} |
.x-panel-mr { |
background: transparent url(../images/default/panel/left-right.gif) repeat-y right 0; |
padding-right:6px; |
zoom:1; |
} |
.x-panel-bc .x-panel-footer { |
padding-bottom:6px; |
} |
.x-panel-nofooter .x-panel-bc { |
height:6px; |
font-size:0; |
line-height:0; |
} |
.x-panel-bwrap { |
overflow:hidden; |
zoom:1; |
} |
.x-panel-body { |
overflow:hidden; |
zoom:1; |
} |
.x-panel-collapsed .x-resizable-handle{ |
display:none; |
} |
.ext-gecko .x-panel-animated div { |
overflow:hidden !important; |
} |
/* Plain */ |
.x-plain-body { |
overflow:hidden; |
} |
.x-plain-bbar .x-toolbar { |
overflow:hidden; |
padding:2px; |
} |
.x-plain-tbar .x-toolbar { |
overflow:hidden; |
padding:2px; |
} |
.x-plain-bwrap { |
overflow:hidden; |
zoom:1; |
} |
.x-plain { |
overflow:hidden; |
} |
/* Tools */ |
.x-tool { |
overflow:hidden; |
width:15px; |
height:15px; |
float:right; |
cursor:pointer; |
background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat; |
margin-left:2px; |
} |
/* expand / collapse tools */ |
.x-tool-toggle { |
background-position:0 -60px; |
} |
.x-tool-toggle-over { |
background-position:-15px -60px; |
} |
.x-panel-collapsed .x-tool-toggle { |
background-position:0 -75px; |
} |
.x-panel-collapsed .x-tool-toggle-over { |
background-position:-15px -75px; |
} |
.x-tool-close { |
background-position:0 -0; |
} |
.x-tool-close-over { |
background-position:-15px 0; |
} |
.x-tool-minimize { |
background-position:0 -15px; |
} |
.x-tool-minimize-over { |
background-position:-15px -15px; |
} |
.x-tool-maximize { |
background-position:0 -30px; |
} |
.x-tool-maximize-over { |
background-position:-15px -30px; |
} |
.x-tool-restore { |
background-position:0 -45px; |
} |
.x-tool-restore-over { |
background-position:-15px -45px; |
} |
.x-tool-gear { |
background-position:0 -90px; |
} |
.x-tool-gear-over { |
background-position:-15px -90px; |
} |
.x-tool-pin { |
background-position:0 -135px; |
} |
.x-tool-pin-over { |
background-position:-15px -135px; |
} |
.x-tool-unpin { |
background-position:0 -150px; |
} |
.x-tool-unpin-over { |
background-position:-15px -150px; |
} |
.x-tool-right { |
background-position:0 -165px; |
} |
.x-tool-right-over { |
background-position:-15px -165px; |
} |
.x-tool-left { |
background-position:0 -180px; |
} |
.x-tool-left-over { |
background-position:-15px -180px; |
} |
.x-tool-up { |
background-position:0 -210px; |
} |
.x-tool-up-over { |
background-position:-15px -210px; |
} |
.x-tool-down { |
background-position:0 -195px; |
} |
.x-tool-down-over { |
background-position:-15px -195px; |
} |
.x-tool-refresh { |
background-position:0 -225px; |
} |
.x-tool-refresh-over { |
background-position:-15px -225px; |
} |
.x-tool-minus { |
background-position:0 -255px; |
} |
.x-tool-minus-over { |
background-position:-15px -255px; |
} |
.x-tool-plus { |
background-position:0 -240px; |
} |
.x-tool-plus-over { |
background-position:-15px -240px; |
} |
.x-tool-search { |
background-position:0 -270px; |
} |
.x-tool-search-over { |
background-position:-15px -270px; |
} |
.x-tool-save { |
background-position:0 -285px; |
} |
.x-tool-save-over { |
background-position:-15px -285px; |
} |
.x-tool-help { |
background-position:0 -300px; |
} |
.x-tool-help-over { |
background-position:-15px -300px; |
} |
.x-tool-print { |
background-position:0 -315px; |
} |
.x-tool-print-over { |
background-position:-15px -315px; |
} |
/* Ghosting */ |
.x-panel-ghost { |
background:#cbddf3; |
z-index:12000; |
overflow:hidden; |
position:absolute; |
left:0;top:0; |
opacity:.65; |
-moz-opacity:.65; |
filter:alpha(opacity=65); |
} |
.x-panel-ghost ul { |
margin:0; |
padding:0; |
overflow:hidden; |
font-size:0; |
line-height:0; |
border:1px solid #99bbe8; |
border-top:0 none; |
display:block; |
} |
.x-panel-ghost * { |
cursor:move !important; |
} |
.x-panel-dd-spacer { |
border:2px dashed #99bbe8; |
} |
/* Buttons */ |
.x-panel-btns-ct { |
padding:5px; |
} |
.x-panel-btns-ct .x-btn{ |
float:right; |
clear:none; |
} |
.x-panel-btns-ct .x-panel-btns td { |
border:0; |
padding:0; |
} |
.x-panel-btns-ct .x-panel-btns-right table{ |
float:right; |
clear:none; |
} |
.x-panel-btns-ct .x-panel-btns-left table{ |
float:left; |
clear:none; |
} |
.x-panel-btns-ct .x-panel-btns-center{ |
text-align:center; /*ie*/ |
} |
.x-panel-btns-ct .x-panel-btns-center table{ |
margin:0 auto; /*everyone else*/ |
} |
.x-panel-btns-ct table td.x-panel-btn-td{ |
padding:3px; |
} |
.x-panel-btns-ct .x-btn-focus .x-btn-left{ |
background-position:0 -147px; |
} |
.x-panel-btns-ct .x-btn-focus .x-btn-right{ |
background-position:0 -168px; |
} |
.x-panel-btns-ct .x-btn-focus .x-btn-center{ |
background-position:0 -189px; |
} |
.x-panel-btns-ct .x-btn-over .x-btn-left{ |
background-position:0 -63px; |
} |
.x-panel-btns-ct .x-btn-over .x-btn-right{ |
background-position:0 -84px; |
} |
.x-panel-btns-ct .x-btn-over .x-btn-center{ |
background-position:0 -105px; |
} |
.x-panel-btns-ct .x-btn-click .x-btn-center{ |
background-position:0 -126px; |
} |
.x-panel-btns-ct .x-btn-click .x-btn-right{ |
background-position:0 -84px; |
} |
.x-panel-btns-ct .x-btn-click .x-btn-left{ |
background-position:0 -63px; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/combo.css |
---|
New file |
0,0 → 1,55 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-combo-list { |
border:1px solid #98c0f4; |
background:#ddecfe; |
zoom:1; |
overflow:hidden; |
} |
.x-combo-list-inner { |
overflow:auto; |
background:white; |
position:relative; /* for calculating scroll offsets */ |
zoom:1; |
overflow-x:hidden; |
} |
.x-combo-list-hd { |
font:bold 11px tahoma, arial, helvetica, sans-serif; |
color:#15428b; |
background-image: url(../images/default/layout/panel-title-light-bg.gif); |
border-bottom:1px solid #98c0f4; |
padding:3px; |
} |
.x-resizable-pinned .x-combo-list-inner { |
border-bottom:1px solid #98c0f4; |
} |
.x-combo-list-item { |
font:normal 12px tahoma, arial, helvetica, sans-serif; |
padding:2px; |
border:1px solid #fff; |
white-space: nowrap; |
overflow:hidden; |
text-overflow: ellipsis; |
} |
.x-combo-list .x-combo-selected{ |
border:1px dotted #a3bae9 !important; |
background:#DFE8F6; |
cursor:pointer; |
} |
.x-combo-noedit{ |
cursor:pointer; |
} |
.x-combo-list .x-toolbar { |
border-top:1px solid #98c0f4; |
border-bottom:0 none; |
} |
.x-combo-list-small .x-combo-list-item { |
font:normal 11px tahoma, arial, helvetica, sans-serif; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/dialog.css |
---|
New file |
0,0 → 1,61 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-window-dlg .x-window-body { |
border:0 none !important; |
padding:5px 10px; |
overflow:hidden !important; |
} |
.x-window-dlg .x-window-mc { |
border:0 none !important; |
} |
.x-window-dlg .ext-mb-text, |
.x-window-dlg .x-window-header-text { |
font-size:12px; |
} |
.x-window-dlg .ext-mb-input { |
margin-top:4px; |
width:95%; |
} |
.x-window-dlg .ext-mb-textarea { |
margin-top:4px; |
font:normal 12px tahoma,arial,helvetica,sans-serif; |
} |
.x-window-dlg .x-progress-wrap { |
margin-top:4px; |
} |
.ext-ie .x-window-dlg .x-progress-wrap { |
margin-top:6px; |
} |
.x-window-dlg .x-msg-box-wait { |
background: transparent url(../images/default/grid/loading.gif) no-repeat left; |
display:block; |
width:300px; |
padding-left:18px; |
line-height:18px; |
} |
.x-window-dlg .ext-mb-icon { |
float:left; |
width:47px; |
height:32px; |
} |
.ext-ie .x-window-dlg .ext-mb-icon { |
width:44px; /* 3px IE margin issue */ |
} |
.x-window-dlg .ext-mb-info { |
background:transparent url(../images/default/window/icon-info.gif) no-repeat top left; |
} |
.x-window-dlg .ext-mb-warning { |
background:transparent url(../images/default/window/icon-warning.gif) no-repeat top left; |
} |
.x-window-dlg .ext-mb-question { |
background:transparent url(../images/default/window/icon-question.gif) no-repeat top left; |
} |
.x-window-dlg .ext-mb-error { |
background:transparent url(../images/default/window/icon-error.gif) no-repeat top left; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/qtips.css |
---|
New file |
0,0 → 1,134 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-tip{ |
position: absolute; |
top: 0; |
left:0; |
visibility: hidden; |
z-index: 20000; |
border:0 none; |
} |
.x-tip .x-tip-close{ |
background-image: url(../images/default/qtip/close.gif); |
height: 15px; |
float:right; |
width: 15px; |
margin:0 0 2px 2px; |
cursor:pointer; |
display:none; |
} |
.x-tip .x-tip-tc { |
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -62px; |
padding-top:3px; |
overflow:hidden; |
zoom:1; |
} |
.x-tip .x-tip-tl { |
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 0; |
padding-left:6px; |
overflow:hidden; |
zoom:1; |
} |
.x-tip .x-tip-tr { |
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right 0; |
padding-right:6px; |
overflow:hidden; |
zoom:1; |
} |
.x-tip .x-tip-bc { |
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -121px; |
height:3px; |
overflow:hidden; |
} |
.x-tip .x-tip-bl { |
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -59px; |
padding-left:6px; |
zoom:1; |
} |
.x-tip .x-tip-br { |
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -59px; |
padding-right:6px; |
zoom:1; |
} |
.x-tip .x-tip-mc { |
border:0 none; |
font: normal 11px tahoma,arial,helvetica,sans-serif; |
} |
.x-tip .x-tip-ml { |
background: #fff url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -124px; |
padding-left:6px; |
zoom:1; |
} |
.x-tip .x-tip-mr { |
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -124px; |
padding-right:6px; |
zoom:1; |
} |
.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc { |
font-size:0; |
line-height:0; |
} |
.x-tip .x-tip-header-text { |
font: bold 11px tahoma,arial,helvetica,sans-serif; |
padding:0; |
margin:0 0 2px 0; |
color:#444; |
} |
.x-tip .x-tip-body { |
font: normal 11px tahoma,arial,helvetica,sans-serif; |
margin:0 !important; |
line-height:14px; |
color:#444; |
padding:0; |
} |
.x-tip .x-tip-body .loading-indicator { |
margin:0; |
} |
.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text { |
cursor:move; |
} |
.x-form-invalid-tip { |
} |
.x-form-invalid-tip .x-tip-tc { |
background: url(../images/default/form/error-tip-corners.gif) repeat-x 0 -12px; |
padding-top:6px; |
} |
.x-form-invalid-tip .x-tip-tl { |
background-image: url(../images/default/form/error-tip-corners.gif); |
} |
.x-form-invalid-tip .x-tip-tr { |
background-image: url(../images/default/form/error-tip-corners.gif); |
} |
.x-form-invalid-tip .x-tip-bc { |
background: url(../images/default/form/error-tip-corners.gif) repeat-x 0 -18px; |
height:6px; |
} |
.x-form-invalid-tip .x-tip-bl { |
background: url(../images/default/form/error-tip-corners.gif) no-repeat 0 -6px; |
} |
.x-form-invalid-tip .x-tip-br { |
background: url(../images/default/form/error-tip-corners.gif) no-repeat right -6px; |
} |
.x-form-invalid-tip .x-tip-ml { |
background-image: url(../images/default/form/error-tip-corners.gif); |
} |
.x-form-invalid-tip .x-tip-mr { |
background-image: url(../images/default/form/error-tip-corners.gif); |
} |
.x-form-invalid-tip .x-tip-body { |
padding:2px; |
} |
.x-form-invalid-tip .x-tip-body { |
padding-left:24px; |
background:transparent url(../images/default/form/exclamation.gif) no-repeat 2px 2px; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/borders.css |
---|
New file |
0,0 → 1,61 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-panel-noborder .x-panel-body-noborder { |
border-width:0; |
} |
.x-panel-noborder .x-panel-header-noborder { |
border-width:0; |
border-bottom:1px solid #99bbe8; |
} |
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar { |
border-width:0; |
border-bottom:1px solid #99bbe8; |
} |
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar { |
border-width:0; |
border-top:1px solid #99bbe8; |
} |
.x-window-noborder .x-window-mc { |
border-width:0; |
} |
.x-window-plain .x-window-body-noborder { |
border-width:0; |
} |
.x-tab-panel-noborder .x-tab-panel-body-noborder { |
border-width:0; |
} |
.x-tab-panel-noborder .x-tab-panel-header-noborder { |
border-top-width:0; |
border-left-width:0; |
border-right-width:0; |
} |
.x-tab-panel-noborder .x-tab-panel-footer-noborder { |
border-bottom-width:0; |
border-left-width:0; |
border-right-width:0; |
} |
.x-tab-panel-bbar-noborder .x-toolbar { |
border-width:0; |
border-top:1px solid #99bbe8; |
} |
.x-tab-panel-tbar-noborder .x-toolbar { |
border-width:0; |
border-bottom:1px solid #99bbe8; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/toolbar.css |
---|
New file |
0,0 → 1,163 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-toolbar{ |
border-color:#a9bfd3; |
border-style:solid; |
border-width:0 0 1px 0; |
display: block; |
padding:2px; |
background:#d0def0 url(../images/default/toolbar/bg.gif) repeat-x top left; |
position:relative; |
zoom:1; |
} |
.x-toolbar .x-item-disabled .x-btn-icon { |
opacity: .35; |
-moz-opacity: .35; |
filter: alpha(opacity=35); |
} |
.x-toolbar td { |
vertical-align:middle; |
} |
.mso .x-toolbar, .x-grid-mso .x-toolbar{ |
border: 0 none; |
background: url(../images/default/grid/mso-hd.gif); |
} |
.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{ |
white-space: nowrap; |
font:normal 11px tahoma, arial, helvetica, sans-serif; |
} |
.x-toolbar .x-item-disabled { |
color:gray; |
cursor:default; |
opacity:.6; |
-moz-opacity:.6; |
filter:alpha(opacity=60); |
} |
.x-toolbar .x-item-disabled * { |
color:gray; |
cursor:default; |
} |
.x-toolbar .x-btn-left{ |
background:none; |
} |
.x-toolbar .x-btn-right{ |
background:none; |
} |
.x-toolbar .x-btn-center{ |
background:none; |
padding:0 0; |
} |
.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{ |
padding-right:2px; |
} |
.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{ |
padding-right:0; |
} |
.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{ |
padding:0 2px; |
} |
.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button { |
width:12px; |
background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px; |
} |
.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button { |
width:12px; |
background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px; |
} |
.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button { |
background-position: 0 -47px; |
} |
.x-toolbar .x-btn-over .x-btn-left{ |
background: url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0; |
} |
.x-toolbar .x-btn-over .x-btn-right{ |
background: url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px; |
} |
.x-toolbar .x-btn-over .x-btn-center{ |
background: url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px; |
} |
.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{ |
background: url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px; |
} |
.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{ |
background: url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px; |
} |
.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{ |
background: url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px; |
} |
.x-toolbar .x-btn-with-menu .x-btn-center em{ |
padding-right:8px; |
} |
.x-toolbar .ytb-text{ |
padding:2px; |
} |
.x-toolbar .ytb-sep { |
background-image: url(../images/default/grid/grid-blue-split.gif); |
background-position: center; |
background-repeat: no-repeat; |
display: block; |
font-size: 1px; |
height: 16px; |
width:4px; |
overflow: hidden; |
cursor:default; |
margin: 0 2px 0; |
border:0; |
} |
.x-toolbar .ytb-spacer { |
width:2px; |
} |
/* Paging Toolbar */ |
.x-tbar-page-number{ |
width:24px; |
height:14px; |
} |
.x-tbar-page-first{ |
background-image: url(../images/default/grid/page-first.gif) !important; |
} |
.x-tbar-loading{ |
background-image: url(../images/default/grid/done.gif) !important; |
} |
.x-tbar-page-last{ |
background-image: url(../images/default/grid/page-last.gif) !important; |
} |
.x-tbar-page-next{ |
background-image: url(../images/default/grid/page-next.gif) !important; |
} |
.x-tbar-page-prev{ |
background-image: url(../images/default/grid/page-prev.gif) !important; |
} |
.x-item-disabled .x-tbar-loading{ |
background-image: url(../images/default/grid/loading.gif) !important; |
} |
.x-item-disabled .x-tbar-page-first{ |
background-image: url(../images/default/grid/page-first-disabled.gif) !important; |
} |
.x-item-disabled .x-tbar-page-last{ |
background-image: url(../images/default/grid/page-last-disabled.gif) !important; |
} |
.x-item-disabled .x-tbar-page-next{ |
background-image: url(../images/default/grid/page-next-disabled.gif) !important; |
} |
.x-item-disabled .x-tbar-page-prev{ |
background-image: url(../images/default/grid/page-prev-disabled.gif) !important; |
} |
.x-paging-info { |
position:absolute; |
top:5px; |
right: 8px; |
color:#444; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/reset-min.css |
---|
New file |
0,0 → 1,9 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/form.css |
---|
New file |
0,0 → 1,493 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
/* all fields */ |
.x-form-field{ |
margin: 0 0 0 0; |
font:normal 12px tahoma, arial, helvetica, sans-serif; |
} |
/* ---- text fields ---- */ |
.x-form-text, textarea.x-form-field{ |
padding:1px 3px; |
background:#fff url(../images/default/form/text-bg.gif) repeat-x 0 0; |
border:1px solid #B5B8C8; |
} |
textarea.x-form-field { |
padding:2px 3px; |
} |
.x-form-text { |
height:22px; |
line-height:18px; |
vertical-align:middle; |
} |
.ext-ie .x-form-text { |
margin:-1px 0; /* ie bogus margin bug */ |
height:22px; /* ie quirks */ |
line-height:18px; |
} |
.ext-ie textarea.x-form-field { |
margin:-1px 0; /* ie bogus margin bug */ |
} |
.ext-strict .x-form-text { |
height:18px; |
} |
.ext-safari .x-form-text { |
height:20px; /* safari always same size */ |
padding:0 3px; /* remove extra top/bottom padding */ |
} |
.ext-safari.ext-mac textarea.x-form-field { |
margin-bottom:-2px; /* another bogus margin bug, safari/mac only */ |
} |
.ext-gecko .x-form-text { |
padding-top:2px; /* FF won't center the text vertically */ |
padding-bottom:0; |
} |
textarea { |
resize: none; /* Disable browser resizable textarea */ |
} |
/* select boxes */ |
.x-form-select-one { |
height:20px; |
line-height:18px; |
vertical-align:middle; |
background-color:#fff; /* opera */ |
border: 1px solid #B5B8C8; |
} |
/* multi select boxes */ |
/* --- TODO --- */ |
/* checkboxes */ |
/* --- TODO --- */ |
/* radios */ |
/* --- TODO --- */ |
/* wrapped fields and triggers */ |
.x-form-field-wrap { |
position:relative; |
zoom:1; |
white-space: nowrap; |
} |
.x-editor .x-form-check-wrap { |
background:#fff; |
} |
.x-form-field-wrap .x-form-trigger{ |
width:17px; |
height:21px; |
border:0; |
background:transparent url(../images/default/form/trigger.gif) no-repeat 0 0; |
cursor:pointer; |
border-bottom: 1px solid #B5B8C8; |
position:absolute; |
top:0; |
} |
.ext-safari .x-form-field-wrap .x-form-trigger{ |
height:21px; /* safari doesn't allow height adjustments to the fields, so adjust trigger */ |
} |
.x-form-field-wrap .x-form-date-trigger{ |
background-image: url(../images/default/form/date-trigger.gif); |
cursor:pointer; |
} |
.x-form-field-wrap .x-form-clear-trigger{ |
background-image: url(../images/default/form/clear-trigger.gif); |
cursor:pointer; |
} |
.x-form-field-wrap .x-form-search-trigger{ |
background-image: url(../images/default/form/search-trigger.gif); |
cursor:pointer; |
} |
.ext-safari .x-form-field-wrap .x-form-trigger{ |
right:0; |
} |
.x-form-field-wrap .x-form-twin-triggers{ |
} |
.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{ |
position:static; |
top:auto; |
vertical-align:top; |
} |
.x-form-field-wrap .x-form-trigger-over{ |
background-position:-17px 0; |
} |
.x-form-field-wrap .x-form-trigger-click{ |
background-position:-34px 0; |
} |
.x-trigger-wrap-focus .x-form-trigger{ |
background-position:-51px 0; |
} |
.x-trigger-wrap-focus .x-form-trigger-over{ |
background-position:-68px 0; |
} |
.x-trigger-wrap-focus .x-form-trigger-click{ |
background-position:-85px 0; |
} |
.x-trigger-wrap-focus .x-form-trigger{ |
border-bottom: 1px solid #7eadd9; |
} |
.x-item-disabled .x-form-trigger-over{ |
background-position:0 0 !important; |
border-bottom: 1px solid #B5B8C8; |
} |
.x-item-disabled .x-form-trigger-click{ |
background-position:0 0 !important; |
border-bottom: 1px solid #B5B8C8; |
} |
/* field focus style */ |
.x-form-focus, textarea.x-form-focus{ |
border: 1px solid #7eadd9; |
} |
/* invalid fields */ |
.x-form-invalid, textarea.x-form-invalid{ |
background:#fff url(../images/default/grid/invalid_line.gif) repeat-x bottom; |
border: 1px solid #dd7870; |
} |
.ext-safari .x-form-invalid{ |
background-color:#ffeeee; |
border: 1px solid #ff7870; |
} |
/* editors */ |
.x-editor { |
visibility:hidden; |
padding:0; |
margin:0; |
} |
.x-form-check-wrap { |
line-height:18px; |
} |
.ext-ie .x-form-check-wrap input { |
width:15px; |
height:15px; |
} |
.x-editor .x-form-check-wrap { |
padding:3px; |
} |
.x-editor .x-form-checkbox { |
height:13px; |
} |
/* If you override the default field font above, you would need to change this font as well */ |
.x-form-grow-sizer { |
font:normal 12px tahoma, arial, helvetica, sans-serif; |
left: -10000px; |
padding: 8px 3px; |
position: absolute; |
visibility:hidden; |
top: -10000px; |
white-space: pre-wrap; |
white-space: -moz-pre-wrap; |
white-space: -pre-wrap; |
white-space: -o-pre-wrap; |
word-wrap: break-word; |
zoom:1; |
} |
.x-form-grow-sizer p { |
margin:0 !important; |
border:0 none !important; |
padding:0 !important; |
} |
/* Form Items CSS */ |
.x-form-item { |
font:normal 12px tahoma, arial, helvetica, sans-serif; |
display:block; |
margin-bottom:4px; |
} |
.x-form-item label { |
display:block; |
float:left; |
width:100px; |
padding:3px; |
padding-left:0; |
clear:left; |
z-index:2; |
position:relative; |
} |
.x-form-element { |
padding-left:105px; |
position:relative; |
} |
.x-form-invalid-msg { |
color:#ee0000; |
padding:2px; |
padding-left:18px; |
font:normal 11px tahoma, arial, helvetica, sans-serif; |
background: transparent url(../images/default/shared/warning.gif) no-repeat 0 2px; |
line-height:16px; |
width:200px; |
} |
.x-form-label-right label { |
text-align:right; |
} |
.x-form-label-top .x-form-item label { |
width:auto; |
float:none; |
clear:none; |
display:inline; |
margin-bottom:4px; |
position:static; |
} |
.x-form-label-top .x-form-element { |
padding-left:0; |
padding-top:4px; |
} |
.x-form-label-top .x-form-item { |
padding-bottom:4px; |
} |
.x-form-empty-field { |
color:gray; |
} |
/* Editor small font for grid, toolbar and tree */ |
.x-small-editor .x-form-field { |
font:normal 11px arial, tahoma, helvetica, sans-serif; |
} |
.x-small-editor .x-form-text { |
height:20px; |
line-height:16px; |
vertical-align:middle; |
} |
.ext-ie .x-small-editor .x-form-text { |
margin-top:-1px !important; /* ie bogus margin bug */ |
margin-bottom:-1px !important; |
height:20px !important; /* ie quirks */ |
line-height:16px !important; |
} |
.ext-strict .x-small-editor .x-form-text { |
height:16px !important; |
} |
.ext-safari .x-small-editor .x-form-field { |
/* safari text field will not size so needs bigger font */ |
font:normal 12px arial, tahoma, helvetica, sans-serif; |
} |
.ext-ie .x-small-editor .x-form-text { |
height:20px; |
line-height:16px; |
} |
.ext-border-box .x-small-editor .x-form-text { |
height:20px; |
} |
.x-small-editor .x-form-select-one { |
height:20px; |
line-height:16px; |
vertical-align:middle; |
} |
.x-small-editor .x-form-num-field { |
text-align:right; |
} |
.x-small-editor .x-form-field-wrap .x-form-trigger{ |
height:19px; |
} |
.x-form-clear { |
clear:both; |
height:0; |
overflow:hidden; |
line-height:0; |
font-size:0; |
} |
.x-form-clear-left { |
clear:left; |
height:0; |
overflow:hidden; |
line-height:0; |
font-size:0; |
} |
.x-form-cb-label { |
width:'auto' !important; |
float:none !important; |
clear:none !important; |
display:inline !important; |
margin-left:4px; |
} |
.x-form-column { |
float:left; |
padding:0; |
margin:0; |
width:48%; |
overflow:hidden; |
zoom:1; |
} |
/* buttons */ |
.x-form .x-form-btns-ct .x-btn{ |
float:right; |
clear:none; |
} |
.x-form .x-form-btns-ct .x-form-btns td { |
border:0; |
padding:0; |
} |
.x-form .x-form-btns-ct .x-form-btns-right table{ |
float:right; |
clear:none; |
} |
.x-form .x-form-btns-ct .x-form-btns-left table{ |
float:left; |
clear:none; |
} |
.x-form .x-form-btns-ct .x-form-btns-center{ |
text-align:center; /*ie*/ |
} |
.x-form .x-form-btns-ct .x-form-btns-center table{ |
margin:0 auto; /*everyone else*/ |
} |
.x-form .x-form-btns-ct table td.x-form-btn-td{ |
padding:3px; |
} |
.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{ |
background-position:0 -147px; |
} |
.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{ |
background-position:0 -168px; |
} |
.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{ |
background-position:0 -189px; |
} |
.x-form .x-form-btns-ct .x-btn-click .x-btn-center{ |
background-position:0 -126px; |
} |
.x-form .x-form-btns-ct .x-btn-click .x-btn-right{ |
background-position:0 -84px; |
} |
.x-form .x-form-btns-ct .x-btn-click .x-btn-left{ |
background-position:0 -63px; |
} |
.x-form-invalid-icon { |
width:16px; |
height:18px; |
visibility:hidden; |
position:absolute; |
left:0; |
top:0; |
display:block; |
background:transparent url(../images/default/form/exclamation.gif) no-repeat 0 2px; |
} |
/* fieldsets */ |
.x-fieldset { |
border:1px solid #B5B8C8; |
padding:10px; |
margin-bottom:10px; |
} |
.x-fieldset legend { |
font:bold 11px tahoma, arial, helvetica, sans-serif; |
color:#15428b; |
} |
.ext-ie .x-fieldset legend { |
margin-bottom:10px; |
} |
.ext-ie .x-fieldset { |
padding-top: 0; |
padding-bottom:10px; |
} |
.x-fieldset legend .x-tool-toggle { |
margin-right:3px; |
margin-left:0; |
float:left !important; |
} |
.x-fieldset legend input { |
margin-right:3px; |
float:left !important; |
height:13px; |
width:13px; |
} |
fieldset.x-panel-collapsed { |
padding-bottom:0 !important; |
border-width: 1px 0 0 0 !important; |
} |
fieldset.x-panel-collapsed .x-fieldset-bwrap { |
visibility:hidden; |
position:absolute; |
left:-1000px; |
top:-1000px; |
} |
.ext-ie .x-fieldset-bwrap { |
zoom:1; |
} |
.ext-ie td .x-form-text { |
position:relative; |
top:-1px; |
} |
.x-fieldset-noborder { |
border:0px none transparent; |
} |
.x-fieldset-noborder legend { |
margin-left:-3px; |
} |
/* IE legend positioing bug */ |
.ext-ie .x-fieldset-noborder legend { |
position: relative; |
margin-bottom:23px; |
} |
.ext-ie .x-fieldset-noborder legend span { |
position: absolute; |
left:-5px; |
} |
.ext-gecko .x-window-body .x-form-item { |
-moz-outline: none; |
overflow: auto; |
} |
.ext-gecko .x-form-item { |
-moz-outline: none; |
} |
.x-hide-label label.x-form-item-label { |
display:none; |
} |
.x-hide-label .x-form-element { |
padding-left: 0 !important; |
} |
.x-fieldset { |
overflow:hidden; |
} |
.x-fieldset-bwrap { |
overflow:hidden; |
zoom:1; |
} |
.x-fieldset-body { |
overflow:hidden; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/progress.css |
---|
New file |
0,0 → 1,43 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-progress-wrap { |
border:1px solid #6593cf; |
overflow:hidden; |
} |
.x-progress-inner { |
height:18px; |
background: #e0e8f3 url(../images/default/qtip/bg.gif) repeat-x; |
position:relative; |
} |
.x-progress-bar { |
height:18px; |
float:left; |
width:0; |
background:#9CBFEE url( ../images/default/progress/progress-bg.gif ) repeat-x left center; |
border-top:1px solid #D1E4FD; |
border-bottom:1px solid #7FA9E4; |
border-right:1px solid #7FA9E4; |
} |
.x-progress-text { |
font-size:11px; |
font-weight:bold; |
color:#fff; |
padding:1px 5px; |
overflow:hidden; |
position:absolute; |
left:0; |
text-align:center; |
} |
.x-progress-text-back { |
color:#396095; |
line-height:16px; |
} |
.ext-ie .x-progress-text-back { |
line-height:15px; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/menu.css |
---|
New file |
0,0 → 1,135 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-menu { |
border: 1px solid #718bb7; |
z-index: 15000; |
zoom: 1; |
background: #f0f0f0 url(../images/default/menu/menu.gif) repeat-y; |
padding: 2px; |
} |
.x-menu a { |
text-decoration: none !important; |
} |
.ext-ie .x-menu { |
zoom:1; |
overflow:hidden; |
} |
.x-menu-list{ |
background:transparent; |
border:0 none; |
} |
.x-menu li{ |
line-height:100%; |
} |
.x-menu li.x-menu-sep-li{ |
font-size:1px; |
line-height:1px; |
} |
.x-menu-list-item{ |
font:normal 11px tahoma,arial, sans-serif; |
white-space: nowrap; |
-moz-user-select: none; |
-khtml-user-select: none; |
display:block; |
padding:1px; |
} |
.x-menu-item-arrow{ |
background:transparent url(../images/default/menu/menu-parent.gif) no-repeat right; |
} |
.x-menu-sep { |
display:block; |
font-size:1px; |
line-height:1px; |
margin: 2px 3px; |
background-color:#e0e0e0; |
border-bottom:1px solid #fff; |
overflow:hidden; |
} |
.x-menu-focus { |
position:absolute; |
left:0; |
top:-5px; |
width:0; |
height:0; |
line-height:1px; |
} |
.x-menu a.x-menu-item { |
display:block; |
line-height:16px; |
padding:3px 21px 3px 3px; |
white-space: nowrap; |
text-decoration:none; |
color:#222; |
-moz-outline: 0 none; |
outline: 0 none; |
cursor:pointer; |
} |
.x-menu-item-active { |
background: #ebf3fd url(../images/default/menu/item-over.gif) repeat-x left bottom; |
border:1px solid #aaccf6; |
padding: 0; |
} |
.x-menu-item-active a.x-menu-item { |
color: #233d6d; |
} |
.x-menu-item-icon { |
border: 0 none; |
height: 16px; |
padding: 0; |
vertical-align: top; |
width: 16px; |
margin: 0 8px 0 0; |
background-position:center; |
} |
.x-menu-check-item .x-menu-item-icon{ |
background: transparent url(../images/default/menu/unchecked.gif) no-repeat center; |
} |
.x-menu-item-checked .x-menu-item-icon{ |
background-image:url(../images/default/menu/checked.gif); |
} |
.x-menu-group-item .x-menu-item-icon{ |
background: transparent; |
} |
.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{ |
background: transparent url(../images/default/menu/group-checked.gif) no-repeat center; |
} |
.x-menu-plain { |
background:#fff !important; |
} |
.x-menu-date-item{ |
padding:0; |
} |
.x-menu .x-color-palette, .x-menu .x-date-picker{ |
margin-left: 26px; |
margin-right:4px; |
} |
.x-menu .x-date-picker{ |
border:1px solid #a3bad9; |
margin-top:2px; |
margin-bottom:2px; |
} |
.x-menu-plain .x-color-palette, .x-menu-plain .x-date-picker{ |
margin: 0; |
border: 0 none; |
} |
.x-date-menu { |
padding:0 !important; |
} |
.x-cycle-menu .x-menu-item-checked { |
border:1px dotted #a3bae9 !important; |
background:#DFE8F6; |
padding:0; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/ext-all.css |
---|
New file |
0,0 → 1,883 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;} |
img,body,html{border:0;} |
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;} |
ol,ul{list-style:none;} |
caption,th{text-align:left;} |
h1,h2,h3,h4,h5,h6{font-size:100%;} |
q:before,q:after{content:'';} |
.ext-el-mask{z-index:20000;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:100%;height:100%;zoom:1;} |
.ext-el-mask-msg{z-index:20001;position:absolute;top:0;left:0;border:1px solid #6593cf;background:#c3daf9 url(../images/default/box/tb-blue.gif) repeat-x 0 -16px;padding:2px;} |
.ext-el-mask-msg div{padding:5px 10px 5px 10px;background:#eee;border:1px solid #a3bad9;color:#222;font:normal 11px tahoma,arial,helvetica,sans-serif;cursor:wait;} |
.ext-shim{position:absolute;visibility:hidden;left:0;top:0;overflow:hidden;} |
.ext-ie .ext-shim{filter:alpha(opacity=0);} |
.ext-ie6 .ext-shim{margin-left:5px;margin-top:3px;} |
.x-mask-loading div{padding:5px 10px 5px 25px;background:#fbfbfb url( '../images/default/grid/loading.gif' ) no-repeat 5px 5px;line-height:16px;} |
.x-hidden,.x-hide-offsets{position:absolute;left:-10000px;top:-10000px;visibility:hidden;} |
.x-hide-display{display:none!important;} |
.x-hide-visibility{visibility:hidden!important;} |
.x-masked{overflow:hidden!important;} |
.x-masked select,.x-masked object,.x-masked embed{visibility:hidden;} |
.x-layer{visibility:hidden;} |
.x-unselectable,.x-unselectable *{-moz-user-select:none;-khtml-user-select:none;} |
.x-repaint{zoom:1;background-color:transparent;-moz-outline:none;} |
.x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);} |
.x-item-disabled *{color:gray!important;cursor:default!important;} |
.x-splitbar-proxy{position:absolute;visibility:hidden;z-index:20001;background:#aaa;zoom:1;line-height:1px;font-size:1px;overflow:hidden;} |
.x-splitbar-h,.x-splitbar-proxy-h{cursor:e-resize;cursor:col-resize;} |
.x-splitbar-v,.x-splitbar-proxy-v{cursor:s-resize;cursor:row-resize;} |
.x-color-palette{width:150px;height:92px;cursor:pointer;} |
.x-color-palette a{border:1px solid #fff;float:left;padding:2px;text-decoration:none;-moz-outline:0 none;outline:0 none;cursor:pointer;} |
.x-color-palette a:hover,.x-color-palette a.x-color-palette-sel{border:1px solid #8BB8F3;background:#deecfd;} |
.x-color-palette em{display:block;border:1px solid #ACA899;} |
.x-color-palette em span{cursor:pointer;display:block;height:10px;line-height:10px;width:10px;} |
.x-ie-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;background:#777;zoom:1;} |
.x-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;} |
.x-shadow *{overflow:hidden;} |
.x-shadow *{padding:0;border:0;margin:0;clear:none;zoom:1;} |
.x-shadow .xstc,.x-shadow .xsbc{height:6px;float:left;} |
.x-shadow .xstl,.x-shadow .xstr,.x-shadow .xsbl,.x-shadow .xsbr{width:6px;height:6px;float:left;} |
.x-shadow .xsc{width:100%;} |
.x-shadow .xsml,.x-shadow .xsmr{width:6px;float:left;height:100%;} |
.x-shadow .xsmc{float:left;height:100%;background:transparent url( ../images/default/shadow-c.png );} |
.x-shadow .xst,.x-shadow .xsb{height:6px;overflow:hidden;width:100%;} |
.x-shadow .xsml{background:transparent url( ../images/default/shadow-lr.png ) repeat-y 0 0;} |
.x-shadow .xsmr{background:transparent url( ../images/default/shadow-lr.png ) repeat-y -6px 0;} |
.x-shadow .xstl{background:transparent url( ../images/default/shadow.png ) no-repeat 0 0;} |
.x-shadow .xstc{background:transparent url( ../images/default/shadow.png ) repeat-x 0 -30px;} |
.x-shadow .xstr{background:transparent url( ../images/default/shadow.png ) repeat-x 0 -18px;} |
.x-shadow .xsbl{background:transparent url( ../images/default/shadow.png ) no-repeat 0 -12px;} |
.x-shadow .xsbc{background:transparent url( ../images/default/shadow.png ) repeat-x 0 -36px;} |
.x-shadow .xsbr{background:transparent url( ../images/default/shadow.png ) repeat-x 0 -6px;} |
.loading-indicator{font-size:11px;background-image:url(../images/default/grid/loading.gif);background-repeat:no-repeat;background-position:left;padding-left:20px;line-height:16px;margin:3px;} |
.x-text-resize{position:absolute;left:-1000px;top:-1000px;visibility:hidden;zoom:1;} |
.x-drag-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background-image:url(../images/default/s.gif);z-index:20000;} |
.x-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;} |
.x-spotlight{z-index:8999;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:0;height:0;zoom:1;} |
.x-tab-panel{overflow:hidden;} |
.x-tab-panel-header,.x-tab-panel-footer{background:#deecfd;border:1px solid #669966;overflow:hidden;zoom:1;} |
.x-tab-panel-header{border:1px solid #669966;padding-bottom:2px;} |
.x-tab-panel-footer{border:1px solid #669966;padding-top:2px;} |
.x-tab-strip-wrap{width:100%;overflow:hidden;position:relative;zoom:1;} |
ul.x-tab-strip{display:block;width:5000px;zoom:1;} |
ul.x-tab-strip-top{padding-top:1px;background:url(../images/default/tabs/tab-strip-bg.gif) #cedff5 repeat-x bottom;border-bottom:1px solid #669966;} |
ul.x-tab-strip-bottom{padding-bottom:1px;background:url(../images/default/tabs/tab-strip-btm-bg.gif) #cedff5 repeat-x top;border-top:1px solid #669966;border-bottom:0 none;} |
.x-tab-panel-header-plain .x-tab-strip-top{background:transparent!important;padding-top:0!important;} |
.x-tab-panel-header-plain{background:transparent!important;border-width:0!important;padding-bottom:0!important;} |
.x-tab-panel-header-plain .x-tab-strip-spacer{border:1px solid #669966;border-top:0 none;height:2px;background:#deecfd;font-size:1px;line-height:1px;} |
.ext-border-box .x-tab-panel-header-plain .x-tab-strip-spacer{height:3px;} |
ul.x-tab-strip li{float:left;margin-left:2px;} |
ul.x-tab-strip li.x-tab-edge{float:left;margin:0!important;padding:0!important;border:0 none!important;font-size:1px!important;line-height:1px!important;overflow:hidden;zoom:1;background:transparent!important;width:1px;} |
.x-tab-strip a,.x-tab-strip span,.x-tab-strip em{display:block;} |
.x-tab-strip a{text-decoration:none!important;-moz-outline:none;outline:none;cursor:pointer;} |
.x-tab-strip-inner{overflow:hidden;text-overflow:ellipsis;} |
.x-tab-strip span.x-tab-strip-text{font:normal 11px tahoma,arial,helvetica;color:#ffffff;white-space:nowrap;cursor:pointer;padding:4px 0;} |
.x-tab-strip .x-tab-with-icon .x-tab-right{padding-left:6px;} |
.x-tab-strip .x-tab-with-icon span.x-tab-strip-text{padding-left:20px;background-position:0 3px;background-repeat:no-repeat;} |
.x-tab-strip-over span.x-tab-strip-text{color:#ffffff;} |
.x-tab-strip-active{cursor:default;} |
.x-tab-strip-active span.x-tab-strip-text{cursor:default;color:#4a6438;font-weight:bold;} |
.x-tab-strip-disabled .x-tabs-text{cursor:default;color:#aaa;} |
.x-tab-panel-body{overflow:hidden;} |
.x-tab-panel-bwrap{overflow:hidden;} |
.ext-ie .x-tab-strip .x-tab-right{position:relative;} |
.x-tab-strip-top .x-tab-strip-active .x-tab-right{margin-bottom:-1px;} |
.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-bottom:5px;} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{margin-top:-1px;} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-top:5px;} |
.x-tab-strip-top .x-tab-right{background:transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat 0 -51px;padding-left:10px;} |
.x-tab-strip-top .x-tab-left{background:transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat right -351px;padding-right:10px;} |
.x-tab-strip-top .x-tab-strip-inner{background:transparent url(../images/default/tabs/tabs-sprite.gif) repeat-x 0 -201px;} |
.x-tab-strip-top .x-tab-strip-over .x-tab-right{background-position:0 -101px;} |
.x-tab-strip-top .x-tab-strip-over .x-tab-left{background-position:right -401px;} |
.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner{background-position:0 -251px;} |
.x-tab-strip-top .x-tab-strip-active .x-tab-right{background-position:0 0;} |
.x-tab-strip-top .x-tab-strip-active .x-tab-left{background-position:right -301px;} |
.x-tab-strip-top .x-tab-strip-active .x-tab-strip-inner{background-position:0 -151px;} |
.x-tab-strip-bottom .x-tab-right{background:url(../images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;} |
.x-tab-strip-bottom .x-tab-left{background:url(../images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{background:url(../images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;} |
.x-tab-strip-bottom .x-tab-strip-active .x-tab-left{background:url(../images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;} |
.x-tab-strip-bottom .x-tab-left{padding:0 10px;} |
.x-tab-strip-bottom .x-tab-right{padding:0;} |
.x-tab-strip .x-tab-strip-close{display:none;} |
.x-tab-strip-closable{position:relative;} |
.x-tab-strip-closable .x-tab-left{padding-right:19px;} |
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../images/default/tabs/tab-close.gif);opacity:.6;-moz-opacity:.6;background-repeat:no-repeat;display:block;width:11px;height:11px;position:absolute;top:3px;right:3px;cursor:pointer;z-index:2;} |
.x-tab-strip .x-tab-strip-active a.x-tab-strip-close{opacity:.8;-moz-opacity:.8;} |
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{background-image:url(../images/default/tabs/tab-close.gif);opacity:1;-moz-opacity:1;} |
.x-tab-panel-body{border:1px solid #669966;background:#fff;} |
.x-tab-panel-body-top{border-top:0 none;} |
.x-tab-panel-body-bottom{border-bottom:0 none;} |
.x-tab-scroller-left{background:transparent url(../images/default/tabs/scroll-left.gif) no-repeat -18px 0;border-bottom:1px solid #669966;width:18px;position:absolute;left:0;top:0;z-index:10;cursor:pointer;} |
.x-tab-scroller-left-over{background-position:0 0;} |
.x-tab-scroller-left-disabled{background-position:-18px 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;} |
.x-tab-scroller-right{background:transparent url(../images/default/tabs/scroll-right.gif) no-repeat 0 0;border-bottom:1px solid #669966;width:18px;position:absolute;right:0;top:0;z-index:10;cursor:pointer;} |
.x-tab-scroller-right-over{background-position:-18px 0;} |
.x-tab-scroller-right-disabled{background-position:0 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;} |
.x-tab-scrolling .x-tab-strip-wrap{margin-left:18px;margin-right:18px;} |
.x-tab-scrolling{position:relative;} |
.x-tab-panel-bbar .x-toolbar{border:1px solid #669966;border-top:0 none;overflow:hidden;padding:2px;} |
.x-tab-panel-tbar .x-toolbar{border:1px solid #669966;border-top:0 none;overflow:hidden;padding:2px;} |
.x-border-layout-ct .x-tab-panel{background:white;} |
.x-form-field{margin:0;font:normal 12px tahoma,arial,helvetica,sans-serif;} |
.x-form-text,textarea.x-form-field{padding:1px 3px;background:#fff url(../images/default/form/text-bg.gif) repeat-x 0 0;border:1px solid #B5B8C8;} |
textarea.x-form-field{padding:2px 3px;} |
.x-form-text{height:22px;line-height:18px;vertical-align:middle;} |
.ext-ie .x-form-text{margin:-1px 0;height:22px;line-height:18px;} |
.ext-ie textarea.x-form-field{margin:-1px 0;} |
.ext-strict .x-form-text{height:18px;} |
.ext-safari .x-form-text{height:20px;padding:0 3px;} |
.ext-safari.ext-mac textarea.x-form-field{margin-bottom:-2px;} |
.ext-gecko .x-form-text{padding-top:2px;padding-bottom:0;} |
textarea{resize:none;} |
.x-form-select-one{height:20px;line-height:18px;vertical-align:middle;background-color:#fff;border:1px solid #B5B8C8;} |
.x-form-field-wrap{position:relative;zoom:1;white-space:nowrap;} |
.x-editor .x-form-check-wrap{background:#fff;} |
.x-form-field-wrap .x-form-trigger{width:17px;height:21px;border:0;background:transparent url(../images/default/form/trigger.gif) no-repeat 0 0;cursor:pointer;border-bottom:1px solid #B5B8C8;position:absolute;top:0;} |
.ext-safari .x-form-field-wrap .x-form-trigger{height:21px;} |
.x-form-field-wrap .x-form-date-trigger{background-image:url(../images/default/form/date-trigger.gif);cursor:pointer;} |
.x-form-field-wrap .x-form-clear-trigger{background-image:url(../images/default/form/clear-trigger.gif);cursor:pointer;} |
.x-form-field-wrap .x-form-search-trigger{background-image:url(../images/default/form/search-trigger.gif);cursor:pointer;} |
.ext-safari .x-form-field-wrap .x-form-trigger{right:0;} |
.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{position:static;top:auto;vertical-align:top;} |
.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;} |
.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;} |
.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;} |
.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;} |
.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;} |
.x-trigger-wrap-focus .x-form-trigger{border-bottom:1px solid #7eadd9;} |
.x-item-disabled .x-form-trigger-over{background-position:0 0!important;border-bottom:1px solid #B5B8C8;} |
.x-item-disabled .x-form-trigger-click{background-position:0 0!important;border-bottom:1px solid #B5B8C8;} |
.x-form-focus,textarea.x-form-focus{border:1px solid #7eadd9;} |
.x-form-invalid,textarea.x-form-invalid{background:#fff url(../images/default/grid/invalid_line.gif) repeat-x bottom;border:1px solid #dd7870;} |
.ext-safari .x-form-invalid{background-color:#fee;border:1px solid #ff7870;} |
.x-editor{visibility:hidden;padding:0;margin:0;} |
.x-form-check-wrap{line-height:18px;} |
.ext-ie .x-form-check-wrap input{width:15px;height:15px;} |
.x-editor .x-form-check-wrap{padding:3px;} |
.x-editor .x-form-checkbox{height:13px;} |
.x-form-grow-sizer{font:normal 12px tahoma,arial,helvetica,sans-serif;left:-10000px;padding:8px 3px;position:absolute;visibility:hidden;top:-10000px;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;zoom:1;} |
.x-form-grow-sizer p{margin:0!important;border:0 none!important;padding:0!important;} |
.x-form-item{font:normal 12px tahoma,arial,helvetica,sans-serif;display:block;margin-bottom:4px;} |
.x-form-item label{display:block;float:left;width:100px;padding:3px;padding-left:0;clear:left;z-index:2;position:relative;} |
.x-form-element{padding-left:105px;position:relative;} |
.x-form-invalid-msg{color:#e00;padding:2px;padding-left:18px;font:normal 11px tahoma,arial,helvetica,sans-serif;background:transparent url(../images/default/shared/warning.gif) no-repeat 0 2px;line-height:16px;width:200px;} |
.x-form-label-right label{text-align:right;} |
.x-form-label-top .x-form-item label{width:auto;float:none;clear:none;display:inline;margin-bottom:4px;position:static;} |
.x-form-label-top .x-form-element{padding-left:0;padding-top:4px;} |
.x-form-label-top .x-form-item{padding-bottom:4px;} |
.x-form-empty-field{color:gray;} |
.x-small-editor .x-form-field{font:normal 11px arial,tahoma,helvetica,sans-serif;} |
.x-small-editor .x-form-text{height:20px;line-height:16px;vertical-align:middle;} |
.ext-ie .x-small-editor .x-form-text{margin-top:-1px!important;margin-bottom:-1px!important;height:20px!important;line-height:16px!important;} |
.ext-strict .x-small-editor .x-form-text{height:16px!important;} |
.ext-safari .x-small-editor .x-form-field{font:normal 12px arial,tahoma,helvetica,sans-serif;} |
.ext-ie .x-small-editor .x-form-text{height:20px;line-height:16px;} |
.ext-border-box .x-small-editor .x-form-text{height:20px;} |
.x-small-editor .x-form-select-one{height:20px;line-height:16px;vertical-align:middle;} |
.x-small-editor .x-form-num-field{text-align:right;} |
.x-small-editor .x-form-field-wrap .x-form-trigger{height:19px;} |
.x-form-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;} |
.x-form-clear-left{clear:left;height:0;overflow:hidden;line-height:0;font-size:0;} |
.x-form-cb-label{width:'auto'!important;float:none!important;clear:none!important;display:inline!important;margin-left:4px;} |
.x-form-column{float:left;padding:0;margin:0;width:48%;overflow:hidden;zoom:1;} |
.x-form .x-form-btns-ct .x-btn{float:right;clear:none;} |
.x-form .x-form-btns-ct .x-form-btns td{border:0;padding:0;} |
.x-form .x-form-btns-ct .x-form-btns-right table{float:right;clear:none;} |
.x-form .x-form-btns-ct .x-form-btns-left table{float:left;clear:none;} |
.x-form .x-form-btns-ct .x-form-btns-center{text-align:center;} |
.x-form .x-form-btns-ct .x-form-btns-center table{margin:0 auto;} |
.x-form .x-form-btns-ct table td.x-form-btn-td{padding:3px;} |
.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;} |
.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;} |
.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;} |
.x-form .x-form-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;} |
.x-form .x-form-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;} |
.x-form .x-form-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;} |
.x-form-invalid-icon{width:16px;height:18px;visibility:hidden;position:absolute;left:0;top:0;display:block;background:transparent url(../images/default/form/exclamation.gif) no-repeat 0 2px;} |
.x-fieldset{border:1px solid #B5B8C8;padding:10px;margin-bottom:10px;} |
.x-fieldset legend{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;} |
.ext-ie .x-fieldset legend{margin-bottom:10px;} |
.ext-ie .x-fieldset{padding-top:0;padding-bottom:10px;} |
.x-fieldset legend .x-tool-toggle{margin-right:3px;margin-left:0;float:left!important;} |
.x-fieldset legend input{margin-right:3px;float:left!important;height:13px;width:13px;} |
fieldset.x-panel-collapsed{padding-bottom:0!important;border-width:1px 0 0 0!important;} |
fieldset.x-panel-collapsed .x-fieldset-bwrap{visibility:hidden;position:absolute;left:-1000px;top:-1000px;} |
.ext-ie .x-fieldset-bwrap{zoom:1;} |
.ext-ie td .x-form-text{position:relative;top:-1px;} |
.x-fieldset-noborder{border:0 none transparent;} |
.x-fieldset-noborder legend{margin-left:-3px;} |
.ext-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px;} |
.ext-ie .x-fieldset-noborder legend span{position:absolute;left:-5px;} |
.ext-gecko .x-window-body .x-form-item{-moz-outline:none;overflow:auto;} |
.ext-gecko .x-form-item{-moz-outline:none;} |
.x-hide-label label.x-form-item-label{display:none;} |
.x-hide-label .x-form-element{padding-left:0!important;} |
.x-fieldset{overflow:hidden;} |
.x-fieldset-bwrap{overflow:hidden;zoom:1;} |
.x-fieldset-body{overflow:hidden;} |
.x-btn{font:normal 11px tahoma,verdana,helvetica;cursor:pointer;white-space:nowrap;} |
.x-btn button{border:0 none;background:transparent;font:normal 11px tahoma,verdana,helvetica;padding-left:3px;padding-right:3px;cursor:pointer;margin:0;overflow:visible;width:auto;-moz-outline:0 none;outline:0 none;} |
* html .ext-ie .x-btn button{width:1px;} |
.ext-gecko .x-btn button{padding-left:0;padding-right:0;} |
.ext-ie .x-btn button{padding-top:2px;} |
.x-btn-icon .x-btn-center .x-btn-text{background-position:center;background-repeat:no-repeat;height:16px;width:16px;cursor:pointer;white-space:nowrap;padding:0;} |
.x-btn-icon .x-btn-center{padding:1px;} |
.x-btn em{font-style:normal;font-weight:normal;} |
.x-btn-text-icon .x-btn-center .x-btn-text{background-position:0 2px;background-repeat:no-repeat;padding-left:18px;padding-top:3px;padding-bottom:2px;padding-right:0;} |
.x-btn-left,.x-btn-right{font-size:1px;line-height:1px;} |
.x-btn-left{width:3px;height:21px;background:url(../images/default/button/btn-sprite.gif) no-repeat 0 0;} |
.x-btn-right{width:3px;height:21px;background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -21px;} |
.x-btn-left i,.x-btn-right i{display:block;width:3px;overflow:hidden;font-size:1px;line-height:1px;} |
.x-btn-center{background:url(../images/default/button/btn-sprite.gif) repeat-x 0 -42px;vertical-align:middle;text-align:center;padding:0 5px;cursor:pointer;white-space:nowrap;} |
.x-btn-over .x-btn-left{background-position:0 -63px;} |
.x-btn-over .x-btn-right{background-position:0 -84px;} |
.x-btn-over .x-btn-center{background-position:0 -105px;} |
.x-btn-click .x-btn-center,.x-btn-menu-active .x-btn-center{background-position:0 -126px;} |
.x-btn-disabled *{color:gray!important;cursor:default!important;} |
.x-btn-menu-text-wrap .x-btn-center{padding:0 3px;} |
.ext-gecko .x-btn-menu-text-wrap .x-btn-center{padding:0 1px;} |
.x-btn-menu-arrow-wrap .x-btn-center{padding:0;} |
.x-btn-menu-arrow-wrap .x-btn-center button{width:12px!important;height:21px;padding:0!important;display:block;background:transparent url(../images/default/button/btn-arrow.gif) no-repeat left 3px;} |
.x-btn-with-menu .x-btn-center{padding-right:2px!important;} |
.x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 0;padding-right:10px;} |
.x-btn-text-icon .x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 3px;padding-right:10px;} |
.x-btn-pressed .x-btn-left{background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -63px;} |
.x-btn-pressed .x-btn-right{background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -84px;} |
.x-btn-pressed .x-btn-center{background:url(../images/default/button/btn-sprite.gif) repeat-x 0 -126px;} |
.x-toolbar{border-color:#a9bfd3;border-style:solid;border-width:0 0 1px 0;display:block;padding:2px;background:#d0def0 url(../images/default/toolbar/bg.gif) repeat-x top left;position:relative;zoom:1;} |
.x-toolbar .x-item-disabled .x-btn-icon{opacity:.35;-moz-opacity:.35;filter:alpha(opacity=35);} |
.x-toolbar td{vertical-align:middle;} |
.mso .x-toolbar,.x-grid-mso .x-toolbar{border:0 none;background:url(../images/default/grid/mso-hd.gif);} |
.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 11px tahoma,arial,helvetica,sans-serif;} |
.x-toolbar .x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);} |
.x-toolbar .x-item-disabled *{color:gray;cursor:default;} |
.x-toolbar .x-btn-left{background:none;} |
.x-toolbar .x-btn-right{background:none;} |
.x-toolbar .x-btn-center{background:none;padding:0;} |
.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:2px;} |
.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:0;} |
.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{padding:0 2px;} |
.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;} |
.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;} |
.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button{background-position:0 -47px;} |
.x-toolbar .x-btn-over .x-btn-left{background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0;} |
.x-toolbar .x-btn-over .x-btn-right{background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px;} |
.x-toolbar .x-btn-over .x-btn-center{background:url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px;} |
.x-toolbar .x-btn-click .x-btn-left,.x-toolbar .x-btn-pressed .x-btn-left,.x-toolbar .x-btn-menu-active .x-btn-left{background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px;} |
.x-toolbar .x-btn-click .x-btn-right,.x-toolbar .x-btn-pressed .x-btn-right,.x-toolbar .x-btn-menu-active .x-btn-right{background:url(../images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px;} |
.x-toolbar .x-btn-click .x-btn-center,.x-toolbar .x-btn-pressed .x-btn-center,.x-toolbar .x-btn-menu-active .x-btn-center{background:url(../images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px;} |
.x-toolbar .x-btn-with-menu .x-btn-center em{padding-right:8px;} |
.x-toolbar .ytb-text{padding:2px;} |
.x-toolbar .ytb-sep{background-image:url(../images/default/grid/grid-blue-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px 0;border:0;} |
.x-toolbar .ytb-spacer{width:2px;} |
.x-tbar-page-number{width:24px;height:14px;} |
.x-tbar-page-first{background-image:url(../images/default/grid/page-first.gif)!important;} |
.x-tbar-loading{background-image:url(../images/default/grid/done.gif)!important;} |
.x-tbar-page-last{background-image:url(../images/default/grid/page-last.gif)!important;} |
.x-tbar-page-next{background-image:url(../images/default/grid/page-next.gif)!important;} |
.x-tbar-page-prev{background-image:url(../images/default/grid/page-prev.gif)!important;} |
.x-item-disabled .x-tbar-loading{background-image:url(../images/default/grid/loading.gif)!important;} |
.x-item-disabled .x-tbar-page-first{background-image:url(../images/default/grid/page-first-disabled.gif)!important;} |
.x-item-disabled .x-tbar-page-last{background-image:url(../images/default/grid/page-last-disabled.gif)!important;} |
.x-item-disabled .x-tbar-page-next{background-image:url(../images/default/grid/page-next-disabled.gif)!important;} |
.x-item-disabled .x-tbar-page-prev{background-image:url(../images/default/grid/page-prev-disabled.gif)!important;} |
.x-paging-info{position:absolute;top:5px;right:8px;color:#444;} |
.x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;background:white;filter:alpha(opacity=0);opacity:0;zoom:1;} |
.x-resizable-handle-east{width:6px;cursor:e-resize;right:0;top:0;height:100%;} |
.ext-ie .x-resizable-handle-east{margin-right:-1px;} |
.x-resizable-handle-south{width:100%;cursor:s-resize;left:0;bottom:0;height:6px;} |
.ext-ie .x-resizable-handle-south{margin-bottom:-1px;} |
.x-resizable-handle-west{width:6px;cursor:w-resize;left:0;top:0;height:100%;} |
.x-resizable-handle-north{width:100%;cursor:n-resize;left:0;top:0;height:6px;} |
.x-resizable-handle-southeast{width:6px;cursor:se-resize;right:0;bottom:0;height:6px;z-index:101;} |
.x-resizable-handle-northwest{width:6px;cursor:nw-resize;left:0;top:0;height:6px;z-index:101;} |
.x-resizable-handle-northeast{width:6px;cursor:ne-resize;right:0;top:0;height:6px;z-index:101;} |
.x-resizable-handle-southwest{width:6px;cursor:sw-resize;left:0;bottom:0;height:6px;z-index:101;} |
.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1;} |
.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{background:url(../images/default/sizer/e-handle.gif);background-position:left;} |
.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{background:url(../images/default/sizer/e-handle.gif);background-position:left;} |
.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{background:url(../images/default/sizer/s-handle.gif);background-position:top;} |
.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background:url(../images/default/sizer/s-handle.gif);background-position:top;} |
.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background:url(../images/default/sizer/se-handle.gif);background-position:top left;} |
.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background:url(../images/default/sizer/nw-handle.gif);background-position:bottom right;} |
.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background:url(../images/default/sizer/ne-handle.gif);background-position:bottom left;} |
.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background:url(../images/default/sizer/sw-handle.gif);background-position:top right;} |
.x-resizable-proxy{border:1px dashed #3b5a82;position:absolute;overflow:hidden;display:none;left:0;top:0;z-index:50000;} |
.x-resizable-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background:white;z-index:200000;-moz-opacity:0;opacity:0;filter:alpha(opacity=0);} |
.x-grid3{position:relative;overflow:hidden;background-color:#fff;} |
.x-grid-panel .x-panel-body{overflow:hidden!important;} |
.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #669966;} |
.ext-ie .x-grid3 table,.ext-safari .x-grid3 table{table-layout:fixed;} |
.x-grid3-viewport{overflow:hidden;} |
.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 11px arial,tahoma,helvetica,sans-serif;-moz-outline:none;-moz-user-focus:normal;} |
.x-grid3-row td,.x-grid3-summary-row td{line-height:13px;vertical-align:top;padding-left:1px;padding-right:1px;-moz-user-select:none;} |
.x-grid3-hd-row td{line-height:15px;vertical-align:middle;border-left:1px solid #eee;border-right:1px solid #d0d0d0;} |
.x-grid3-hd-row .x-grid3-marker-hd{padding:3px;} |
.x-grid3-row .x-grid3-marker{padding:3px;} |
.x-grid3-cell-inner,.x-grid3-hd-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:3px 3px 3px 5px;white-space:nowrap;} |
.x-grid3-hd-inner{position:relative;cursor:inherit;padding:4px 3px 4px 5px;} |
.x-grid3-row-body{white-space:normal;} |
.x-grid3-body-cell{-moz-outline:0 none;outline:0 none;} |
.ext-ie .x-grid3-cell-inner,.ext-ie .x-grid3-hd-inner{width:100%;} |
.ext-strict .x-grid3-cell-inner,.ext-strict .x-grid3-hd-inner{width:auto;} |
.x-grid-row-loading{background:#fff url(../images/default/shared/loading-balls.gif) no-repeat center center;} |
.x-grid-page{overflow:hidden;} |
.x-grid3-row{cursor:default;border:1px solid #ededed;border-top-color:#fff;width:100%;} |
.x-grid3-row-alt{background-color:#fafafa;} |
.x-grid3-row-over{border:1px solid #ddd;background:#efefef url(../images/default/grid/row-over.gif) repeat-x left top;} |
.x-grid3-resize-proxy{width:1px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;} |
.x-grid3-resize-marker{width:1px;left:0;background-color:#777;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;} |
.x-grid3-focus{position:absolute;top:0;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;} |
.x-grid3-header{background:#f9f9f9 url(../images/default/grid/grid3-hrow.gif) repeat-x 0 bottom;cursor:default;zoom:1;padding:1px 0 0 0;} |
.x-grid3-header-pop{border-left:1px solid #d0d0d0;float:right;clear:none;} |
.x-grid3-header-pop-inner{border-left:1px solid #eee;width:14px;height:19px;background:transparent url(../images/default/grid/hd-pop.gif) no-repeat center center;} |
.ext-ie .x-grid3-header-pop-inner{width:15px;} |
.ext-strict .x-grid3-header-pop-inner{width:14px;} |
.x-grid3-header-inner{overflow:hidden;zoom:1;float:left;} |
.x-grid3-header-offset{padding-left:1px;width:10000px;} |
td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #aaccf6;border-right:1px solid #aaccf6;} |
td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{background:#ebf3fd url(../images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;} |
.x-grid3-sort-icon{background-repeat:no-repeat;display:none;height:4px;width:13px;margin-left:3px;vertical-align:middle;} |
.sort-asc .x-grid3-sort-icon{background-image:url(../images/default/grid/sort_asc.gif);display:inline;} |
.sort-desc .x-grid3-sort-icon{background-image:url(../images/default/grid/sort_desc.gif);display:inline;} |
.ext-strict .ext-ie .x-grid3-header-inner{position:relative;} |
.ext-strict .ext-ie6 .x-grid3-hd{position:relative;} |
.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;} |
.x-grid3-body{zoom:1;} |
.x-grid3-scroller{overflow:auto;zoom:1;position:relative;} |
.x-grid3-cell-text,.x-grid3-hd-text{display:block;padding:3px 5px 3px 5px;-moz-user-select:none;-khtml-user-select:none;color:black;} |
.x-grid3-split{background-image:url(../images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;cursor:e-resize;cursor:col-resize;display:block;font-size:1px;height:16px;overflow:hidden;position:absolute;top:2px;width:6px;z-index:3;} |
.x-grid3-hd-text{color:#15428b;} |
.x-dd-drag-proxy .x-grid3-hd-inner{background:#ebf3fd url(../images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;width:120px;padding:3px;border:1px solid #aaccf6;overflow:hidden;} |
.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:1px;font-size:1px;overflow:hidden;visibility:hidden;z-index:20000;} |
.col-move-top{background:transparent url(../images/default/grid/col-move-top.gif) no-repeat left top;} |
.col-move-bottom{background:transparent url(../images/default/grid/col-move-bottom.gif) no-repeat left top;} |
.x-grid3-row-selected{background:#DFE8F6!important;border:1px dotted #a3bae9;} |
.x-grid3-cell-selected{background-color:#B8CFEE!important;color:black;} |
.x-grid3-cell-selected span{color:black!important;} |
.x-grid3-cell-selected .x-grid3-cell-text{color:black;} |
.x-grid3-locked td.x-grid3-row-marker,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{background:#ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x 0 bottom!important;vertical-align:middle!important;color:black;padding:0;border-top:1px solid white;border-bottom:none!important;border-right:1px solid #6fa0df!important;text-align:center;} |
.x-grid3-locked td.x-grid3-row-marker div,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{padding:0 4px;color:#15428b!important;text-align:center;} |
.x-grid3-dirty-cell{background:transparent url(../images/default/grid/dirty.gif) no-repeat 0 0;} |
.x-grid3-topbar,.x-grid3-bottombar{font:normal 11px arial,tahoma,helvetica,sans-serif;overflow:hidden;display:none;zoom:1;position:relative;} |
.x-grid3-topbar .x-toolbar{border-right:0 none;} |
.x-grid3-bottombar .x-toolbar{border-right:0 none;border-bottom:0 none;border-top:1px solid #a9bfd3;} |
.x-props-grid .x-grid3-cell{padding:1px;} |
.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y -16px!important;padding-left:12px;color:black!important;} |
.x-props-grid .x-grid3-body .x-grid3-td-name{padding:1px;padding-right:0;background:white!important;border:0 none;border-right:1px solid #eee;} |
.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../images/default/grid/hmenu-asc.gif);} |
.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../images/default/grid/hmenu-desc.gif);} |
.xg-hmenu-lock .x-menu-item-icon{background-image:url(../images/default/grid/hmenu-lock.gif);} |
.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../images/default/grid/hmenu-unlock.gif);} |
.x-grid3-col-dd{border:0 none;padding:0;background:transparent;} |
.x-dd-drag-ghost .x-grid3-dd-wrap{padding:1px 3px 3px 1px;} |
.x-grid3-hd{-moz-user-select:none;} |
.x-grid3-hd-btn{display:none;position:absolute;width:14px;background:#c3daf9 url(../images/default/grid/grid3-hd-btn.gif) no-repeat left center;right:0;top:0;z-index:2;cursor:pointer;} |
.x-grid3-hd-over .x-grid3-hd-btn,.x-grid3-hd-menu-open .x-grid3-hd-btn{display:block;} |
a.x-grid3-hd-btn:hover{background-position:-14px center;} |
.x-grid3-body .x-grid3-td-expander{background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right;} |
.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner{padding:0!important;height:100%;} |
.x-grid3-row-expander{width:100%;height:18px;background-position:4px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/grid/row-expand-sprite.gif);} |
.x-grid3-row-collapsed .x-grid3-row-expander{background-position:4px 2px;} |
.x-grid3-row-expanded .x-grid3-row-expander{background-position:-21px 2px;} |
.x-grid3-row-collapsed .x-grid3-row-body{display:none!important;} |
.x-grid3-row-expanded .x-grid3-row-body{display:block!important;} |
.x-grid3-body .x-grid3-td-checker{background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right;} |
.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner,.x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner{padding:0!important;height:100%;} |
.x-grid3-row-checker,.x-grid3-hd-checker{width:100%;height:18px;background-position:2px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/grid/row-check-sprite.gif);} |
.x-grid3-row .x-grid3-row-checker{background-position:2px 2px;} |
.x-grid3-row-selected .x-grid3-row-checker,.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 2px;} |
.x-grid3-hd-checker{background-position:2px 3px;} |
.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 3px;} |
.x-grid3-body .x-grid3-td-numberer{background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right;} |
.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{padding:3px 5px 0 0!important;text-align:right;color:#444;} |
.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{background:transparent url(../images/default/grid/grid3-special-col-sel-bg.gif) repeat-y right;} |
.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner{padding:1px 0 0 0!important;} |
.x-grid3-check-col{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/menu/unchecked.gif);} |
.x-grid3-check-col-on{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../images/default/menu/checked.gif);} |
.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1;} |
.x-grid-group-hd{border-bottom:2px solid #669966;cursor:pointer;padding-top:6px;} |
.x-grid-group-hd div{background:transparent url(../images/default/grid/group-expand-sprite.gif) no-repeat 3px -47px;padding:4px 4px 4px 17px;color:#3764a0;font:bold 11px tahoma,arial,helvetica,sans-serif;} |
.x-grid-group-collapsed .x-grid-group-hd div{background-position:3px 3px;} |
.x-grid-group-collapsed .x-grid-group-body{display:none;} |
.x-group-by-icon{background-image:url(../images/default/grid/group-by.gif);} |
.x-cols-icon{background-image:url(../images/default/grid/columns.gif);} |
.x-show-groups-icon{background-image:url(../images/default/grid/group-by.gif);} |
.ext-ie .x-grid3 .x-editor .x-form-text{position:relative;top:-1px;} |
.ext-ie .x-props-grid .x-editor .x-form-text{position:static;top:0;} |
.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif;} |
.ext-ie7 .x-grid-panel .x-panel-bbar{position:relative;} |
.x-dd-drag-proxy{position:absolute;left:0;top:0;visibility:hidden;z-index:15000;} |
.x-dd-drag-ghost{color:black;font:normal 11px arial,helvetica,sans-serif;-moz-opacity:0.85;opacity:.85;filter:alpha(opacity=85);border-top:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:3px;padding-left:20px;background-color:white;white-space:nowrap;} |
.x-dd-drag-repair .x-dd-drag-ghost{-moz-opacity:0.4;opacity:.4;filter:alpha(opacity=40);border:0 none;padding:0;background-color:transparent;} |
.x-dd-drag-repair .x-dd-drop-icon{visibility:hidden;} |
.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1;} |
.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../images/default/dd/drop-no.gif);} |
.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../images/default/dd/drop-yes.gif);} |
.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../images/default/dd/drop-add.gif);} |
.x-view-selector{position:absolute;left:0;top:0;width:0;background:#c3daf9;border:1px dotted #39b;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);zoom:1;} |
.x-tree .x-panel-body{background-color:#fff;} |
.ext-strict .ext-ie .x-tree .x-panel-bwrap{position:relative;overflow:hidden;} |
.x-tree-icon,.x-tree-ec-icon,.x-tree-elbow-line,.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-repeat:no-repeat;} |
.x-tree-node-collapsed .x-tree-node-icon,.x-tree-node-expanded .x-tree-node-icon,.x-tree-node-leaf .x-tree-node-icon{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-position:center;background-repeat:no-repeat;} |
.ext-ie .x-tree-node-indent img,.ext-ie .x-tree-node-icon,.ext-ie .x-tree-ec-icon{vertical-align:middle!important;} |
.x-tree-node-expanded .x-tree-node-icon{background-image:url(../images/default/tree/folder-open.gif);} |
.x-tree-node-leaf .x-tree-node-icon{background-image:url(../images/default/tree/leaf.gif);} |
.x-tree-node-collapsed .x-tree-node-icon{background-image:url(../images/default/tree/folder.gif);} |
.ext-ie input.x-tree-node-cb{width:15px;height:15px;} |
input.x-tree-node-cb{margin-left:1px;} |
.ext-ie input.x-tree-node-cb{margin-left:0;} |
.x-tree-noicon .x-tree-node-icon{width:0;height:0;} |
.x-tree-node-loading .x-tree-node-icon{background-image:url(../images/default/tree/loading.gif)!important;} |
.x-tree-node-loading a span{font-style:italic;color:#444;} |
.ext-ie .x-tree-node-el input{width:15px;height:15px;} |
.x-tree-lines .x-tree-elbow{background-image:url(../images/default/tree/elbow.gif);} |
.x-tree-lines .x-tree-elbow-plus{background-image:url(../images/default/tree/elbow-plus.gif);} |
.x-tree-lines .x-tree-elbow-minus{background-image:url(../images/default/tree/elbow-minus.gif);} |
.x-tree-lines .x-tree-elbow-end{background-image:url(../images/default/tree/elbow-end.gif);} |
.x-tree-lines .x-tree-elbow-end-plus{background-image:url(../images/default/tree/elbow-end-plus.gif);} |
.x-tree-lines .x-tree-elbow-end-minus{background-image:url(../images/default/tree/elbow-end-minus.gif);} |
.x-tree-lines .x-tree-elbow-line{background-image:url(../images/default/tree/elbow-line.gif);} |
.x-tree-no-lines .x-tree-elbow{background:transparent;} |
.x-tree-no-lines .x-tree-elbow-plus{background-image:url(../images/default/tree/elbow-plus-nl.gif);} |
.x-tree-no-lines .x-tree-elbow-minus{background-image:url(../images/default/tree/elbow-minus-nl.gif);} |
.x-tree-no-lines .x-tree-elbow-end{background:transparent;} |
.x-tree-no-lines .x-tree-elbow-end-plus{background-image:url(../images/default/tree/elbow-end-plus-nl.gif);} |
.x-tree-no-lines .x-tree-elbow-end-minus{background-image:url(../images/default/tree/elbow-end-minus-nl.gif);} |
.x-tree-no-lines .x-tree-elbow-line{background:transparent;} |
.x-tree-arrows .x-tree-elbow{background:transparent;} |
.x-tree-arrows .x-tree-elbow-plus{background:transparent url(../images/default/tree/arrows.gif) no-repeat 0 0;} |
.x-tree-arrows .x-tree-elbow-minus{background:transparent url(../images/default/tree/arrows.gif) no-repeat -16px 0;} |
.x-tree-arrows .x-tree-elbow-end{background:transparent;} |
.x-tree-arrows .x-tree-elbow-end-plus{background:transparent url(../images/default/tree/arrows.gif) no-repeat 0 0;} |
.x-tree-arrows .x-tree-elbow-end-minus{background:transparent url(../images/default/tree/arrows.gif) no-repeat -16px 0;} |
.x-tree-arrows .x-tree-elbow-line{background:transparent;} |
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-plus{background-position:-32px 0;} |
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-minus{background-position:-48px 0;} |
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-plus{background-position:-32px 0;} |
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-minus{background-position:-48px 0;} |
.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer;} |
.ext-ie ul.x-tree-node-ct{font-size:0;line-height:0;zoom:1;} |
.x-tree-node{color:black;font:normal 11px arial,tahoma,helvetica,sans-serif;white-space:nowrap;} |
.x-tree-node-el{line-height:18px;cursor:pointer;} |
.x-tree-node a,.x-dd-drag-ghost a{text-decoration:none;color:black;-khtml-user-select:none;-moz-user-select:none;-kthml-user-focus:normal;-moz-user-focus:normal;-moz-outline:0 none;outline:0 none;} |
.x-tree-node a span,.x-dd-drag-ghost a span{text-decoration:none;color:black;padding:1px 3px 1px 2px;} |
.x-tree-node .x-tree-node-disabled a span{color:gray!important;} |
.x-tree-node .x-tree-node-disabled .x-tree-node-icon{-moz-opacity:0.5;opacity:.5;filter:alpha(opacity=50);} |
.x-tree-node .x-tree-node-inline-icon{background:transparent;} |
.x-tree-node a:hover,.x-dd-drag-ghost a:hover{text-decoration:none;} |
.x-tree-node div.x-tree-drag-insert-below{border-bottom:1px dotted #36c;} |
.x-tree-node div.x-tree-drag-insert-above{border-top:1px dotted #36c;} |
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{border-bottom:0 none;} |
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{border-top:0 none;} |
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #36c;} |
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #36c;} |
.x-tree-node .x-tree-drag-append a span{background:#ddd;border:1px dotted gray;} |
.x-tree-node .x-tree-node-over{background-color:#eee;} |
.x-tree-node .x-tree-selected{background-color:#d9e8fb;} |
.x-dd-drag-ghost .x-tree-node-indent,.x-dd-drag-ghost .x-tree-ec-icon{display:none!important;} |
.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/default/tree/drop-add.gif);} |
.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/default/tree/drop-over.gif);} |
.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/default/tree/drop-under.gif);} |
.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/default/tree/drop-between.gif);} |
.x-date-picker{border:1px solid #1b376c;border-top:0 none;background:#fff;position:relative;} |
.x-date-picker a{-moz-outline:0 none;outline:0 none;} |
.x-date-inner,.x-date-inner td,.x-date-inner th{border-collapse:separate;} |
.x-date-middle,.x-date-left,.x-date-right{background:url(../images/default/shared/hd-sprite.gif) repeat-x 0 -83px;color:#FFF;font:bold 11px "sans serif",tahoma,verdana,helvetica;overflow:hidden;} |
.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{background:transparent!important;vertical-align:middle;} |
.x-date-middle .x-btn .x-btn-text{color:#fff;} |
.x-date-middle .x-btn-with-menu .x-btn-center em{background:transparent url(../images/default/toolbar/btn-arrow-light.gif) no-repeat right 0;} |
.x-date-right,.x-date-left{width:18px;} |
.x-date-right{text-align:right;} |
.x-date-middle{padding-top:2px;padding-bottom:2px;} |
.x-date-right a,.x-date-left a{display:block;width:16px;height:16px;background-position:center;background-repeat:no-repeat;cursor:pointer;-moz-opacity:0.6;opacity:.6;filter:alpha(opacity=60);} |
.x-date-right a:hover,.x-date-left a:hover{-moz-opacity:1;opacity:1;filter:alpha(opacity=100);} |
.x-date-right a{background-image:url(../images/default/shared/right-btn.gif);margin-right:2px;text-decoration:none!important;} |
.x-date-left a{background-image:url(../images/default/shared/left-btn.gif);margin-left:2px;text-decoration:none!important;} |
table.x-date-inner{width:100%;table-layout:fixed;} |
.x-date-inner th{width:25px;} |
.x-date-inner th{background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;text-align:right!important;border-bottom:1px solid #a3bad9;font:normal 10px arial,helvetica,tahoma,sans-serif;color:#233d6d;cursor:default;padding:0;border-collapse:separate;} |
.x-date-inner th span{display:block;padding:2px;padding-right:7px;} |
.x-date-inner td{border:1px solid #fff;text-align:right;padding:0;} |
.x-date-inner a{padding:2px 5px;display:block;font:normal 11px arial,helvetica,tahoma,sans-serif;text-decoration:none;color:black;text-align:right;zoom:1;} |
.x-date-inner .x-date-active{cursor:pointer;color:black;} |
.x-date-inner .x-date-selected a{background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #669966;padding:1px 4px;} |
.x-date-inner .x-date-today a{border:1px solid darkred;padding:1px 4px;} |
.x-date-inner .x-date-selected span{font-weight:bold;} |
.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a{color:#aaa;text-decoration:none!important;} |
.x-date-bottom{padding:4px;border-top:1px solid #a3bad9;background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;} |
.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{text-decoration:none!important;color:black;background:#ddecfe;} |
.x-date-inner .x-date-disabled a{cursor:default;background:#eee;color:#bbb;} |
.x-date-mmenu{background:#eee!important;} |
.x-date-mmenu .x-menu-item{font-size:10px;padding:1px 24px 1px 4px;white-space:nowrap;color:#000;} |
.x-date-mmenu .x-menu-item .x-menu-item-icon{width:10px;height:10px;margin-right:5px;background-position:center -4px!important;} |
.x-date-mp{position:absolute;left:0;top:0;background:white;display:none;} |
.x-date-mp td{padding:2px;font:normal 11px arial,helvetica,tahoma,sans-serif;} |
td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn{border:0 none;text-align:center;vertical-align:middle;width:25%;} |
.x-date-mp-ok{margin-right:3px;} |
.x-date-mp-btns button{text-decoration:none;text-align:center;text-decoration:none!important;background:#083772;color:white;border:1px solid;border-color:#36c #005 #005 #36c;padding:1px 3px 1px;font:normal 11px arial,helvetica,tahoma,sans-serif;cursor:pointer;} |
.x-date-mp-btns{background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;} |
.x-date-mp-btns td{border-top:1px solid #c5d2df;text-align:center;} |
td.x-date-mp-month a,td.x-date-mp-year a{display:block;padding:2px 4px;text-decoration:none;text-align:center;color:#15428b;} |
td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{color:#15428b;text-decoration:none;cursor:pointer;background:#ddecfe;} |
td.x-date-mp-sel a{padding:1px 3px;background:#dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #669966;} |
.x-date-mp-ybtn a{overflow:hidden;width:15px;height:15px;cursor:pointer;background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat;display:block;margin:0 auto;} |
.x-date-mp-ybtn a.x-date-mp-next{background-position:0 -120px;} |
.x-date-mp-ybtn a.x-date-mp-next:hover{background-position:-15px -120px;} |
.x-date-mp-ybtn a.x-date-mp-prev{background-position:0 -105px;} |
.x-date-mp-ybtn a.x-date-mp-prev:hover{background-position:-15px -105px;} |
.x-date-mp-ybtn{text-align:center;} |
td.x-date-mp-sep{border-right:1px solid #c5d2df;} |
.x-tip{position:absolute;top:0;left:0;visibility:hidden;z-index:20000;border:0 none;} |
.x-tip .x-tip-close{background-image:url(../images/default/qtip/close.gif);height:15px;float:right;width:15px;margin:0 0 2px 2px;cursor:pointer;display:none;} |
.x-tip .x-tip-tc{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -62px;padding-top:3px;overflow:hidden;zoom:1;} |
.x-tip .x-tip-tl{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 0;padding-left:6px;overflow:hidden;zoom:1;} |
.x-tip .x-tip-tr{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right 0;padding-right:6px;overflow:hidden;zoom:1;} |
.x-tip .x-tip-bc{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -121px;height:3px;overflow:hidden;} |
.x-tip .x-tip-bl{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -59px;padding-left:6px;zoom:1;} |
.x-tip .x-tip-br{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -59px;padding-right:6px;zoom:1;} |
.x-tip .x-tip-mc{border:0 none;font:normal 11px tahoma,arial,helvetica,sans-serif;} |
.x-tip .x-tip-ml{background:#fff url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -124px;padding-left:6px;zoom:1;} |
.x-tip .x-tip-mr{background:transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -124px;padding-right:6px;zoom:1;} |
.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc{font-size:0;line-height:0;} |
.x-tip .x-tip-header-text{font:bold 11px tahoma,arial,helvetica,sans-serif;padding:0;margin:0 0 2px 0;color:#444;} |
.x-tip .x-tip-body{font:normal 11px tahoma,arial,helvetica,sans-serif;margin:0!important;line-height:14px;color:#444;padding:0;} |
.x-tip .x-tip-body .loading-indicator{margin:0;} |
.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text{cursor:move;} |
.x-form-invalid-tip .x-tip-tc{background:url(../images/default/form/error-tip-corners.gif) repeat-x 0 -12px;padding-top:6px;} |
.x-form-invalid-tip .x-tip-tl{background-image:url(../images/default/form/error-tip-corners.gif);} |
.x-form-invalid-tip .x-tip-tr{background-image:url(../images/default/form/error-tip-corners.gif);} |
.x-form-invalid-tip .x-tip-bc{background:url(../images/default/form/error-tip-corners.gif) repeat-x 0 -18px;height:6px;} |
.x-form-invalid-tip .x-tip-bl{background:url(../images/default/form/error-tip-corners.gif) no-repeat 0 -6px;} |
.x-form-invalid-tip .x-tip-br{background:url(../images/default/form/error-tip-corners.gif) no-repeat right -6px;} |
.x-form-invalid-tip .x-tip-ml{background-image:url(../images/default/form/error-tip-corners.gif);} |
.x-form-invalid-tip .x-tip-mr{background-image:url(../images/default/form/error-tip-corners.gif);} |
.x-form-invalid-tip .x-tip-body{padding:2px;} |
.x-form-invalid-tip .x-tip-body{padding-left:24px;background:transparent url(../images/default/form/exclamation.gif) no-repeat 2px 2px;} |
.x-menu{border:1px solid #718bb7;z-index:15000;zoom:1;background:#f0f0f0 url(../images/default/menu/menu.gif) repeat-y;padding:2px;} |
.x-menu a{text-decoration:none!important;} |
.ext-ie .x-menu{zoom:1;overflow:hidden;} |
.x-menu-list{background:transparent;border:0 none;} |
.x-menu li{line-height:100%;} |
.x-menu li.x-menu-sep-li{font-size:1px;line-height:1px;} |
.x-menu-list-item{font:normal 11px tahoma,arial,sans-serif;white-space:nowrap;-moz-user-select:none;-khtml-user-select:none;display:block;padding:1px;} |
.x-menu-item-arrow{background:transparent url(../images/default/menu/menu-parent.gif) no-repeat right;} |
.x-menu-sep{display:block;font-size:1px;line-height:1px;margin:2px 3px;background-color:#e0e0e0;border-bottom:1px solid #fff;overflow:hidden;} |
.x-menu-focus{position:absolute;left:0;top:-5px;width:0;height:0;line-height:1px;} |
.x-menu a.x-menu-item{display:block;line-height:16px;padding:3px 21px 3px 3px;white-space:nowrap;text-decoration:none;color:#222;-moz-outline:0 none;outline:0 none;cursor:pointer;} |
.x-menu-item-active{background:#ebf3fd url(../images/default/menu/item-over.gif) repeat-x left bottom;border:1px solid #aaccf6;padding:0;} |
.x-menu-item-active a.x-menu-item{color:#233d6d;} |
.x-menu-item-icon{border:0 none;height:16px;padding:0;vertical-align:top;width:16px;margin:0 8px 0 0;background-position:center;} |
.x-menu-check-item .x-menu-item-icon{background:transparent url(../images/default/menu/unchecked.gif) no-repeat center;} |
.x-menu-item-checked .x-menu-item-icon{background-image:url(../images/default/menu/checked.gif);} |
.x-menu-group-item .x-menu-item-icon{background:transparent;} |
.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background:transparent url(../images/default/menu/group-checked.gif) no-repeat center;} |
.x-menu-plain{background:#fff!important;} |
.x-menu-date-item{padding:0;} |
.x-menu .x-color-palette,.x-menu .x-date-picker{margin-left:26px;margin-right:4px;} |
.x-menu .x-date-picker{border:1px solid #a3bad9;margin-top:2px;margin-bottom:2px;} |
.x-menu-plain .x-color-palette,.x-menu-plain .x-date-picker{margin:0;border:0 none;} |
.x-date-menu{padding:0!important;} |
.x-cycle-menu .x-menu-item-checked{border:1px dotted #a3bae9!important;background:#DFE8F6;padding:0;} |
.x-box-tl{background:transparent url(../images/default/box/corners.gif) no-repeat 0 0;zoom:1;} |
.x-box-tc{height:8px;background:transparent url(../images/default/box/tb.gif) repeat-x 0 0;overflow:hidden;} |
.x-box-tr{background:transparent url(../images/default/box/corners.gif) no-repeat right -8px;} |
.x-box-ml{background:transparent url(../images/default/box/l.gif) repeat-y 0;padding-left:4px;overflow:hidden;zoom:1;} |
.x-box-mc{background:#eee url(../images/default/box/tb.gif) repeat-x 0 -16px;padding:4px 10px;font-family:"Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;color:#393939;font-size:12px;} |
.x-box-mc h3{font-size:14px;font-weight:bold;margin:0 0 4px 0;zoom:1;} |
.x-box-mr{background:transparent url(../images/default/box/r.gif) repeat-y right;padding-right:4px;overflow:hidden;} |
.x-box-bl{background:transparent url(../images/default/box/corners.gif) no-repeat 0 -16px;zoom:1;} |
.x-box-bc{background:transparent url(../images/default/box/tb.gif) repeat-x 0 -8px;height:8px;overflow:hidden;} |
.x-box-br{background:transparent url(../images/default/box/corners.gif) no-repeat right -24px;} |
.x-box-tl,.x-box-bl{padding-left:8px;overflow:hidden;} |
.x-box-tr,.x-box-br{padding-right:8px;overflow:hidden;} |
.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr{background-image:url(../images/default/box/corners-blue.gif);} |
.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../images/default/box/tb-blue.gif);} |
.x-box-blue .x-box-mc{background-color:#c3daf9;} |
.x-box-blue .x-box-mc h3{color:#17385b;} |
.x-box-blue .x-box-ml{background-image:url(../images/default/box/l-blue.gif);} |
.x-box-blue .x-box-mr{background-image:url(../images/default/box/r-blue.gif);} |
#x-debug-browser .x-tree .x-tree-node a span{color:#222297;font-size:11px;padding-top:2px;font-family:"monotype","courier new",sans-serif;line-height:18px;} |
#x-debug-browser .x-tree a i{color:#FF4545;font-style:normal;} |
#x-debug-browser .x-tree a em{color:#999;} |
#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background:#c3daf9;} |
#x-debug-browser .x-tool-toggle{background-position:0 -75px;} |
#x-debug-browser .x-tool-toggle-over{background-position:-15px -75px;} |
#x-debug-browser.x-panel-collapsed .x-tool-toggle{background-position:0 -60px;} |
#x-debug-browser.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -60px;} |
.x-combo-list{border:1px solid #98c0f4;background:#ddecfe;zoom:1;overflow:hidden;} |
.x-combo-list-inner{overflow:auto;background:white;position:relative;zoom:1;overflow-x:hidden;} |
.x-combo-list-hd{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;background-image:url(../images/default/layout/panel-title-light-bg.gif);border-bottom:1px solid #98c0f4;padding:3px;} |
.x-resizable-pinned .x-combo-list-inner{border-bottom:1px solid #98c0f4;} |
.x-combo-list-item{font:normal 12px tahoma,arial,helvetica,sans-serif;padding:2px;border:1px solid #fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} |
.x-combo-list .x-combo-selected{border:1px dotted #a3bae9!important;background:#DFE8F6;cursor:pointer;} |
.x-combo-noedit{cursor:pointer;} |
.x-combo-list .x-toolbar{border-top:1px solid #98c0f4;border-bottom:0 none;} |
.x-combo-list-small .x-combo-list-item{font:normal 11px tahoma,arial,helvetica,sans-serif;} |
.x-panel{border-style:solid;border-color:#669966;border-width:0;} |
.x-panel-header{overflow:hidden;zoom:1;color:#ffffff;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 3px 4px 5px;border:1px solid #669966;line-height:15px;background:transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 -1px;} |
.x-panel-body{border:1px solid #669966;border-top:0 none;overflow:hidden;background:white;position:relative;} |
.x-panel-bbar .x-toolbar{border:1px solid #669966;border-top:0 none;overflow:hidden;padding:2px;} |
.x-panel-tbar .x-toolbar{border:1px solid #669966;border-top:0 none;overflow:hidden;padding:2px;} |
.x-panel-tbar-noheader .x-toolbar,.x-panel-mc .x-panel-tbar .x-toolbar{border-top:1px solid #669966;border-bottom:0 none;} |
.x-panel-body-noheader,.x-panel-mc .x-panel-body{border-top:1px solid #669966;} |
.x-panel-header{overflow:hidden;zoom:1;} |
.x-panel-tl .x-panel-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;border:0 none;background:transparent;} |
.x-panel-tl .x-panel-icon,.x-window-tl .x-panel-icon{padding-left:20px!important;background-repeat:no-repeat;background-position:0 4px;zoom:1;} |
.x-panel-inline-icon{width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;margin-right:4px;margin-top:-1px;margin-bottom:-1px;} |
.x-panel-tc{background:transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 0;overflow:hidden;} |
.ext-strict .ext-ie7 .x-panel-tc{overflow:visible;} |
.x-panel-tl{background:transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 0;padding-left:6px;zoom:1;border-bottom:1px solid #669966;} |
.x-panel-tr{background:transparent url(../images/default/panel/corners-sprite.gif) no-repeat right 0;zoom:1;padding-right:6px;} |
.x-panel-bc{background:transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 bottom;zoom:1;} |
.x-panel-bc .x-panel-footer{zoom:1;} |
.x-panel-bl{background:transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 bottom;padding-left:6px;zoom:1;} |
.x-panel-br{background:transparent url(../images/default/panel/corners-sprite.gif) no-repeat right bottom;padding-right:6px;zoom:1;} |
.x-panel-mc{border:0 none;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;padding-top:6px;background:#dfe8f6;} |
.x-panel-mc .x-panel-body{background:transparent;border:0 none;} |
.x-panel-ml{background:#fff url(../images/default/panel/left-right.gif) repeat-y 0 0;padding-left:6px;zoom:1;} |
.x-panel-mr{background:transparent url(../images/default/panel/left-right.gif) repeat-y right 0;padding-right:6px;zoom:1;} |
.x-panel-bc .x-panel-footer{padding-bottom:6px;} |
.x-panel-nofooter .x-panel-bc{height:6px;font-size:0;line-height:0;} |
.x-panel-bwrap{overflow:hidden;zoom:1;} |
.x-panel-body{overflow:hidden;zoom:1;} |
.x-panel-collapsed .x-resizable-handle{display:none;} |
.ext-gecko .x-panel-animated div{overflow:hidden!important;} |
.x-plain-body{overflow:hidden;} |
.x-plain-bbar .x-toolbar{overflow:hidden;padding:2px;} |
.x-plain-tbar .x-toolbar{overflow:hidden;padding:2px;} |
.x-plain-bwrap{overflow:hidden;zoom:1;} |
.x-plain{overflow:hidden;} |
.x-tool{overflow:hidden;width:15px;height:15px;float:right;cursor:pointer;background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat;margin-left:2px;} |
.x-tool-toggle{background-position:0 -60px;} |
.x-tool-toggle-over{background-position:-15px -60px;} |
.x-panel-collapsed .x-tool-toggle{background-position:0 -75px;} |
.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -75px;} |
.x-tool-close{background-position:0 -0;} |
.x-tool-close-over{background-position:-15px 0;} |
.x-tool-minimize{background-position:0 -15px;} |
.x-tool-minimize-over{background-position:-15px -15px;} |
.x-tool-maximize{background-position:0 -30px;} |
.x-tool-maximize-over{background-position:-15px -30px;} |
.x-tool-restore{background-position:0 -45px;} |
.x-tool-restore-over{background-position:-15px -45px;} |
.x-tool-gear{background-position:0 -90px;} |
.x-tool-gear-over{background-position:-15px -90px;} |
.x-tool-pin{background-position:0 -135px;} |
.x-tool-pin-over{background-position:-15px -135px;} |
.x-tool-unpin{background-position:0 -150px;} |
.x-tool-unpin-over{background-position:-15px -150px;} |
.x-tool-right{background-position:0 -165px;} |
.x-tool-right-over{background-position:-15px -165px;} |
.x-tool-left{background-position:0 -180px;} |
.x-tool-left-over{background-position:-15px -180px;} |
.x-tool-up{background-position:0 -210px;} |
.x-tool-up-over{background-position:-15px -210px;} |
.x-tool-down{background-position:0 -195px;} |
.x-tool-down-over{background-position:-15px -195px;} |
.x-tool-refresh{background-position:0 -225px;} |
.x-tool-refresh-over{background-position:-15px -225px;} |
.x-tool-minus{background-position:0 -255px;} |
.x-tool-minus-over{background-position:-15px -255px;} |
.x-tool-plus{background-position:0 -240px;} |
.x-tool-plus-over{background-position:-15px -240px;} |
.x-tool-search{background-position:0 -270px;} |
.x-tool-search-over{background-position:-15px -270px;} |
.x-tool-save{background-position:0 -285px;} |
.x-tool-save-over{background-position:-15px -285px;} |
.x-tool-help{background-position:0 -300px;} |
.x-tool-help-over{background-position:-15px -300px;} |
.x-tool-print{background-position:0 -315px;} |
.x-tool-print-over{background-position:-15px -315px;} |
.x-panel-ghost{background:#cbddf3;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;opacity:.65;-moz-opacity:.65;filter:alpha(opacity=65);} |
.x-panel-ghost ul{margin:0;padding:0;overflow:hidden;font-size:0;line-height:0;border:1px solid #669966;border-top:0 none;display:block;} |
.x-panel-ghost *{cursor:move!important;} |
.x-panel-dd-spacer{border:2px dashed #669966;} |
.x-panel-btns-ct{padding:5px;} |
.x-panel-btns-ct .x-btn{float:right;clear:none;} |
.x-panel-btns-ct .x-panel-btns td{border:0;padding:0;} |
.x-panel-btns-ct .x-panel-btns-right table{float:right;clear:none;} |
.x-panel-btns-ct .x-panel-btns-left table{float:left;clear:none;} |
.x-panel-btns-ct .x-panel-btns-center{text-align:center;} |
.x-panel-btns-ct .x-panel-btns-center table{margin:0 auto;} |
.x-panel-btns-ct table td.x-panel-btn-td{padding:3px;} |
.x-panel-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;} |
.x-panel-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;} |
.x-panel-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;} |
.x-panel-btns-ct .x-btn-over .x-btn-left{background-position:0 -63px;} |
.x-panel-btns-ct .x-btn-over .x-btn-right{background-position:0 -84px;} |
.x-panel-btns-ct .x-btn-over .x-btn-center{background-position:0 -105px;} |
.x-panel-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;} |
.x-panel-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;} |
.x-panel-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;} |
.x-window{zoom:1;} |
.x-window .x-resizable-handle{opacity:0;-moz-opacity:0;filter:alpha(opacity=0);} |
.x-window-proxy{background:#C7DFFC;border:1px solid #669966;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;display:none;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);} |
.x-window-header{overflow:hidden;zoom:1;} |
.x-window-bwrap{z-index:1;position:relative;zoom:1;} |
.x-window-tl .x-window-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;} |
.x-window-header-text{cursor:pointer;} |
.x-window-tc{background:transparent url(../images/default/window/top-bottom.png) repeat-x 0 0;overflow:hidden;zoom:1;} |
.x-window-tl{background:transparent url(../images/default/window/left-corners.png) no-repeat 0 0;padding-left:6px;zoom:1;z-index:1;position:relative;} |
.x-window-tr{background:transparent url(../images/default/window/right-corners.png) no-repeat right 0;padding-right:6px;} |
.x-window-bc{background:transparent url(../images/default/window/top-bottom.png) repeat-x 0 bottom;zoom:1;} |
.x-window-bc .x-window-footer{padding-bottom:6px;zoom:1;font-size:0;line-height:0;} |
.x-window-bl{background:transparent url(../images/default/window/left-corners.png) no-repeat 0 bottom;padding-left:6px;zoom:1;} |
.x-window-br{background:transparent url(../images/default/window/right-corners.png) no-repeat right bottom;padding-right:6px;zoom:1;} |
.x-window-mc{border:1px solid #669966;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;background:#dfe8f6;} |
.x-window-ml{background:transparent url(../images/default/window/left-right.png) repeat-y 0 0;padding-left:6px;zoom:1;} |
.x-window-mr{background:transparent url(../images/default/window/left-right.png) repeat-y right 0;padding-right:6px;zoom:1;} |
.x-panel-nofooter .x-window-bc{height:6px;} |
.x-window-body{overflow:hidden;} |
.x-window-bwrap{overflow:hidden;} |
.x-window-maximized .x-window-bl,.x-window-maximized .x-window-br,.x-window-maximized .x-window-ml,.x-window-maximized .x-window-mr,.x-window-maximized .x-window-tl,.x-window-maximized .x-window-tr{padding:0;} |
.x-window-maximized .x-window-footer{padding-bottom:0;} |
.x-window-maximized .x-window-tc{padding-left:3px;padding-right:3px;background-color:white;} |
.x-window-maximized .x-window-mc{border-left:0 none;border-right:0 none;} |
.x-window-tbar .x-toolbar,.x-window-bbar .x-toolbar{border-left:0 none;border-right:0 none;} |
.x-window-bbar .x-toolbar{border-top:1px solid #669966;border-bottom:0 none;} |
.x-window-draggable,.x-window-draggable .x-window-header-text{cursor:move;} |
.x-window-maximized .x-window-draggable,.x-window-maximized .x-window-draggable .x-window-header-text{cursor:default;} |
.x-window-body{background:transparent;} |
.x-panel-ghost .x-window-tl{border-bottom:1px solid #669966;} |
.x-panel-collapsed .x-window-tl{border-bottom:1px solid #84a0c4;} |
.x-window-maximized-ct{overflow:hidden;} |
.x-window-maximized .x-resizable-handle{display:none;} |
.x-window-sizing-ghost ul{border:0 none!important;} |
.x-dlg-focus{-moz-outline:0 none;outline:0 none;width:0;height:0;overflow:hidden;position:absolute;top:0;left:0;} |
.x-dlg-mask{z-index:10000;display:none;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;} |
body.ext-ie6.x-body-masked select{visibility:hidden;} |
body.ext-ie6.x-body-masked .x-window select{visibility:visible;} |
.x-window-plain .x-window-mc{background:#CAD9EC;border-right:1px solid #DFE8F6;border-bottom:1px solid #DFE8F6;border-top:1px solid #a3bae9;border-left:1px solid #a3bae9;} |
.x-window-plain .x-window-body{border-left:1px solid #DFE8F6;border-top:1px solid #DFE8F6;border-bottom:1px solid #a3bae9;border-right:1px solid #a3bae9;background:transparent!important;} |
body.x-body-masked .x-window-plain .x-window-mc{background:#C7D6E9;} |
.x-html-editor-wrap{border:1px solid #a9bfd3;background:white;} |
.x-html-editor-tb .x-btn-text{background:transparent url(../images/default/editor/tb-sprite.gif) no-repeat;} |
.x-html-editor-tb .x-edit-bold .x-btn-text{background-position:0 0;} |
.x-html-editor-tb .x-edit-italic .x-btn-text{background-position:-16px 0;} |
.x-html-editor-tb .x-edit-underline .x-btn-text{background-position:-32px 0;} |
.x-html-editor-tb .x-edit-forecolor .x-btn-text{background-position:-160px 0;} |
.x-html-editor-tb .x-edit-backcolor .x-btn-text{background-position:-176px 0;} |
.x-html-editor-tb .x-edit-justifyleft .x-btn-text{background-position:-112px 0;} |
.x-html-editor-tb .x-edit-justifycenter .x-btn-text{background-position:-128px 0;} |
.x-html-editor-tb .x-edit-justifyright .x-btn-text{background-position:-144px 0;} |
.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text{background-position:-80px 0;} |
.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text{background-position:-96px 0;} |
.x-html-editor-tb .x-edit-increasefontsize .x-btn-text{background-position:-48px 0;} |
.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text{background-position:-64px 0;} |
.x-html-editor-tb .x-edit-sourceedit .x-btn-text{background-position:-192px 0;} |
.x-html-editor-tb .x-edit-createlink .x-btn-text{background-position:-208px 0;} |
.x-html-editor-tip .x-tip-bd .x-tip-bd-inner{padding:5px;padding-bottom:1px;} |
.x-html-editor-tb .x-toolbar{position:static!important;} |
.x-panel-noborder .x-panel-body-noborder{border-width:0;} |
.x-panel-noborder .x-panel-header-noborder{border-width:0;border-bottom:1px solid #669966;} |
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #669966;} |
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #669966;} |
.x-window-noborder .x-window-mc{border-width:0;} |
.x-window-plain .x-window-body-noborder{border-width:0;} |
.x-tab-panel-noborder .x-tab-panel-body-noborder{border-width:0;} |
.x-tab-panel-noborder .x-tab-panel-header-noborder{border-top-width:0;border-left-width:0;border-right-width:0;} |
.x-tab-panel-noborder .x-tab-panel-footer-noborder{border-bottom-width:0;border-left-width:0;border-right-width:0;} |
.x-tab-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #669966;} |
.x-tab-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #669966;} |
.x-border-layout-ct{background:#c7d1d7;} |
.x-border-panel{position:absolute;left:0;top:0;} |
.x-tool-collapse-south{background-position:0 -195px;} |
.x-tool-collapse-south-over{background-position:-15px -195px;} |
.x-tool-collapse-north{background-position:0 -210px;} |
.x-tool-collapse-north-over{background-position:-15px -210px;} |
.x-tool-collapse-west{background-position:0 -180px;} |
.x-tool-collapse-west-over{background-position:-15px -180px;} |
.x-tool-collapse-east{background-position:0 -165px;} |
.x-tool-collapse-east-over{background-position:-15px -165px;} |
.x-tool-expand-south{background-position:0 -210px;} |
.x-tool-expand-south-over{background-position:-15px -210px;} |
.x-tool-expand-north{background-position:0 -195px;} |
.x-tool-expand-north-over{background-position:-15px -195px;} |
.x-tool-expand-west{background-position:0 -165px;} |
.x-tool-expand-west-over{background-position:-15px -165px;} |
.x-tool-expand-east{background-position:0 -180px;} |
.x-tool-expand-east-over{background-position:-15px -180px;} |
.x-tool-expand-north,.x-tool-expand-south{float:right;margin:3px;} |
.x-tool-expand-east,.x-tool-expand-west{float:none;margin:3px auto;} |
.x-accordion-hd .x-tool-toggle{background-position:0 -255px;} |
.x-accordion-hd .x-tool-toggle-over{background-position:-15px -255px;} |
.x-panel-collapsed .x-accordion-hd .x-tool-toggle{background-position:0 -240px;} |
.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over{background-position:-15px -240px;} |
.x-accordion-hd{color:#222;padding-top:4px;padding-bottom:3px;border-top:0 none;font-weight:normal;background:transparent url(../images/default/panel/light-hd.gif) repeat-x 0 -9px;} |
.x-layout-collapsed{position:absolute;left:-10000px;top:-10000px;visibility:hidden;background-color:#95A499;width:20px;height:20px;overflow:hidden;border:1px solid #95A499;z-index:20;} |
.ext-border-box .x-layout-collapsed{width:22px;height:22px;} |
.x-layout-collapsed-over{cursor:pointer;background-color:#667a6b;} |
.x-layout-collapsed-west .x-layout-collapsed-tools,.x-layout-collapsed-east .x-layout-collapsed-tools{position:absolute;top:0;left:0;width:20px;height:20px;} |
.x-layout-split{position:absolute;height:5px;width:5px;line-height:1px;font-size:1px;z-index:3;background-color:transparent;} |
.x-layout-split-h{background-image:url(../images/default/s.gif);background-position:left;} |
.x-layout-split-v{background-image:url(../images/default/s.gif);background-position:top;} |
.x-column-layout-ct{overflow:hidden;zoom:1;} |
.x-column{float:left;padding:0;margin:0;overflow:hidden;zoom:1;} |
.x-layout-mini{position:absolute;top:0;left:0;display:block;width:5px;height:35px;cursor:pointer;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);} |
.x-layout-mini-over,.x-layout-collapsed-over .x-layout-mini{opacity:1;-moz-opacity:1;filter:none;} |
.x-layout-split-west .x-layout-mini{top:48%;background-image:url(../images/default/layout/mini-left.gif);} |
.x-layout-split-east .x-layout-mini{top:48%;background-image:url(../images/default/layout/mini-right.gif);} |
.x-layout-split-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/default/layout/mini-top.gif);} |
.x-layout-split-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/default/layout/mini-bottom.gif);} |
.x-layout-cmini-west .x-layout-mini{top:48%;background-image:url(../images/default/layout/mini-right.gif);} |
.x-layout-cmini-east .x-layout-mini{top:48%;background-image:url(../images/default/layout/mini-left.gif);} |
.x-layout-cmini-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/default/layout/mini-bottom.gif);} |
.x-layout-cmini-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../images/default/layout/mini-top.gif);} |
.x-layout-cmini-west,.x-layout-cmini-east{border:0 none;width:5px!important;padding:0;background:transparent;} |
.x-layout-cmini-north,.x-layout-cmini-south{border:0 none;height:5px!important;padding:0;background:transparent;} |
.x-viewport,.x-viewport body{margin:0;padding:0;border:0 none;overflow:hidden;height:100%;} |
.x-abs-layout-item{position:absolute;left:0;top:0;} |
.ext-ie input.x-abs-layout-item,.ext-ie textarea.x-abs-layout-item{margin:0;} |
.x-progress-wrap{border:1px solid #6593cf;overflow:hidden;} |
.x-progress-inner{height:18px;background:#e0e8f3 url(../images/default/qtip/bg.gif) repeat-x;position:relative;} |
.x-progress-bar{height:18px;float:left;width:0;background:#9CBFEE url( ../images/default/progress/progress-bg.gif ) repeat-x left center;border-top:1px solid #D1E4FD;border-bottom:1px solid #7FA9E4;border-right:1px solid #7FA9E4;} |
.x-progress-text{font-size:11px;font-weight:bold;color:#fff;padding:1px 5px;overflow:hidden;position:absolute;left:0;text-align:center;} |
.x-progress-text-back{color:#396095;line-height:16px;} |
.ext-ie .x-progress-text-back{line-height:15px;} |
.x-window-dlg .x-window-body{border:0 none!important;padding:5px 10px;overflow:hidden!important;} |
.x-window-dlg .x-window-mc{border:0 none!important;} |
.x-window-dlg .ext-mb-text,.x-window-dlg .x-window-header-text{font-size:12px;} |
.x-window-dlg .ext-mb-input{margin-top:4px;width:95%;} |
.x-window-dlg .ext-mb-textarea{margin-top:4px;font:normal 12px tahoma,arial,helvetica,sans-serif;} |
.x-window-dlg .x-progress-wrap{margin-top:4px;} |
.ext-ie .x-window-dlg .x-progress-wrap{margin-top:6px;} |
.x-window-dlg .x-msg-box-wait{background:transparent url(../images/default/grid/loading.gif) no-repeat left;display:block;width:300px;padding-left:18px;line-height:18px;} |
.x-window-dlg .ext-mb-icon{float:left;width:47px;height:32px;} |
.ext-ie .x-window-dlg .ext-mb-icon{width:44px;} |
.x-window-dlg .ext-mb-info{background:transparent url(../images/default/window/icon-info.gif) no-repeat top left;} |
.x-window-dlg .ext-mb-warning{background:transparent url(../images/default/window/icon-warning.gif) no-repeat top left;} |
.x-window-dlg .ext-mb-question{background:transparent url(../images/default/window/icon-question.gif) no-repeat top left;} |
.x-window-dlg .ext-mb-error{background:transparent url(../images/default/window/icon-error.gif) no-repeat top left;} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/window.css |
---|
New file |
0,0 → 1,210 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-window { |
zoom:1; |
} |
.x-window .x-resizable-handle { |
opacity:0; |
-moz-opacity:0; |
filter:alpha(opacity=0); |
} |
.x-window-proxy { |
background:#C7DFFC; |
border:1px solid #99bbe8; |
z-index:12000; |
overflow:hidden; |
position:absolute; |
left:0;top:0; |
display:none; |
opacity:.5; |
-moz-opacity:.5; |
filter:alpha(opacity=50); |
} |
.x-window-header { |
overflow:hidden; |
zoom:1; |
} |
.x-window-bwrap { |
z-index:1; |
position:relative; |
zoom:1; |
} |
.x-window-tl .x-window-header { |
color:#15428b; |
font:bold 11px tahoma,arial,verdana,sans-serif; |
padding:5px 0 4px 0; |
} |
.x-window-header-text { |
cursor:pointer; |
} |
.x-window-tc { |
background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 0; |
overflow:hidden; |
zoom:1; |
} |
.x-window-tl { |
background: transparent url(../images/default/window/left-corners.png) no-repeat 0 0; |
padding-left:6px; |
zoom:1; |
z-index:1; |
position:relative; |
} |
.x-window-tr { |
background: transparent url(../images/default/window/right-corners.png) no-repeat right 0; |
padding-right:6px; |
} |
.x-window-bc { |
background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 bottom; |
zoom:1; |
} |
.x-window-bc .x-window-footer { |
padding-bottom:6px; |
zoom:1; |
font-size:0; |
line-height:0; |
} |
.x-window-bl { |
background: transparent url(../images/default/window/left-corners.png) no-repeat 0 bottom; |
padding-left:6px; |
zoom:1; |
} |
.x-window-br { |
background: transparent url(../images/default/window/right-corners.png) no-repeat right bottom; |
padding-right:6px; |
zoom:1; |
} |
.x-window-mc { |
border:1px solid #99bbe8; |
padding:0; |
margin:0; |
font: normal 11px tahoma,arial,helvetica,sans-serif; |
background:#dfe8f6; |
} |
.x-window-ml { |
background: transparent url(../images/default/window/left-right.png) repeat-y 0 0; |
padding-left:6px; |
zoom:1; |
} |
.x-window-mr { |
background: transparent url(../images/default/window/left-right.png) repeat-y right 0; |
padding-right:6px; |
zoom:1; |
} |
.x-panel-nofooter .x-window-bc { |
height:6px; |
} |
.x-window-body { |
overflow:hidden; |
} |
.x-window-bwrap { |
overflow:hidden; |
} |
.x-window-maximized .x-window-bl, .x-window-maximized .x-window-br, |
.x-window-maximized .x-window-ml, .x-window-maximized .x-window-mr, |
.x-window-maximized .x-window-tl, .x-window-maximized .x-window-tr { |
padding:0; |
} |
.x-window-maximized .x-window-footer { |
padding-bottom:0; |
} |
.x-window-maximized .x-window-tc { |
padding-left:3px; |
padding-right:3px; |
background-color:white; |
} |
.x-window-maximized .x-window-mc { |
border-left:0 none; |
border-right:0 none; |
} |
.x-window-tbar .x-toolbar, .x-window-bbar .x-toolbar { |
border-left:0 none; |
border-right: 0 none; |
} |
.x-window-bbar .x-toolbar { |
border-top:1px solid #99bbe8; |
border-bottom:0 none; |
} |
.x-window-draggable, .x-window-draggable .x-window-header-text { |
cursor:move; |
} |
.x-window-maximized .x-window-draggable, .x-window-maximized .x-window-draggable .x-window-header-text { |
cursor:default; |
} |
.x-window-body { |
background:transparent; |
} |
.x-panel-ghost .x-window-tl { |
border-bottom:1px solid #99bbe8; |
} |
.x-panel-collapsed .x-window-tl { |
border-bottom:1px solid #84a0c4; |
} |
.x-window-maximized-ct { |
overflow:hidden; |
} |
.x-window-maximized .x-resizable-handle { |
display:none; |
} |
.x-window-sizing-ghost ul { |
border:0 none !important; |
} |
.x-dlg-focus{ |
-moz-outline:0 none; |
outline:0 none; |
width:0; |
height:0; |
overflow:hidden; |
position:absolute; |
top:0; |
left:0; |
} |
.x-dlg-mask{ |
z-index:10000; |
display:none; |
position:absolute; |
top:0; |
left:0; |
-moz-opacity: 0.5; |
opacity:.50; |
filter: alpha(opacity=50); |
background-color:#CCC; |
} |
body.ext-ie6.x-body-masked select { |
visibility:hidden; |
} |
body.ext-ie6.x-body-masked .x-window select { |
visibility:visible; |
} |
.x-window-plain .x-window-mc { |
background: #CAD9EC; |
border-right:1px solid #DFE8F6; |
border-bottom:1px solid #DFE8F6; |
border-top:1px solid #a3bae9; |
border-left:1px solid #a3bae9; |
} |
.x-window-plain .x-window-body { |
border-left:1px solid #DFE8F6; |
border-top:1px solid #DFE8F6; |
border-bottom:1px solid #a3bae9; |
border-right:1px solid #a3bae9; |
background:transparent !important; |
} |
body.x-body-masked .x-window-plain .x-window-mc { |
background: #C7D6E9; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/button.css |
---|
New file |
0,0 → 1,159 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-btn{ |
font:normal 11px tahoma, verdana, helvetica; |
cursor:pointer; |
white-space: nowrap; |
} |
.x-btn button{ |
border:0 none; |
background:transparent; |
font:normal 11px tahoma,verdana,helvetica; |
padding-left:3px; |
padding-right:3px; |
cursor:pointer; |
margin:0; |
overflow:visible; |
width:auto; |
-moz-outline:0 none; |
outline:0 none; |
} |
* html .ext-ie .x-btn button { |
width:1px; |
} |
.ext-gecko .x-btn button { |
padding-left:0; |
padding-right:0; |
} |
.ext-ie .x-btn button { |
padding-top:2px; |
} |
/* |
Predefined css class for buttons with only icon. Add this class (x-btn-icon) and a class with a background-image |
to your button for a button with just an icon. |
e.g. |
.my-class .x-btn-text { background-image: url(foo.gif); } |
*/ |
.x-btn-icon .x-btn-center .x-btn-text{ |
background-position: center; |
background-repeat: no-repeat; |
height: 16px; |
width: 16px; |
cursor:pointer; |
white-space: nowrap; |
padding:0; |
} |
.x-btn-icon .x-btn-center{ |
padding:1px; |
} |
.x-btn em { |
font-style:normal; |
font-weight:normal; |
} |
/* |
Button class for icon and text. Add this class (x-btn-text-icon) and a class with a background-image |
to your button for both text and icon. |
*/ |
.x-btn-text-icon .x-btn-center .x-btn-text{ |
background-position: 0 2px; |
background-repeat: no-repeat; |
padding-left:18px; |
padding-top:3px; |
padding-bottom:2px; |
padding-right:0; |
} |
.x-btn-left, .x-btn-right{ |
font-size:1px; |
line-height:1px; |
} |
.x-btn-left{ |
width:3px; |
height:21px; |
background:url(../images/default/button/btn-sprite.gif) no-repeat 0 0; |
} |
.x-btn-right{ |
width:3px; |
height:21px; |
background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -21px; |
} |
.x-btn-left i, .x-btn-right i{ |
display:block; |
width:3px; |
overflow:hidden; |
font-size:1px; |
line-height:1px; |
} |
.x-btn-center{ |
background:url(../images/default/button/btn-sprite.gif) repeat-x 0 -42px; |
vertical-align: middle; |
text-align:center; |
padding:0 5px; |
cursor:pointer; |
white-space:nowrap; |
} |
.x-btn-over .x-btn-left{ |
background-position:0 -63px; |
} |
.x-btn-over .x-btn-right{ |
background-position:0 -84px; |
} |
.x-btn-over .x-btn-center{ |
background-position:0 -105px; |
} |
.x-btn-click .x-btn-center, .x-btn-menu-active .x-btn-center{ |
background-position:0 -126px; |
} |
.x-btn-disabled *{ |
color:gray !important; |
cursor:default !important; |
} |
.x-btn-menu-text-wrap .x-btn-center { |
padding:0 3px; |
} |
.ext-gecko .x-btn-menu-text-wrap .x-btn-center { |
padding:0 1px; |
} |
.x-btn-menu-arrow-wrap .x-btn-center { |
padding:0; |
} |
.x-btn-menu-arrow-wrap .x-btn-center button { |
width:12px !important; |
height:21px; |
padding:0 !important; |
display:block; |
background:transparent url(../images/default/button/btn-arrow.gif) no-repeat left 3px; |
} |
.x-btn-with-menu .x-btn-center { |
padding-right:2px !important; |
} |
.x-btn-with-menu .x-btn-center em { |
display:block; |
background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 0; |
padding-right:10px; |
} |
.x-btn-text-icon .x-btn-with-menu .x-btn-center em { |
display:block; |
background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 3px; |
padding-right:10px; |
} |
/* Toggle button styles */ |
.x-btn-pressed .x-btn-left{ |
background: url(../images/default/button/btn-sprite.gif) no-repeat 0 -63px; |
} |
.x-btn-pressed .x-btn-right{ |
background: url(../images/default/button/btn-sprite.gif) no-repeat 0 -84px; |
} |
.x-btn-pressed .x-btn-center{ |
background: url(../images/default/button/btn-sprite.gif) repeat-x 0 -126px; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/layout.css |
---|
New file |
0,0 → 1,267 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-border-layout-ct { |
background:#dfe8f6; |
} |
.x-border-panel { |
position:absolute; |
left:0; |
top:0; |
} |
.x-tool-collapse-south { |
background-position:0 -195px; |
} |
.x-tool-collapse-south-over { |
background-position:-15px -195px; |
} |
.x-tool-collapse-north { |
background-position:0 -210px; |
} |
.x-tool-collapse-north-over { |
background-position:-15px -210px; |
} |
.x-tool-collapse-west { |
background-position:0 -180px; |
} |
.x-tool-collapse-west-over { |
background-position:-15px -180px; |
} |
.x-tool-collapse-east { |
background-position:0 -165px; |
} |
.x-tool-collapse-east-over { |
background-position:-15px -165px; |
} |
.x-tool-expand-south { |
background-position:0 -210px; |
} |
.x-tool-expand-south-over { |
background-position:-15px -210px; |
} |
.x-tool-expand-north { |
background-position:0 -195px; |
} |
.x-tool-expand-north-over { |
background-position:-15px -195px; |
} |
.x-tool-expand-west { |
background-position:0 -165px; |
} |
.x-tool-expand-west-over { |
background-position:-15px -165px; |
} |
.x-tool-expand-east { |
background-position:0 -180px; |
} |
.x-tool-expand-east-over { |
background-position:-15px -180px; |
} |
.x-tool-expand-north, .x-tool-expand-south { |
float:right; |
margin:3px; |
} |
.x-tool-expand-east, .x-tool-expand-west { |
float:none; |
margin:3px auto; |
} |
.x-accordion-hd .x-tool-toggle { |
background-position:0 -255px; |
} |
.x-accordion-hd .x-tool-toggle-over { |
background-position:-15px -255px; |
} |
.x-panel-collapsed .x-accordion-hd .x-tool-toggle { |
background-position:0 -240px; |
} |
.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over { |
background-position:-15px -240px; |
} |
.x-accordion-hd { |
color:#222; |
padding-top:4px; |
padding-bottom:3px; |
border-top:0 none; |
font-weight:normal; |
background: transparent url(../images/default/panel/light-hd.gif) repeat-x 0 -9px; |
} |
.x-layout-collapsed{ |
position:absolute; |
left:-10000px; |
top:-10000px; |
visibility:hidden; |
background-color:#d2e0f2; |
width:20px; |
height:20px; |
overflow:hidden; |
border:1px solid #98c0f4; |
z-index:20; |
} |
.ext-border-box .x-layout-collapsed{ |
width:22px; |
height:22px; |
} |
.x-layout-collapsed-over{ |
cursor:pointer; |
background-color:#d9e8fb; |
} |
.x-layout-collapsed-west .x-layout-collapsed-tools, .x-layout-collapsed-east .x-layout-collapsed-tools{ |
position:absolute; |
top:0; |
left:0; |
width:20px; |
height:20px; |
} |
.x-layout-split{ |
position:absolute; |
height:5px; |
width:5px; |
line-height:1px; |
font-size:1px; |
z-index:3; |
background-color:transparent; |
} |
.x-layout-split-h{ |
background-image:url(../images/default/s.gif); |
background-position: left; |
} |
.x-layout-split-v{ |
background-image:url(../images/default/s.gif); |
background-position: top; |
} |
.x-column-layout-ct { |
overflow:hidden; |
/*padding:3px 3px 3px 3px;*/ |
zoom:1; |
} |
.x-column { |
float:left; |
padding:0; |
margin:0; |
overflow:hidden; |
zoom:1; |
/*margin:3px;*/ |
} |
/* mini mode */ |
.x-layout-mini { |
position:absolute; |
top:0; |
left:0; |
display:block; |
width:5px; |
height:35px; |
cursor:pointer; |
opacity:.5; |
-moz-opacity:.5; |
filter:alpha(opacity=50); |
} |
.x-layout-mini-over, .x-layout-collapsed-over .x-layout-mini{ |
opacity:1; |
-moz-opacity:1; |
filter:none; |
} |
.x-layout-split-west .x-layout-mini { |
top:48%; |
background-image:url(../images/default/layout/mini-left.gif); |
} |
.x-layout-split-east .x-layout-mini { |
top:48%; |
background-image:url(../images/default/layout/mini-right.gif); |
} |
.x-layout-split-north .x-layout-mini { |
left:48%; |
height:5px; |
width:35px; |
background-image:url(../images/default/layout/mini-top.gif); |
} |
.x-layout-split-south .x-layout-mini { |
left:48%; |
height:5px; |
width:35px; |
background-image:url(../images/default/layout/mini-bottom.gif); |
} |
.x-layout-cmini-west .x-layout-mini { |
top:48%; |
background-image:url(../images/default/layout/mini-right.gif); |
} |
.x-layout-cmini-east .x-layout-mini { |
top:48%; |
background-image:url(../images/default/layout/mini-left.gif); |
} |
.x-layout-cmini-north .x-layout-mini { |
left:48%; |
height:5px; |
width:35px; |
background-image:url(../images/default/layout/mini-bottom.gif); |
} |
.x-layout-cmini-south .x-layout-mini { |
left:48%; |
height:5px; |
width:35px; |
background-image:url(../images/default/layout/mini-top.gif); |
} |
.x-layout-cmini-west, .x-layout-cmini-east { |
border:0 none; |
width:5px !important; |
padding:0; |
background:transparent; |
} |
.x-layout-cmini-north, .x-layout-cmini-south { |
border:0 none; |
height:5px !important; |
padding:0; |
background:transparent; |
} |
.x-viewport, .x-viewport body { |
margin: 0; |
padding: 0; |
border: 0 none; |
overflow: hidden; |
height: 100%; |
} |
.x-abs-layout-item { |
position:absolute; |
left:0; |
top:0; |
} |
.ext-ie input.x-abs-layout-item, .ext-ie textarea.x-abs-layout-item { |
margin:0; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/resizable.css |
---|
New file |
0,0 → 1,143 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-resizable-handle { |
position:absolute; |
z-index:100; |
/* ie needs these */ |
font-size:1px; |
line-height:6px; |
overflow:hidden; |
background:white; |
filter:alpha(opacity=0); |
opacity:0; |
zoom:1; |
} |
.x-resizable-handle-east{ |
width:6px; |
cursor:e-resize; |
right:0; |
top:0; |
height:100%; |
} |
.ext-ie .x-resizable-handle-east { |
margin-right:-1px; /*IE rounding error*/ |
} |
.x-resizable-handle-south{ |
width:100%; |
cursor:s-resize; |
left:0; |
bottom:0; |
height:6px; |
} |
.ext-ie .x-resizable-handle-south { |
margin-bottom:-1px; /*IE rounding error*/ |
} |
.x-resizable-handle-west{ |
width:6px; |
cursor:w-resize; |
left:0; |
top:0; |
height:100%; |
} |
.x-resizable-handle-north{ |
width:100%; |
cursor:n-resize; |
left:0; |
top:0; |
height:6px; |
} |
.x-resizable-handle-southeast{ |
width:6px; |
cursor:se-resize; |
right:0; |
bottom:0; |
height:6px; |
z-index:101; |
} |
.x-resizable-handle-northwest{ |
width:6px; |
cursor:nw-resize; |
left:0; |
top:0; |
height:6px; |
z-index:101; |
} |
.x-resizable-handle-northeast{ |
width:6px; |
cursor:ne-resize; |
right:0; |
top:0; |
height:6px; |
z-index:101; |
} |
.x-resizable-handle-southwest{ |
width:6px; |
cursor:sw-resize; |
left:0; |
bottom:0; |
height:6px; |
z-index:101; |
} |
.x-resizable-over .x-resizable-handle, .x-resizable-pinned .x-resizable-handle{ |
filter:alpha(opacity=100); |
opacity:1; |
} |
.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east{ |
background:url(../images/default/sizer/e-handle.gif); |
background-position: left; |
} |
.x-resizable-over .x-resizable-handle-west, .x-resizable-pinned .x-resizable-handle-west{ |
background:url(../images/default/sizer/e-handle.gif); |
background-position: left; |
} |
.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south{ |
background:url(../images/default/sizer/s-handle.gif); |
background-position: top; |
} |
.x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north{ |
background:url(../images/default/sizer/s-handle.gif); |
background-position: top; |
} |
.x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{ |
background:url(../images/default/sizer/se-handle.gif); |
background-position: top left; |
} |
.x-resizable-over .x-resizable-handle-northwest, .x-resizable-pinned .x-resizable-handle-northwest{ |
background:url(../images/default/sizer/nw-handle.gif); |
background-position:bottom right; |
} |
.x-resizable-over .x-resizable-handle-northeast, .x-resizable-pinned .x-resizable-handle-northeast{ |
background:url(../images/default/sizer/ne-handle.gif); |
background-position: bottom left; |
} |
.x-resizable-over .x-resizable-handle-southwest, .x-resizable-pinned .x-resizable-handle-southwest{ |
background:url(../images/default/sizer/sw-handle.gif); |
background-position: top right; |
} |
.x-resizable-proxy{ |
border: 1px dashed #3b5a82; |
position:absolute; |
overflow:hidden; |
display:none; |
left:0;top:0; |
z-index:50000; |
} |
.x-resizable-overlay{ |
width:100%; |
height:100%; |
display:none; |
position:absolute; |
left:0; |
top:0; |
background:white; |
z-index:200000; |
-moz-opacity: 0; |
opacity:0; |
filter: alpha(opacity=0); |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/reset.css |
---|
New file |
0,0 → 1,9 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/README.txt |
---|
New file |
0,0 → 1,3 |
2006-11-21 jvs: |
ext-all.css contains all of the other css files combined and stripped of comments (except themes). |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/grid.css |
---|
New file |
0,0 → 1,549 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
/* Grid3 styles */ |
.x-grid3 { |
position:relative; |
overflow:hidden; |
background-color:#fff; |
} |
.x-grid-panel .x-panel-body { |
overflow:hidden !important; |
} |
.x-grid-panel .x-panel-mc .x-panel-body { |
border:1px solid #99bbe8; |
} |
.ext-ie .x-grid3 table,.ext-safari .x-grid3 table { |
table-layout:fixed; |
} |
.x-grid3-viewport{ |
overflow:hidden; |
} |
.x-grid3-hd-row td, .x-grid3-row td, .x-grid3-summary-row td{ |
font:normal 11px arial, tahoma, helvetica, sans-serif; |
-moz-outline: none; |
-moz-user-focus: normal; |
} |
.x-grid3-row td, .x-grid3-summary-row td { |
line-height:13px; |
vertical-align: top; |
padding-left:1px; |
padding-right:1px; |
-moz-user-select: none; |
} |
.x-grid3-hd-row td { |
line-height:15px; |
vertical-align:middle; |
border-left:1px solid #eee; |
border-right:1px solid #d0d0d0; |
} |
.x-grid3-hd-row .x-grid3-marker-hd { |
padding:3px; |
} |
.x-grid3-row .x-grid3-marker { |
padding:3px; |
} |
.x-grid3-cell-inner, .x-grid3-hd-inner{ |
overflow:hidden; |
-o-text-overflow: ellipsis; |
text-overflow: ellipsis; |
padding:3px 3px 3px 5px; |
white-space: nowrap; |
} |
.x-grid3-hd-inner { |
position:relative; |
cursor:inherit; |
padding:4px 3px 4px 5px; |
} |
.x-grid3-row-body { |
white-space:normal; |
} |
.x-grid3-body-cell { |
-moz-outline:0 none; |
outline:0 none; |
} |
/* IE Quirks to clip */ |
.ext-ie .x-grid3-cell-inner, .ext-ie .x-grid3-hd-inner{ |
width:100%; |
} |
/* reverse above in strict mode */ |
.ext-strict .x-grid3-cell-inner, .ext-strict .x-grid3-hd-inner{ |
width:auto; |
} |
.x-grid3-col { |
} |
.x-grid-row-loading { |
background: #fff url(../images/default/shared/loading-balls.gif) no-repeat center center; |
} |
.x-grid-page { |
overflow:hidden; |
} |
.x-grid3-row { |
cursor: default; |
border:1px solid #ededed; |
border-top-color:#fff; |
/*border-bottom: 1px solid #ededed;*/ |
width:100%; |
} |
.x-grid3-row-alt{ |
background-color:#fafafa; |
} |
.x-grid3-row-over { |
border:1px solid #dddddd; |
background: #efefef url(../images/default/grid/row-over.gif) repeat-x left top; |
} |
.x-grid3-resize-proxy { |
width:1px; |
left:0; |
background-color:#777; |
cursor: e-resize; |
cursor: col-resize; |
position:absolute; |
top:0; |
height:100px; |
overflow:hidden; |
visibility:hidden; |
border:0 none; |
z-index:7; |
} |
.x-grid3-resize-marker { |
width:1px; |
left:0; |
background-color:#777; |
position:absolute; |
top:0; |
height:100px; |
overflow:hidden; |
visibility:hidden; |
border:0 none; |
z-index:7; |
} |
.x-grid3-focus { |
position:absolute; |
top:0; |
-moz-outline:0 none; |
outline:0 none; |
-moz-user-select: normal; |
-khtml-user-select: normal; |
} |
/* header styles */ |
.x-grid3-header{ |
background: #f9f9f9 url(../images/default/grid/grid3-hrow.gif) repeat-x 0 bottom; |
cursor:default; |
zoom:1; |
padding:1px 0 0 0; |
} |
.x-grid3-header-pop { |
border-left:1px solid #d0d0d0; |
float:right; |
clear:none; |
} |
.x-grid3-header-pop-inner { |
border-left:1px solid #eee; |
width:14px; |
height:19px; |
background: transparent url(../images/default/grid/hd-pop.gif) no-repeat center center; |
} |
.ext-ie .x-grid3-header-pop-inner { |
width:15px; |
} |
.ext-strict .x-grid3-header-pop-inner { |
width:14px; |
} |
.x-grid3-header-inner { |
overflow:hidden; |
zoom:1; |
float:left; |
} |
.x-grid3-header-offset { |
padding-left:1px; |
width:10000px; |
} |
td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open { |
border-left:1px solid #aaccf6; |
border-right:1px solid #aaccf6; |
} |
td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner { |
background: #ebf3fd url(../images/default/grid/grid3-hrow-over.gif) repeat-x left bottom; |
} |
.x-grid3-sort-icon{ |
background-repeat: no-repeat; |
display: none; |
height: 4px; |
width: 13px; |
margin-left:3px; |
vertical-align: middle; |
} |
.sort-asc .x-grid3-sort-icon { |
background-image: url(../images/default/grid/sort_asc.gif); |
display: inline; |
} |
.sort-desc .x-grid3-sort-icon { |
background-image: url(../images/default/grid/sort_desc.gif); |
display: inline; |
} |
/* Header position fixes for IE strict mode */ |
.ext-strict .ext-ie .x-grid3-header-inner{position:relative;} |
.ext-strict .ext-ie6 .x-grid3-hd{position:relative;} |
.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;} |
/* Body Styles */ |
.x-grid3-body { |
zoom:1; |
} |
.x-grid3-scroller { |
overflow:auto; |
zoom:1; |
position:relative; |
} |
.x-grid3-cell-text, .x-grid3-hd-text { |
display: block; |
padding: 3px 5px 3px 5px; |
-moz-user-select: none; |
-khtml-user-select: none; |
color:black; |
} |
.x-grid3-split { |
background-image: url(../images/default/grid/grid-split.gif); |
background-position: center; |
background-repeat: no-repeat; |
cursor: e-resize; |
cursor: col-resize; |
display: block; |
font-size: 1px; |
height: 16px; |
overflow: hidden; |
position: absolute; |
top: 2px; |
width: 6px; |
z-index: 3; |
} |
.x-grid3-hd-text { |
color:#15428b; |
} |
/* Column Reorder DD */ |
.x-dd-drag-proxy .x-grid3-hd-inner{ |
background: #ebf3fd url(../images/default/grid/grid3-hrow-over.gif) repeat-x left bottom; |
width:120px; |
padding:3px; |
border:1px solid #aaccf6; |
overflow:hidden; |
} |
.col-move-top, .col-move-bottom{ |
width:9px; |
height:9px; |
position:absolute; |
top:0; |
line-height:1px; |
font-size:1px; |
overflow:hidden; |
visibility:hidden; |
z-index:20000; |
} |
.col-move-top{ |
background:transparent url(../images/default/grid/col-move-top.gif) no-repeat left top; |
} |
.col-move-bottom{ |
background:transparent url(../images/default/grid/col-move-bottom.gif) no-repeat left top; |
} |
/* Selection Styles */ |
.x-grid3-row-selected { |
background: #DFE8F6 !important; |
border:1px dotted #a3bae9; |
} |
.x-grid3-cell-selected{ |
background-color: #B8CFEE !important; |
color: black; |
} |
.x-grid3-cell-selected span{ |
color: black !important; |
} |
.x-grid3-cell-selected .x-grid3-cell-text{ |
color: black; |
} |
.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{ |
background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x 0 bottom !important; |
vertical-align:middle !important; |
color:black; |
padding:0; |
border-top:1px solid white; |
border-bottom:none !important; |
border-right:1px solid #6fa0df !important; |
text-align:center; |
} |
.x-grid3-locked td.x-grid3-row-marker div, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{ |
padding:0 4px; |
color:#15428b !important; |
text-align:center; |
} |
/* dirty cells */ |
.x-grid3-dirty-cell { |
background: transparent url(../images/default/grid/dirty.gif) no-repeat 0 0; |
} |
/* Grid Toolbars */ |
.x-grid3-topbar, .x-grid3-bottombar{ |
font:normal 11px arial, tahoma, helvetica, sans-serif; |
overflow:hidden; |
display:none; |
zoom:1; |
position:relative; |
} |
.x-grid3-topbar .x-toolbar{ |
border-right:0 none; |
} |
.x-grid3-bottombar .x-toolbar{ |
border-right:0 none; |
border-bottom:0 none; |
border-top:1px solid #a9bfd3; |
} |
/* Props Grid Styles */ |
.x-props-grid .x-grid3-cell{ |
padding:1px; |
} |
.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{ |
background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y -16px !important; |
padding-left:12px; |
color:black !important; |
} |
.x-props-grid .x-grid3-body .x-grid3-td-name{ |
padding:1px; |
padding-right:0; |
background:white !important; |
border:0 none; |
border-right:1px solid #eeeeee; |
} |
/* header menu */ |
.xg-hmenu-sort-asc .x-menu-item-icon{ |
background-image: url(../images/default/grid/hmenu-asc.gif); |
} |
.xg-hmenu-sort-desc .x-menu-item-icon{ |
background-image: url(../images/default/grid/hmenu-desc.gif); |
} |
.xg-hmenu-lock .x-menu-item-icon{ |
background-image: url(../images/default/grid/hmenu-lock.gif); |
} |
.xg-hmenu-unlock .x-menu-item-icon{ |
background-image: url(../images/default/grid/hmenu-unlock.gif); |
} |
/* dd */ |
.x-grid3-col-dd { |
border:0 none; |
padding:0; |
background:transparent; |
} |
.x-dd-drag-ghost .x-grid3-dd-wrap { |
padding:1px 3px 3px 1px; |
} |
.x-grid3-hd { |
-moz-user-select:none; |
} |
.x-grid3-hd-btn { |
display:none; |
position:absolute; |
width:14px; |
background:#c3daf9 url(../images/default/grid/grid3-hd-btn.gif) no-repeat left center; |
right:0; |
top:0; |
z-index:2; |
cursor:pointer; |
} |
.x-grid3-hd-over .x-grid3-hd-btn, .x-grid3-hd-menu-open .x-grid3-hd-btn { |
display:block; |
} |
a.x-grid3-hd-btn:hover { |
background-position:-14px center; |
} |
/* Expanders */ |
.x-grid3-body .x-grid3-td-expander { |
background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right; |
} |
.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner { |
padding:0 !important; |
height:100%; |
} |
.x-grid3-row-expander { |
width:100%; |
height:18px; |
background-position:4px 2px; |
background-repeat:no-repeat; |
background-color:transparent; |
background-image:url(../images/default/grid/row-expand-sprite.gif); |
} |
.x-grid3-row-collapsed .x-grid3-row-expander { |
background-position:4px 2px; |
} |
.x-grid3-row-expanded .x-grid3-row-expander { |
background-position:-21px 2px; |
} |
.x-grid3-row-collapsed .x-grid3-row-body { |
display:none !important; |
} |
.x-grid3-row-expanded .x-grid3-row-body { |
display:block !important; |
} |
/* Checkers */ |
.x-grid3-body .x-grid3-td-checker { |
background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right; |
} |
.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner, .x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner { |
padding:0 !important; |
height:100%; |
} |
.x-grid3-row-checker, .x-grid3-hd-checker { |
width:100%; |
height:18px; |
background-position:2px 2px; |
background-repeat:no-repeat; |
background-color:transparent; |
background-image:url(../images/default/grid/row-check-sprite.gif); |
} |
.x-grid3-row .x-grid3-row-checker { |
background-position:2px 2px; |
} |
.x-grid3-row-selected .x-grid3-row-checker, .x-grid3-hd-checker-on .x-grid3-hd-checker { |
background-position:-23px 2px; |
} |
.x-grid3-hd-checker { |
background-position:2px 3px; |
} |
.x-grid3-hd-checker-on .x-grid3-hd-checker { |
background-position:-23px 3px; |
} |
/* Numberer */ |
.x-grid3-body .x-grid3-td-numberer { |
background:transparent url(../images/default/grid/grid3-special-col-bg.gif) repeat-y right; |
} |
.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner { |
padding:3px 5px 0 0 !important; |
text-align:right; |
color:#444; |
} |
/* All specials */ |
.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer, |
.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker, |
.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander { |
background:transparent url(../images/default/grid/grid3-special-col-sel-bg.gif) repeat-y right; |
} |
.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner { |
padding: 1px 0 0 0 !important; |
} |
.x-grid3-check-col { |
width:100%; |
height:16px; |
background-position:center center; |
background-repeat:no-repeat; |
background-color:transparent; |
background-image:url(../images/default/menu/unchecked.gif); |
} |
.x-grid3-check-col-on { |
width:100%; |
height:16px; |
background-position:center center; |
background-repeat:no-repeat; |
background-color:transparent; |
background-image:url(../images/default/menu/checked.gif); |
} |
/* Grouping classes */ |
.x-grid-group, .x-grid-group-body, .x-grid-group-hd { |
zoom:1; |
} |
.x-grid-group-hd { |
border-bottom: 2px solid #99bbe8; |
cursor:pointer; |
padding-top:6px; |
} |
.x-grid-group-hd div { |
background:transparent url(../images/default/grid/group-expand-sprite.gif) no-repeat 3px -47px; |
padding:4px 4px 4px 17px; |
color:#3764a0; |
font:bold 11px tahoma, arial, helvetica, sans-serif; |
} |
.x-grid-group-collapsed .x-grid-group-hd div { |
background-position: 3px 3px; |
} |
.x-grid-group-collapsed .x-grid-group-body { |
display:none; |
} |
.x-group-by-icon { |
background-image:url(../images/default/grid/group-by.gif); |
} |
.x-cols-icon { |
background-image:url(../images/default/grid/columns.gif); |
} |
.x-show-groups-icon { |
background-image:url(../images/default/grid/group-by.gif); |
} |
.ext-ie .x-grid3 .x-editor .x-form-text { |
position:relative; |
top:-1px; |
} |
.ext-ie .x-props-grid .x-editor .x-form-text { |
position:static; |
top:0; |
} |
.x-grid-empty { |
padding:10px; |
color:gray; |
font:normal 11px tahoma, arial, helvetica, sans-serif; |
} |
/* fix floating toolbar issue */ |
.ext-ie7 .x-grid-panel .x-panel-bbar { |
position:relative; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/editor.css |
---|
New file |
0,0 → 1,66 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-html-editor-wrap { |
border:1px solid #a9bfd3; |
background:white; |
} |
.x-html-editor-tb .x-btn-text { |
background:transparent url(../images/default/editor/tb-sprite.gif) no-repeat; |
} |
.x-html-editor-tb .x-edit-bold .x-btn-text { |
background-position:0 0; |
} |
.x-html-editor-tb .x-edit-italic .x-btn-text { |
background-position:-16px 0; |
} |
.x-html-editor-tb .x-edit-underline .x-btn-text { |
background-position:-32px 0; |
} |
.x-html-editor-tb .x-edit-forecolor .x-btn-text { |
background-position:-160px 0; |
} |
.x-html-editor-tb .x-edit-backcolor .x-btn-text { |
background-position:-176px 0; |
} |
.x-html-editor-tb .x-edit-justifyleft .x-btn-text { |
background-position:-112px 0; |
} |
.x-html-editor-tb .x-edit-justifycenter .x-btn-text { |
background-position:-128px 0; |
} |
.x-html-editor-tb .x-edit-justifyright .x-btn-text { |
background-position:-144px 0; |
} |
.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text { |
background-position:-80px 0; |
} |
.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text { |
background-position:-96px 0; |
} |
.x-html-editor-tb .x-edit-increasefontsize .x-btn-text { |
background-position:-48px 0; |
} |
.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text { |
background-position:-64px 0; |
} |
.x-html-editor-tb .x-edit-sourceedit .x-btn-text { |
background-position:-192px 0; |
} |
.x-html-editor-tb .x-edit-createlink .x-btn-text { |
background-position:-208px 0; |
} |
.x-html-editor-tip .x-tip-bd .x-tip-bd-inner { |
padding:5px; |
padding-bottom:1px; |
} |
.x-html-editor-tb .x-toolbar { |
position:static !important; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/debug.css |
---|
New file |
0,0 → 1,37 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
#x-debug-browser .x-tree .x-tree-node a span { |
color:#222297; |
font-size:11px; |
padding-top:2px; |
font-family:"monotype","courier new",sans-serif; |
line-height:18px; |
} |
#x-debug-browser .x-tree a i { |
color:#FF4545; |
font-style:normal; |
} |
#x-debug-browser .x-tree a em { |
color:#999; |
} |
#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{ |
background:#c3daf9; |
} |
#x-debug-browser .x-tool-toggle { |
background-position:0 -75px; |
} |
#x-debug-browser .x-tool-toggle-over { |
background-position:-15px -75px; |
} |
#x-debug-browser.x-panel-collapsed .x-tool-toggle { |
background-position:0 -60px; |
} |
#x-debug-browser.x-panel-collapsed .x-tool-toggle-over { |
background-position:-15px -60px; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/dd.css |
---|
New file |
0,0 → 1,75 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-dd-drag-proxy{ |
position:absolute; |
left:0;top:0; |
visibility:hidden; |
z-index:15000; |
} |
.x-dd-drag-ghost{ |
color: black; |
font: normal 11px arial, helvetica, sans-serif; |
-moz-opacity: 0.85; |
opacity:.85; |
filter: alpha(opacity=85); |
border-top:1px solid #dddddd; |
border-left:1px solid #dddddd; |
border-right:1px solid #bbbbbb; |
border-bottom:1px solid #bbbbbb; |
padding:3px; |
padding-left:20px; |
background-color:white; |
white-space:nowrap; |
} |
.x-dd-drag-repair .x-dd-drag-ghost{ |
-moz-opacity: 0.4; |
opacity:.4; |
filter: alpha(opacity=40); |
border:0 none; |
padding:0; |
background-color:transparent; |
} |
.x-dd-drag-repair .x-dd-drop-icon{ |
visibility:hidden; |
} |
.x-dd-drop-icon{ |
position:absolute; |
top:3px; |
left:3px; |
display:block; |
width:16px; |
height:16px; |
background-color:transparent; |
background-position: center; |
background-repeat: no-repeat; |
z-index:1; |
} |
.x-dd-drop-nodrop .x-dd-drop-icon{ |
background-image: url(../images/default/dd/drop-no.gif); |
} |
.x-dd-drop-ok .x-dd-drop-icon{ |
background-image: url(../images/default/dd/drop-yes.gif); |
} |
.x-dd-drop-ok-add .x-dd-drop-icon{ |
background-image: url(../images/default/dd/drop-add.gif); |
} |
.x-view-selector { |
position:absolute; |
left:0; |
top:0; |
width:0; |
background:#c3daf9; |
border:1px dotted #3399bb; |
opacity: .5; |
-moz-opacity: .5; |
filter:alpha(opacity=50); |
zoom:1; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/date-picker.css |
---|
New file |
0,0 → 1,246 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.x-date-picker { |
border: 1px solid #1b376c; |
border-top:0 none; |
background:#fff; |
position:relative; |
} |
.x-date-picker a { |
-moz-outline:0 none; |
outline:0 none; |
} |
.x-date-inner, .x-date-inner td, .x-date-inner th{ |
border-collapse:separate; |
} |
.x-date-middle,.x-date-left,.x-date-right { |
background: url(../images/default/shared/hd-sprite.gif) repeat-x 0 -83px; |
color:#FFF; |
font:bold 11px "sans serif", tahoma, verdana, helvetica; |
overflow:hidden; |
} |
.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{ |
background:transparent !important; |
vertical-align:middle; |
} |
.x-date-middle .x-btn .x-btn-text { |
color:#fff; |
} |
.x-date-middle .x-btn-with-menu .x-btn-center em { |
background:transparent url(../images/default/toolbar/btn-arrow-light.gif) no-repeat right 0; |
} |
.x-date-right, .x-date-left { |
width:18px; |
} |
.x-date-right{ |
text-align:right; |
} |
.x-date-middle { |
padding-top:2px;padding-bottom:2px; |
} |
.x-date-right a, .x-date-left a{ |
display:block; |
width:16px; |
height:16px; |
background-position: center; |
background-repeat: no-repeat; |
cursor:pointer; |
-moz-opacity: 0.6; |
opacity:.6; |
filter: alpha(opacity=60); |
} |
.x-date-right a:hover, .x-date-left a:hover{ |
-moz-opacity: 1; |
opacity:1; |
filter: alpha(opacity=100); |
} |
.x-date-right a { |
background-image: url(../images/default/shared/right-btn.gif); |
margin-right:2px; |
text-decoration:none !important; |
} |
.x-date-left a{ |
background-image: url(../images/default/shared/left-btn.gif); |
margin-left:2px; |
text-decoration:none !important; |
} |
table.x-date-inner { |
width:100%; |
table-layout:fixed; |
} |
.x-date-inner th { |
width:25px; |
} |
.x-date-inner th { |
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; |
text-align:right !important; |
border-bottom: 1px solid #a3bad9; |
font:normal 10px arial, helvetica,tahoma,sans-serif; |
color:#233d6d; |
cursor:default; |
padding:0; |
border-collapse:separate; |
} |
.x-date-inner th span { |
display:block; |
padding:2px; |
padding-right:7px; |
} |
.x-date-inner td { |
border: 1px solid #fff; |
text-align:right; |
padding:0; |
} |
.x-date-inner a { |
padding:2px 5px; |
display:block; |
font:normal 11px arial, helvetica,tahoma,sans-serif; |
text-decoration:none; |
color:black; |
text-align:right; |
zoom:1; |
} |
.x-date-inner .x-date-active{ |
cursor:pointer; |
color:black; |
} |
.x-date-inner .x-date-selected a{ |
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; |
border:1px solid #8db2e3; |
padding:1px 4px; |
} |
.x-date-inner .x-date-today a{ |
border: 1px solid darkred; |
padding:1px 4px; |
} |
.x-date-inner .x-date-selected span{ |
font-weight:bold; |
} |
.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a { |
color:#aaaaaa; |
text-decoration:none !important; |
} |
.x-date-bottom { |
padding:4px; |
border-top: 1px solid #a3bad9; |
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; |
} |
.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{ |
text-decoration:none !important; |
color:black; |
background: #ddecfe; |
} |
.x-date-inner .x-date-disabled a { |
cursor:default; |
background:#eeeeee; |
color:#bbbbbb; |
} |
.x-date-mmenu{ |
background:#eeeeee !important; |
} |
.x-date-mmenu .x-menu-item { |
font-size:10px; |
padding:1px 24px 1px 4px; |
white-space: nowrap; |
color:#000; |
} |
.x-date-mmenu .x-menu-item .x-menu-item-icon { |
width:10px;height:10px;margin-right:5px; |
background-position:center -4px !important; |
} |
.x-date-mp { |
position:absolute; |
left:0; |
top:0; |
background:white; |
display:none; |
} |
.x-date-mp td { |
padding:2px; |
font:normal 11px arial, helvetica,tahoma,sans-serif; |
} |
td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn { |
border: 0 none; |
text-align:center; |
vertical-align: middle; |
width:25%; |
} |
.x-date-mp-ok { |
margin-right:3px; |
} |
.x-date-mp-btns button { |
text-decoration:none; |
text-align:center; |
text-decoration:none !important; |
background:#083772; |
color:white; |
border:1px solid; |
border-color: #3366cc #000055 #000055 #3366cc; |
padding:1px 3px 1px; |
font:normal 11px arial, helvetica,tahoma,sans-serif; |
cursor:pointer; |
} |
.x-date-mp-btns { |
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; |
} |
.x-date-mp-btns td { |
border-top: 1px solid #c5d2df; |
text-align:center; |
} |
td.x-date-mp-month a,td.x-date-mp-year a { |
display:block; |
padding:2px 4px; |
text-decoration:none; |
text-align:center; |
color:#15428b; |
} |
td.x-date-mp-month a:hover,td.x-date-mp-year a:hover { |
color:#15428b; |
text-decoration:none; |
cursor:pointer; |
background: #ddecfe; |
} |
td.x-date-mp-sel a { |
padding:1px 3px; |
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top; |
border:1px solid #8db2e3; |
} |
.x-date-mp-ybtn a { |
overflow:hidden; |
width:15px; |
height:15px; |
cursor:pointer; |
background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat; |
display:block; |
margin:0 auto; |
} |
.x-date-mp-ybtn a.x-date-mp-next { |
background-position:0 -120px; |
} |
.x-date-mp-ybtn a.x-date-mp-next:hover { |
background-position:-15px -120px; |
} |
.x-date-mp-ybtn a.x-date-mp-prev { |
background-position:0 -105px; |
} |
.x-date-mp-ybtn a.x-date-mp-prev:hover { |
background-position:-15px -105px; |
} |
.x-date-mp-ybtn { |
text-align:center; |
} |
td.x-date-mp-sep { |
border-right:1px solid #c5d2df; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/core.css |
---|
New file |
0,0 → 1,314 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
.ext-el-mask { |
z-index: 20000; |
position: absolute; |
top:0; |
left:0; |
-moz-opacity: 0.5; |
opacity: .50; |
filter: alpha(opacity=50); |
background-color: #CCC; |
width: 100%; |
height: 100%; |
zoom: 1; |
} |
.ext-el-mask-msg { |
z-index: 20001; |
position: absolute; |
top: 0; |
left: 0; |
border:1px solid #6593cf; |
background: #c3daf9 url(../images/default/box/tb-blue.gif) repeat-x 0 -16px; |
padding:2px; |
} |
.ext-el-mask-msg div { |
padding:5px 10px 5px 10px; |
background: #eee; |
border:1px solid #a3bad9; |
color:#222; |
font:normal 11px tahoma, arial, helvetica, sans-serif; |
cursor:wait; |
} |
.ext-shim { |
position:absolute; |
visibility:hidden; |
left:0; |
top:0; |
overflow:hidden; |
} |
.ext-ie .ext-shim { |
filter: alpha(opacity=0); |
} |
.ext-ie6 .ext-shim { |
margin-left: 5px; |
margin-top: 3px; |
} |
.x-mask-loading div { |
padding:5px 10px 5px 25px; |
background: #fbfbfb url( '../images/default/grid/loading.gif' ) no-repeat 5px 5px; |
line-height: 16px; |
} |
/* class for hiding elements without using display:none */ |
.x-hidden, .x-hide-offsets { |
position:absolute; |
left:-10000px; |
top:-10000px; |
visibility:hidden; |
} |
.x-hide-display { |
display:none !important; |
} |
.x-hide-visibility { |
visibility:hidden !important; |
} |
.x-masked { |
overflow: hidden !important; |
} |
.x-masked select, .x-masked object, .x-masked embed { |
visibility: hidden; |
} |
.x-layer { |
visibility: hidden; |
} |
.x-unselectable, .x-unselectable * { |
-moz-user-select: none; |
-khtml-user-select: none; |
} |
.x-repaint { |
zoom: 1; |
background-color: transparent; |
-moz-outline: none; |
} |
.x-item-disabled { |
color: gray; |
cursor: default; |
opacity: .6; |
-moz-opacity: .6; |
filter: alpha(opacity=60); |
} |
.x-item-disabled * { |
color: gray !important; |
cursor: default !important; |
} |
.x-splitbar-proxy { |
position: absolute; |
visibility: hidden; |
z-index: 20001; |
background: #aaa; |
zoom: 1; |
line-height: 1px; |
font-size: 1px; |
overflow: hidden; |
} |
.x-splitbar-h, .x-splitbar-proxy-h { |
cursor: e-resize; |
cursor: col-resize; |
} |
.x-splitbar-v, .x-splitbar-proxy-v { |
cursor: s-resize; |
cursor: row-resize; |
} |
.x-color-palette { |
width: 150px; |
height: 92px; |
cursor: pointer; |
} |
.x-color-palette a { |
border: 1px solid #fff; |
float: left; |
padding: 2px; |
text-decoration: none; |
-moz-outline: 0 none; |
outline: 0 none; |
cursor: pointer; |
} |
.x-color-palette a:hover, .x-color-palette a.x-color-palette-sel { |
border: 1px solid #8BB8F3; |
background: #deecfd; |
} |
.x-color-palette em { |
display: block; |
border: 1px solid #ACA899; |
} |
.x-color-palette em span { |
cursor: pointer; |
display: block; |
height: 10px; |
line-height: 10px; |
width: 10px; |
} |
.x-ie-shadow { |
display: none; |
position: absolute; |
overflow: hidden; |
left:0; |
top:0; |
background:#777; |
zoom:1; |
} |
.x-shadow { |
display: none; |
position: absolute; |
overflow: hidden; |
left:0; |
top:0; |
} |
.x-shadow * { |
overflow: hidden; |
} |
.x-shadow * { |
padding: 0; |
border: 0; |
margin: 0; |
clear: none; |
zoom: 1; |
} |
/* top bottom */ |
.x-shadow .xstc, .x-shadow .xsbc { |
height: 6px; |
float: left; |
} |
/* corners */ |
.x-shadow .xstl, .x-shadow .xstr, .x-shadow .xsbl, .x-shadow .xsbr { |
width: 6px; |
height: 6px; |
float: left; |
} |
/* sides */ |
.x-shadow .xsc { |
width: 100%; |
} |
.x-shadow .xsml, .x-shadow .xsmr { |
width: 6px; |
float: left; |
height: 100%; |
} |
.x-shadow .xsmc { |
float: left; |
height: 100%; |
background: transparent url( ../images/default/shadow-c.png ); |
} |
.x-shadow .xst, .x-shadow .xsb { |
height: 6px; |
overflow: hidden; |
width: 100%; |
} |
.x-shadow .xsml { |
background: transparent url( ../images/default/shadow-lr.png ) repeat-y 0 0; |
} |
.x-shadow .xsmr { |
background: transparent url( ../images/default/shadow-lr.png ) repeat-y -6px 0; |
} |
.x-shadow .xstl { |
background: transparent url( ../images/default/shadow.png ) no-repeat 0 0; |
} |
.x-shadow .xstc { |
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -30px; |
} |
.x-shadow .xstr { |
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -18px; |
} |
.x-shadow .xsbl { |
background: transparent url( ../images/default/shadow.png ) no-repeat 0 -12px; |
} |
.x-shadow .xsbc { |
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -36px; |
} |
.x-shadow .xsbr { |
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -6px; |
} |
.loading-indicator { |
font-size: 11px; |
background-image: url(../images/default/grid/loading.gif); |
background-repeat: no-repeat; |
background-position: left; |
padding-left: 20px; |
line-height: 16px; |
margin: 3px; |
} |
.x-text-resize { |
position: absolute; |
left: -1000px; |
top: -1000px; |
visibility: hidden; |
zoom: 1; |
} |
.x-drag-overlay { |
width: 100%; |
height: 100%; |
display: none; |
position: absolute; |
left: 0; |
top: 0; |
background-image:url(../images/default/s.gif); |
z-index: 20000; |
} |
.x-clear { |
clear:both; |
height:0; |
overflow:hidden; |
line-height:0; |
font-size:0; |
} |
.x-spotlight { |
z-index: 8999; |
position: absolute; |
top:0; |
left:0; |
-moz-opacity: 0.5; |
opacity: .50; |
filter: alpha(opacity=50); |
background-color: #CCC; |
width:0; |
height:0; |
zoom: 1; |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/css/box.css |
---|
New file |
0,0 → 1,111 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
/* |
Creates rounded, raised boxes like on the Ext website - the markup isn't pretty: |
<div class="x-box-blue"> |
<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div> |
<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"> |
<h3>YOUR TITLE HERE (optional)</h3> |
<div>YOUR CONTENT HERE</div> |
</div></div></div> |
<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div> |
</div> |
*/ |
.x-box-tl { |
background: transparent url(../images/default/box/corners.gif) no-repeat 0 0; |
zoom:1; |
} |
.x-box-tc { |
height: 8px; |
background: transparent url(../images/default/box/tb.gif) repeat-x 0 0; |
overflow: hidden; |
} |
.x-box-tr { |
background: transparent url(../images/default/box/corners.gif) no-repeat right -8px; |
} |
.x-box-ml { |
background: transparent url(../images/default/box/l.gif) repeat-y 0; |
padding-left: 4px; |
overflow: hidden; |
zoom:1; |
} |
.x-box-mc { |
background: #eee url(../images/default/box/tb.gif) repeat-x 0 -16px; |
padding: 4px 10px; |
font-family: "Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif; |
color: #393939; |
font-size: 12px; |
} |
.x-box-mc h3 { |
font-size: 14px; |
font-weight: bold; |
margin: 0 0 4px 0; |
zoom:1; |
} |
.x-box-mr { |
background: transparent url(../images/default/box/r.gif) repeat-y right; |
padding-right: 4px; |
overflow: hidden; |
} |
.x-box-bl { |
background: transparent url(../images/default/box/corners.gif) no-repeat 0 -16px; |
zoom:1; |
} |
.x-box-bc { |
background: transparent url(../images/default/box/tb.gif) repeat-x 0 -8px; |
height: 8px; |
overflow: hidden; |
} |
.x-box-br { |
background: transparent url(../images/default/box/corners.gif) no-repeat right -24px; |
} |
.x-box-tl, .x-box-bl { |
padding-left: 8px; |
overflow: hidden; |
} |
.x-box-tr, .x-box-br { |
padding-right: 8px; |
overflow: hidden; |
} |
.x-box-blue .x-box-bl, .x-box-blue .x-box-br, .x-box-blue .x-box-tl, .x-box-blue .x-box-tr { |
background-image: url(../images/default/box/corners-blue.gif); |
} |
.x-box-blue .x-box-bc, .x-box-blue .x-box-mc, .x-box-blue .x-box-tc { |
background-image: url(../images/default/box/tb-blue.gif); |
} |
.x-box-blue .x-box-mc { |
background-color: #c3daf9; |
} |
.x-box-blue .x-box-mc h3 { |
color: #17385b; |
} |
.x-box-blue .x-box-ml { |
background-image: url(../images/default/box/l-blue.gif); |
} |
.x-box-blue .x-box-mr { |
background-image: url(../images/default/box/r-blue.gif); |
} |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/raw-images/shadow.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/resources/raw-images/shadow.psd |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/INCLUDE_ORDER.txt |
---|
New file |
0,0 → 1,35 |
All adapter related files below are located in |
/adapters/<lib name>/ of this zip file. |
Your include order should be: |
Ext Stand-alone |
------------------------------------------------------------------- |
ext-base.js |
ext-all.js (or your choice of files) |
Yahoo! UI (.12+) |
------------------------------------------------------------------- |
yui-utilities.js |
ext-yui-adapter.js |
ext-all.js (or your choice of files) |
jQuery (1.1+) |
------------------------------------------------------------------- |
jquery.js |
ext-jquery-adapter.js |
ext-all.js (or your choice of files) |
Prototype (1.5+) / Scriptaculous (1.7+) |
------------------------------------------------------------------- |
prototype.js |
scriptaculous.js?load=effects (or whatever you want to load) |
ext-prototype-adapter.js |
ext-all.js (or your choice of files) |
See the examples folders for more examples. |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/LICENSE.txt |
---|
New file |
0,0 → 1,50 |
Ext JS - JavaScript Library |
Copyright (c) 2006-2007, Ext JS, LLC |
All rights reserved. |
licensing@extjs.com |
http://extjs.com/license |
License of CSS and Graphics ("Assets") |
------------------------------------------------------------------------------------------ |
The Assets distributed with Ext are licensed for use ONLY |
with their associated Ext JavaScript component ("Component"). Use of the Assets in |
any way that does not also include the Component is prohibited without explicit |
permission from Ext JS, LLC. Deriving images and CSS from the Assets in an effort |
to bypass this license is also prohibited. |
Open Source License |
------------------------------------------------------------------------------------------ |
Ext is also licensed under the terms of the Open Source LGPL 3.0 license. You may use |
our open source license if you: |
* Want to use Ext in an open source project that precludes using non-open source software |
* Plan to use Ext in a personal, educational or non-profit manner |
* Are using Ext in a commercial application that is not a software development library |
or toolkit, you will meet LGPL requirements and you do not wish to support the project |
http://www.gnu.org/licenses/lgpl.html |
Commercial License |
------------------------------------------------------------------------------------------ |
If you are using this library for commercial purposes, we encourage you to purchase |
a commercial license. Please visit http://extjs.com/license for more details. |
OEM / Reseller License |
------------------------------------------------------------------------------------------ |
If you plan to distribute Ext in a product that will be packaged or sold as a software |
development library, toolkit or plug-in-based framework ("LIBRARY"), we require that you |
work with us to establish a specific license that is appropriate. Use of the open source |
license in a LIBRARY is not permitted without explicit permission from Ext JS, LLC. |
For more details, please visit: http://extjs.com/license. |
-- |
This library is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
Lesser General Public License for more details. |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/adapter/jquery/ext-jquery-adapter.js |
---|
New file |
0,0 → 1,10 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
Ext={version:"2.0.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,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.pop=="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,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isGecko&&isMac))});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())}; |
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(J,G,E,H,F){var I={type:J,url:G,data:H,timeout:E.timeout,complete:D(E)};if(F){if(F.xmlData){I.data=F.xmlData;I.processData=false;I.type="POST";I.contentType="text/xml"}else{if(F.jsonData){I.data=typeof F.jsonData=="object"?Ext.encode(F.jsonData):F.jsonData;I.processData=false;I.type="POST";I.contentType="text/javascript"}}if(F.headers){I.beforeSend=function(M){var K=F.headers;for(var L in K){if(K.hasOwnProperty(L)){M.setRequestHeader(L,K[L])}}}}}jQuery.ajax(I)},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)}})(); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/adapter/jquery/jquery.js |
---|
New file |
0,0 → 1,3408 |
(function(){ |
/* |
* jQuery 1.2.3 - New Wave Javascript |
* |
* Copyright (c) 2008 John Resig (jquery.com) |
* Dual licensed under the MIT (MIT-LICENSE.txt) |
* and GPL (GPL-LICENSE.txt) licenses. |
* |
* $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $ |
* $Rev: 4663 $ |
*/ |
// Map over jQuery in case of overwrite |
if ( window.jQuery ) |
var _jQuery = window.jQuery; |
var jQuery = window.jQuery = function( selector, context ) { |
// The jQuery object is actually just the init constructor 'enhanced' |
return new jQuery.prototype.init( selector, context ); |
}; |
// Map over the $ in case of overwrite |
if ( window.$ ) |
var _$ = window.$; |
// Map the jQuery namespace to the '$' one |
window.$ = jQuery; |
// A simple way to check for HTML strings or ID strings |
// (both of which we optimize for) |
var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/; |
// Is it a simple selector |
var isSimple = /^.[^:#\[\.]*$/; |
jQuery.fn = jQuery.prototype = { |
init: function( selector, context ) { |
// Make sure that a selection was provided |
selector = selector || document; |
// Handle $(DOMElement) |
if ( selector.nodeType ) { |
this[0] = selector; |
this.length = 1; |
return this; |
// Handle HTML strings |
} else if ( typeof selector == "string" ) { |
// Are we dealing with HTML string or an ID? |
var match = quickExpr.exec( selector ); |
// Verify a match, and that no context was specified for #id |
if ( match && (match[1] || !context) ) { |
// HANDLE: $(html) -> $(array) |
if ( match[1] ) |
selector = jQuery.clean( [ match[1] ], context ); |
// HANDLE: $("#id") |
else { |
var elem = document.getElementById( match[3] ); |
// Make sure an element was located |
if ( elem ) |
// Handle the case where IE and Opera return items |
// by name instead of ID |
if ( elem.id != match[3] ) |
return jQuery().find( selector ); |
// Otherwise, we inject the element directly into the jQuery object |
else { |
this[0] = elem; |
this.length = 1; |
return this; |
} |
else |
selector = []; |
} |
// HANDLE: $(expr, [context]) |
// (which is just equivalent to: $(content).find(expr) |
} else |
return new jQuery( context ).find( selector ); |
// HANDLE: $(function) |
// Shortcut for document ready |
} else if ( jQuery.isFunction( selector ) ) |
return new jQuery( document )[ jQuery.fn.ready ? "ready" : "load" ]( selector ); |
return this.setArray( |
// HANDLE: $(array) |
selector.constructor == Array && selector || |
// HANDLE: $(arraylike) |
// Watch for when an array-like object, contains DOM nodes, is passed in as the selector |
(selector.jquery || selector.length && selector != window && !selector.nodeType && selector[0] != undefined && selector[0].nodeType) && jQuery.makeArray( selector ) || |
// HANDLE: $(*) |
[ selector ] ); |
}, |
// The current version of jQuery being used |
jquery: "1.2.3", |
// The number of elements contained in the matched element set |
size: function() { |
return this.length; |
}, |
// The number of elements contained in the matched element set |
length: 0, |
// Get the Nth element in the matched element set OR |
// Get the whole matched element set as a clean array |
get: function( num ) { |
return num == undefined ? |
// Return a 'clean' array |
jQuery.makeArray( this ) : |
// Return just the object |
this[ num ]; |
}, |
// Take an array of elements and push it onto the stack |
// (returning the new matched element set) |
pushStack: function( elems ) { |
// Build a new jQuery matched element set |
var ret = jQuery( elems ); |
// Add the old object onto the stack (as a reference) |
ret.prevObject = this; |
// Return the newly-formed element set |
return ret; |
}, |
// Force the current matched set of elements to become |
// the specified array of elements (destroying the stack in the process) |
// You should use pushStack() in order to do this, but maintain the stack |
setArray: function( elems ) { |
// Resetting the length to 0, then using the native Array push |
// is a super-fast way to populate an object with array-like properties |
this.length = 0; |
Array.prototype.push.apply( this, elems ); |
return this; |
}, |
// Execute a callback for every element in the matched set. |
// (You can seed the arguments with an array of args, but this is |
// only used internally.) |
each: function( callback, args ) { |
return jQuery.each( this, callback, args ); |
}, |
// Determine the position of an element within |
// the matched set of elements |
index: function( elem ) { |
var ret = -1; |
// Locate the position of the desired element |
this.each(function(i){ |
if ( this == elem ) |
ret = i; |
}); |
return ret; |
}, |
attr: function( name, value, type ) { |
var options = name; |
// Look for the case where we're accessing a style value |
if ( name.constructor == String ) |
if ( value == undefined ) |
return this.length && jQuery[ type || "attr" ]( this[0], name ) || undefined; |
else { |
options = {}; |
options[ name ] = value; |
} |
// Check to see if we're setting style values |
return this.each(function(i){ |
// Set all the styles |
for ( name in options ) |
jQuery.attr( |
type ? |
this.style : |
this, |
name, jQuery.prop( this, options[ name ], type, i, name ) |
); |
}); |
}, |
css: function( key, value ) { |
// ignore negative width and height values |
if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) |
value = undefined; |
return this.attr( key, value, "curCSS" ); |
}, |
text: function( text ) { |
if ( typeof text != "object" && text != null ) |
return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); |
var ret = ""; |
jQuery.each( text || this, function(){ |
jQuery.each( this.childNodes, function(){ |
if ( this.nodeType != 8 ) |
ret += this.nodeType != 1 ? |
this.nodeValue : |
jQuery.fn.text( [ this ] ); |
}); |
}); |
return ret; |
}, |
wrapAll: function( html ) { |
if ( this[0] ) |
// The elements to wrap the target around |
jQuery( html, this[0].ownerDocument ) |
.clone() |
.insertBefore( this[0] ) |
.map(function(){ |
var elem = this; |
while ( elem.firstChild ) |
elem = elem.firstChild; |
return elem; |
}) |
.append(this); |
return this; |
}, |
wrapInner: function( html ) { |
return this.each(function(){ |
jQuery( this ).contents().wrapAll( html ); |
}); |
}, |
wrap: function( html ) { |
return this.each(function(){ |
jQuery( this ).wrapAll( html ); |
}); |
}, |
append: function() { |
return this.domManip(arguments, true, false, function(elem){ |
if (this.nodeType == 1) |
this.appendChild( elem ); |
}); |
}, |
prepend: function() { |
return this.domManip(arguments, true, true, function(elem){ |
if (this.nodeType == 1) |
this.insertBefore( elem, this.firstChild ); |
}); |
}, |
before: function() { |
return this.domManip(arguments, false, false, function(elem){ |
this.parentNode.insertBefore( elem, this ); |
}); |
}, |
after: function() { |
return this.domManip(arguments, false, true, function(elem){ |
this.parentNode.insertBefore( elem, this.nextSibling ); |
}); |
}, |
end: function() { |
return this.prevObject || jQuery( [] ); |
}, |
find: function( selector ) { |
var elems = jQuery.map(this, function(elem){ |
return jQuery.find( selector, elem ); |
}); |
return this.pushStack( /[^+>] [^+>]/.test( selector ) || selector.indexOf("..") > -1 ? |
jQuery.unique( elems ) : |
elems ); |
}, |
clone: function( events ) { |
// Do the clone |
var ret = this.map(function(){ |
if ( jQuery.browser.msie && !jQuery.isXMLDoc(this) ) { |
// IE copies events bound via attachEvent when |
// using cloneNode. Calling detachEvent on the |
// clone will also remove the events from the orignal |
// In order to get around this, we use innerHTML. |
// Unfortunately, this means some modifications to |
// attributes in IE that are actually only stored |
// as properties will not be copied (such as the |
// the name attribute on an input). |
var clone = this.cloneNode(true), |
container = document.createElement("div"); |
container.appendChild(clone); |
return jQuery.clean([container.innerHTML])[0]; |
} else |
return this.cloneNode(true); |
}); |
// Need to set the expando to null on the cloned set if it exists |
// removeData doesn't work here, IE removes it from the original as well |
// this is primarily for IE but the data expando shouldn't be copied over in any browser |
var clone = ret.find("*").andSelf().each(function(){ |
if ( this[ expando ] != undefined ) |
this[ expando ] = null; |
}); |
// Copy the events from the original to the clone |
if ( events === true ) |
this.find("*").andSelf().each(function(i){ |
if (this.nodeType == 3) |
return; |
var events = jQuery.data( this, "events" ); |
for ( var type in events ) |
for ( var handler in events[ type ] ) |
jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data ); |
}); |
// Return the cloned set |
return ret; |
}, |
filter: function( selector ) { |
return this.pushStack( |
jQuery.isFunction( selector ) && |
jQuery.grep(this, function(elem, i){ |
return selector.call( elem, i ); |
}) || |
jQuery.multiFilter( selector, this ) ); |
}, |
not: function( selector ) { |
if ( selector.constructor == String ) |
// test special case where just one selector is passed in |
if ( isSimple.test( selector ) ) |
return this.pushStack( jQuery.multiFilter( selector, this, true ) ); |
else |
selector = jQuery.multiFilter( selector, this ); |
var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; |
return this.filter(function() { |
return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; |
}); |
}, |
add: function( selector ) { |
return !selector ? this : this.pushStack( jQuery.merge( |
this.get(), |
selector.constructor == String ? |
jQuery( selector ).get() : |
selector.length != undefined && (!selector.nodeName || jQuery.nodeName(selector, "form")) ? |
selector : [selector] ) ); |
}, |
is: function( selector ) { |
return selector ? |
jQuery.multiFilter( selector, this ).length > 0 : |
false; |
}, |
hasClass: function( selector ) { |
return this.is( "." + selector ); |
}, |
val: function( value ) { |
if ( value == undefined ) { |
if ( this.length ) { |
var elem = this[0]; |
// We need to handle select boxes special |
if ( jQuery.nodeName( elem, "select" ) ) { |
var index = elem.selectedIndex, |
values = [], |
options = elem.options, |
one = elem.type == "select-one"; |
// Nothing was selected |
if ( index < 0 ) |
return null; |
// Loop through all the selected options |
for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { |
var option = options[ i ]; |
if ( option.selected ) { |
// Get the specifc value for the option |
value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value; |
// We don't need an array for one selects |
if ( one ) |
return value; |
// Multi-Selects return an array |
values.push( value ); |
} |
} |
return values; |
// Everything else, we just grab the value |
} else |
return (this[0].value || "").replace(/\r/g, ""); |
} |
return undefined; |
} |
return this.each(function(){ |
if ( this.nodeType != 1 ) |
return; |
if ( value.constructor == Array && /radio|checkbox/.test( this.type ) ) |
this.checked = (jQuery.inArray(this.value, value) >= 0 || |
jQuery.inArray(this.name, value) >= 0); |
else if ( jQuery.nodeName( this, "select" ) ) { |
var values = value.constructor == Array ? |
value : |
[ value ]; |
jQuery( "option", this ).each(function(){ |
this.selected = (jQuery.inArray( this.value, values ) >= 0 || |
jQuery.inArray( this.text, values ) >= 0); |
}); |
if ( !values.length ) |
this.selectedIndex = -1; |
} else |
this.value = value; |
}); |
}, |
html: function( value ) { |
return value == undefined ? |
(this.length ? |
this[0].innerHTML : |
null) : |
this.empty().append( value ); |
}, |
replaceWith: function( value ) { |
return this.after( value ).remove(); |
}, |
eq: function( i ) { |
return this.slice( i, i + 1 ); |
}, |
slice: function() { |
return this.pushStack( Array.prototype.slice.apply( this, arguments ) ); |
}, |
map: function( callback ) { |
return this.pushStack( jQuery.map(this, function(elem, i){ |
return callback.call( elem, i, elem ); |
})); |
}, |
andSelf: function() { |
return this.add( this.prevObject ); |
}, |
data: function( key, value ){ |
var parts = key.split("."); |
parts[1] = parts[1] ? "." + parts[1] : ""; |
if ( value == null ) { |
var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); |
if ( data == undefined && this.length ) |
data = jQuery.data( this[0], key ); |
return data == null && parts[1] ? |
this.data( parts[0] ) : |
data; |
} else |
return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){ |
jQuery.data( this, key, value ); |
}); |
}, |
removeData: function( key ){ |
return this.each(function(){ |
jQuery.removeData( this, key ); |
}); |
}, |
domManip: function( args, table, reverse, callback ) { |
var clone = this.length > 1, elems; |
return this.each(function(){ |
if ( !elems ) { |
elems = jQuery.clean( args, this.ownerDocument ); |
if ( reverse ) |
elems.reverse(); |
} |
var obj = this; |
if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) ) |
obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") ); |
var scripts = jQuery( [] ); |
jQuery.each(elems, function(){ |
var elem = clone ? |
jQuery( this ).clone( true )[0] : |
this; |
// execute all scripts after the elements have been injected |
if ( jQuery.nodeName( elem, "script" ) ) { |
scripts = scripts.add( elem ); |
} else { |
// Remove any inner scripts for later evaluation |
if ( elem.nodeType == 1 ) |
scripts = scripts.add( jQuery( "script", elem ).remove() ); |
// Inject the elements into the document |
callback.call( obj, elem ); |
} |
}); |
scripts.each( evalScript ); |
}); |
} |
}; |
// Give the init function the jQuery prototype for later instantiation |
jQuery.prototype.init.prototype = jQuery.prototype; |
function evalScript( i, elem ) { |
if ( elem.src ) |
jQuery.ajax({ |
url: elem.src, |
async: false, |
dataType: "script" |
}); |
else |
jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); |
if ( elem.parentNode ) |
elem.parentNode.removeChild( elem ); |
} |
jQuery.extend = jQuery.fn.extend = function() { |
// copy reference to target object |
var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; |
// Handle a deep copy situation |
if ( target.constructor == Boolean ) { |
deep = target; |
target = arguments[1] || {}; |
// skip the boolean and the target |
i = 2; |
} |
// Handle case when target is a string or something (possible in deep copy) |
if ( typeof target != "object" && typeof target != "function" ) |
target = {}; |
// extend jQuery itself if only one argument is passed |
if ( length == 1 ) { |
target = this; |
i = 0; |
} |
for ( ; i < length; i++ ) |
// Only deal with non-null/undefined values |
if ( (options = arguments[ i ]) != null ) |
// Extend the base object |
for ( var name in options ) { |
// Prevent never-ending loop |
if ( target === options[ name ] ) |
continue; |
// Recurse if we're merging object values |
if ( deep && options[ name ] && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType ) |
target[ name ] = jQuery.extend( target[ name ], options[ name ] ); |
// Don't bring in undefined values |
else if ( options[ name ] != undefined ) |
target[ name ] = options[ name ]; |
} |
// Return the modified object |
return target; |
}; |
var expando = "jQuery" + (new Date()).getTime(), uuid = 0, windowData = {}; |
// exclude the following css properties to add px |
var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i; |
jQuery.extend({ |
noConflict: function( deep ) { |
window.$ = _$; |
if ( deep ) |
window.jQuery = _jQuery; |
return jQuery; |
}, |
// See test/unit/core.js for details concerning this function. |
isFunction: function( fn ) { |
return !!fn && typeof fn != "string" && !fn.nodeName && |
fn.constructor != Array && /function/i.test( fn + "" ); |
}, |
// check if an element is in a (or is an) XML document |
isXMLDoc: function( elem ) { |
return elem.documentElement && !elem.body || |
elem.tagName && elem.ownerDocument && !elem.ownerDocument.body; |
}, |
// Evalulates a script in a global context |
globalEval: function( data ) { |
data = jQuery.trim( data ); |
if ( data ) { |
// Inspired by code by Andrea Giammarchi |
// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html |
var head = document.getElementsByTagName("head")[0] || document.documentElement, |
script = document.createElement("script"); |
script.type = "text/javascript"; |
if ( jQuery.browser.msie ) |
script.text = data; |
else |
script.appendChild( document.createTextNode( data ) ); |
head.appendChild( script ); |
head.removeChild( script ); |
} |
}, |
nodeName: function( elem, name ) { |
return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); |
}, |
cache: {}, |
data: function( elem, name, data ) { |
elem = elem == window ? |
windowData : |
elem; |
var id = elem[ expando ]; |
// Compute a unique ID for the element |
if ( !id ) |
id = elem[ expando ] = ++uuid; |
// Only generate the data cache if we're |
// trying to access or manipulate it |
if ( name && !jQuery.cache[ id ] ) |
jQuery.cache[ id ] = {}; |
// Prevent overriding the named cache with undefined values |
if ( data != undefined ) |
jQuery.cache[ id ][ name ] = data; |
// Return the named cache data, or the ID for the element |
return name ? |
jQuery.cache[ id ][ name ] : |
id; |
}, |
removeData: function( elem, name ) { |
elem = elem == window ? |
windowData : |
elem; |
var id = elem[ expando ]; |
// If we want to remove a specific section of the element's data |
if ( name ) { |
if ( jQuery.cache[ id ] ) { |
// Remove the section of cache data |
delete jQuery.cache[ id ][ name ]; |
// If we've removed all the data, remove the element's cache |
name = ""; |
for ( name in jQuery.cache[ id ] ) |
break; |
if ( !name ) |
jQuery.removeData( elem ); |
} |
// Otherwise, we want to remove all of the element's data |
} else { |
// Clean up the element expando |
try { |
delete elem[ expando ]; |
} catch(e){ |
// IE has trouble directly removing the expando |
// but it's ok with using removeAttribute |
if ( elem.removeAttribute ) |
elem.removeAttribute( expando ); |
} |
// Completely remove the data cache |
delete jQuery.cache[ id ]; |
} |
}, |
// args is for internal usage only |
each: function( object, callback, args ) { |
if ( args ) { |
if ( object.length == undefined ) { |
for ( var name in object ) |
if ( callback.apply( object[ name ], args ) === false ) |
break; |
} else |
for ( var i = 0, length = object.length; i < length; i++ ) |
if ( callback.apply( object[ i ], args ) === false ) |
break; |
// A special, fast, case for the most common use of each |
} else { |
if ( object.length == undefined ) { |
for ( var name in object ) |
if ( callback.call( object[ name ], name, object[ name ] ) === false ) |
break; |
} else |
for ( var i = 0, length = object.length, value = object[0]; |
i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} |
} |
return object; |
}, |
prop: function( elem, value, type, i, name ) { |
// Handle executable functions |
if ( jQuery.isFunction( value ) ) |
value = value.call( elem, i ); |
// Handle passing in a number to a CSS property |
return value && value.constructor == Number && type == "curCSS" && !exclude.test( name ) ? |
value + "px" : |
value; |
}, |
className: { |
// internal only, use addClass("class") |
add: function( elem, classNames ) { |
jQuery.each((classNames || "").split(/\s+/), function(i, className){ |
if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) |
elem.className += (elem.className ? " " : "") + className; |
}); |
}, |
// internal only, use removeClass("class") |
remove: function( elem, classNames ) { |
if (elem.nodeType == 1) |
elem.className = classNames != undefined ? |
jQuery.grep(elem.className.split(/\s+/), function(className){ |
return !jQuery.className.has( classNames, className ); |
}).join(" ") : |
""; |
}, |
// internal only, use is(".class") |
has: function( elem, className ) { |
return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; |
} |
}, |
// A method for quickly swapping in/out CSS properties to get correct calculations |
swap: function( elem, options, callback ) { |
var old = {}; |
// Remember the old values, and insert the new ones |
for ( var name in options ) { |
old[ name ] = elem.style[ name ]; |
elem.style[ name ] = options[ name ]; |
} |
callback.call( elem ); |
// Revert the old values |
for ( var name in options ) |
elem.style[ name ] = old[ name ]; |
}, |
css: function( elem, name, force ) { |
if ( name == "width" || name == "height" ) { |
var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; |
function getWH() { |
val = name == "width" ? elem.offsetWidth : elem.offsetHeight; |
var padding = 0, border = 0; |
jQuery.each( which, function() { |
padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; |
border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; |
}); |
val -= Math.round(padding + border); |
} |
if ( jQuery(elem).is(":visible") ) |
getWH(); |
else |
jQuery.swap( elem, props, getWH ); |
return Math.max(0, val); |
} |
return jQuery.curCSS( elem, name, force ); |
}, |
curCSS: function( elem, name, force ) { |
var ret; |
// A helper method for determining if an element's values are broken |
function color( elem ) { |
if ( !jQuery.browser.safari ) |
return false; |
var ret = document.defaultView.getComputedStyle( elem, null ); |
return !ret || ret.getPropertyValue("color") == ""; |
} |
// We need to handle opacity special in IE |
if ( name == "opacity" && jQuery.browser.msie ) { |
ret = jQuery.attr( elem.style, "opacity" ); |
return ret == "" ? |
"1" : |
ret; |
} |
// Opera sometimes will give the wrong display answer, this fixes it, see #2037 |
if ( jQuery.browser.opera && name == "display" ) { |
var save = elem.style.outline; |
elem.style.outline = "0 solid black"; |
elem.style.outline = save; |
} |
// Make sure we're using the right name for getting the float value |
if ( name.match( /float/i ) ) |
name = styleFloat; |
if ( !force && elem.style && elem.style[ name ] ) |
ret = elem.style[ name ]; |
else if ( document.defaultView && document.defaultView.getComputedStyle ) { |
// Only "float" is needed here |
if ( name.match( /float/i ) ) |
name = "float"; |
name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); |
var getComputedStyle = document.defaultView.getComputedStyle( elem, null ); |
if ( getComputedStyle && !color( elem ) ) |
ret = getComputedStyle.getPropertyValue( name ); |
// If the element isn't reporting its values properly in Safari |
// then some display: none elements are involved |
else { |
var swap = [], stack = []; |
// Locate all of the parent display: none elements |
for ( var a = elem; a && color(a); a = a.parentNode ) |
stack.unshift(a); |
// Go through and make them visible, but in reverse |
// (It would be better if we knew the exact display type that they had) |
for ( var i = 0; i < stack.length; i++ ) |
if ( color( stack[ i ] ) ) { |
swap[ i ] = stack[ i ].style.display; |
stack[ i ].style.display = "block"; |
} |
// Since we flip the display style, we have to handle that |
// one special, otherwise get the value |
ret = name == "display" && swap[ stack.length - 1 ] != null ? |
"none" : |
( getComputedStyle && getComputedStyle.getPropertyValue( name ) ) || ""; |
// Finally, revert the display styles back |
for ( var i = 0; i < swap.length; i++ ) |
if ( swap[ i ] != null ) |
stack[ i ].style.display = swap[ i ]; |
} |
// We should always get a number back from opacity |
if ( name == "opacity" && ret == "" ) |
ret = "1"; |
} else if ( elem.currentStyle ) { |
var camelCase = name.replace(/\-(\w)/g, function(all, letter){ |
return letter.toUpperCase(); |
}); |
ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; |
// From the awesome hack by Dean Edwards |
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 |
// If we're not dealing with a regular pixel number |
// but a number that has a weird ending, we need to convert it to pixels |
if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { |
// Remember the original values |
var style = elem.style.left, runtimeStyle = elem.runtimeStyle.left; |
// Put in the new values to get a computed value out |
elem.runtimeStyle.left = elem.currentStyle.left; |
elem.style.left = ret || 0; |
ret = elem.style.pixelLeft + "px"; |
// Revert the changed values |
elem.style.left = style; |
elem.runtimeStyle.left = runtimeStyle; |
} |
} |
return ret; |
}, |
clean: function( elems, context ) { |
var ret = []; |
context = context || document; |
// !context.createElement fails in IE with an error but returns typeof 'object' |
if (typeof context.createElement == 'undefined') |
context = context.ownerDocument || context[0] && context[0].ownerDocument || document; |
jQuery.each(elems, function(i, elem){ |
if ( !elem ) |
return; |
if ( elem.constructor == Number ) |
elem = elem.toString(); |
// Convert html string into DOM nodes |
if ( typeof elem == "string" ) { |
// Fix "XHTML"-style tags in all browsers |
elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ |
return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? |
all : |
front + "></" + tag + ">"; |
}); |
// Trim whitespace, otherwise indexOf won't work as expected |
var tags = jQuery.trim( elem ).toLowerCase(), div = context.createElement("div"); |
var wrap = |
// option or optgroup |
!tags.indexOf("<opt") && |
[ 1, "<select multiple='multiple'>", "</select>" ] || |
!tags.indexOf("<leg") && |
[ 1, "<fieldset>", "</fieldset>" ] || |
tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && |
[ 1, "<table>", "</table>" ] || |
!tags.indexOf("<tr") && |
[ 2, "<table><tbody>", "</tbody></table>" ] || |
// <thead> matched above |
(!tags.indexOf("<td") || !tags.indexOf("<th")) && |
[ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] || |
!tags.indexOf("<col") && |
[ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] || |
// IE can't serialize <link> and <script> tags normally |
jQuery.browser.msie && |
[ 1, "div<div>", "</div>" ] || |
[ 0, "", "" ]; |
// Go to html and back, then peel off extra wrappers |
div.innerHTML = wrap[1] + elem + wrap[2]; |
// Move to the right depth |
while ( wrap[0]-- ) |
div = div.lastChild; |
// Remove IE's autoinserted <tbody> from table fragments |
if ( jQuery.browser.msie ) { |
// String was a <table>, *may* have spurious <tbody> |
var tbody = !tags.indexOf("<table") && tags.indexOf("<tbody") < 0 ? |
div.firstChild && div.firstChild.childNodes : |
// String was a bare <thead> or <tfoot> |
wrap[1] == "<table>" && tags.indexOf("<tbody") < 0 ? |
div.childNodes : |
[]; |
for ( var j = tbody.length - 1; j >= 0 ; --j ) |
if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) |
tbody[ j ].parentNode.removeChild( tbody[ j ] ); |
// IE completely kills leading whitespace when innerHTML is used |
if ( /^\s/.test( elem ) ) |
div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild ); |
} |
elem = jQuery.makeArray( div.childNodes ); |
} |
if ( elem.length === 0 && (!jQuery.nodeName( elem, "form" ) && !jQuery.nodeName( elem, "select" )) ) |
return; |
if ( elem[0] == undefined || jQuery.nodeName( elem, "form" ) || elem.options ) |
ret.push( elem ); |
else |
ret = jQuery.merge( ret, elem ); |
}); |
return ret; |
}, |
attr: function( elem, name, value ) { |
// don't set attributes on text and comment nodes |
if (!elem || elem.nodeType == 3 || elem.nodeType == 8) |
return undefined; |
var fix = jQuery.isXMLDoc( elem ) ? |
{} : |
jQuery.props; |
// Safari mis-reports the default selected property of a hidden option |
// Accessing the parent's selectedIndex property fixes it |
if ( name == "selected" && jQuery.browser.safari ) |
elem.parentNode.selectedIndex; |
// Certain attributes only work when accessed via the old DOM 0 way |
if ( fix[ name ] ) { |
if ( value != undefined ) |
elem[ fix[ name ] ] = value; |
return elem[ fix[ name ] ]; |
} else if ( jQuery.browser.msie && name == "style" ) |
return jQuery.attr( elem.style, "cssText", value ); |
else if ( value == undefined && jQuery.browser.msie && jQuery.nodeName( elem, "form" ) && (name == "action" || name == "method") ) |
return elem.getAttributeNode( name ).nodeValue; |
// IE elem.getAttribute passes even for style |
else if ( elem.tagName ) { |
if ( value != undefined ) { |
// We can't allow the type property to be changed (since it causes problems in IE) |
if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode ) |
throw "type property can't be changed"; |
// convert the value to a string (all browsers do this but IE) see #1070 |
elem.setAttribute( name, "" + value ); |
} |
if ( jQuery.browser.msie && /href|src/.test( name ) && !jQuery.isXMLDoc( elem ) ) |
return elem.getAttribute( name, 2 ); |
return elem.getAttribute( name ); |
// elem is actually elem.style ... set the style |
} else { |
// IE actually uses filters for opacity |
if ( name == "opacity" && jQuery.browser.msie ) { |
if ( value != undefined ) { |
// IE has trouble with opacity if it does not have layout |
// Force it by setting the zoom level |
elem.zoom = 1; |
// Set the alpha filter to set the opacity |
elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) + |
(parseFloat( value ).toString() == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")"); |
} |
return elem.filter && elem.filter.indexOf("opacity=") >= 0 ? |
(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100).toString() : |
""; |
} |
name = name.replace(/-([a-z])/ig, function(all, letter){ |
return letter.toUpperCase(); |
}); |
if ( value != undefined ) |
elem[ name ] = value; |
return elem[ name ]; |
} |
}, |
trim: function( text ) { |
return (text || "").replace( /^\s+|\s+$/g, "" ); |
}, |
makeArray: function( array ) { |
var ret = []; |
// Need to use typeof to fight Safari childNodes crashes |
if ( typeof array != "array" ) |
for ( var i = 0, length = array.length; i < length; i++ ) |
ret.push( array[ i ] ); |
else |
ret = array.slice( 0 ); |
return ret; |
}, |
inArray: function( elem, array ) { |
for ( var i = 0, length = array.length; i < length; i++ ) |
if ( array[ i ] == elem ) |
return i; |
return -1; |
}, |
merge: function( first, second ) { |
// We have to loop this way because IE & Opera overwrite the length |
// expando of getElementsByTagName |
// Also, we need to make sure that the correct elements are being returned |
// (IE returns comment nodes in a '*' query) |
if ( jQuery.browser.msie ) { |
for ( var i = 0; second[ i ]; i++ ) |
if ( second[ i ].nodeType != 8 ) |
first.push( second[ i ] ); |
} else |
for ( var i = 0; second[ i ]; i++ ) |
first.push( second[ i ] ); |
return first; |
}, |
unique: function( array ) { |
var ret = [], done = {}; |
try { |
for ( var i = 0, length = array.length; i < length; i++ ) { |
var id = jQuery.data( array[ i ] ); |
if ( !done[ id ] ) { |
done[ id ] = true; |
ret.push( array[ i ] ); |
} |
} |
} catch( e ) { |
ret = array; |
} |
return ret; |
}, |
grep: function( elems, callback, inv ) { |
var ret = []; |
// Go through the array, only saving the items |
// that pass the validator function |
for ( var i = 0, length = elems.length; i < length; i++ ) |
if ( !inv && callback( elems[ i ], i ) || inv && !callback( elems[ i ], i ) ) |
ret.push( elems[ i ] ); |
return ret; |
}, |
map: function( elems, callback ) { |
var ret = []; |
// Go through the array, translating each of the items to their |
// new value (or values). |
for ( var i = 0, length = elems.length; i < length; i++ ) { |
var value = callback( elems[ i ], i ); |
if ( value !== null && value != undefined ) { |
if ( value.constructor != Array ) |
value = [ value ]; |
ret = ret.concat( value ); |
} |
} |
return ret; |
} |
}); |
var userAgent = navigator.userAgent.toLowerCase(); |
// Figure out what browser is being used |
jQuery.browser = { |
version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1], |
safari: /webkit/.test( userAgent ), |
opera: /opera/.test( userAgent ), |
msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ), |
mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent ) |
}; |
var styleFloat = jQuery.browser.msie ? |
"styleFloat" : |
"cssFloat"; |
jQuery.extend({ |
// Check to see if the W3C box model is being used |
boxModel: !jQuery.browser.msie || document.compatMode == "CSS1Compat", |
props: { |
"for": "htmlFor", |
"class": "className", |
"float": styleFloat, |
cssFloat: styleFloat, |
styleFloat: styleFloat, |
innerHTML: "innerHTML", |
className: "className", |
value: "value", |
disabled: "disabled", |
checked: "checked", |
readonly: "readOnly", |
selected: "selected", |
maxlength: "maxLength", |
selectedIndex: "selectedIndex", |
defaultValue: "defaultValue", |
tagName: "tagName", |
nodeName: "nodeName" |
} |
}); |
jQuery.each({ |
parent: function(elem){return elem.parentNode;}, |
parents: function(elem){return jQuery.dir(elem,"parentNode");}, |
next: function(elem){return jQuery.nth(elem,2,"nextSibling");}, |
prev: function(elem){return jQuery.nth(elem,2,"previousSibling");}, |
nextAll: function(elem){return jQuery.dir(elem,"nextSibling");}, |
prevAll: function(elem){return jQuery.dir(elem,"previousSibling");}, |
siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);}, |
children: function(elem){return jQuery.sibling(elem.firstChild);}, |
contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);} |
}, function(name, fn){ |
jQuery.fn[ name ] = function( selector ) { |
var ret = jQuery.map( this, fn ); |
if ( selector && typeof selector == "string" ) |
ret = jQuery.multiFilter( selector, ret ); |
return this.pushStack( jQuery.unique( ret ) ); |
}; |
}); |
jQuery.each({ |
appendTo: "append", |
prependTo: "prepend", |
insertBefore: "before", |
insertAfter: "after", |
replaceAll: "replaceWith" |
}, function(name, original){ |
jQuery.fn[ name ] = function() { |
var args = arguments; |
return this.each(function(){ |
for ( var i = 0, length = args.length; i < length; i++ ) |
jQuery( args[ i ] )[ original ]( this ); |
}); |
}; |
}); |
jQuery.each({ |
removeAttr: function( name ) { |
jQuery.attr( this, name, "" ); |
if (this.nodeType == 1) |
this.removeAttribute( name ); |
}, |
addClass: function( classNames ) { |
jQuery.className.add( this, classNames ); |
}, |
removeClass: function( classNames ) { |
jQuery.className.remove( this, classNames ); |
}, |
toggleClass: function( classNames ) { |
jQuery.className[ jQuery.className.has( this, classNames ) ? "remove" : "add" ]( this, classNames ); |
}, |
remove: function( selector ) { |
if ( !selector || jQuery.filter( selector, [ this ] ).r.length ) { |
// Prevent memory leaks |
jQuery( "*", this ).add(this).each(function(){ |
jQuery.event.remove(this); |
jQuery.removeData(this); |
}); |
if (this.parentNode) |
this.parentNode.removeChild( this ); |
} |
}, |
empty: function() { |
// Remove element nodes and prevent memory leaks |
jQuery( ">*", this ).remove(); |
// Remove any remaining nodes |
while ( this.firstChild ) |
this.removeChild( this.firstChild ); |
} |
}, function(name, fn){ |
jQuery.fn[ name ] = function(){ |
return this.each( fn, arguments ); |
}; |
}); |
jQuery.each([ "Height", "Width" ], function(i, name){ |
var type = name.toLowerCase(); |
jQuery.fn[ type ] = function( size ) { |
// Get window width or height |
return this[0] == window ? |
// Opera reports document.body.client[Width/Height] properly in both quirks and standards |
jQuery.browser.opera && document.body[ "client" + name ] || |
// Safari reports inner[Width/Height] just fine (Mozilla and Opera include scroll bar widths) |
jQuery.browser.safari && window[ "inner" + name ] || |
// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode |
document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || document.body[ "client" + name ] : |
// Get document width or height |
this[0] == document ? |
// Either scroll[Width/Height] or offset[Width/Height], whichever is greater |
Math.max( |
Math.max(document.body["scroll" + name], document.documentElement["scroll" + name]), |
Math.max(document.body["offset" + name], document.documentElement["offset" + name]) |
) : |
// Get or set width or height on the element |
size == undefined ? |
// Get width or height on the element |
(this.length ? jQuery.css( this[0], type ) : null) : |
// Set the width or height on the element (default to pixels if value is unitless) |
this.css( type, size.constructor == String ? size : size + "px" ); |
}; |
}); |
var chars = jQuery.browser.safari && parseInt(jQuery.browser.version) < 417 ? |
"(?:[\\w*_-]|\\\\.)" : |
"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)", |
quickChild = new RegExp("^>\\s*(" + chars + "+)"), |
quickID = new RegExp("^(" + chars + "+)(#)(" + chars + "+)"), |
quickClass = new RegExp("^([#.]?)(" + chars + "*)"); |
jQuery.extend({ |
expr: { |
"": function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);}, |
"#": function(a,i,m){return a.getAttribute("id")==m[2];}, |
":": { |
// Position Checks |
lt: function(a,i,m){return i<m[3]-0;}, |
gt: function(a,i,m){return i>m[3]-0;}, |
nth: function(a,i,m){return m[3]-0==i;}, |
eq: function(a,i,m){return m[3]-0==i;}, |
first: function(a,i){return i==0;}, |
last: function(a,i,m,r){return i==r.length-1;}, |
even: function(a,i){return i%2==0;}, |
odd: function(a,i){return i%2;}, |
// Child Checks |
"first-child": function(a){return a.parentNode.getElementsByTagName("*")[0]==a;}, |
"last-child": function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;}, |
"only-child": function(a){return !jQuery.nth(a.parentNode.lastChild,2,"previousSibling");}, |
// Parent Checks |
parent: function(a){return a.firstChild;}, |
empty: function(a){return !a.firstChild;}, |
// Text Check |
contains: function(a,i,m){return (a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;}, |
// Visibility |
visible: function(a){return "hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";}, |
hidden: function(a){return "hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";}, |
// Form attributes |
enabled: function(a){return !a.disabled;}, |
disabled: function(a){return a.disabled;}, |
checked: function(a){return a.checked;}, |
selected: function(a){return a.selected||jQuery.attr(a,"selected");}, |
// Form elements |
text: function(a){return "text"==a.type;}, |
radio: function(a){return "radio"==a.type;}, |
checkbox: function(a){return "checkbox"==a.type;}, |
file: function(a){return "file"==a.type;}, |
password: function(a){return "password"==a.type;}, |
submit: function(a){return "submit"==a.type;}, |
image: function(a){return "image"==a.type;}, |
reset: function(a){return "reset"==a.type;}, |
button: function(a){return "button"==a.type||jQuery.nodeName(a,"button");}, |
input: function(a){return /input|select|textarea|button/i.test(a.nodeName);}, |
// :has() |
has: function(a,i,m){return jQuery.find(m[3],a).length;}, |
// :header |
header: function(a){return /h\d/i.test(a.nodeName);}, |
// :animated |
animated: function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;} |
} |
}, |
// The regular expressions that power the parsing engine |
parse: [ |
// Match: [@value='test'], [@foo] |
/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/, |
// Match: :contains('foo') |
/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/, |
// Match: :even, :last-chlid, #id, .class |
new RegExp("^([:.#]*)(" + chars + "+)") |
], |
multiFilter: function( expr, elems, not ) { |
var old, cur = []; |
while ( expr && expr != old ) { |
old = expr; |
var f = jQuery.filter( expr, elems, not ); |
expr = f.t.replace(/^\s*,\s*/, "" ); |
cur = not ? elems = f.r : jQuery.merge( cur, f.r ); |
} |
return cur; |
}, |
find: function( t, context ) { |
// Quickly handle non-string expressions |
if ( typeof t != "string" ) |
return [ t ]; |
// check to make sure context is a DOM element or a document |
if ( context && context.nodeType != 1 && context.nodeType != 9) |
return [ ]; |
// Set the correct context (if none is provided) |
context = context || document; |
// Initialize the search |
var ret = [context], done = [], last, nodeName; |
// Continue while a selector expression exists, and while |
// we're no longer looping upon ourselves |
while ( t && last != t ) { |
var r = []; |
last = t; |
t = jQuery.trim(t); |
var foundToken = false; |
// An attempt at speeding up child selectors that |
// point to a specific element tag |
var re = quickChild; |
var m = re.exec(t); |
if ( m ) { |
nodeName = m[1].toUpperCase(); |
// Perform our own iteration and filter |
for ( var i = 0; ret[i]; i++ ) |
for ( var c = ret[i].firstChild; c; c = c.nextSibling ) |
if ( c.nodeType == 1 && (nodeName == "*" || c.nodeName.toUpperCase() == nodeName) ) |
r.push( c ); |
ret = r; |
t = t.replace( re, "" ); |
if ( t.indexOf(" ") == 0 ) continue; |
foundToken = true; |
} else { |
re = /^([>+~])\s*(\w*)/i; |
if ( (m = re.exec(t)) != null ) { |
r = []; |
var merge = {}; |
nodeName = m[2].toUpperCase(); |
m = m[1]; |
for ( var j = 0, rl = ret.length; j < rl; j++ ) { |
var n = m == "~" || m == "+" ? ret[j].nextSibling : ret[j].firstChild; |
for ( ; n; n = n.nextSibling ) |
if ( n.nodeType == 1 ) { |
var id = jQuery.data(n); |
if ( m == "~" && merge[id] ) break; |
if (!nodeName || n.nodeName.toUpperCase() == nodeName ) { |
if ( m == "~" ) merge[id] = true; |
r.push( n ); |
} |
if ( m == "+" ) break; |
} |
} |
ret = r; |
// And remove the token |
t = jQuery.trim( t.replace( re, "" ) ); |
foundToken = true; |
} |
} |
// See if there's still an expression, and that we haven't already |
// matched a token |
if ( t && !foundToken ) { |
// Handle multiple expressions |
if ( !t.indexOf(",") ) { |
// Clean the result set |
if ( context == ret[0] ) ret.shift(); |
// Merge the result sets |
done = jQuery.merge( done, ret ); |
// Reset the context |
r = ret = [context]; |
// Touch up the selector string |
t = " " + t.substr(1,t.length); |
} else { |
// Optimize for the case nodeName#idName |
var re2 = quickID; |
var m = re2.exec(t); |
// Re-organize the results, so that they're consistent |
if ( m ) { |
m = [ 0, m[2], m[3], m[1] ]; |
} else { |
// Otherwise, do a traditional filter check for |
// ID, class, and element selectors |
re2 = quickClass; |
m = re2.exec(t); |
} |
m[2] = m[2].replace(/\\/g, ""); |
var elem = ret[ret.length-1]; |
// Try to do a global search by ID, where we can |
if ( m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem) ) { |
// Optimization for HTML document case |
var oid = elem.getElementById(m[2]); |
// Do a quick check for the existence of the actual ID attribute |
// to avoid selecting by the name attribute in IE |
// also check to insure id is a string to avoid selecting an element with the name of 'id' inside a form |
if ( (jQuery.browser.msie||jQuery.browser.opera) && oid && typeof oid.id == "string" && oid.id != m[2] ) |
oid = jQuery('[@id="'+m[2]+'"]', elem)[0]; |
// Do a quick check for node name (where applicable) so |
// that div#foo searches will be really fast |
ret = r = oid && (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] : []; |
} else { |
// We need to find all descendant elements |
for ( var i = 0; ret[i]; i++ ) { |
// Grab the tag name being searched for |
var tag = m[1] == "#" && m[3] ? m[3] : m[1] != "" || m[0] == "" ? "*" : m[2]; |
// Handle IE7 being really dumb about <object>s |
if ( tag == "*" && ret[i].nodeName.toLowerCase() == "object" ) |
tag = "param"; |
r = jQuery.merge( r, ret[i].getElementsByTagName( tag )); |
} |
// It's faster to filter by class and be done with it |
if ( m[1] == "." ) |
r = jQuery.classFilter( r, m[2] ); |
// Same with ID filtering |
if ( m[1] == "#" ) { |
var tmp = []; |
// Try to find the element with the ID |
for ( var i = 0; r[i]; i++ ) |
if ( r[i].getAttribute("id") == m[2] ) { |
tmp = [ r[i] ]; |
break; |
} |
r = tmp; |
} |
ret = r; |
} |
t = t.replace( re2, "" ); |
} |
} |
// If a selector string still exists |
if ( t ) { |
// Attempt to filter it |
var val = jQuery.filter(t,r); |
ret = r = val.r; |
t = jQuery.trim(val.t); |
} |
} |
// An error occurred with the selector; |
// just return an empty set instead |
if ( t ) |
ret = []; |
// Remove the root context |
if ( ret && context == ret[0] ) |
ret.shift(); |
// And combine the results |
done = jQuery.merge( done, ret ); |
return done; |
}, |
classFilter: function(r,m,not){ |
m = " " + m + " "; |
var tmp = []; |
for ( var i = 0; r[i]; i++ ) { |
var pass = (" " + r[i].className + " ").indexOf( m ) >= 0; |
if ( !not && pass || not && !pass ) |
tmp.push( r[i] ); |
} |
return tmp; |
}, |
filter: function(t,r,not) { |
var last; |
// Look for common filter expressions |
while ( t && t != last ) { |
last = t; |
var p = jQuery.parse, m; |
for ( var i = 0; p[i]; i++ ) { |
m = p[i].exec( t ); |
if ( m ) { |
// Remove what we just matched |
t = t.substring( m[0].length ); |
m[2] = m[2].replace(/\\/g, ""); |
break; |
} |
} |
if ( !m ) |
break; |
// :not() is a special case that can be optimized by |
// keeping it out of the expression list |
if ( m[1] == ":" && m[2] == "not" ) |
// optimize if only one selector found (most common case) |
r = isSimple.test( m[3] ) ? |
jQuery.filter(m[3], r, true).r : |
jQuery( r ).not( m[3] ); |
// We can get a big speed boost by filtering by class here |
else if ( m[1] == "." ) |
r = jQuery.classFilter(r, m[2], not); |
else if ( m[1] == "[" ) { |
var tmp = [], type = m[3]; |
for ( var i = 0, rl = r.length; i < rl; i++ ) { |
var a = r[i], z = a[ jQuery.props[m[2]] || m[2] ]; |
if ( z == null || /href|src|selected/.test(m[2]) ) |
z = jQuery.attr(a,m[2]) || ''; |
if ( (type == "" && !!z || |
type == "=" && z == m[5] || |
type == "!=" && z != m[5] || |
type == "^=" && z && !z.indexOf(m[5]) || |
type == "$=" && z.substr(z.length - m[5].length) == m[5] || |
(type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not ) |
tmp.push( a ); |
} |
r = tmp; |
// We can get a speed boost by handling nth-child here |
} else if ( m[1] == ":" && m[2] == "nth-child" ) { |
var merge = {}, tmp = [], |
// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' |
test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec( |
m[3] == "even" && "2n" || m[3] == "odd" && "2n+1" || |
!/\D/.test(m[3]) && "0n+" + m[3] || m[3]), |
// calculate the numbers (first)n+(last) including if they are negative |
first = (test[1] + (test[2] || 1)) - 0, last = test[3] - 0; |
// loop through all the elements left in the jQuery object |
for ( var i = 0, rl = r.length; i < rl; i++ ) { |
var node = r[i], parentNode = node.parentNode, id = jQuery.data(parentNode); |
if ( !merge[id] ) { |
var c = 1; |
for ( var n = parentNode.firstChild; n; n = n.nextSibling ) |
if ( n.nodeType == 1 ) |
n.nodeIndex = c++; |
merge[id] = true; |
} |
var add = false; |
if ( first == 0 ) { |
if ( node.nodeIndex == last ) |
add = true; |
} else if ( (node.nodeIndex - last) % first == 0 && (node.nodeIndex - last) / first >= 0 ) |
add = true; |
if ( add ^ not ) |
tmp.push( node ); |
} |
r = tmp; |
// Otherwise, find the expression to execute |
} else { |
var fn = jQuery.expr[ m[1] ]; |
if ( typeof fn == "object" ) |
fn = fn[ m[2] ]; |
if ( typeof fn == "string" ) |
fn = eval("false||function(a,i){return " + fn + ";}"); |
// Execute it against the current filter |
r = jQuery.grep( r, function(elem, i){ |
return fn(elem, i, m, r); |
}, not ); |
} |
} |
// Return an array of filtered elements (r) |
// and the modified expression string (t) |
return { r: r, t: t }; |
}, |
dir: function( elem, dir ){ |
var matched = []; |
var cur = elem[dir]; |
while ( cur && cur != document ) { |
if ( cur.nodeType == 1 ) |
matched.push( cur ); |
cur = cur[dir]; |
} |
return matched; |
}, |
nth: function(cur,result,dir,elem){ |
result = result || 1; |
var num = 0; |
for ( ; cur; cur = cur[dir] ) |
if ( cur.nodeType == 1 && ++num == result ) |
break; |
return cur; |
}, |
sibling: function( n, elem ) { |
var r = []; |
for ( ; n; n = n.nextSibling ) { |
if ( n.nodeType == 1 && (!elem || n != elem) ) |
r.push( n ); |
} |
return r; |
} |
}); |
/* |
* A number of helper functions used for managing events. |
* Many of the ideas behind this code orignated from |
* Dean Edwards' addEvent library. |
*/ |
jQuery.event = { |
// Bind an event to an element |
// Original by Dean Edwards |
add: function(elem, types, handler, data) { |
if ( elem.nodeType == 3 || elem.nodeType == 8 ) |
return; |
// For whatever reason, IE has trouble passing the window object |
// around, causing it to be cloned in the process |
if ( jQuery.browser.msie && elem.setInterval != undefined ) |
elem = window; |
// Make sure that the function being executed has a unique ID |
if ( !handler.guid ) |
handler.guid = this.guid++; |
// if data is passed, bind to handler |
if( data != undefined ) { |
// Create temporary function pointer to original handler |
var fn = handler; |
// Create unique handler function, wrapped around original handler |
handler = function() { |
// Pass arguments and context to original handler |
return fn.apply(this, arguments); |
}; |
// Store data in unique handler |
handler.data = data; |
// Set the guid of unique handler to the same of original handler, so it can be removed |
handler.guid = fn.guid; |
} |
// Init the element's event structure |
var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}), |
handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){ |
// returned undefined or false |
var val; |
// Handle the second event of a trigger and when |
// an event is called after a page has unloaded |
if ( typeof jQuery == "undefined" || jQuery.event.triggered ) |
return val; |
val = jQuery.event.handle.apply(arguments.callee.elem, arguments); |
return val; |
}); |
// Add elem as a property of the handle function |
// This is to prevent a memory leak with non-native |
// event in IE. |
handle.elem = elem; |
// Handle multiple events seperated by a space |
// jQuery(...).bind("mouseover mouseout", fn); |
jQuery.each(types.split(/\s+/), function(index, type) { |
// Namespaced event handlers |
var parts = type.split("."); |
type = parts[0]; |
handler.type = parts[1]; |
// Get the current list of functions bound to this event |
var handlers = events[type]; |
// Init the event handler queue |
if (!handlers) { |
handlers = events[type] = {}; |
// Check for a special event handler |
// Only use addEventListener/attachEvent if the special |
// events handler returns false |
if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem) === false ) { |
// Bind the global event handler to the element |
if (elem.addEventListener) |
elem.addEventListener(type, handle, false); |
else if (elem.attachEvent) |
elem.attachEvent("on" + type, handle); |
} |
} |
// Add the function to the element's handler list |
handlers[handler.guid] = handler; |
// Keep track of which events have been used, for global triggering |
jQuery.event.global[type] = true; |
}); |
// Nullify elem to prevent memory leaks in IE |
elem = null; |
}, |
guid: 1, |
global: {}, |
// Detach an event or set of events from an element |
remove: function(elem, types, handler) { |
// don't do events on text and comment nodes |
if ( elem.nodeType == 3 || elem.nodeType == 8 ) |
return; |
var events = jQuery.data(elem, "events"), ret, index; |
if ( events ) { |
// Unbind all events for the element |
if ( types == undefined || (typeof types == "string" && types.charAt(0) == ".") ) |
for ( var type in events ) |
this.remove( elem, type + (types || "") ); |
else { |
// types is actually an event object here |
if ( types.type ) { |
handler = types.handler; |
types = types.type; |
} |
// Handle multiple events seperated by a space |
// jQuery(...).unbind("mouseover mouseout", fn); |
jQuery.each(types.split(/\s+/), function(index, type){ |
// Namespaced event handlers |
var parts = type.split("."); |
type = parts[0]; |
if ( events[type] ) { |
// remove the given handler for the given type |
if ( handler ) |
delete events[type][handler.guid]; |
// remove all handlers for the given type |
else |
for ( handler in events[type] ) |
// Handle the removal of namespaced events |
if ( !parts[1] || events[type][handler].type == parts[1] ) |
delete events[type][handler]; |
// remove generic event handler if no more handlers exist |
for ( ret in events[type] ) break; |
if ( !ret ) { |
if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem) === false ) { |
if (elem.removeEventListener) |
elem.removeEventListener(type, jQuery.data(elem, "handle"), false); |
else if (elem.detachEvent) |
elem.detachEvent("on" + type, jQuery.data(elem, "handle")); |
} |
ret = null; |
delete events[type]; |
} |
} |
}); |
} |
// Remove the expando if it's no longer used |
for ( ret in events ) break; |
if ( !ret ) { |
var handle = jQuery.data( elem, "handle" ); |
if ( handle ) handle.elem = null; |
jQuery.removeData( elem, "events" ); |
jQuery.removeData( elem, "handle" ); |
} |
} |
}, |
trigger: function(type, data, elem, donative, extra) { |
// Clone the incoming data, if any |
data = jQuery.makeArray(data || []); |
if ( type.indexOf("!") >= 0 ) { |
type = type.slice(0, -1); |
var exclusive = true; |
} |
// Handle a global trigger |
if ( !elem ) { |
// Only trigger if we've ever bound an event for it |
if ( this.global[type] ) |
jQuery("*").add([window, document]).trigger(type, data); |
// Handle triggering a single element |
} else { |
// don't do events on text and comment nodes |
if ( elem.nodeType == 3 || elem.nodeType == 8 ) |
return undefined; |
var val, ret, fn = jQuery.isFunction( elem[ type ] || null ), |
// Check to see if we need to provide a fake event, or not |
event = !data[0] || !data[0].preventDefault; |
// Pass along a fake event |
if ( event ) |
data.unshift( this.fix({ type: type, target: elem }) ); |
// Enforce the right trigger type |
data[0].type = type; |
if ( exclusive ) |
data[0].exclusive = true; |
// Trigger the event |
if ( jQuery.isFunction( jQuery.data(elem, "handle") ) ) |
val = jQuery.data(elem, "handle").apply( elem, data ); |
// Handle triggering native .onfoo handlers |
if ( !fn && elem["on"+type] && elem["on"+type].apply( elem, data ) === false ) |
val = false; |
// Extra functions don't get the custom event object |
if ( event ) |
data.shift(); |
// Handle triggering of extra function |
if ( extra && jQuery.isFunction( extra ) ) { |
// call the extra function and tack the current return value on the end for possible inspection |
ret = extra.apply( elem, val == null ? data : data.concat( val ) ); |
// if anything is returned, give it precedence and have it overwrite the previous value |
if (ret !== undefined) |
val = ret; |
} |
// Trigger the native events (except for clicks on links) |
if ( fn && donative !== false && val !== false && !(jQuery.nodeName(elem, 'a') && type == "click") ) { |
this.triggered = true; |
try { |
elem[ type ](); |
// prevent IE from throwing an error for some hidden elements |
} catch (e) {} |
} |
this.triggered = false; |
} |
return val; |
}, |
handle: function(event) { |
// returned undefined or false |
var val; |
// Empty object is for triggered events with no data |
event = jQuery.event.fix( event || window.event || {} ); |
// Namespaced event handlers |
var parts = event.type.split("."); |
event.type = parts[0]; |
var handlers = jQuery.data(this, "events") && jQuery.data(this, "events")[event.type], args = Array.prototype.slice.call( arguments, 1 ); |
args.unshift( event ); |
for ( var j in handlers ) { |
var handler = handlers[j]; |
// Pass in a reference to the handler function itself |
// So that we can later remove it |
args[0].handler = handler; |
args[0].data = handler.data; |
// Filter the functions by class |
if ( !parts[1] && !event.exclusive || handler.type == parts[1] ) { |
var ret = handler.apply( this, args ); |
if ( val !== false ) |
val = ret; |
if ( ret === false ) { |
event.preventDefault(); |
event.stopPropagation(); |
} |
} |
} |
// Clean up added properties in IE to prevent memory leak |
if (jQuery.browser.msie) |
event.target = event.preventDefault = event.stopPropagation = |
event.handler = event.data = null; |
return val; |
}, |
fix: function(event) { |
// store a copy of the original event object |
// and clone to set read-only properties |
var originalEvent = event; |
event = jQuery.extend({}, originalEvent); |
// add preventDefault and stopPropagation since |
// they will not work on the clone |
event.preventDefault = function() { |
// if preventDefault exists run it on the original event |
if (originalEvent.preventDefault) |
originalEvent.preventDefault(); |
// otherwise set the returnValue property of the original event to false (IE) |
originalEvent.returnValue = false; |
}; |
event.stopPropagation = function() { |
// if stopPropagation exists run it on the original event |
if (originalEvent.stopPropagation) |
originalEvent.stopPropagation(); |
// otherwise set the cancelBubble property of the original event to true (IE) |
originalEvent.cancelBubble = true; |
}; |
// Fix target property, if necessary |
if ( !event.target ) |
event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either |
// check if target is a textnode (safari) |
if ( event.target.nodeType == 3 ) |
event.target = originalEvent.target.parentNode; |
// Add relatedTarget, if necessary |
if ( !event.relatedTarget && event.fromElement ) |
event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement; |
// Calculate pageX/Y if missing and clientX/Y available |
if ( event.pageX == null && event.clientX != null ) { |
var doc = document.documentElement, body = document.body; |
event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0); |
event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0); |
} |
// Add which for key events |
if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) |
event.which = event.charCode || event.keyCode; |
// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) |
if ( !event.metaKey && event.ctrlKey ) |
event.metaKey = event.ctrlKey; |
// Add which for click: 1 == left; 2 == middle; 3 == right |
// Note: button is not normalized, so don't use it |
if ( !event.which && event.button ) |
event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); |
return event; |
}, |
special: { |
ready: { |
setup: function() { |
// Make sure the ready event is setup |
bindReady(); |
return; |
}, |
teardown: function() { return; } |
}, |
mouseenter: { |
setup: function() { |
if ( jQuery.browser.msie ) return false; |
jQuery(this).bind("mouseover", jQuery.event.special.mouseenter.handler); |
return true; |
}, |
teardown: function() { |
if ( jQuery.browser.msie ) return false; |
jQuery(this).unbind("mouseover", jQuery.event.special.mouseenter.handler); |
return true; |
}, |
handler: function(event) { |
// If we actually just moused on to a sub-element, ignore it |
if ( withinElement(event, this) ) return true; |
// Execute the right handlers by setting the event type to mouseenter |
arguments[0].type = "mouseenter"; |
return jQuery.event.handle.apply(this, arguments); |
} |
}, |
mouseleave: { |
setup: function() { |
if ( jQuery.browser.msie ) return false; |
jQuery(this).bind("mouseout", jQuery.event.special.mouseleave.handler); |
return true; |
}, |
teardown: function() { |
if ( jQuery.browser.msie ) return false; |
jQuery(this).unbind("mouseout", jQuery.event.special.mouseleave.handler); |
return true; |
}, |
handler: function(event) { |
// If we actually just moused on to a sub-element, ignore it |
if ( withinElement(event, this) ) return true; |
// Execute the right handlers by setting the event type to mouseleave |
arguments[0].type = "mouseleave"; |
return jQuery.event.handle.apply(this, arguments); |
} |
} |
} |
}; |
jQuery.fn.extend({ |
bind: function( type, data, fn ) { |
return type == "unload" ? this.one(type, data, fn) : this.each(function(){ |
jQuery.event.add( this, type, fn || data, fn && data ); |
}); |
}, |
one: function( type, data, fn ) { |
return this.each(function(){ |
jQuery.event.add( this, type, function(event) { |
jQuery(this).unbind(event); |
return (fn || data).apply( this, arguments); |
}, fn && data); |
}); |
}, |
unbind: function( type, fn ) { |
return this.each(function(){ |
jQuery.event.remove( this, type, fn ); |
}); |
}, |
trigger: function( type, data, fn ) { |
return this.each(function(){ |
jQuery.event.trigger( type, data, this, true, fn ); |
}); |
}, |
triggerHandler: function( type, data, fn ) { |
if ( this[0] ) |
return jQuery.event.trigger( type, data, this[0], false, fn ); |
return undefined; |
}, |
toggle: function() { |
// Save reference to arguments for access in closure |
var args = arguments; |
return this.click(function(event) { |
// Figure out which function to execute |
this.lastToggle = 0 == this.lastToggle ? 1 : 0; |
// Make sure that clicks stop |
event.preventDefault(); |
// and execute the function |
return args[this.lastToggle].apply( this, arguments ) || false; |
}); |
}, |
hover: function(fnOver, fnOut) { |
return this.bind('mouseenter', fnOver).bind('mouseleave', fnOut); |
}, |
ready: function(fn) { |
// Attach the listeners |
bindReady(); |
// If the DOM is already ready |
if ( jQuery.isReady ) |
// Execute the function immediately |
fn.call( document, jQuery ); |
// Otherwise, remember the function for later |
else |
// Add the function to the wait list |
jQuery.readyList.push( function() { return fn.call(this, jQuery); } ); |
return this; |
} |
}); |
jQuery.extend({ |
isReady: false, |
readyList: [], |
// Handle when the DOM is ready |
ready: function() { |
// Make sure that the DOM is not already loaded |
if ( !jQuery.isReady ) { |
// Remember that the DOM is ready |
jQuery.isReady = true; |
// If there are functions bound, to execute |
if ( jQuery.readyList ) { |
// Execute all of them |
jQuery.each( jQuery.readyList, function(){ |
this.apply( document ); |
}); |
// Reset the list of functions |
jQuery.readyList = null; |
} |
// Trigger any bound ready events |
jQuery(document).triggerHandler("ready"); |
} |
} |
}); |
var readyBound = false; |
function bindReady(){ |
if ( readyBound ) return; |
readyBound = true; |
// Mozilla, Opera (see further below for it) and webkit nightlies currently support this event |
if ( document.addEventListener && !jQuery.browser.opera) |
// Use the handy event callback |
document.addEventListener( "DOMContentLoaded", jQuery.ready, false ); |
// If IE is used and is not in a frame |
// Continually check to see if the document is ready |
if ( jQuery.browser.msie && window == top ) (function(){ |
if (jQuery.isReady) return; |
try { |
// If IE is used, use the trick by Diego Perini |
// http://javascript.nwbox.com/IEContentLoaded/ |
document.documentElement.doScroll("left"); |
} catch( error ) { |
setTimeout( arguments.callee, 0 ); |
return; |
} |
// and execute any waiting functions |
jQuery.ready(); |
})(); |
if ( jQuery.browser.opera ) |
document.addEventListener( "DOMContentLoaded", function () { |
if (jQuery.isReady) return; |
for (var i = 0; i < document.styleSheets.length; i++) |
if (document.styleSheets[i].disabled) { |
setTimeout( arguments.callee, 0 ); |
return; |
} |
// and execute any waiting functions |
jQuery.ready(); |
}, false); |
if ( jQuery.browser.safari ) { |
var numStyles; |
(function(){ |
if (jQuery.isReady) return; |
if ( document.readyState != "loaded" && document.readyState != "complete" ) { |
setTimeout( arguments.callee, 0 ); |
return; |
} |
if ( numStyles === undefined ) |
numStyles = jQuery("style, link[rel=stylesheet]").length; |
if ( document.styleSheets.length != numStyles ) { |
setTimeout( arguments.callee, 0 ); |
return; |
} |
// and execute any waiting functions |
jQuery.ready(); |
})(); |
} |
// A fallback to window.onload, that will always work |
jQuery.event.add( window, "load", jQuery.ready ); |
} |
jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," + |
"mousedown,mouseup,mousemove,mouseover,mouseout,change,select," + |
"submit,keydown,keypress,keyup,error").split(","), function(i, name){ |
// Handle event binding |
jQuery.fn[name] = function(fn){ |
return fn ? this.bind(name, fn) : this.trigger(name); |
}; |
}); |
// Checks if an event happened on an element within another element |
// Used in jQuery.event.special.mouseenter and mouseleave handlers |
var withinElement = function(event, elem) { |
// Check if mouse(over|out) are still within the same parent element |
var parent = event.relatedTarget; |
// Traverse up the tree |
while ( parent && parent != elem ) try { parent = parent.parentNode; } catch(error) { parent = elem; } |
// Return true if we actually just moused on to a sub-element |
return parent == elem; |
}; |
// Prevent memory leaks in IE |
// And prevent errors on refresh with events like mouseover in other browsers |
// Window isn't included so as not to unbind existing unload events |
jQuery(window).bind("unload", function() { |
jQuery("*").add(document).unbind(); |
}); |
jQuery.fn.extend({ |
load: function( url, params, callback ) { |
if ( jQuery.isFunction( url ) ) |
return this.bind("load", url); |
var off = url.indexOf(" "); |
if ( off >= 0 ) { |
var selector = url.slice(off, url.length); |
url = url.slice(0, off); |
} |
callback = callback || function(){}; |
// Default to a GET request |
var type = "GET"; |
// If the second parameter was provided |
if ( params ) |
// If it's a function |
if ( jQuery.isFunction( params ) ) { |
// We assume that it's the callback |
callback = params; |
params = null; |
// Otherwise, build a param string |
} else { |
params = jQuery.param( params ); |
type = "POST"; |
} |
var self = this; |
// Request the remote document |
jQuery.ajax({ |
url: url, |
type: type, |
dataType: "html", |
data: params, |
complete: function(res, status){ |
// If successful, inject the HTML into all the matched elements |
if ( status == "success" || status == "notmodified" ) |
// See if a selector was specified |
self.html( selector ? |
// Create a dummy div to hold the results |
jQuery("<div/>") |
// inject the contents of the document in, removing the scripts |
// to avoid any 'Permission Denied' errors in IE |
.append(res.responseText.replace(/<script(.|\s)*?\/script>/g, "")) |
// Locate the specified elements |
.find(selector) : |
// If not, just inject the full result |
res.responseText ); |
self.each( callback, [res.responseText, status, res] ); |
} |
}); |
return this; |
}, |
serialize: function() { |
return jQuery.param(this.serializeArray()); |
}, |
serializeArray: function() { |
return this.map(function(){ |
return jQuery.nodeName(this, "form") ? |
jQuery.makeArray(this.elements) : this; |
}) |
.filter(function(){ |
return this.name && !this.disabled && |
(this.checked || /select|textarea/i.test(this.nodeName) || |
/text|hidden|password/i.test(this.type)); |
}) |
.map(function(i, elem){ |
var val = jQuery(this).val(); |
return val == null ? null : |
val.constructor == Array ? |
jQuery.map( val, function(val, i){ |
return {name: elem.name, value: val}; |
}) : |
{name: elem.name, value: val}; |
}).get(); |
} |
}); |
// Attach a bunch of functions for handling common AJAX events |
jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){ |
jQuery.fn[o] = function(f){ |
return this.bind(o, f); |
}; |
}); |
var jsc = (new Date).getTime(); |
jQuery.extend({ |
get: function( url, data, callback, type ) { |
// shift arguments if data argument was ommited |
if ( jQuery.isFunction( data ) ) { |
callback = data; |
data = null; |
} |
return jQuery.ajax({ |
type: "GET", |
url: url, |
data: data, |
success: callback, |
dataType: type |
}); |
}, |
getScript: function( url, callback ) { |
return jQuery.get(url, null, callback, "script"); |
}, |
getJSON: function( url, data, callback ) { |
return jQuery.get(url, data, callback, "json"); |
}, |
post: function( url, data, callback, type ) { |
if ( jQuery.isFunction( data ) ) { |
callback = data; |
data = {}; |
} |
return jQuery.ajax({ |
type: "POST", |
url: url, |
data: data, |
success: callback, |
dataType: type |
}); |
}, |
ajaxSetup: function( settings ) { |
jQuery.extend( jQuery.ajaxSettings, settings ); |
}, |
ajaxSettings: { |
global: true, |
type: "GET", |
timeout: 0, |
contentType: "application/x-www-form-urlencoded", |
processData: true, |
async: true, |
data: null, |
username: null, |
password: null, |
accepts: { |
xml: "application/xml, text/xml", |
html: "text/html", |
script: "text/javascript, application/javascript", |
json: "application/json, text/javascript", |
text: "text/plain", |
_default: "*/*" |
} |
}, |
// Last-Modified header cache for next request |
lastModified: {}, |
ajax: function( s ) { |
var jsonp, jsre = /=\?(&|$)/g, status, data; |
// Extend the settings, but re-extend 's' so that it can be |
// checked again later (in the test suite, specifically) |
s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s)); |
// convert data if not already a string |
if ( s.data && s.processData && typeof s.data != "string" ) |
s.data = jQuery.param(s.data); |
// Handle JSONP Parameter Callbacks |
if ( s.dataType == "jsonp" ) { |
if ( s.type.toLowerCase() == "get" ) { |
if ( !s.url.match(jsre) ) |
s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?"; |
} else if ( !s.data || !s.data.match(jsre) ) |
s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?"; |
s.dataType = "json"; |
} |
// Build temporary JSONP function |
if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) { |
jsonp = "jsonp" + jsc++; |
// Replace the =? sequence both in the query string and the data |
if ( s.data ) |
s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1"); |
s.url = s.url.replace(jsre, "=" + jsonp + "$1"); |
// We need to make sure |
// that a JSONP style response is executed properly |
s.dataType = "script"; |
// Handle JSONP-style loading |
window[ jsonp ] = function(tmp){ |
data = tmp; |
success(); |
complete(); |
// Garbage collect |
window[ jsonp ] = undefined; |
try{ delete window[ jsonp ]; } catch(e){} |
if ( head ) |
head.removeChild( script ); |
}; |
} |
if ( s.dataType == "script" && s.cache == null ) |
s.cache = false; |
if ( s.cache === false && s.type.toLowerCase() == "get" ) { |
var ts = (new Date()).getTime(); |
// try replacing _= if it is there |
var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2"); |
// if nothing was replaced, add timestamp to the end |
s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : ""); |
} |
// If data is available, append data to url for get requests |
if ( s.data && s.type.toLowerCase() == "get" ) { |
s.url += (s.url.match(/\?/) ? "&" : "?") + s.data; |
// IE likes to send both get and post data, prevent this |
s.data = null; |
} |
// Watch for a new set of requests |
if ( s.global && ! jQuery.active++ ) |
jQuery.event.trigger( "ajaxStart" ); |
// If we're requesting a remote document |
// and trying to load JSON or Script with a GET |
if ( (!s.url.indexOf("http") || !s.url.indexOf("//")) && s.dataType == "script" && s.type.toLowerCase() == "get" ) { |
var head = document.getElementsByTagName("head")[0]; |
var script = document.createElement("script"); |
script.src = s.url; |
if (s.scriptCharset) |
script.charset = s.scriptCharset; |
// Handle Script loading |
if ( !jsonp ) { |
var done = false; |
// Attach handlers for all browsers |
script.onload = script.onreadystatechange = function(){ |
if ( !done && (!this.readyState || |
this.readyState == "loaded" || this.readyState == "complete") ) { |
done = true; |
success(); |
complete(); |
head.removeChild( script ); |
} |
}; |
} |
head.appendChild(script); |
// We handle everything using the script element injection |
return undefined; |
} |
var requestDone = false; |
// Create the request object; Microsoft failed to properly |
// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available |
var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); |
// Open the socket |
xml.open(s.type, s.url, s.async, s.username, s.password); |
// Need an extra try/catch for cross domain requests in Firefox 3 |
try { |
// Set the correct header, if data is being sent |
if ( s.data ) |
xml.setRequestHeader("Content-Type", s.contentType); |
// Set the If-Modified-Since header, if ifModified mode. |
if ( s.ifModified ) |
xml.setRequestHeader("If-Modified-Since", |
jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" ); |
// Set header so the called script knows that it's an XMLHttpRequest |
xml.setRequestHeader("X-Requested-With", "XMLHttpRequest"); |
// Set the Accepts header for the server, depending on the dataType |
xml.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ? |
s.accepts[ s.dataType ] + ", */*" : |
s.accepts._default ); |
} catch(e){} |
// Allow custom headers/mimetypes |
if ( s.beforeSend ) |
s.beforeSend(xml); |
if ( s.global ) |
jQuery.event.trigger("ajaxSend", [xml, s]); |
// Wait for a response to come back |
var onreadystatechange = function(isTimeout){ |
// The transfer is complete and the data is available, or the request timed out |
if ( !requestDone && xml && (xml.readyState == 4 || isTimeout == "timeout") ) { |
requestDone = true; |
// clear poll interval |
if (ival) { |
clearInterval(ival); |
ival = null; |
} |
status = isTimeout == "timeout" && "timeout" || |
!jQuery.httpSuccess( xml ) && "error" || |
s.ifModified && jQuery.httpNotModified( xml, s.url ) && "notmodified" || |
"success"; |
if ( status == "success" ) { |
// Watch for, and catch, XML document parse errors |
try { |
// process the data (runs the xml through httpData regardless of callback) |
data = jQuery.httpData( xml, s.dataType ); |
} catch(e) { |
status = "parsererror"; |
} |
} |
// Make sure that the request was successful or notmodified |
if ( status == "success" ) { |
// Cache Last-Modified header, if ifModified mode. |
var modRes; |
try { |
modRes = xml.getResponseHeader("Last-Modified"); |
} catch(e) {} // swallow exception thrown by FF if header is not available |
if ( s.ifModified && modRes ) |
jQuery.lastModified[s.url] = modRes; |
// JSONP handles its own success callback |
if ( !jsonp ) |
success(); |
} else |
jQuery.handleError(s, xml, status); |
// Fire the complete handlers |
complete(); |
// Stop memory leaks |
if ( s.async ) |
xml = null; |
} |
}; |
if ( s.async ) { |
// don't attach the handler to the request, just poll it instead |
var ival = setInterval(onreadystatechange, 13); |
// Timeout checker |
if ( s.timeout > 0 ) |
setTimeout(function(){ |
// Check to see if the request is still happening |
if ( xml ) { |
// Cancel the request |
xml.abort(); |
if( !requestDone ) |
onreadystatechange( "timeout" ); |
} |
}, s.timeout); |
} |
// Send the data |
try { |
xml.send(s.data); |
} catch(e) { |
jQuery.handleError(s, xml, null, e); |
} |
// firefox 1.5 doesn't fire statechange for sync requests |
if ( !s.async ) |
onreadystatechange(); |
function success(){ |
// If a local callback was specified, fire it and pass it the data |
if ( s.success ) |
s.success( data, status ); |
// Fire the global callback |
if ( s.global ) |
jQuery.event.trigger( "ajaxSuccess", [xml, s] ); |
} |
function complete(){ |
// Process result |
if ( s.complete ) |
s.complete(xml, status); |
// The request was completed |
if ( s.global ) |
jQuery.event.trigger( "ajaxComplete", [xml, s] ); |
// Handle the global AJAX counter |
if ( s.global && ! --jQuery.active ) |
jQuery.event.trigger( "ajaxStop" ); |
} |
// return XMLHttpRequest to allow aborting the request etc. |
return xml; |
}, |
handleError: function( s, xml, status, e ) { |
// If a local callback was specified, fire it |
if ( s.error ) s.error( xml, status, e ); |
// Fire the global callback |
if ( s.global ) |
jQuery.event.trigger( "ajaxError", [xml, s, e] ); |
}, |
// Counter for holding the number of active queries |
active: 0, |
// Determines if an XMLHttpRequest was successful or not |
httpSuccess: function( r ) { |
try { |
// IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450 |
return !r.status && location.protocol == "file:" || |
( r.status >= 200 && r.status < 300 ) || r.status == 304 || r.status == 1223 || |
jQuery.browser.safari && r.status == undefined; |
} catch(e){} |
return false; |
}, |
// Determines if an XMLHttpRequest returns NotModified |
httpNotModified: function( xml, url ) { |
try { |
var xmlRes = xml.getResponseHeader("Last-Modified"); |
// Firefox always returns 200. check Last-Modified date |
return xml.status == 304 || xmlRes == jQuery.lastModified[url] || |
jQuery.browser.safari && xml.status == undefined; |
} catch(e){} |
return false; |
}, |
httpData: function( r, type ) { |
var ct = r.getResponseHeader("content-type"); |
var xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0; |
var data = xml ? r.responseXML : r.responseText; |
if ( xml && data.documentElement.tagName == "parsererror" ) |
throw "parsererror"; |
// If the type is "script", eval it in global context |
if ( type == "script" ) |
jQuery.globalEval( data ); |
// Get the JavaScript object, if JSON is used. |
if ( type == "json" ) |
data = eval("(" + data + ")"); |
return data; |
}, |
// Serialize an array of form elements or a set of |
// key/values into a query string |
param: function( a ) { |
var s = []; |
// If an array was passed in, assume that it is an array |
// of form elements |
if ( a.constructor == Array || a.jquery ) |
// Serialize the form elements |
jQuery.each( a, function(){ |
s.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( this.value ) ); |
}); |
// Otherwise, assume that it's an object of key/value pairs |
else |
// Serialize the key/values |
for ( var j in a ) |
// If the value is an array then the key names need to be repeated |
if ( a[j] && a[j].constructor == Array ) |
jQuery.each( a[j], function(){ |
s.push( encodeURIComponent(j) + "=" + encodeURIComponent( this ) ); |
}); |
else |
s.push( encodeURIComponent(j) + "=" + encodeURIComponent( a[j] ) ); |
// Return the resulting serialization |
return s.join("&").replace(/%20/g, "+"); |
} |
}); |
jQuery.fn.extend({ |
show: function(speed,callback){ |
return speed ? |
this.animate({ |
height: "show", width: "show", opacity: "show" |
}, speed, callback) : |
this.filter(":hidden").each(function(){ |
this.style.display = this.oldblock || ""; |
if ( jQuery.css(this,"display") == "none" ) { |
var elem = jQuery("<" + this.tagName + " />").appendTo("body"); |
this.style.display = elem.css("display"); |
// handle an edge condition where css is - div { display:none; } or similar |
if (this.style.display == "none") |
this.style.display = "block"; |
elem.remove(); |
} |
}).end(); |
}, |
hide: function(speed,callback){ |
return speed ? |
this.animate({ |
height: "hide", width: "hide", opacity: "hide" |
}, speed, callback) : |
this.filter(":visible").each(function(){ |
this.oldblock = this.oldblock || jQuery.css(this,"display"); |
this.style.display = "none"; |
}).end(); |
}, |
// Save the old toggle function |
_toggle: jQuery.fn.toggle, |
toggle: function( fn, fn2 ){ |
return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ? |
this._toggle( fn, fn2 ) : |
fn ? |
this.animate({ |
height: "toggle", width: "toggle", opacity: "toggle" |
}, fn, fn2) : |
this.each(function(){ |
jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ](); |
}); |
}, |
slideDown: function(speed,callback){ |
return this.animate({height: "show"}, speed, callback); |
}, |
slideUp: function(speed,callback){ |
return this.animate({height: "hide"}, speed, callback); |
}, |
slideToggle: function(speed, callback){ |
return this.animate({height: "toggle"}, speed, callback); |
}, |
fadeIn: function(speed, callback){ |
return this.animate({opacity: "show"}, speed, callback); |
}, |
fadeOut: function(speed, callback){ |
return this.animate({opacity: "hide"}, speed, callback); |
}, |
fadeTo: function(speed,to,callback){ |
return this.animate({opacity: to}, speed, callback); |
}, |
animate: function( prop, speed, easing, callback ) { |
var optall = jQuery.speed(speed, easing, callback); |
return this[ optall.queue === false ? "each" : "queue" ](function(){ |
if ( this.nodeType != 1) |
return false; |
var opt = jQuery.extend({}, optall); |
var hidden = jQuery(this).is(":hidden"), self = this; |
for ( var p in prop ) { |
if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden ) |
return jQuery.isFunction(opt.complete) && opt.complete.apply(this); |
if ( p == "height" || p == "width" ) { |
// Store display property |
opt.display = jQuery.css(this, "display"); |
// Make sure that nothing sneaks out |
opt.overflow = this.style.overflow; |
} |
} |
if ( opt.overflow != null ) |
this.style.overflow = "hidden"; |
opt.curAnim = jQuery.extend({}, prop); |
jQuery.each( prop, function(name, val){ |
var e = new jQuery.fx( self, opt, name ); |
if ( /toggle|show|hide/.test(val) ) |
e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop ); |
else { |
var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/), |
start = e.cur(true) || 0; |
if ( parts ) { |
var end = parseFloat(parts[2]), |
unit = parts[3] || "px"; |
// We need to compute starting value |
if ( unit != "px" ) { |
self.style[ name ] = (end || 1) + unit; |
start = ((end || 1) / e.cur(true)) * start; |
self.style[ name ] = start + unit; |
} |
// If a +=/-= token was provided, we're doing a relative animation |
if ( parts[1] ) |
end = ((parts[1] == "-=" ? -1 : 1) * end) + start; |
e.custom( start, end, unit ); |
} else |
e.custom( start, val, "" ); |
} |
}); |
// For JS strict compliance |
return true; |
}); |
}, |
queue: function(type, fn){ |
if ( jQuery.isFunction(type) || ( type && type.constructor == Array )) { |
fn = type; |
type = "fx"; |
} |
if ( !type || (typeof type == "string" && !fn) ) |
return queue( this[0], type ); |
return this.each(function(){ |
if ( fn.constructor == Array ) |
queue(this, type, fn); |
else { |
queue(this, type).push( fn ); |
if ( queue(this, type).length == 1 ) |
fn.apply(this); |
} |
}); |
}, |
stop: function(clearQueue, gotoEnd){ |
var timers = jQuery.timers; |
if (clearQueue) |
this.queue([]); |
this.each(function(){ |
// go in reverse order so anything added to the queue during the loop is ignored |
for ( var i = timers.length - 1; i >= 0; i-- ) |
if ( timers[i].elem == this ) { |
if (gotoEnd) |
// force the next step to be the last |
timers[i](true); |
timers.splice(i, 1); |
} |
}); |
// start the next in the queue if the last step wasn't forced |
if (!gotoEnd) |
this.dequeue(); |
return this; |
} |
}); |
var queue = function( elem, type, array ) { |
if ( !elem ) |
return undefined; |
type = type || "fx"; |
var q = jQuery.data( elem, type + "queue" ); |
if ( !q || array ) |
q = jQuery.data( elem, type + "queue", |
array ? jQuery.makeArray(array) : [] ); |
return q; |
}; |
jQuery.fn.dequeue = function(type){ |
type = type || "fx"; |
return this.each(function(){ |
var q = queue(this, type); |
q.shift(); |
if ( q.length ) |
q[0].apply( this ); |
}); |
}; |
jQuery.extend({ |
speed: function(speed, easing, fn) { |
var opt = speed && speed.constructor == Object ? speed : { |
complete: fn || !fn && easing || |
jQuery.isFunction( speed ) && speed, |
duration: speed, |
easing: fn && easing || easing && easing.constructor != Function && easing |
}; |
opt.duration = (opt.duration && opt.duration.constructor == Number ? |
opt.duration : |
{ slow: 600, fast: 200 }[opt.duration]) || 400; |
// Queueing |
opt.old = opt.complete; |
opt.complete = function(){ |
if ( opt.queue !== false ) |
jQuery(this).dequeue(); |
if ( jQuery.isFunction( opt.old ) ) |
opt.old.apply( this ); |
}; |
return opt; |
}, |
easing: { |
linear: function( p, n, firstNum, diff ) { |
return firstNum + diff * p; |
}, |
swing: function( p, n, firstNum, diff ) { |
return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum; |
} |
}, |
timers: [], |
timerId: null, |
fx: function( elem, options, prop ){ |
this.options = options; |
this.elem = elem; |
this.prop = prop; |
if ( !options.orig ) |
options.orig = {}; |
} |
}); |
jQuery.fx.prototype = { |
// Simple function for setting a style value |
update: function(){ |
if ( this.options.step ) |
this.options.step.apply( this.elem, [ this.now, this ] ); |
(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this ); |
// Set display property to block for height/width animations |
if ( this.prop == "height" || this.prop == "width" ) |
this.elem.style.display = "block"; |
}, |
// Get the current size |
cur: function(force){ |
if ( this.elem[this.prop] != null && this.elem.style[this.prop] == null ) |
return this.elem[ this.prop ]; |
var r = parseFloat(jQuery.css(this.elem, this.prop, force)); |
return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0; |
}, |
// Start an animation from one number to another |
custom: function(from, to, unit){ |
this.startTime = (new Date()).getTime(); |
this.start = from; |
this.end = to; |
this.unit = unit || this.unit || "px"; |
this.now = this.start; |
this.pos = this.state = 0; |
this.update(); |
var self = this; |
function t(gotoEnd){ |
return self.step(gotoEnd); |
} |
t.elem = this.elem; |
jQuery.timers.push(t); |
if ( jQuery.timerId == null ) { |
jQuery.timerId = setInterval(function(){ |
var timers = jQuery.timers; |
for ( var i = 0; i < timers.length; i++ ) |
if ( !timers[i]() ) |
timers.splice(i--, 1); |
if ( !timers.length ) { |
clearInterval( jQuery.timerId ); |
jQuery.timerId = null; |
} |
}, 13); |
} |
}, |
// Simple 'show' function |
show: function(){ |
// Remember where we started, so that we can go back to it later |
this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop ); |
this.options.show = true; |
// Begin the animation |
this.custom(0, this.cur()); |
// Make sure that we start at a small width/height to avoid any |
// flash of content |
if ( this.prop == "width" || this.prop == "height" ) |
this.elem.style[this.prop] = "1px"; |
// Start by showing the element |
jQuery(this.elem).show(); |
}, |
// Simple 'hide' function |
hide: function(){ |
// Remember where we started, so that we can go back to it later |
this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop ); |
this.options.hide = true; |
// Begin the animation |
this.custom(this.cur(), 0); |
}, |
// Each step of an animation |
step: function(gotoEnd){ |
var t = (new Date()).getTime(); |
if ( gotoEnd || t > this.options.duration + this.startTime ) { |
this.now = this.end; |
this.pos = this.state = 1; |
this.update(); |
this.options.curAnim[ this.prop ] = true; |
var done = true; |
for ( var i in this.options.curAnim ) |
if ( this.options.curAnim[i] !== true ) |
done = false; |
if ( done ) { |
if ( this.options.display != null ) { |
// Reset the overflow |
this.elem.style.overflow = this.options.overflow; |
// Reset the display |
this.elem.style.display = this.options.display; |
if ( jQuery.css(this.elem, "display") == "none" ) |
this.elem.style.display = "block"; |
} |
// Hide the element if the "hide" operation was done |
if ( this.options.hide ) |
this.elem.style.display = "none"; |
// Reset the properties, if the item has been hidden or shown |
if ( this.options.hide || this.options.show ) |
for ( var p in this.options.curAnim ) |
jQuery.attr(this.elem.style, p, this.options.orig[p]); |
} |
// If a callback was provided, execute it |
if ( done && jQuery.isFunction( this.options.complete ) ) |
// Execute the complete function |
this.options.complete.apply( this.elem ); |
return false; |
} else { |
var n = t - this.startTime; |
this.state = n / this.options.duration; |
// Perform the easing function, defaults to swing |
this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration); |
this.now = this.start + ((this.end - this.start) * this.pos); |
// Perform the next step of the animation |
this.update(); |
} |
return true; |
} |
}; |
jQuery.fx.step = { |
scrollLeft: function(fx){ |
fx.elem.scrollLeft = fx.now; |
}, |
scrollTop: function(fx){ |
fx.elem.scrollTop = fx.now; |
}, |
opacity: function(fx){ |
jQuery.attr(fx.elem.style, "opacity", fx.now); |
}, |
_default: function(fx){ |
fx.elem.style[ fx.prop ] = fx.now + fx.unit; |
} |
}; |
// The Offset Method |
// Originally By Brandon Aaron, part of the Dimension Plugin |
// http://jquery.com/plugins/project/dimensions |
jQuery.fn.offset = function() { |
var left = 0, top = 0, elem = this[0], results; |
if ( elem ) with ( jQuery.browser ) { |
var parent = elem.parentNode, |
offsetChild = elem, |
offsetParent = elem.offsetParent, |
doc = elem.ownerDocument, |
safari2 = safari && parseInt(version) < 522 && !/adobeair/i.test(userAgent), |
fixed = jQuery.css(elem, "position") == "fixed"; |
// Use getBoundingClientRect if available |
if ( elem.getBoundingClientRect ) { |
var box = elem.getBoundingClientRect(); |
// Add the document scroll offsets |
add(box.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft), |
box.top + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop)); |
// IE adds the HTML element's border, by default it is medium which is 2px |
// IE 6 and 7 quirks mode the border width is overwritable by the following css html { border: 0; } |
// IE 7 standards mode, the border is always 2px |
// This border/offset is typically represented by the clientLeft and clientTop properties |
// However, in IE6 and 7 quirks mode the clientLeft and clientTop properties are not updated when overwriting it via CSS |
// Therefore this method will be off by 2px in IE while in quirksmode |
add( -doc.documentElement.clientLeft, -doc.documentElement.clientTop ); |
// Otherwise loop through the offsetParents and parentNodes |
} else { |
// Initial element offsets |
add( elem.offsetLeft, elem.offsetTop ); |
// Get parent offsets |
while ( offsetParent ) { |
// Add offsetParent offsets |
add( offsetParent.offsetLeft, offsetParent.offsetTop ); |
// Mozilla and Safari > 2 does not include the border on offset parents |
// However Mozilla adds the border for table or table cells |
if ( mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName) || safari && !safari2 ) |
border( offsetParent ); |
// Add the document scroll offsets if position is fixed on any offsetParent |
if ( !fixed && jQuery.css(offsetParent, "position") == "fixed" ) |
fixed = true; |
// Set offsetChild to previous offsetParent unless it is the body element |
offsetChild = /^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent; |
// Get next offsetParent |
offsetParent = offsetParent.offsetParent; |
} |
// Get parent scroll offsets |
while ( parent && parent.tagName && !/^body|html$/i.test(parent.tagName) ) { |
// Remove parent scroll UNLESS that parent is inline or a table to work around Opera inline/table scrollLeft/Top bug |
if ( !/^inline|table.*$/i.test(jQuery.css(parent, "display")) ) |
// Subtract parent scroll offsets |
add( -parent.scrollLeft, -parent.scrollTop ); |
// Mozilla does not add the border for a parent that has overflow != visible |
if ( mozilla && jQuery.css(parent, "overflow") != "visible" ) |
border( parent ); |
// Get next parent |
parent = parent.parentNode; |
} |
// Safari <= 2 doubles body offsets with a fixed position element/offsetParent or absolutely positioned offsetChild |
// Mozilla doubles body offsets with a non-absolutely positioned offsetChild |
if ( (safari2 && (fixed || jQuery.css(offsetChild, "position") == "absolute")) || |
(mozilla && jQuery.css(offsetChild, "position") != "absolute") ) |
add( -doc.body.offsetLeft, -doc.body.offsetTop ); |
// Add the document scroll offsets if position is fixed |
if ( fixed ) |
add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft), |
Math.max(doc.documentElement.scrollTop, doc.body.scrollTop)); |
} |
// Return an object with top and left properties |
results = { top: top, left: left }; |
} |
function border(elem) { |
add( jQuery.curCSS(elem, "borderLeftWidth", true), jQuery.curCSS(elem, "borderTopWidth", true) ); |
} |
function add(l, t) { |
left += parseInt(l) || 0; |
top += parseInt(t) || 0; |
} |
return results; |
}; |
})(); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/adapter/ext/ext-base.js |
---|
New file |
0,0 → 1,10 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
Ext={version:"2.0.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,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.pop=="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,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isGecko&&isMac))});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())}; |
(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){this.initHeader("Content-Type","text/xml",false);K="POST";J=F.xmlData}else{if(F.jsonData){this.initHeader("Content-Type","text/javascript",false);K="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",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.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).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)}}})()})(); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/adapter/prototype/effects.js |
---|
New file |
0,0 → 1,1122 |
// script.aculo.us effects.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008 |
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) |
// Contributors: |
// Justin Palmer (http://encytemedia.com/) |
// Mark Pilgrim (http://diveintomark.org/) |
// Martin Bialasinki |
// |
// script.aculo.us is freely distributable under the terms of an MIT-style license. |
// For details, see the script.aculo.us web site: http://script.aculo.us/ |
// converts rgb() and #xxx to #xxxxxx format, |
// returns self (or first argument) if not convertable |
String.prototype.parseColor = function() { |
var color = '#'; |
if (this.slice(0,4) == 'rgb(') { |
var cols = this.slice(4,this.length-1).split(','); |
var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); |
} else { |
if (this.slice(0,1) == '#') { |
if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); |
if (this.length==7) color = this.toLowerCase(); |
} |
} |
return (color.length==7 ? color : (arguments[0] || this)); |
}; |
/*--------------------------------------------------------------------------*/ |
Element.collectTextNodes = function(element) { |
return $A($(element).childNodes).collect( function(node) { |
return (node.nodeType==3 ? node.nodeValue : |
(node.hasChildNodes() ? Element.collectTextNodes(node) : '')); |
}).flatten().join(''); |
}; |
Element.collectTextNodesIgnoreClass = function(element, className) { |
return $A($(element).childNodes).collect( function(node) { |
return (node.nodeType==3 ? node.nodeValue : |
((node.hasChildNodes() && !Element.hasClassName(node,className)) ? |
Element.collectTextNodesIgnoreClass(node, className) : '')); |
}).flatten().join(''); |
}; |
Element.setContentZoom = function(element, percent) { |
element = $(element); |
element.setStyle({fontSize: (percent/100) + 'em'}); |
if (Prototype.Browser.WebKit) window.scrollBy(0,0); |
return element; |
}; |
Element.getInlineOpacity = function(element){ |
return $(element).style.opacity || ''; |
}; |
Element.forceRerendering = function(element) { |
try { |
element = $(element); |
var n = document.createTextNode(' '); |
element.appendChild(n); |
element.removeChild(n); |
} catch(e) { } |
}; |
/*--------------------------------------------------------------------------*/ |
var Effect = { |
_elementDoesNotExistError: { |
name: 'ElementDoesNotExistError', |
message: 'The specified DOM element does not exist, but is required for this effect to operate' |
}, |
Transitions: { |
linear: Prototype.K, |
sinoidal: function(pos) { |
return (-Math.cos(pos*Math.PI)/2) + 0.5; |
}, |
reverse: function(pos) { |
return 1-pos; |
}, |
flicker: function(pos) { |
var pos = ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; |
return pos > 1 ? 1 : pos; |
}, |
wobble: function(pos) { |
return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; |
}, |
pulse: function(pos, pulses) { |
pulses = pulses || 5; |
return ( |
((pos % (1/pulses)) * pulses).round() == 0 ? |
((pos * pulses * 2) - (pos * pulses * 2).floor()) : |
1 - ((pos * pulses * 2) - (pos * pulses * 2).floor()) |
); |
}, |
spring: function(pos) { |
return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); |
}, |
none: function(pos) { |
return 0; |
}, |
full: function(pos) { |
return 1; |
} |
}, |
DefaultOptions: { |
duration: 1.0, // seconds |
fps: 100, // 100= assume 66fps max. |
sync: false, // true for combining |
from: 0.0, |
to: 1.0, |
delay: 0.0, |
queue: 'parallel' |
}, |
tagifyText: function(element) { |
var tagifyStyle = 'position:relative'; |
if (Prototype.Browser.IE) tagifyStyle += ';zoom:1'; |
element = $(element); |
$A(element.childNodes).each( function(child) { |
if (child.nodeType==3) { |
child.nodeValue.toArray().each( function(character) { |
element.insertBefore( |
new Element('span', {style: tagifyStyle}).update( |
character == ' ' ? String.fromCharCode(160) : character), |
child); |
}); |
Element.remove(child); |
} |
}); |
}, |
multiple: function(element, effect) { |
var elements; |
if (((typeof element == 'object') || |
Object.isFunction(element)) && |
(element.length)) |
elements = element; |
else |
elements = $(element).childNodes; |
var options = Object.extend({ |
speed: 0.1, |
delay: 0.0 |
}, arguments[2] || { }); |
var masterDelay = options.delay; |
$A(elements).each( function(element, index) { |
new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); |
}); |
}, |
PAIRS: { |
'slide': ['SlideDown','SlideUp'], |
'blind': ['BlindDown','BlindUp'], |
'appear': ['Appear','Fade'] |
}, |
toggle: function(element, effect) { |
element = $(element); |
effect = (effect || 'appear').toLowerCase(); |
var options = Object.extend({ |
queue: { position:'end', scope:(element.id || 'global'), limit: 1 } |
}, arguments[2] || { }); |
Effect[element.visible() ? |
Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); |
} |
}; |
Effect.DefaultOptions.transition = Effect.Transitions.sinoidal; |
/* ------------- core effects ------------- */ |
Effect.ScopedQueue = Class.create(Enumerable, { |
initialize: function() { |
this.effects = []; |
this.interval = null; |
}, |
_each: function(iterator) { |
this.effects._each(iterator); |
}, |
add: function(effect) { |
var timestamp = new Date().getTime(); |
var position = Object.isString(effect.options.queue) ? |
effect.options.queue : effect.options.queue.position; |
switch(position) { |
case 'front': |
// move unstarted effects after this effect |
this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { |
e.startOn += effect.finishOn; |
e.finishOn += effect.finishOn; |
}); |
break; |
case 'with-last': |
timestamp = this.effects.pluck('startOn').max() || timestamp; |
break; |
case 'end': |
// start effect after last queued effect has finished |
timestamp = this.effects.pluck('finishOn').max() || timestamp; |
break; |
} |
effect.startOn += timestamp; |
effect.finishOn += timestamp; |
if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) |
this.effects.push(effect); |
if (!this.interval) |
this.interval = setInterval(this.loop.bind(this), 15); |
}, |
remove: function(effect) { |
this.effects = this.effects.reject(function(e) { return e==effect }); |
if (this.effects.length == 0) { |
clearInterval(this.interval); |
this.interval = null; |
} |
}, |
loop: function() { |
var timePos = new Date().getTime(); |
for(var i=0, len=this.effects.length;i<len;i++) |
this.effects[i] && this.effects[i].loop(timePos); |
} |
}); |
Effect.Queues = { |
instances: $H(), |
get: function(queueName) { |
if (!Object.isString(queueName)) return queueName; |
return this.instances.get(queueName) || |
this.instances.set(queueName, new Effect.ScopedQueue()); |
} |
}; |
Effect.Queue = Effect.Queues.get('global'); |
Effect.Base = Class.create({ |
position: null, |
start: function(options) { |
function codeForEvent(options,eventName){ |
return ( |
(options[eventName+'Internal'] ? 'this.options.'+eventName+'Internal(this);' : '') + |
(options[eventName] ? 'this.options.'+eventName+'(this);' : '') |
); |
} |
if (options && options.transition === false) options.transition = Effect.Transitions.linear; |
this.options = Object.extend(Object.extend({ },Effect.DefaultOptions), options || { }); |
this.currentFrame = 0; |
this.state = 'idle'; |
this.startOn = this.options.delay*1000; |
this.finishOn = this.startOn+(this.options.duration*1000); |
this.fromToDelta = this.options.to-this.options.from; |
this.totalTime = this.finishOn-this.startOn; |
this.totalFrames = this.options.fps*this.options.duration; |
eval('this.render = function(pos){ '+ |
'if (this.state=="idle"){this.state="running";'+ |
codeForEvent(this.options,'beforeSetup')+ |
(this.setup ? 'this.setup();':'')+ |
codeForEvent(this.options,'afterSetup')+ |
'};if (this.state=="running"){'+ |
'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+ |
'this.position=pos;'+ |
codeForEvent(this.options,'beforeUpdate')+ |
(this.update ? 'this.update(pos);':'')+ |
codeForEvent(this.options,'afterUpdate')+ |
'}}'); |
this.event('beforeStart'); |
if (!this.options.sync) |
Effect.Queues.get(Object.isString(this.options.queue) ? |
'global' : this.options.queue.scope).add(this); |
}, |
loop: function(timePos) { |
if (timePos >= this.startOn) { |
if (timePos >= this.finishOn) { |
this.render(1.0); |
this.cancel(); |
this.event('beforeFinish'); |
if (this.finish) this.finish(); |
this.event('afterFinish'); |
return; |
} |
var pos = (timePos - this.startOn) / this.totalTime, |
frame = (pos * this.totalFrames).round(); |
if (frame > this.currentFrame) { |
this.render(pos); |
this.currentFrame = frame; |
} |
} |
}, |
cancel: function() { |
if (!this.options.sync) |
Effect.Queues.get(Object.isString(this.options.queue) ? |
'global' : this.options.queue.scope).remove(this); |
this.state = 'finished'; |
}, |
event: function(eventName) { |
if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); |
if (this.options[eventName]) this.options[eventName](this); |
}, |
inspect: function() { |
var data = $H(); |
for(property in this) |
if (!Object.isFunction(this[property])) data.set(property, this[property]); |
return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>'; |
} |
}); |
Effect.Parallel = Class.create(Effect.Base, { |
initialize: function(effects) { |
this.effects = effects || []; |
this.start(arguments[1]); |
}, |
update: function(position) { |
this.effects.invoke('render', position); |
}, |
finish: function(position) { |
this.effects.each( function(effect) { |
effect.render(1.0); |
effect.cancel(); |
effect.event('beforeFinish'); |
if (effect.finish) effect.finish(position); |
effect.event('afterFinish'); |
}); |
} |
}); |
Effect.Tween = Class.create(Effect.Base, { |
initialize: function(object, from, to) { |
object = Object.isString(object) ? $(object) : object; |
var args = $A(arguments), method = args.last(), |
options = args.length == 5 ? args[3] : null; |
this.method = Object.isFunction(method) ? method.bind(object) : |
Object.isFunction(object[method]) ? object[method].bind(object) : |
function(value) { object[method] = value }; |
this.start(Object.extend({ from: from, to: to }, options || { })); |
}, |
update: function(position) { |
this.method(position); |
} |
}); |
Effect.Event = Class.create(Effect.Base, { |
initialize: function() { |
this.start(Object.extend({ duration: 0 }, arguments[0] || { })); |
}, |
update: Prototype.emptyFunction |
}); |
Effect.Opacity = Class.create(Effect.Base, { |
initialize: function(element) { |
this.element = $(element); |
if (!this.element) throw(Effect._elementDoesNotExistError); |
// make this work on IE on elements without 'layout' |
if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) |
this.element.setStyle({zoom: 1}); |
var options = Object.extend({ |
from: this.element.getOpacity() || 0.0, |
to: 1.0 |
}, arguments[1] || { }); |
this.start(options); |
}, |
update: function(position) { |
this.element.setOpacity(position); |
} |
}); |
Effect.Move = Class.create(Effect.Base, { |
initialize: function(element) { |
this.element = $(element); |
if (!this.element) throw(Effect._elementDoesNotExistError); |
var options = Object.extend({ |
x: 0, |
y: 0, |
mode: 'relative' |
}, arguments[1] || { }); |
this.start(options); |
}, |
setup: function() { |
this.element.makePositioned(); |
this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); |
this.originalTop = parseFloat(this.element.getStyle('top') || '0'); |
if (this.options.mode == 'absolute') { |
this.options.x = this.options.x - this.originalLeft; |
this.options.y = this.options.y - this.originalTop; |
} |
}, |
update: function(position) { |
this.element.setStyle({ |
left: (this.options.x * position + this.originalLeft).round() + 'px', |
top: (this.options.y * position + this.originalTop).round() + 'px' |
}); |
} |
}); |
// for backwards compatibility |
Effect.MoveBy = function(element, toTop, toLeft) { |
return new Effect.Move(element, |
Object.extend({ x: toLeft, y: toTop }, arguments[3] || { })); |
}; |
Effect.Scale = Class.create(Effect.Base, { |
initialize: function(element, percent) { |
this.element = $(element); |
if (!this.element) throw(Effect._elementDoesNotExistError); |
var options = Object.extend({ |
scaleX: true, |
scaleY: true, |
scaleContent: true, |
scaleFromCenter: false, |
scaleMode: 'box', // 'box' or 'contents' or { } with provided values |
scaleFrom: 100.0, |
scaleTo: percent |
}, arguments[2] || { }); |
this.start(options); |
}, |
setup: function() { |
this.restoreAfterFinish = this.options.restoreAfterFinish || false; |
this.elementPositioning = this.element.getStyle('position'); |
this.originalStyle = { }; |
['top','left','width','height','fontSize'].each( function(k) { |
this.originalStyle[k] = this.element.style[k]; |
}.bind(this)); |
this.originalTop = this.element.offsetTop; |
this.originalLeft = this.element.offsetLeft; |
var fontSize = this.element.getStyle('font-size') || '100%'; |
['em','px','%','pt'].each( function(fontSizeType) { |
if (fontSize.indexOf(fontSizeType)>0) { |
this.fontSize = parseFloat(fontSize); |
this.fontSizeType = fontSizeType; |
} |
}.bind(this)); |
this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; |
this.dims = null; |
if (this.options.scaleMode=='box') |
this.dims = [this.element.offsetHeight, this.element.offsetWidth]; |
if (/^content/.test(this.options.scaleMode)) |
this.dims = [this.element.scrollHeight, this.element.scrollWidth]; |
if (!this.dims) |
this.dims = [this.options.scaleMode.originalHeight, |
this.options.scaleMode.originalWidth]; |
}, |
update: function(position) { |
var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); |
if (this.options.scaleContent && this.fontSize) |
this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); |
this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); |
}, |
finish: function(position) { |
if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle); |
}, |
setDimensions: function(height, width) { |
var d = { }; |
if (this.options.scaleX) d.width = width.round() + 'px'; |
if (this.options.scaleY) d.height = height.round() + 'px'; |
if (this.options.scaleFromCenter) { |
var topd = (height - this.dims[0])/2; |
var leftd = (width - this.dims[1])/2; |
if (this.elementPositioning == 'absolute') { |
if (this.options.scaleY) d.top = this.originalTop-topd + 'px'; |
if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; |
} else { |
if (this.options.scaleY) d.top = -topd + 'px'; |
if (this.options.scaleX) d.left = -leftd + 'px'; |
} |
} |
this.element.setStyle(d); |
} |
}); |
Effect.Highlight = Class.create(Effect.Base, { |
initialize: function(element) { |
this.element = $(element); |
if (!this.element) throw(Effect._elementDoesNotExistError); |
var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { }); |
this.start(options); |
}, |
setup: function() { |
// Prevent executing on elements not in the layout flow |
if (this.element.getStyle('display')=='none') { this.cancel(); return; } |
// Disable background image during the effect |
this.oldStyle = { }; |
if (!this.options.keepBackgroundImage) { |
this.oldStyle.backgroundImage = this.element.getStyle('background-image'); |
this.element.setStyle({backgroundImage: 'none'}); |
} |
if (!this.options.endcolor) |
this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); |
if (!this.options.restorecolor) |
this.options.restorecolor = this.element.getStyle('background-color'); |
// init color calculations |
this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); |
this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); |
}, |
update: function(position) { |
this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ |
return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) }); |
}, |
finish: function() { |
this.element.setStyle(Object.extend(this.oldStyle, { |
backgroundColor: this.options.restorecolor |
})); |
} |
}); |
Effect.ScrollTo = function(element) { |
var options = arguments[1] || { }, |
scrollOffsets = document.viewport.getScrollOffsets(), |
elementOffsets = $(element).cumulativeOffset(), |
max = (window.height || document.body.scrollHeight) - document.viewport.getHeight(); |
if (options.offset) elementOffsets[1] += options.offset; |
return new Effect.Tween(null, |
scrollOffsets.top, |
elementOffsets[1] > max ? max : elementOffsets[1], |
options, |
function(p){ scrollTo(scrollOffsets.left, p.round()) } |
); |
}; |
/* ------------- combination effects ------------- */ |
Effect.Fade = function(element) { |
element = $(element); |
var oldOpacity = element.getInlineOpacity(); |
var options = Object.extend({ |
from: element.getOpacity() || 1.0, |
to: 0.0, |
afterFinishInternal: function(effect) { |
if (effect.options.to!=0) return; |
effect.element.hide().setStyle({opacity: oldOpacity}); |
} |
}, arguments[1] || { }); |
return new Effect.Opacity(element,options); |
}; |
Effect.Appear = function(element) { |
element = $(element); |
var options = Object.extend({ |
from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), |
to: 1.0, |
// force Safari to render floated elements properly |
afterFinishInternal: function(effect) { |
effect.element.forceRerendering(); |
}, |
beforeSetup: function(effect) { |
effect.element.setOpacity(effect.options.from).show(); |
}}, arguments[1] || { }); |
return new Effect.Opacity(element,options); |
}; |
Effect.Puff = function(element) { |
element = $(element); |
var oldStyle = { |
opacity: element.getInlineOpacity(), |
position: element.getStyle('position'), |
top: element.style.top, |
left: element.style.left, |
width: element.style.width, |
height: element.style.height |
}; |
return new Effect.Parallel( |
[ new Effect.Scale(element, 200, |
{ sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), |
new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], |
Object.extend({ duration: 1.0, |
beforeSetupInternal: function(effect) { |
Position.absolutize(effect.effects[0].element) |
}, |
afterFinishInternal: function(effect) { |
effect.effects[0].element.hide().setStyle(oldStyle); } |
}, arguments[1] || { }) |
); |
}; |
Effect.BlindUp = function(element) { |
element = $(element); |
element.makeClipping(); |
return new Effect.Scale(element, 0, |
Object.extend({ scaleContent: false, |
scaleX: false, |
restoreAfterFinish: true, |
afterFinishInternal: function(effect) { |
effect.element.hide().undoClipping(); |
} |
}, arguments[1] || { }) |
); |
}; |
Effect.BlindDown = function(element) { |
element = $(element); |
var elementDimensions = element.getDimensions(); |
return new Effect.Scale(element, 100, Object.extend({ |
scaleContent: false, |
scaleX: false, |
scaleFrom: 0, |
scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, |
restoreAfterFinish: true, |
afterSetup: function(effect) { |
effect.element.makeClipping().setStyle({height: '0px'}).show(); |
}, |
afterFinishInternal: function(effect) { |
effect.element.undoClipping(); |
} |
}, arguments[1] || { })); |
}; |
Effect.SwitchOff = function(element) { |
element = $(element); |
var oldOpacity = element.getInlineOpacity(); |
return new Effect.Appear(element, Object.extend({ |
duration: 0.4, |
from: 0, |
transition: Effect.Transitions.flicker, |
afterFinishInternal: function(effect) { |
new Effect.Scale(effect.element, 1, { |
duration: 0.3, scaleFromCenter: true, |
scaleX: false, scaleContent: false, restoreAfterFinish: true, |
beforeSetup: function(effect) { |
effect.element.makePositioned().makeClipping(); |
}, |
afterFinishInternal: function(effect) { |
effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); |
} |
}) |
} |
}, arguments[1] || { })); |
}; |
Effect.DropOut = function(element) { |
element = $(element); |
var oldStyle = { |
top: element.getStyle('top'), |
left: element.getStyle('left'), |
opacity: element.getInlineOpacity() }; |
return new Effect.Parallel( |
[ new Effect.Move(element, {x: 0, y: 100, sync: true }), |
new Effect.Opacity(element, { sync: true, to: 0.0 }) ], |
Object.extend( |
{ duration: 0.5, |
beforeSetup: function(effect) { |
effect.effects[0].element.makePositioned(); |
}, |
afterFinishInternal: function(effect) { |
effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); |
} |
}, arguments[1] || { })); |
}; |
Effect.Shake = function(element) { |
element = $(element); |
var options = Object.extend({ |
distance: 20, |
duration: 0.5 |
}, arguments[1] || {}); |
var distance = parseFloat(options.distance); |
var split = parseFloat(options.duration) / 10.0; |
var oldStyle = { |
top: element.getStyle('top'), |
left: element.getStyle('left') }; |
return new Effect.Move(element, |
{ x: distance, y: 0, duration: split, afterFinishInternal: function(effect) { |
new Effect.Move(effect.element, |
{ x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { |
new Effect.Move(effect.element, |
{ x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { |
new Effect.Move(effect.element, |
{ x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { |
new Effect.Move(effect.element, |
{ x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { |
new Effect.Move(effect.element, |
{ x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) { |
effect.element.undoPositioned().setStyle(oldStyle); |
}}) }}) }}) }}) }}) }}); |
}; |
Effect.SlideDown = function(element) { |
element = $(element).cleanWhitespace(); |
// SlideDown need to have the content of the element wrapped in a container element with fixed height! |
var oldInnerBottom = element.down().getStyle('bottom'); |
var elementDimensions = element.getDimensions(); |
return new Effect.Scale(element, 100, Object.extend({ |
scaleContent: false, |
scaleX: false, |
scaleFrom: window.opera ? 0 : 1, |
scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, |
restoreAfterFinish: true, |
afterSetup: function(effect) { |
effect.element.makePositioned(); |
effect.element.down().makePositioned(); |
if (window.opera) effect.element.setStyle({top: ''}); |
effect.element.makeClipping().setStyle({height: '0px'}).show(); |
}, |
afterUpdateInternal: function(effect) { |
effect.element.down().setStyle({bottom: |
(effect.dims[0] - effect.element.clientHeight) + 'px' }); |
}, |
afterFinishInternal: function(effect) { |
effect.element.undoClipping().undoPositioned(); |
effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } |
}, arguments[1] || { }) |
); |
}; |
Effect.SlideUp = function(element) { |
element = $(element).cleanWhitespace(); |
var oldInnerBottom = element.down().getStyle('bottom'); |
var elementDimensions = element.getDimensions(); |
return new Effect.Scale(element, window.opera ? 0 : 1, |
Object.extend({ scaleContent: false, |
scaleX: false, |
scaleMode: 'box', |
scaleFrom: 100, |
scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, |
restoreAfterFinish: true, |
afterSetup: function(effect) { |
effect.element.makePositioned(); |
effect.element.down().makePositioned(); |
if (window.opera) effect.element.setStyle({top: ''}); |
effect.element.makeClipping().show(); |
}, |
afterUpdateInternal: function(effect) { |
effect.element.down().setStyle({bottom: |
(effect.dims[0] - effect.element.clientHeight) + 'px' }); |
}, |
afterFinishInternal: function(effect) { |
effect.element.hide().undoClipping().undoPositioned(); |
effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); |
} |
}, arguments[1] || { }) |
); |
}; |
// Bug in opera makes the TD containing this element expand for a instance after finish |
Effect.Squish = function(element) { |
return new Effect.Scale(element, window.opera ? 1 : 0, { |
restoreAfterFinish: true, |
beforeSetup: function(effect) { |
effect.element.makeClipping(); |
}, |
afterFinishInternal: function(effect) { |
effect.element.hide().undoClipping(); |
} |
}); |
}; |
Effect.Grow = function(element) { |
element = $(element); |
var options = Object.extend({ |
direction: 'center', |
moveTransition: Effect.Transitions.sinoidal, |
scaleTransition: Effect.Transitions.sinoidal, |
opacityTransition: Effect.Transitions.full |
}, arguments[1] || { }); |
var oldStyle = { |
top: element.style.top, |
left: element.style.left, |
height: element.style.height, |
width: element.style.width, |
opacity: element.getInlineOpacity() }; |
var dims = element.getDimensions(); |
var initialMoveX, initialMoveY; |
var moveX, moveY; |
switch (options.direction) { |
case 'top-left': |
initialMoveX = initialMoveY = moveX = moveY = 0; |
break; |
case 'top-right': |
initialMoveX = dims.width; |
initialMoveY = moveY = 0; |
moveX = -dims.width; |
break; |
case 'bottom-left': |
initialMoveX = moveX = 0; |
initialMoveY = dims.height; |
moveY = -dims.height; |
break; |
case 'bottom-right': |
initialMoveX = dims.width; |
initialMoveY = dims.height; |
moveX = -dims.width; |
moveY = -dims.height; |
break; |
case 'center': |
initialMoveX = dims.width / 2; |
initialMoveY = dims.height / 2; |
moveX = -dims.width / 2; |
moveY = -dims.height / 2; |
break; |
} |
return new Effect.Move(element, { |
x: initialMoveX, |
y: initialMoveY, |
duration: 0.01, |
beforeSetup: function(effect) { |
effect.element.hide().makeClipping().makePositioned(); |
}, |
afterFinishInternal: function(effect) { |
new Effect.Parallel( |
[ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), |
new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), |
new Effect.Scale(effect.element, 100, { |
scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, |
sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) |
], Object.extend({ |
beforeSetup: function(effect) { |
effect.effects[0].element.setStyle({height: '0px'}).show(); |
}, |
afterFinishInternal: function(effect) { |
effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); |
} |
}, options) |
) |
} |
}); |
}; |
Effect.Shrink = function(element) { |
element = $(element); |
var options = Object.extend({ |
direction: 'center', |
moveTransition: Effect.Transitions.sinoidal, |
scaleTransition: Effect.Transitions.sinoidal, |
opacityTransition: Effect.Transitions.none |
}, arguments[1] || { }); |
var oldStyle = { |
top: element.style.top, |
left: element.style.left, |
height: element.style.height, |
width: element.style.width, |
opacity: element.getInlineOpacity() }; |
var dims = element.getDimensions(); |
var moveX, moveY; |
switch (options.direction) { |
case 'top-left': |
moveX = moveY = 0; |
break; |
case 'top-right': |
moveX = dims.width; |
moveY = 0; |
break; |
case 'bottom-left': |
moveX = 0; |
moveY = dims.height; |
break; |
case 'bottom-right': |
moveX = dims.width; |
moveY = dims.height; |
break; |
case 'center': |
moveX = dims.width / 2; |
moveY = dims.height / 2; |
break; |
} |
return new Effect.Parallel( |
[ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), |
new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), |
new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) |
], Object.extend({ |
beforeStartInternal: function(effect) { |
effect.effects[0].element.makePositioned().makeClipping(); |
}, |
afterFinishInternal: function(effect) { |
effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } |
}, options) |
); |
}; |
Effect.Pulsate = function(element) { |
element = $(element); |
var options = arguments[1] || { }; |
var oldOpacity = element.getInlineOpacity(); |
var transition = options.transition || Effect.Transitions.sinoidal; |
var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) }; |
reverser.bind(transition); |
return new Effect.Opacity(element, |
Object.extend(Object.extend({ duration: 2.0, from: 0, |
afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } |
}, options), {transition: reverser})); |
}; |
Effect.Fold = function(element) { |
element = $(element); |
var oldStyle = { |
top: element.style.top, |
left: element.style.left, |
width: element.style.width, |
height: element.style.height }; |
element.makeClipping(); |
return new Effect.Scale(element, 5, Object.extend({ |
scaleContent: false, |
scaleX: false, |
afterFinishInternal: function(effect) { |
new Effect.Scale(element, 1, { |
scaleContent: false, |
scaleY: false, |
afterFinishInternal: function(effect) { |
effect.element.hide().undoClipping().setStyle(oldStyle); |
} }); |
}}, arguments[1] || { })); |
}; |
Effect.Morph = Class.create(Effect.Base, { |
initialize: function(element) { |
this.element = $(element); |
if (!this.element) throw(Effect._elementDoesNotExistError); |
var options = Object.extend({ |
style: { } |
}, arguments[1] || { }); |
if (!Object.isString(options.style)) this.style = $H(options.style); |
else { |
if (options.style.include(':')) |
this.style = options.style.parseStyle(); |
else { |
this.element.addClassName(options.style); |
this.style = $H(this.element.getStyles()); |
this.element.removeClassName(options.style); |
var css = this.element.getStyles(); |
this.style = this.style.reject(function(style) { |
return style.value == css[style.key]; |
}); |
options.afterFinishInternal = function(effect) { |
effect.element.addClassName(effect.options.style); |
effect.transforms.each(function(transform) { |
effect.element.style[transform.style] = ''; |
}); |
} |
} |
} |
this.start(options); |
}, |
setup: function(){ |
function parseColor(color){ |
if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; |
color = color.parseColor(); |
return $R(0,2).map(function(i){ |
return parseInt( color.slice(i*2+1,i*2+3), 16 ) |
}); |
} |
this.transforms = this.style.map(function(pair){ |
var property = pair[0], value = pair[1], unit = null; |
if (value.parseColor('#zzzzzz') != '#zzzzzz') { |
value = value.parseColor(); |
unit = 'color'; |
} else if (property == 'opacity') { |
value = parseFloat(value); |
if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) |
this.element.setStyle({zoom: 1}); |
} else if (Element.CSS_LENGTH.test(value)) { |
var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/); |
value = parseFloat(components[1]); |
unit = (components.length == 3) ? components[2] : null; |
} |
var originalValue = this.element.getStyle(property); |
return { |
style: property.camelize(), |
originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), |
targetValue: unit=='color' ? parseColor(value) : value, |
unit: unit |
}; |
}.bind(this)).reject(function(transform){ |
return ( |
(transform.originalValue == transform.targetValue) || |
( |
transform.unit != 'color' && |
(isNaN(transform.originalValue) || isNaN(transform.targetValue)) |
) |
) |
}); |
}, |
update: function(position) { |
var style = { }, transform, i = this.transforms.length; |
while(i--) |
style[(transform = this.transforms[i]).style] = |
transform.unit=='color' ? '#'+ |
(Math.round(transform.originalValue[0]+ |
(transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() + |
(Math.round(transform.originalValue[1]+ |
(transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() + |
(Math.round(transform.originalValue[2]+ |
(transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() : |
(transform.originalValue + |
(transform.targetValue - transform.originalValue) * position).toFixed(3) + |
(transform.unit === null ? '' : transform.unit); |
this.element.setStyle(style, true); |
} |
}); |
Effect.Transform = Class.create({ |
initialize: function(tracks){ |
this.tracks = []; |
this.options = arguments[1] || { }; |
this.addTracks(tracks); |
}, |
addTracks: function(tracks){ |
tracks.each(function(track){ |
track = $H(track); |
var data = track.values().first(); |
this.tracks.push($H({ |
ids: track.keys().first(), |
effect: Effect.Morph, |
options: { style: data } |
})); |
}.bind(this)); |
return this; |
}, |
play: function(){ |
return new Effect.Parallel( |
this.tracks.map(function(track){ |
var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options'); |
var elements = [$(ids) || $$(ids)].flatten(); |
return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) }); |
}).flatten(), |
this.options |
); |
} |
}); |
Element.CSS_PROPERTIES = $w( |
'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + |
'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + |
'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + |
'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + |
'fontSize fontWeight height left letterSpacing lineHeight ' + |
'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+ |
'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + |
'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + |
'right textIndent top width wordSpacing zIndex'); |
Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; |
String.__parseStyleElement = document.createElement('div'); |
String.prototype.parseStyle = function(){ |
var style, styleRules = $H(); |
if (Prototype.Browser.WebKit) |
style = new Element('div',{style:this}).style; |
else { |
String.__parseStyleElement.innerHTML = '<div style="' + this + '"></div>'; |
style = String.__parseStyleElement.childNodes[0].style; |
} |
Element.CSS_PROPERTIES.each(function(property){ |
if (style[property]) styleRules.set(property, style[property]); |
}); |
if (Prototype.Browser.IE && this.include('opacity')) |
styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]); |
return styleRules; |
}; |
if (document.defaultView && document.defaultView.getComputedStyle) { |
Element.getStyles = function(element) { |
var css = document.defaultView.getComputedStyle($(element), null); |
return Element.CSS_PROPERTIES.inject({ }, function(styles, property) { |
styles[property] = css[property]; |
return styles; |
}); |
}; |
} else { |
Element.getStyles = function(element) { |
element = $(element); |
var css = element.currentStyle, styles; |
styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) { |
results[property] = css[property]; |
return results; |
}); |
if (!styles.opacity) styles.opacity = element.getOpacity(); |
return styles; |
}; |
}; |
Effect.Methods = { |
morph: function(element, style) { |
element = $(element); |
new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { })); |
return element; |
}, |
visualEffect: function(element, effect, options) { |
element = $(element) |
var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1); |
new Effect[klass](element, options); |
return element; |
}, |
highlight: function(element, options) { |
element = $(element); |
new Effect.Highlight(element, options); |
return element; |
} |
}; |
$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+ |
'pulsate shake puff squish switchOff dropOut').each( |
function(effect) { |
Effect.Methods[effect] = function(element, options){ |
element = $(element); |
Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options); |
return element; |
} |
} |
); |
$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( |
function(f) { Effect.Methods[f] = Element[f]; } |
); |
Element.addMethods(Effect.Methods); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/adapter/prototype/scriptaculous.js |
---|
New file |
0,0 → 1,58 |
// script.aculo.us scriptaculous.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008 |
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) |
// |
// Permission is hereby granted, free of charge, to any person obtaining |
// a copy of this software and associated documentation files (the |
// "Software"), to deal in the Software without restriction, including |
// without limitation the rights to use, copy, modify, merge, publish, |
// distribute, sublicense, and/or sell copies of the Software, and to |
// permit persons to whom the Software is furnished to do so, subject to |
// the following conditions: |
// |
// The above copyright notice and this permission notice shall be |
// included in all copies or substantial portions of the Software. |
// |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
// |
// For details, see the script.aculo.us web site: http://script.aculo.us/ |
var Scriptaculous = { |
Version: '1.8.1', |
require: function(libraryName) { |
// inserting via DOM fails in Safari 2.0, so brute force approach |
document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>'); |
}, |
REQUIRED_PROTOTYPE: '1.6.0', |
load: function() { |
function convertVersionString(versionString){ |
var r = versionString.split('.'); |
return parseInt(r[0])*100000 + parseInt(r[1])*1000 + parseInt(r[2]); |
} |
if((typeof Prototype=='undefined') || |
(typeof Element == 'undefined') || |
(typeof Element.Methods=='undefined') || |
(convertVersionString(Prototype.Version) < |
convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE))) |
throw("script.aculo.us requires the Prototype JavaScript framework >= " + |
Scriptaculous.REQUIRED_PROTOTYPE); |
$A(document.getElementsByTagName("script")).findAll( function(s) { |
return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/)) |
}).each( function(s) { |
var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,''); |
var includes = s.src.match(/\?.*load=([a-z,]*)/); |
(includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each( |
function(include) { Scriptaculous.require(path+include+'.js') }); |
}); |
} |
} |
Scriptaculous.load(); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/adapter/prototype/ext-prototype-adapter.js |
---|
New file |
0,0 → 1,10 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
Ext={version:"2.0.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,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.pop=="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,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isGecko&&isMac))});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())}; |
(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(K,H,F,I,G){var J={method:K,parameters:I||"",timeout:F.timeout,onSuccess:E(F),onFailure:D(F)};if(G){if(G.headers){J.requestHeaders=G.headers}if(G.xmlData){K="POST";J.contentType="text/xml";J.postBody=G.xmlData;delete J.parameters}if(G.jsonData){K="POST";J.contentType="text/javascript";J.postBody=typeof G.jsonData=="object"?Ext.encode(G.jsonData):G.jsonData;delete J.parameters}}new Ajax.Request(H,J)},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)}})(); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/adapter/prototype/prototype.js |
---|
New file |
0,0 → 1,4221 |
/* Prototype JavaScript framework, version 1.6.0.2 |
* (c) 2005-2008 Sam Stephenson |
* |
* Prototype is freely distributable under the terms of an MIT-style license. |
* For details, see the Prototype web site: http://www.prototypejs.org/ |
* |
*--------------------------------------------------------------------------*/ |
var Prototype = { |
Version: '1.6.0.2', |
Browser: { |
IE: !!(window.attachEvent && !window.opera), |
Opera: !!window.opera, |
WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, |
Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1, |
MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) |
}, |
BrowserFeatures: { |
XPath: !!document.evaluate, |
ElementExtensions: !!window.HTMLElement, |
SpecificElementExtensions: |
document.createElement('div').__proto__ && |
document.createElement('div').__proto__ !== |
document.createElement('form').__proto__ |
}, |
ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>', |
JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, |
emptyFunction: function() { }, |
K: function(x) { return x } |
}; |
if (Prototype.Browser.MobileSafari) |
Prototype.BrowserFeatures.SpecificElementExtensions = false; |
/* Based on Alex Arnell's inheritance implementation. */ |
var Class = { |
create: function() { |
var parent = null, properties = $A(arguments); |
if (Object.isFunction(properties[0])) |
parent = properties.shift(); |
function klass() { |
this.initialize.apply(this, arguments); |
} |
Object.extend(klass, Class.Methods); |
klass.superclass = parent; |
klass.subclasses = []; |
if (parent) { |
var subclass = function() { }; |
subclass.prototype = parent.prototype; |
klass.prototype = new subclass; |
parent.subclasses.push(klass); |
} |
for (var i = 0; i < properties.length; i++) |
klass.addMethods(properties[i]); |
if (!klass.prototype.initialize) |
klass.prototype.initialize = Prototype.emptyFunction; |
klass.prototype.constructor = klass; |
return klass; |
} |
}; |
Class.Methods = { |
addMethods: function(source) { |
var ancestor = this.superclass && this.superclass.prototype; |
var properties = Object.keys(source); |
if (!Object.keys({ toString: true }).length) |
properties.push("toString", "valueOf"); |
for (var i = 0, length = properties.length; i < length; i++) { |
var property = properties[i], value = source[property]; |
if (ancestor && Object.isFunction(value) && |
value.argumentNames().first() == "$super") { |
var method = value, value = Object.extend((function(m) { |
return function() { return ancestor[m].apply(this, arguments) }; |
})(property).wrap(method), { |
valueOf: function() { return method }, |
toString: function() { return method.toString() } |
}); |
} |
this.prototype[property] = value; |
} |
return this; |
} |
}; |
var Abstract = { }; |
Object.extend = function(destination, source) { |
for (var property in source) |
destination[property] = source[property]; |
return destination; |
}; |
Object.extend(Object, { |
inspect: function(object) { |
try { |
if (Object.isUndefined(object)) return 'undefined'; |
if (object === null) return 'null'; |
return object.inspect ? object.inspect() : String(object); |
} catch (e) { |
if (e instanceof RangeError) return '...'; |
throw e; |
} |
}, |
toJSON: function(object) { |
var type = typeof object; |
switch (type) { |
case 'undefined': |
case 'function': |
case 'unknown': return; |
case 'boolean': return object.toString(); |
} |
if (object === null) return 'null'; |
if (object.toJSON) return object.toJSON(); |
if (Object.isElement(object)) return; |
var results = []; |
for (var property in object) { |
var value = Object.toJSON(object[property]); |
if (!Object.isUndefined(value)) |
results.push(property.toJSON() + ': ' + value); |
} |
return '{' + results.join(', ') + '}'; |
}, |
toQueryString: function(object) { |
return $H(object).toQueryString(); |
}, |
toHTML: function(object) { |
return object && object.toHTML ? object.toHTML() : String.interpret(object); |
}, |
keys: function(object) { |
var keys = []; |
for (var property in object) |
keys.push(property); |
return keys; |
}, |
values: function(object) { |
var values = []; |
for (var property in object) |
values.push(object[property]); |
return values; |
}, |
clone: function(object) { |
return Object.extend({ }, object); |
}, |
isElement: function(object) { |
return object && object.nodeType == 1; |
}, |
isArray: function(object) { |
return object != null && typeof object == "object" && |
'splice' in object && 'join' in object; |
}, |
isHash: function(object) { |
return object instanceof Hash; |
}, |
isFunction: function(object) { |
return typeof object == "function"; |
}, |
isString: function(object) { |
return typeof object == "string"; |
}, |
isNumber: function(object) { |
return typeof object == "number"; |
}, |
isUndefined: function(object) { |
return typeof object == "undefined"; |
} |
}); |
Object.extend(Function.prototype, { |
argumentNames: function() { |
var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip"); |
return names.length == 1 && !names[0] ? [] : names; |
}, |
bind: function() { |
if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; |
var __method = this, args = $A(arguments), object = args.shift(); |
return function() { |
return __method.apply(object, args.concat($A(arguments))); |
} |
}, |
bindAsEventListener: function() { |
var __method = this, args = $A(arguments), object = args.shift(); |
return function(event) { |
return __method.apply(object, [event || window.event].concat(args)); |
} |
}, |
curry: function() { |
if (!arguments.length) return this; |
var __method = this, args = $A(arguments); |
return function() { |
return __method.apply(this, args.concat($A(arguments))); |
} |
}, |
delay: function() { |
var __method = this, args = $A(arguments), timeout = args.shift() * 1000; |
return window.setTimeout(function() { |
return __method.apply(__method, args); |
}, timeout); |
}, |
wrap: function(wrapper) { |
var __method = this; |
return function() { |
return wrapper.apply(this, [__method.bind(this)].concat($A(arguments))); |
} |
}, |
methodize: function() { |
if (this._methodized) return this._methodized; |
var __method = this; |
return this._methodized = function() { |
return __method.apply(null, [this].concat($A(arguments))); |
}; |
} |
}); |
Function.prototype.defer = Function.prototype.delay.curry(0.01); |
Date.prototype.toJSON = function() { |
return '"' + this.getUTCFullYear() + '-' + |
(this.getUTCMonth() + 1).toPaddedString(2) + '-' + |
this.getUTCDate().toPaddedString(2) + 'T' + |
this.getUTCHours().toPaddedString(2) + ':' + |
this.getUTCMinutes().toPaddedString(2) + ':' + |
this.getUTCSeconds().toPaddedString(2) + 'Z"'; |
}; |
var Try = { |
these: function() { |
var returnValue; |
for (var i = 0, length = arguments.length; i < length; i++) { |
var lambda = arguments[i]; |
try { |
returnValue = lambda(); |
break; |
} catch (e) { } |
} |
return returnValue; |
} |
}; |
RegExp.prototype.match = RegExp.prototype.test; |
RegExp.escape = function(str) { |
return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); |
}; |
/*--------------------------------------------------------------------------*/ |
var PeriodicalExecuter = Class.create({ |
initialize: function(callback, frequency) { |
this.callback = callback; |
this.frequency = frequency; |
this.currentlyExecuting = false; |
this.registerCallback(); |
}, |
registerCallback: function() { |
this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); |
}, |
execute: function() { |
this.callback(this); |
}, |
stop: function() { |
if (!this.timer) return; |
clearInterval(this.timer); |
this.timer = null; |
}, |
onTimerEvent: function() { |
if (!this.currentlyExecuting) { |
try { |
this.currentlyExecuting = true; |
this.execute(); |
} finally { |
this.currentlyExecuting = false; |
} |
} |
} |
}); |
Object.extend(String, { |
interpret: function(value) { |
return value == null ? '' : String(value); |
}, |
specialChar: { |
'\b': '\\b', |
'\t': '\\t', |
'\n': '\\n', |
'\f': '\\f', |
'\r': '\\r', |
'\\': '\\\\' |
} |
}); |
Object.extend(String.prototype, { |
gsub: function(pattern, replacement) { |
var result = '', source = this, match; |
replacement = arguments.callee.prepareReplacement(replacement); |
while (source.length > 0) { |
if (match = source.match(pattern)) { |
result += source.slice(0, match.index); |
result += String.interpret(replacement(match)); |
source = source.slice(match.index + match[0].length); |
} else { |
result += source, source = ''; |
} |
} |
return result; |
}, |
sub: function(pattern, replacement, count) { |
replacement = this.gsub.prepareReplacement(replacement); |
count = Object.isUndefined(count) ? 1 : count; |
return this.gsub(pattern, function(match) { |
if (--count < 0) return match[0]; |
return replacement(match); |
}); |
}, |
scan: function(pattern, iterator) { |
this.gsub(pattern, iterator); |
return String(this); |
}, |
truncate: function(length, truncation) { |
length = length || 30; |
truncation = Object.isUndefined(truncation) ? '...' : truncation; |
return this.length > length ? |
this.slice(0, length - truncation.length) + truncation : String(this); |
}, |
strip: function() { |
return this.replace(/^\s+/, '').replace(/\s+$/, ''); |
}, |
stripTags: function() { |
return this.replace(/<\/?[^>]+>/gi, ''); |
}, |
stripScripts: function() { |
return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); |
}, |
extractScripts: function() { |
var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); |
var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); |
return (this.match(matchAll) || []).map(function(scriptTag) { |
return (scriptTag.match(matchOne) || ['', ''])[1]; |
}); |
}, |
evalScripts: function() { |
return this.extractScripts().map(function(script) { return eval(script) }); |
}, |
escapeHTML: function() { |
var self = arguments.callee; |
self.text.data = this; |
return self.div.innerHTML; |
}, |
unescapeHTML: function() { |
var div = new Element('div'); |
div.innerHTML = this.stripTags(); |
return div.childNodes[0] ? (div.childNodes.length > 1 ? |
$A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) : |
div.childNodes[0].nodeValue) : ''; |
}, |
toQueryParams: function(separator) { |
var match = this.strip().match(/([^?#]*)(#.*)?$/); |
if (!match) return { }; |
return match[1].split(separator || '&').inject({ }, function(hash, pair) { |
if ((pair = pair.split('='))[0]) { |
var key = decodeURIComponent(pair.shift()); |
var value = pair.length > 1 ? pair.join('=') : pair[0]; |
if (value != undefined) value = decodeURIComponent(value); |
if (key in hash) { |
if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; |
hash[key].push(value); |
} |
else hash[key] = value; |
} |
return hash; |
}); |
}, |
toArray: function() { |
return this.split(''); |
}, |
succ: function() { |
return this.slice(0, this.length - 1) + |
String.fromCharCode(this.charCodeAt(this.length - 1) + 1); |
}, |
times: function(count) { |
return count < 1 ? '' : new Array(count + 1).join(this); |
}, |
camelize: function() { |
var parts = this.split('-'), len = parts.length; |
if (len == 1) return parts[0]; |
var camelized = this.charAt(0) == '-' |
? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) |
: parts[0]; |
for (var i = 1; i < len; i++) |
camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); |
return camelized; |
}, |
capitalize: function() { |
return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); |
}, |
underscore: function() { |
return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase(); |
}, |
dasherize: function() { |
return this.gsub(/_/,'-'); |
}, |
inspect: function(useDoubleQuotes) { |
var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) { |
var character = String.specialChar[match[0]]; |
return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16); |
}); |
if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; |
return "'" + escapedString.replace(/'/g, '\\\'') + "'"; |
}, |
toJSON: function() { |
return this.inspect(true); |
}, |
unfilterJSON: function(filter) { |
return this.sub(filter || Prototype.JSONFilter, '#{1}'); |
}, |
isJSON: function() { |
var str = this; |
if (str.blank()) return false; |
str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); |
return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); |
}, |
evalJSON: function(sanitize) { |
var json = this.unfilterJSON(); |
try { |
if (!sanitize || json.isJSON()) return eval('(' + json + ')'); |
} catch (e) { } |
throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); |
}, |
include: function(pattern) { |
return this.indexOf(pattern) > -1; |
}, |
startsWith: function(pattern) { |
return this.indexOf(pattern) === 0; |
}, |
endsWith: function(pattern) { |
var d = this.length - pattern.length; |
return d >= 0 && this.lastIndexOf(pattern) === d; |
}, |
empty: function() { |
return this == ''; |
}, |
blank: function() { |
return /^\s*$/.test(this); |
}, |
interpolate: function(object, pattern) { |
return new Template(this, pattern).evaluate(object); |
} |
}); |
if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, { |
escapeHTML: function() { |
return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); |
}, |
unescapeHTML: function() { |
return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); |
} |
}); |
String.prototype.gsub.prepareReplacement = function(replacement) { |
if (Object.isFunction(replacement)) return replacement; |
var template = new Template(replacement); |
return function(match) { return template.evaluate(match) }; |
}; |
String.prototype.parseQuery = String.prototype.toQueryParams; |
Object.extend(String.prototype.escapeHTML, { |
div: document.createElement('div'), |
text: document.createTextNode('') |
}); |
with (String.prototype.escapeHTML) div.appendChild(text); |
var Template = Class.create({ |
initialize: function(template, pattern) { |
this.template = template.toString(); |
this.pattern = pattern || Template.Pattern; |
}, |
evaluate: function(object) { |
if (Object.isFunction(object.toTemplateReplacements)) |
object = object.toTemplateReplacements(); |
return this.template.gsub(this.pattern, function(match) { |
if (object == null) return ''; |
var before = match[1] || ''; |
if (before == '\\') return match[2]; |
var ctx = object, expr = match[3]; |
var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; |
match = pattern.exec(expr); |
if (match == null) return before; |
while (match != null) { |
var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1]; |
ctx = ctx[comp]; |
if (null == ctx || '' == match[3]) break; |
expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); |
match = pattern.exec(expr); |
} |
return before + String.interpret(ctx); |
}); |
} |
}); |
Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; |
var $break = { }; |
var Enumerable = { |
each: function(iterator, context) { |
var index = 0; |
iterator = iterator.bind(context); |
try { |
this._each(function(value) { |
iterator(value, index++); |
}); |
} catch (e) { |
if (e != $break) throw e; |
} |
return this; |
}, |
eachSlice: function(number, iterator, context) { |
iterator = iterator ? iterator.bind(context) : Prototype.K; |
var index = -number, slices = [], array = this.toArray(); |
while ((index += number) < array.length) |
slices.push(array.slice(index, index+number)); |
return slices.collect(iterator, context); |
}, |
all: function(iterator, context) { |
iterator = iterator ? iterator.bind(context) : Prototype.K; |
var result = true; |
this.each(function(value, index) { |
result = result && !!iterator(value, index); |
if (!result) throw $break; |
}); |
return result; |
}, |
any: function(iterator, context) { |
iterator = iterator ? iterator.bind(context) : Prototype.K; |
var result = false; |
this.each(function(value, index) { |
if (result = !!iterator(value, index)) |
throw $break; |
}); |
return result; |
}, |
collect: function(iterator, context) { |
iterator = iterator ? iterator.bind(context) : Prototype.K; |
var results = []; |
this.each(function(value, index) { |
results.push(iterator(value, index)); |
}); |
return results; |
}, |
detect: function(iterator, context) { |
iterator = iterator.bind(context); |
var result; |
this.each(function(value, index) { |
if (iterator(value, index)) { |
result = value; |
throw $break; |
} |
}); |
return result; |
}, |
findAll: function(iterator, context) { |
iterator = iterator.bind(context); |
var results = []; |
this.each(function(value, index) { |
if (iterator(value, index)) |
results.push(value); |
}); |
return results; |
}, |
grep: function(filter, iterator, context) { |
iterator = iterator ? iterator.bind(context) : Prototype.K; |
var results = []; |
if (Object.isString(filter)) |
filter = new RegExp(filter); |
this.each(function(value, index) { |
if (filter.match(value)) |
results.push(iterator(value, index)); |
}); |
return results; |
}, |
include: function(object) { |
if (Object.isFunction(this.indexOf)) |
if (this.indexOf(object) != -1) return true; |
var found = false; |
this.each(function(value) { |
if (value == object) { |
found = true; |
throw $break; |
} |
}); |
return found; |
}, |
inGroupsOf: function(number, fillWith) { |
fillWith = Object.isUndefined(fillWith) ? null : fillWith; |
return this.eachSlice(number, function(slice) { |
while(slice.length < number) slice.push(fillWith); |
return slice; |
}); |
}, |
inject: function(memo, iterator, context) { |
iterator = iterator.bind(context); |
this.each(function(value, index) { |
memo = iterator(memo, value, index); |
}); |
return memo; |
}, |
invoke: function(method) { |
var args = $A(arguments).slice(1); |
return this.map(function(value) { |
return value[method].apply(value, args); |
}); |
}, |
max: function(iterator, context) { |
iterator = iterator ? iterator.bind(context) : Prototype.K; |
var result; |
this.each(function(value, index) { |
value = iterator(value, index); |
if (result == null || value >= result) |
result = value; |
}); |
return result; |
}, |
min: function(iterator, context) { |
iterator = iterator ? iterator.bind(context) : Prototype.K; |
var result; |
this.each(function(value, index) { |
value = iterator(value, index); |
if (result == null || value < result) |
result = value; |
}); |
return result; |
}, |
partition: function(iterator, context) { |
iterator = iterator ? iterator.bind(context) : Prototype.K; |
var trues = [], falses = []; |
this.each(function(value, index) { |
(iterator(value, index) ? |
trues : falses).push(value); |
}); |
return [trues, falses]; |
}, |
pluck: function(property) { |
var results = []; |
this.each(function(value) { |
results.push(value[property]); |
}); |
return results; |
}, |
reject: function(iterator, context) { |
iterator = iterator.bind(context); |
var results = []; |
this.each(function(value, index) { |
if (!iterator(value, index)) |
results.push(value); |
}); |
return results; |
}, |
sortBy: function(iterator, context) { |
iterator = iterator.bind(context); |
return this.map(function(value, index) { |
return {value: value, criteria: iterator(value, index)}; |
}).sort(function(left, right) { |
var a = left.criteria, b = right.criteria; |
return a < b ? -1 : a > b ? 1 : 0; |
}).pluck('value'); |
}, |
toArray: function() { |
return this.map(); |
}, |
zip: function() { |
var iterator = Prototype.K, args = $A(arguments); |
if (Object.isFunction(args.last())) |
iterator = args.pop(); |
var collections = [this].concat(args).map($A); |
return this.map(function(value, index) { |
return iterator(collections.pluck(index)); |
}); |
}, |
size: function() { |
return this.toArray().length; |
}, |
inspect: function() { |
return '#<Enumerable:' + this.toArray().inspect() + '>'; |
} |
}; |
Object.extend(Enumerable, { |
map: Enumerable.collect, |
find: Enumerable.detect, |
select: Enumerable.findAll, |
filter: Enumerable.findAll, |
member: Enumerable.include, |
entries: Enumerable.toArray, |
every: Enumerable.all, |
some: Enumerable.any |
}); |
function $A(iterable) { |
if (!iterable) return []; |
if (iterable.toArray) return iterable.toArray(); |
var length = iterable.length || 0, results = new Array(length); |
while (length--) results[length] = iterable[length]; |
return results; |
} |
if (Prototype.Browser.WebKit) { |
$A = function(iterable) { |
if (!iterable) return []; |
if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') && |
iterable.toArray) return iterable.toArray(); |
var length = iterable.length || 0, results = new Array(length); |
while (length--) results[length] = iterable[length]; |
return results; |
}; |
} |
Array.from = $A; |
Object.extend(Array.prototype, Enumerable); |
if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse; |
Object.extend(Array.prototype, { |
_each: function(iterator) { |
for (var i = 0, length = this.length; i < length; i++) |
iterator(this[i]); |
}, |
clear: function() { |
this.length = 0; |
return this; |
}, |
first: function() { |
return this[0]; |
}, |
last: function() { |
return this[this.length - 1]; |
}, |
compact: function() { |
return this.select(function(value) { |
return value != null; |
}); |
}, |
flatten: function() { |
return this.inject([], function(array, value) { |
return array.concat(Object.isArray(value) ? |
value.flatten() : [value]); |
}); |
}, |
without: function() { |
var values = $A(arguments); |
return this.select(function(value) { |
return !values.include(value); |
}); |
}, |
reverse: function(inline) { |
return (inline !== false ? this : this.toArray())._reverse(); |
}, |
reduce: function() { |
return this.length > 1 ? this : this[0]; |
}, |
uniq: function(sorted) { |
return this.inject([], function(array, value, index) { |
if (0 == index || (sorted ? array.last() != value : !array.include(value))) |
array.push(value); |
return array; |
}); |
}, |
intersect: function(array) { |
return this.uniq().findAll(function(item) { |
return array.detect(function(value) { return item === value }); |
}); |
}, |
clone: function() { |
return [].concat(this); |
}, |
size: function() { |
return this.length; |
}, |
inspect: function() { |
return '[' + this.map(Object.inspect).join(', ') + ']'; |
}, |
toJSON: function() { |
var results = []; |
this.each(function(object) { |
var value = Object.toJSON(object); |
if (!Object.isUndefined(value)) results.push(value); |
}); |
return '[' + results.join(', ') + ']'; |
} |
}); |
// use native browser JS 1.6 implementation if available |
if (Object.isFunction(Array.prototype.forEach)) |
Array.prototype._each = Array.prototype.forEach; |
if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) { |
i || (i = 0); |
var length = this.length; |
if (i < 0) i = length + i; |
for (; i < length; i++) |
if (this[i] === item) return i; |
return -1; |
}; |
if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) { |
i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; |
var n = this.slice(0, i).reverse().indexOf(item); |
return (n < 0) ? n : i - n - 1; |
}; |
Array.prototype.toArray = Array.prototype.clone; |
function $w(string) { |
if (!Object.isString(string)) return []; |
string = string.strip(); |
return string ? string.split(/\s+/) : []; |
} |
if (Prototype.Browser.Opera){ |
Array.prototype.concat = function() { |
var array = []; |
for (var i = 0, length = this.length; i < length; i++) array.push(this[i]); |
for (var i = 0, length = arguments.length; i < length; i++) { |
if (Object.isArray(arguments[i])) { |
for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) |
array.push(arguments[i][j]); |
} else { |
array.push(arguments[i]); |
} |
} |
return array; |
}; |
} |
Object.extend(Number.prototype, { |
toColorPart: function() { |
return this.toPaddedString(2, 16); |
}, |
succ: function() { |
return this + 1; |
}, |
times: function(iterator) { |
$R(0, this, true).each(iterator); |
return this; |
}, |
toPaddedString: function(length, radix) { |
var string = this.toString(radix || 10); |
return '0'.times(length - string.length) + string; |
}, |
toJSON: function() { |
return isFinite(this) ? this.toString() : 'null'; |
} |
}); |
$w('abs round ceil floor').each(function(method){ |
Number.prototype[method] = Math[method].methodize(); |
}); |
function $H(object) { |
return new Hash(object); |
}; |
var Hash = Class.create(Enumerable, (function() { |
function toQueryPair(key, value) { |
if (Object.isUndefined(value)) return key; |
return key + '=' + encodeURIComponent(String.interpret(value)); |
} |
return { |
initialize: function(object) { |
this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); |
}, |
_each: function(iterator) { |
for (var key in this._object) { |
var value = this._object[key], pair = [key, value]; |
pair.key = key; |
pair.value = value; |
iterator(pair); |
} |
}, |
set: function(key, value) { |
return this._object[key] = value; |
}, |
get: function(key) { |
return this._object[key]; |
}, |
unset: function(key) { |
var value = this._object[key]; |
delete this._object[key]; |
return value; |
}, |
toObject: function() { |
return Object.clone(this._object); |
}, |
keys: function() { |
return this.pluck('key'); |
}, |
values: function() { |
return this.pluck('value'); |
}, |
index: function(value) { |
var match = this.detect(function(pair) { |
return pair.value === value; |
}); |
return match && match.key; |
}, |
merge: function(object) { |
return this.clone().update(object); |
}, |
update: function(object) { |
return new Hash(object).inject(this, function(result, pair) { |
result.set(pair.key, pair.value); |
return result; |
}); |
}, |
toQueryString: function() { |
return this.map(function(pair) { |
var key = encodeURIComponent(pair.key), values = pair.value; |
if (values && typeof values == 'object') { |
if (Object.isArray(values)) |
return values.map(toQueryPair.curry(key)).join('&'); |
} |
return toQueryPair(key, values); |
}).join('&'); |
}, |
inspect: function() { |
return '#<Hash:{' + this.map(function(pair) { |
return pair.map(Object.inspect).join(': '); |
}).join(', ') + '}>'; |
}, |
toJSON: function() { |
return Object.toJSON(this.toObject()); |
}, |
clone: function() { |
return new Hash(this); |
} |
} |
})()); |
Hash.prototype.toTemplateReplacements = Hash.prototype.toObject; |
Hash.from = $H; |
var ObjectRange = Class.create(Enumerable, { |
initialize: function(start, end, exclusive) { |
this.start = start; |
this.end = end; |
this.exclusive = exclusive; |
}, |
_each: function(iterator) { |
var value = this.start; |
while (this.include(value)) { |
iterator(value); |
value = value.succ(); |
} |
}, |
include: function(value) { |
if (value < this.start) |
return false; |
if (this.exclusive) |
return value < this.end; |
return value <= this.end; |
} |
}); |
var $R = function(start, end, exclusive) { |
return new ObjectRange(start, end, exclusive); |
}; |
var Ajax = { |
getTransport: function() { |
return Try.these( |
function() {return new XMLHttpRequest()}, |
function() {return new ActiveXObject('Msxml2.XMLHTTP')}, |
function() {return new ActiveXObject('Microsoft.XMLHTTP')} |
) || false; |
}, |
activeRequestCount: 0 |
}; |
Ajax.Responders = { |
responders: [], |
_each: function(iterator) { |
this.responders._each(iterator); |
}, |
register: function(responder) { |
if (!this.include(responder)) |
this.responders.push(responder); |
}, |
unregister: function(responder) { |
this.responders = this.responders.without(responder); |
}, |
dispatch: function(callback, request, transport, json) { |
this.each(function(responder) { |
if (Object.isFunction(responder[callback])) { |
try { |
responder[callback].apply(responder, [request, transport, json]); |
} catch (e) { } |
} |
}); |
} |
}; |
Object.extend(Ajax.Responders, Enumerable); |
Ajax.Responders.register({ |
onCreate: function() { Ajax.activeRequestCount++ }, |
onComplete: function() { Ajax.activeRequestCount-- } |
}); |
Ajax.Base = Class.create({ |
initialize: function(options) { |
this.options = { |
method: 'post', |
asynchronous: true, |
contentType: 'application/x-www-form-urlencoded', |
encoding: 'UTF-8', |
parameters: '', |
evalJSON: true, |
evalJS: true |
}; |
Object.extend(this.options, options || { }); |
this.options.method = this.options.method.toLowerCase(); |
if (Object.isString(this.options.parameters)) |
this.options.parameters = this.options.parameters.toQueryParams(); |
else if (Object.isHash(this.options.parameters)) |
this.options.parameters = this.options.parameters.toObject(); |
} |
}); |
Ajax.Request = Class.create(Ajax.Base, { |
_complete: false, |
initialize: function($super, url, options) { |
$super(options); |
this.transport = Ajax.getTransport(); |
this.request(url); |
}, |
request: function(url) { |
this.url = url; |
this.method = this.options.method; |
var params = Object.clone(this.options.parameters); |
if (!['get', 'post'].include(this.method)) { |
// simulate other verbs over post |
params['_method'] = this.method; |
this.method = 'post'; |
} |
this.parameters = params; |
if (params = Object.toQueryString(params)) { |
// when GET, append parameters to URL |
if (this.method == 'get') |
this.url += (this.url.include('?') ? '&' : '?') + params; |
else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) |
params += '&_='; |
} |
try { |
var response = new Ajax.Response(this); |
if (this.options.onCreate) this.options.onCreate(response); |
Ajax.Responders.dispatch('onCreate', this, response); |
this.transport.open(this.method.toUpperCase(), this.url, |
this.options.asynchronous); |
if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); |
this.transport.onreadystatechange = this.onStateChange.bind(this); |
this.setRequestHeaders(); |
this.body = this.method == 'post' ? (this.options.postBody || params) : null; |
this.transport.send(this.body); |
/* Force Firefox to handle ready state 4 for synchronous requests */ |
if (!this.options.asynchronous && this.transport.overrideMimeType) |
this.onStateChange(); |
} |
catch (e) { |
this.dispatchException(e); |
} |
}, |
onStateChange: function() { |
var readyState = this.transport.readyState; |
if (readyState > 1 && !((readyState == 4) && this._complete)) |
this.respondToReadyState(this.transport.readyState); |
}, |
setRequestHeaders: function() { |
var headers = { |
'X-Requested-With': 'XMLHttpRequest', |
'X-Prototype-Version': Prototype.Version, |
'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' |
}; |
if (this.method == 'post') { |
headers['Content-type'] = this.options.contentType + |
(this.options.encoding ? '; charset=' + this.options.encoding : ''); |
/* Force "Connection: close" for older Mozilla browsers to work |
* around a bug where XMLHttpRequest sends an incorrect |
* Content-length header. See Mozilla Bugzilla #246651. |
*/ |
if (this.transport.overrideMimeType && |
(navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) |
headers['Connection'] = 'close'; |
} |
// user-defined headers |
if (typeof this.options.requestHeaders == 'object') { |
var extras = this.options.requestHeaders; |
if (Object.isFunction(extras.push)) |
for (var i = 0, length = extras.length; i < length; i += 2) |
headers[extras[i]] = extras[i+1]; |
else |
$H(extras).each(function(pair) { headers[pair.key] = pair.value }); |
} |
for (var name in headers) |
this.transport.setRequestHeader(name, headers[name]); |
}, |
success: function() { |
var status = this.getStatus(); |
return !status || (status >= 200 && status < 300); |
}, |
getStatus: function() { |
try { |
return this.transport.status || 0; |
} catch (e) { return 0 } |
}, |
respondToReadyState: function(readyState) { |
var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); |
if (state == 'Complete') { |
try { |
this._complete = true; |
(this.options['on' + response.status] |
|| this.options['on' + (this.success() ? 'Success' : 'Failure')] |
|| Prototype.emptyFunction)(response, response.headerJSON); |
} catch (e) { |
this.dispatchException(e); |
} |
var contentType = response.getHeader('Content-type'); |
if (this.options.evalJS == 'force' |
|| (this.options.evalJS && this.isSameOrigin() && contentType |
&& contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) |
this.evalResponse(); |
} |
try { |
(this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); |
Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); |
} catch (e) { |
this.dispatchException(e); |
} |
if (state == 'Complete') { |
// avoid memory leak in MSIE: clean up |
this.transport.onreadystatechange = Prototype.emptyFunction; |
} |
}, |
isSameOrigin: function() { |
var m = this.url.match(/^\s*https?:\/\/[^\/]*/); |
return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ |
protocol: location.protocol, |
domain: document.domain, |
port: location.port ? ':' + location.port : '' |
})); |
}, |
getHeader: function(name) { |
try { |
return this.transport.getResponseHeader(name) || null; |
} catch (e) { return null } |
}, |
evalResponse: function() { |
try { |
return eval((this.transport.responseText || '').unfilterJSON()); |
} catch (e) { |
this.dispatchException(e); |
} |
}, |
dispatchException: function(exception) { |
(this.options.onException || Prototype.emptyFunction)(this, exception); |
Ajax.Responders.dispatch('onException', this, exception); |
} |
}); |
Ajax.Request.Events = |
['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; |
Ajax.Response = Class.create({ |
initialize: function(request){ |
this.request = request; |
var transport = this.transport = request.transport, |
readyState = this.readyState = transport.readyState; |
if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { |
this.status = this.getStatus(); |
this.statusText = this.getStatusText(); |
this.responseText = String.interpret(transport.responseText); |
this.headerJSON = this._getHeaderJSON(); |
} |
if(readyState == 4) { |
var xml = transport.responseXML; |
this.responseXML = Object.isUndefined(xml) ? null : xml; |
this.responseJSON = this._getResponseJSON(); |
} |
}, |
status: 0, |
statusText: '', |
getStatus: Ajax.Request.prototype.getStatus, |
getStatusText: function() { |
try { |
return this.transport.statusText || ''; |
} catch (e) { return '' } |
}, |
getHeader: Ajax.Request.prototype.getHeader, |
getAllHeaders: function() { |
try { |
return this.getAllResponseHeaders(); |
} catch (e) { return null } |
}, |
getResponseHeader: function(name) { |
return this.transport.getResponseHeader(name); |
}, |
getAllResponseHeaders: function() { |
return this.transport.getAllResponseHeaders(); |
}, |
_getHeaderJSON: function() { |
var json = this.getHeader('X-JSON'); |
if (!json) return null; |
json = decodeURIComponent(escape(json)); |
try { |
return json.evalJSON(this.request.options.sanitizeJSON || |
!this.request.isSameOrigin()); |
} catch (e) { |
this.request.dispatchException(e); |
} |
}, |
_getResponseJSON: function() { |
var options = this.request.options; |
if (!options.evalJSON || (options.evalJSON != 'force' && |
!(this.getHeader('Content-type') || '').include('application/json')) || |
this.responseText.blank()) |
return null; |
try { |
return this.responseText.evalJSON(options.sanitizeJSON || |
!this.request.isSameOrigin()); |
} catch (e) { |
this.request.dispatchException(e); |
} |
} |
}); |
Ajax.Updater = Class.create(Ajax.Request, { |
initialize: function($super, container, url, options) { |
this.container = { |
success: (container.success || container), |
failure: (container.failure || (container.success ? null : container)) |
}; |
options = Object.clone(options); |
var onComplete = options.onComplete; |
options.onComplete = (function(response, json) { |
this.updateContent(response.responseText); |
if (Object.isFunction(onComplete)) onComplete(response, json); |
}).bind(this); |
$super(url, options); |
}, |
updateContent: function(responseText) { |
var receiver = this.container[this.success() ? 'success' : 'failure'], |
options = this.options; |
if (!options.evalScripts) responseText = responseText.stripScripts(); |
if (receiver = $(receiver)) { |
if (options.insertion) { |
if (Object.isString(options.insertion)) { |
var insertion = { }; insertion[options.insertion] = responseText; |
receiver.insert(insertion); |
} |
else options.insertion(receiver, responseText); |
} |
else receiver.update(responseText); |
} |
} |
}); |
Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { |
initialize: function($super, container, url, options) { |
$super(options); |
this.onComplete = this.options.onComplete; |
this.frequency = (this.options.frequency || 2); |
this.decay = (this.options.decay || 1); |
this.updater = { }; |
this.container = container; |
this.url = url; |
this.start(); |
}, |
start: function() { |
this.options.onComplete = this.updateComplete.bind(this); |
this.onTimerEvent(); |
}, |
stop: function() { |
this.updater.options.onComplete = undefined; |
clearTimeout(this.timer); |
(this.onComplete || Prototype.emptyFunction).apply(this, arguments); |
}, |
updateComplete: function(response) { |
if (this.options.decay) { |
this.decay = (response.responseText == this.lastText ? |
this.decay * this.options.decay : 1); |
this.lastText = response.responseText; |
} |
this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); |
}, |
onTimerEvent: function() { |
this.updater = new Ajax.Updater(this.container, this.url, this.options); |
} |
}); |
function $(element) { |
if (arguments.length > 1) { |
for (var i = 0, elements = [], length = arguments.length; i < length; i++) |
elements.push($(arguments[i])); |
return elements; |
} |
if (Object.isString(element)) |
element = document.getElementById(element); |
return Element.extend(element); |
} |
if (Prototype.BrowserFeatures.XPath) { |
document._getElementsByXPath = function(expression, parentElement) { |
var results = []; |
var query = document.evaluate(expression, $(parentElement) || document, |
null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); |
for (var i = 0, length = query.snapshotLength; i < length; i++) |
results.push(Element.extend(query.snapshotItem(i))); |
return results; |
}; |
} |
/*--------------------------------------------------------------------------*/ |
if (!window.Node) var Node = { }; |
if (!Node.ELEMENT_NODE) { |
// DOM level 2 ECMAScript Language Binding |
Object.extend(Node, { |
ELEMENT_NODE: 1, |
ATTRIBUTE_NODE: 2, |
TEXT_NODE: 3, |
CDATA_SECTION_NODE: 4, |
ENTITY_REFERENCE_NODE: 5, |
ENTITY_NODE: 6, |
PROCESSING_INSTRUCTION_NODE: 7, |
COMMENT_NODE: 8, |
DOCUMENT_NODE: 9, |
DOCUMENT_TYPE_NODE: 10, |
DOCUMENT_FRAGMENT_NODE: 11, |
NOTATION_NODE: 12 |
}); |
} |
(function() { |
var element = this.Element; |
this.Element = function(tagName, attributes) { |
attributes = attributes || { }; |
tagName = tagName.toLowerCase(); |
var cache = Element.cache; |
if (Prototype.Browser.IE && attributes.name) { |
tagName = '<' + tagName + ' name="' + attributes.name + '">'; |
delete attributes.name; |
return Element.writeAttribute(document.createElement(tagName), attributes); |
} |
if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); |
return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); |
}; |
Object.extend(this.Element, element || { }); |
}).call(window); |
Element.cache = { }; |
Element.Methods = { |
visible: function(element) { |
return $(element).style.display != 'none'; |
}, |
toggle: function(element) { |
element = $(element); |
Element[Element.visible(element) ? 'hide' : 'show'](element); |
return element; |
}, |
hide: function(element) { |
$(element).style.display = 'none'; |
return element; |
}, |
show: function(element) { |
$(element).style.display = ''; |
return element; |
}, |
remove: function(element) { |
element = $(element); |
element.parentNode.removeChild(element); |
return element; |
}, |
update: function(element, content) { |
element = $(element); |
if (content && content.toElement) content = content.toElement(); |
if (Object.isElement(content)) return element.update().insert(content); |
content = Object.toHTML(content); |
element.innerHTML = content.stripScripts(); |
content.evalScripts.bind(content).defer(); |
return element; |
}, |
replace: function(element, content) { |
element = $(element); |
if (content && content.toElement) content = content.toElement(); |
else if (!Object.isElement(content)) { |
content = Object.toHTML(content); |
var range = element.ownerDocument.createRange(); |
range.selectNode(element); |
content.evalScripts.bind(content).defer(); |
content = range.createContextualFragment(content.stripScripts()); |
} |
element.parentNode.replaceChild(content, element); |
return element; |
}, |
insert: function(element, insertions) { |
element = $(element); |
if (Object.isString(insertions) || Object.isNumber(insertions) || |
Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) |
insertions = {bottom:insertions}; |
var content, insert, tagName, childNodes; |
for (var position in insertions) { |
content = insertions[position]; |
position = position.toLowerCase(); |
insert = Element._insertionTranslations[position]; |
if (content && content.toElement) content = content.toElement(); |
if (Object.isElement(content)) { |
insert(element, content); |
continue; |
} |
content = Object.toHTML(content); |
tagName = ((position == 'before' || position == 'after') |
? element.parentNode : element).tagName.toUpperCase(); |
childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); |
if (position == 'top' || position == 'after') childNodes.reverse(); |
childNodes.each(insert.curry(element)); |
content.evalScripts.bind(content).defer(); |
} |
return element; |
}, |
wrap: function(element, wrapper, attributes) { |
element = $(element); |
if (Object.isElement(wrapper)) |
$(wrapper).writeAttribute(attributes || { }); |
else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); |
else wrapper = new Element('div', wrapper); |
if (element.parentNode) |
element.parentNode.replaceChild(wrapper, element); |
wrapper.appendChild(element); |
return wrapper; |
}, |
inspect: function(element) { |
element = $(element); |
var result = '<' + element.tagName.toLowerCase(); |
$H({'id': 'id', 'className': 'class'}).each(function(pair) { |
var property = pair.first(), attribute = pair.last(); |
var value = (element[property] || '').toString(); |
if (value) result += ' ' + attribute + '=' + value.inspect(true); |
}); |
return result + '>'; |
}, |
recursivelyCollect: function(element, property) { |
element = $(element); |
var elements = []; |
while (element = element[property]) |
if (element.nodeType == 1) |
elements.push(Element.extend(element)); |
return elements; |
}, |
ancestors: function(element) { |
return $(element).recursivelyCollect('parentNode'); |
}, |
descendants: function(element) { |
return $(element).select("*"); |
}, |
firstDescendant: function(element) { |
element = $(element).firstChild; |
while (element && element.nodeType != 1) element = element.nextSibling; |
return $(element); |
}, |
immediateDescendants: function(element) { |
if (!(element = $(element).firstChild)) return []; |
while (element && element.nodeType != 1) element = element.nextSibling; |
if (element) return [element].concat($(element).nextSiblings()); |
return []; |
}, |
previousSiblings: function(element) { |
return $(element).recursivelyCollect('previousSibling'); |
}, |
nextSiblings: function(element) { |
return $(element).recursivelyCollect('nextSibling'); |
}, |
siblings: function(element) { |
element = $(element); |
return element.previousSiblings().reverse().concat(element.nextSiblings()); |
}, |
match: function(element, selector) { |
if (Object.isString(selector)) |
selector = new Selector(selector); |
return selector.match($(element)); |
}, |
up: function(element, expression, index) { |
element = $(element); |
if (arguments.length == 1) return $(element.parentNode); |
var ancestors = element.ancestors(); |
return Object.isNumber(expression) ? ancestors[expression] : |
Selector.findElement(ancestors, expression, index); |
}, |
down: function(element, expression, index) { |
element = $(element); |
if (arguments.length == 1) return element.firstDescendant(); |
return Object.isNumber(expression) ? element.descendants()[expression] : |
element.select(expression)[index || 0]; |
}, |
previous: function(element, expression, index) { |
element = $(element); |
if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); |
var previousSiblings = element.previousSiblings(); |
return Object.isNumber(expression) ? previousSiblings[expression] : |
Selector.findElement(previousSiblings, expression, index); |
}, |
next: function(element, expression, index) { |
element = $(element); |
if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); |
var nextSiblings = element.nextSiblings(); |
return Object.isNumber(expression) ? nextSiblings[expression] : |
Selector.findElement(nextSiblings, expression, index); |
}, |
select: function() { |
var args = $A(arguments), element = $(args.shift()); |
return Selector.findChildElements(element, args); |
}, |
adjacent: function() { |
var args = $A(arguments), element = $(args.shift()); |
return Selector.findChildElements(element.parentNode, args).without(element); |
}, |
identify: function(element) { |
element = $(element); |
var id = element.readAttribute('id'), self = arguments.callee; |
if (id) return id; |
do { id = 'anonymous_element_' + self.counter++ } while ($(id)); |
element.writeAttribute('id', id); |
return id; |
}, |
readAttribute: function(element, name) { |
element = $(element); |
if (Prototype.Browser.IE) { |
var t = Element._attributeTranslations.read; |
if (t.values[name]) return t.values[name](element, name); |
if (t.names[name]) name = t.names[name]; |
if (name.include(':')) { |
return (!element.attributes || !element.attributes[name]) ? null : |
element.attributes[name].value; |
} |
} |
return element.getAttribute(name); |
}, |
writeAttribute: function(element, name, value) { |
element = $(element); |
var attributes = { }, t = Element._attributeTranslations.write; |
if (typeof name == 'object') attributes = name; |
else attributes[name] = Object.isUndefined(value) ? true : value; |
for (var attr in attributes) { |
name = t.names[attr] || attr; |
value = attributes[attr]; |
if (t.values[attr]) name = t.values[attr](element, value); |
if (value === false || value === null) |
element.removeAttribute(name); |
else if (value === true) |
element.setAttribute(name, name); |
else element.setAttribute(name, value); |
} |
return element; |
}, |
getHeight: function(element) { |
return $(element).getDimensions().height; |
}, |
getWidth: function(element) { |
return $(element).getDimensions().width; |
}, |
classNames: function(element) { |
return new Element.ClassNames(element); |
}, |
hasClassName: function(element, className) { |
if (!(element = $(element))) return; |
var elementClassName = element.className; |
return (elementClassName.length > 0 && (elementClassName == className || |
new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); |
}, |
addClassName: function(element, className) { |
if (!(element = $(element))) return; |
if (!element.hasClassName(className)) |
element.className += (element.className ? ' ' : '') + className; |
return element; |
}, |
removeClassName: function(element, className) { |
if (!(element = $(element))) return; |
element.className = element.className.replace( |
new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); |
return element; |
}, |
toggleClassName: function(element, className) { |
if (!(element = $(element))) return; |
return element[element.hasClassName(className) ? |
'removeClassName' : 'addClassName'](className); |
}, |
// removes whitespace-only text node children |
cleanWhitespace: function(element) { |
element = $(element); |
var node = element.firstChild; |
while (node) { |
var nextNode = node.nextSibling; |
if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) |
element.removeChild(node); |
node = nextNode; |
} |
return element; |
}, |
empty: function(element) { |
return $(element).innerHTML.blank(); |
}, |
descendantOf: function(element, ancestor) { |
element = $(element), ancestor = $(ancestor); |
var originalAncestor = ancestor; |
if (element.compareDocumentPosition) |
return (element.compareDocumentPosition(ancestor) & 8) === 8; |
if (element.sourceIndex && !Prototype.Browser.Opera) { |
var e = element.sourceIndex, a = ancestor.sourceIndex, |
nextAncestor = ancestor.nextSibling; |
if (!nextAncestor) { |
do { ancestor = ancestor.parentNode; } |
while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode); |
} |
if (nextAncestor && nextAncestor.sourceIndex) |
return (e > a && e < nextAncestor.sourceIndex); |
} |
while (element = element.parentNode) |
if (element == originalAncestor) return true; |
return false; |
}, |
scrollTo: function(element) { |
element = $(element); |
var pos = element.cumulativeOffset(); |
window.scrollTo(pos[0], pos[1]); |
return element; |
}, |
getStyle: function(element, style) { |
element = $(element); |
style = style == 'float' ? 'cssFloat' : style.camelize(); |
var value = element.style[style]; |
if (!value) { |
var css = document.defaultView.getComputedStyle(element, null); |
value = css ? css[style] : null; |
} |
if (style == 'opacity') return value ? parseFloat(value) : 1.0; |
return value == 'auto' ? null : value; |
}, |
getOpacity: function(element) { |
return $(element).getStyle('opacity'); |
}, |
setStyle: function(element, styles) { |
element = $(element); |
var elementStyle = element.style, match; |
if (Object.isString(styles)) { |
element.style.cssText += ';' + styles; |
return styles.include('opacity') ? |
element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; |
} |
for (var property in styles) |
if (property == 'opacity') element.setOpacity(styles[property]); |
else |
elementStyle[(property == 'float' || property == 'cssFloat') ? |
(Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : |
property] = styles[property]; |
return element; |
}, |
setOpacity: function(element, value) { |
element = $(element); |
element.style.opacity = (value == 1 || value === '') ? '' : |
(value < 0.00001) ? 0 : value; |
return element; |
}, |
getDimensions: function(element) { |
element = $(element); |
var display = $(element).getStyle('display'); |
if (display != 'none' && display != null) // Safari bug |
return {width: element.offsetWidth, height: element.offsetHeight}; |
// All *Width and *Height properties give 0 on elements with display none, |
// so enable the element temporarily |
var els = element.style; |
var originalVisibility = els.visibility; |
var originalPosition = els.position; |
var originalDisplay = els.display; |
els.visibility = 'hidden'; |
els.position = 'absolute'; |
els.display = 'block'; |
var originalWidth = element.clientWidth; |
var originalHeight = element.clientHeight; |
els.display = originalDisplay; |
els.position = originalPosition; |
els.visibility = originalVisibility; |
return {width: originalWidth, height: originalHeight}; |
}, |
makePositioned: function(element) { |
element = $(element); |
var pos = Element.getStyle(element, 'position'); |
if (pos == 'static' || !pos) { |
element._madePositioned = true; |
element.style.position = 'relative'; |
// Opera returns the offset relative to the positioning context, when an |
// element is position relative but top and left have not been defined |
if (window.opera) { |
element.style.top = 0; |
element.style.left = 0; |
} |
} |
return element; |
}, |
undoPositioned: function(element) { |
element = $(element); |
if (element._madePositioned) { |
element._madePositioned = undefined; |
element.style.position = |
element.style.top = |
element.style.left = |
element.style.bottom = |
element.style.right = ''; |
} |
return element; |
}, |
makeClipping: function(element) { |
element = $(element); |
if (element._overflow) return element; |
element._overflow = Element.getStyle(element, 'overflow') || 'auto'; |
if (element._overflow !== 'hidden') |
element.style.overflow = 'hidden'; |
return element; |
}, |
undoClipping: function(element) { |
element = $(element); |
if (!element._overflow) return element; |
element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; |
element._overflow = null; |
return element; |
}, |
cumulativeOffset: function(element) { |
var valueT = 0, valueL = 0; |
do { |
valueT += element.offsetTop || 0; |
valueL += element.offsetLeft || 0; |
element = element.offsetParent; |
} while (element); |
return Element._returnOffset(valueL, valueT); |
}, |
positionedOffset: function(element) { |
var valueT = 0, valueL = 0; |
do { |
valueT += element.offsetTop || 0; |
valueL += element.offsetLeft || 0; |
element = element.offsetParent; |
if (element) { |
if (element.tagName == 'BODY') break; |
var p = Element.getStyle(element, 'position'); |
if (p !== 'static') break; |
} |
} while (element); |
return Element._returnOffset(valueL, valueT); |
}, |
absolutize: function(element) { |
element = $(element); |
if (element.getStyle('position') == 'absolute') return; |
// Position.prepare(); // To be done manually by Scripty when it needs it. |
var offsets = element.positionedOffset(); |
var top = offsets[1]; |
var left = offsets[0]; |
var width = element.clientWidth; |
var height = element.clientHeight; |
element._originalLeft = left - parseFloat(element.style.left || 0); |
element._originalTop = top - parseFloat(element.style.top || 0); |
element._originalWidth = element.style.width; |
element._originalHeight = element.style.height; |
element.style.position = 'absolute'; |
element.style.top = top + 'px'; |
element.style.left = left + 'px'; |
element.style.width = width + 'px'; |
element.style.height = height + 'px'; |
return element; |
}, |
relativize: function(element) { |
element = $(element); |
if (element.getStyle('position') == 'relative') return; |
// Position.prepare(); // To be done manually by Scripty when it needs it. |
element.style.position = 'relative'; |
var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); |
var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); |
element.style.top = top + 'px'; |
element.style.left = left + 'px'; |
element.style.height = element._originalHeight; |
element.style.width = element._originalWidth; |
return element; |
}, |
cumulativeScrollOffset: function(element) { |
var valueT = 0, valueL = 0; |
do { |
valueT += element.scrollTop || 0; |
valueL += element.scrollLeft || 0; |
element = element.parentNode; |
} while (element); |
return Element._returnOffset(valueL, valueT); |
}, |
getOffsetParent: function(element) { |
if (element.offsetParent) return $(element.offsetParent); |
if (element == document.body) return $(element); |
while ((element = element.parentNode) && element != document.body) |
if (Element.getStyle(element, 'position') != 'static') |
return $(element); |
return $(document.body); |
}, |
viewportOffset: function(forElement) { |
var valueT = 0, valueL = 0; |
var element = forElement; |
do { |
valueT += element.offsetTop || 0; |
valueL += element.offsetLeft || 0; |
// Safari fix |
if (element.offsetParent == document.body && |
Element.getStyle(element, 'position') == 'absolute') break; |
} while (element = element.offsetParent); |
element = forElement; |
do { |
if (!Prototype.Browser.Opera || element.tagName == 'BODY') { |
valueT -= element.scrollTop || 0; |
valueL -= element.scrollLeft || 0; |
} |
} while (element = element.parentNode); |
return Element._returnOffset(valueL, valueT); |
}, |
clonePosition: function(element, source) { |
var options = Object.extend({ |
setLeft: true, |
setTop: true, |
setWidth: true, |
setHeight: true, |
offsetTop: 0, |
offsetLeft: 0 |
}, arguments[2] || { }); |
// find page position of source |
source = $(source); |
var p = source.viewportOffset(); |
// find coordinate system to use |
element = $(element); |
var delta = [0, 0]; |
var parent = null; |
// delta [0,0] will do fine with position: fixed elements, |
// position:absolute needs offsetParent deltas |
if (Element.getStyle(element, 'position') == 'absolute') { |
parent = element.getOffsetParent(); |
delta = parent.viewportOffset(); |
} |
// correct by body offsets (fixes Safari) |
if (parent == document.body) { |
delta[0] -= document.body.offsetLeft; |
delta[1] -= document.body.offsetTop; |
} |
// set position |
if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; |
if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; |
if (options.setWidth) element.style.width = source.offsetWidth + 'px'; |
if (options.setHeight) element.style.height = source.offsetHeight + 'px'; |
return element; |
} |
}; |
Element.Methods.identify.counter = 1; |
Object.extend(Element.Methods, { |
getElementsBySelector: Element.Methods.select, |
childElements: Element.Methods.immediateDescendants |
}); |
Element._attributeTranslations = { |
write: { |
names: { |
className: 'class', |
htmlFor: 'for' |
}, |
values: { } |
} |
}; |
if (Prototype.Browser.Opera) { |
Element.Methods.getStyle = Element.Methods.getStyle.wrap( |
function(proceed, element, style) { |
switch (style) { |
case 'left': case 'top': case 'right': case 'bottom': |
if (proceed(element, 'position') === 'static') return null; |
case 'height': case 'width': |
// returns '0px' for hidden elements; we want it to return null |
if (!Element.visible(element)) return null; |
// returns the border-box dimensions rather than the content-box |
// dimensions, so we subtract padding and borders from the value |
var dim = parseInt(proceed(element, style), 10); |
if (dim !== element['offset' + style.capitalize()]) |
return dim + 'px'; |
var properties; |
if (style === 'height') { |
properties = ['border-top-width', 'padding-top', |
'padding-bottom', 'border-bottom-width']; |
} |
else { |
properties = ['border-left-width', 'padding-left', |
'padding-right', 'border-right-width']; |
} |
return properties.inject(dim, function(memo, property) { |
var val = proceed(element, property); |
return val === null ? memo : memo - parseInt(val, 10); |
}) + 'px'; |
default: return proceed(element, style); |
} |
} |
); |
Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( |
function(proceed, element, attribute) { |
if (attribute === 'title') return element.title; |
return proceed(element, attribute); |
} |
); |
} |
else if (Prototype.Browser.IE) { |
// IE doesn't report offsets correctly for static elements, so we change them |
// to "relative" to get the values, then change them back. |
Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( |
function(proceed, element) { |
element = $(element); |
var position = element.getStyle('position'); |
if (position !== 'static') return proceed(element); |
element.setStyle({ position: 'relative' }); |
var value = proceed(element); |
element.setStyle({ position: position }); |
return value; |
} |
); |
$w('positionedOffset viewportOffset').each(function(method) { |
Element.Methods[method] = Element.Methods[method].wrap( |
function(proceed, element) { |
element = $(element); |
var position = element.getStyle('position'); |
if (position !== 'static') return proceed(element); |
// Trigger hasLayout on the offset parent so that IE6 reports |
// accurate offsetTop and offsetLeft values for position: fixed. |
var offsetParent = element.getOffsetParent(); |
if (offsetParent && offsetParent.getStyle('position') === 'fixed') |
offsetParent.setStyle({ zoom: 1 }); |
element.setStyle({ position: 'relative' }); |
var value = proceed(element); |
element.setStyle({ position: position }); |
return value; |
} |
); |
}); |
Element.Methods.getStyle = function(element, style) { |
element = $(element); |
style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); |
var value = element.style[style]; |
if (!value && element.currentStyle) value = element.currentStyle[style]; |
if (style == 'opacity') { |
if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) |
if (value[1]) return parseFloat(value[1]) / 100; |
return 1.0; |
} |
if (value == 'auto') { |
if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) |
return element['offset' + style.capitalize()] + 'px'; |
return null; |
} |
return value; |
}; |
Element.Methods.setOpacity = function(element, value) { |
function stripAlpha(filter){ |
return filter.replace(/alpha\([^\)]*\)/gi,''); |
} |
element = $(element); |
var currentStyle = element.currentStyle; |
if ((currentStyle && !currentStyle.hasLayout) || |
(!currentStyle && element.style.zoom == 'normal')) |
element.style.zoom = 1; |
var filter = element.getStyle('filter'), style = element.style; |
if (value == 1 || value === '') { |
(filter = stripAlpha(filter)) ? |
style.filter = filter : style.removeAttribute('filter'); |
return element; |
} else if (value < 0.00001) value = 0; |
style.filter = stripAlpha(filter) + |
'alpha(opacity=' + (value * 100) + ')'; |
return element; |
}; |
Element._attributeTranslations = { |
read: { |
names: { |
'class': 'className', |
'for': 'htmlFor' |
}, |
values: { |
_getAttr: function(element, attribute) { |
return element.getAttribute(attribute, 2); |
}, |
_getAttrNode: function(element, attribute) { |
var node = element.getAttributeNode(attribute); |
return node ? node.value : ""; |
}, |
_getEv: function(element, attribute) { |
attribute = element.getAttribute(attribute); |
return attribute ? attribute.toString().slice(23, -2) : null; |
}, |
_flag: function(element, attribute) { |
return $(element).hasAttribute(attribute) ? attribute : null; |
}, |
style: function(element) { |
return element.style.cssText.toLowerCase(); |
}, |
title: function(element) { |
return element.title; |
} |
} |
} |
}; |
Element._attributeTranslations.write = { |
names: Object.extend({ |
cellpadding: 'cellPadding', |
cellspacing: 'cellSpacing' |
}, Element._attributeTranslations.read.names), |
values: { |
checked: function(element, value) { |
element.checked = !!value; |
}, |
style: function(element, value) { |
element.style.cssText = value ? value : ''; |
} |
} |
}; |
Element._attributeTranslations.has = {}; |
$w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + |
'encType maxLength readOnly longDesc').each(function(attr) { |
Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; |
Element._attributeTranslations.has[attr.toLowerCase()] = attr; |
}); |
(function(v) { |
Object.extend(v, { |
href: v._getAttr, |
src: v._getAttr, |
type: v._getAttr, |
action: v._getAttrNode, |
disabled: v._flag, |
checked: v._flag, |
readonly: v._flag, |
multiple: v._flag, |
onload: v._getEv, |
onunload: v._getEv, |
onclick: v._getEv, |
ondblclick: v._getEv, |
onmousedown: v._getEv, |
onmouseup: v._getEv, |
onmouseover: v._getEv, |
onmousemove: v._getEv, |
onmouseout: v._getEv, |
onfocus: v._getEv, |
onblur: v._getEv, |
onkeypress: v._getEv, |
onkeydown: v._getEv, |
onkeyup: v._getEv, |
onsubmit: v._getEv, |
onreset: v._getEv, |
onselect: v._getEv, |
onchange: v._getEv |
}); |
})(Element._attributeTranslations.read.values); |
} |
else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { |
Element.Methods.setOpacity = function(element, value) { |
element = $(element); |
element.style.opacity = (value == 1) ? 0.999999 : |
(value === '') ? '' : (value < 0.00001) ? 0 : value; |
return element; |
}; |
} |
else if (Prototype.Browser.WebKit) { |
Element.Methods.setOpacity = function(element, value) { |
element = $(element); |
element.style.opacity = (value == 1 || value === '') ? '' : |
(value < 0.00001) ? 0 : value; |
if (value == 1) |
if(element.tagName == 'IMG' && element.width) { |
element.width++; element.width--; |
} else try { |
var n = document.createTextNode(' '); |
element.appendChild(n); |
element.removeChild(n); |
} catch (e) { } |
return element; |
}; |
// Safari returns margins on body which is incorrect if the child is absolutely |
// positioned. For performance reasons, redefine Element#cumulativeOffset for |
// KHTML/WebKit only. |
Element.Methods.cumulativeOffset = function(element) { |
var valueT = 0, valueL = 0; |
do { |
valueT += element.offsetTop || 0; |
valueL += element.offsetLeft || 0; |
if (element.offsetParent == document.body) |
if (Element.getStyle(element, 'position') == 'absolute') break; |
element = element.offsetParent; |
} while (element); |
return Element._returnOffset(valueL, valueT); |
}; |
} |
if (Prototype.Browser.IE || Prototype.Browser.Opera) { |
// IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements |
Element.Methods.update = function(element, content) { |
element = $(element); |
if (content && content.toElement) content = content.toElement(); |
if (Object.isElement(content)) return element.update().insert(content); |
content = Object.toHTML(content); |
var tagName = element.tagName.toUpperCase(); |
if (tagName in Element._insertionTranslations.tags) { |
$A(element.childNodes).each(function(node) { element.removeChild(node) }); |
Element._getContentFromAnonymousElement(tagName, content.stripScripts()) |
.each(function(node) { element.appendChild(node) }); |
} |
else element.innerHTML = content.stripScripts(); |
content.evalScripts.bind(content).defer(); |
return element; |
}; |
} |
if ('outerHTML' in document.createElement('div')) { |
Element.Methods.replace = function(element, content) { |
element = $(element); |
if (content && content.toElement) content = content.toElement(); |
if (Object.isElement(content)) { |
element.parentNode.replaceChild(content, element); |
return element; |
} |
content = Object.toHTML(content); |
var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); |
if (Element._insertionTranslations.tags[tagName]) { |
var nextSibling = element.next(); |
var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); |
parent.removeChild(element); |
if (nextSibling) |
fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); |
else |
fragments.each(function(node) { parent.appendChild(node) }); |
} |
else element.outerHTML = content.stripScripts(); |
content.evalScripts.bind(content).defer(); |
return element; |
}; |
} |
Element._returnOffset = function(l, t) { |
var result = [l, t]; |
result.left = l; |
result.top = t; |
return result; |
}; |
Element._getContentFromAnonymousElement = function(tagName, html) { |
var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; |
if (t) { |
div.innerHTML = t[0] + html + t[1]; |
t[2].times(function() { div = div.firstChild }); |
} else div.innerHTML = html; |
return $A(div.childNodes); |
}; |
Element._insertionTranslations = { |
before: function(element, node) { |
element.parentNode.insertBefore(node, element); |
}, |
top: function(element, node) { |
element.insertBefore(node, element.firstChild); |
}, |
bottom: function(element, node) { |
element.appendChild(node); |
}, |
after: function(element, node) { |
element.parentNode.insertBefore(node, element.nextSibling); |
}, |
tags: { |
TABLE: ['<table>', '</table>', 1], |
TBODY: ['<table><tbody>', '</tbody></table>', 2], |
TR: ['<table><tbody><tr>', '</tr></tbody></table>', 3], |
TD: ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4], |
SELECT: ['<select>', '</select>', 1] |
} |
}; |
(function() { |
Object.extend(this.tags, { |
THEAD: this.tags.TBODY, |
TFOOT: this.tags.TBODY, |
TH: this.tags.TD |
}); |
}).call(Element._insertionTranslations); |
Element.Methods.Simulated = { |
hasAttribute: function(element, attribute) { |
attribute = Element._attributeTranslations.has[attribute] || attribute; |
var node = $(element).getAttributeNode(attribute); |
return node && node.specified; |
} |
}; |
Element.Methods.ByTag = { }; |
Object.extend(Element, Element.Methods); |
if (!Prototype.BrowserFeatures.ElementExtensions && |
document.createElement('div').__proto__) { |
window.HTMLElement = { }; |
window.HTMLElement.prototype = document.createElement('div').__proto__; |
Prototype.BrowserFeatures.ElementExtensions = true; |
} |
Element.extend = (function() { |
if (Prototype.BrowserFeatures.SpecificElementExtensions) |
return Prototype.K; |
var Methods = { }, ByTag = Element.Methods.ByTag; |
var extend = Object.extend(function(element) { |
if (!element || element._extendedByPrototype || |
element.nodeType != 1 || element == window) return element; |
var methods = Object.clone(Methods), |
tagName = element.tagName, property, value; |
// extend methods for specific tags |
if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); |
for (property in methods) { |
value = methods[property]; |
if (Object.isFunction(value) && !(property in element)) |
element[property] = value.methodize(); |
} |
element._extendedByPrototype = Prototype.emptyFunction; |
return element; |
}, { |
refresh: function() { |
// extend methods for all tags (Safari doesn't need this) |
if (!Prototype.BrowserFeatures.ElementExtensions) { |
Object.extend(Methods, Element.Methods); |
Object.extend(Methods, Element.Methods.Simulated); |
} |
} |
}); |
extend.refresh(); |
return extend; |
})(); |
Element.hasAttribute = function(element, attribute) { |
if (element.hasAttribute) return element.hasAttribute(attribute); |
return Element.Methods.Simulated.hasAttribute(element, attribute); |
}; |
Element.addMethods = function(methods) { |
var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; |
if (!methods) { |
Object.extend(Form, Form.Methods); |
Object.extend(Form.Element, Form.Element.Methods); |
Object.extend(Element.Methods.ByTag, { |
"FORM": Object.clone(Form.Methods), |
"INPUT": Object.clone(Form.Element.Methods), |
"SELECT": Object.clone(Form.Element.Methods), |
"TEXTAREA": Object.clone(Form.Element.Methods) |
}); |
} |
if (arguments.length == 2) { |
var tagName = methods; |
methods = arguments[1]; |
} |
if (!tagName) Object.extend(Element.Methods, methods || { }); |
else { |
if (Object.isArray(tagName)) tagName.each(extend); |
else extend(tagName); |
} |
function extend(tagName) { |
tagName = tagName.toUpperCase(); |
if (!Element.Methods.ByTag[tagName]) |
Element.Methods.ByTag[tagName] = { }; |
Object.extend(Element.Methods.ByTag[tagName], methods); |
} |
function copy(methods, destination, onlyIfAbsent) { |
onlyIfAbsent = onlyIfAbsent || false; |
for (var property in methods) { |
var value = methods[property]; |
if (!Object.isFunction(value)) continue; |
if (!onlyIfAbsent || !(property in destination)) |
destination[property] = value.methodize(); |
} |
} |
function findDOMClass(tagName) { |
var klass; |
var trans = { |
"OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", |
"FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", |
"DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", |
"H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", |
"INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": |
"TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": |
"TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": |
"TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": |
"FrameSet", "IFRAME": "IFrame" |
}; |
if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; |
if (window[klass]) return window[klass]; |
klass = 'HTML' + tagName + 'Element'; |
if (window[klass]) return window[klass]; |
klass = 'HTML' + tagName.capitalize() + 'Element'; |
if (window[klass]) return window[klass]; |
window[klass] = { }; |
window[klass].prototype = document.createElement(tagName).__proto__; |
return window[klass]; |
} |
if (F.ElementExtensions) { |
copy(Element.Methods, HTMLElement.prototype); |
copy(Element.Methods.Simulated, HTMLElement.prototype, true); |
} |
if (F.SpecificElementExtensions) { |
for (var tag in Element.Methods.ByTag) { |
var klass = findDOMClass(tag); |
if (Object.isUndefined(klass)) continue; |
copy(T[tag], klass.prototype); |
} |
} |
Object.extend(Element, Element.Methods); |
delete Element.ByTag; |
if (Element.extend.refresh) Element.extend.refresh(); |
Element.cache = { }; |
}; |
document.viewport = { |
getDimensions: function() { |
var dimensions = { }; |
var B = Prototype.Browser; |
$w('width height').each(function(d) { |
var D = d.capitalize(); |
dimensions[d] = (B.WebKit && !document.evaluate) ? self['inner' + D] : |
(B.Opera) ? document.body['client' + D] : document.documentElement['client' + D]; |
}); |
return dimensions; |
}, |
getWidth: function() { |
return this.getDimensions().width; |
}, |
getHeight: function() { |
return this.getDimensions().height; |
}, |
getScrollOffsets: function() { |
return Element._returnOffset( |
window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, |
window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); |
} |
}; |
/* Portions of the Selector class are derived from Jack Slocum’s DomQuery, |
* part of YUI-Ext version 0.40, distributed under the terms of an MIT-style |
* license. Please see http://www.yui-ext.com/ for more information. */ |
var Selector = Class.create({ |
initialize: function(expression) { |
this.expression = expression.strip(); |
this.compileMatcher(); |
}, |
shouldUseXPath: function() { |
if (!Prototype.BrowserFeatures.XPath) return false; |
var e = this.expression; |
// Safari 3 chokes on :*-of-type and :empty |
if (Prototype.Browser.WebKit && |
(e.include("-of-type") || e.include(":empty"))) |
return false; |
// XPath can't do namespaced attributes, nor can it read |
// the "checked" property from DOM nodes |
if ((/(\[[\w-]*?:|:checked)/).test(this.expression)) |
return false; |
return true; |
}, |
compileMatcher: function() { |
if (this.shouldUseXPath()) |
return this.compileXPathMatcher(); |
var e = this.expression, ps = Selector.patterns, h = Selector.handlers, |
c = Selector.criteria, le, p, m; |
if (Selector._cache[e]) { |
this.matcher = Selector._cache[e]; |
return; |
} |
this.matcher = ["this.matcher = function(root) {", |
"var r = root, h = Selector.handlers, c = false, n;"]; |
while (e && le != e && (/\S/).test(e)) { |
le = e; |
for (var i in ps) { |
p = ps[i]; |
if (m = e.match(p)) { |
this.matcher.push(Object.isFunction(c[i]) ? c[i](m) : |
new Template(c[i]).evaluate(m)); |
e = e.replace(m[0], ''); |
break; |
} |
} |
} |
this.matcher.push("return h.unique(n);\n}"); |
eval(this.matcher.join('\n')); |
Selector._cache[this.expression] = this.matcher; |
}, |
compileXPathMatcher: function() { |
var e = this.expression, ps = Selector.patterns, |
x = Selector.xpath, le, m; |
if (Selector._cache[e]) { |
this.xpath = Selector._cache[e]; return; |
} |
this.matcher = ['.//*']; |
while (e && le != e && (/\S/).test(e)) { |
le = e; |
for (var i in ps) { |
if (m = e.match(ps[i])) { |
this.matcher.push(Object.isFunction(x[i]) ? x[i](m) : |
new Template(x[i]).evaluate(m)); |
e = e.replace(m[0], ''); |
break; |
} |
} |
} |
this.xpath = this.matcher.join(''); |
Selector._cache[this.expression] = this.xpath; |
}, |
findElements: function(root) { |
root = root || document; |
if (this.xpath) return document._getElementsByXPath(this.xpath, root); |
return this.matcher(root); |
}, |
match: function(element) { |
this.tokens = []; |
var e = this.expression, ps = Selector.patterns, as = Selector.assertions; |
var le, p, m; |
while (e && le !== e && (/\S/).test(e)) { |
le = e; |
for (var i in ps) { |
p = ps[i]; |
if (m = e.match(p)) { |
// use the Selector.assertions methods unless the selector |
// is too complex. |
if (as[i]) { |
this.tokens.push([i, Object.clone(m)]); |
e = e.replace(m[0], ''); |
} else { |
// reluctantly do a document-wide search |
// and look for a match in the array |
return this.findElements(document).include(element); |
} |
} |
} |
} |
var match = true, name, matches; |
for (var i = 0, token; token = this.tokens[i]; i++) { |
name = token[0], matches = token[1]; |
if (!Selector.assertions[name](element, matches)) { |
match = false; break; |
} |
} |
return match; |
}, |
toString: function() { |
return this.expression; |
}, |
inspect: function() { |
return "#<Selector:" + this.expression.inspect() + ">"; |
} |
}); |
Object.extend(Selector, { |
_cache: { }, |
xpath: { |
descendant: "//*", |
child: "/*", |
adjacent: "/following-sibling::*[1]", |
laterSibling: '/following-sibling::*', |
tagName: function(m) { |
if (m[1] == '*') return ''; |
return "[local-name()='" + m[1].toLowerCase() + |
"' or local-name()='" + m[1].toUpperCase() + "']"; |
}, |
className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", |
id: "[@id='#{1}']", |
attrPresence: function(m) { |
m[1] = m[1].toLowerCase(); |
return new Template("[@#{1}]").evaluate(m); |
}, |
attr: function(m) { |
m[1] = m[1].toLowerCase(); |
m[3] = m[5] || m[6]; |
return new Template(Selector.xpath.operators[m[2]]).evaluate(m); |
}, |
pseudo: function(m) { |
var h = Selector.xpath.pseudos[m[1]]; |
if (!h) return ''; |
if (Object.isFunction(h)) return h(m); |
return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); |
}, |
operators: { |
'=': "[@#{1}='#{3}']", |
'!=': "[@#{1}!='#{3}']", |
'^=': "[starts-with(@#{1}, '#{3}')]", |
'$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", |
'*=': "[contains(@#{1}, '#{3}')]", |
'~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", |
'|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" |
}, |
pseudos: { |
'first-child': '[not(preceding-sibling::*)]', |
'last-child': '[not(following-sibling::*)]', |
'only-child': '[not(preceding-sibling::* or following-sibling::*)]', |
'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]", |
'checked': "[@checked]", |
'disabled': "[@disabled]", |
'enabled': "[not(@disabled)]", |
'not': function(m) { |
var e = m[6], p = Selector.patterns, |
x = Selector.xpath, le, v; |
var exclusion = []; |
while (e && le != e && (/\S/).test(e)) { |
le = e; |
for (var i in p) { |
if (m = e.match(p[i])) { |
v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m); |
exclusion.push("(" + v.substring(1, v.length - 1) + ")"); |
e = e.replace(m[0], ''); |
break; |
} |
} |
} |
return "[not(" + exclusion.join(" and ") + ")]"; |
}, |
'nth-child': function(m) { |
return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m); |
}, |
'nth-last-child': function(m) { |
return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m); |
}, |
'nth-of-type': function(m) { |
return Selector.xpath.pseudos.nth("position() ", m); |
}, |
'nth-last-of-type': function(m) { |
return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m); |
}, |
'first-of-type': function(m) { |
m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m); |
}, |
'last-of-type': function(m) { |
m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m); |
}, |
'only-of-type': function(m) { |
var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m); |
}, |
nth: function(fragment, m) { |
var mm, formula = m[6], predicate; |
if (formula == 'even') formula = '2n+0'; |
if (formula == 'odd') formula = '2n+1'; |
if (mm = formula.match(/^(\d+)$/)) // digit only |
return '[' + fragment + "= " + mm[1] + ']'; |
if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b |
if (mm[1] == "-") mm[1] = -1; |
var a = mm[1] ? Number(mm[1]) : 1; |
var b = mm[2] ? Number(mm[2]) : 0; |
predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " + |
"((#{fragment} - #{b}) div #{a} >= 0)]"; |
return new Template(predicate).evaluate({ |
fragment: fragment, a: a, b: b }); |
} |
} |
} |
}, |
criteria: { |
tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', |
className: 'n = h.className(n, r, "#{1}", c); c = false;', |
id: 'n = h.id(n, r, "#{1}", c); c = false;', |
attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', |
attr: function(m) { |
m[3] = (m[5] || m[6]); |
return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); |
}, |
pseudo: function(m) { |
if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); |
return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); |
}, |
descendant: 'c = "descendant";', |
child: 'c = "child";', |
adjacent: 'c = "adjacent";', |
laterSibling: 'c = "laterSibling";' |
}, |
patterns: { |
// combinators must be listed first |
// (and descendant needs to be last combinator) |
laterSibling: /^\s*~\s*/, |
child: /^\s*>\s*/, |
adjacent: /^\s*\+\s*/, |
descendant: /^\s/, |
// selectors follow |
tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, |
id: /^#([\w\-\*]+)(\b|$)/, |
className: /^\.([\w\-\*]+)(\b|$)/, |
pseudo: |
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/, |
attrPresence: /^\[([\w]+)\]/, |
attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ |
}, |
// for Selector.match and Element#match |
assertions: { |
tagName: function(element, matches) { |
return matches[1].toUpperCase() == element.tagName.toUpperCase(); |
}, |
className: function(element, matches) { |
return Element.hasClassName(element, matches[1]); |
}, |
id: function(element, matches) { |
return element.id === matches[1]; |
}, |
attrPresence: function(element, matches) { |
return Element.hasAttribute(element, matches[1]); |
}, |
attr: function(element, matches) { |
var nodeValue = Element.readAttribute(element, matches[1]); |
return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); |
} |
}, |
handlers: { |
// UTILITY FUNCTIONS |
// joins two collections |
concat: function(a, b) { |
for (var i = 0, node; node = b[i]; i++) |
a.push(node); |
return a; |
}, |
// marks an array of nodes for counting |
mark: function(nodes) { |
var _true = Prototype.emptyFunction; |
for (var i = 0, node; node = nodes[i]; i++) |
node._countedByPrototype = _true; |
return nodes; |
}, |
unmark: function(nodes) { |
for (var i = 0, node; node = nodes[i]; i++) |
node._countedByPrototype = undefined; |
return nodes; |
}, |
// mark each child node with its position (for nth calls) |
// "ofType" flag indicates whether we're indexing for nth-of-type |
// rather than nth-child |
index: function(parentNode, reverse, ofType) { |
parentNode._countedByPrototype = Prototype.emptyFunction; |
if (reverse) { |
for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { |
var node = nodes[i]; |
if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; |
} |
} else { |
for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) |
if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; |
} |
}, |
// filters out duplicates and extends all nodes |
unique: function(nodes) { |
if (nodes.length == 0) return nodes; |
var results = [], n; |
for (var i = 0, l = nodes.length; i < l; i++) |
if (!(n = nodes[i])._countedByPrototype) { |
n._countedByPrototype = Prototype.emptyFunction; |
results.push(Element.extend(n)); |
} |
return Selector.handlers.unmark(results); |
}, |
// COMBINATOR FUNCTIONS |
descendant: function(nodes) { |
var h = Selector.handlers; |
for (var i = 0, results = [], node; node = nodes[i]; i++) |
h.concat(results, node.getElementsByTagName('*')); |
return results; |
}, |
child: function(nodes) { |
var h = Selector.handlers; |
for (var i = 0, results = [], node; node = nodes[i]; i++) { |
for (var j = 0, child; child = node.childNodes[j]; j++) |
if (child.nodeType == 1 && child.tagName != '!') results.push(child); |
} |
return results; |
}, |
adjacent: function(nodes) { |
for (var i = 0, results = [], node; node = nodes[i]; i++) { |
var next = this.nextElementSibling(node); |
if (next) results.push(next); |
} |
return results; |
}, |
laterSibling: function(nodes) { |
var h = Selector.handlers; |
for (var i = 0, results = [], node; node = nodes[i]; i++) |
h.concat(results, Element.nextSiblings(node)); |
return results; |
}, |
nextElementSibling: function(node) { |
while (node = node.nextSibling) |
if (node.nodeType == 1) return node; |
return null; |
}, |
previousElementSibling: function(node) { |
while (node = node.previousSibling) |
if (node.nodeType == 1) return node; |
return null; |
}, |
// TOKEN FUNCTIONS |
tagName: function(nodes, root, tagName, combinator) { |
var uTagName = tagName.toUpperCase(); |
var results = [], h = Selector.handlers; |
if (nodes) { |
if (combinator) { |
// fastlane for ordinary descendant combinators |
if (combinator == "descendant") { |
for (var i = 0, node; node = nodes[i]; i++) |
h.concat(results, node.getElementsByTagName(tagName)); |
return results; |
} else nodes = this[combinator](nodes); |
if (tagName == "*") return nodes; |
} |
for (var i = 0, node; node = nodes[i]; i++) |
if (node.tagName.toUpperCase() === uTagName) results.push(node); |
return results; |
} else return root.getElementsByTagName(tagName); |
}, |
id: function(nodes, root, id, combinator) { |
var targetNode = $(id), h = Selector.handlers; |
if (!targetNode) return []; |
if (!nodes && root == document) return [targetNode]; |
if (nodes) { |
if (combinator) { |
if (combinator == 'child') { |
for (var i = 0, node; node = nodes[i]; i++) |
if (targetNode.parentNode == node) return [targetNode]; |
} else if (combinator == 'descendant') { |
for (var i = 0, node; node = nodes[i]; i++) |
if (Element.descendantOf(targetNode, node)) return [targetNode]; |
} else if (combinator == 'adjacent') { |
for (var i = 0, node; node = nodes[i]; i++) |
if (Selector.handlers.previousElementSibling(targetNode) == node) |
return [targetNode]; |
} else nodes = h[combinator](nodes); |
} |
for (var i = 0, node; node = nodes[i]; i++) |
if (node == targetNode) return [targetNode]; |
return []; |
} |
return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; |
}, |
className: function(nodes, root, className, combinator) { |
if (nodes && combinator) nodes = this[combinator](nodes); |
return Selector.handlers.byClassName(nodes, root, className); |
}, |
byClassName: function(nodes, root, className) { |
if (!nodes) nodes = Selector.handlers.descendant([root]); |
var needle = ' ' + className + ' '; |
for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { |
nodeClassName = node.className; |
if (nodeClassName.length == 0) continue; |
if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) |
results.push(node); |
} |
return results; |
}, |
attrPresence: function(nodes, root, attr, combinator) { |
if (!nodes) nodes = root.getElementsByTagName("*"); |
if (nodes && combinator) nodes = this[combinator](nodes); |
var results = []; |
for (var i = 0, node; node = nodes[i]; i++) |
if (Element.hasAttribute(node, attr)) results.push(node); |
return results; |
}, |
attr: function(nodes, root, attr, value, operator, combinator) { |
if (!nodes) nodes = root.getElementsByTagName("*"); |
if (nodes && combinator) nodes = this[combinator](nodes); |
var handler = Selector.operators[operator], results = []; |
for (var i = 0, node; node = nodes[i]; i++) { |
var nodeValue = Element.readAttribute(node, attr); |
if (nodeValue === null) continue; |
if (handler(nodeValue, value)) results.push(node); |
} |
return results; |
}, |
pseudo: function(nodes, name, value, root, combinator) { |
if (nodes && combinator) nodes = this[combinator](nodes); |
if (!nodes) nodes = root.getElementsByTagName("*"); |
return Selector.pseudos[name](nodes, value, root); |
} |
}, |
pseudos: { |
'first-child': function(nodes, value, root) { |
for (var i = 0, results = [], node; node = nodes[i]; i++) { |
if (Selector.handlers.previousElementSibling(node)) continue; |
results.push(node); |
} |
return results; |
}, |
'last-child': function(nodes, value, root) { |
for (var i = 0, results = [], node; node = nodes[i]; i++) { |
if (Selector.handlers.nextElementSibling(node)) continue; |
results.push(node); |
} |
return results; |
}, |
'only-child': function(nodes, value, root) { |
var h = Selector.handlers; |
for (var i = 0, results = [], node; node = nodes[i]; i++) |
if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) |
results.push(node); |
return results; |
}, |
'nth-child': function(nodes, formula, root) { |
return Selector.pseudos.nth(nodes, formula, root); |
}, |
'nth-last-child': function(nodes, formula, root) { |
return Selector.pseudos.nth(nodes, formula, root, true); |
}, |
'nth-of-type': function(nodes, formula, root) { |
return Selector.pseudos.nth(nodes, formula, root, false, true); |
}, |
'nth-last-of-type': function(nodes, formula, root) { |
return Selector.pseudos.nth(nodes, formula, root, true, true); |
}, |
'first-of-type': function(nodes, formula, root) { |
return Selector.pseudos.nth(nodes, "1", root, false, true); |
}, |
'last-of-type': function(nodes, formula, root) { |
return Selector.pseudos.nth(nodes, "1", root, true, true); |
}, |
'only-of-type': function(nodes, formula, root) { |
var p = Selector.pseudos; |
return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); |
}, |
// handles the an+b logic |
getIndices: function(a, b, total) { |
if (a == 0) return b > 0 ? [b] : []; |
return $R(1, total).inject([], function(memo, i) { |
if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); |
return memo; |
}); |
}, |
// handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type |
nth: function(nodes, formula, root, reverse, ofType) { |
if (nodes.length == 0) return []; |
if (formula == 'even') formula = '2n+0'; |
if (formula == 'odd') formula = '2n+1'; |
var h = Selector.handlers, results = [], indexed = [], m; |
h.mark(nodes); |
for (var i = 0, node; node = nodes[i]; i++) { |
if (!node.parentNode._countedByPrototype) { |
h.index(node.parentNode, reverse, ofType); |
indexed.push(node.parentNode); |
} |
} |
if (formula.match(/^\d+$/)) { // just a number |
formula = Number(formula); |
for (var i = 0, node; node = nodes[i]; i++) |
if (node.nodeIndex == formula) results.push(node); |
} else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b |
if (m[1] == "-") m[1] = -1; |
var a = m[1] ? Number(m[1]) : 1; |
var b = m[2] ? Number(m[2]) : 0; |
var indices = Selector.pseudos.getIndices(a, b, nodes.length); |
for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { |
for (var j = 0; j < l; j++) |
if (node.nodeIndex == indices[j]) results.push(node); |
} |
} |
h.unmark(nodes); |
h.unmark(indexed); |
return results; |
}, |
'empty': function(nodes, value, root) { |
for (var i = 0, results = [], node; node = nodes[i]; i++) { |
// IE treats comments as element nodes |
if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue; |
results.push(node); |
} |
return results; |
}, |
'not': function(nodes, selector, root) { |
var h = Selector.handlers, selectorType, m; |
var exclusions = new Selector(selector).findElements(root); |
h.mark(exclusions); |
for (var i = 0, results = [], node; node = nodes[i]; i++) |
if (!node._countedByPrototype) results.push(node); |
h.unmark(exclusions); |
return results; |
}, |
'enabled': function(nodes, value, root) { |
for (var i = 0, results = [], node; node = nodes[i]; i++) |
if (!node.disabled) results.push(node); |
return results; |
}, |
'disabled': function(nodes, value, root) { |
for (var i = 0, results = [], node; node = nodes[i]; i++) |
if (node.disabled) results.push(node); |
return results; |
}, |
'checked': function(nodes, value, root) { |
for (var i = 0, results = [], node; node = nodes[i]; i++) |
if (node.checked) results.push(node); |
return results; |
} |
}, |
operators: { |
'=': function(nv, v) { return nv == v; }, |
'!=': function(nv, v) { return nv != v; }, |
'^=': function(nv, v) { return nv.startsWith(v); }, |
'$=': function(nv, v) { return nv.endsWith(v); }, |
'*=': function(nv, v) { return nv.include(v); }, |
'~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, |
'|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); } |
}, |
split: function(expression) { |
var expressions = []; |
expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { |
expressions.push(m[1].strip()); |
}); |
return expressions; |
}, |
matchElements: function(elements, expression) { |
var matches = $$(expression), h = Selector.handlers; |
h.mark(matches); |
for (var i = 0, results = [], element; element = elements[i]; i++) |
if (element._countedByPrototype) results.push(element); |
h.unmark(matches); |
return results; |
}, |
findElement: function(elements, expression, index) { |
if (Object.isNumber(expression)) { |
index = expression; expression = false; |
} |
return Selector.matchElements(elements, expression || '*')[index || 0]; |
}, |
findChildElements: function(element, expressions) { |
expressions = Selector.split(expressions.join(',')); |
var results = [], h = Selector.handlers; |
for (var i = 0, l = expressions.length, selector; i < l; i++) { |
selector = new Selector(expressions[i].strip()); |
h.concat(results, selector.findElements(element)); |
} |
return (l > 1) ? h.unique(results) : results; |
} |
}); |
if (Prototype.Browser.IE) { |
Object.extend(Selector.handlers, { |
// IE returns comment nodes on getElementsByTagName("*"). |
// Filter them out. |
concat: function(a, b) { |
for (var i = 0, node; node = b[i]; i++) |
if (node.tagName !== "!") a.push(node); |
return a; |
}, |
// IE improperly serializes _countedByPrototype in (inner|outer)HTML. |
unmark: function(nodes) { |
for (var i = 0, node; node = nodes[i]; i++) |
node.removeAttribute('_countedByPrototype'); |
return nodes; |
} |
}); |
} |
function $$() { |
return Selector.findChildElements(document, $A(arguments)); |
} |
var Form = { |
reset: function(form) { |
$(form).reset(); |
return form; |
}, |
serializeElements: function(elements, options) { |
if (typeof options != 'object') options = { hash: !!options }; |
else if (Object.isUndefined(options.hash)) options.hash = true; |
var key, value, submitted = false, submit = options.submit; |
var data = elements.inject({ }, function(result, element) { |
if (!element.disabled && element.name) { |
key = element.name; value = $(element).getValue(); |
if (value != null && (element.type != 'submit' || (!submitted && |
submit !== false && (!submit || key == submit) && (submitted = true)))) { |
if (key in result) { |
// a key is already present; construct an array of values |
if (!Object.isArray(result[key])) result[key] = [result[key]]; |
result[key].push(value); |
} |
else result[key] = value; |
} |
} |
return result; |
}); |
return options.hash ? data : Object.toQueryString(data); |
} |
}; |
Form.Methods = { |
serialize: function(form, options) { |
return Form.serializeElements(Form.getElements(form), options); |
}, |
getElements: function(form) { |
return $A($(form).getElementsByTagName('*')).inject([], |
function(elements, child) { |
if (Form.Element.Serializers[child.tagName.toLowerCase()]) |
elements.push(Element.extend(child)); |
return elements; |
} |
); |
}, |
getInputs: function(form, typeName, name) { |
form = $(form); |
var inputs = form.getElementsByTagName('input'); |
if (!typeName && !name) return $A(inputs).map(Element.extend); |
for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { |
var input = inputs[i]; |
if ((typeName && input.type != typeName) || (name && input.name != name)) |
continue; |
matchingInputs.push(Element.extend(input)); |
} |
return matchingInputs; |
}, |
disable: function(form) { |
form = $(form); |
Form.getElements(form).invoke('disable'); |
return form; |
}, |
enable: function(form) { |
form = $(form); |
Form.getElements(form).invoke('enable'); |
return form; |
}, |
findFirstElement: function(form) { |
var elements = $(form).getElements().findAll(function(element) { |
return 'hidden' != element.type && !element.disabled; |
}); |
var firstByIndex = elements.findAll(function(element) { |
return element.hasAttribute('tabIndex') && element.tabIndex >= 0; |
}).sortBy(function(element) { return element.tabIndex }).first(); |
return firstByIndex ? firstByIndex : elements.find(function(element) { |
return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); |
}); |
}, |
focusFirstElement: function(form) { |
form = $(form); |
form.findFirstElement().activate(); |
return form; |
}, |
request: function(form, options) { |
form = $(form), options = Object.clone(options || { }); |
var params = options.parameters, action = form.readAttribute('action') || ''; |
if (action.blank()) action = window.location.href; |
options.parameters = form.serialize(true); |
if (params) { |
if (Object.isString(params)) params = params.toQueryParams(); |
Object.extend(options.parameters, params); |
} |
if (form.hasAttribute('method') && !options.method) |
options.method = form.method; |
return new Ajax.Request(action, options); |
} |
}; |
/*--------------------------------------------------------------------------*/ |
Form.Element = { |
focus: function(element) { |
$(element).focus(); |
return element; |
}, |
select: function(element) { |
$(element).select(); |
return element; |
} |
}; |
Form.Element.Methods = { |
serialize: function(element) { |
element = $(element); |
if (!element.disabled && element.name) { |
var value = element.getValue(); |
if (value != undefined) { |
var pair = { }; |
pair[element.name] = value; |
return Object.toQueryString(pair); |
} |
} |
return ''; |
}, |
getValue: function(element) { |
element = $(element); |
var method = element.tagName.toLowerCase(); |
return Form.Element.Serializers[method](element); |
}, |
setValue: function(element, value) { |
element = $(element); |
var method = element.tagName.toLowerCase(); |
Form.Element.Serializers[method](element, value); |
return element; |
}, |
clear: function(element) { |
$(element).value = ''; |
return element; |
}, |
present: function(element) { |
return $(element).value != ''; |
}, |
activate: function(element) { |
element = $(element); |
try { |
element.focus(); |
if (element.select && (element.tagName.toLowerCase() != 'input' || |
!['button', 'reset', 'submit'].include(element.type))) |
element.select(); |
} catch (e) { } |
return element; |
}, |
disable: function(element) { |
element = $(element); |
element.blur(); |
element.disabled = true; |
return element; |
}, |
enable: function(element) { |
element = $(element); |
element.disabled = false; |
return element; |
} |
}; |
/*--------------------------------------------------------------------------*/ |
var Field = Form.Element; |
var $F = Form.Element.Methods.getValue; |
/*--------------------------------------------------------------------------*/ |
Form.Element.Serializers = { |
input: function(element, value) { |
switch (element.type.toLowerCase()) { |
case 'checkbox': |
case 'radio': |
return Form.Element.Serializers.inputSelector(element, value); |
default: |
return Form.Element.Serializers.textarea(element, value); |
} |
}, |
inputSelector: function(element, value) { |
if (Object.isUndefined(value)) return element.checked ? element.value : null; |
else element.checked = !!value; |
}, |
textarea: function(element, value) { |
if (Object.isUndefined(value)) return element.value; |
else element.value = value; |
}, |
select: function(element, index) { |
if (Object.isUndefined(index)) |
return this[element.type == 'select-one' ? |
'selectOne' : 'selectMany'](element); |
else { |
var opt, value, single = !Object.isArray(index); |
for (var i = 0, length = element.length; i < length; i++) { |
opt = element.options[i]; |
value = this.optionValue(opt); |
if (single) { |
if (value == index) { |
opt.selected = true; |
return; |
} |
} |
else opt.selected = index.include(value); |
} |
} |
}, |
selectOne: function(element) { |
var index = element.selectedIndex; |
return index >= 0 ? this.optionValue(element.options[index]) : null; |
}, |
selectMany: function(element) { |
var values, length = element.length; |
if (!length) return null; |
for (var i = 0, values = []; i < length; i++) { |
var opt = element.options[i]; |
if (opt.selected) values.push(this.optionValue(opt)); |
} |
return values; |
}, |
optionValue: function(opt) { |
// extend element because hasAttribute may not be native |
return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; |
} |
}; |
/*--------------------------------------------------------------------------*/ |
Abstract.TimedObserver = Class.create(PeriodicalExecuter, { |
initialize: function($super, element, frequency, callback) { |
$super(callback, frequency); |
this.element = $(element); |
this.lastValue = this.getValue(); |
}, |
execute: function() { |
var value = this.getValue(); |
if (Object.isString(this.lastValue) && Object.isString(value) ? |
this.lastValue != value : String(this.lastValue) != String(value)) { |
this.callback(this.element, value); |
this.lastValue = value; |
} |
} |
}); |
Form.Element.Observer = Class.create(Abstract.TimedObserver, { |
getValue: function() { |
return Form.Element.getValue(this.element); |
} |
}); |
Form.Observer = Class.create(Abstract.TimedObserver, { |
getValue: function() { |
return Form.serialize(this.element); |
} |
}); |
/*--------------------------------------------------------------------------*/ |
Abstract.EventObserver = Class.create({ |
initialize: function(element, callback) { |
this.element = $(element); |
this.callback = callback; |
this.lastValue = this.getValue(); |
if (this.element.tagName.toLowerCase() == 'form') |
this.registerFormCallbacks(); |
else |
this.registerCallback(this.element); |
}, |
onElementEvent: function() { |
var value = this.getValue(); |
if (this.lastValue != value) { |
this.callback(this.element, value); |
this.lastValue = value; |
} |
}, |
registerFormCallbacks: function() { |
Form.getElements(this.element).each(this.registerCallback, this); |
}, |
registerCallback: function(element) { |
if (element.type) { |
switch (element.type.toLowerCase()) { |
case 'checkbox': |
case 'radio': |
Event.observe(element, 'click', this.onElementEvent.bind(this)); |
break; |
default: |
Event.observe(element, 'change', this.onElementEvent.bind(this)); |
break; |
} |
} |
} |
}); |
Form.Element.EventObserver = Class.create(Abstract.EventObserver, { |
getValue: function() { |
return Form.Element.getValue(this.element); |
} |
}); |
Form.EventObserver = Class.create(Abstract.EventObserver, { |
getValue: function() { |
return Form.serialize(this.element); |
} |
}); |
if (!window.Event) var Event = { }; |
Object.extend(Event, { |
KEY_BACKSPACE: 8, |
KEY_TAB: 9, |
KEY_RETURN: 13, |
KEY_ESC: 27, |
KEY_LEFT: 37, |
KEY_UP: 38, |
KEY_RIGHT: 39, |
KEY_DOWN: 40, |
KEY_DELETE: 46, |
KEY_HOME: 36, |
KEY_END: 35, |
KEY_PAGEUP: 33, |
KEY_PAGEDOWN: 34, |
KEY_INSERT: 45, |
cache: { }, |
relatedTarget: function(event) { |
var element; |
switch(event.type) { |
case 'mouseover': element = event.fromElement; break; |
case 'mouseout': element = event.toElement; break; |
default: return null; |
} |
return Element.extend(element); |
} |
}); |
Event.Methods = (function() { |
var isButton; |
if (Prototype.Browser.IE) { |
var buttonMap = { 0: 1, 1: 4, 2: 2 }; |
isButton = function(event, code) { |
return event.button == buttonMap[code]; |
}; |
} else if (Prototype.Browser.WebKit) { |
isButton = function(event, code) { |
switch (code) { |
case 0: return event.which == 1 && !event.metaKey; |
case 1: return event.which == 1 && event.metaKey; |
default: return false; |
} |
}; |
} else { |
isButton = function(event, code) { |
return event.which ? (event.which === code + 1) : (event.button === code); |
}; |
} |
return { |
isLeftClick: function(event) { return isButton(event, 0) }, |
isMiddleClick: function(event) { return isButton(event, 1) }, |
isRightClick: function(event) { return isButton(event, 2) }, |
element: function(event) { |
var node = Event.extend(event).target; |
return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node); |
}, |
findElement: function(event, expression) { |
var element = Event.element(event); |
if (!expression) return element; |
var elements = [element].concat(element.ancestors()); |
return Selector.findElement(elements, expression, 0); |
}, |
pointer: function(event) { |
return { |
x: event.pageX || (event.clientX + |
(document.documentElement.scrollLeft || document.body.scrollLeft)), |
y: event.pageY || (event.clientY + |
(document.documentElement.scrollTop || document.body.scrollTop)) |
}; |
}, |
pointerX: function(event) { return Event.pointer(event).x }, |
pointerY: function(event) { return Event.pointer(event).y }, |
stop: function(event) { |
Event.extend(event); |
event.preventDefault(); |
event.stopPropagation(); |
event.stopped = true; |
} |
}; |
})(); |
Event.extend = (function() { |
var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { |
m[name] = Event.Methods[name].methodize(); |
return m; |
}); |
if (Prototype.Browser.IE) { |
Object.extend(methods, { |
stopPropagation: function() { this.cancelBubble = true }, |
preventDefault: function() { this.returnValue = false }, |
inspect: function() { return "[object Event]" } |
}); |
return function(event) { |
if (!event) return false; |
if (event._extendedByPrototype) return event; |
event._extendedByPrototype = Prototype.emptyFunction; |
var pointer = Event.pointer(event); |
Object.extend(event, { |
target: event.srcElement, |
relatedTarget: Event.relatedTarget(event), |
pageX: pointer.x, |
pageY: pointer.y |
}); |
return Object.extend(event, methods); |
}; |
} else { |
Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__; |
Object.extend(Event.prototype, methods); |
return Prototype.K; |
} |
})(); |
Object.extend(Event, (function() { |
var cache = Event.cache; |
function getEventID(element) { |
if (element._prototypeEventID) return element._prototypeEventID[0]; |
arguments.callee.id = arguments.callee.id || 1; |
return element._prototypeEventID = [++arguments.callee.id]; |
} |
function getDOMEventName(eventName) { |
if (eventName && eventName.include(':')) return "dataavailable"; |
return eventName; |
} |
function getCacheForID(id) { |
return cache[id] = cache[id] || { }; |
} |
function getWrappersForEventName(id, eventName) { |
var c = getCacheForID(id); |
return c[eventName] = c[eventName] || []; |
} |
function createWrapper(element, eventName, handler) { |
var id = getEventID(element); |
var c = getWrappersForEventName(id, eventName); |
if (c.pluck("handler").include(handler)) return false; |
var wrapper = function(event) { |
if (!Event || !Event.extend || |
(event.eventName && event.eventName != eventName)) |
return false; |
Event.extend(event); |
handler.call(element, event); |
}; |
wrapper.handler = handler; |
c.push(wrapper); |
return wrapper; |
} |
function findWrapper(id, eventName, handler) { |
var c = getWrappersForEventName(id, eventName); |
return c.find(function(wrapper) { return wrapper.handler == handler }); |
} |
function destroyWrapper(id, eventName, handler) { |
var c = getCacheForID(id); |
if (!c[eventName]) return false; |
c[eventName] = c[eventName].without(findWrapper(id, eventName, handler)); |
} |
function destroyCache() { |
for (var id in cache) |
for (var eventName in cache[id]) |
cache[id][eventName] = null; |
} |
if (window.attachEvent) { |
window.attachEvent("onunload", destroyCache); |
} |
return { |
observe: function(element, eventName, handler) { |
element = $(element); |
var name = getDOMEventName(eventName); |
var wrapper = createWrapper(element, eventName, handler); |
if (!wrapper) return element; |
if (element.addEventListener) { |
element.addEventListener(name, wrapper, false); |
} else { |
element.attachEvent("on" + name, wrapper); |
} |
return element; |
}, |
stopObserving: function(element, eventName, handler) { |
element = $(element); |
var id = getEventID(element), name = getDOMEventName(eventName); |
if (!handler && eventName) { |
getWrappersForEventName(id, eventName).each(function(wrapper) { |
element.stopObserving(eventName, wrapper.handler); |
}); |
return element; |
} else if (!eventName) { |
Object.keys(getCacheForID(id)).each(function(eventName) { |
element.stopObserving(eventName); |
}); |
return element; |
} |
var wrapper = findWrapper(id, eventName, handler); |
if (!wrapper) return element; |
if (element.removeEventListener) { |
element.removeEventListener(name, wrapper, false); |
} else { |
element.detachEvent("on" + name, wrapper); |
} |
destroyWrapper(id, eventName, handler); |
return element; |
}, |
fire: function(element, eventName, memo) { |
element = $(element); |
if (element == document && document.createEvent && !element.dispatchEvent) |
element = document.documentElement; |
var event; |
if (document.createEvent) { |
event = document.createEvent("HTMLEvents"); |
event.initEvent("dataavailable", true, true); |
} else { |
event = document.createEventObject(); |
event.eventType = "ondataavailable"; |
} |
event.eventName = eventName; |
event.memo = memo || { }; |
if (document.createEvent) { |
element.dispatchEvent(event); |
} else { |
element.fireEvent(event.eventType, event); |
} |
return Event.extend(event); |
} |
}; |
})()); |
Object.extend(Event, Event.Methods); |
Element.addMethods({ |
fire: Event.fire, |
observe: Event.observe, |
stopObserving: Event.stopObserving |
}); |
Object.extend(document, { |
fire: Element.Methods.fire.methodize(), |
observe: Element.Methods.observe.methodize(), |
stopObserving: Element.Methods.stopObserving.methodize(), |
loaded: false |
}); |
(function() { |
/* Support for the DOMContentLoaded event is based on work by Dan Webb, |
Matthias Miller, Dean Edwards and John Resig. */ |
var timer; |
function fireContentLoadedEvent() { |
if (document.loaded) return; |
if (timer) window.clearInterval(timer); |
document.fire("dom:loaded"); |
document.loaded = true; |
} |
if (document.addEventListener) { |
if (Prototype.Browser.WebKit) { |
timer = window.setInterval(function() { |
if (/loaded|complete/.test(document.readyState)) |
fireContentLoadedEvent(); |
}, 0); |
Event.observe(window, "load", fireContentLoadedEvent); |
} else { |
document.addEventListener("DOMContentLoaded", |
fireContentLoadedEvent, false); |
} |
} else { |
document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>"); |
$("__onDOMContentLoaded").onreadystatechange = function() { |
if (this.readyState == "complete") { |
this.onreadystatechange = null; |
fireContentLoadedEvent(); |
} |
}; |
} |
})(); |
/*------------------------------- DEPRECATED -------------------------------*/ |
Hash.toQueryString = Object.toQueryString; |
var Toggle = { display: Element.toggle }; |
Element.Methods.childOf = Element.Methods.descendantOf; |
var Insertion = { |
Before: function(element, content) { |
return Element.insert(element, {before:content}); |
}, |
Top: function(element, content) { |
return Element.insert(element, {top:content}); |
}, |
Bottom: function(element, content) { |
return Element.insert(element, {bottom:content}); |
}, |
After: function(element, content) { |
return Element.insert(element, {after:content}); |
} |
}; |
var $continue = new Error('"throw $continue" is deprecated, use "return" instead'); |
// This should be moved to script.aculo.us; notice the deprecated methods |
// further below, that map to the newer Element methods. |
var Position = { |
// set to true if needed, warning: firefox performance problems |
// NOT neeeded for page scrolling, only if draggable contained in |
// scrollable elements |
includeScrollOffsets: false, |
// must be called before calling withinIncludingScrolloffset, every time the |
// page is scrolled |
prepare: function() { |
this.deltaX = window.pageXOffset |
|| document.documentElement.scrollLeft |
|| document.body.scrollLeft |
|| 0; |
this.deltaY = window.pageYOffset |
|| document.documentElement.scrollTop |
|| document.body.scrollTop |
|| 0; |
}, |
// caches x/y coordinate pair to use with overlap |
within: function(element, x, y) { |
if (this.includeScrollOffsets) |
return this.withinIncludingScrolloffsets(element, x, y); |
this.xcomp = x; |
this.ycomp = y; |
this.offset = Element.cumulativeOffset(element); |
return (y >= this.offset[1] && |
y < this.offset[1] + element.offsetHeight && |
x >= this.offset[0] && |
x < this.offset[0] + element.offsetWidth); |
}, |
withinIncludingScrolloffsets: function(element, x, y) { |
var offsetcache = Element.cumulativeScrollOffset(element); |
this.xcomp = x + offsetcache[0] - this.deltaX; |
this.ycomp = y + offsetcache[1] - this.deltaY; |
this.offset = Element.cumulativeOffset(element); |
return (this.ycomp >= this.offset[1] && |
this.ycomp < this.offset[1] + element.offsetHeight && |
this.xcomp >= this.offset[0] && |
this.xcomp < this.offset[0] + element.offsetWidth); |
}, |
// within must be called directly before |
overlap: function(mode, element) { |
if (!mode) return 0; |
if (mode == 'vertical') |
return ((this.offset[1] + element.offsetHeight) - this.ycomp) / |
element.offsetHeight; |
if (mode == 'horizontal') |
return ((this.offset[0] + element.offsetWidth) - this.xcomp) / |
element.offsetWidth; |
}, |
// Deprecation layer -- use newer Element methods now (1.5.2). |
cumulativeOffset: Element.Methods.cumulativeOffset, |
positionedOffset: Element.Methods.positionedOffset, |
absolutize: function(element) { |
Position.prepare(); |
return Element.absolutize(element); |
}, |
relativize: function(element) { |
Position.prepare(); |
return Element.relativize(element); |
}, |
realOffset: Element.Methods.cumulativeScrollOffset, |
offsetParent: Element.Methods.getOffsetParent, |
page: Element.Methods.viewportOffset, |
clone: function(source, target, options) { |
options = options || { }; |
return Element.clonePosition(target, source, options); |
} |
}; |
/*--------------------------------------------------------------------------*/ |
if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){ |
function iter(name) { |
return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]"; |
} |
instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ? |
function(element, className) { |
className = className.toString().strip(); |
var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className); |
return cond ? document._getElementsByXPath('.//*' + cond, element) : []; |
} : function(element, className) { |
className = className.toString().strip(); |
var elements = [], classNames = (/\s/.test(className) ? $w(className) : null); |
if (!classNames && !className) return elements; |
var nodes = $(element).getElementsByTagName('*'); |
className = ' ' + className + ' '; |
for (var i = 0, child, cn; child = nodes[i]; i++) { |
if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) || |
(classNames && classNames.all(function(name) { |
return !name.toString().blank() && cn.include(' ' + name + ' '); |
})))) |
elements.push(Element.extend(child)); |
} |
return elements; |
}; |
return function(className, parentElement) { |
return $(parentElement || document.body).getElementsByClassName(className); |
}; |
}(Element.Methods); |
/*--------------------------------------------------------------------------*/ |
Element.ClassNames = Class.create(); |
Element.ClassNames.prototype = { |
initialize: function(element) { |
this.element = $(element); |
}, |
_each: function(iterator) { |
this.element.className.split(/\s+/).select(function(name) { |
return name.length > 0; |
})._each(iterator); |
}, |
set: function(className) { |
this.element.className = className; |
}, |
add: function(classNameToAdd) { |
if (this.include(classNameToAdd)) return; |
this.set($A(this).concat(classNameToAdd).join(' ')); |
}, |
remove: function(classNameToRemove) { |
if (!this.include(classNameToRemove)) return; |
this.set($A(this).without(classNameToRemove).join(' ')); |
}, |
toString: function() { |
return $A(this).join(' '); |
} |
}; |
Object.extend(Element.ClassNames.prototype, Enumerable); |
/*--------------------------------------------------------------------------*/ |
Element.addMethods(); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/adapter/yui/ext-yui-adapter.js |
---|
New file |
0,0 → 1,10 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
Ext={version:"2.0.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,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.pop=="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,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isGecko&&isMac))});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())}; |
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){C.initHeader("Content-Type","text/xml",false);O="POST";N=D.xmlData}else{if(D.jsonData){C.initHeader("Content-Type","text/javascript",false);O="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}})(); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/adapter/yui/yui-utilities.js |
---|
New file |
0,0 → 1,17 |
/* |
Copyright (c) 2007, Yahoo! Inc. All rights reserved. |
Code licensed under the BSD License: |
http://developer.yahoo.net/yui/license.txt |
version: 2.4.1 |
*/ |
if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return !YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType" in A&&"tagName" in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var D={},B=arguments;for(var C=0,A=B.length;C<A;C=C+1){YAHOO.lang.augmentObject(D,B[C],true);}return D;},later:function(H,B,I,D,E){H=H||0;B=B||{};var C=I,G=D,F,A;if(YAHOO.lang.isString(I)){C=B[I];}if(!C){throw new TypeError("method undefined");}if(!YAHOO.lang.isArray(G)){G=[D];}F=function(){C.apply(B,G);};A=(E)?setInterval(F,H):setTimeout(F,H);return{interval:E,cancel:function(){if(this.interval){clearInterval(A);}else{clearTimeout(A);}}};},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.4.1",build:"742"});(function(){var B=YAHOO.util,L,J,H=0,K={},F={},N=window.document;var C=YAHOO.env.ua.opera,M=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,G=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i};var O=function(Q){if(!E.HYPHEN.test(Q)){return Q;}if(K[Q]){return K[Q];}var R=Q;while(E.HYPHEN.exec(R)){R=R.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}K[Q]=R;return R;};var P=function(R){var Q=F[R];if(!Q){Q=new RegExp("(?:^|\\s+)"+R+"(?:\\s+|$)");F[R]=Q;}return Q;};if(N.defaultView&&N.defaultView.getComputedStyle){L=function(Q,T){var S=null;if(T=="float"){T="cssFloat";}var R=N.defaultView.getComputedStyle(Q,"");if(R){S=R[O(T)];}return Q.style[T]||S;};}else{if(N.documentElement.currentStyle&&G){L=function(Q,S){switch(O(S)){case"opacity":var U=100;try{U=Q.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(T){try{U=Q.filters("alpha").opacity;}catch(T){}}return U/100;case"float":S="styleFloat";default:var R=Q.currentStyle?Q.currentStyle[S]:null;return(Q.style[S]||R);}};}else{L=function(Q,R){return Q.style[R];};}}if(G){J=function(Q,R,S){switch(R){case"opacity":if(YAHOO.lang.isString(Q.style.filter)){Q.style.filter="alpha(opacity="+S*100+")";if(!Q.currentStyle||!Q.currentStyle.hasLayout){Q.style.zoom=1;}}break;case"float":R="styleFloat";default:Q.style[R]=S;}};}else{J=function(Q,R,S){if(R=="float"){R="cssFloat";}Q.style[R]=S;};}var D=function(Q,R){return Q&&Q.nodeType==1&&(!R||R(Q));};YAHOO.util.Dom={get:function(S){if(S&&(S.tagName||S.item)){return S;}if(YAHOO.lang.isString(S)||!S){return N.getElementById(S);}if(S.length!==undefined){var T=[];for(var R=0,Q=S.length;R<Q;++R){T[T.length]=B.Dom.get(S[R]);}return T;}return S;},getStyle:function(Q,S){S=O(S);var R=function(T){return L(T,S);};return B.Dom.batch(Q,R,B.Dom,true);},setStyle:function(Q,S,T){S=O(S);var R=function(U){J(U,S,T);};B.Dom.batch(Q,R,B.Dom,true);},getXY:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=S.ownerDocument.body){return false;}return I(S);};return B.Dom.batch(Q,R,B.Dom,true);},getX:function(Q){var R=function(S){return B.Dom.getXY(S)[0];};return B.Dom.batch(Q,R,B.Dom,true);},getY:function(Q){var R=function(S){return B.Dom.getXY(S)[1];};return B.Dom.batch(Q,R,B.Dom,true);},setXY:function(Q,T,S){var R=function(W){var V=this.getStyle(W,"position");if(V=="static"){this.setStyle(W,"position","relative");V="relative";}var Y=this.getXY(W);if(Y===false){return false;}var X=[parseInt(this.getStyle(W,"left"),10),parseInt(this.getStyle(W,"top"),10)];if(isNaN(X[0])){X[0]=(V=="relative")?0:W.offsetLeft;}if(isNaN(X[1])){X[1]=(V=="relative")?0:W.offsetTop;}if(T[0]!==null){W.style.left=T[0]-Y[0]+X[0]+"px";}if(T[1]!==null){W.style.top=T[1]-Y[1]+X[1]+"px";}if(!S){var U=this.getXY(W);if((T[0]!==null&&U[0]!=T[0])||(T[1]!==null&&U[1]!=T[1])){this.setXY(W,T,true);}}};B.Dom.batch(Q,R,B.Dom,true);},setX:function(R,Q){B.Dom.setXY(R,[Q,null]);},setY:function(Q,R){B.Dom.setXY(Q,[null,R]);},getRegion:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=N.body){return false;}var T=B.Region.getRegion(S);return T;};return B.Dom.batch(Q,R,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(U,Y,V,W){Y=Y||"*";V=(V)?B.Dom.get(V):null||N;if(!V){return[];}var R=[],Q=V.getElementsByTagName(Y),X=P(U);for(var S=0,T=Q.length;S<T;++S){if(X.test(Q[S].className)){R[R.length]=Q[S];if(W){W.call(Q[S],Q[S]);}}}return R;},hasClass:function(S,R){var Q=P(R);var T=function(U){return Q.test(U.className);};return B.Dom.batch(S,T,B.Dom,true);},addClass:function(R,Q){var S=function(T){if(this.hasClass(T,Q)){return false;}T.className=YAHOO.lang.trim([T.className,Q].join(" "));return true;};return B.Dom.batch(R,S,B.Dom,true);},removeClass:function(S,R){var Q=P(R);var T=function(U){if(!this.hasClass(U,R)){return false;}var V=U.className;U.className=V.replace(Q," ");if(this.hasClass(U,R)){this.removeClass(U,R);}U.className=YAHOO.lang.trim(U.className);return true;};return B.Dom.batch(S,T,B.Dom,true);},replaceClass:function(T,R,Q){if(!Q||R===Q){return false;}var S=P(R);var U=function(V){if(!this.hasClass(V,R)){this.addClass(V,Q);return true;}V.className=V.className.replace(S," "+Q+" ");if(this.hasClass(V,R)){this.replaceClass(V,R,Q);}V.className=YAHOO.lang.trim(V.className);return true;};return B.Dom.batch(T,U,B.Dom,true);},generateId:function(Q,S){S=S||"yui-gen";var R=function(T){if(T&&T.id){return T.id;}var U=S+H++;if(T){T.id=U;}return U;};return B.Dom.batch(Q,R,B.Dom,true)||R.apply(B.Dom,arguments);},isAncestor:function(Q,R){Q=B.Dom.get(Q);R=B.Dom.get(R);if(!Q||!R){return false;}if(Q.contains&&R.nodeType&&!M){return Q.contains(R);}else{if(Q.compareDocumentPosition&&R.nodeType){return !!(Q.compareDocumentPosition(R)&16);}else{if(R.nodeType){return !!this.getAncestorBy(R,function(S){return S==Q;});}}}return false;},inDocument:function(Q){return this.isAncestor(N.documentElement,Q);},getElementsBy:function(X,R,S,U){R=R||"*";S=(S)?B.Dom.get(S):null||N;if(!S){return[];}var T=[],W=S.getElementsByTagName(R);for(var V=0,Q=W.length;V<Q;++V){if(X(W[V])){T[T.length]=W[V];if(U){U(W[V]);}}}return T;},batch:function(U,X,W,S){U=(U&&(U.tagName||U.item))?U:B.Dom.get(U);if(!U||!X){return false;}var T=(S)?W:window;if(U.tagName||U.length===undefined){return X.call(T,U,W);}var V=[];for(var R=0,Q=U.length;R<Q;++R){V[V.length]=X.call(T,U[R],W);}return V;},getDocumentHeight:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollHeight:N.documentElement.scrollHeight;var Q=Math.max(R,B.Dom.getViewportHeight());return Q;},getDocumentWidth:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollWidth:N.documentElement.scrollWidth;var Q=Math.max(R,B.Dom.getViewportWidth());return Q;},getViewportHeight:function(){var Q=self.innerHeight;var R=N.compatMode;if((R||G)&&!C){Q=(R=="CSS1Compat")?N.documentElement.clientHeight:N.body.clientHeight; |
}return Q;},getViewportWidth:function(){var Q=self.innerWidth;var R=N.compatMode;if(R||G){Q=(R=="CSS1Compat")?N.documentElement.clientWidth:N.body.clientWidth;}return Q;},getAncestorBy:function(Q,R){while(Q=Q.parentNode){if(D(Q,R)){return Q;}}return null;},getAncestorByClassName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return B.Dom.hasClass(T,Q);};return B.Dom.getAncestorBy(R,S);},getAncestorByTagName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return T.tagName&&T.tagName.toUpperCase()==Q.toUpperCase();};return B.Dom.getAncestorBy(R,S);},getPreviousSiblingBy:function(Q,R){while(Q){Q=Q.previousSibling;if(D(Q,R)){return Q;}}return null;},getPreviousSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getPreviousSiblingBy(Q);},getNextSiblingBy:function(Q,R){while(Q){Q=Q.nextSibling;if(D(Q,R)){return Q;}}return null;},getNextSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getNextSiblingBy(Q);},getFirstChildBy:function(Q,S){var R=(D(Q.firstChild,S))?Q.firstChild:null;return R||B.Dom.getNextSiblingBy(Q.firstChild,S);},getFirstChild:function(Q,R){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getFirstChildBy(Q);},getLastChildBy:function(Q,S){if(!Q){return null;}var R=(D(Q.lastChild,S))?Q.lastChild:null;return R||B.Dom.getPreviousSiblingBy(Q.lastChild,S);},getLastChild:function(Q){Q=B.Dom.get(Q);return B.Dom.getLastChildBy(Q);},getChildrenBy:function(R,T){var S=B.Dom.getFirstChildBy(R,T);var Q=S?[S]:[];B.Dom.getNextSiblingBy(S,function(U){if(!T||T(U)){Q[Q.length]=U;}return false;});return Q;},getChildren:function(Q){Q=B.Dom.get(Q);if(!Q){}return B.Dom.getChildrenBy(Q);},getDocumentScrollLeft:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollLeft,Q.body.scrollLeft);},getDocumentScrollTop:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollTop,Q.body.scrollTop);},insertBefore:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}return Q.parentNode.insertBefore(R,Q);},insertAfter:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}if(Q.nextSibling){return Q.parentNode.insertBefore(R,Q.nextSibling);}else{return Q.parentNode.appendChild(R);}},getClientRegion:function(){var S=B.Dom.getDocumentScrollTop(),R=B.Dom.getDocumentScrollLeft(),T=B.Dom.getViewportWidth()+R,Q=B.Dom.getViewportHeight()+S;return new B.Region(S,T,Q,R);}};var I=function(){if(N.documentElement.getBoundingClientRect){return function(R){var S=R.getBoundingClientRect();var Q=R.ownerDocument;return[S.left+B.Dom.getDocumentScrollLeft(Q),S.top+B.Dom.getDocumentScrollTop(Q)];};}else{return function(S){var T=[S.offsetLeft,S.offsetTop];var R=S.offsetParent;var Q=(M&&B.Dom.getStyle(S,"position")=="absolute"&&S.offsetParent==S.ownerDocument.body);if(R!=S){while(R){T[0]+=R.offsetLeft;T[1]+=R.offsetTop;if(!Q&&M&&B.Dom.getStyle(R,"position")=="absolute"){Q=true;}R=R.offsetParent;}}if(Q){T[0]-=S.ownerDocument.body.offsetLeft;T[1]-=S.ownerDocument.body.offsetTop;}R=S.parentNode;while(R.tagName&&!E.ROOT_TAG.test(R.tagName)){if(B.Dom.getStyle(R,"display").search(/^inline|table-row.*$/i)){T[0]-=R.scrollLeft;T[1]-=R.scrollTop;}R=R.parentNode;}return T;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.4.1",build:"742"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){var D=this.subscribers.length;if(!D&&this.silent){return true;}var H=[],F=true,C,I=false;for(C=0;C<arguments.length;++C){H.push(arguments[C]);}if(!this.silent){}for(C=0;C<D;++C){var L=this.subscribers[C];if(!L){I=true;}else{if(!this.silent){}var K=L.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var A=null;if(H.length>0){A=H[0];}try{F=L.fn.call(K,A,L.obj);}catch(E){this.lastError=E;}}else{try{F=L.fn.call(K,this.type,H,L.obj);}catch(G){this.lastError=G;}}if(false===F){if(!this.silent){}return false;}}}if(I){var J=[],B=this.subscribers;for(C=0,D=B.length;C<D;C=C+1){J.push(B[C]);}this.subscribers=J;}return true;},unsubscribeAll:function(){for(var B=0,A=this.subscribers.length;B<A;++B){this._delete(A-1-B);}this.subscribers=[];return B;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers[A]=null;},toString:function(){return"CustomEvent: '"+this.type+"', scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{POLL_RETRYS:4000,POLL_INTERVAL:10,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,startInterval:function(){if(!this._interval){var K=this;var L=function(){K._tryPreloadAttach();};this._interval=setInterval(L,this.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var K=(YAHOO.lang.isString(P))?[P]:P;for(var L=0;L<K.length;L=L+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkReady:N});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if(this.DOMReady){setTimeout(function(){var N=window;if(L){if(L===true){N=M;}else{N=L;}}K.call(N,"DOMReady",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:function(M,K,V,Q,L){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var R=0,T=M.length;R<T;++R){W=this.on(M[R],K,V,Q,L)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var P=this.getEl(M);if(P){M=P;}else{this.onAvailable(M,function(){YAHOO.util.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return false;}if("unload"==K&&Q!==this){J[J.length]=[M,K,V,Q,L];return true;}var Y=M;if(L){if(L===true){Y=Q;}else{Y=L;}}var N=function(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var X=[M,K,V,N,Y,Q,L];var S=I.length;I[S]=X;if(this.useLegacyEvent(M,K)){var O=this.getLegacyIndex(M,K);if(O==-1||M!=G[O][0]){O=G.length;B[M.id+K]=O;G[O]=[M,K,M["on"+K]];E[O]=[];M["on"+K]=function(Z){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}}return true;},fireLegacyEvent:function(O,M){var Q=true,K,S,R,T,P;S=E[M];for(var L=0,N=S.length;L<N;++L){R=S[L];if(R&&R[this.WFN]){T=R[this.ADJ_SCOPE];P=R[this.WFN].call(T,O);Q=(Q&&P);}}K=G[M];if(K&&K[2]){K[2](O);}return Q;},getLegacyIndex:function(L,M){var K=this.generateId(L)+M;if(typeof B[K]=="undefined"){return -1;}else{return B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"==M||"dblclick"==M)){var K=parseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return false;},removeListener:function(L,K,T){var O,R,V;if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var U=true;for(O=0,R=L.length;O<R;++O){U=(this.removeListener(L[O],K,T)&&U);}return U;}}if(!T||!T.call){return this.purgeElement(L,false,K);}if("unload"==K){for(O=0,R=J.length;O<R;O++){V=J[O];if(V&&V[0]==L&&V[1]==K&&V[2]==T){J[O]=null;return true;}}return false;}var P=null;var Q=arguments[3];if("undefined"===typeof Q){Q=this._getCacheIndex(L,K,T);}if(Q>=0){P=I[Q];}if(!L||!P){return false;}if(this.useLegacyEvent(L,K)){var N=this.getLegacyIndex(L,K);var M=E[N];if(M){for(O=0,R=M.length;O<R;++O){V=M[O];if(V&&V[this.EL]==L&&V[this.TYPE]==K&&V[this.FN]==T){M[O]=null;break;}}}}else{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=S;return false;}}delete I[Q][this.WFN];delete I[Q][this.FN];I[Q]=null;return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(K){if(K&&3==K.nodeType){return K.parentNode;}else{return K;}},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)]; |
},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){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){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;++M){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}if(this.isIE){if(!this.DOMReady){this.startInterval();return false;}}this.locked=true;var P=!H;if(!P){P=(C>0);}var O=[];var Q=function(S,T){var R=S;if(T.override){if(T.override===true){R=T.obj;}else{R=T.override;}}T.fn.call(R,T.obj);};var L,K,N,M;for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&!N.checkReady){M=this.getEl(N.id);if(M){Q(M,N);F[L]=null;}else{O.push(N);}}}for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&N.checkReady){M=this.getEl(N.id);if(M){if(H||M.nextSibling){Q(M,N);F[L]=null;}}else{O.push(N);}}}C=(O.length===0)?0:C-1;if(P){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=0,K=Q.length;N<K;++N){var L=Q[N];this.removeListener(M,L.type,L.fn,L.index);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){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]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var Q=YAHOO.util.Event,O,N,L,K,M;for(O=0,K=J.length;O<K;++O){L=J[O];if(L){var P=window;if(L[Q.ADJ_SCOPE]){if(L[Q.ADJ_SCOPE]===true){P=L[Q.UNLOAD_OBJ];}else{P=L[Q.ADJ_SCOPE];}}L[Q.FN].call(P,Q.getEvent(R,L[Q.EL]),L[Q.UNLOAD_OBJ]);J[O]=null;L=null;P=null;}}J=null;if(YAHOO.env.ua.ie&&I&&I.length>0){N=I.length;while(N){M=N-1;L=I[M];if(L){Q.removeListener(L[Q.EL],L[Q.TYPE],L[Q.FN],M);}N--;}L=null;}G=null;Q._simpleRemove(window,"unload",Q._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var A=YAHOO.util.Event;A.on=A.addListener;if(A.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);A._dri=setInterval(function(){var C=document.createElement("p");try{C.doScroll("left");clearInterval(A._dri);A._dri=null;A._ready();C=null;}catch(B){C=null;}},A.POLL_INTERVAL);}else{if(A.webkit){A._dri=setInterval(function(){var B=document.readyState;if("loaded"==B||"complete"==B){clearInterval(A._dri);A._dri=null;A._ready();}},A.POLL_INTERVAL);}else{A._simpleAdd(document,"DOMContentLoaded",A._ready);}}A._simpleAdd(window,"load",A._load);A._simpleAdd(window,"unload",A._unload);A._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{}; |
var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.4.1",build:"742"});YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function(){if(YAHOO.util.Event){YAHOO.util.Event.addListener(document,"click",function(B){var A=YAHOO.util.Event.getTarget(B);if(A.type&&A.type.toLowerCase()=="submit"){YAHOO.util.Connect._submitElementValue=encodeURIComponent(A.name)+"="+encodeURIComponent(A.value);}});return true;}return false;})(),startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),uploadEvent:new YAHOO.util.CustomEvent("upload"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A){this._msxml_progid.unshift(A);},setDefaultPostHeader:function(A){if(typeof A=="string"){this._default_post_header=A;}else{if(typeof A=="boolean"){this._use_default_post_header=A;}}},setDefaultXhrHeader:function(A){if(typeof A=="string"){this._default_xhr_header=A;}else{this._use_default_xhr_header=A;}},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A;}},createXhrObject:function(E){var D,A;try{A=new XMLHttpRequest();D={conn:A,tId:E};}catch(C){for(var B=0;B<this._msxml_progid.length;++B){try{A=new ActiveXObject(this._msxml_progid[B]);D={conn:A,tId:E};break;}catch(C){}}}finally{return D;}},getConnectionObject:function(A){var C;var D=this._transaction_id;try{if(!A){C=this.createXhrObject(D);}else{C={};C.tId=D;C.isUpload=true;}if(C){this._transaction_id++;}}catch(B){}finally{return C;}},asyncRequest:function(F,C,E,A){var D=(this._isFileUpload)?this.getConnectionObject(true):this.getConnectionObject();var B=(E&&E.argument)?E.argument:null;if(!D){return null;}else{if(E&&E.customevents){this.initCustomEvents(D,E);}if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(D,E,C,A);return D;}if(F.toUpperCase()=="GET"){if(this._sFormData.length!==0){C+=((C.indexOf("?")==-1)?"?":"&")+this._sFormData;}}else{if(F.toUpperCase()=="POST"){A=A?this._sFormData+"&"+A:this._sFormData;}}}if(F.toUpperCase()=="GET"&&(E&&E.cache===false)){C+=((C.indexOf("?")==-1)?"?":"&")+"rnd="+new Date().valueOf().toString();}D.conn.open(F,C,true);if(this._use_default_xhr_header){if(!this._default_headers["X-Requested-With"]){this.initHeader("X-Requested-With",this._default_xhr_header,true);}}if((F.toUpperCase()=="POST"&&this._use_default_post_header)&&this._isFormSubmit===false){this.initHeader("Content-Type",this._default_post_header);}if(this._has_default_headers||this._has_http_headers){this.setHeader(D);}this.handleReadyState(D,E);D.conn.send(A||null);if(this._isFormSubmit===true){this.resetFormState();}this.startEvent.fire(D,B);if(D.startEvent){D.startEvent.fire(D,B);}return D;}},initCustomEvents:function(A,C){for(var B in C.customevents){if(this._customEvents[B][0]){A[this._customEvents[B][0]]=new YAHOO.util.CustomEvent(this._customEvents[B][1],(C.scope)?C.scope:null);A[this._customEvents[B][0]].subscribe(C.customevents[B]);}}},handleReadyState:function(C,D){var B=this;var A=(D&&D.argument)?D.argument:null;if(D&&D.timeout){this._timeOut[C.tId]=window.setTimeout(function(){B.abort(C,D,true);},D.timeout);}this._poll[C.tId]=window.setInterval(function(){if(C.conn&&C.conn.readyState===4){window.clearInterval(B._poll[C.tId]);delete B._poll[C.tId];if(D&&D.timeout){window.clearTimeout(B._timeOut[C.tId]);delete B._timeOut[C.tId];}B.completeEvent.fire(C,A);if(C.completeEvent){C.completeEvent.fire(C,A);}B.handleTransactionResponse(C,D);}},this._polling_interval);},handleTransactionResponse:function(F,G,A){var D,C;var B=(G&&G.argument)?G.argument:null;try{if(F.conn.status!==undefined&&F.conn.status!==0){D=F.conn.status;}else{D=13030;}}catch(E){D=13030;}if(D>=200&&D<300||D===1223){C=this.createResponseObject(F,B);if(G&&G.success){if(!G.scope){G.success(C);}else{G.success.apply(G.scope,[C]);}}this.successEvent.fire(C);if(F.successEvent){F.successEvent.fire(C);}}else{switch(D){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:C=this.createExceptionObject(F.tId,B,(A?A:false));if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}break;default:C=this.createResponseObject(F,B);if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}}this.failureEvent.fire(C);if(F.failureEvent){F.failureEvent.fire(C);}}this.releaseObject(F);C=null;},createResponseObject:function(A,G){var D={};var I={};try{var C=A.conn.getAllResponseHeaders();var F=C.split("\n");for(var E=0;E<F.length;E++){var B=F[E].indexOf(":");if(B!=-1){I[F[E].substring(0,B)]=F[E].substring(B+2);}}}catch(H){}D.tId=A.tId;D.status=(A.conn.status==1223)?204:A.conn.status;D.statusText=(A.conn.status==1223)?"No Content":A.conn.statusText;D.getResponseHeader=I;D.getAllResponseHeaders=C;D.responseText=A.conn.responseText;D.responseXML=A.conn.responseXML;if(G){D.argument=G;}return D;},createExceptionObject:function(H,D,A){var F=0;var G="communication failure";var C=-1;var B="transaction aborted";var E={};E.tId=H;if(A){E.status=C;E.statusText=B;}else{E.status=F;E.statusText=G;}if(D){E.argument=D;}return E;},initHeader:function(A,D,C){var B=(C)?this._default_headers:this._http_headers;B[A]=D;if(C){this._has_default_headers=true;}else{this._has_http_headers=true;}},setHeader:function(A){if(this._has_default_headers){for(var B in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,B)){A.conn.setRequestHeader(B,this._default_headers[B]); |
}}}if(this._has_http_headers){for(var B in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,B)){A.conn.setRequestHeader(B,this._http_headers[B]);}}delete this._http_headers;this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){delete this._default_headers;this._default_headers={};this._has_default_headers=false;},setForm:function(K,E,B){this.resetFormState();var J;if(typeof K=="string"){J=(document.getElementById(K)||document.forms[K]);}else{if(typeof K=="object"){J=K;}else{return ;}}if(E){var F=this.createFrame(B?B:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=J;return ;}var A,I,G,L;var H=false;for(var D=0;D<J.elements.length;D++){A=J.elements[D];L=A.disabled;I=A.name;G=A.value;if(!L&&I){switch(A.type){case"select-one":case"select-multiple":for(var C=0;C<A.options.length;C++){if(A.options[C].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(A.options[C].attributes["value"].specified?A.options[C].value:A.options[C].text)+"&";}else{this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(A.options[C].hasAttribute("value")?A.options[C].value:A.options[C].text)+"&";}}}break;case"radio":case"checkbox":if(A.checked){this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(H===false){if(this._hasSubmitListener&&this._submitElementValue){this._sFormData+=this._submitElementValue+"&";}else{this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}H=true;}break;default:this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}}}this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);this.initHeader("Content-Type",this._default_form_header);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(A){var B="yuiIO"+this._transaction_id;var C;if(window.ActiveXObject){C=document.createElement("<iframe id=\""+B+"\" name=\""+B+"\" />");if(typeof A=="boolean"){C.src="javascript:false";}else{if(typeof secureURI=="string"){C.src=A;}}}else{C=document.createElement("iframe");C.id=B;C.name=B;}C.style.position="absolute";C.style.top="-1000px";C.style.left="-1000px";document.body.appendChild(C);},appendPostData:function(A){var D=[];var B=A.split("&");for(var C=0;C<B.length;C++){var E=B[C].indexOf("=");if(E!=-1){D[C]=document.createElement("input");D[C].type="hidden";D[C].name=B[C].substring(0,E);D[C].value=B[C].substring(E+1);this._formNode.appendChild(D[C]);}}return D;},uploadFile:function(D,M,E,C){var N=this;var H="yuiIO"+D.tId;var I="multipart/form-data";var K=document.getElementById(H);var J=(M&&M.argument)?M.argument:null;var B={action:this._formNode.getAttribute("action"),method:this._formNode.getAttribute("method"),target:this._formNode.getAttribute("target")};this._formNode.setAttribute("action",E);this._formNode.setAttribute("method","POST");this._formNode.setAttribute("target",H);if(this._formNode.encoding){this._formNode.setAttribute("encoding",I);}else{this._formNode.setAttribute("enctype",I);}if(C){var L=this.appendPostData(C);}this._formNode.submit();this.startEvent.fire(D,J);if(D.startEvent){D.startEvent.fire(D,J);}if(M&&M.timeout){this._timeOut[D.tId]=window.setTimeout(function(){N.abort(D,M,true);},M.timeout);}if(L&&L.length>0){for(var G=0;G<L.length;G++){this._formNode.removeChild(L[G]);}}for(var A in B){if(YAHOO.lang.hasOwnProperty(B,A)){if(B[A]){this._formNode.setAttribute(A,B[A]);}else{this._formNode.removeAttribute(A);}}}this.resetFormState();var F=function(){if(M&&M.timeout){window.clearTimeout(N._timeOut[D.tId]);delete N._timeOut[D.tId];}N.completeEvent.fire(D,J);if(D.completeEvent){D.completeEvent.fire(D,J);}var P={};P.tId=D.tId;P.argument=M.argument;try{P.responseText=K.contentWindow.document.body?K.contentWindow.document.body.innerHTML:K.contentWindow.document.documentElement.textContent;P.responseXML=K.contentWindow.document.XMLDocument?K.contentWindow.document.XMLDocument:K.contentWindow.document;}catch(O){}if(M&&M.upload){if(!M.scope){M.upload(P);}else{M.upload.apply(M.scope,[P]);}}N.uploadEvent.fire(P);if(D.uploadEvent){D.uploadEvent.fire(P);}YAHOO.util.Event.removeListener(K,"load",F);setTimeout(function(){document.body.removeChild(K);N.releaseObject(D);},100);};YAHOO.util.Event.addListener(K,"load",F);},abort:function(E,G,A){var D;var B=(G&&G.argument)?G.argument:null;if(E&&E.conn){if(this.isCallInProgress(E)){E.conn.abort();window.clearInterval(this._poll[E.tId]);delete this._poll[E.tId];if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{if(E&&E.isUpload===true){var C="yuiIO"+E.tId;var F=document.getElementById(C);if(F){YAHOO.util.Event.removeListener(F,"load");document.body.removeChild(F);if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{D=false;}}if(D===true){this.abortEvent.fire(E,B);if(E.abortEvent){E.abortEvent.fire(E,B);}this.handleTransactionResponse(E,G,true);}return D;},isCallInProgress:function(B){if(B&&B.conn){return B.conn.readyState!==4&&B.conn.readyState!==0;}else{if(B&&B.isUpload===true){var A="yuiIO"+B.tId;return document.getElementById(A)?true:false;}else{return false;}}},releaseObject:function(A){if(A&&A.conn){A.conn=null;A=null;}}};YAHOO.register("connection",YAHOO.util.Connect,{version:"2.4.1",build:"742"});YAHOO.util.Anim=function(B,A,C,D){if(!B){}this.init(B,A,C,D);};YAHOO.util.Anim.prototype={toString:function(){var A=this.getEl();var B=A.id||A.tagName||A;return("Anim "+B);},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(A,C,B){return this.method(this.currentFrame,C,B-C,this.totalFrames);},setAttribute:function(A,C,B){if(this.patterns.noNegatives.test(A)){C=(C>0)?C:0;}YAHOO.util.Dom.setStyle(this.getEl(),A,C+B);},getAttribute:function(A){var C=this.getEl();var E=YAHOO.util.Dom.getStyle(C,A);if(E!=="auto"&&!this.patterns.offsetUnit.test(E)){return parseFloat(E);}var B=this.patterns.offsetAttribute.exec(A)||[];var F=!!(B[3]);var D=!!(B[2]);if(D||(YAHOO.util.Dom.getStyle(C,"position")=="absolute"&&F)){E=C["offset"+B[0].charAt(0).toUpperCase()+B[0].substr(1)];}else{E=0;}return E;},getDefaultUnit:function(A){if(this.patterns.defaultUnit.test(A)){return"px";}return"";},setRuntimeAttribute:function(B){var G;var C;var D=this.attributes;this.runtimeAttributes[B]={};var F=function(H){return(typeof H!=="undefined");};if(!F(D[B]["to"])&&!F(D[B]["by"])){return false;}G=(F(D[B]["from"]))?D[B]["from"]:this.getAttribute(B);if(F(D[B]["to"])){C=D[B]["to"];}else{if(F(D[B]["by"])){if(G.constructor==Array){C=[];for(var E=0,A=G.length;E<A;++E){C[E]=G[E]+D[B]["by"][E]*1;}}else{C=G+D[B]["by"]*1;}}}this.runtimeAttributes[B].start=G;this.runtimeAttributes[B].end=C;this.runtimeAttributes[B].unit=(F(D[B].unit))?D[B]["unit"]:this.getDefaultUnit(B);return true;},init:function(C,H,G,A){var B=false;var D=null;var F=0;C=YAHOO.util.Dom.get(C);this.attributes=H||{};this.duration=!YAHOO.lang.isUndefined(G)?G:1;this.method=A||YAHOO.util.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=YAHOO.util.AnimMgr.fps;this.setEl=function(K){C=YAHOO.util.Dom.get(K);};this.getEl=function(){return C;};this.isAnimated=function(){return B;};this.getStartTime=function(){return D;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(YAHOO.util.AnimMgr.fps*this.duration):this.duration;if(this.duration===0&&this.useSeconds){this.totalFrames=1;}YAHOO.util.AnimMgr.registerElement(this);return true;};this.stop=function(K){if(!this.isAnimated()){return false;}if(K){this.currentFrame=this.totalFrames;this._onTween.fire();}YAHOO.util.AnimMgr.stop(this);};var J=function(){this.onStart.fire();this.runtimeAttributes={};for(var K in this.attributes){this.setRuntimeAttribute(K);}B=true;F=0;D=new Date();};var I=function(){var M={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};M.toString=function(){return("duration: "+M.duration+", currentFrame: "+M.currentFrame);};this.onTween.fire(M);var L=this.runtimeAttributes;for(var K in L){this.setAttribute(K,this.doMethod(K,L[K].start,L[K].end),L[K].unit);}F+=1;};var E=function(){var K=(new Date()-D)/1000;var L={duration:K,frames:F,fps:F/K};L.toString=function(){return("duration: "+L.duration+", frames: "+L.frames+", fps: "+L.fps);};B=false;F=0;this.onComplete.fire(L);};this._onStart=new YAHOO.util.CustomEvent("_start",this,true);this.onStart=new YAHOO.util.CustomEvent("start",this);this.onTween=new YAHOO.util.CustomEvent("tween",this);this._onTween=new YAHOO.util.CustomEvent("_tween",this,true);this.onComplete=new YAHOO.util.CustomEvent("complete",this);this._onComplete=new YAHOO.util.CustomEvent("_complete",this,true);this._onStart.subscribe(J);this._onTween.subscribe(I);this._onComplete.subscribe(E);}};YAHOO.util.AnimMgr=new function(){var C=null;var B=[];var A=0;this.fps=1000;this.delay=1;this.registerElement=function(F){B[B.length]=F;A+=1;F._onStart.fire();this.start();};this.unRegister=function(G,F){F=F||E(G);if(!G.isAnimated()||F==-1){return false;}G._onComplete.fire();B.splice(F,1);A-=1;if(A<=0){this.stop();}return true;};this.start=function(){if(C===null){C=setInterval(this.run,this.delay);}};this.stop=function(H){if(!H){clearInterval(C);for(var G=0,F=B.length;G<F;++G){this.unRegister(B[0],0);}B=[];C=null;A=0;}else{this.unRegister(H);}};this.run=function(){for(var H=0,F=B.length;H<F;++H){var G=B[H];if(!G||!G.isAnimated()){continue;}if(G.currentFrame<G.totalFrames||G.totalFrames===null){G.currentFrame+=1;if(G.useSeconds){D(G);}G._onTween.fire();}else{YAHOO.util.AnimMgr.stop(G,H);}}};var E=function(H){for(var G=0,F=B.length;G<F;++G){if(B[G]==H){return G;}}return -1;};var D=function(G){var J=G.totalFrames;var I=G.currentFrame;var H=(G.currentFrame*G.duration*1000/G.totalFrames);var F=(new Date()-G.getStartTime());var K=0;if(F<G.duration*1000){K=Math.round((F/H-1)*G.currentFrame);}else{K=J-(I+1);}if(K>0&&isFinite(K)){if(G.currentFrame+K>=J){K=J-(I+1);}G.currentFrame+=K;}};};YAHOO.util.Bezier=new function(){this.getPosition=function(E,D){var F=E.length;var C=[];for(var B=0;B<F;++B){C[B]=[E[B][0],E[B][1]];}for(var A=1;A<F;++A){for(B=0;B<F-A;++B){C[B][0]=(1-D)*C[B][0]+D*C[parseInt(B+1,10)][0];C[B][1]=(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];}}return[C[0][0],C[0][1]];};};(function(){YAHOO.util.ColorAnim=function(E,D,F,G){YAHOO.util.ColorAnim.superclass.constructor.call(this,E,D,F,G);};YAHOO.extend(YAHOO.util.ColorAnim,YAHOO.util.Anim);var B=YAHOO.util;var C=B.ColorAnim.superclass;var A=B.ColorAnim.prototype;A.toString=function(){var D=this.getEl();var E=D.id||D.tagName;return("ColorAnim "+E);};A.patterns.color=/color$/i;A.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;A.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;A.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;A.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;A.parseColor=function(D){if(D.length==3){return D;}var E=this.patterns.hex.exec(D);if(E&&E.length==4){return[parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16)];}E=this.patterns.rgb.exec(D);if(E&&E.length==4){return[parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10)]; |
}E=this.patterns.hex3.exec(D);if(E&&E.length==4){return[parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16)];}return null;};A.getAttribute=function(D){var F=this.getEl();if(this.patterns.color.test(D)){var G=YAHOO.util.Dom.getStyle(F,D);if(this.patterns.transparent.test(G)){var E=F.parentNode;G=B.Dom.getStyle(E,D);while(E&&this.patterns.transparent.test(G)){E=E.parentNode;G=B.Dom.getStyle(E,D);if(E.tagName.toUpperCase()=="HTML"){G="#fff";}}}}else{G=C.getAttribute.call(this,D);}return G;};A.doMethod=function(E,I,F){var H;if(this.patterns.color.test(E)){H=[];for(var G=0,D=I.length;G<D;++G){H[G]=C.doMethod.call(this,E,I[G],F[G]);}H="rgb("+Math.floor(H[0])+","+Math.floor(H[1])+","+Math.floor(H[2])+")";}else{H=C.doMethod.call(this,E,I,F);}return H;};A.setRuntimeAttribute=function(E){C.setRuntimeAttribute.call(this,E);if(this.patterns.color.test(E)){var G=this.attributes;var I=this.parseColor(this.runtimeAttributes[E].start);var F=this.parseColor(this.runtimeAttributes[E].end);if(typeof G[E]["to"]==="undefined"&&typeof G[E]["by"]!=="undefined"){F=this.parseColor(G[E].by);for(var H=0,D=I.length;H<D;++H){F[H]=I[H]+F[H];}}this.runtimeAttributes[E].start=I;this.runtimeAttributes[E].end=F;}};})();YAHOO.util.Easing={easeNone:function(B,A,D,C){return D*B/C+A;},easeIn:function(B,A,D,C){return D*(B/=C)*B+A;},easeOut:function(B,A,D,C){return -D*(B/=C)*(B-2)+A;},easeBoth:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B+A;}return -D/2*((--B)*(B-2)-1)+A;},easeInStrong:function(B,A,D,C){return D*(B/=C)*B*B*B+A;},easeOutStrong:function(B,A,D,C){return -D*((B=B/C-1)*B*B*B-1)+A;},easeBothStrong:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B*B*B+A;}return -D/2*((B-=2)*B*B*B-2)+A;},elasticIn:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return -(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;},elasticOut:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return B*Math.pow(2,-10*C)*Math.sin((C*F-D)*(2*Math.PI)/E)+G+A;},elasticBoth:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F/2)==2){return A+G;}if(!E){E=F*(0.3*1.5);}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}if(C<1){return -0.5*(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;}return B*Math.pow(2,-10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E)*0.5+G+A;},backIn:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*(B/=D)*B*((C+1)*B-C)+A;},backOut:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*((B=B/D-1)*B*((C+1)*B+C)+1)+A;},backBoth:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}if((B/=D/2)<1){return E/2*(B*B*(((C*=(1.525))+1)*B-C))+A;}return E/2*((B-=2)*B*(((C*=(1.525))+1)*B+C)+2)+A;},bounceIn:function(B,A,D,C){return D-YAHOO.util.Easing.bounceOut(C-B,0,D,C)+A;},bounceOut:function(B,A,D,C){if((B/=C)<(1/2.75)){return D*(7.5625*B*B)+A;}else{if(B<(2/2.75)){return D*(7.5625*(B-=(1.5/2.75))*B+0.75)+A;}else{if(B<(2.5/2.75)){return D*(7.5625*(B-=(2.25/2.75))*B+0.9375)+A;}}}return D*(7.5625*(B-=(2.625/2.75))*B+0.984375)+A;},bounceBoth:function(B,A,D,C){if(B<C/2){return YAHOO.util.Easing.bounceIn(B*2,0,D,C)*0.5+A;}return YAHOO.util.Easing.bounceOut(B*2-C,0,D,C)*0.5+D*0.5+A;}};(function(){YAHOO.util.Motion=function(G,F,H,I){if(G){YAHOO.util.Motion.superclass.constructor.call(this,G,F,H,I);}};YAHOO.extend(YAHOO.util.Motion,YAHOO.util.ColorAnim);var D=YAHOO.util;var E=D.Motion.superclass;var B=D.Motion.prototype;B.toString=function(){var F=this.getEl();var G=F.id||F.tagName;return("Motion "+G);};B.patterns.points=/^points$/i;B.setAttribute=function(F,H,G){if(this.patterns.points.test(F)){G=G||"px";E.setAttribute.call(this,"left",H[0],G);E.setAttribute.call(this,"top",H[1],G);}else{E.setAttribute.call(this,F,H,G);}};B.getAttribute=function(F){if(this.patterns.points.test(F)){var G=[E.getAttribute.call(this,"left"),E.getAttribute.call(this,"top")];}else{G=E.getAttribute.call(this,F);}return G;};B.doMethod=function(F,J,G){var I=null;if(this.patterns.points.test(F)){var H=this.method(this.currentFrame,0,100,this.totalFrames)/100;I=D.Bezier.getPosition(this.runtimeAttributes[F],H);}else{I=E.doMethod.call(this,F,J,G);}return I;};B.setRuntimeAttribute=function(O){if(this.patterns.points.test(O)){var G=this.getEl();var I=this.attributes;var F;var K=I["points"]["control"]||[];var H;var L,N;if(K.length>0&&!(K[0] instanceof Array)){K=[K];}else{var J=[];for(L=0,N=K.length;L<N;++L){J[L]=K[L];}K=J;}if(D.Dom.getStyle(G,"position")=="static"){D.Dom.setStyle(G,"position","relative");}if(C(I["points"]["from"])){D.Dom.setXY(G,I["points"]["from"]);}else{D.Dom.setXY(G,D.Dom.getXY(G));}F=this.getAttribute("points");if(C(I["points"]["to"])){H=A.call(this,I["points"]["to"],F);var M=D.Dom.getXY(this.getEl());for(L=0,N=K.length;L<N;++L){K[L]=A.call(this,K[L],F);}}else{if(C(I["points"]["by"])){H=[F[0]+I["points"]["by"][0],F[1]+I["points"]["by"][1]];for(L=0,N=K.length;L<N;++L){K[L]=[F[0]+K[L][0],F[1]+K[L][1]];}}}this.runtimeAttributes[O]=[F];if(K.length>0){this.runtimeAttributes[O]=this.runtimeAttributes[O].concat(K);}this.runtimeAttributes[O][this.runtimeAttributes[O].length]=H;}else{E.setRuntimeAttribute.call(this,O);}};var A=function(F,H){var G=D.Dom.getXY(this.getEl());F=[F[0]-G[0]+H[0],F[1]-G[1]+H[1]];return F;};var C=function(F){return(typeof F!=="undefined");};})();(function(){YAHOO.util.Scroll=function(E,D,F,G){if(E){YAHOO.util.Scroll.superclass.constructor.call(this,E,D,F,G);}};YAHOO.extend(YAHOO.util.Scroll,YAHOO.util.ColorAnim);var B=YAHOO.util;var C=B.Scroll.superclass;var A=B.Scroll.prototype;A.toString=function(){var D=this.getEl();var E=D.id||D.tagName;return("Scroll "+E);};A.doMethod=function(D,G,E){var F=null;if(D=="scroll"){F=[this.method(this.currentFrame,G[0],E[0]-G[0],this.totalFrames),this.method(this.currentFrame,G[1],E[1]-G[1],this.totalFrames)]; |
}else{F=C.doMethod.call(this,D,G,E);}return F;};A.getAttribute=function(D){var F=null;var E=this.getEl();if(D=="scroll"){F=[E.scrollLeft,E.scrollTop];}else{F=C.getAttribute.call(this,D);}return F;};A.setAttribute=function(D,G,F){var E=this.getEl();if(D=="scroll"){E.scrollLeft=G[0];E.scrollTop=G[1];}else{C.setAttribute.call(this,D,G,F);}};})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.4.1",build:"742"});if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,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:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,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(G,C){var F=[];for(var E in G.groups){for(var D in this.ids[E]){var B=this.ids[E][D];if(!this.isTypeOfDD(B)){continue;}if(!C||B.isTarget){F[F.length]=B;}}}return F;},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){this.currentTarget=YAHOO.util.Event.getTarget(D);this.dragCurrent=C;var B=C.getEl();this.startX=YAHOO.util.Event.getPageX(D);this.startY=YAHOO.util.Event.getPageY(D);this.deltaX=this.startX-B.offsetLeft;this.deltaY=this.startY-B.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var E=YAHOO.util.DDM;E.startDrag(E.startX,E.startY);E.fromTimeout=true;},this.clickTimeThresh);},startDrag:function(B,D){clearTimeout(this.clickTimeout);var C=this.dragCurrent;if(C){C.b4StartDrag(B,D);}if(C){C.startDrag(B,D);}this.dragThreshMet=true;},handleMouseUp:function(B){if(this.dragCurrent){clearTimeout(this.clickTimeout);if(this.dragThreshMet){if(this.fromTimeout){this.handleMouseMove(B);}this.fromTimeout=false;this.fireEvents(B,true);}else{}this.stopDrag(B);this.stopEvent(B);}},stopEvent:function(B){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(B);}if(this.preventDefault){YAHOO.util.Event.preventDefault(B);}},stopDrag:function(C,B){if(this.dragCurrent&&!B){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(C);this.dragCurrent.endDrag(C);}this.dragCurrent.onMouseUp(C);}this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(E){var B=this.dragCurrent;if(B){if(YAHOO.util.Event.isIE&&!E.button){this.stopEvent(E);return this.handleMouseUp(E);}if(!this.dragThreshMet){var D=Math.abs(this.startX-YAHOO.util.Event.getPageX(E));var C=Math.abs(this.startY-YAHOO.util.Event.getPageY(E));if(D>this.clickPixelThresh||C>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){B.b4Drag(E);if(B){B.onDrag(E);}if(B){this.fireEvents(E,false);}}this.stopEvent(E);}},fireEvents:function(T,J){var V=this.dragCurrent;if(!V||V.isLocked()||V.dragOnly){return ;}var L=YAHOO.util.Event.getPageX(T),K=YAHOO.util.Event.getPageY(T),M=new YAHOO.util.Point(L,K),H=V.getTargetCoord(M.x,M.y),E=V.getDragEl(),S=new YAHOO.util.Region(H.y,H.x+E.offsetWidth,H.y+E.offsetHeight,H.x),G=[],I=[],D=[],U=[],R=[],C={},N=[];for(var P in this.dragOvers){var W=this.dragOvers[P];if(!this.isTypeOfDD(W)){continue;}if(!this.isOverTarget(M,W,this.mode,S)){I.push(W);}G[P]=true;delete this.dragOvers[P];}for(var O in V.groups){if("string"!=typeof O){continue;}for(P in this.ids[O]){var F=this.ids[O][P];if(!this.isTypeOfDD(F)){continue;}if(F.isTarget&&!F.isLocked()&&F!=V){if(this.isOverTarget(M,F,this.mode,S)){C[O]=true;if(J){U.push(F);}else{if(!G[F.id]){R.push(F);}else{D.push(F);}this.dragOvers[F.id]=F;}}}}}this.interactionInfo={out:I,enter:R,over:D,drop:U,point:M,draggedRegion:S,sourceRegion:this.locationCache[V.id],validDrop:J};for(var B in C){N.push(B);}if(J&&!U.length){this.interactionInfo.validDrop=false;V.onInvalidDrop(T);}if(this.mode){if(I.length){V.b4DragOut(T,I);if(V){V.onDragOut(T,I);}}if(R.length){if(V){V.onDragEnter(T,R,N);}}if(D.length){if(V){V.b4DragOver(T,D,N);}if(V){V.onDragOver(T,D,N);}}if(U.length){if(V){V.b4DragDrop(T,U,N);}if(V){V.onDragDrop(T,U,N);}}}else{var Q=0;for(P=0,Q=I.length;P<Q;++P){if(V){V.b4DragOut(T,I[P].id,N[0]);}if(V){V.onDragOut(T,I[P].id,N[0]);}}for(P=0,Q=R.length;P<Q;++P){if(V){V.onDragEnter(T,R[P].id,N[0]);}}for(P=0,Q=D.length;P<Q;++P){if(V){V.b4DragOver(T,D[P].id,N[0]);}if(V){V.onDragOver(T,D[P].id,N[0]);}}for(P=0,Q=U.length;P<Q;++P){if(V){V.b4DragDrop(T,U[P].id,N[0]);}if(V){V.onDragDrop(T,U[P].id,N[0]);}}}},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(this.mode==this.INTERSECT&&B.cursorIsOver){F=B;break;}else{if(!F||!F.overlap||(B.overlap&&F.overlap.getArea()<B.overlap.getArea())){F=B;}}}}return F;},refreshCache:function(C){var E=C||this.ids;for(var B in E){if("string"!=typeof B){continue;}for(var D in this.ids[B]){var F=this.ids[B][D];if(this.isTypeOfDD(F)){var G=this.getLocation(F);if(G){this.locationCache[F.id]=G;}else{delete this.locationCache[F.id];}}}}},verifyEl:function(C){try{if(C){var B=C.offsetParent; |
if(B){return true;}}}catch(D){}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=YAHOO.util.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 YAHOO.util.Region(M,B,I,F);},isOverTarget:function(J,B,D,E){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||(!D&&!I.constrainX&&!I.constrainY)){return B.cursorIsOver;}B.overlap=null;if(!E){var G=I.getTargetCoord(J.x,J.y);var C=I.getDragEl();E=new YAHOO.util.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){this.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}this._execOnAll("unreg",[]);this.ids={};},elementCache:{},getElWrapper:function(C){var B=this.elementCache[C];if(!B||!B.el){B=this.elementCache[C]=new this.ElementWrapper(YAHOO.util.Dom.get(C));}return B;},getElement:function(B){return YAHOO.util.Dom.get(B);},getCss:function(C){var B=YAHOO.util.Dom.get(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 YAHOO.util.Dom.getX(B);},getPosY:function(B){return YAHOO.util.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 YAHOO.util.Dom.getStyle(C,B);},getScrollTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(B,D){var C=YAHOO.util.Dom.getXY(D);YAHOO.util.Dom.setXY(B,C);},getClientHeight:function(){return YAHOO.util.Dom.getViewportHeight();},getClientWidth:function(){return YAHOO.util.Dom.getViewportWidth();},numericSort:function(C,B){return(C-B);},_timeoutCount:0,_addListeners:function(){var B=YAHOO.util.DDM;if(YAHOO.util.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;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.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,dragOnly:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,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(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(E,C,D){this.initTarget(E,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);},initTarget:function(E,C,D){this.config=D||{};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},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);this.dragOnly=((this.config.dragOnly===true)?true: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=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C); |
this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(H,G){var D=H.which||H.button;if(this.primaryButtonOnly&&D>1){return ;}if(this.isLocked()){return ;}var C=this.b4MouseDown(H);var E=this.onMouseDown(H);if((C===false)||(E===false)){return ;}this.DDM.refreshCache(this.groups);var F=new YAHOO.util.Point(A.getPageX(H),A.getPageY(H));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(F,this)){}else{if(this.clickValidator(H)){this.setStartPosition();this.DDM.handleMouseDown(H,this);this.DDM.stopEvent(H);}else{}}},clickValidator:function(D){var C=A.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(C<this.minX){C=this.minX;}if(C>this.maxX){C=this.maxX;}}if(this.constrainY){if(F<this.minY){F=this.minY;}if(F>this.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(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=B.generateId(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=!B.hasClass(F,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=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;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=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;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);}};})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.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);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();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);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame(); |
}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return ;}var F=this.getDragEl(),E=YAHOO.util.Dom;if(!F){F=document.createElement("div");F.id=this.dragElId;var D=F.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");F.appendChild(C);A.insertBefore(F,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.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);YAHOO.util.Dom.setStyle(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DDM.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.4.1",build:"742"});YAHOO.util.Attribute=function(B,A){if(A){this.owner=A;this.configure(B,true);}};YAHOO.util.Attribute.prototype={name:undefined,value:null,owner:null,readOnly:false,writeOnce:false,_initialConfig:null,_written:false,method:null,validator:null,getValue:function(){return this.value;},setValue:function(F,B){var E;var A=this.owner;var C=this.name;var D={type:C,prevValue:this.getValue(),newValue:F};if(this.readOnly||(this.writeOnce&&this._written)){return false;}if(this.validator&&!this.validator.call(A,F)){return false;}if(!B){E=A.fireBeforeChangeEvent(D);if(E===false){return false;}}if(this.method){this.method.call(A,F);}this.value=F;this._written=true;D.type=C;if(!B){this.owner.fireChangeEvent(D);}return true;},configure:function(B,C){B=B||{};this._written=false;this._initialConfig=this._initialConfig||{};for(var A in B){if(A&&YAHOO.lang.hasOwnProperty(B,A)){this[A]=B[A];if(C){this._initialConfig[A]=B[A];}}}},resetValue:function(){return this.setValue(this._initialConfig.value);},resetConfig:function(){this.configure(this._initialConfig);},refresh:function(A){this.setValue(this.value,A);}};(function(){var A=YAHOO.util.Lang;YAHOO.util.AttributeProvider=function(){};YAHOO.util.AttributeProvider.prototype={_configs:null,get:function(C){this._configs=this._configs||{};var B=this._configs[C];if(!B){return undefined;}return B.value;},set:function(D,E,B){this._configs=this._configs||{};var C=this._configs[D];if(!C){return false;}return C.setValue(E,B);},getAttributeKeys:function(){this._configs=this._configs;var D=[];var B;for(var C in this._configs){B=this._configs[C];if(A.hasOwnProperty(this._configs,C)&&!A.isUndefined(B)){D[D.length]=C;}}return D;},setAttributes:function(D,B){for(var C in D){if(A.hasOwnProperty(D,C)){this.set(C,D[C],B);}}},resetValue:function(C,B){this._configs=this._configs||{};if(this._configs[C]){this.set(C,this._configs[C]._initialConfig.value,B);return true;}return false;},refresh:function(E,C){this._configs=this._configs;E=((A.isString(E))?[E]:E)||this.getAttributeKeys();for(var D=0,B=E.length;D<B;++D){if(this._configs[E[D]]&&!A.isUndefined(this._configs[E[D]].value)&&!A.isNull(this._configs[E[D]].value)){this._configs[E[D]].refresh(C);}}},register:function(B,C){this.setAttributeConfig(B,C);},getAttributeConfig:function(C){this._configs=this._configs||{};var B=this._configs[C]||{};var D={};for(C in B){if(A.hasOwnProperty(B,C)){D[C]=B[C];}}return D;},setAttributeConfig:function(B,C,D){this._configs=this._configs||{};C=C||{};if(!this._configs[B]){C.name=B;this._configs[B]=this.createAttribute(C);}else{this._configs[B].configure(C,D);}},configureAttribute:function(B,C,D){this.setAttributeConfig(B,C,D);},resetAttributeConfig:function(B){this._configs=this._configs||{};this._configs[B].resetConfig();},subscribe:function(B,C){this._events=this._events||{};if(!(B in this._events)){this._events[B]=this.createEvent(B);}YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){this.subscribe.apply(this,arguments);},addListener:function(){this.subscribe.apply(this,arguments);},fireBeforeChangeEvent:function(C){var B="before";B+=C.type.charAt(0).toUpperCase()+C.type.substr(1)+"Change";C.type=B;return this.fireEvent(C.type,C);},fireChangeEvent:function(B){B.type+="Change";return this.fireEvent(B.type,B);},createAttribute:function(B){return new YAHOO.util.Attribute(B,this);}};YAHOO.augment(YAHOO.util.AttributeProvider,YAHOO.util.EventProvider);})();(function(){var D=YAHOO.util.Dom,F=YAHOO.util.AttributeProvider;YAHOO.util.Element=function(G,H){if(arguments.length){this.init(G,H);}};YAHOO.util.Element.prototype={DOM_EVENTS:null,appendChild:function(G){G=G.get?G.get("element"):G;this.get("element").appendChild(G);},getElementsByTagName:function(G){return this.get("element").getElementsByTagName(G);},hasChildNodes:function(){return this.get("element").hasChildNodes();},insertBefore:function(G,H){G=G.get?G.get("element"):G;H=(H&&H.get)?H.get("element"):H;this.get("element").insertBefore(G,H);},removeChild:function(G){G=G.get?G.get("element"):G;this.get("element").removeChild(G);return true;},replaceChild:function(G,H){G=G.get?G.get("element"):G;H=H.get?H.get("element"):H;return this.get("element").replaceChild(G,H);},initAttributes:function(G){},addListener:function(K,J,L,I){var H=this.get("element");I=I||this;H=this.get("id")||H;var G=this;if(!this._events[K]){if(this.DOM_EVENTS[K]){YAHOO.util.Event.addListener(H,K,function(M){if(M.srcElement&&!M.target){M.target=M.srcElement;}G.fireEvent(K,M);},L,I);}this.createEvent(K,this);}YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){this.addListener.apply(this,arguments);},subscribe:function(){this.addListener.apply(this,arguments);},removeListener:function(H,G){this.unsubscribe.apply(this,arguments);},addClass:function(G){D.addClass(this.get("element"),G);},getElementsByClassName:function(H,G){return D.getElementsByClassName(H,G,this.get("element"));},hasClass:function(G){return D.hasClass(this.get("element"),G);},removeClass:function(G){return D.removeClass(this.get("element"),G);},replaceClass:function(H,G){return D.replaceClass(this.get("element"),H,G);},setStyle:function(I,H){var G=this.get("element");if(!G){return this._queue[this._queue.length]=["setStyle",arguments];}return D.setStyle(G,I,H);},getStyle:function(G){return D.getStyle(this.get("element"),G);},fireQueue:function(){var H=this._queue;for(var I=0,G=H.length;I<G;++I){this[H[I][0]].apply(this,H[I][1]);}},appendTo:function(H,I){H=(H.get)?H.get("element"):D.get(H);this.fireEvent("beforeAppendTo",{type:"beforeAppendTo",target:H});I=(I&&I.get)?I.get("element"):D.get(I);var G=this.get("element");if(!G){return false;}if(!H){return false;}if(G.parent!=H){if(I){H.insertBefore(G,I);}else{H.appendChild(G);}}this.fireEvent("appendTo",{type:"appendTo",target:H});},get:function(G){var I=this._configs||{};var H=I.element;if(H&&!I[G]&&!YAHOO.lang.isUndefined(H.value[G])){return H.value[G];}return F.prototype.get.call(this,G);},setAttributes:function(L,H){var K=this.get("element"); |
for(var J in L){if(!this._configs[J]&&!YAHOO.lang.isUndefined(K[J])){this.setAttributeConfig(J);}}for(var I=0,G=this._configOrder.length;I<G;++I){if(L[this._configOrder[I]]){this.set(this._configOrder[I],L[this._configOrder[I]],H);}}},set:function(H,J,G){var I=this.get("element");if(!I){this._queue[this._queue.length]=["set",arguments];if(this._configs[H]){this._configs[H].value=J;}return ;}if(!this._configs[H]&&!YAHOO.lang.isUndefined(I[H])){C.call(this,H);}return F.prototype.set.apply(this,arguments);},setAttributeConfig:function(G,I,J){var H=this.get("element");if(H&&!this._configs[G]&&!YAHOO.lang.isUndefined(H[G])){C.call(this,G,I);}else{F.prototype.setAttributeConfig.apply(this,arguments);}this._configOrder.push(G);},getAttributeKeys:function(){var H=this.get("element");var I=F.prototype.getAttributeKeys.call(this);for(var G in H){if(!this._configs[G]){I[G]=I[G]||H[G];}}return I;},createEvent:function(H,G){this._events[H]=true;F.prototype.createEvent.apply(this,arguments);},init:function(H,G){A.apply(this,arguments);}};var A=function(H,G){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._configOrder=[];G=G||{};G.element=G.element||H||null;this.DOM_EVENTS={"click":true,"dblclick":true,"keydown":true,"keypress":true,"keyup":true,"mousedown":true,"mousemove":true,"mouseout":true,"mouseover":true,"mouseup":true,"focus":true,"blur":true,"submit":true};var I=false;if(YAHOO.lang.isString(H)){C.call(this,"id",{value:G.element});}if(D.get(H)){I=true;E.call(this,G);B.call(this,G);}YAHOO.util.Event.onAvailable(G.element,function(){if(!I){E.call(this,G);}this.fireEvent("available",{type:"available",target:G.element});},this,true);YAHOO.util.Event.onContentReady(G.element,function(){if(!I){B.call(this,G);}this.fireEvent("contentReady",{type:"contentReady",target:G.element});},this,true);};var E=function(G){this.setAttributeConfig("element",{value:D.get(G.element),readOnly:true});};var B=function(G){this.initAttributes(G);this.setAttributes(G,true);this.fireQueue();};var C=function(G,I){var H=this.get("element");I=I||{};I.name=G;I.method=I.method||function(J){H[G]=J;};I.value=I.value||H[G];this._configs[G]=new YAHOO.util.Attribute(I,this);};YAHOO.augment(YAHOO.util.Element,F);})();YAHOO.register("element",YAHOO.util.Element,{version:"2.4.1",build:"742"});YAHOO.register("utilities", YAHOO, {version: "2.4.1", build: "742"}); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/ext-all.js |
---|
New file |
0,0 → 1,157 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
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)}}}(); |
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||"")}; |
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; |
Ext.util.Observable=function(){if(this.listeners){this.on(this.listeners);delete this.listeners}};Ext.util.Observable.prototype={fireEvent:function(){if(this.eventsSuspended!==true){var A=this.events[arguments[0].toLowerCase()];if(typeof A=="object"){return A.fire.apply(A,Array.prototype.slice.call(arguments,1))}}return true},filterOptRe:/^(?:scope|delay|buffer|single)$/,addListener:function(A,C,B,F){if(typeof A=="object"){F=A;for(var E in F){if(this.filterOptRe.test(E)){continue}if(typeof F[E]=="function"){this.addListener(E,F[E],F.scope,F)}else{this.addListener(E,F[E].fn,F[E].scope,F[E])}}return }F=(!F||typeof F=="boolean")?{}:F;A=A.toLowerCase();var D=this.events[A]||true;if(typeof D=="boolean"){D=new Ext.util.Event(this,A);this.events[A]=D}D.addListener(C,B,F)},removeListener:function(A,C,B){var D=this.events[A.toLowerCase()];if(typeof D=="object"){D.removeListener(C,B)}},purgeListeners:function(){for(var A in this.events){if(typeof this.events[A]=="object"){this.events[A].clearListeners()}}},relayEvents:function(F,D){var E=function(G){return function(){return this.fireEvent.apply(this,Ext.combine(G,Array.prototype.slice.call(arguments,0)))}};for(var C=0,A=D.length;C<A;C++){var B=D[C];if(!this.events[B]){this.events[B]=true}F.on(B,E(B),this)}},addEvents:function(D){if(!this.events){this.events={}}if(typeof D=="string"){for(var C=0,A=arguments,B;B=A[C];C++){if(!this.events[A[C]]){D[A[C]]=true}}}else{Ext.applyIf(this.events,D)}},hasListener:function(A){var B=this.events[A];return typeof B=="object"&&B.listeners.length>0},suspendEvents:function(){this.eventsSuspended=true},resumeEvents:function(){this.eventsSuspended=false},getMethodEvent:function(G){if(!this.methodEvents){this.methodEvents={}}var F=this.methodEvents[G];if(!F){F={};this.methodEvents[G]=F;F.originalFn=this[G];F.methodName=G;F.before=[];F.after=[];var C,B,D;var E=this;var A=function(J,I,H){if((B=J.apply(I||E,H))!==undefined){if(typeof B==="object"){if(B.returnValue!==undefined){C=B.returnValue}else{C=B}if(B.cancel===true){D=true}}else{if(B===false){D=true}else{C=B}}}};this[G]=function(){C=B=undefined;D=false;var I=Array.prototype.slice.call(arguments,0);for(var J=0,H=F.before.length;J<H;J++){A(F.before[J].fn,F.before[J].scope,I);if(D){return C}}if((B=F.originalFn.apply(E,I))!==undefined){C=B}for(var J=0,H=F.after.length;J<H;J++){A(F.after[J].fn,F.after[J].scope,I);if(D){return C}}return C}}return F},beforeMethod:function(D,B,A){var C=this.getMethodEvent(D);C.before.push({fn:B,scope:A})},afterMethod:function(D,B,A){var C=this.getMethodEvent(D);C.after.push({fn:B,scope:A})},removeMethodListener:function(F,D,C){var E=this.getMethodEvent(F);for(var B=0,A=E.before.length;B<A;B++){if(E.before[B].fn==D&&E.before[B].scope==C){E.before.splice(B,1);return }}for(var B=0,A=E.after.length;B<A;B++){if(E.after[B].fn==D&&E.after[B].scope==C){E.after.splice(B,1);return }}}};Ext.util.Observable.prototype.on=Ext.util.Observable.prototype.addListener;Ext.util.Observable.prototype.un=Ext.util.Observable.prototype.removeListener;Ext.util.Observable.capture=function(C,B,A){C.fireEvent=C.fireEvent.createInterceptor(B,A)};Ext.util.Observable.releaseCapture=function(A){A.fireEvent=Ext.util.Observable.prototype.fireEvent};(function(){var B=function(F,G,E){var D=new Ext.util.DelayedTask();return function(){D.delay(G.buffer,F,E,Array.prototype.slice.call(arguments,0))}};var C=function(F,G,E,D){return function(){G.removeListener(E,D);return F.apply(D,arguments)}};var A=function(E,F,D){return function(){var G=Array.prototype.slice.call(arguments,0);setTimeout(function(){E.apply(D,G)},F.delay||10)}};Ext.util.Event=function(E,D){this.name=D;this.obj=E;this.listeners=[]};Ext.util.Event.prototype={addListener:function(G,F,E){F=F||this.obj;if(!this.isListening(G,F)){var D=this.createListener(G,F,E);if(!this.firing){this.listeners.push(D)}else{this.listeners=this.listeners.slice(0);this.listeners.push(D)}}},createListener:function(G,F,H){H=H||{};F=F||this.obj;var D={fn:G,scope:F,options:H};var E=G;if(H.delay){E=A(E,H,F)}if(H.single){E=C(E,this,G,F)}if(H.buffer){E=B(E,H,F)}D.fireFn=E;return D},findListener:function(I,H){H=H||this.obj;var F=this.listeners;for(var G=0,D=F.length;G<D;G++){var E=F[G];if(E.fn==I&&E.scope==H){return G}}return -1},isListening:function(E,D){return this.findListener(E,D)!=-1},removeListener:function(F,E){var D;if((D=this.findListener(F,E))!=-1){if(!this.firing){this.listeners.splice(D,1)}else{this.listeners=this.listeners.slice(0);this.listeners.splice(D,1)}return true}return false},clearListeners:function(){this.listeners=[]},fire:function(){var F=this.listeners,I,D=F.length;if(D>0){this.firing=true;var G=Array.prototype.slice.call(arguments,0);for(var H=0;H<D;H++){var E=F[H];if(E.fireFn.apply(E.scope||this.obj||window,arguments)===false){this.firing=false;return false}}this.firing=false}return true}}})(); |
Ext.EventManager=function(){var T,M,I=false;var K,S,C,O;var L=Ext.lib.Event;var N=Ext.lib.Dom;var B=function(){if(!I){I=true;Ext.isReady=true;if(M){clearInterval(M)}if(Ext.isGecko||Ext.isOpera){document.removeEventListener("DOMContentLoaded",B,false)}if(Ext.isIE){var D=document.getElementById("ie-deferred-loader");if(D){D.onreadystatechange=null;D.parentNode.removeChild(D)}}if(T){T.fire();T.clearListeners()}}};var A=function(){T=new Ext.util.Event();if(Ext.isGecko||Ext.isOpera){document.addEventListener("DOMContentLoaded",B,false)}else{if(Ext.isIE){document.write("<s"+"cript id=\"ie-deferred-loader\" defer=\"defer\" src=\"/"+"/:\"></s"+"cript>");var D=document.getElementById("ie-deferred-loader");D.onreadystatechange=function(){if(this.readyState=="complete"){B()}}}else{if(Ext.isSafari){M=setInterval(function(){var E=document.readyState;if(E=="complete"){B()}},10)}}}L.on(window,"load",B)};var R=function(E,U){var D=new Ext.util.DelayedTask(E);return function(V){V=new Ext.EventObjectImpl(V);D.delay(U.buffer,E,null,[V])}};var P=function(V,U,D,E){return function(W){Ext.EventManager.removeListener(U,D,E);V(W)}};var F=function(D,E){return function(U){U=new Ext.EventObjectImpl(U);setTimeout(function(){D(U)},E.delay||10)}};var J=function(U,E,D,Y,X){var Z=(!D||typeof D=="boolean")?{}:D;Y=Y||Z.fn;X=X||Z.scope;var W=Ext.getDom(U);if(!W){throw"Error listening for \""+E+"\". Element \""+U+"\" doesn't exist."}var V=function(b){b=Ext.EventObject.setEvent(b);var a;if(Z.delegate){a=b.getTarget(Z.delegate,W);if(!a){return }}else{a=b.target}if(Z.stopEvent===true){b.stopEvent()}if(Z.preventDefault===true){b.preventDefault()}if(Z.stopPropagation===true){b.stopPropagation()}if(Z.normalized===false){b=b.browserEvent}Y.call(X||W,b,a,Z)};if(Z.delay){V=F(V,Z)}if(Z.single){V=P(V,W,E,Y)}if(Z.buffer){V=R(V,Z)}Y._handlers=Y._handlers||[];Y._handlers.push([Ext.id(W),E,V]);L.on(W,E,V);if(E=="mousewheel"&&W.addEventListener){W.addEventListener("DOMMouseScroll",V,false);L.on(window,"unload",function(){W.removeEventListener("DOMMouseScroll",V,false)})}if(E=="mousedown"&&W==document){Ext.EventManager.stoppedMouseDownEvent.addListener(V)}return V};var G=function(E,U,Z){var D=Ext.id(E),a=Z._handlers,X=Z;if(a){for(var V=0,Y=a.length;V<Y;V++){var W=a[V];if(W[0]==D&&W[1]==U){X=W[2];a.splice(V,1);break}}}L.un(E,U,X);E=Ext.getDom(E);if(U=="mousewheel"&&E.addEventListener){E.removeEventListener("DOMMouseScroll",X,false)}if(U=="mousedown"&&E==document){Ext.EventManager.stoppedMouseDownEvent.removeListener(X)}};var H=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;var Q={addListener:function(U,D,W,V,E){if(typeof D=="object"){var Y=D;for(var X in Y){if(H.test(X)){continue}if(typeof Y[X]=="function"){J(U,X,Y,Y[X],Y.scope)}else{J(U,X,Y[X])}}return }return J(U,D,E,W,V)},removeListener:function(E,D,U){return G(E,D,U)},onDocumentReady:function(U,E,D){if(I){T.addListener(U,E,D);T.fire();T.clearListeners();return }if(!T){A()}T.addListener(U,E,D)},onWindowResize:function(U,E,D){if(!K){K=new Ext.util.Event();S=new Ext.util.DelayedTask(function(){K.fire(N.getViewWidth(),N.getViewHeight())});L.on(window,"resize",this.fireWindowResize,this)}K.addListener(U,E,D)},fireWindowResize:function(){if(K){if((Ext.isIE||Ext.isAir)&&S){S.delay(50)}else{K.fire(N.getViewWidth(),N.getViewHeight())}}},onTextResize:function(V,U,D){if(!C){C=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);O=E.dom.offsetHeight;setInterval(function(){if(E.dom.offsetHeight!=O){C.fire(O,O=E.dom.offsetHeight)}},this.textResizeInterval)}C.addListener(V,U,D)},removeResizeListener:function(E,D){if(K){K.removeListener(E,D)}},fireResize:function(){if(K){K.fire(N.getViewWidth(),N.getViewHeight())}},ieDeferSrc:false,textResizeInterval:50};Q.on=Q.addListener;Q.un=Q.removeListener;Q.stoppedMouseDownEvent=new Ext.util.Event();return Q}();Ext.onReady=Ext.EventManager.onDocumentReady;Ext.onReady(function(){var B=Ext.getBody();if(!B){return }var A=[Ext.isIE?"ext-ie "+(Ext.isIE6?"ext-ie6":"ext-ie7"):Ext.isGecko?"ext-gecko":Ext.isOpera?"ext-opera":Ext.isSafari?"ext-safari":""];if(Ext.isMac){A.push("ext-mac")}if(Ext.isLinux){A.push("ext-linux")}if(Ext.isBorderBox){A.push("ext-border-box")}if(Ext.isStrict){var C=B.dom.parentNode;if(C){C.className+=" ext-strict"}}B.addClass(A.join(" "))});Ext.EventObject=function(){var B=Ext.lib.Event;var A={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,RETURN:13,ENTER:13,SHIFT:16,CONTROL:17,ESC:27,SPACE:32,PAGEUP:33,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46,F5:116,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,G,D){var F=Ext.get(this.target);return E?F.findParent(E,G,D):(D?F: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()}(); |
(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,unique){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){Ext.EventManager.removeListener(this.dom,eventName,fn);return this},removeAllListeners:function(){E.purgeElement(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.isGecko){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="no";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,preventFlicker){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){E.purgeElement(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})})(); |
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(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); |
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; |
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,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 I=D.getAttribute("enctype");if(E.isUpload||(I&&I.toLowerCase()=="multipart/form-data")){return this.doFormUpload(E,C,B)}var H=Ext.lib.Ajax.serializeForm(D);C=C?(C+"&"+H):H}var J=E.headers;if(this.defaultHeaders){J=Ext.apply(J||{},this.defaultHeaders);if(!E.headers){E.headers=J}}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?"POST":"GET");if(A=="GET"&&(this.disableCaching&&E.disableCaching!==false)||E.disableCaching===true){B+=(B.indexOf("?")!=-1?"&":"?")+"_dc="+(new Date().getTime())}if(typeof E.autoAbort=="boolean"){if(E.autoAbort){this.abort()}}else{if(this.autoAbort!==false){this.abort()}}if((A=="GET"&&C)||E.xmlData||E.jsonData){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)}}); |
Ext.Updater=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.autoRefreshProcId=null;this.refreshDelegate=this.refresh.createDelegate(this);this.updateDelegate=this.update.createDelegate(this);this.formUpdateDelegate=this.formUpdate.createDelegate(this);if(!this.renderer){this.renderer=new Ext.Updater.BasicRenderer()}Ext.Updater.superclass.constructor.call(this)};Ext.extend(Ext.Updater,Ext.util.Observable,{getEl:function(){return this.el},update:function(B,F,H,D){if(this.fireEvent("beforeupdate",this.el,B,F)!==false){var G=this.method,A,C;if(typeof B=="object"){A=B;B=A.url;F=F||A.params;H=H||A.callback;D=D||A.discardUrl;C=A.scope;if(typeof A.method!="undefined"){G=A.method}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)}G=G||(F?"POST":"GET");if(G=="GET"){B=this.prepareUrl(B)}var E=Ext.apply(A||{},{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),argument:{"options":A,"url":B,"form":null,"callback":H,"scope":C||window,"params":F}});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)}},prepareUrl:function(B){if(this.disableCaching){var A="_dc="+(new Date().getTime());if(B.indexOf("?")!==-1){B+="&"+A}else{B+="?"+A}}return B},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.update=Ext.Updater.updateElement;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; |
Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(B){if(Date.formatFunctions[B]==null){Date.createNewFormat(B)}var A=Date.formatFunctions[B];return this[A]()};Date.prototype.format=Date.prototype.dateFormat;Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var code="Date.prototype."+funcName+" = function(){return ";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true}else{if(special){special=false;code+="'"+String.escape(ch)+"' + "}else{code+=Date.getFormatCode(ch)}}}eval(code.substring(0,code.length-3)+";}")};Date.getFormatCode=function(D){switch(D){case"d":return"String.leftPad(this.getDate(), 2, '0') + ";case"D":return"Date.getShortDayName(this.getDay()) + ";case"j":return"this.getDate() + ";case"l":return"Date.dayNames[this.getDay()] + ";case"N":return"(this.getDay() ? this.getDay() : 7) + ";case"S":return"this.getSuffix() + ";case"w":return"this.getDay() + ";case"z":return"this.getDayOfYear() + ";case"W":return"String.leftPad(this.getWeekOfYear(), 2, '0') + ";case"F":return"Date.monthNames[this.getMonth()] + ";case"m":return"String.leftPad(this.getMonth() + 1, 2, '0') + ";case"M":return"Date.getShortMonthName(this.getMonth()) + ";case"n":return"(this.getMonth() + 1) + ";case"t":return"this.getDaysInMonth() + ";case"L":return"(this.isLeapYear() ? 1 : 0) + ";case"o":return"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0))) + ";case"Y":return"this.getFullYear() + ";case"y":return"('' + this.getFullYear()).substring(2, 4) + ";case"a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case"A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case"g":return"((this.getHours() % 12) ? this.getHours() % 12 : 12) + ";case"G":return"this.getHours() + ";case"h":return"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0') + ";case"H":return"String.leftPad(this.getHours(), 2, '0') + ";case"i":return"String.leftPad(this.getMinutes(), 2, '0') + ";case"s":return"String.leftPad(this.getSeconds(), 2, '0') + ";case"u":return"String.leftPad(this.getMilliseconds(), 3, '0') + ";case"O":return"this.getGMTOffset() + ";case"P":return"this.getGMTOffset(true) + ";case"T":return"this.getTimezone() + ";case"Z":return"(this.getTimezoneOffset() * -60) + ";case"c":for(var F=Date.getFormatCode,G="Y-m-dTH:i:sP",C="",B=0,A=G.length;B<A;++B){var E=G.charAt(B);C+=E=="T"?"'T' + ":F(E)}return C;case"U":return"Math.round(this.getTime() / 1000) + ";default:return"'"+String.escape(D)+"' + "}};Date.parseDate=function(A,C){if(Date.parseFunctions[C]==null){Date.createParser(C)}var B=Date.parseFunctions[C];return Date[B](A)};Date.createParser=function(format){var funcName="parse"+Date.parseFunctions.count++;var regexNum=Date.parseRegexes.length;var currentGroup=1;Date.parseFunctions[format]=funcName;var code="Date."+funcName+" = function(input){\n"+"var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, ms = -1, o, z, u, v;\n"+"input = String(input);var d = new Date();\n"+"y = d.getFullYear();\n"+"m = d.getMonth();\n"+"d = d.getDate();\n"+"var results = input.match(Date.parseRegexes["+regexNum+"]);\n"+"if (results && results.length > 0) {";var regex="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true}else{if(special){special=false;regex+=String.escape(ch)}else{var obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c}}}}code+="if (u)\n"+"{v = new Date(u * 1000);}"+"else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0)\n"+"{v = new Date(y, m, d, h, i, s, ms);}\n"+"else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"+"{v = new Date(y, m, d, h, i, s);}\n"+"else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"+"{v = new Date(y, m, d, h, i);}\n"+"else if (y >= 0 && m >= 0 && d > 0 && h >= 0)\n"+"{v = new Date(y, m, d, h);}\n"+"else if (y >= 0 && m >= 0 && d > 0)\n"+"{v = new Date(y, m, d);}\n"+"else if (y >= 0 && m >= 0)\n"+"{v = new Date(y, m);}\n"+"else if (y >= 0)\n"+"{v = new Date(y);}\n"+"}return (v && (z || o))?\n"+" (z ? v.add(Date.SECOND, (v.getTimezoneOffset() * 60) + (z*1)) :\n"+" v.add(Date.HOUR, (v.getGMTOffset() / 100) + (o / -100))) : v\n"+";}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$","i");eval(code)};Date.formatCodeToRegex=function(G,F){switch(G){case"d":return{g:1,c:"d = parseInt(results["+F+"], 10);\n",s:"(\\d{2})"};case"D":for(var C=[],E=0;E<7;C.push(Date.getShortDayName(E)),++E){}return{g:0,c:null,s:"(?:"+C.join("|")+")"};case"j":return{g:1,c:"d = parseInt(results["+F+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"N":return{g:0,c:null,s:"[1-7]"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"[0-6]"};case"z":return{g:0,c:null,s:"(?:\\d{1,3}"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.getMonthNumber(results["+F+"]), 10);\n",s:"("+Date.monthNames.join("|")+")"};case"m":return{g:1,c:"m = parseInt(results["+F+"], 10) - 1;\n",s:"(\\d{2})"};case"M":for(var C=[],E=0;E<12;C.push(Date.getShortMonthName(E)),++E){}return{g:1,c:"m = parseInt(Date.getMonthNumber(results["+F+"]), 10);\n",s:"("+C.join("|")+")"};case"n":return{g:1,c:"m = parseInt(results["+F+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"(?:\\d{2})"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"o":case"Y":return{g:1,c:"y = parseInt(results["+F+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+F+"], 10);\n"+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+F+"] == 'am') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+F+"] == 'AM') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":return{g:1,c:"h = parseInt(results["+F+"], 10);\n",s:"(\\d{1,2})"};case"h":case"H":return{g:1,c:"h = parseInt(results["+F+"], 10);\n",s:"(\\d{2})"};case"i":return{g:1,c:"i = parseInt(results["+F+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+F+"], 10);\n",s:"(\\d{2})"};case"u":return{g:1,c:"ms = parseInt(results["+F+"], 10);\n",s:"(\\d{3})"};case"O":return{g:1,c:["o = results[",F,"];\n","var sn = o.substring(0,1);\n","var hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60);\n","var mn = o.substring(3,5) % 60;\n","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))?\n"," (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join(""),s:"([+-]\\d{4})"};case"P":return{g:1,c:["o = results[",F,"];\n","var sn = o.substring(0,1);\n","var hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60);\n","var mn = o.substring(4,6) % 60;\n","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))?\n"," (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join(""),s:"([+-]\\d{2}:\\d{2})"};case"T":return{g:0,c:null,s:"[A-Z]{1,4}"};case"Z":return{g:1,c:"z = results["+F+"] * 1;\n"+"z = (-43200 <= z && z <= 50400)? z : null;\n",s:"([+-]?\\d{1,5})"};case"c":var H=Date.formatCodeToRegex,D=[];var A=[H("Y",1),H("m",2),H("d",3),H("h",4),H("i",5),H("s",6),H("P",7)];for(var E=0,B=A.length;E<B;++E){D.push(A[E].c)}return{g:1,c:D.join(""),s:A[0].s+"-"+A[1].s+"-"+A[2].s+"T"+A[3].s+":"+A[4].s+":"+A[5].s+A[6].s};case"U":return{g:1,c:"u = parseInt(results["+F+"], 10);\n",s:"(-?\\d+)"};default:return{g:0,c:null,s:Ext.escapeRe(G)}}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/,"$1$2").replace(/[^A-Z]/g,"")};Date.prototype.getGMTOffset=function(A){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.abs(Math.floor(this.getTimezoneOffset()/60)),2,"0")+(A?":":"")+String.leftPad(this.getTimezoneOffset()%60,2,"0")};Date.prototype.getDayOfYear=function(){var A=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var B=0;B<this.getMonth();++B){A+=Date.daysInMonth[B]}return A+this.getDate()-1};Date.prototype.getWeekOfYear=function(){var B=86400000;var C=7*B;var D=Date.UTC(this.getFullYear(),this.getMonth(),this.getDate()+3)/B;var A=Math.floor(D/7);var E=new Date(A*C).getUTCFullYear();return A-Math.floor(Date.UTC(E,0,7)/C)+1};Date.prototype.isLeapYear=function(){var A=this.getFullYear();return !!((A&3)==0&&(A%100||(A%400==0&&A)))};Date.prototype.getFirstDayOfMonth=function(){var A=(this.getDay()-(this.getDate()-1))%7;return(A<0)?(A+7):A};Date.prototype.getLastDayOfMonth=function(){var A=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return(A<0)?(A+7):A};Date.prototype.getFirstDateOfMonth=function(){return new Date(this.getFullYear(),this.getMonth(),1)};Date.prototype.getLastDateOfMonth=function(){return new Date(this.getFullYear(),this.getMonth(),this.getDaysInMonth())};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()]};Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}};Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.getShortMonthName=function(A){return Date.monthNames[A].substring(0,3)};Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.getShortDayName=function(A){return Date.dayNames[A].substring(0,3)};Date.y2kYear=50;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(A){return Date.monthNumbers[A.substring(0,1).toUpperCase()+A.substring(1,3).toLowerCase()]};Date.prototype.clone=function(){return new Date(this.getTime())};Date.prototype.clearTime=function(A){if(A){return this.clone().clearTime()}this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this};if(Ext.isSafari){Date.brokenSetMonth=Date.prototype.setMonth;Date.prototype.setMonth=function(A){if(A<=-1){var D=Math.ceil(-A);var C=Math.ceil(D/12);var B=(D%12)?12-D%12:0;this.setFullYear(this.getFullYear()-C);return Date.brokenSetMonth.call(this,B)}else{return Date.brokenSetMonth.apply(this,arguments)}}}Date.MILLI="ms";Date.SECOND="s";Date.MINUTE="mi";Date.HOUR="h";Date.DAY="d";Date.MONTH="mo";Date.YEAR="y";Date.prototype.add=function(B,C){var D=this.clone();if(!B||C===0){return D}switch(B.toLowerCase()){case Date.MILLI:D.setMilliseconds(this.getMilliseconds()+C);break;case Date.SECOND:D.setSeconds(this.getSeconds()+C);break;case Date.MINUTE:D.setMinutes(this.getMinutes()+C);break;case Date.HOUR:D.setHours(this.getHours()+C);break;case Date.DAY:D.setDate(this.getDate()+C);break;case Date.MONTH:var A=this.getDate();if(A>28){A=Math.min(A,this.getFirstDateOfMonth().add("mo",C).getLastDateOfMonth().getDate())}D.setDate(A);D.setMonth(this.getMonth()+C);break;case Date.YEAR:D.setFullYear(this.getFullYear()+C);break}return D};Date.prototype.between=function(C,A){var B=this.getTime();return C.getTime()<=B&&B<=A.getTime()}; |
Ext.util.DelayedTask=function(E,D,A){var G=null,F,B;var C=function(){var H=new Date().getTime();if(H-B>=F){clearInterval(G);G=null;E.apply(D,A||[])}};this.delay=function(I,K,J,H){if(G&&I!=F){this.cancel()}F=I;B=new Date().getTime();E=K||E;D=J||D;A=H||A;if(!G){G=setInterval(C,F)}};this.cancel=function(){if(G){clearInterval(G);G=null}}}; |
Ext.util.TaskRunner=function(E){E=E||10;var F=[],A=[];var B=0;var G=false;var D=function(){G=false;clearInterval(B);B=0};var H=function(){if(!G){G=true;B=setInterval(I,E)}};var C=function(J){A.push(J);if(J.onStop){J.onStop.apply(J.scope||J)}};var I=function(){if(A.length>0){for(var O=0,K=A.length;O<K;O++){F.remove(A[O])}A=[];if(F.length<1){D();return }}var M=new Date().getTime();for(var O=0,K=F.length;O<K;++O){var N=F[O];var J=M-N.taskRunTime;if(N.interval<=J){var L=N.run.apply(N.scope||N,N.args||[++N.taskRunCount]);N.taskRunTime=M;if(L===false||N.taskRunCount===N.repeat){C(N);return }}if(N.duration&&N.duration<=(M-N.taskStartTime)){C(N)}}};this.start=function(J){F.push(J);J.taskStartTime=new Date().getTime();J.taskRunTime=0;J.taskRunCount=0;H();return J};this.stop=function(J){C(J);return J};this.stopAll=function(){D();for(var K=0,J=F.length;K<J;K++){if(F[K].onStop){F[K].onStop()}}F=[];A=[]}};Ext.TaskMgr=new Ext.util.TaskRunner(); |
Ext.util.MixedCollection=function(B,A){this.items=[];this.map={};this.keys=[];this.length=0;this.addEvents("clear","add","replace","remove","sort");this.allowFunctions=B===true;if(A){this.getKey=A}Ext.util.MixedCollection.superclass.constructor.call(this)};Ext.extend(Ext.util.MixedCollection,Ext.util.Observable,{allowFunctions:false,add:function(B,C){if(arguments.length==1){C=arguments[0];B=this.getKey(C)}if(typeof B=="undefined"||B===null){this.length++;this.items.push(C);this.keys.push(null)}else{var A=this.map[B];if(A){return this.replace(B,C)}this.length++;this.items.push(C);this.map[B]=C;this.keys.push(B)}this.fireEvent("add",this.length-1,C,B);return C},getKey:function(A){return A.id},replace:function(C,D){if(arguments.length==1){D=arguments[0];C=this.getKey(D)}var A=this.item(C);if(typeof C=="undefined"||C===null||typeof A=="undefined"){return this.add(C,D)}var B=this.indexOfKey(C);this.items[B]=D;this.map[C]=D;this.fireEvent("replace",C,A,D);return D},addAll:function(E){if(arguments.length>1||Ext.isArray(E)){var B=arguments.length>1?arguments:E;for(var D=0,A=B.length;D<A;D++){this.add(B[D])}}else{for(var C in E){if(this.allowFunctions||typeof E[C]!="function"){this.add(C,E[C])}}}},each:function(E,D){var B=[].concat(this.items);for(var C=0,A=B.length;C<A;C++){if(E.call(D||B[C],B[C],C,A)===false){break}}},eachKey:function(D,C){for(var B=0,A=this.keys.length;B<A;B++){D.call(C||window,this.keys[B],this.items[B],B,A)}},find:function(D,C){for(var B=0,A=this.items.length;B<A;B++){if(D.call(C||window,this.items[B],this.keys[B])){return this.items[B]}}return null},insert:function(A,B,C){if(arguments.length==2){C=arguments[1];B=this.getKey(C)}if(A>=this.length){return this.add(B,C)}this.length++;this.items.splice(A,0,C);if(typeof B!="undefined"&&B!=null){this.map[B]=C}this.keys.splice(A,0,B);this.fireEvent("add",A,C,B);return C},remove:function(A){return this.removeAt(this.indexOf(A))},removeAt:function(A){if(A<this.length&&A>=0){this.length--;var C=this.items[A];this.items.splice(A,1);var B=this.keys[A];if(typeof B!="undefined"){delete this.map[B]}this.keys.splice(A,1);this.fireEvent("remove",C,B);return C}return false},removeKey:function(A){return this.removeAt(this.indexOfKey(A))},getCount:function(){return this.length},indexOf:function(A){return this.items.indexOf(A)},indexOfKey:function(A){return this.keys.indexOf(A)},item:function(A){var B=typeof this.map[A]!="undefined"?this.map[A]:this.items[A];return typeof B!="function"||this.allowFunctions?B:null},itemAt:function(A){return this.items[A]},key:function(A){return this.map[A]},contains:function(A){return this.indexOf(A)!=-1},containsKey:function(A){return typeof this.map[A]!="undefined"},clear:function(){this.length=0;this.items=[];this.keys=[];this.map={};this.fireEvent("clear")},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},_sort:function(I,A,H){var C=String(A).toUpperCase()=="DESC"?-1:1;H=H||function(K,J){return K-J};var G=[],B=this.keys,F=this.items;for(var D=0,E=F.length;D<E;D++){G[G.length]={key:B[D],value:F[D],index:D}}G.sort(function(K,J){var L=H(K[I],J[I])*C;if(L==0){L=(K.index<J.index?-1:1)}return L});for(var D=0,E=G.length;D<E;D++){F[D]=G[D].value;B[D]=G[D].key}this.fireEvent("sort",this)},sort:function(A,B){this._sort("value",A,B)},keySort:function(A,B){this._sort("key",A,B||function(D,C){return String(D).toUpperCase()-String(C).toUpperCase()})},getRange:function(E,A){var B=this.items;if(B.length<1){return[]}E=E||0;A=Math.min(typeof A=="undefined"?this.length-1:A,this.length-1);var D=[];if(E<=A){for(var C=E;C<=A;C++){D[D.length]=B[C]}}else{for(var C=E;C>=A;C--){D[D.length]=B[C]}}return D},filter:function(C,B,D,A){if(Ext.isEmpty(B,false)){return this.clone()}B=this.createValueMatcher(B,D,A);return this.filterBy(function(E){return E&&B.test(E[C])})},filterBy:function(F,E){var G=new Ext.util.MixedCollection();G.getKey=this.getKey;var B=this.keys,D=this.items;for(var C=0,A=D.length;C<A;C++){if(F.call(E||this,D[C],B[C])){G.add(B[C],D[C])}}return G},findIndex:function(C,B,E,D,A){if(Ext.isEmpty(B,false)){return -1}B=this.createValueMatcher(B,D,A);return this.findIndexBy(function(F){return F&&B.test(F[C])},null,E)},findIndexBy:function(F,E,G){var B=this.keys,D=this.items;for(var C=(G||0),A=D.length;C<A;C++){if(F.call(E||this,D[C],B[C])){return C}}if(typeof G=="number"&&G>0){for(var C=0;C<G;C++){if(F.call(E||this,D[C],B[C])){return C}}}return -1},createValueMatcher:function(B,C,A){if(!B.exec){B=String(B);B=new RegExp((C===true?"":"^")+Ext.escapeRe(B),A?"":"i")}return B},clone:function(){var E=new Ext.util.MixedCollection();var B=this.keys,D=this.items;for(var C=0,A=D.length;C<A;C++){E.add(B[C],D[C])}E.getKey=this.getKey;return E}});Ext.util.MixedCollection.prototype.get=Ext.util.MixedCollection.prototype.item; |
Ext.util.JSON=new (function(){var useHasOwn={}.hasOwnProperty?true:false;var pad=function(n){return n<10?"0"+n:n};var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\"":"\\\"","\\":"\\\\"};var encodeString=function(s){if(/["\\\x00-\x1f]/.test(s)){return"\""+s.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c}c=b.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})+"\""}return"\""+s+"\""};var encodeArray=function(o){var a=["["],b,i,l=o.length,v;for(i=0;i<l;i+=1){v=o[i];switch(typeof v){case"undefined":case"function":case"unknown":break;default:if(b){a.push(",")}a.push(v===null?"null":Ext.util.JSON.encode(v));b=true}}a.push("]");return a.join("")};var encodeDate=function(o){return"\""+o.getFullYear()+"-"+pad(o.getMonth()+1)+"-"+pad(o.getDate())+"T"+pad(o.getHours())+":"+pad(o.getMinutes())+":"+pad(o.getSeconds())+"\""};this.encode=function(o){if(typeof o=="undefined"||o===null){return"null"}else{if(Ext.isArray(o)){return encodeArray(o)}else{if(Ext.isDate(o)){return encodeDate(o)}else{if(typeof o=="string"){return encodeString(o)}else{if(typeof o=="number"){return isFinite(o)?String(o):"null"}else{if(typeof o=="boolean"){return String(o)}else{var a=["{"],b,i,v;for(i in o){if(!useHasOwn||o.hasOwnProperty(i)){v=o[i];switch(typeof v){case"undefined":case"function":case"unknown":break;default:if(b){a.push(",")}a.push(this.encode(i),":",v===null?"null":this.encode(v));b=true}}}a.push("}");return a.join("")}}}}}}};this.decode=function(json){return eval("("+json+")")}})();Ext.encode=Ext.util.JSON.encode;Ext.decode=Ext.util.JSON.decode; |
Ext.util.Format=function(){var trimRe=/^\s+|\s+$/g;return{ellipsis:function(value,len){if(value&&value.length>len){return value.substr(0,len-3)+"..."}return value},undef:function(value){return value!==undefined?value:""},defaultValue:function(value,defaultValue){return value!==undefined&&value!==""?value:defaultValue},htmlEncode:function(value){return !value?value:String(value).replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,""")},htmlDecode:function(value){return !value?value:String(value).replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,"\"")},trim:function(value){return String(value).replace(trimRe,"")},substr:function(value,start,length){return String(value).substr(start,length)},lowercase:function(value){return String(value).toLowerCase()},uppercase:function(value){return String(value).toUpperCase()},capitalize:function(value){return !value?value:value.charAt(0).toUpperCase()+value.substr(1).toLowerCase()},call:function(value,fn){if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);args.unshift(value);return eval(fn).apply(window,args)}else{return eval(fn).call(window,value)}},usMoney:function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);v=String(v);var ps=v.split(".");var whole=ps[0];var sub=ps[1]?"."+ps[1]:".00";var r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,"$1"+","+"$2")}v=whole+sub;if(v.charAt(0)=="-"){return"-$"+v.substr(1)}return"$"+v},date:function(v,format){if(!v){return""}if(!Ext.isDate(v)){v=new Date(Date.parse(v))}return v.dateFormat(format||"m/d/Y")},dateRenderer:function(format){return function(v){return Ext.util.Format.date(v,format)}},stripTagsRE:/<\/?[^>]+>/gi,stripTags:function(v){return !v?v:String(v).replace(this.stripTagsRE,"")},stripScriptsRe:/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,stripScripts:function(v){return !v?v:String(v).replace(this.stripScriptsRe,"")},fileSize:function(size){if(size<1024){return size+" bytes"}else{if(size<1048576){return(Math.round(((size*10)/1024))/10)+" KB"}else{return(Math.round(((size*10)/1048576))/10)+" MB"}}},math:function(){var fns={};return function(v,a){if(!fns[a]){fns[a]=new Function("v","return v "+a+";")}return fns[a](v)}}()}}(); |
Ext.XTemplate=function(){Ext.XTemplate.superclass.constructor.apply(this,arguments);var P=this.html;P=["<tpl>",P,"</tpl>"].join("");var O=/<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/;var N=/^<tpl\b[^>]*?for="(.*?)"/;var L=/^<tpl\b[^>]*?if="(.*?)"/;var J=/^<tpl\b[^>]*?exec="(.*?)"/;var C,B=0;var G=[];while(C=P.match(O)){var M=C[0].match(N);var K=C[0].match(L);var I=C[0].match(J);var E=null,H=null,D=null;var A=M&&M[1]?M[1]:"";if(K){E=K&&K[1]?K[1]:null;if(E){H=new Function("values","parent","xindex","xcount","with(values){ return "+(Ext.util.Format.htmlDecode(E))+"; }")}}if(I){E=I&&I[1]?I[1]:null;if(E){D=new Function("values","parent","xindex","xcount","with(values){ "+(Ext.util.Format.htmlDecode(E))+"; }")}}if(A){switch(A){case".":A=new Function("values","parent","with(values){ return values; }");break;case"..":A=new Function("values","parent","with(values){ return parent; }");break;default:A=new Function("values","parent","with(values){ return "+A+"; }")}}G.push({id:B,target:A,exec:D,test:H,body:C[1]||""});P=P.replace(C[0],"{xtpl"+B+"}");++B}for(var F=G.length-1;F>=0;--F){this.compileTpl(G[F])}this.master=G[G.length-1];this.tpls=G};Ext.extend(Ext.XTemplate,Ext.Template,{re:/\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g,codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g,applySubTemplate:function(A,H,G,D,C){var J=this.tpls[A];if(J.test&&!J.test.call(this,H,G,D,C)){return""}if(J.exec&&J.exec.call(this,H,G,D,C)){return""}var I=J.target?J.target.call(this,H,G):H;G=J.target?H:G;if(J.target&&Ext.isArray(I)){var B=[];for(var E=0,F=I.length;E<F;E++){B[B.length]=J.compiled.call(this,I[E],G,E+1,F)}return B.join("")}return J.compiled.call(this,I,G,D,C)},compileTpl:function(tpl){var fm=Ext.util.Format;var useF=this.disableFormats!==true;var sep=Ext.isGecko?"+":",";var fn=function(m,name,format,args,math){if(name.substr(0,4)=="xtpl"){return"'"+sep+"this.applySubTemplate("+name.substr(4)+", values, parent, xindex, xcount)"+sep+"'"}var v;if(name==="."){v="values"}else{if(name==="#"){v="xindex"}else{if(name.indexOf(".")!=-1){v=name}else{v="values['"+name+"']"}}}if(math){v="("+v+math+")"}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="("+v+" === undefined ? '' : "}return"'"+sep+format+v+args+")"+sep+"'"};var codeFn=function(m,code){return"'"+sep+"("+code+")"+sep+"'"};var body;if(Ext.isGecko){body="tpl.compiled = function(values, parent, xindex, xcount){ return '"+tpl.body.replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn).replace(this.codeRe,codeFn)+"';};"}else{body=["tpl.compiled = function(values, parent, xindex, xcount){ return ['"];body.push(tpl.body.replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn).replace(this.codeRe,codeFn));body.push("'].join('');};");body=body.join("")}eval(body);return this},apply:function(A){return this.master.compiled.call(this,A,{},1,1)},applyTemplate:function(A){return this.master.compiled.call(this,A,{},1,1)},compile:function(){return this}});Ext.XTemplate.from=function(A){A=Ext.getDom(A);return new Ext.XTemplate(A.value||A.innerHTML)}; |
Ext.util.CSS=function(){var D=null;var C=document;var B=/(-[a-z])/gi;var A=function(E,F){return F.charAt(1).toUpperCase()};return{createStyleSheet:function(G,J){var F;var E=C.getElementsByTagName("head")[0];var I=C.createElement("style");I.setAttribute("type","text/css");if(J){I.setAttribute("id",J)}if(Ext.isIE){E.appendChild(I);F=I.styleSheet;F.cssText=G}else{try{I.appendChild(C.createTextNode(G))}catch(H){I.cssText=G}E.appendChild(I);F=I.styleSheet?I.styleSheet:(I.sheet||C.styleSheets[C.styleSheets.length-1])}this.cacheStyleSheet(F);return F},removeStyleSheet:function(F){var E=C.getElementById(F);if(E){E.parentNode.removeChild(E)}},swapStyleSheet:function(G,E){this.removeStyleSheet(G);var F=C.createElement("link");F.setAttribute("rel","stylesheet");F.setAttribute("type","text/css");F.setAttribute("id",G);F.setAttribute("href",E);C.getElementsByTagName("head")[0].appendChild(F)},refreshCache:function(){return this.getRules(true)},cacheStyleSheet:function(F){if(!D){D={}}try{var H=F.cssRules||F.rules;for(var E=H.length-1;E>=0;--E){D[H[E].selectorText]=H[E]}}catch(G){}},getRules:function(F){if(D==null||F){D={};var H=C.styleSheets;for(var G=0,E=H.length;G<E;G++){try{this.cacheStyleSheet(H[G])}catch(I){}}}return D},getRule:function(E,G){var F=this.getRules(G);if(!Ext.isArray(E)){return F[E]}for(var H=0;H<E.length;H++){if(F[E[H]]){return F[E[H]]}}return null},updateRule:function(E,H,G){if(!Ext.isArray(E)){var I=this.getRule(E);if(I){I.style[H.replace(B,A)]=G;return true}}else{for(var F=0;F<E.length;F++){if(this.updateRule(E[F],H,G)){return true}}}return false}}}(); |
Ext.util.ClickRepeater=function(B,A){this.el=Ext.get(B);this.el.unselectable();Ext.apply(this,A);this.addEvents("mousedown","click","mouseup");this.el.on("mousedown",this.handleMouseDown,this);if(this.preventDefault||this.stopDefault){this.el.on("click",function(C){if(this.preventDefault){C.preventDefault()}if(this.stopDefault){C.stopEvent()}},this)}if(this.handler){this.on("click",this.handler,this.scope||this)}Ext.util.ClickRepeater.superclass.constructor.call(this)};Ext.extend(Ext.util.ClickRepeater,Ext.util.Observable,{interval:20,delay:250,preventDefault:true,stopDefault:false,timer:0,handleMouseDown:function(){clearTimeout(this.timer);this.el.blur();if(this.pressClass){this.el.addClass(this.pressClass)}this.mousedownTime=new Date();Ext.getDoc().on("mouseup",this.handleMouseUp,this);this.el.on("mouseout",this.handleMouseOut,this);this.fireEvent("mousedown",this);this.fireEvent("click",this);if(this.accelerate){this.delay=400}this.timer=this.click.defer(this.delay||this.interval,this)},click:function(){this.fireEvent("click",this);this.timer=this.click.defer(this.accelerate?this.easeOutExpo(this.mousedownTime.getElapsed(),400,-390,12000):this.interval,this)},easeOutExpo:function(B,A,D,C){return(B==C)?A+D:D*(-Math.pow(2,-10*B/C)+1)+A},handleMouseOut:function(){clearTimeout(this.timer);if(this.pressClass){this.el.removeClass(this.pressClass)}this.el.on("mouseover",this.handleMouseReturn,this)},handleMouseReturn:function(){this.el.un("mouseover",this.handleMouseReturn);if(this.pressClass){this.el.addClass(this.pressClass)}this.click()},handleMouseUp:function(){clearTimeout(this.timer);this.el.un("mouseover",this.handleMouseReturn);this.el.un("mouseout",this.handleMouseOut);Ext.getDoc().un("mouseup",this.handleMouseUp);this.el.removeClass(this.pressClass);this.fireEvent("mouseup",this)}}); |
Ext.KeyNav=function(B,A){this.el=Ext.get(B);Ext.apply(this,A);if(!this.disabled){this.disabled=true;this.enable()}};Ext.KeyNav.prototype={disabled:false,defaultEventAction:"stopEvent",forceKeyDown:false,prepareEvent:function(C){var A=C.getKey();var B=this.keyToHandler[A];if(Ext.isSafari&&B&&A>=37&&A<=40){C.stopEvent()}},relay:function(C){var A=C.getKey();var B=this.keyToHandler[A];if(B&&this[B]){if(this.doRelay(C,this[B],B)!==true){C[this.defaultEventAction]()}}},doRelay:function(C,B,A){return B.call(this.scope||this,C)},enter:false,left:false,right:false,up:false,down:false,tab:false,esc:false,pageUp:false,pageDown:false,del:false,home:false,end:false,keyToHandler:{37:"left",39:"right",38:"up",40:"down",33:"pageUp",34:"pageDown",46:"del",36:"home",35:"end",13:"enter",27:"esc",9:"tab"},enable:function(){if(this.disabled){if(this.forceKeyDown||Ext.isIE||Ext.isAir){this.el.on("keydown",this.relay,this)}else{this.el.on("keydown",this.prepareEvent,this);this.el.on("keypress",this.relay,this)}this.disabled=false}},disable:function(){if(!this.disabled){if(this.forceKeyDown||Ext.isIE||Ext.isAir){this.el.un("keydown",this.relay)}else{this.el.un("keydown",this.prepareEvent);this.el.un("keypress",this.relay)}this.disabled=true}}}; |
Ext.KeyMap=function(C,B,A){this.el=Ext.get(C);this.eventName=A||"keydown";this.bindings=[];if(B){this.addBinding(B)}this.enable()};Ext.KeyMap.prototype={stopEvent:false,addBinding:function(D){if(Ext.isArray(D)){for(var F=0,H=D.length;F<H;F++){this.addBinding(D[F])}return }var N=D.key,C=D.shift,A=D.ctrl,G=D.alt,J=D.fn||D.handler,M=D.scope;if(typeof N=="string"){var K=[];var I=N.toUpperCase();for(var E=0,H=I.length;E<H;E++){K.push(I.charCodeAt(E))}N=K}var B=Ext.isArray(N);var L=function(R){if((!C||R.shiftKey)&&(!A||R.ctrlKey)&&(!G||R.altKey)){var P=R.getKey();if(B){for(var Q=0,O=N.length;Q<O;Q++){if(N[Q]==P){if(this.stopEvent){R.stopEvent()}J.call(M||window,P,R);return }}}else{if(P==N){if(this.stopEvent){R.stopEvent()}J.call(M||window,P,R)}}}};this.bindings.push(L)},on:function(B,D,C){var G,A,E,F;if(typeof B=="object"&&!Ext.isArray(B)){G=B.key;A=B.shift;E=B.ctrl;F=B.alt}else{G=B}this.addBinding({key:G,shift:A,ctrl:E,alt:F,fn:D,scope:C})},handleKeyDown:function(D){if(this.enabled){var B=this.bindings;for(var C=0,A=B.length;C<A;C++){B[C].call(this,D)}}},isEnabled:function(){return this.enabled},enable:function(){if(!this.enabled){this.el.on(this.eventName,this.handleKeyDown,this);this.enabled=true}},disable:function(){if(this.enabled){this.el.removeListener(this.eventName,this.handleKeyDown,this);this.enabled=false}}}; |
Ext.util.TextMetrics=function(){var A;return{measure:function(B,C,D){if(!A){A=Ext.util.TextMetrics.Instance(B,D)}A.bind(B);A.setFixedWidth(D||"auto");return A.getSize(C)},createInstance:function(B,C){return Ext.util.TextMetrics.Instance(B,C)}}}();Ext.util.TextMetrics.Instance=function(B,D){var C=new Ext.Element(document.createElement("div"));document.body.appendChild(C.dom);C.position("absolute");C.setLeftTop(-1000,-1000);C.hide();if(D){C.setWidth(D)}var A={getSize:function(F){C.update(F);var E=C.getSize();C.update("");return E},bind:function(E){C.setStyle(Ext.fly(E).getStyles("font-size","font-style","font-weight","font-family","line-height"))},setFixedWidth:function(E){C.setWidth(E)},getWidth:function(E){C.dom.style.width="auto";return this.getSize(E).width},getHeight:function(E){return this.getSize(E).height}};A.bind(B);return A};Ext.Element.measureText=Ext.util.TextMetrics.measure; |
(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=!B.hasClass(F,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,initalized: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)}}); |
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]}}}); |
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;H.id=setInterval(D,Ext.dd.ScrollManager.frequency)};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()}}}}}(); |
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}}}(); |
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)}},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}}; |
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)}}); |
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}}); |
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()}}); |
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)}}); |
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}}; |
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)}}; |
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}}); |
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}}); |
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)}}); |
Ext.data.JsonStore=function(A){Ext.data.JsonStore.superclass.constructor.call(this,Ext.apply(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); |
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"}; |
Ext.data.DataReader=function(A,B){this.meta=A;this.recordType=Ext.isArray(B)?Ext.data.Record.create(B):B};Ext.data.DataReader.prototype={}; |
Ext.data.DataProxy=function(){this.addEvents("beforeload","load","loadexception");Ext.data.DataProxy.superclass.constructor.call(this)};Ext.extend(Ext.data.DataProxy,Ext.util.Observable); |
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){}}); |
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){}}); |
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)}}); |
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"}}if(o.metaData){delete this.ef;this.meta=o.metaData;this.recordType=Ext.data.Record.create(o.metaData.fields);this.onMetaChange(this.meta,this.recordType,o)}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;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}}}); |
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}}}); |
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}}}); |
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},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:"")+"]"}}); |
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}}); |
Ext.ComponentMgr=function(){var B=new Ext.util.MixedCollection();var A={};return{register:function(C){B.add(C)},unregister:function(C){B.remove(C)},get:function(C){return B.get(C)},onAvailable:function(E,D,C){B.on("add",function(F,G){if(G.id==E){D.call(C||G,G);B.un("add",D,C)}})},all:B,registerType:function(D,C){A[D]=C;C.xtype=D},create:function(C,D){return new A[C.xtype||D](C)}}}();Ext.reg=Ext.ComponentMgr.registerType; |
Ext.Component=function(B){B=B||{};if(B.initialConfig){if(B.isAction){this.baseAction=B}B=B.initialConfig}else{if(B.tagName||B.dom||typeof B=="string"){B={applyTo:B,id:B.id||B}}}this.initialConfig=B;Ext.apply(this,B);this.addEvents("disable","enable","beforeshow","show","beforehide","hide","beforerender","render","beforedestroy","destroy","beforestaterestore","staterestore","beforestatesave","statesave");this.getId();Ext.ComponentMgr.register(this);Ext.Component.superclass.constructor.call(this);if(this.baseAction){this.baseAction.addComponent(this)}this.initComponent();if(this.plugins){if(Ext.isArray(this.plugins)){for(var C=0,A=this.plugins.length;C<A;C++){this.plugins[C].init(this)}}else{this.plugins.init(this)}}if(this.stateful!==false){this.initState(B)}if(this.applyTo){this.applyToMarkup(this.applyTo);delete this.applyTo}else{if(this.renderTo){this.render(this.renderTo);delete this.renderTo}}};Ext.Component.AUTO_ID=1000;Ext.extend(Ext.Component,Ext.util.Observable,{disabledClass:"x-item-disabled",allowDomMove:true,autoShow:false,hideMode:"display",hideParent:false,hidden:false,disabled:false,rendered:false,ctype:"Ext.Component",actionMode:"el",getActionEl:function(){return this[this.actionMode]},initComponent:Ext.emptyFn,render:function(B,A){if(!this.rendered&&this.fireEvent("beforerender",this)!==false){if(!B&&this.el){this.el=Ext.get(this.el);B=this.el.dom.parentNode;this.allowDomMove=false}this.container=Ext.get(B);if(this.ctCls){this.container.addClass(this.ctCls)}this.rendered=true;if(A!==undefined){if(typeof A=="number"){A=this.container.dom.childNodes[A]}else{A=Ext.getDom(A)}}this.onRender(this.container,A||null);if(this.autoShow){this.el.removeClass(["x-hidden","x-hide-"+this.hideMode])}if(this.cls){this.el.addClass(this.cls);delete this.cls}if(this.style){this.el.applyStyles(this.style);delete this.style}this.fireEvent("render",this);this.afterRender(this.container);if(this.hidden){this.hide()}if(this.disabled){this.disable()}this.initStateEvents()}return this},initState:function(A){if(Ext.state.Manager){var B=Ext.state.Manager.get(this.stateId||this.id);if(B){if(this.fireEvent("beforestaterestore",this,B)!==false){this.applyState(B);this.fireEvent("staterestore",this,B)}}}},initStateEvents:function(){if(this.stateEvents){for(var A=0,B;B=this.stateEvents[A];A++){this.on(B,this.saveState,this,{delay:100})}}},applyState:function(B,A){if(B){Ext.apply(this,B)}},getState:function(){return null},saveState:function(){if(Ext.state.Manager){var A=this.getState();if(this.fireEvent("beforestatesave",this,A)!==false){Ext.state.Manager.set(this.stateId||this.id,A);this.fireEvent("statesave",this,A)}}},applyToMarkup:function(A){this.allowDomMove=false;this.el=Ext.get(A);this.render(this.el.dom.parentNode)},addClass:function(A){if(this.el){this.el.addClass(A)}else{this.cls=this.cls?this.cls+" "+A:A}},removeClass:function(A){if(this.el){this.el.removeClass(A)}else{if(this.cls){this.cls=this.cls.split(" ").remove(A).join(" ")}}},onRender:function(B,A){if(this.autoEl){if(typeof this.autoEl=="string"){this.el=document.createElement(this.autoEl)}else{var C=document.createElement("div");Ext.DomHelper.overwrite(C,this.autoEl);this.el=C.firstChild}if(!this.el.id){this.el.id=this.getId()}}if(this.el){this.el=Ext.get(this.el);if(this.allowDomMove!==false){B.dom.insertBefore(this.el.dom,A)}}},getAutoCreate:function(){var A=typeof this.autoCreate=="object"?this.autoCreate:Ext.apply({},this.defaultAutoCreate);if(this.id&&!A.id){A.id=this.id}return A},afterRender:Ext.emptyFn,destroy:function(){if(this.fireEvent("beforedestroy",this)!==false){this.beforeDestroy();if(this.rendered){this.el.removeAllListeners();this.el.remove();if(this.actionMode=="container"){this.container.remove()}}this.onDestroy();Ext.ComponentMgr.unregister(this);this.fireEvent("destroy",this);this.purgeListeners()}},beforeDestroy:Ext.emptyFn,onDestroy:Ext.emptyFn,getEl:function(){return this.el},getId:function(){return this.id||(this.id="ext-comp-"+(++Ext.Component.AUTO_ID))},getItemId:function(){return this.itemId||this.getId()},focus:function(B,A){if(A){this.focus.defer(typeof A=="number"?A:10,this,[B,false]);return }if(this.rendered){this.el.focus();if(B===true){this.el.dom.select()}}return this},blur:function(){if(this.rendered){this.el.blur()}return this},disable:function(){if(this.rendered){this.onDisable()}this.disabled=true;this.fireEvent("disable",this);return this},onDisable:function(){this.getActionEl().addClass(this.disabledClass);this.el.dom.disabled=true},enable:function(){if(this.rendered){this.onEnable()}this.disabled=false;this.fireEvent("enable",this);return this},onEnable:function(){this.getActionEl().removeClass(this.disabledClass);this.el.dom.disabled=false},setDisabled:function(A){this[A?"disable":"enable"]()},show:function(){if(this.fireEvent("beforeshow",this)!==false){this.hidden=false;if(this.autoRender){this.render(typeof this.autoRender=="boolean"?Ext.getBody():this.autoRender)}if(this.rendered){this.onShow()}this.fireEvent("show",this)}return this},onShow:function(){if(this.hideParent){this.container.removeClass("x-hide-"+this.hideMode)}else{this.getActionEl().removeClass("x-hide-"+this.hideMode)}},hide:function(){if(this.fireEvent("beforehide",this)!==false){this.hidden=true;if(this.rendered){this.onHide()}this.fireEvent("hide",this)}return this},onHide:function(){if(this.hideParent){this.container.addClass("x-hide-"+this.hideMode)}else{this.getActionEl().addClass("x-hide-"+this.hideMode)}},setVisible:function(A){if(A){this.show()}else{this.hide()}return this},isVisible:function(){return this.rendered&&this.getActionEl().isVisible()},cloneConfig:function(B){B=B||{};var C=B.id||Ext.id();var A=Ext.applyIf(B,this.initialConfig);A.id=C;return new this.constructor(A)},getXType:function(){return this.constructor.xtype},isXType:function(B,A){return !A?("/"+this.getXTypes()+"/").indexOf("/"+B+"/")!=-1:this.constructor.xtype==B},getXTypes:function(){var A=this.constructor;if(!A.xtypes){var C=[],B=this;while(B&&B.constructor.xtype){C.unshift(B.constructor.xtype);B=B.constructor.superclass}A.xtypeChain=C;A.xtypes=C.join("/")}return A.xtypes},findParentBy:function(A){for(var B=this.ownerCt;(B!=null)&&!A(B,this);B=B.ownerCt){}return B||null},findParentByType:function(A){return typeof A=="function"?this.findParentBy(function(B){return B.constructor===A}):this.findParentBy(function(B){return B.constructor.xtype===A})}});Ext.reg("component",Ext.Component); |
Ext.Action=function(A){this.initialConfig=A;this.items=[]};Ext.Action.prototype={isAction:true,setText:function(A){this.initialConfig.text=A;this.callEach("setText",[A])},getText:function(){return this.initialConfig.text},setIconClass:function(A){this.initialConfig.iconCls=A;this.callEach("setIconClass",[A])},getIconClass:function(){return this.initialConfig.iconCls},setDisabled:function(A){this.initialConfig.disabled=A;this.callEach("setDisabled",[A])},enable:function(){this.setDisabled(false)},disable:function(){this.setDisabled(true)},isDisabled:function(){return this.initialConfig.disabled},setHidden:function(A){this.initialConfig.hidden=A;this.callEach("setVisible",[!A])},show:function(){this.setHidden(false)},hide:function(){this.setHidden(true)},isHidden:function(){return this.initialConfig.hidden},setHandler:function(B,A){this.initialConfig.handler=B;this.initialConfig.scope=A;this.callEach("setHandler",[B,A])},each:function(B,A){Ext.each(this.items,B,A)},callEach:function(E,B){var D=this.items;for(var C=0,A=D.length;C<A;C++){D[C][E].apply(D[C],B)}},addComponent:function(A){this.items.push(A);A.on("destroy",this.removeComponent,this)},removeComponent:function(A){this.items.remove(A)},execute:function(){this.initialConfig.handler.apply(this.initialConfig.scope||window,arguments)}}; |
(function(){Ext.Layer=function(D,C){D=D||{};var E=Ext.DomHelper;var G=D.parentEl,F=G?Ext.getDom(G):document.body;if(C){this.dom=Ext.getDom(C)}if(!this.dom){var H=D.dh||{tag:"div",cls:"x-layer"};this.dom=E.append(F,H)}if(D.cls){this.addClass(D.cls)}this.constrain=D.constrain!==false;this.visibilityMode=Ext.Element.VISIBILITY;if(D.id){this.id=this.dom.id=D.id}else{this.id=Ext.id(this.dom)}this.zindex=D.zindex||this.getZIndex();this.position("absolute",this.zindex);if(D.shadow){this.shadowOffset=D.shadowOffset||4;this.shadow=new Ext.Shadow({offset:this.shadowOffset,mode:D.shadow})}else{this.shadowOffset=0}this.useShim=D.shim!==false&&Ext.useShims;this.useDisplay=D.useDisplay;this.hide()};var A=Ext.Element.prototype;var B=[];Ext.extend(Ext.Layer,Ext.Element,{getZIndex:function(){return this.zindex||parseInt(this.getStyle("z-index"),10)||11000},getShim:function(){if(!this.useShim){return null}if(this.shim){return this.shim}var D=B.shift();if(!D){D=this.createShim();D.enableDisplayMode("block");D.dom.style.display="none";D.dom.style.visibility="visible"}var C=this.dom.parentNode;if(D.dom.parentNode!=C){C.insertBefore(D.dom,this.dom)}D.setStyle("z-index",this.getZIndex()-2);this.shim=D;return D},hideShim:function(){if(this.shim){this.shim.setDisplayed(false);B.push(this.shim);delete this.shim}},disableShadow:function(){if(this.shadow){this.shadowDisabled=true;this.shadow.hide();this.lastShadowOffset=this.shadowOffset;this.shadowOffset=0}},enableShadow:function(C){if(this.shadow){this.shadowDisabled=false;this.shadowOffset=this.lastShadowOffset;delete this.lastShadowOffset;if(C){this.sync(true)}}},sync:function(C){var I=this.shadow;if(!this.updating&&this.isVisible()&&(I||this.useShim)){var F=this.getShim();var H=this.getWidth(),E=this.getHeight();var D=this.getLeft(true),J=this.getTop(true);if(I&&!this.shadowDisabled){if(C&&!I.isVisible()){I.show(this)}else{I.realign(D,J,H,E)}if(F){if(C){F.show()}var G=I.adjusts,K=F.dom.style;K.left=(Math.min(D,D+G.l))+"px";K.top=(Math.min(J,J+G.t))+"px";K.width=(H+G.w)+"px";K.height=(E+G.h)+"px"}}else{if(F){if(C){F.show()}F.setSize(H,E);F.setLeftTop(D,J)}}}},destroy:function(){this.hideShim();if(this.shadow){this.shadow.hide()}this.removeAllListeners();Ext.removeNode(this.dom);Ext.Element.uncache(this.id)},remove:function(){this.destroy()},beginUpdate:function(){this.updating=true},endUpdate:function(){this.updating=false;this.sync(true)},hideUnders:function(C){if(this.shadow){this.shadow.hide()}this.hideShim()},constrainXY:function(){if(this.constrain){var G=Ext.lib.Dom.getViewWidth(),C=Ext.lib.Dom.getViewHeight();var L=Ext.getDoc().getScroll();var K=this.getXY();var H=K[0],F=K[1];var I=this.dom.offsetWidth+this.shadowOffset,D=this.dom.offsetHeight+this.shadowOffset;var E=false;if((H+I)>G+L.left){H=G-I-this.shadowOffset;E=true}if((F+D)>C+L.top){F=C-D-this.shadowOffset;E=true}if(H<L.left){H=L.left;E=true}if(F<L.top){F=L.top;E=true}if(E){if(this.avoidY){var J=this.avoidY;if(F<=J&&(F+D)>=J){F=J-D-5}}K=[H,F];this.storeXY(K);A.setXY.call(this,K);this.sync()}}},isVisible:function(){return this.visible},showAction:function(){this.visible=true;if(this.useDisplay===true){this.setDisplayed("")}else{if(this.lastXY){A.setXY.call(this,this.lastXY)}else{if(this.lastLT){A.setLeftTop.call(this,this.lastLT[0],this.lastLT[1])}}}},hideAction:function(){this.visible=false;if(this.useDisplay===true){this.setDisplayed(false)}else{this.setLeftTop(-10000,-10000)}},setVisible:function(E,D,G,H,F){if(E){this.showAction()}if(D&&E){var C=function(){this.sync(true);if(H){H()}}.createDelegate(this);A.setVisible.call(this,true,true,G,C,F)}else{if(!E){this.hideUnders(true)}var C=H;if(D){C=function(){this.hideAction();if(H){H()}}.createDelegate(this)}A.setVisible.call(this,E,D,G,C,F);if(E){this.sync(true)}else{if(!D){this.hideAction()}}}},storeXY:function(C){delete this.lastLT;this.lastXY=C},storeLeftTop:function(D,C){delete this.lastXY;this.lastLT=[D,C]},beforeFx:function(){this.beforeAction();return Ext.Layer.superclass.beforeFx.apply(this,arguments)},afterFx:function(){Ext.Layer.superclass.afterFx.apply(this,arguments);this.sync(this.isVisible())},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide()}},setLeft:function(C){this.storeLeftTop(C,this.getTop(true));A.setLeft.apply(this,arguments);this.sync()},setTop:function(C){this.storeLeftTop(this.getLeft(true),C);A.setTop.apply(this,arguments);this.sync()},setLeftTop:function(D,C){this.storeLeftTop(D,C);A.setLeftTop.apply(this,arguments);this.sync()},setXY:function(F,D,G,H,E){this.fixDisplay();this.beforeAction();this.storeXY(F);var C=this.createCB(H);A.setXY.call(this,F,D,G,C,E);if(!D){C()}},createCB:function(D){var C=this;return function(){C.constrainXY();C.sync(true);if(D){D()}}},setX:function(C,D,F,G,E){this.setXY([C,this.getY()],D,F,G,E)},setY:function(G,C,E,F,D){this.setXY([this.getX(),G],C,E,F,D)},setSize:function(E,F,D,H,I,G){this.beforeAction();var C=this.createCB(I);A.setSize.call(this,E,F,D,H,C,G);if(!D){C()}},setWidth:function(E,D,G,H,F){this.beforeAction();var C=this.createCB(H);A.setWidth.call(this,E,D,G,C,F);if(!D){C()}},setHeight:function(E,D,G,H,F){this.beforeAction();var C=this.createCB(H);A.setHeight.call(this,E,D,G,C,F);if(!D){C()}},setBounds:function(J,H,K,D,I,F,G,E){this.beforeAction();var C=this.createCB(G);if(!I){this.storeXY([J,H]);A.setXY.call(this,[J,H]);A.setSize.call(this,K,D,I,F,C,E);C()}else{A.setBounds.call(this,J,H,K,D,I,F,C,E)}return this},setZIndex:function(C){this.zindex=C;this.setStyle("z-index",C+2);if(this.shadow){this.shadow.setZIndex(C+1)}if(this.shim){this.shim.setStyle("z-index",C)}}})})(); |
Ext.Shadow=function(C){Ext.apply(this,C);if(typeof this.mode!="string"){this.mode=this.defaultMode}var D=this.offset,B={h:0};var A=Math.floor(this.offset/2);switch(this.mode.toLowerCase()){case"drop":B.w=0;B.l=B.t=D;B.t-=1;if(Ext.isIE){B.l-=this.offset+A;B.t-=this.offset+A;B.w-=A;B.h-=A;B.t+=1}break;case"sides":B.w=(D*2);B.l=-D;B.t=D-1;if(Ext.isIE){B.l-=(this.offset-A);B.t-=this.offset+A;B.l+=1;B.w-=(this.offset-A)*2;B.w-=A+1;B.h-=1}break;case"frame":B.w=B.h=(D*2);B.l=B.t=-D;B.t+=1;B.h-=2;if(Ext.isIE){B.l-=(this.offset-A);B.t-=(this.offset-A);B.l+=1;B.w-=(this.offset+A+1);B.h-=(this.offset+A);B.h+=1}break}this.adjusts=B};Ext.Shadow.prototype={offset:4,defaultMode:"drop",show:function(A){A=Ext.get(A);if(!this.el){this.el=Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling!=A.dom){this.el.insertBefore(A)}}this.el.setStyle("z-index",this.zIndex||parseInt(A.getStyle("z-index"),10)-1);if(Ext.isIE){this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+(this.offset)+")"}this.realign(A.getLeft(true),A.getTop(true),A.getWidth(),A.getHeight());this.el.dom.style.display="block"},isVisible:function(){return this.el?true:false},realign:function(A,M,L,D){if(!this.el){return }var I=this.adjusts,G=this.el.dom,N=G.style;var E=0;N.left=(A+I.l)+"px";N.top=(M+I.t)+"px";var K=(L+I.w),C=(D+I.h),F=K+"px",J=C+"px";if(N.width!=F||N.height!=J){N.width=F;N.height=J;if(!Ext.isIE){var H=G.childNodes;var B=Math.max(0,(K-12))+"px";H[0].childNodes[1].style.width=B;H[1].childNodes[1].style.width=B;H[2].childNodes[1].style.width=B;H[1].style.height=Math.max(0,(C-12))+"px"}}},hide:function(){if(this.el){this.el.dom.style.display="none";Ext.Shadow.Pool.push(this.el);delete this.el}},setZIndex:function(A){this.zIndex=A;if(this.el){this.el.setStyle("z-index",A)}}};Ext.Shadow.Pool=function(){var B=[];var A=Ext.isIE?"<div class=\"x-ie-shadow\"></div>":"<div class=\"x-shadow\"><div class=\"xst\"><div class=\"xstl\"></div><div class=\"xstc\"></div><div class=\"xstr\"></div></div><div class=\"xsc\"><div class=\"xsml\"></div><div class=\"xsmc\"></div><div class=\"xsmr\"></div></div><div class=\"xsb\"><div class=\"xsbl\"></div><div class=\"xsbc\"></div><div class=\"xsbr\"></div></div></div>";return{pull:function(){var C=B.shift();if(!C){C=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,A));C.autoBoxAdjust=false}return C},push:function(C){B.push(C)}}}(); |
Ext.BoxComponent=Ext.extend(Ext.Component,{initComponent:function(){Ext.BoxComponent.superclass.initComponent.call(this);this.addEvents("resize","move")},boxReady:false,deferHeight:false,setSize:function(B,D){if(typeof B=="object"){D=B.height;B=B.width}if(!this.boxReady){this.width=B;this.height=D;return this}if(this.lastSize&&this.lastSize.width==B&&this.lastSize.height==D){return this}this.lastSize={width:B,height:D};var C=this.adjustSize(B,D);var F=C.width,A=C.height;if(F!==undefined||A!==undefined){var E=this.getResizeEl();if(!this.deferHeight&&F!==undefined&&A!==undefined){E.setSize(F,A)}else{if(!this.deferHeight&&A!==undefined){E.setHeight(A)}else{if(F!==undefined){E.setWidth(F)}}}this.onResize(F,A,B,D);this.fireEvent("resize",this,F,A,B,D)}return this},setWidth:function(A){return this.setSize(A)},setHeight:function(A){return this.setSize(undefined,A)},getSize:function(){return this.el.getSize()},getPosition:function(A){if(A===true){return[this.el.getLeft(true),this.el.getTop(true)]}return this.xy||this.el.getXY()},getBox:function(A){var B=this.el.getSize();if(A===true){B.x=this.el.getLeft(true);B.y=this.el.getTop(true)}else{var C=this.xy||this.el.getXY();B.x=C[0];B.y=C[1]}return B},updateBox:function(A){this.setSize(A.width,A.height);this.setPagePosition(A.x,A.y);return this},getResizeEl:function(){return this.resizeEl||this.el},getPositionEl:function(){return this.positionEl||this.el},setPosition:function(A,F){if(A&&typeof A[1]=="number"){F=A[1];A=A[0]}this.x=A;this.y=F;if(!this.boxReady){return this}var B=this.adjustPosition(A,F);var E=B.x,D=B.y;var C=this.getPositionEl();if(E!==undefined||D!==undefined){if(E!==undefined&&D!==undefined){C.setLeftTop(E,D)}else{if(E!==undefined){C.setLeft(E)}else{if(D!==undefined){C.setTop(D)}}}this.onPosition(E,D);this.fireEvent("move",this,E,D)}return this},setPagePosition:function(A,C){if(A&&typeof A[1]=="number"){C=A[1];A=A[0]}this.pageX=A;this.pageY=C;if(!this.boxReady){return }if(A===undefined||C===undefined){return }var B=this.el.translatePoints(A,C);this.setPosition(B.left,B.top);return this},onRender:function(B,A){Ext.BoxComponent.superclass.onRender.call(this,B,A);if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl)}if(this.positionEl){this.positionEl=Ext.get(this.positionEl)}},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);this.boxReady=true;this.setSize(this.width,this.height);if(this.x||this.y){this.setPosition(this.x,this.y)}else{if(this.pageX||this.pageY){this.setPagePosition(this.pageX,this.pageY)}}},syncSize:function(){delete this.lastSize;this.setSize(this.autoWidth?undefined:this.el.getWidth(),this.autoHeight?undefined:this.el.getHeight());return this},onResize:function(D,B,A,C){},onPosition:function(A,B){},adjustSize:function(A,B){if(this.autoWidth){A="auto"}if(this.autoHeight){B="auto"}return{width:A,height:B}},adjustPosition:function(A,B){return{x:A,y:B}}});Ext.reg("box",Ext.BoxComponent); |
Ext.SplitBar=function(C,E,B,D,A){this.el=Ext.get(C,true);this.el.dom.unselectable="on";this.resizingEl=Ext.get(E,true);this.orientation=B||Ext.SplitBar.HORIZONTAL;this.minSize=0;this.maxSize=2000;this.animate=false;this.useShim=false;this.shim=null;if(!A){this.proxy=Ext.SplitBar.createProxy(this.orientation)}else{this.proxy=Ext.get(A).dom}this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id});this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this);this.dd.endDrag=this.onEndProxyDrag.createDelegate(this);this.dragSpecs={};this.adapter=new Ext.SplitBar.BasicLayoutAdapter();this.adapter.init(this);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.placement=D||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h")}else{this.placement=D||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM);this.el.addClass("x-splitbar-v")}this.addEvents("resize","moved","beforeresize","beforeapply");Ext.SplitBar.superclass.constructor.call(this)};Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(A,E){this.fireEvent("beforeresize",this);this.overlay=Ext.DomHelper.append(document.body,{cls:"x-drag-overlay",html:" "},true);this.overlay.unselectable();this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();Ext.get(this.proxy).setDisplayed("block");var C=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize();this.activeMaxSize=this.getMaximumSize();var D=C-this.activeMinSize;var B=Math.max(this.activeMaxSize-C,0);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?D:B,this.placement==Ext.SplitBar.LEFT?B:D);this.dd.setYConstraint(0,0)}else{this.dd.resetConstraints();this.dd.setXConstraint(0,0);this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?D:B,this.placement==Ext.SplitBar.TOP?B:D)}this.dragSpecs.startSize=C;this.dragSpecs.startPoint=[A,E];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,A,E)},onEndProxyDrag:function(C){Ext.get(this.proxy).setDisplayed(false);var B=Ext.lib.Event.getXY(C);if(this.overlay){this.overlay.remove();delete this.overlay}var A;if(this.orientation==Ext.SplitBar.HORIZONTAL){A=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.LEFT?B[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-B[0])}else{A=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.TOP?B[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-B[1])}A=Math.min(Math.max(A,this.activeMinSize),this.activeMaxSize);if(A!=this.dragSpecs.startSize){if(this.fireEvent("beforeapply",this,A)!==false){this.adapter.setElementSize(this,A);this.fireEvent("moved",this,A);this.fireEvent("resize",this,A)}}},getAdapter:function(){return this.adapter},setAdapter:function(A){this.adapter=A;this.adapter.init(this)},getMinimumSize:function(){return this.minSize},setMinimumSize:function(A){this.minSize=A},getMaximumSize:function(){return this.maxSize},setMaximumSize:function(A){this.maxSize=A},setCurrentSize:function(B){var A=this.animate;this.animate=false;this.adapter.setElementSize(this,B);this.animate=A},destroy:function(A){if(this.shim){this.shim.remove()}this.dd.unreg();Ext.removeNode(this.proxy);if(A){this.el.remove()}}});Ext.SplitBar.createProxy=function(B){var C=new Ext.Element(document.createElement("div"));C.unselectable();var A="x-splitbar-proxy";C.addClass(A+" "+(B==Ext.SplitBar.HORIZONTAL?A+"-h":A+"-v"));document.body.appendChild(C.dom);return C.dom};Ext.SplitBar.BasicLayoutAdapter=function(){};Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(A){},getElementSize:function(A){if(A.orientation==Ext.SplitBar.HORIZONTAL){return A.resizingEl.getWidth()}else{return A.resizingEl.getHeight()}},setElementSize:function(B,A,C){if(B.orientation==Ext.SplitBar.HORIZONTAL){if(!B.animate){B.resizingEl.setWidth(A);if(C){C(B,A)}}else{B.resizingEl.setWidth(A,true,0.1,C,"easeOut")}}else{if(!B.animate){B.resizingEl.setHeight(A);if(C){C(B,A)}}else{B.resizingEl.setHeight(A,true,0.1,C,"easeOut")}}}};Ext.SplitBar.AbsoluteLayoutAdapter=function(A){this.basic=new Ext.SplitBar.BasicLayoutAdapter();this.container=Ext.get(A)};Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(A){this.basic.init(A)},getElementSize:function(A){return this.basic.getElementSize(A)},setElementSize:function(B,A,C){this.basic.setElementSize(B,A,this.moveSplitter.createDelegate(this,[B]))},moveSplitter:function(A){var B=Ext.SplitBar;switch(A.placement){case B.LEFT:A.el.setX(A.resizingEl.getRight());break;case B.RIGHT:A.el.setStyle("right",(this.container.getWidth()-A.resizingEl.getLeft())+"px");break;case B.TOP:A.el.setY(A.resizingEl.getBottom());break;case B.BOTTOM:A.el.setY(A.resizingEl.getTop()-A.el.getHeight());break}}};Ext.SplitBar.VERTICAL=1;Ext.SplitBar.HORIZONTAL=2;Ext.SplitBar.LEFT=1;Ext.SplitBar.RIGHT=2;Ext.SplitBar.TOP=3;Ext.SplitBar.BOTTOM=4; |
Ext.Container=Ext.extend(Ext.BoxComponent,{autoDestroy:true,defaultType:"panel",initComponent:function(){Ext.Container.superclass.initComponent.call(this);this.addEvents("afterlayout","beforeadd","beforeremove","add","remove");var A=this.items;if(A){delete this.items;if(Ext.isArray(A)){this.add.apply(this,A)}else{this.add(A)}}},initItems:function(){if(!this.items){this.items=new Ext.util.MixedCollection(false,this.getComponentId);this.getLayout()}},setLayout:function(A){if(this.layout&&this.layout!=A){this.layout.setContainer(null)}this.initItems();this.layout=A;A.setContainer(this)},render:function(){Ext.Container.superclass.render.apply(this,arguments);if(this.layout){if(typeof this.layout=="string"){this.layout=new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig)}this.setLayout(this.layout);if(this.activeItem!==undefined){var A=this.activeItem;delete this.activeItem;this.layout.setActiveItem(A);return }}if(!this.ownerCt){this.doLayout()}if(this.monitorResize===true){Ext.EventManager.onWindowResize(this.doLayout,this,[false])}},getLayoutTarget:function(){return this.el},getComponentId:function(A){return A.itemId||A.id},add:function(C){if(!this.items){this.initItems()}var B=arguments,A=B.length;if(A>1){for(var D=0;D<A;D++){this.add(B[D])}return }var F=this.lookupComponent(this.applyDefaults(C));var E=this.items.length;if(this.fireEvent("beforeadd",this,F,E)!==false&&this.onBeforeAdd(F)!==false){this.items.add(F);F.ownerCt=this;this.fireEvent("add",this,F,E)}return F},insert:function(D,C){if(!this.items){this.initItems()}var B=arguments,A=B.length;if(A>2){for(var E=A-1;E>=1;--E){this.insert(D,B[E])}return }var F=this.lookupComponent(this.applyDefaults(C));if(F.ownerCt==this&&this.items.indexOf(F)<D){--D}if(this.fireEvent("beforeadd",this,F,D)!==false&&this.onBeforeAdd(F)!==false){this.items.insert(D,F);F.ownerCt=this;this.fireEvent("add",this,F,D)}return F},applyDefaults:function(A){if(this.defaults){if(typeof A=="string"){A=Ext.ComponentMgr.get(A);Ext.apply(A,this.defaults)}else{if(!A.events){Ext.applyIf(A,this.defaults)}else{Ext.apply(A,this.defaults)}}}return A},onBeforeAdd:function(A){if(A.ownerCt){A.ownerCt.remove(A,false)}if(this.hideBorders===true){A.border=(A.border===true)}},remove:function(A,B){var C=this.getComponent(A);if(C&&this.fireEvent("beforeremove",this,C)!==false){this.items.remove(C);delete C.ownerCt;if(B===true||(B!==false&&this.autoDestroy)){C.destroy()}if(this.layout&&this.layout.activeItem==C){delete this.layout.activeItem}this.fireEvent("remove",this,C)}return C},getComponent:function(A){if(typeof A=="object"){return A}return this.items.get(A)},lookupComponent:function(A){if(typeof A=="string"){return Ext.ComponentMgr.get(A)}else{if(!A.events){return this.createComponent(A)}}return A},createComponent:function(A){return Ext.ComponentMgr.create(A,this.defaultType)},doLayout:function(D){if(this.rendered&&this.layout){this.layout.layout()}if(D!==false&&this.items){var C=this.items.items;for(var B=0,A=C.length;B<A;B++){var E=C[B];if(E.doLayout){E.doLayout()}}}},getLayout:function(){if(!this.layout){var A=new Ext.layout.ContainerLayout(this.layoutConfig);this.setLayout(A)}return this.layout},onDestroy:function(){if(this.items){var C=this.items.items;for(var B=0,A=C.length;B<A;B++){Ext.destroy(C[B])}}if(this.monitorResize){Ext.EventManager.removeResizeListener(this.doLayout,this)}Ext.Container.superclass.onDestroy.call(this)},bubble:function(C,B,A){var D=this;while(D){if(C.apply(B||D,A||[D])===false){break}D=D.ownerCt}},cascade:function(F,E,B){if(F.apply(E||this,B||[this])!==false){if(this.items){var D=this.items.items;for(var C=0,A=D.length;C<A;C++){if(D[C].cascade){D[C].cascade(F,E,B)}else{F.apply(E||this,B||[D[C]])}}}}},findById:function(C){var A,B=this;this.cascade(function(D){if(B!=D&&D.id===C){A=D;return false}});return A||null},findByType:function(A){return typeof A=="function"?this.findBy(function(B){return B.constructor===A}):this.findBy(function(B){return B.constructor.xtype===A})},find:function(B,A){return this.findBy(function(C){return C[B]===A})},findBy:function(D,C){var A=[],B=this;this.cascade(function(E){if(B!=E&&D.call(C||E,E,B)===true){A.push(E)}});return A}});Ext.Container.LAYOUTS={};Ext.reg("container",Ext.Container); |
Ext.layout.ContainerLayout=function(A){Ext.apply(this,A)};Ext.layout.ContainerLayout.prototype={monitorResize:false,activeItem:null,layout:function(){var A=this.container.getLayoutTarget();this.onLayout(this.container,A);this.container.fireEvent("afterlayout",this.container,this)},onLayout:function(A,B){this.renderAll(A,B)},isValidParent:function(C,B){var A=C.getPositionEl?C.getPositionEl():C.getEl();return A.dom.parentNode==B.dom},renderAll:function(D,E){var B=D.items.items;for(var C=0,A=B.length;C<A;C++){var F=B[C];if(F&&(!F.rendered||!this.isValidParent(F,E))){this.renderItem(F,C,E)}}},renderItem:function(D,A,C){if(D&&!D.rendered){D.render(C,A);if(this.extraCls){var B=D.getPositionEl?D.getPositionEl():D;B.addClass(this.extraCls)}if(this.renderHidden&&D!=this.activeItem){D.hide()}}else{if(D&&!this.isValidParent(D,C)){if(this.extraCls){D.addClass(this.extraCls)}if(typeof A=="number"){A=C.dom.childNodes[A]}C.dom.insertBefore(D.getEl().dom,A||null);if(this.renderHidden&&D!=this.activeItem){D.hide()}}}},onResize:function(){if(this.container.collapsed){return }var A=this.container.bufferResize;if(A){if(!this.resizeTask){this.resizeTask=new Ext.util.DelayedTask(this.layout,this);this.resizeBuffer=typeof A=="number"?A:100}this.resizeTask.delay(this.resizeBuffer)}else{this.layout()}},setContainer:function(A){if(this.monitorResize&&A!=this.container){if(this.container){this.container.un("resize",this.onResize,this)}if(A){A.on("resize",this.onResize,this)}}this.container=A},parseMargins:function(B){var C=B.split(" ");var A=C.length;if(A==1){C[1]=C[0];C[2]=C[0];C[3]=C[0]}if(A==2){C[2]=C[0];C[3]=C[1]}return{top:parseInt(C[0],10)||0,right:parseInt(C[1],10)||0,bottom:parseInt(C[2],10)||0,left:parseInt(C[3],10)||0}}};Ext.Container.LAYOUTS["auto"]=Ext.layout.ContainerLayout; |
Ext.layout.FitLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,onLayout:function(A,B){Ext.layout.FitLayout.superclass.onLayout.call(this,A,B);if(!this.container.collapsed){this.setItemSize(this.activeItem||A.items.itemAt(0),B.getStyleSize())}},setItemSize:function(B,A){if(B&&A.height>0){B.setSize(A)}}});Ext.Container.LAYOUTS["fit"]=Ext.layout.FitLayout; |
Ext.layout.CardLayout=Ext.extend(Ext.layout.FitLayout,{deferredRender:false,renderHidden:true,setActiveItem:function(A){A=this.container.getComponent(A);if(this.activeItem!=A){if(this.activeItem){this.activeItem.hide()}this.activeItem=A;A.show();this.layout()}},renderAll:function(A,B){if(this.deferredRender){this.renderItem(this.activeItem,undefined,B)}else{Ext.layout.CardLayout.superclass.renderAll.call(this,A,B)}}});Ext.Container.LAYOUTS["card"]=Ext.layout.CardLayout; |
Ext.layout.AnchorLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,getAnchorViewSize:function(A,B){return B.dom==document.body?B.getViewSize():B.getStyleSize()},onLayout:function(F,I){Ext.layout.AnchorLayout.superclass.onLayout.call(this,F,I);var O=this.getAnchorViewSize(F,I);var M=O.width,E=O.height;if(M<20||E<20){return }var B,K;if(F.anchorSize){if(typeof F.anchorSize=="number"){B=F.anchorSize}else{B=F.anchorSize.width;K=F.anchorSize.height}}else{B=F.initialConfig.width;K=F.initialConfig.height}var H=F.items.items,G=H.length,D,J,L,C,A;for(D=0;D<G;D++){J=H[D];if(J.anchor){L=J.anchorSpec;if(!L){var N=J.anchor.split(" ");J.anchorSpec=L={right:this.parseAnchor(N[0],J.initialConfig.width,B),bottom:this.parseAnchor(N[1],J.initialConfig.height,K)}}C=L.right?this.adjustWidthAnchor(L.right(M),J):undefined;A=L.bottom?this.adjustHeightAnchor(L.bottom(E),J):undefined;if(C||A){J.setSize(C||undefined,A||undefined)}}}},parseAnchor:function(B,F,A){if(B&&B!="none"){var D;if(/^(r|right|b|bottom)$/i.test(B)){var E=A-F;return function(G){if(G!==D){D=G;return G-E}}}else{if(B.indexOf("%")!=-1){var C=parseFloat(B.replace("%",""))*0.01;return function(G){if(G!==D){D=G;return Math.floor(G*C)}}}else{B=parseInt(B,10);if(!isNaN(B)){return function(G){if(G!==D){D=G;return G+B}}}}}}return false},adjustWidthAnchor:function(B,A){return B},adjustHeightAnchor:function(B,A){return B}});Ext.Container.LAYOUTS["anchor"]=Ext.layout.AnchorLayout; |
Ext.layout.ColumnLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,extraCls:"x-column",scrollOffset:0,isValidParent:function(B,A){return B.getEl().dom.parentNode==this.innerCt.dom},onLayout:function(C,F){var D=C.items.items,E=D.length,G,A;if(!this.innerCt){F.addClass("x-column-layout-ct");this.innerCt=F.createChild({cls:"x-column-inner"});this.innerCt.createChild({cls:"x-clear"})}this.renderAll(C,this.innerCt);var J=F.getViewSize();if(J.width<1&&J.height<1){return }var H=J.width-F.getPadding("lr")-this.scrollOffset,B=J.height-F.getPadding("tb"),I=H;this.innerCt.setWidth(H);for(A=0;A<E;A++){G=D[A];if(!G.columnWidth){I-=(G.getSize().width+G.getEl().getMargins("lr"))}}I=I<0?0:I;for(A=0;A<E;A++){G=D[A];if(G.columnWidth){G.setSize(Math.floor(G.columnWidth*I)-G.getEl().getMargins("lr"))}}}});Ext.Container.LAYOUTS["column"]=Ext.layout.ColumnLayout; |
Ext.layout.BorderLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,rendered:false,onLayout:function(B,X){var C;if(!this.rendered){X.position();X.addClass("x-border-layout-ct");var M=B.items.items;C=[];for(var Q=0,R=M.length;Q<R;Q++){var U=M[Q];var F=U.region;if(U.collapsed){C.push(U)}U.collapsed=false;if(!U.rendered){U.cls=U.cls?U.cls+" x-border-panel":"x-border-panel";U.render(X,Q)}this[F]=F!="center"&&U.split?new Ext.layout.BorderLayout.SplitRegion(this,U.initialConfig,F):new Ext.layout.BorderLayout.Region(this,U.initialConfig,F);this[F].render(X,U)}this.rendered=true}var L=X.getViewSize();if(L.width<20||L.height<20){if(C){this.restoreCollapsed=C}return }else{if(this.restoreCollapsed){C=this.restoreCollapsed;delete this.restoreCollapsed}}var J=L.width,S=L.height;var I=J,P=S,G=0,H=0;var N=this.north,K=this.south,E=this.west,T=this.east,U=this.center;if(!U){throw"No center region defined in BorderLayout "+B.id}if(N&&N.isVisible()){var W=N.getSize();var O=N.getMargins();W.width=J-(O.left+O.right);W.x=O.left;W.y=O.top;G=W.height+W.y+O.bottom;P-=G;N.applyLayout(W)}if(K&&K.isVisible()){var W=K.getSize();var O=K.getMargins();W.width=J-(O.left+O.right);W.x=O.left;var V=(W.height+O.top+O.bottom);W.y=S-V+O.top;P-=V;K.applyLayout(W)}if(E&&E.isVisible()){var W=E.getSize();var O=E.getMargins();W.height=P-(O.top+O.bottom);W.x=O.left;W.y=G+O.top;var A=(W.width+O.left+O.right);H+=A;I-=A;E.applyLayout(W)}if(T&&T.isVisible()){var W=T.getSize();var O=T.getMargins();W.height=P-(O.top+O.bottom);var A=(W.width+O.left+O.right);W.x=J-A+O.left;W.y=G+O.top;I-=A;T.applyLayout(W)}var O=U.getMargins();var D={x:H+O.left,y:G+O.top,width:I-(O.left+O.right),height:P-(O.top+O.bottom)};U.applyLayout(D);if(C){for(var Q=0,R=C.length;Q<R;Q++){C[Q].collapse(false)}}if(Ext.isIE&&Ext.isStrict){X.repaint()}}});Ext.layout.BorderLayout.Region=function(B,A,C){Ext.apply(this,A);this.layout=B;this.position=C;this.state={};if(typeof this.margins=="string"){this.margins=this.layout.parseMargins(this.margins)}this.margins=Ext.applyIf(this.margins||{},this.defaultMargins);if(this.collapsible){if(typeof this.cmargins=="string"){this.cmargins=this.layout.parseMargins(this.cmargins)}if(this.collapseMode=="mini"&&!this.cmargins){this.cmargins={left:0,top:0,right:0,bottom:0}}else{this.cmargins=Ext.applyIf(this.cmargins||{},C=="north"||C=="south"?this.defaultNSCMargins:this.defaultEWCMargins)}}};Ext.layout.BorderLayout.Region.prototype={collapsible:false,split:false,floatable:true,minWidth:50,minHeight:50,defaultMargins:{left:0,top:0,right:0,bottom:0},defaultNSCMargins:{left:5,top:5,right:5,bottom:5},defaultEWCMargins:{left:5,top:0,right:5,bottom:0},isCollapsed:false,render:function(B,C){this.panel=C;C.el.enableDisplayMode();this.targetEl=B;this.el=C.el;var A=C.getState,D=this.position;C.getState=function(){return Ext.apply(A.call(C)||{},this.state)}.createDelegate(this);if(D!="center"){C.allowQueuedExpand=false;C.on({beforecollapse:this.beforeCollapse,collapse:this.onCollapse,beforeexpand:this.beforeExpand,expand:this.onExpand,hide:this.onHide,show:this.onShow,scope:this});if(this.collapsible){C.collapseEl="el";C.slideAnchor=this.getSlideAnchor()}if(C.tools&&C.tools.toggle){C.tools.toggle.addClass("x-tool-collapse-"+D);C.tools.toggle.addClassOnOver("x-tool-collapse-"+D+"-over")}}},getCollapsedEl:function(){if(!this.collapsedEl){if(!this.toolTemplate){var B=new Ext.Template("<div class=\"x-tool x-tool-{id}\"> </div>");B.disableFormats=true;B.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=B}this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+"-xcollapsed"});this.collapsedEl.enableDisplayMode("block");if(this.collapseMode=="mini"){this.collapsedEl.addClass("x-layout-cmini-"+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:" "});this.miniCollapsedEl.addClassOnOver("x-layout-mini-over");this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.onExpandClick,this,{stopEvent:true})}else{var A=this.toolTemplate.append(this.collapsedEl.dom,{id:"expand-"+this.position},true);A.addClassOnOver("x-tool-expand-"+this.position+"-over");A.on("click",this.onExpandClick,this,{stopEvent:true});if(this.floatable!==false){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.collapseClick,this)}}}return this.collapsedEl},onExpandClick:function(A){if(this.isSlid){this.afterSlideIn();this.panel.expand(false)}else{this.panel.expand()}},onCollapseClick:function(A){this.panel.collapse()},beforeCollapse:function(B,A){this.lastAnim=A;if(this.splitEl){this.splitEl.hide()}this.getCollapsedEl().show();this.panel.el.setStyle("z-index",100);this.isCollapsed=true;this.layout.layout()},onCollapse:function(A){this.panel.el.setStyle("z-index",1);if(this.lastAnim===false||this.panel.animCollapse===false){this.getCollapsedEl().dom.style.visibility="visible"}else{this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:0.2})}this.state.collapsed=true;this.panel.saveState()},beforeExpand:function(A){var B=this.getCollapsedEl();this.el.show();if(this.position=="east"||this.position=="west"){this.panel.setSize(undefined,B.getHeight())}else{this.panel.setSize(B.getWidth(),undefined)}B.hide();B.dom.style.visibility="hidden";this.panel.el.setStyle("z-index",100)},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show()}this.layout.layout();this.panel.el.setStyle("z-index",1);this.state.collapsed=false;this.panel.saveState()},collapseClick:function(A){if(this.isSlid){A.stopPropagation();this.slideIn()}else{A.stopPropagation();this.slideOut()}},onHide:function(){if(this.isCollapsed){this.getCollapsedEl().hide()}else{if(this.splitEl){this.splitEl.hide()}}},onShow:function(){if(this.isCollapsed){this.getCollapsedEl().show()}else{if(this.splitEl){this.splitEl.show()}}},isVisible:function(){return !this.panel.hidden},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize()},setPanel:function(A){this.panel=A},getMinWidth:function(){return this.minWidth},getMinHeight:function(){return this.minHeight},applyLayoutCollapsed:function(A){var B=this.getCollapsedEl();B.setLeftTop(A.x,A.y);B.setSize(A.width,A.height)},applyLayout:function(A){if(this.isCollapsed){this.applyLayoutCollapsed(A)}else{this.panel.setPosition(A.x,A.y);this.panel.setSize(A.width,A.height)}},beforeSlide:function(){this.panel.beforeEffect()},afterSlide:function(){this.panel.afterEffect()},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){var A=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={"mouseout":function(B){if(!B.within(this.el,true)){A.delay(500)}},"mouseover":function(B){A.cancel()},scope:this}}this.el.on(this.autoHideHd)}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover)}},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this)},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return }this.isSlid=true;var A=this.panel.tools;if(A&&A.toggle){A.toggle.hide()}this.el.show();if(this.position=="east"||this.position=="west"){this.panel.setSize(undefined,this.collapsedEl.getHeight())}else{this.panel.setSize(this.collapsedEl.getWidth(),undefined)}this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",102);if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)},scope:this,block:true})}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var A=this.panel.tools;if(A&&A.toggle){A.toggle.show()}},slideIn:function(A){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(A);return }this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide();this.afterSlide();this.afterSlideIn();Ext.callback(A)},scope:this,block:true})}else{this.el.hide();this.afterSlideIn()}},slideInIf:function(A){if(!A.within(this.el)){this.slideIn()}},anchors:{"west":"left","east":"right","north":"top","south":"bottom"},sanchors:{"west":"l","east":"r","north":"t","south":"b"},canchors:{"west":"tl-tr","east":"tr-tl","north":"tl-bl","south":"bl-tl"},getAnchor:function(){return this.anchors[this.position]},getCollapseAnchor:function(){return this.canchors[this.position]},getSlideAnchor:function(){return this.sanchors[this.position]},getAlignAdj:function(){var A=this.cmargins;switch(this.position){case"west":return[0,0];break;case"east":return[0,0];break;case"north":return[0,0];break;case"south":return[0,0];break}},getExpandAdj:function(){var B=this.collapsedEl,A=this.cmargins;switch(this.position){case"west":return[-(A.right+B.getWidth()+A.left),0];break;case"east":return[A.right+B.getWidth()+A.left,0];break;case"north":return[0,-(A.top+A.bottom+B.getHeight())];break;case"south":return[0,A.top+A.bottom+B.getHeight()];break}}};Ext.layout.BorderLayout.SplitRegion=function(B,A,C){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,B,A,C);this.applyLayout=this.applyFns[C]};Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"}},applyFns:{west:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;this.panel.setPosition(C.x,C.y);var A=D.offsetWidth;B.left=(C.x+C.width-A)+"px";B.top=(C.y)+"px";B.height=Math.max(0,C.height)+"px";this.panel.setSize(C.width-A,C.height)},east:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;var A=D.offsetWidth;this.panel.setPosition(C.x+A,C.y);B.left=(C.x)+"px";B.top=(C.y)+"px";B.height=Math.max(0,C.height)+"px";this.panel.setSize(C.width-A,C.height)},north:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;var A=D.offsetHeight;this.panel.setPosition(C.x,C.y);B.left=(C.x)+"px";B.top=(C.y+C.height-A)+"px";B.width=Math.max(0,C.width)+"px";this.panel.setSize(C.width,C.height-A)},south:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;var A=D.offsetHeight;this.panel.setPosition(C.x,C.y+A);B.left=(C.x)+"px";B.top=(C.y)+"px";B.width=Math.max(0,C.width)+"px";this.panel.setSize(C.width,C.height-A)}},render:function(A,C){Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this,A,C);var D=this.position;this.splitEl=A.createChild({cls:"x-layout-split x-layout-split-"+D,html:" ",id:this.panel.id+"-xsplit"});if(this.collapseMode=="mini"){this.miniSplitEl=this.splitEl.createChild({cls:"x-layout-mini x-layout-mini-"+D,html:" "});this.miniSplitEl.addClassOnOver("x-layout-mini-over");this.miniSplitEl.on("click",this.onCollapseClick,this,{stopEvent:true})}var B=this.splitSettings[D];this.split=new Ext.SplitBar(this.splitEl.dom,C.el,B.orientation);this.split.placement=B.placement;this.split.getMaximumSize=this[B.maxFn].createDelegate(this);this.split.minSize=this.minSize||this[B.minProp];this.split.on("beforeapply",this.onSplitMove,this);this.split.useShim=this.useShim===true;this.maxSize=this.maxSize||this[B.maxProp];if(C.hidden){this.splitEl.hide()}if(this.useSplitTips){this.splitEl.dom.title=this.collapsible?this.collapsibleSplitTip:this.splitTip}if(this.collapsible){this.splitEl.on("dblclick",this.onCollapseClick,this)}},getSize:function(){if(this.isCollapsed){return this.collapsedEl.getSize()}var A=this.panel.getSize();if(this.position=="north"||this.position=="south"){A.height+=this.splitEl.dom.offsetHeight}else{A.width+=this.splitEl.dom.offsetWidth}return A},getHMaxSize:function(){var B=this.maxSize||10000;var A=this.layout.center;return Math.min(B,(this.el.getWidth()+A.el.getWidth())-A.getMinWidth())},getVMaxSize:function(){var B=this.maxSize||10000;var A=this.layout.center;return Math.min(B,(this.el.getHeight()+A.el.getHeight())-A.getMinHeight())},onSplitMove:function(B,A){var C=this.panel.getSize();this.lastSplitSize=A;if(this.position=="north"||this.position=="south"){this.panel.setSize(C.width,A);this.state.height=A}else{this.panel.setSize(A,C.height);this.state.width=A}this.layout.layout();this.panel.saveState();return false},getSplitBar:function(){return this.split}});Ext.Container.LAYOUTS["border"]=Ext.layout.BorderLayout; |
Ext.layout.FormLayout=Ext.extend(Ext.layout.AnchorLayout,{labelSeparator:":",getAnchorViewSize:function(A,B){return A.body.getStyleSize()},setContainer:function(B){Ext.layout.FormLayout.superclass.setContainer.call(this,B);if(B.labelAlign){B.addClass("x-form-label-"+B.labelAlign)}if(B.hideLabels){this.labelStyle="display:none";this.elementStyle="padding-left:0;";this.labelAdjust=0}else{this.labelSeparator=B.labelSeparator||this.labelSeparator;B.labelWidth=B.labelWidth||100;if(typeof B.labelWidth=="number"){var C=(typeof B.labelPad=="number"?B.labelPad:5);this.labelAdjust=B.labelWidth+C;this.labelStyle="width:"+B.labelWidth+"px;";this.elementStyle="padding-left:"+(B.labelWidth+C)+"px"}if(B.labelAlign=="top"){this.labelStyle="width:auto;";this.labelAdjust=0;this.elementStyle="padding-left:0;"}}if(!this.fieldTpl){var A=new Ext.Template("<div class=\"x-form-item {5}\" tabIndex=\"-1\">","<label for=\"{0}\" style=\"{2}\" class=\"x-form-item-label\">{1}{4}</label>","<div class=\"x-form-element\" id=\"x-form-el-{0}\" style=\"{3}\">","</div><div class=\"{6}\"></div>","</div>");A.disableFormats=true;A.compile();Ext.layout.FormLayout.prototype.fieldTpl=A}},renderItem:function(D,A,C){if(D&&!D.rendered&&D.isFormField&&D.inputType!="hidden"){var B=[D.id,D.fieldLabel,D.labelStyle||this.labelStyle||"",this.elementStyle||"",typeof D.labelSeparator=="undefined"?this.labelSeparator:D.labelSeparator,(D.itemCls||this.container.itemCls||"")+(D.hideLabel?" x-hide-label":""),D.clearCls||"x-form-clear-left"];if(typeof A=="number"){A=C.dom.childNodes[A]||null}if(A){this.fieldTpl.insertBefore(A,B)}else{this.fieldTpl.append(C,B)}D.render("x-form-el-"+D.id)}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments)}},adjustWidthAnchor:function(B,A){return B-(A.isFormField?(A.hideLabel?0:this.labelAdjust):0)},isValidParent:function(B,A){return true}});Ext.Container.LAYOUTS["form"]=Ext.layout.FormLayout; |
Ext.layout.Accordion=Ext.extend(Ext.layout.FitLayout,{fill:true,autoWidth:true,titleCollapse:true,hideCollapseTool:false,collapseFirst:false,animate:false,sequence:false,activeOnTop:false,renderItem:function(A){if(this.animate===false){A.animCollapse=false}A.collapsible=true;if(this.autoWidth){A.autoWidth=true}if(this.titleCollapse){A.titleCollapse=true}if(this.hideCollapseTool){A.hideCollapseTool=true}if(this.collapseFirst!==undefined){A.collapseFirst=this.collapseFirst}if(!this.activeItem&&!A.collapsed){this.activeItem=A}else{if(this.activeItem){A.collapsed=true}}Ext.layout.Accordion.superclass.renderItem.apply(this,arguments);A.header.addClass("x-accordion-hd");A.on("beforeexpand",this.beforeExpand,this)},beforeExpand:function(C,B){var A=this.activeItem;if(A){if(this.sequence){delete this.activeItem;A.collapse({callback:function(){C.expand(B||true)},scope:this});return false}else{A.collapse(this.animate)}}this.activeItem=C;if(this.activeOnTop){C.el.dom.parentNode.insertBefore(C.el.dom,C.el.dom.parentNode.firstChild)}this.layout()},setItemSize:function(F,E){if(this.fill&&F){var B=this.container.items.items;var D=0;for(var C=0,A=B.length;C<A;C++){var G=B[C];if(G!=F){D+=(G.getSize().height-G.bwrap.getHeight())}}E.height-=D;F.setSize(E)}}});Ext.Container.LAYOUTS["accordion"]=Ext.layout.Accordion; |
Ext.layout.TableLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:false,setContainer:function(A){Ext.layout.TableLayout.superclass.setContainer.call(this,A);this.currentRow=0;this.currentColumn=0;this.cells=[]},onLayout:function(C,E){var D=C.items.items,A=D.length,F,B;if(!this.table){E.addClass("x-table-layout-ct");this.table=E.createChild({tag:"table",cls:"x-table-layout",cellspacing:0,cn:{tag:"tbody"}},null,true);this.renderAll(C,E)}},getRow:function(A){var B=this.table.tBodies[0].childNodes[A];if(!B){B=document.createElement("tr");this.table.tBodies[0].appendChild(B)}return B},getNextCell:function(H){var A=this.getNextNonSpan(this.currentColumn,this.currentRow);var E=this.currentColumn=A[0],D=this.currentRow=A[1];for(var G=D;G<D+(H.rowspan||1);G++){if(!this.cells[G]){this.cells[G]=[]}for(var C=E;C<E+(H.colspan||1);C++){this.cells[G][C]=true}}var F=document.createElement("td");if(H.cellId){F.id=H.cellId}var B="x-table-layout-cell";if(H.cellCls){B+=" "+H.cellCls}F.className=B;if(H.colspan){F.colSpan=H.colspan}if(H.rowspan){F.rowSpan=H.rowspan}this.getRow(D).appendChild(F);return F},getNextNonSpan:function(A,C){var B=this.columns;while((B&&A>=B)||(this.cells[C]&&this.cells[C][A])){if(B&&A>=B){C++;A=0}else{A++}}return[A,C]},renderItem:function(C,A,B){if(C&&!C.rendered){C.render(this.getNextCell(C))}},isValidParent:function(B,A){return true}});Ext.Container.LAYOUTS["table"]=Ext.layout.TableLayout; |
Ext.layout.AbsoluteLayout=Ext.extend(Ext.layout.AnchorLayout,{extraCls:"x-abs-layout-item",isForm:false,setContainer:function(A){Ext.layout.AbsoluteLayout.superclass.setContainer.call(this,A);if(A.isXType("form")){this.isForm=true}},onLayout:function(A,B){if(this.isForm){A.body.position()}else{B.position()}Ext.layout.AbsoluteLayout.superclass.onLayout.call(this,A,B)},getAnchorViewSize:function(A,B){return this.isForm?A.body.getStyleSize():Ext.layout.AbsoluteLayout.superclass.getAnchorViewSize.call(this,A,B)},isValidParent:function(B,A){return this.isForm?true:Ext.layout.AbsoluteLayout.superclass.isValidParent.call(this,B,A)},adjustWidthAnchor:function(B,A){return B?B-A.getPosition(true)[0]:B},adjustHeightAnchor:function(B,A){return B?B-A.getPosition(true)[1]:B}});Ext.Container.LAYOUTS["absolute"]=Ext.layout.AbsoluteLayout; |
Ext.Viewport=Ext.extend(Ext.Container,{initComponent:function(){Ext.Viewport.superclass.initComponent.call(this);document.getElementsByTagName("html")[0].className+=" x-viewport";this.el=Ext.getBody();this.el.setHeight=Ext.emptyFn;this.el.setWidth=Ext.emptyFn;this.el.setSize=Ext.emptyFn;this.el.dom.scroll="no";this.allowDomMove=false;this.autoWidth=true;this.autoHeight=true;Ext.EventManager.onWindowResize(this.fireResize,this);this.renderTo=this.el},fireResize:function(A,B){this.fireEvent("resize",this,A,B,A,B)}});Ext.reg("viewport",Ext.Viewport); |
Ext.Panel=Ext.extend(Ext.Container,{baseCls:"x-panel",collapsedCls:"x-panel-collapsed",maskDisabled:true,animCollapse:Ext.enableFx,headerAsText:true,buttonAlign:"right",collapsed:false,collapseFirst:true,minButtonWidth:75,elements:"body",toolTarget:"header",collapseEl:"bwrap",slideAnchor:"t",deferHeight:true,expandDefaults:{duration:0.25},collapseDefaults:{duration:0.25},initComponent:function(){Ext.Panel.superclass.initComponent.call(this);this.addEvents("bodyresize","titlechange","collapse","expand","beforecollapse","beforeexpand","beforeclose","close","activate","deactivate");if(this.tbar){this.elements+=",tbar";if(typeof this.tbar=="object"){this.topToolbar=this.tbar}delete this.tbar}if(this.bbar){this.elements+=",bbar";if(typeof this.bbar=="object"){this.bottomToolbar=this.bbar}delete this.bbar}if(this.header===true){this.elements+=",header";delete this.header}else{if(this.title&&this.header!==false){this.elements+=",header"}}if(this.footer===true){this.elements+=",footer";delete this.footer}if(this.buttons){var C=this.buttons;this.buttons=[];for(var B=0,A=C.length;B<A;B++){if(C[B].render){this.buttons.push(C[B])}else{this.addButton(C[B])}}}if(this.autoLoad){this.on("render",this.doAutoLoad,this,{delay:10})}},createElement:function(A,C){if(this[A]){C.appendChild(this[A].dom);return }if(A==="bwrap"||this.elements.indexOf(A)!=-1){if(this[A+"Cfg"]){this[A]=Ext.fly(C).createChild(this[A+"Cfg"])}else{var B=document.createElement("div");B.className=this[A+"Cls"];this[A]=Ext.get(C.appendChild(B))}}},onRender:function(H,G){Ext.Panel.superclass.onRender.call(this,H,G);this.createClasses();if(this.el){this.el.addClass(this.baseCls);this.header=this.el.down("."+this.headerCls);this.bwrap=this.el.down("."+this.bwrapCls);var M=this.bwrap?this.bwrap:this.el;this.tbar=M.down("."+this.tbarCls);this.body=M.down("."+this.bodyCls);this.bbar=M.down("."+this.bbarCls);this.footer=M.down("."+this.footerCls);this.fromMarkup=true}else{this.el=H.createChild({id:this.id,cls:this.baseCls},G)}var A=this.el,K=A.dom;if(this.cls){this.el.addClass(this.cls)}if(this.buttons){this.elements+=",footer"}if(this.frame){A.insertHtml("afterBegin",String.format(Ext.Element.boxMarkup,this.baseCls));this.createElement("header",K.firstChild.firstChild.firstChild);this.createElement("bwrap",K);var O=this.bwrap.dom;var E=K.childNodes[1],B=K.childNodes[2];O.appendChild(E);O.appendChild(B);var P=O.firstChild.firstChild.firstChild;this.createElement("tbar",P);this.createElement("body",P);this.createElement("bbar",P);this.createElement("footer",O.lastChild.firstChild.firstChild);if(!this.footer){this.bwrap.dom.lastChild.className+=" x-panel-nofooter"}}else{this.createElement("header",K);this.createElement("bwrap",K);var O=this.bwrap.dom;this.createElement("tbar",O);this.createElement("body",O);this.createElement("bbar",O);this.createElement("footer",O);if(!this.header){this.body.addClass(this.bodyCls+"-noheader");if(this.tbar){this.tbar.addClass(this.tbarCls+"-noheader")}}}if(this.border===false){this.el.addClass(this.baseCls+"-noborder");this.body.addClass(this.bodyCls+"-noborder");if(this.header){this.header.addClass(this.headerCls+"-noborder")}if(this.footer){this.footer.addClass(this.footerCls+"-noborder")}if(this.tbar){this.tbar.addClass(this.tbarCls+"-noborder")}if(this.bbar){this.bbar.addClass(this.bbarCls+"-noborder")}}if(this.bodyBorder===false){this.body.addClass(this.bodyCls+"-noborder")}if(this.bodyStyle){this.body.applyStyles(this.bodyStyle)}this.bwrap.enableDisplayMode("block");if(this.header){this.header.unselectable();if(this.headerAsText){this.header.dom.innerHTML="<span class=\""+this.headerTextCls+"\">"+this.header.dom.innerHTML+"</span>";if(this.iconCls){this.setIconClass(this.iconCls)}}}if(this.floating){this.makeFloating(this.floating)}if(this.collapsible){this.tools=this.tools?this.tools.slice(0):[];if(!this.hideCollapseTool){this.tools[this.collapseFirst?"unshift":"push"]({id:"toggle",handler:this.toggleCollapse,scope:this})}if(this.titleCollapse&&this.header){this.header.on("click",this.toggleCollapse,this);this.header.setStyle("cursor","pointer")}}if(this.tools){var J=this.tools;this.tools={};this.addTool.apply(this,J)}else{this.tools={}}if(this.buttons&&this.buttons.length>0){var D=this.footer.createChild({cls:"x-panel-btns-ct",cn:{cls:"x-panel-btns x-panel-btns-"+this.buttonAlign,html:"<table cellspacing=\"0\"><tbody><tr></tr></tbody></table><div class=\"x-clear\"></div>"}},null,true);var L=D.getElementsByTagName("tr")[0];for(var F=0,I=this.buttons.length;F<I;F++){var N=this.buttons[F];var C=document.createElement("td");C.className="x-panel-btn-td";N.render(L.appendChild(C))}}if(this.tbar&&this.topToolbar){if(Ext.isArray(this.topToolbar)){this.topToolbar=new Ext.Toolbar(this.topToolbar)}this.topToolbar.render(this.tbar)}if(this.bbar&&this.bottomToolbar){if(Ext.isArray(this.bottomToolbar)){this.bottomToolbar=new Ext.Toolbar(this.bottomToolbar)}this.bottomToolbar.render(this.bbar)}},setIconClass:function(B){var A=this.iconCls;this.iconCls=B;if(this.rendered&&this.header){if(this.frame){this.header.addClass("x-panel-icon");this.header.replaceClass(A,this.iconCls)}else{var D=this.header.dom;var C=D.firstChild&&String(D.firstChild.tagName).toLowerCase()=="img"?D.firstChild:null;if(C){Ext.fly(C).replaceClass(A,this.iconCls)}else{Ext.DomHelper.insertBefore(D.firstChild,{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-panel-inline-icon "+this.iconCls})}}}},makeFloating:function(A){this.floating=true;this.el=new Ext.Layer(typeof A=="object"?A:{shadow:this.shadow!==undefined?this.shadow:"sides",shadowOffset:this.shadowOffset,constrain:false,shim:this.shim===false?false:undefined},this.el)},getTopToolbar:function(){return this.topToolbar},getBottomToolbar:function(){return this.bottomToolbar},addButton:function(A,D,C){var E={handler:D,scope:C,minWidth:this.minButtonWidth,hideParent:true};if(typeof A=="string"){E.text=A}else{Ext.apply(E,A)}var B=new Ext.Button(E);B.ownerCt=this;if(!this.buttons){this.buttons=[]}this.buttons.push(B);return B},addTool:function(){if(!this[this.toolTarget]){return }if(!this.toolTemplate){var F=new Ext.Template("<div class=\"x-tool x-tool-{id}\"> </div>");F.disableFormats=true;F.compile();Ext.Panel.prototype.toolTemplate=F}for(var E=0,C=arguments,B=C.length;E<B;E++){var A=C[E],G="x-tool-"+A.id+"-over";var D=this.toolTemplate.insertFirst(this[this.toolTarget],A,true);this.tools[A.id]=D;D.enableDisplayMode("block");D.on("click",this.createToolHandler(D,A,G,this));if(A.on){D.on(A.on)}if(A.hidden){D.hide()}if(A.qtip){if(typeof A.qtip=="object"){Ext.QuickTips.register(Ext.apply({target:D.id},A.qtip))}else{D.dom.qtip=A.qtip}}D.addClassOnOver(G)}},onShow:function(){if(this.floating){return this.el.show()}Ext.Panel.superclass.onShow.call(this)},onHide:function(){if(this.floating){return this.el.hide()}Ext.Panel.superclass.onHide.call(this)},createToolHandler:function(C,A,D,B){return function(E){C.removeClass(D);E.stopEvent();if(A.handler){A.handler.call(A.scope||C,E,C,B)}}},afterRender:function(){if(this.fromMarkup&&this.height===undefined&&!this.autoHeight){this.height=this.el.getHeight()}if(this.floating&&!this.hidden&&!this.initHidden){this.el.show()}if(this.title){this.setTitle(this.title)}this.setAutoScroll();if(this.html){this.body.update(typeof this.html=="object"?Ext.DomHelper.markup(this.html):this.html);delete this.html}if(this.contentEl){var A=Ext.getDom(this.contentEl);Ext.fly(A).removeClass(["x-hidden","x-hide-display"]);this.body.dom.appendChild(A)}if(this.collapsed){this.collapsed=false;this.collapse(false)}Ext.Panel.superclass.afterRender.call(this);this.initEvents()},setAutoScroll:function(){if(this.rendered&&this.autoScroll){this.body.setOverflow("auto")}},getKeyMap:function(){if(!this.keyMap){this.keyMap=new Ext.KeyMap(this.el,this.keys)}return this.keyMap},initEvents:function(){if(this.keys){this.getKeyMap()}if(this.draggable){this.initDraggable()}},initDraggable:function(){this.dd=new Ext.Panel.DD(this,typeof this.draggable=="boolean"?null:this.draggable)},beforeEffect:function(){if(this.floating){this.el.beforeAction()}this.el.addClass("x-panel-animated")},afterEffect:function(){this.syncShadow();this.el.removeClass("x-panel-animated")},createEffect:function(B,A,C){var D={scope:C,block:true};if(B===true){D.callback=A;return D}else{if(!B.callback){D.callback=A}else{D.callback=function(){A.call(C);Ext.callback(B.callback,B.scope)}}}return Ext.applyIf(D,B)},collapse:function(B){if(this.collapsed||this.el.hasFxBlock()||this.fireEvent("beforecollapse",this,B)===false){return }var A=B===true||(B!==false&&this.animCollapse);this.beforeEffect();this.onCollapse(A,B);return this},onCollapse:function(A,B){if(A){this[this.collapseEl].slideOut(this.slideAnchor,Ext.apply(this.createEffect(B||true,this.afterCollapse,this),this.collapseDefaults))}else{this[this.collapseEl].hide();this.afterCollapse()}},afterCollapse:function(){this.collapsed=true;this.el.addClass(this.collapsedCls);this.afterEffect();this.fireEvent("collapse",this)},expand:function(B){if(!this.collapsed||this.el.hasFxBlock()||this.fireEvent("beforeexpand",this,B)===false){return }var A=B===true||(B!==false&&this.animCollapse);this.el.removeClass(this.collapsedCls);this.beforeEffect();this.onExpand(A,B);return this},onExpand:function(A,B){if(A){this[this.collapseEl].slideIn(this.slideAnchor,Ext.apply(this.createEffect(B||true,this.afterExpand,this),this.expandDefaults))}else{this[this.collapseEl].show();this.afterExpand()}},afterExpand:function(){this.collapsed=false;this.afterEffect();this.fireEvent("expand",this)},toggleCollapse:function(A){this[this.collapsed?"expand":"collapse"](A);return this},onDisable:function(){if(this.rendered&&this.maskDisabled){this.el.mask()}Ext.Panel.superclass.onDisable.call(this)},onEnable:function(){if(this.rendered&&this.maskDisabled){this.el.unmask()}Ext.Panel.superclass.onEnable.call(this)},onResize:function(A,B){if(A!==undefined||B!==undefined){if(!this.collapsed){if(typeof A=="number"){this.body.setWidth(this.adjustBodyWidth(A-this.getFrameWidth()))}else{if(A=="auto"){this.body.setWidth(A)}}if(typeof B=="number"){this.body.setHeight(this.adjustBodyHeight(B-this.getFrameHeight()))}else{if(B=="auto"){this.body.setHeight(B)}}}else{this.queuedBodySize={width:A,height:B};if(!this.queuedExpand&&this.allowQueuedExpand!==false){this.queuedExpand=true;this.on("expand",function(){delete this.queuedExpand;this.onResize(this.queuedBodySize.width,this.queuedBodySize.height);this.doLayout()},this,{single:true})}}this.fireEvent("bodyresize",this,A,B)}this.syncShadow()},adjustBodyHeight:function(A){return A},adjustBodyWidth:function(A){return A},onPosition:function(){this.syncShadow()},onDestroy:function(){if(this.tools){for(var B in this.tools){Ext.destroy(this.tools[B])}}if(this.buttons){for(var A in this.buttons){Ext.destroy(this.buttons[A])}}Ext.destroy(this.topToolbar,this.bottomToolbar);Ext.Panel.superclass.onDestroy.call(this)},getFrameWidth:function(){var B=this.el.getFrameWidth("lr");if(this.frame){var A=this.bwrap.dom.firstChild;B+=(Ext.fly(A).getFrameWidth("l")+Ext.fly(A.firstChild).getFrameWidth("r"));var C=this.bwrap.dom.firstChild.firstChild.firstChild;B+=Ext.fly(C).getFrameWidth("lr")}return B},getFrameHeight:function(){var A=this.el.getFrameWidth("tb");A+=(this.tbar?this.tbar.getHeight():0)+(this.bbar?this.bbar.getHeight():0);if(this.frame){var C=this.el.dom.firstChild;var D=this.bwrap.dom.lastChild;A+=(C.offsetHeight+D.offsetHeight);var B=this.bwrap.dom.firstChild.firstChild.firstChild;A+=Ext.fly(B).getFrameWidth("tb")}else{A+=(this.header?this.header.getHeight():0)+(this.footer?this.footer.getHeight():0)}return A},getInnerWidth:function(){return this.getSize().width-this.getFrameWidth()},getInnerHeight:function(){return this.getSize().height-this.getFrameHeight()},syncShadow:function(){if(this.floating){this.el.sync(true)}},getLayoutTarget:function(){return this.body},setTitle:function(B,A){this.title=B;if(this.header&&this.headerAsText){this.header.child("span").update(B)}if(A){this.setIconClass(A)}this.fireEvent("titlechange",this,B);return this},getUpdater:function(){return this.body.getUpdater()},load:function(){var A=this.body.getUpdater();A.update.apply(A,arguments);return this},beforeDestroy:function(){Ext.Element.uncache(this.header,this.tbar,this.bbar,this.footer,this.body)},createClasses:function(){this.headerCls=this.baseCls+"-header";this.headerTextCls=this.baseCls+"-header-text";this.bwrapCls=this.baseCls+"-bwrap";this.tbarCls=this.baseCls+"-tbar";this.bodyCls=this.baseCls+"-body";this.bbarCls=this.baseCls+"-bbar";this.footerCls=this.baseCls+"-footer"},createGhost:function(A,E,B){var D=document.createElement("div");D.className="x-panel-ghost "+(A?A:"");if(this.header){D.appendChild(this.el.dom.firstChild.cloneNode(true))}Ext.fly(D.appendChild(document.createElement("ul"))).setHeight(this.bwrap.getHeight());D.style.width=this.el.dom.offsetWidth+"px";if(!B){this.container.dom.appendChild(D)}else{Ext.getDom(B).appendChild(D)}if(E!==false&&this.el.useShim!==false){var C=new Ext.Layer({shadow:false,useDisplay:true,constrain:false},D);C.show();return C}else{return new Ext.Element(D)}},doAutoLoad:function(){this.body.load(typeof this.autoLoad=="object"?this.autoLoad:{url:this.autoLoad})}});Ext.reg("panel",Ext.Panel); |
Ext.Window=Ext.extend(Ext.Panel,{baseCls:"x-window",resizable:true,draggable:true,closable:true,constrain:false,constrainHeader:false,plain:false,minimizable:false,maximizable:false,minHeight:100,minWidth:200,expandOnShow:true,closeAction:"close",collapsible:false,initHidden:true,monitorResize:true,elements:"header,body",frame:true,floating:true,initComponent:function(){Ext.Window.superclass.initComponent.call(this);this.addEvents("resize","maximize","minimize","restore")},getState:function(){return Ext.apply(Ext.Window.superclass.getState.call(this)||{},this.getBox())},onRender:function(B,A){Ext.Window.superclass.onRender.call(this,B,A);if(this.plain){this.el.addClass("x-window-plain")}this.focusEl=this.el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1",html:" "});this.focusEl.swallowEvent("click",true);this.proxy=this.el.createProxy("x-window-proxy");this.proxy.enableDisplayMode("block");if(this.modal){this.mask=this.container.createChild({cls:"ext-el-mask"},this.el.dom);this.mask.enableDisplayMode("block");this.mask.hide()}},initEvents:function(){Ext.Window.superclass.initEvents.call(this);if(this.animateTarget){this.setAnimateTarget(this.animateTarget)}if(this.resizable){this.resizer=new Ext.Resizable(this.el,{minWidth:this.minWidth,minHeight:this.minHeight,handles:this.resizeHandles||"all",pinned:true,resizeElement:this.resizerAction});this.resizer.window=this;this.resizer.on("beforeresize",this.beforeResize,this)}if(this.draggable){this.header.addClass("x-window-draggable")}this.initTools();this.el.on("mousedown",this.toFront,this);this.manager=this.manager||Ext.WindowMgr;this.manager.register(this);this.hidden=true;if(this.maximized){this.maximized=false;this.maximize()}if(this.closable){var A=this.getKeyMap();A.on(27,this.onEsc,this);A.disable()}},initDraggable:function(){this.dd=new Ext.Window.DD(this)},onEsc:function(){this[this.closeAction]()},beforeDestroy:function(){Ext.destroy(this.resizer,this.dd,this.proxy,this.mask);Ext.Window.superclass.beforeDestroy.call(this)},onDestroy:function(){if(this.manager){this.manager.unregister(this)}Ext.Window.superclass.onDestroy.call(this)},initTools:function(){if(this.minimizable){this.addTool({id:"minimize",handler:this.minimize.createDelegate(this,[])})}if(this.maximizable){this.addTool({id:"maximize",handler:this.maximize.createDelegate(this,[])});this.addTool({id:"restore",handler:this.restore.createDelegate(this,[]),hidden:true});this.header.on("dblclick",this.toggleMaximize,this)}if(this.closable){this.addTool({id:"close",handler:this[this.closeAction].createDelegate(this,[])})}},resizerAction:function(){var A=this.proxy.getBox();this.proxy.hide();this.window.handleResize(A);return A},beforeResize:function(){this.resizer.minHeight=Math.max(this.minHeight,this.getFrameHeight()+40);this.resizer.minWidth=Math.max(this.minWidth,this.getFrameWidth()+40);this.resizeBox=this.el.getBox()},updateHandles:function(){if(Ext.isIE&&this.resizer){this.resizer.syncHandleHeight();this.el.repaint()}},handleResize:function(B){var A=this.resizeBox;if(A.x!=B.x||A.y!=B.y){this.updateBox(B)}else{this.setSize(B)}this.focus();this.updateHandles();this.saveState();this.fireEvent("resize",this,B.width,B.height)},focus:function(){var C=this.focusEl,A=this.defaultButton,B=typeof A;if(B!="undefined"){if(B=="number"){C=this.buttons[A]}else{if(B=="string"){C=Ext.getCmp(A)}else{C=A}}}C.focus.defer(10,C)},setAnimateTarget:function(A){A=Ext.get(A);this.animateTarget=A},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var A=this.el.getAlignToXY(this.container,"c-c");var B=this.el.translatePoints(A[0],A[1]);this.x=this.x===undefined?B.left:this.x;this.y=this.y===undefined?B.top:this.y}this.el.setLeftTop(this.x,this.y);if(this.expandOnShow){this.expand(false)}if(this.modal){Ext.getBody().addClass("x-body-masked");this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.mask.show()}},show:function(C,A,B){if(!this.rendered){this.render(Ext.getBody())}if(this.hidden===false){this.toFront();return }if(this.fireEvent("beforeshow",this)===false){return }if(A){this.on("show",A,B,{single:true})}this.hidden=false;if(C!==undefined){this.setAnimateTarget(C)}this.beforeShow();if(this.animateTarget){this.animShow()}else{this.afterShow()}},afterShow:function(){this.proxy.hide();this.el.setStyle("display","block");this.el.show();if(this.maximized){this.fitContainer()}if(Ext.isMac&&Ext.isGecko){this.cascade(this.setAutoScroll)}if(this.monitorResize||this.modal||this.constrain||this.constrainHeader){Ext.EventManager.onWindowResize(this.onWindowResize,this)}this.doConstrain();if(this.layout){this.doLayout()}if(this.keyMap){this.keyMap.enable()}this.toFront();this.updateHandles();this.fireEvent("show",this)},animShow:function(){this.proxy.show();this.proxy.setBox(this.animateTarget.getBox());this.proxy.setOpacity(0);var A=this.getBox(false);A.callback=this.afterShow;A.scope=this;A.duration=0.25;A.easing="easeNone";A.opacity=0.5;A.block=true;this.el.setStyle("display","none");this.proxy.shift(A)},hide:function(C,A,B){if(this.hidden||this.fireEvent("beforehide",this)===false){return }if(A){this.on("hide",A,B,{single:true})}this.hidden=true;if(C!==undefined){this.setAnimateTarget(C)}if(this.animateTarget){this.animHide()}else{this.el.hide();this.afterHide()}},afterHide:function(){this.proxy.hide();if(this.monitorResize||this.modal||this.constrain||this.constrainHeader){Ext.EventManager.removeResizeListener(this.onWindowResize,this)}if(this.modal){this.mask.hide();Ext.getBody().removeClass("x-body-masked")}if(this.keyMap){this.keyMap.disable()}this.fireEvent("hide",this)},animHide:function(){this.proxy.setOpacity(0.5);this.proxy.show();var B=this.getBox(false);this.proxy.setBox(B);this.el.hide();var A=this.animateTarget.getBox();A.callback=this.afterHide;A.scope=this;A.duration=0.25;A.easing="easeNone";A.block=true;A.opacity=0;this.proxy.shift(A)},onWindowResize:function(){if(this.maximized){this.fitContainer()}if(this.modal){this.mask.setSize("100%","100%");var A=this.mask.dom.offsetHeight;this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true))}this.doConstrain()},doConstrain:function(){if(this.constrain||this.constrainHeader){var B;if(this.constrain){B={right:this.el.shadowOffset,left:this.el.shadowOffset,bottom:this.el.shadowOffset}}else{var A=this.getSize();B={right:-(A.width-100),bottom:-(A.height-25)}}var C=this.el.getConstrainToXY(this.container,true,B);if(C){this.setPosition(C[0],C[1])}}},ghost:function(A){var C=this.createGhost(A);var B=this.getBox(true);C.setLeftTop(B.x,B.y);C.setWidth(B.width);this.el.hide();this.activeGhost=C;return C},unghost:function(B,A){if(B!==false){this.el.show();this.focus();if(Ext.isMac&&Ext.isGecko){this.cascade(this.setAutoScroll)}}if(A!==false){this.setPosition(this.activeGhost.getLeft(true),this.activeGhost.getTop(true))}this.activeGhost.hide();this.activeGhost.remove();delete this.activeGhost},minimize:function(){this.fireEvent("minimize",this)},close:function(){if(this.fireEvent("beforeclose",this)!==false){this.hide(null,function(){this.fireEvent("close",this);this.destroy()},this)}},maximize:function(){if(!this.maximized){this.expand(false);this.restoreSize=this.getSize();this.restorePos=this.getPosition(true);this.tools.maximize.hide();this.tools.restore.show();this.maximized=true;this.el.disableShadow();if(this.dd){this.dd.lock()}if(this.collapsible){this.tools.toggle.hide()}this.el.addClass("x-window-maximized");this.container.addClass("x-window-maximized-ct");this.setPosition(0,0);this.fitContainer();this.fireEvent("maximize",this)}},restore:function(){if(this.maximized){this.el.removeClass("x-window-maximized");this.tools.restore.hide();this.tools.maximize.show();this.setPosition(this.restorePos[0],this.restorePos[1]);this.setSize(this.restoreSize.width,this.restoreSize.height);delete this.restorePos;delete this.restoreSize;this.maximized=false;this.el.enableShadow(true);if(this.dd){this.dd.unlock()}if(this.collapsible){this.tools.toggle.show()}this.container.removeClass("x-window-maximized-ct");this.doConstrain();this.fireEvent("restore",this)}},toggleMaximize:function(){this[this.maximized?"restore":"maximize"]()},fitContainer:function(){var A=this.container.getViewSize();this.setSize(A.width,A.height)},setZIndex:function(A){if(this.modal){this.mask.setStyle("z-index",A)}this.el.setZIndex(++A);A+=5;if(this.resizer){this.resizer.proxy.setStyle("z-index",++A)}this.lastZIndex=A},alignTo:function(B,A,C){var D=this.el.getAlignToXY(B,A,C);this.setPagePosition(D[0],D[1]);return this},anchorTo:function(C,G,D,B,F){var E=function(){this.alignTo(C,G,D)};Ext.EventManager.onWindowResize(E,this);var A=typeof B;if(A!="undefined"){Ext.EventManager.on(window,"scroll",E,this,{buffer:A=="number"?B:50})}E.call(this);this[F]=E;return this},toFront:function(){if(this.manager.bringToFront(this)){this.focus()}return this},setActive:function(A){if(A){if(!this.maximized){this.el.enableShadow(true)}this.fireEvent("activate",this)}else{this.el.disableShadow();this.fireEvent("deactivate",this)}},toBack:function(){this.manager.sendToBack(this);return this},center:function(){var A=this.el.getAlignToXY(this.container,"c-c");this.setPagePosition(A[0],A[1]);return this}});Ext.reg("window",Ext.Window);Ext.Window.DD=function(A){this.win=A;Ext.Window.DD.superclass.constructor.call(this,A.el.id,"WindowDD-"+A.id);this.setHandleElId(A.header.id);this.scroll=false};Ext.extend(Ext.Window.DD,Ext.dd.DD,{moveOnly:true,headerOffsets:[100,25],startDrag:function(){var A=this.win;this.proxy=A.ghost();if(A.constrain!==false){var C=A.el.shadowOffset;this.constrainTo(A.container,{right:C,left:C,bottom:C})}else{if(A.constrainHeader!==false){var B=this.proxy.getSize();this.constrainTo(A.container,{right:-(B.width-this.headerOffsets[0]),bottom:-(B.height-this.headerOffsets[1])})}}},b4Drag:Ext.emptyFn,onDrag:function(A){this.alignElWithMouse(this.proxy,A.getPageX(),A.getPageY())},endDrag:function(A){this.win.unghost();this.win.saveState()}}); |
Ext.WindowGroup=function(){var F={};var D=[];var E=null;var C=function(I,H){return(!I._lastAccess||I._lastAccess<H._lastAccess)?-1:1};var G=function(){var J=D,H=J.length;if(H>0){J.sort(C);var I=J[0].manager.zseed;for(var K=0;K<H;K++){var L=J[K];if(L&&!L.hidden){L.setZIndex(I+(K*10))}}}A()};var B=function(H){if(H!=E){if(E){E.setActive(false)}E=H;if(H){H.setActive(true)}}};var A=function(){for(var H=D.length-1;H>=0;--H){if(!D[H].hidden){B(D[H]);return }}B(null)};return{zseed:9000,register:function(H){F[H.id]=H;D.push(H);H.on("hide",A)},unregister:function(H){delete F[H.id];H.un("hide",A);D.remove(H)},get:function(H){return typeof H=="object"?H:F[H]},bringToFront:function(H){H=this.get(H);if(H!=E){H._lastAccess=new Date().getTime();G();return true}return false},sendToBack:function(H){H=this.get(H);H._lastAccess=-(new Date().getTime());G();return H},hideAll:function(){for(var H in F){if(F[H]&&typeof F[H]!="function"&&F[H].isVisible()){F[H].hide()}}},getActive:function(){return E},getBy:function(J,I){var K=[];for(var H=D.length-1;H>=0;--H){var L=D[H];if(J.call(I||L,L)!==false){K.push(L)}}return K},each:function(I,H){for(var J in F){if(F[J]&&typeof F[J]!="function"){if(I.call(H||F[J],F[J])===false){return }}}}}};Ext.WindowMgr=new Ext.WindowGroup(); |
Ext.dd.PanelProxy=function(A,B){this.panel=A;this.id=this.panel.id+"-ddproxy";Ext.apply(this,B)};Ext.dd.PanelProxy.prototype={insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){if(this.ghost){if(this.proxy){this.proxy.remove();delete this.proxy}this.panel.el.dom.style.display="";this.ghost.remove();delete this.ghost}},show:function(){if(!this.ghost){this.ghost=this.panel.createGhost(undefined,undefined,Ext.getBody());this.ghost.setXY(this.panel.el.getXY());if(this.insertProxy){this.proxy=this.panel.el.insertSibling({cls:"x-panel-dd-spacer"});this.proxy.setSize(this.panel.getSize())}this.panel.el.dom.style.display="none"}},repair:function(B,C,A){this.hide();if(typeof C=="function"){C.call(A||this)}},moveProxy:function(A,B){if(this.proxy){A.insertBefore(this.proxy.dom,B)}}};Ext.Panel.DD=function(B,A){this.panel=B;this.dragData={panel:B};this.proxy=new Ext.dd.PanelProxy(B,A);Ext.Panel.DD.superclass.constructor.call(this,B.el,A);this.setHandleElId(B.header.id);B.header.setStyle("cursor","move");this.scroll=false};Ext.extend(Ext.Panel.DD,Ext.dd.DragSource,{showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(A,B){this.proxy.show()},b4MouseDown:function(B){var A=B.getPageX();var C=B.getPageY();this.autoOffset(A,C)},onInitDrag:function(A,B){this.onStartDrag(A,B);return true},createFrame:Ext.emptyFn,getDragEl:function(A){return this.proxy.ghost.dom},endDrag:function(A){this.proxy.hide();this.panel.saveState()},autoOffset:function(A,B){A-=this.startPageX;B-=this.startPageY;this.setDelta(A,B)}}); |
Ext.state.Provider=function(){this.addEvents("statechange");this.state={};Ext.state.Provider.superclass.constructor.call(this)};Ext.extend(Ext.state.Provider,Ext.util.Observable,{get:function(B,A){return typeof this.state[B]=="undefined"?A:this.state[B]},clear:function(A){delete this.state[A];this.fireEvent("statechange",this,A,null)},set:function(A,B){this.state[A]=B;this.fireEvent("statechange",this,A,B)},decodeValue:function(A){var J=/^(a|n|d|b|s|o)\:(.*)$/;var C=J.exec(unescape(A));if(!C||!C[1]){return }var F=C[1];var H=C[2];switch(F){case"n":return parseFloat(H);case"d":return new Date(Date.parse(H));case"b":return(H=="1");case"a":var G=[];var I=H.split("^");for(var B=0,D=I.length;B<D;B++){G.push(this.decodeValue(I[B]))}return G;case"o":var G={};var I=H.split("^");for(var B=0,D=I.length;B<D;B++){var E=I[B].split("=");G[E[0]]=this.decodeValue(E[1])}return G;default:return H}},encodeValue:function(C){var B;if(typeof C=="number"){B="n:"+C}else{if(typeof C=="boolean"){B="b:"+(C?"1":"0")}else{if(Ext.isDate(C)){B="d:"+C.toGMTString()}else{if(Ext.isArray(C)){var F="";for(var E=0,A=C.length;E<A;E++){F+=this.encodeValue(C[E]);if(E!=A-1){F+="^"}}B="a:"+F}else{if(typeof C=="object"){var F="";for(var D in C){if(typeof C[D]!="function"&&C[D]!==undefined){F+=D+"="+this.encodeValue(C[D])+"^"}}B="o:"+F.substring(0,F.length-1)}else{B="s:"+C}}}}}return escape(B)}}); |
Ext.state.Manager=function(){var A=new Ext.state.Provider();return{setProvider:function(B){A=B},get:function(C,B){return A.get(C,B)},set:function(B,C){A.set(B,C)},clear:function(B){A.clear(B)},getProvider:function(){return A}}}(); |
Ext.state.CookieProvider=function(A){Ext.state.CookieProvider.superclass.constructor.call(this);this.path="/";this.expires=new Date(new Date().getTime()+(1000*60*60*24*7));this.domain=null;this.secure=false;Ext.apply(this,A);this.state=this.readCookies()};Ext.extend(Ext.state.CookieProvider,Ext.state.Provider,{set:function(A,B){if(typeof B=="undefined"||B===null){this.clear(A);return }this.setCookie(A,B);Ext.state.CookieProvider.superclass.set.call(this,A,B)},clear:function(A){this.clearCookie(A);Ext.state.CookieProvider.superclass.clear.call(this,A)},readCookies:function(){var C={};var F=document.cookie+";";var B=/\s?(.*?)=(.*?);/g;var E;while((E=B.exec(F))!=null){var A=E[1];var D=E[2];if(A&&A.substring(0,3)=="ys-"){C[A.substr(3)]=this.decodeValue(D)}}return C},setCookie:function(A,B){document.cookie="ys-"+A+"="+this.encodeValue(B)+((this.expires==null)?"":("; expires="+this.expires.toGMTString()))+((this.path==null)?"":("; path="+this.path))+((this.domain==null)?"":("; domain="+this.domain))+((this.secure==true)?"; secure":"")},clearCookie:function(A){document.cookie="ys-"+A+"=null; expires=Thu, 01-Jan-70 00:00:01 GMT"+((this.path==null)?"":("; path="+this.path))+((this.domain==null)?"":("; domain="+this.domain))+((this.secure==true)?"; secure":"")}}); |
Ext.DataView=Ext.extend(Ext.BoxComponent,{selectedClass:"x-view-selected",emptyText:"",last:false,initComponent:function(){Ext.DataView.superclass.initComponent.call(this);if(typeof this.tpl=="string"){this.tpl=new Ext.XTemplate(this.tpl)}this.addEvents("beforeclick","click","containerclick","dblclick","contextmenu","selectionchange","beforeselect");this.all=new Ext.CompositeElementLite();this.selected=new Ext.CompositeElementLite()},onRender:function(){if(!this.el){this.el=document.createElement("div")}Ext.DataView.superclass.onRender.apply(this,arguments)},afterRender:function(){Ext.DataView.superclass.afterRender.call(this);this.el.on({"click":this.onClick,"dblclick":this.onDblClick,"contextmenu":this.onContextMenu,scope:this});if(this.overClass){this.el.on({"mouseover":this.onMouseOver,"mouseout":this.onMouseOut,scope:this})}if(this.store){this.setStore(this.store,true)}},refresh:function(){this.clearSelections(false,true);this.el.update("");var B=[];var A=this.store.getRange();if(A.length<1){this.el.update(this.emptyText);this.all.clear();return }this.tpl.overwrite(this.el,this.collectData(A,0));this.all.fill(Ext.query(this.itemSelector,this.el.dom));this.updateIndexes(0)},prepareData:function(A){return A},collectData:function(B,E){var D=[];for(var C=0,A=B.length;C<A;C++){D[D.length]=this.prepareData(B[C].data,E+C,B[C])}return D},bufferRender:function(A){var B=document.createElement("div");this.tpl.overwrite(B,this.collectData(A));return Ext.query(this.itemSelector,B)},onUpdate:function(F,A){var B=this.store.indexOf(A);var E=this.isSelected(B);var C=this.all.elements[B];var D=this.bufferRender([A],B)[0];this.all.replaceElement(B,D,true);if(E){this.selected.replaceElement(C,D);this.all.item(B).addClass(this.selectedClass)}this.updateIndexes(B,B)},onAdd:function(D,B,C){if(this.all.getCount()==0){this.refresh();return }var A=this.bufferRender(B,C),E;if(C<this.all.getCount()){E=this.all.item(C).insertSibling(A,"before",true);this.all.elements.splice(C,0,E)}else{E=this.all.last().insertSibling(A,"after",true);this.all.elements.push(E)}this.updateIndexes(C)},onRemove:function(C,A,B){this.deselect(B);this.all.removeElement(B,true);this.updateIndexes(B)},refreshNode:function(A){this.onUpdate(this.store,this.store.getAt(A))},updateIndexes:function(D,C){var B=this.all.elements;D=D||0;C=C||((C===0)?0:(B.length-1));for(var A=D;A<=C;A++){B[A].viewIndex=A}},setStore:function(A,B){if(!B&&this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("datachanged",this.refresh,this);this.store.un("add",this.onAdd,this);this.store.un("remove",this.onRemove,this);this.store.un("update",this.onUpdate,this);this.store.un("clear",this.refresh,this)}if(A){A=Ext.StoreMgr.lookup(A);A.on("beforeload",this.onBeforeLoad,this);A.on("datachanged",this.refresh,this);A.on("add",this.onAdd,this);A.on("remove",this.onRemove,this);A.on("update",this.onUpdate,this);A.on("clear",this.refresh,this)}this.store=A;if(A){this.refresh()}},findItemFromChild:function(A){return Ext.fly(A).findParent(this.itemSelector,this.el)},onClick:function(C){var B=C.getTarget(this.itemSelector,this.el);if(B){var A=this.indexOf(B);if(this.onItemClick(B,A,C)!==false){this.fireEvent("click",this,A,B,C)}}else{if(this.fireEvent("containerclick",this,C)!==false){this.clearSelections()}}},onContextMenu:function(B){var A=B.getTarget(this.itemSelector,this.el);if(A){this.fireEvent("contextmenu",this,this.indexOf(A),A,B)}},onDblClick:function(B){var A=B.getTarget(this.itemSelector,this.el);if(A){this.fireEvent("dblclick",this,this.indexOf(A),A,B)}},onMouseOver:function(B){var A=B.getTarget(this.itemSelector,this.el);if(A&&A!==this.lastItem){this.lastItem=A;Ext.fly(A).addClass(this.overClass)}},onMouseOut:function(A){if(this.lastItem){if(!A.within(this.lastItem,true)){Ext.fly(this.lastItem).removeClass(this.overClass);delete this.lastItem}}},onItemClick:function(B,A,C){if(this.fireEvent("beforeclick",this,A,B,C)===false){return false}if(this.multiSelect){this.doMultiSelection(B,A,C);C.preventDefault()}else{if(this.singleSelect){this.doSingleSelection(B,A,C);C.preventDefault()}}return true},doSingleSelection:function(B,A,C){if(C.ctrlKey&&this.isSelected(A)){this.deselect(A)}else{this.select(A,false)}},doMultiSelection:function(C,A,D){if(D.shiftKey&&this.last!==false){var B=this.last;this.selectRange(B,A,D.ctrlKey);this.last=B}else{if((D.ctrlKey||this.simpleSelect)&&this.isSelected(A)){this.deselect(A)}else{this.select(A,D.ctrlKey||D.shiftKey||this.simpleSelect)}}},getSelectionCount:function(){return this.selected.getCount()},getSelectedNodes:function(){return this.selected.elements},getSelectedIndexes:function(){var B=[],D=this.selected.elements;for(var C=0,A=D.length;C<A;C++){B.push(D[C].viewIndex)}return B},getSelectedRecords:function(){var D=[],C=this.selected.elements;for(var B=0,A=C.length;B<A;B++){D[D.length]=this.store.getAt(C[B].viewIndex)}return D},getRecords:function(B){var E=[],D=B;for(var C=0,A=D.length;C<A;C++){E[E.length]=this.store.getAt(D[C].viewIndex)}return E},getRecord:function(A){return this.store.getAt(A.viewIndex)},clearSelections:function(A,B){if(this.multiSelect||this.singleSelect){if(!B){this.selected.removeClass(this.selectedClass)}this.selected.clear();this.last=false;if(!A){this.fireEvent("selectionchange",this,this.selected.elements)}}},isSelected:function(A){return this.selected.contains(this.getNode(A))},deselect:function(A){if(this.isSelected(A)){var A=this.getNode(A);this.selected.removeElement(A);if(this.last==A.viewIndex){this.last=false}Ext.fly(A).removeClass(this.selectedClass);this.fireEvent("selectionchange",this,this.selected.elements)}},select:function(D,F,B){if(Ext.isArray(D)){if(!F){this.clearSelections(true)}for(var C=0,A=D.length;C<A;C++){this.select(D[C],true,true)}}else{var E=this.getNode(D);if(!F){this.clearSelections(true)}if(E&&!this.isSelected(E)){if(this.fireEvent("beforeselect",this,E,this.selected.elements)!==false){Ext.fly(E).addClass(this.selectedClass);this.selected.add(E);this.last=E.viewIndex;if(!B){this.fireEvent("selectionchange",this,this.selected.elements)}}}}},selectRange:function(C,A,B){if(!B){this.clearSelections(true)}this.select(this.getNodes(C,A),true)},getNode:function(A){if(typeof A=="string"){return document.getElementById(A)}else{if(typeof A=="number"){return this.all.elements[A]}}return A},getNodes:function(E,A){var D=this.all.elements;E=E||0;A=typeof A=="undefined"?D.length-1:A;var B=[],C;if(E<=A){for(C=E;C<=A;C++){B.push(D[C])}}else{for(C=E;C>=A;C--){B.push(D[C])}}return B},indexOf:function(A){A=this.getNode(A);if(typeof A.viewIndex=="number"){return A.viewIndex}return this.all.indexOf(A)},onBeforeLoad:function(){if(this.loadingText){this.clearSelections(false,true);this.el.update("<div class=\"loading-indicator\">"+this.loadingText+"</div>");this.all.clear()}}});Ext.reg("dataview",Ext.DataView); |
Ext.ColorPalette=function(A){Ext.ColorPalette.superclass.constructor.call(this,A);this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope,true)}};Ext.extend(Ext.ColorPalette,Ext.Component,{itemCls:"x-color-palette",value:null,clickEvent:"click",ctype:"Ext.ColorPalette",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],onRender:function(B,A){var C=this.tpl||new Ext.XTemplate("<tpl for=\".\"><a href=\"#\" class=\"color-{.}\" hidefocus=\"on\"><em><span style=\"background:#{.}\" unselectable=\"on\"> </span></em></a></tpl>");var D=document.createElement("div");D.className=this.itemCls;C.overwrite(D,this.colors);B.dom.insertBefore(D,A);this.el=Ext.get(D);this.el.on(this.clickEvent,this.handleClick,this,{delegate:"a"});if(this.clickEvent!="click"){this.el.on("click",Ext.emptyFn,this,{delegate:"a",preventDefault:true})}},afterRender:function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var A=this.value;this.value=null;this.select(A)}},handleClick:function(B,A){B.preventDefault();if(!this.disabled){var C=A.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(C.toUpperCase())}},select:function(A){A=A.replace("#","");if(A!=this.value||this.allowReselect){var B=this.el;if(this.value){B.child("a.color-"+this.value).removeClass("x-color-palette-sel")}B.child("a.color-"+A).addClass("x-color-palette-sel");this.value=A;this.fireEvent("select",this,A)}}});Ext.reg("colorpalette",Ext.ColorPalette); |
Ext.DatePicker=Ext.extend(Ext.Component,{todayText:"Today",okText:" OK ",cancelText:"Cancel",todayTip:"{0} (Spacebar)",minDate:null,maxDate:null,minText:"This date is before the minimum date",maxText:"This date is after the maximum date",format:"m/d/y",disabledDays:null,disabledDaysText:"",disabledDatesRE:null,disabledDatesText:"",constrainToViewport:true,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)",startDay:0,initComponent:function(){Ext.DatePicker.superclass.initComponent.call(this);this.value=this.value?this.value.clearTime():new Date().clearTime();this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope||this)}this.initDisabledDays()},initDisabledDays:function(){if(!this.disabledDatesRE&&this.disabledDates){var A=this.disabledDates;var C="(?:";for(var B=0;B<A.length;B++){C+=A[B];if(B!=A.length-1){C+="|"}}this.disabledDatesRE=new RegExp(C+")")}},setValue:function(B){var A=this.value;this.value=B.clearTime(true);if(this.el){this.update(this.value)}},getValue:function(){return this.value},focus:function(){if(this.el){this.update(this.activeDate)}},onRender:function(A,F){var C=["<table cellspacing=\"0\">","<tr><td class=\"x-date-left\"><a href=\"#\" title=\"",this.prevText,"\"> </a></td><td class=\"x-date-middle\" align=\"center\"></td><td class=\"x-date-right\"><a href=\"#\" title=\"",this.nextText,"\"> </a></td></tr>","<tr><td colspan=\"3\"><table class=\"x-date-inner\" cellspacing=\"0\"><thead><tr>"];var E=this.dayNames;for(var D=0;D<7;D++){var G=this.startDay+D;if(G>6){G=G-7}C.push("<th><span>",E[G].substr(0,1),"</span></th>")}C[C.length]="</tr></thead><tbody><tr>";for(var D=0;D<42;D++){if(D%7==0&&D!=0){C[C.length]="</tr><tr>"}C[C.length]="<td><a href=\"#\" hidefocus=\"on\" class=\"x-date-date\" tabIndex=\"1\"><em><span></span></em></a></td>"}C[C.length]="</tr></tbody></table></td></tr><tr><td colspan=\"3\" class=\"x-date-bottom\" align=\"center\"></td></tr></table><div class=\"x-date-mp\"></div>";var B=document.createElement("div");B.className="x-date-picker";B.innerHTML=C.join("");A.dom.insertBefore(B,F);this.el=Ext.get(B);this.eventEl=Ext.get(B.firstChild);new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.eventEl.on("mousewheel",this.handleMouseWheel,this);this.monthPicker=this.el.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");var I=new Ext.KeyNav(this.eventEl,{"left":function(J){J.ctrlKey?this.showPrevMonth():this.update(this.activeDate.add("d",-1))},"right":function(J){J.ctrlKey?this.showNextMonth():this.update(this.activeDate.add("d",1))},"up":function(J){J.ctrlKey?this.showNextYear():this.update(this.activeDate.add("d",-7))},"down":function(J){J.ctrlKey?this.showPrevYear():this.update(this.activeDate.add("d",7))},"pageUp":function(J){this.showNextMonth()},"pageDown":function(J){this.showPrevMonth()},"enter":function(J){J.stopPropagation();return true},scope:this});this.eventEl.on("click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:" ",tooltip:this.monthYearText,renderTo:this.el.child("td.x-date-middle",true)});this.mbtn.on("click",this.showMonthPicker,this);this.mbtn.el.child(this.mbtn.menuClassTarget).addClass("x-btn-with-menu");var H=(new Date()).dateFormat(this.format);this.todayBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom",true),text:String.format(this.todayText,H),tooltip:String.format(this.todayTip,H),handler:this.selectToday,scope:this});if(Ext.isIE){this.el.repaint()}this.update(this.value)},createMonthPicker:function(){if(!this.monthPicker.dom.firstChild){var A=["<table border=\"0\" cellspacing=\"0\">"];for(var B=0;B<6;B++){A.push("<tr><td class=\"x-date-mp-month\"><a href=\"#\">",this.monthNames[B].substr(0,3),"</a></td>","<td class=\"x-date-mp-month x-date-mp-sep\"><a href=\"#\">",this.monthNames[B+6].substr(0,3),"</a></td>",B==0?"<td class=\"x-date-mp-ybtn\" align=\"center\"><a class=\"x-date-mp-prev\"></a></td><td class=\"x-date-mp-ybtn\" align=\"center\"><a class=\"x-date-mp-next\"></a></td></tr>":"<td class=\"x-date-mp-year\"><a href=\"#\"></a></td><td class=\"x-date-mp-year\"><a href=\"#\"></a></td></tr>")}A.push("<tr class=\"x-date-mp-btns\"><td colspan=\"4\"><button type=\"button\" class=\"x-date-mp-ok\">",this.okText,"</button><button type=\"button\" class=\"x-date-mp-cancel\">",this.cancelText,"</button></td></tr>","</table>");this.monthPicker.update(A.join(""));this.monthPicker.on("click",this.onMonthClick,this);this.monthPicker.on("dblclick",this.onMonthDblClick,this);this.mpMonths=this.monthPicker.select("td.x-date-mp-month");this.mpYears=this.monthPicker.select("td.x-date-mp-year");this.mpMonths.each(function(C,D,E){E+=1;if((E%2)==0){C.dom.xmonth=5+Math.round(E*0.5)}else{C.dom.xmonth=Math.round((E-1)*0.5)}})}},showMonthPicker:function(){this.createMonthPicker();var A=this.el.getSize();this.monthPicker.setSize(A);this.monthPicker.child("table").setSize(A);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn("t",{duration:0.2})},updateMPYear:function(E){this.mpyear=E;var C=this.mpYears.elements;for(var B=1;B<=10;B++){var D=C[B-1],A;if((B%2)==0){A=E+Math.round(B*0.5);D.firstChild.innerHTML=A;D.xyear=A}else{A=E-(5-Math.round(B*0.5));D.firstChild.innerHTML=A;D.xyear=A}this.mpYears.item(B-1)[A==this.mpSelYear?"addClass":"removeClass"]("x-date-mp-sel")}},updateMPMonth:function(A){this.mpMonths.each(function(B,C,D){B[B.dom.xmonth==A?"addClass":"removeClass"]("x-date-mp-sel")})},selectMPMonth:function(A){},onMonthClick:function(D,B){D.stopEvent();var C=new Ext.Element(B),A;if(C.is("button.x-date-mp-cancel")){this.hideMonthPicker()}else{if(C.is("button.x-date-mp-ok")){this.update(new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}else{if(A=C.up("td.x-date-mp-month",2)){this.mpMonths.removeClass("x-date-mp-sel");A.addClass("x-date-mp-sel");this.mpSelMonth=A.dom.xmonth}else{if(A=C.up("td.x-date-mp-year",2)){this.mpYears.removeClass("x-date-mp-sel");A.addClass("x-date-mp-sel");this.mpSelYear=A.dom.xyear}else{if(C.is("a.x-date-mp-prev")){this.updateMPYear(this.mpyear-10)}else{if(C.is("a.x-date-mp-next")){this.updateMPYear(this.mpyear+10)}}}}}}},onMonthDblClick:function(D,B){D.stopEvent();var C=new Ext.Element(B),A;if(A=C.up("td.x-date-mp-month",2)){this.update(new Date(this.mpSelYear,A.dom.xmonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}else{if(A=C.up("td.x-date-mp-year",2)){this.update(new Date(A.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}}},hideMonthPicker:function(A){if(this.monthPicker){if(A===true){this.monthPicker.hide()}else{this.monthPicker.slideOut("t",{duration:0.2})}}},showPrevMonth:function(A){this.update(this.activeDate.add("mo",-1))},showNextMonth:function(A){this.update(this.activeDate.add("mo",1))},showPrevYear:function(){this.update(this.activeDate.add("y",-1))},showNextYear:function(){this.update(this.activeDate.add("y",1))},handleMouseWheel:function(A){var B=A.getWheelDelta();if(B>0){this.showPrevMonth();A.stopEvent()}else{if(B<0){this.showNextMonth();A.stopEvent()}}},handleDateClick:function(B,A){B.stopEvent();if(A.dateValue&&!Ext.fly(A.parentNode).hasClass("x-date-disabled")){this.setValue(new Date(A.dateValue));this.fireEvent("select",this,this.value)}},selectToday:function(){this.setValue(new Date().clearTime());this.fireEvent("select",this,this.value)},update:function(W){var A=this.activeDate;this.activeDate=W;if(A&&this.el){var I=W.getTime();if(A.getMonth()==W.getMonth()&&A.getFullYear()==W.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(a){if(a.dom.firstChild.dateValue==I){a.addClass("x-date-selected");setTimeout(function(){try{a.dom.firstChild.focus()}catch(b){}},50);return false}});return }}var F=W.getDaysInMonth();var J=W.getFirstDateOfMonth();var C=J.getDay()-this.startDay;if(C<=this.startDay){C+=7}var S=W.add("mo",-1);var D=S.getDaysInMonth()-C;var B=this.cells.elements;var K=this.textNodes;F+=C;var P=86400000;var U=(new Date(S.getFullYear(),S.getMonth(),D)).clearTime();var T=new Date().clearTime().getTime();var N=W.clearTime().getTime();var M=this.minDate?this.minDate.clearTime():Number.NEGATIVE_INFINITY;var Q=this.maxDate?this.maxDate.clearTime():Number.POSITIVE_INFINITY;var X=this.disabledDatesRE;var L=this.disabledDatesText;var Z=this.disabledDays?this.disabledDays.join(""):false;var V=this.disabledDaysText;var R=this.format;var G=function(d,a){a.title="";var b=U.getTime();a.firstChild.dateValue=b;if(b==T){a.className+=" x-date-today";a.title=d.todayText}if(b==N){a.className+=" x-date-selected";setTimeout(function(){try{a.firstChild.focus()}catch(f){}},50)}if(b<M){a.className=" x-date-disabled";a.title=d.minText;return }if(b>Q){a.className=" x-date-disabled";a.title=d.maxText;return }if(Z){if(Z.indexOf(U.getDay())!=-1){a.title=V;a.className=" x-date-disabled"}}if(X&&R){var c=U.dateFormat(R);if(X.test(c)){a.title=L.replace("%0",c);a.className=" x-date-disabled"}}};var O=0;for(;O<C;O++){K[O].innerHTML=(++D);U.setDate(U.getDate()+1);B[O].className="x-date-prevday";G(this,B[O])}for(;O<F;O++){intDay=O-C+1;K[O].innerHTML=(intDay);U.setDate(U.getDate()+1);B[O].className="x-date-active";G(this,B[O])}var Y=0;for(;O<42;O++){K[O].innerHTML=(++Y);U.setDate(U.getDate()+1);B[O].className="x-date-nextday";G(this,B[O])}this.mbtn.setText(this.monthNames[W.getMonth()]+" "+W.getFullYear());if(!this.internalRender){var E=this.el.dom.firstChild;var H=E.offsetWidth;this.el.setWidth(H+this.el.getBorderWidth("lr"));Ext.fly(E).setWidth(H);this.internalRender=true;if(Ext.isOpera&&!this.secondPass){E.rows[0].cells[1].style.width=(H-(E.rows[0].cells[0].offsetWidth+E.rows[0].cells[2].offsetWidth))+"px";this.secondPass=true;this.update.defer(10,this,[W])}}},beforeDestroy:function(){this.mbtn.destroy();this.todayBtn.destroy()}});Ext.reg("datepicker",Ext.DatePicker); |
Ext.TabPanel=Ext.extend(Ext.Panel,{monitorResize:true,deferredRender:true,tabWidth:120,minTabWidth:30,resizeTabs:false,enableTabScroll:false,scrollIncrement:0,scrollRepeatInterval:400,scrollDuration:0.35,animScroll:true,tabPosition:"top",baseCls:"x-tab-panel",autoTabs:false,autoTabSelector:"div.x-tab",activeTab:null,tabMargin:2,plain:false,wheelIncrement:20,idDelimiter:"__",itemCls:"x-tab-item",elements:"body",headerAsText:false,frame:false,hideBorders:true,initComponent:function(){this.frame=false;Ext.TabPanel.superclass.initComponent.call(this);this.addEvents("beforetabchange","tabchange","contextmenu");this.setLayout(new Ext.layout.CardLayout({deferredRender:this.deferredRender}));if(this.tabPosition=="top"){this.elements+=",header";this.stripTarget="header"}else{this.elements+=",footer";this.stripTarget="footer"}if(!this.stack){this.stack=Ext.TabPanel.AccessStack()}this.initItems()},render:function(){Ext.TabPanel.superclass.render.apply(this,arguments);if(this.activeTab!==undefined){var A=this.activeTab;delete this.activeTab;this.setActiveTab(A)}},onRender:function(C,A){Ext.TabPanel.superclass.onRender.call(this,C,A);if(this.plain){var E=this.tabPosition=="top"?"header":"footer";this[E].addClass("x-tab-panel-"+E+"-plain")}var B=this[this.stripTarget];this.stripWrap=B.createChild({cls:"x-tab-strip-wrap",cn:{tag:"ul",cls:"x-tab-strip x-tab-strip-"+this.tabPosition}});this.stripSpacer=B.createChild({cls:"x-tab-strip-spacer"});this.strip=new Ext.Element(this.stripWrap.dom.firstChild);this.edge=this.strip.createChild({tag:"li",cls:"x-tab-edge"});this.strip.createChild({cls:"x-clear"});this.body.addClass("x-tab-panel-body-"+this.tabPosition);if(!this.itemTpl){var D=new Ext.Template("<li class=\"{cls}\" id=\"{id}\"><a class=\"x-tab-strip-close\" onclick=\"return false;\"></a>","<a class=\"x-tab-right\" href=\"#\" onclick=\"return false;\"><em class=\"x-tab-left\">","<span class=\"x-tab-strip-inner\"><span class=\"x-tab-strip-text {iconCls}\">{text}</span></span>","</em></a></li>");D.disableFormats=true;D.compile();Ext.TabPanel.prototype.itemTpl=D}this.items.each(this.initTab,this)},afterRender:function(){Ext.TabPanel.superclass.afterRender.call(this);if(this.autoTabs){this.readTabs(false)}},initEvents:function(){Ext.TabPanel.superclass.initEvents.call(this);this.on("add",this.onAdd,this);this.on("remove",this.onRemove,this);this.strip.on("mousedown",this.onStripMouseDown,this);this.strip.on("click",this.onStripClick,this);this.strip.on("contextmenu",this.onStripContextMenu,this);if(this.enableTabScroll){this.strip.on("mousewheel",this.onWheel,this)}},findTargets:function(C){var B=null;var A=C.getTarget("li",this.strip);if(A){B=this.getComponent(A.id.split(this.idDelimiter)[1]);if(B.disabled){return{close:null,item:null,el:null}}}return{close:C.getTarget(".x-tab-strip-close",this.strip),item:B,el:A}},onStripMouseDown:function(B){B.preventDefault();if(B.button!=0){return }var A=this.findTargets(B);if(A.close){this.remove(A.item);return }if(A.item&&A.item!=this.activeTab){this.setActiveTab(A.item)}},onStripClick:function(B){var A=this.findTargets(B);if(!A.close&&A.item&&A.item!=this.activeTab){this.setActiveTab(A.item)}},onStripContextMenu:function(B){B.preventDefault();var A=this.findTargets(B);if(A.item){this.fireEvent("contextmenu",this,A.item,B)}},readTabs:function(D){if(D===true){this.items.each(function(G){this.remove(G)},this)}var C=this.el.query(this.autoTabSelector);for(var B=0,A=C.length;B<A;B++){var E=C[B];var F=E.getAttribute("title");E.removeAttribute("title");this.add({title:F,el:E})}},initTab:function(D,B){var E=this.strip.dom.childNodes[B];var A=D.closable?"x-tab-strip-closable":"";if(D.disabled){A+=" x-item-disabled"}if(D.iconCls){A+=" x-tab-with-icon"}if(D.tabCls){A+=" "+D.tabCls}var F={id:this.id+this.idDelimiter+D.getItemId(),text:D.title,cls:A,iconCls:D.iconCls||""};var C=E?this.itemTpl.insertBefore(E,F):this.itemTpl.append(this.strip,F);Ext.fly(C).addClassOnOver("x-tab-strip-over");if(D.tabTip){Ext.fly(C).child("span.x-tab-strip-text",true).qtip=D.tabTip}D.on("disable",this.onItemDisabled,this);D.on("enable",this.onItemEnabled,this);D.on("titlechange",this.onItemTitleChanged,this);D.on("beforeshow",this.onBeforeShowItem,this)},onAdd:function(C,B,A){this.initTab(B,A);if(this.items.getCount()==1){this.syncSize()}this.delegateUpdates()},onBeforeAdd:function(B){var A=B.events?(this.items.containsKey(B.getItemId())?B:null):this.items.get(B);if(A){this.setActiveTab(B);return false}Ext.TabPanel.superclass.onBeforeAdd.apply(this,arguments);var C=B.elements;B.elements=C?C.replace(",header",""):C;B.border=(B.border===true)},onRemove:function(C,B){Ext.removeNode(this.getTabEl(B));this.stack.remove(B);if(B==this.activeTab){var A=this.stack.next();if(A){this.setActiveTab(A)}else{this.setActiveTab(0)}}this.delegateUpdates()},onBeforeShowItem:function(A){if(A!=this.activeTab){this.setActiveTab(A);return false}},onItemDisabled:function(B){var A=this.getTabEl(B);if(A){Ext.fly(A).addClass("x-item-disabled")}this.stack.remove(B)},onItemEnabled:function(B){var A=this.getTabEl(B);if(A){Ext.fly(A).removeClass("x-item-disabled")}},onItemTitleChanged:function(B){var A=this.getTabEl(B);if(A){Ext.fly(A).child("span.x-tab-strip-text",true).innerHTML=B.title}},getTabEl:function(A){var B=(typeof A==="number")?this.items.items[A].getItemId():A.getItemId();return document.getElementById(this.id+this.idDelimiter+B)},onResize:function(){Ext.TabPanel.superclass.onResize.apply(this,arguments);this.delegateUpdates()},beginUpdate:function(){this.suspendUpdates=true},endUpdate:function(){this.suspendUpdates=false;this.delegateUpdates()},hideTabStripItem:function(B){B=this.getComponent(B);var A=this.getTabEl(B);if(A){A.style.display="none";this.delegateUpdates()}},unhideTabStripItem:function(B){B=this.getComponent(B);var A=this.getTabEl(B);if(A){A.style.display="";this.delegateUpdates()}},delegateUpdates:function(){if(this.suspendUpdates){return }if(this.resizeTabs&&this.rendered){this.autoSizeTabs()}if(this.enableTabScroll&&this.rendered){this.autoScrollTabs()}},autoSizeTabs:function(){var G=this.items.length;var B=this.tabPosition!="bottom"?"header":"footer";var C=this[B].dom.offsetWidth;var A=this[B].dom.clientWidth;if(!this.resizeTabs||G<1||!A){return }var I=Math.max(Math.min(Math.floor((A-4)/G)-this.tabMargin,this.tabWidth),this.minTabWidth);this.lastTabWidth=I;var K=this.stripWrap.dom.getElementsByTagName("li");for(var E=0,H=K.length-1;E<H;E++){var J=K[E];var L=J.childNodes[1].firstChild.firstChild;var F=J.offsetWidth;var D=L.offsetWidth;L.style.width=(I-(F-D))+"px"}},adjustBodyWidth:function(A){if(this.header){this.header.setWidth(A)}if(this.footer){this.footer.setWidth(A)}return A},setActiveTab:function(C){C=this.getComponent(C);if(!C||this.fireEvent("beforetabchange",this,C,this.activeTab)===false){return }if(!this.rendered){this.activeTab=C;return }if(this.activeTab!=C){if(this.activeTab){var A=this.getTabEl(this.activeTab);if(A){Ext.fly(A).removeClass("x-tab-strip-active")}this.activeTab.fireEvent("deactivate",this.activeTab)}var B=this.getTabEl(C);Ext.fly(B).addClass("x-tab-strip-active");this.activeTab=C;this.stack.add(C);this.layout.setActiveItem(C);if(this.layoutOnTabChange&&C.doLayout){C.doLayout()}if(this.scrolling){this.scrollToTab(C,this.animScroll)}C.fireEvent("activate",C);this.fireEvent("tabchange",this,C)}},getActiveTab:function(){return this.activeTab||null},getItem:function(A){return this.getComponent(A)},autoScrollTabs:function(){var G=this.items.length;var D=this.header.dom.offsetWidth;var C=this.header.dom.clientWidth;var F=this.stripWrap;var E=F.dom;var B=E.offsetWidth;var H=this.getScrollPos();var A=this.edge.getOffsetsTo(this.stripWrap)[0]+H;if(!this.enableTabScroll||G<1||B<20){return }if(A<=C){E.scrollLeft=0;F.setWidth(C);if(this.scrolling){this.scrolling=false;this.header.removeClass("x-tab-scrolling");this.scrollLeft.hide();this.scrollRight.hide();if(Ext.isAir){E.style.marginLeft="";E.style.marginRight=""}}}else{if(!this.scrolling){this.header.addClass("x-tab-scrolling");if(Ext.isAir){E.style.marginLeft="18px";E.style.marginRight="18px"}}C-=F.getMargins("lr");F.setWidth(C>20?C:20);if(!this.scrolling){if(!this.scrollLeft){this.createScrollers()}else{this.scrollLeft.show();this.scrollRight.show()}}this.scrolling=true;if(H>(A-C)){E.scrollLeft=A-C}else{this.scrollToTab(this.activeTab,false)}this.updateScrollButtons()}},createScrollers:function(){var C=this.stripWrap.dom.offsetHeight;var A=this.header.insertFirst({cls:"x-tab-scroller-left"});A.setHeight(C);A.addClassOnOver("x-tab-scroller-left-over");this.leftRepeater=new Ext.util.ClickRepeater(A,{interval:this.scrollRepeatInterval,handler:this.onScrollLeft,scope:this});this.scrollLeft=A;var B=this.header.insertFirst({cls:"x-tab-scroller-right"});B.setHeight(C);B.addClassOnOver("x-tab-scroller-right-over");this.rightRepeater=new Ext.util.ClickRepeater(B,{interval:this.scrollRepeatInterval,handler:this.onScrollRight,scope:this});this.scrollRight=B},getScrollWidth:function(){return this.edge.getOffsetsTo(this.stripWrap)[0]+this.getScrollPos()},getScrollPos:function(){return parseInt(this.stripWrap.dom.scrollLeft,10)||0},getScrollArea:function(){return parseInt(this.stripWrap.dom.clientWidth,10)||0},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this}},getScrollIncrement:function(){return this.scrollIncrement||(this.resizeTabs?this.lastTabWidth+2:100)},scrollToTab:function(E,A){if(!E){return }var C=this.getTabEl(E);var G=this.getScrollPos(),D=this.getScrollArea();var F=Ext.fly(C).getOffsetsTo(this.stripWrap)[0]+G;var B=F+C.offsetWidth;if(F<G){this.scrollTo(F,A)}else{if(B>(G+D)){this.scrollTo(B-D,A)}}},scrollTo:function(B,A){this.stripWrap.scrollTo("left",B,A?this.getScrollAnim():false);if(!A){this.updateScrollButtons()}},onWheel:function(D){var E=D.getWheelDelta()*this.wheelIncrement*-1;D.stopEvent();var F=this.getScrollPos();var C=F+E;var A=this.getScrollWidth()-this.getScrollArea();var B=Math.max(0,Math.min(A,C));if(B!=F){this.scrollTo(B,false)}},onScrollRight:function(){var A=this.getScrollWidth()-this.getScrollArea();var C=this.getScrollPos();var B=Math.min(A,C+this.getScrollIncrement());if(B!=C){this.scrollTo(B,this.animScroll)}},onScrollLeft:function(){var B=this.getScrollPos();var A=Math.max(0,B-this.getScrollIncrement());if(A!=B){this.scrollTo(A,this.animScroll)}},updateScrollButtons:function(){var A=this.getScrollPos();this.scrollLeft[A==0?"addClass":"removeClass"]("x-tab-scroller-left-disabled");this.scrollRight[A>=(this.getScrollWidth()-this.getScrollArea())?"addClass":"removeClass"]("x-tab-scroller-right-disabled")}});Ext.reg("tabpanel",Ext.TabPanel);Ext.TabPanel.prototype.activate=Ext.TabPanel.prototype.setActiveTab;Ext.TabPanel.AccessStack=function(){var A=[];return{add:function(B){A.push(B);if(A.length>10){A.shift()}},remove:function(E){var D=[];for(var C=0,B=A.length;C<B;C++){if(A[C]!=E){D.push(A[C])}}A=D},next:function(){return A.pop()}}}; |
Ext.Button=Ext.extend(Ext.Component,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:"button",menuClassTarget:"tr",clickEvent:"click",handleMouseEvents:true,tooltipType:"qtip",buttonSelector:"button:first",initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle","mouseover","mouseout","menushow","menuhide","menutriggerover","menutriggerout");if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu)}if(typeof this.toggleGroup==="string"){this.enableToggle=true}},onRender:function(C,A){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate=new Ext.Template("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"x-btn-wrap\"><tbody><tr>","<td class=\"x-btn-left\"><i> </i></td><td class=\"x-btn-center\"><em unselectable=\"on\"><button class=\"x-btn-text\" type=\"{1}\">{0}</button></em></td><td class=\"x-btn-right\"><i> </i></td>","</tr></tbody></table>")}this.template=Ext.Button.buttonTemplate}var B,E=[this.text||" ",this.type];if(A){B=this.template.insertBefore(A,E,true)}else{B=this.template.append(C,E,true)}var D=B.child(this.buttonSelector);D.on("focus",this.onFocus,this);D.on("blur",this.onBlur,this);this.initButtonEl(B,D);if(this.menu){this.el.child(this.menuClassTarget).addClass("x-btn-with-menu")}Ext.ButtonToggleMgr.register(this)},initButtonEl:function(B,C){this.el=B;B.addClass("x-btn");if(this.icon){C.setStyle("background-image","url("+this.icon+")")}if(this.iconCls){C.addClass(this.iconCls);if(!this.cls){B.addClass(this.text?"x-btn-text-icon":"x-btn-icon")}}if(this.tabIndex!==undefined){C.dom.tabIndex=this.tabIndex}if(this.tooltip){if(typeof this.tooltip=="object"){Ext.QuickTips.register(Ext.apply({target:C.id},this.tooltip))}else{C.dom[this.tooltipType]=this.tooltip}}if(this.pressed){this.el.addClass("x-btn-pressed")}if(this.handleMouseEvents){B.on("mouseover",this.onMouseOver,this);B.on("mousedown",this.onMouseDown,this)}if(this.menu){this.menu.on("show",this.onMenuShow,this);this.menu.on("hide",this.onMenuHide,this)}if(this.id){this.el.dom.id=this.el.id=this.id}if(this.repeat){var A=new Ext.util.ClickRepeater(B,typeof this.repeat=="object"?this.repeat:{});A.on("click",this.onClick,this)}B.on(this.clickEvent,this.onClick,this)},afterRender:function(){Ext.Button.superclass.afterRender.call(this);if(Ext.isIE6){this.autoWidth.defer(1,this)}else{this.autoWidth()}},setIconClass:function(A){if(this.el){this.el.child(this.buttonSelector).replaceClass(this.iconCls,A)}this.iconCls=A},beforeDestroy:function(){if(this.rendered){var A=this.el.child(this.buttonSelector);if(A){A.removeAllListeners()}}if(this.menu){Ext.destroy(this.menu)}},onDestroy:function(){if(this.rendered){Ext.ButtonToggleMgr.unregister(this)}},autoWidth:function(){if(this.el){this.el.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var A=this.el.child(this.buttonSelector);if(A&&A.getWidth()>20){A.clip();A.setWidth(Ext.util.TextMetrics.measure(A,this.text).width+A.getFrameWidth("lr"))}}if(this.minWidth){if(this.el.getWidth()<this.minWidth){this.el.setWidth(this.minWidth)}}}},setHandler:function(B,A){this.handler=B;this.scope=A},setText:function(A){this.text=A;if(this.el){this.el.child("td.x-btn-center "+this.buttonSelector).update(A)}this.autoWidth()},getText:function(){return this.text},toggle:function(A){A=A===undefined?!this.pressed:A;if(A!=this.pressed){if(A){this.el.addClass("x-btn-pressed");this.pressed=true;this.fireEvent("toggle",this,true)}else{this.el.removeClass("x-btn-pressed");this.pressed=false;this.fireEvent("toggle",this,false)}if(this.toggleHandler){this.toggleHandler.call(this.scope||this,this,A)}}},focus:function(){this.el.child(this.buttonSelector).focus()},onDisable:function(){if(this.el){if(!Ext.isIE6||!this.text){this.el.addClass(this.disabledClass)}this.el.dom.disabled=true}this.disabled=true},onEnable:function(){if(this.el){if(!Ext.isIE6||!this.text){this.el.removeClass(this.disabledClass)}this.el.dom.disabled=false}this.disabled=false},showMenu:function(){if(this.menu){this.menu.show(this.el,this.menuAlign)}return this},hideMenu:function(){if(this.menu){this.menu.hide()}return this},hasVisibleMenu:function(){return this.menu&&this.menu.isVisible()},onClick:function(A){if(A){A.preventDefault()}if(A.button!=0){return }if(!this.disabled){if(this.enableToggle&&(this.allowDepress!==false||!this.pressed)){this.toggle()}if(this.menu&&!this.menu.isVisible()&&!this.ignoreNextClick){this.showMenu()}this.fireEvent("click",this,A);if(this.handler){this.handler.call(this.scope||this,this,A)}}},isMenuTriggerOver:function(B,A){return this.menu&&!A},isMenuTriggerOut:function(B,A){return this.menu&&!A},onMouseOver:function(B){if(!this.disabled){var A=B.within(this.el,true);if(!A){this.el.addClass("x-btn-over");Ext.getDoc().on("mouseover",this.monitorMouseOver,this);this.fireEvent("mouseover",this,B)}if(this.isMenuTriggerOver(B,A)){this.fireEvent("menutriggerover",this,this.menu,B)}}},monitorMouseOver:function(A){if(A.target!=this.el.dom&&!A.within(this.el)){Ext.getDoc().un("mouseover",this.monitorMouseOver,this);this.onMouseOut(A)}},onMouseOut:function(B){var A=B.within(this.el)&&B.target!=this.el.dom;this.el.removeClass("x-btn-over");this.fireEvent("mouseout",this,B);if(this.isMenuTriggerOut(B,A)){this.fireEvent("menutriggerout",this,this.menu,B)}},onFocus:function(A){if(!this.disabled){this.el.addClass("x-btn-focus")}},onBlur:function(A){this.el.removeClass("x-btn-focus")},getClickEl:function(B,A){return this.el},onMouseDown:function(A){if(!this.disabled&&A.button==0){this.getClickEl(A).addClass("x-btn-click");Ext.getDoc().on("mouseup",this.onMouseUp,this)}},onMouseUp:function(A){if(A.button==0){this.getClickEl(A,true).removeClass("x-btn-click");Ext.getDoc().un("mouseup",this.onMouseUp,this)}},onMenuShow:function(A){this.ignoreNextClick=0;this.el.addClass("x-btn-menu-active");this.fireEvent("menushow",this,this.menu)},onMenuHide:function(A){this.el.removeClass("x-btn-menu-active");this.ignoreNextClick=this.restoreClick.defer(250,this);this.fireEvent("menuhide",this,this.menu)},restoreClick:function(){this.ignoreNextClick=0}});Ext.reg("button",Ext.Button);Ext.ButtonToggleMgr=function(){var A={};function B(E,G){if(G){var F=A[E.toggleGroup];for(var D=0,C=F.length;D<C;D++){if(F[D]!=E){F[D].toggle(false)}}}}return{register:function(C){if(!C.toggleGroup){return }var D=A[C.toggleGroup];if(!D){D=A[C.toggleGroup]=[]}D.push(C);C.on("toggle",B)},unregister:function(C){if(!C.toggleGroup){return }var D=A[C.toggleGroup];if(D){D.remove(C);C.un("toggle",B)}}}}(); |
Ext.SplitButton=Ext.extend(Ext.Button,{arrowSelector:"button:last",initComponent:function(){Ext.SplitButton.superclass.initComponent.call(this);this.addEvents("arrowclick")},onRender:function(D,A){var B=new Ext.Template("<table cellspacing=\"0\" class=\"x-btn-menu-wrap x-btn\"><tr><td>","<table cellspacing=\"0\" class=\"x-btn-wrap x-btn-menu-text-wrap\"><tbody>","<tr><td class=\"x-btn-left\"><i> </i></td><td class=\"x-btn-center\"><button class=\"x-btn-text\" type=\"{1}\">{0}</button></td></tr>","</tbody></table></td><td>","<table cellspacing=\"0\" class=\"x-btn-wrap x-btn-menu-arrow-wrap\"><tbody>","<tr><td class=\"x-btn-center\"><button class=\"x-btn-menu-arrow-el\" type=\"button\"> </button></td><td class=\"x-btn-right\"><i> </i></td></tr>","</tbody></table></td></tr></table>");var C,F=[this.text||" ",this.type];if(A){C=B.insertBefore(A,F,true)}else{C=B.append(D,F,true)}var E=C.child(this.buttonSelector);this.initButtonEl(C,E);this.arrowBtnTable=C.child("table:last");if(this.arrowTooltip){C.child(this.arrowSelector).dom[this.tooltipType]=this.arrowTooltip}},autoWidth:function(){if(this.el){var C=this.el.child("table:first");var B=this.el.child("table:last");this.el.setWidth("auto");C.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var A=this.el.child(this.buttonSelector);if(A&&A.getWidth()>20){A.clip();A.setWidth(Ext.util.TextMetrics.measure(A,this.text).width+A.getFrameWidth("lr"))}}if(this.minWidth){if((C.getWidth()+B.getWidth())<this.minWidth){C.setWidth(this.minWidth-B.getWidth())}}this.el.setWidth(C.getWidth()+B.getWidth())}},setArrowHandler:function(B,A){this.arrowHandler=B;this.scope=A},onClick:function(A){A.preventDefault();if(!this.disabled){if(A.getTarget(".x-btn-menu-arrow-wrap")){if(this.menu&&!this.menu.isVisible()&&!this.ignoreNextClick){this.showMenu()}this.fireEvent("arrowclick",this,A);if(this.arrowHandler){this.arrowHandler.call(this.scope||this,this,A)}}else{if(this.enableToggle){this.toggle()}this.fireEvent("click",this,A);if(this.handler){this.handler.call(this.scope||this,this,A)}}}},getClickEl:function(B,A){if(!A){return(this.lastClickEl=B.getTarget("table",10,true))}return this.lastClickEl},onDisable:function(){if(this.el){if(!Ext.isIE6){this.el.addClass("x-item-disabled")}this.el.child(this.buttonSelector).dom.disabled=true;this.el.child(this.arrowSelector).dom.disabled=true}this.disabled=true},onEnable:function(){if(this.el){if(!Ext.isIE6){this.el.removeClass("x-item-disabled")}this.el.child(this.buttonSelector).dom.disabled=false;this.el.child(this.arrowSelector).dom.disabled=false}this.disabled=false},isMenuTriggerOver:function(A){return this.menu&&A.within(this.arrowBtnTable)&&!A.within(this.arrowBtnTable,true)},isMenuTriggerOut:function(B,A){return this.menu&&!B.within(this.arrowBtnTable)},onDestroy:function(){Ext.destroy(this.arrowBtnTable);Ext.SplitButton.superclass.onDestroy.call(this)}});Ext.MenuButton=Ext.SplitButton;Ext.reg("splitbutton",Ext.SplitButton); |
Ext.CycleButton=Ext.extend(Ext.SplitButton,{getItemText:function(A){if(A&&this.showText===true){var B="";if(this.prependText){B+=this.prependText}B+=A.text;return B}return undefined},setActiveItem:function(C,A){if(typeof C!="object"){C=this.menu.items.get(C)}if(C){if(!this.rendered){this.text=this.getItemText(C);this.iconCls=C.iconCls}else{var B=this.getItemText(C);if(B){this.setText(B)}this.setIconClass(C.iconCls)}this.activeItem=C;if(!C.checked){C.setChecked(true,true)}if(this.forceIcon){this.setIconClass(this.forceIcon)}if(!A){this.fireEvent("change",this,C)}}},getActiveItem:function(){return this.activeItem},initComponent:function(){this.addEvents("change");if(this.changeHandler){this.on("change",this.changeHandler,this.scope||this);delete this.changeHandler}this.itemCount=this.items.length;this.menu={cls:"x-cycle-menu",items:[]};var D;for(var B=0,A=this.itemCount;B<A;B++){var C=this.items[B];C.group=C.group||this.id;C.itemIndex=B;C.checkHandler=this.checkHandler;C.scope=this;C.checked=C.checked||false;this.menu.items.push(C);if(C.checked){D=C}}this.setActiveItem(D,true);Ext.CycleButton.superclass.initComponent.call(this);this.on("click",this.toggleSelected,this)},checkHandler:function(A,B){if(B){this.setActiveItem(A)}},toggleSelected:function(){this.menu.render();var C,A;for(var B=1;B<this.itemCount;B++){C=(this.activeItem.itemIndex+B)%this.itemCount;A=this.menu.items.itemAt(C);if(!A.disabled){A.setChecked(true);break}}}});Ext.reg("cycle",Ext.CycleButton); |
Ext.Toolbar=function(A){if(Ext.isArray(A)){A={buttons:A}}Ext.Toolbar.superclass.constructor.call(this,A)};(function(){var A=Ext.Toolbar;Ext.extend(A,Ext.BoxComponent,{trackMenus:true,initComponent:function(){A.superclass.initComponent.call(this);if(this.items){this.buttons=this.items}this.items=new Ext.util.MixedCollection(false,function(B){return B.itemId||B.id||Ext.id()})},autoCreate:{cls:"x-toolbar x-small-editor",html:"<table cellspacing=\"0\"><tr></tr></table>"},onRender:function(C,B){this.el=C.createChild(Ext.apply({id:this.id},this.autoCreate),B);this.tr=this.el.child("tr",true)},afterRender:function(){A.superclass.afterRender.call(this);if(this.buttons){this.add.apply(this,this.buttons);delete this.buttons}},add:function(){var C=arguments,B=C.length;for(var D=0;D<B;D++){var E=C[D];if(E.isFormField){this.addField(E)}else{if(E.render){this.addItem(E)}else{if(typeof E=="string"){if(E=="separator"||E=="-"){this.addSeparator()}else{if(E==" "){this.addSpacer()}else{if(E=="->"){this.addFill()}else{this.addText(E)}}}}else{if(E.tagName){this.addElement(E)}else{if(typeof E=="object"){if(E.xtype){this.addField(Ext.ComponentMgr.create(E,"button"))}else{this.addButton(E)}}}}}}}},addSeparator:function(){return this.addItem(new A.Separator())},addSpacer:function(){return this.addItem(new A.Spacer())},addFill:function(){return this.addItem(new A.Fill())},addElement:function(B){return this.addItem(new A.Item(B))},addItem:function(B){var C=this.nextBlock();this.initMenuTracking(B);B.render(C);this.items.add(B);return B},addButton:function(D){if(Ext.isArray(D)){var F=[];for(var E=0,C=D.length;E<C;E++){F.push(this.addButton(D[E]))}return F}var B=D;if(!(D instanceof A.Button)){B=D.split?new A.SplitButton(D):new A.Button(D)}var G=this.nextBlock();this.initMenuTracking(B);B.render(G);this.items.add(B);return B},initMenuTracking:function(B){if(this.trackMenus&&B.menu){B.on({"menutriggerover":this.onButtonTriggerOver,"menushow":this.onButtonMenuShow,"menuhide":this.onButtonMenuHide,scope:this})}},addText:function(B){return this.addItem(new A.TextItem(B))},insertButton:function(C,F){if(Ext.isArray(F)){var E=[];for(var D=0,B=F.length;D<B;D++){E.push(this.insertButton(C+D,F[D]))}return E}if(!(F instanceof A.Button)){F=new A.Button(F)}var G=document.createElement("td");this.tr.insertBefore(G,this.tr.childNodes[C]);this.initMenuTracking(F);F.render(G);this.items.insert(C,F);return F},addDom:function(C,B){var E=this.nextBlock();Ext.DomHelper.overwrite(E,C);var D=new A.Item(E.firstChild);D.render(E);this.items.add(D);return D},addField:function(C){var D=this.nextBlock();C.render(D);var B=new A.Item(D.firstChild);B.render(D);this.items.add(B);return B},nextBlock:function(){var B=document.createElement("td");this.tr.appendChild(B);return B},onDestroy:function(){Ext.Toolbar.superclass.onDestroy.call(this);if(this.rendered){if(this.items){Ext.destroy.apply(Ext,this.items.items)}Ext.Element.uncache(this.tr)}},onDisable:function(){this.items.each(function(B){if(B.disable){B.disable()}})},onEnable:function(){this.items.each(function(B){if(B.enable){B.enable()}})},onButtonTriggerOver:function(B){if(this.activeMenuBtn&&this.activeMenuBtn!=B){this.activeMenuBtn.hideMenu();B.showMenu();this.activeMenuBtn=B}},onButtonMenuShow:function(B){this.activeMenuBtn=B},onButtonMenuHide:function(B){delete this.activeMenuBtn}});Ext.reg("toolbar",Ext.Toolbar);A.Item=function(B){this.el=Ext.getDom(B);this.id=Ext.id(this.el);this.hidden=false};A.Item.prototype={getEl:function(){return this.el},render:function(B){this.td=B;B.appendChild(this.el)},destroy:function(){if(this.td&&this.td.parentNode){this.td.parentNode.removeChild(this.td)}},show:function(){this.hidden=false;this.td.style.display=""},hide:function(){this.hidden=true;this.td.style.display="none"},setVisible:function(B){if(B){this.show()}else{this.hide()}},focus:function(){Ext.fly(this.el).focus()},disable:function(){Ext.fly(this.td).addClass("x-item-disabled");this.disabled=true;this.el.disabled=true},enable:function(){Ext.fly(this.td).removeClass("x-item-disabled");this.disabled=false;this.el.disabled=false}};Ext.reg("tbitem",A.Item);A.Separator=function(){var B=document.createElement("span");B.className="ytb-sep";A.Separator.superclass.constructor.call(this,B)};Ext.extend(A.Separator,A.Item,{enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg("tbseparator",A.Separator);A.Spacer=function(){var B=document.createElement("div");B.className="ytb-spacer";A.Spacer.superclass.constructor.call(this,B)};Ext.extend(A.Spacer,A.Item,{enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg("tbspacer",A.Spacer);A.Fill=Ext.extend(A.Spacer,{render:function(B){B.style.width="100%";A.Fill.superclass.render.call(this,B)}});Ext.reg("tbfill",A.Fill);A.TextItem=function(B){var C=document.createElement("span");C.className="ytb-text";C.innerHTML=B.text?B.text:B;A.TextItem.superclass.constructor.call(this,C)};Ext.extend(A.TextItem,A.Item,{enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg("tbtext",A.TextItem);A.Button=Ext.extend(Ext.Button,{hideParent:true,onDestroy:function(){A.Button.superclass.onDestroy.call(this);if(this.container){this.container.remove()}}});Ext.reg("tbbutton",A.Button);A.SplitButton=Ext.extend(Ext.SplitButton,{hideParent:true,onDestroy:function(){A.SplitButton.superclass.onDestroy.call(this);if(this.container){this.container.remove()}}});Ext.reg("tbsplit",A.SplitButton);A.MenuButton=A.SplitButton})(); |
Ext.PagingToolbar=Ext.extend(Ext.Toolbar,{pageSize:20,displayMsg:"Displaying {0} - {1} of {2}",emptyMsg:"No data to display",beforePageText:"Page",afterPageText:"of {0}",firstText:"First Page",prevText:"Previous Page",nextText:"Next Page",lastText:"Last Page",refreshText:"Refresh",paramNames:{start:"start",limit:"limit"},initComponent:function(){Ext.PagingToolbar.superclass.initComponent.call(this);this.cursor=0;this.bind(this.store)},onRender:function(B,A){Ext.PagingToolbar.superclass.onRender.call(this,B,A);this.first=this.addButton({tooltip:this.firstText,iconCls:"x-tbar-page-first",disabled:true,handler:this.onClick.createDelegate(this,["first"])});this.prev=this.addButton({tooltip:this.prevText,iconCls:"x-tbar-page-prev",disabled:true,handler:this.onClick.createDelegate(this,["prev"])});this.addSeparator();this.add(this.beforePageText);this.field=Ext.get(this.addDom({tag:"input",type:"text",size:"3",value:"1",cls:"x-tbar-page-number"}).el);this.field.on("keydown",this.onPagingKeydown,this);this.field.on("focus",function(){this.dom.select()});this.afterTextEl=this.addText(String.format(this.afterPageText,1));this.field.setHeight(18);this.addSeparator();this.next=this.addButton({tooltip:this.nextText,iconCls:"x-tbar-page-next",disabled:true,handler:this.onClick.createDelegate(this,["next"])});this.last=this.addButton({tooltip:this.lastText,iconCls:"x-tbar-page-last",disabled:true,handler:this.onClick.createDelegate(this,["last"])});this.addSeparator();this.loading=this.addButton({tooltip:this.refreshText,iconCls:"x-tbar-loading",handler:this.onClick.createDelegate(this,["refresh"])});if(this.displayInfo){this.displayEl=Ext.fly(this.el.dom).createChild({cls:"x-paging-info"})}if(this.dsLoaded){this.onLoad.apply(this,this.dsLoaded)}},updateInfo:function(){if(this.displayEl){var A=this.store.getCount();var B=A==0?this.emptyMsg:String.format(this.displayMsg,this.cursor+1,this.cursor+A,this.store.getTotalCount());this.displayEl.update(B)}},onLoad:function(A,C,F){if(!this.rendered){this.dsLoaded=[A,C,F];return }this.cursor=F.params?F.params[this.paramNames.start]:0;var E=this.getPageData(),B=E.activePage,D=E.pages;this.afterTextEl.el.innerHTML=String.format(this.afterPageText,E.pages);this.field.dom.value=B;this.first.setDisabled(B==1);this.prev.setDisabled(B==1);this.next.setDisabled(B==D);this.last.setDisabled(B==D);this.loading.enable();this.updateInfo()},getPageData:function(){var A=this.store.getTotalCount();return{total:A,activePage:Math.ceil((this.cursor+this.pageSize)/this.pageSize),pages:A<this.pageSize?1:Math.ceil(A/this.pageSize)}},onLoadError:function(){if(!this.rendered){return }this.loading.enable()},readPage:function(C){var A=this.field.dom.value,B;if(!A||isNaN(B=parseInt(A,10))){this.field.dom.value=C.activePage;return false}return B},onPagingKeydown:function(D){var B=D.getKey(),E=this.getPageData(),C;if(B==D.RETURN){D.stopEvent();if(C=this.readPage(E)){C=Math.min(Math.max(1,C),E.pages)-1;this.doLoad(C*this.pageSize)}}else{if(B==D.HOME||B==D.END){D.stopEvent();C=B==D.HOME?1:E.pages;this.field.dom.value=C}else{if(B==D.UP||B==D.PAGEUP||B==D.DOWN||B==D.PAGEDOWN){D.stopEvent();if(C=this.readPage(E)){var A=D.shiftKey?10:1;if(B==D.DOWN||B==D.PAGEDOWN){A*=-1}C+=A;if(C>=1&C<=E.pages){this.field.dom.value=C}}}}}},beforeLoad:function(){if(this.rendered&&this.loading){this.loading.disable()}},doLoad:function(C){var B={},A=this.paramNames;B[A.start]=C;B[A.limit]=this.pageSize;this.store.load({params:B})},onClick:function(E){var B=this.store;switch(E){case"first":this.doLoad(0);break;case"prev":this.doLoad(Math.max(0,this.cursor-this.pageSize));break;case"next":this.doLoad(this.cursor+this.pageSize);break;case"last":var D=B.getTotalCount();var A=D%this.pageSize;var C=A?(D-A):D-this.pageSize;this.doLoad(C);break;case"refresh":this.doLoad(this.cursor);break}},unbind:function(A){A=Ext.StoreMgr.lookup(A);A.un("beforeload",this.beforeLoad,this);A.un("load",this.onLoad,this);A.un("loadexception",this.onLoadError,this);this.store=undefined},bind:function(A){A=Ext.StoreMgr.lookup(A);A.on("beforeload",this.beforeLoad,this);A.on("load",this.onLoad,this);A.on("loadexception",this.onLoadError,this);this.store=A}});Ext.reg("paging",Ext.PagingToolbar); |
Ext.Resizable=function(D,E){this.el=Ext.get(D);if(E&&E.wrap){E.resizeChild=this.el;this.el=this.el.wrap(typeof E.wrap=="object"?E.wrap:{cls:"xresizable-wrap"});this.el.id=this.el.dom.id=E.resizeChild.id+"-rzwrap";this.el.setStyle("overflow","hidden");this.el.setPositioning(E.resizeChild.getPositioning());E.resizeChild.clearPositioning();if(!E.width||!E.height){var F=E.resizeChild.getSize();this.el.setSize(F.width,F.height)}if(E.pinned&&!E.adjustments){E.adjustments="auto"}}this.proxy=this.el.createProxy({tag:"div",cls:"x-resizable-proxy",id:this.el.id+"-rzproxy"});this.proxy.unselectable();this.proxy.enableDisplayMode("block");Ext.apply(this,E);if(this.pinned){this.disableTrackOver=true;this.el.addClass("x-resizable-pinned")}var I=this.el.getStyle("position");if(I!="absolute"&&I!="fixed"){this.el.setStyle("position","relative")}if(!this.handles){this.handles="s,e,se";if(this.multiDirectional){this.handles+=",n,w"}}if(this.handles=="all"){this.handles="n s e w ne nw se sw"}var M=this.handles.split(/\s*?[,;]\s*?| /);var C=Ext.Resizable.positions;for(var H=0,J=M.length;H<J;H++){if(M[H]&&C[M[H]]){var L=C[M[H]];this[L]=new Ext.Resizable.Handle(this,L,this.disableTrackOver,this.transparent)}}this.corner=this.southeast;if(this.handles.indexOf("n")!=-1||this.handles.indexOf("w")!=-1){this.updateBox=true}this.activeHandle=null;if(this.resizeChild){if(typeof this.resizeChild=="boolean"){this.resizeChild=Ext.get(this.el.dom.firstChild,true)}else{this.resizeChild=Ext.get(this.resizeChild,true)}}if(this.adjustments=="auto"){var B=this.resizeChild;var K=this.west,G=this.east,A=this.north,M=this.south;if(B&&(K||A)){B.position("relative");B.setLeft(K?K.el.getWidth():0);B.setTop(A?A.el.getHeight():0)}this.adjustments=[(G?-G.el.getWidth():0)+(K?-K.el.getWidth():0),(A?-A.el.getHeight():0)+(M?-M.el.getHeight():0)-1]}if(this.draggable){this.dd=this.dynamic?this.el.initDD(null):this.el.initDDProxy(null,{dragElId:this.proxy.id});this.dd.setHandleElId(this.resizeChild?this.resizeChild.id:this.el.id)}this.addEvents("beforeresize","resize");if(this.width!==null&&this.height!==null){this.resizeTo(this.width,this.height)}else{this.updateChildSize()}if(Ext.isIE){this.el.dom.style.zoom=1}Ext.Resizable.superclass.constructor.call(this)};Ext.extend(Ext.Resizable,Ext.util.Observable,{resizeChild:false,adjustments:[0,0],minWidth:5,minHeight:5,maxWidth:10000,maxHeight:10000,enabled:true,animate:false,duration:0.35,dynamic:false,handles:false,multiDirectional:false,disableTrackOver:false,easing:"easeOutStrong",widthIncrement:0,heightIncrement:0,pinned:false,width:null,height:null,preserveRatio:false,transparent:false,minX:0,minY:0,draggable:false,resizeTo:function(B,A){this.el.setSize(B,A);this.updateChildSize();this.fireEvent("resize",this,B,A,null)},startSizing:function(C,B){this.fireEvent("beforeresize",this,C);if(this.enabled){if(!this.overlay){this.overlay=this.el.createProxy({tag:"div",cls:"x-resizable-overlay",html:" "},Ext.getBody());this.overlay.unselectable();this.overlay.enableDisplayMode("block");this.overlay.on("mousemove",this.onMouseMove,this);this.overlay.on("mouseup",this.onMouseUp,this)}this.overlay.setStyle("cursor",B.el.getStyle("cursor"));this.resizing=true;this.startBox=this.el.getBox();this.startPoint=C.getXY();this.offsets=[(this.startBox.x+this.startBox.width)-this.startPoint[0],(this.startBox.y+this.startBox.height)-this.startPoint[1]];this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();if(this.constrainTo){var A=Ext.get(this.constrainTo);this.resizeRegion=A.getRegion().adjust(A.getFrameWidth("t"),A.getFrameWidth("l"),-A.getFrameWidth("b"),-A.getFrameWidth("r"))}this.proxy.setStyle("visibility","hidden");this.proxy.show();this.proxy.setBox(this.startBox);if(!this.dynamic){this.proxy.setStyle("visibility","visible")}}},onMouseDown:function(A,B){if(this.enabled){B.stopEvent();this.activeHandle=A;this.startSizing(B,A)}},onMouseUp:function(B){var A=this.resizeElement();this.resizing=false;this.handleOut();this.overlay.hide();this.proxy.hide();this.fireEvent("resize",this,A.width,A.height,B)},updateChildSize:function(){if(this.resizeChild){var C=this.el;var D=this.resizeChild;var B=this.adjustments;if(C.dom.offsetWidth){var A=C.getSize(true);D.setSize(A.width+B[0],A.height+B[1])}if(Ext.isIE){setTimeout(function(){if(C.dom.offsetWidth){var E=C.getSize(true);D.setSize(E.width+B[0],E.height+B[1])}},10)}}},snap:function(C,E,B){if(!E||!C){return C}var D=C;var A=C%E;if(A>0){if(A>(E/2)){D=C+(E-A)}else{D=C-A}}return Math.max(B,D)},resizeElement:function(){var A=this.proxy.getBox();if(this.updateBox){this.el.setBox(A,false,this.animate,this.duration,null,this.easing)}else{this.el.setSize(A.width,A.height,this.animate,this.duration,null,this.easing)}this.updateChildSize();if(!this.dynamic){this.proxy.hide()}return A},constrain:function(B,C,A,D){if(B-C<A){C=B-A}else{if(B-C>D){C=D-B}}return C},onMouseMove:function(S){if(this.enabled){try{if(this.resizeRegion&&!this.resizeRegion.contains(S.getPoint())){return }var Q=this.curSize||this.startBox;var I=this.startBox.x,H=this.startBox.y;var C=I,B=H;var J=Q.width,R=Q.height;var D=J,L=R;var K=this.minWidth,T=this.minHeight;var P=this.maxWidth,W=this.maxHeight;var F=this.widthIncrement;var A=this.heightIncrement;var U=S.getXY();var O=-(this.startPoint[0]-Math.max(this.minX,U[0]));var M=-(this.startPoint[1]-Math.max(this.minY,U[1]));var G=this.activeHandle.position;switch(G){case"east":J+=O;J=Math.min(Math.max(K,J),P);break;case"south":R+=M;R=Math.min(Math.max(T,R),W);break;case"southeast":J+=O;R+=M;J=Math.min(Math.max(K,J),P);R=Math.min(Math.max(T,R),W);break;case"north":M=this.constrain(R,M,T,W);H+=M;R-=M;break;case"west":O=this.constrain(J,O,K,P);I+=O;J-=O;break;case"northeast":J+=O;J=Math.min(Math.max(K,J),P);M=this.constrain(R,M,T,W);H+=M;R-=M;break;case"northwest":O=this.constrain(J,O,K,P);M=this.constrain(R,M,T,W);H+=M;R-=M;I+=O;J-=O;break;case"southwest":O=this.constrain(J,O,K,P);R+=M;R=Math.min(Math.max(T,R),W);I+=O;J-=O;break}var N=this.snap(J,F,K);var V=this.snap(R,A,T);if(N!=J||V!=R){switch(G){case"northeast":H-=V-R;break;case"north":H-=V-R;break;case"southwest":I-=N-J;break;case"west":I-=N-J;break;case"northwest":I-=N-J;H-=V-R;break}J=N;R=V}if(this.preserveRatio){switch(G){case"southeast":case"east":R=L*(J/D);R=Math.min(Math.max(T,R),W);J=D*(R/L);break;case"south":J=D*(R/L);J=Math.min(Math.max(K,J),P);R=L*(J/D);break;case"northeast":J=D*(R/L);J=Math.min(Math.max(K,J),P);R=L*(J/D);break;case"north":var X=J;J=D*(R/L);J=Math.min(Math.max(K,J),P);R=L*(J/D);I+=(X-J)/2;break;case"southwest":R=L*(J/D);R=Math.min(Math.max(T,R),W);var X=J;J=D*(R/L);I+=X-J;break;case"west":var E=R;R=L*(J/D);R=Math.min(Math.max(T,R),W);H+=(E-R)/2;var X=J;J=D*(R/L);I+=X-J;break;case"northwest":var X=J;var E=R;R=L*(J/D);R=Math.min(Math.max(T,R),W);J=D*(R/L);H+=E-R;I+=X-J;break}}this.proxy.setBounds(I,H,J,R);if(this.dynamic){this.resizeElement()}}catch(S){}}},handleOver:function(){if(this.enabled){this.el.addClass("x-resizable-over")}},handleOut:function(){if(!this.resizing){this.el.removeClass("x-resizable-over")}},getEl:function(){return this.el},getResizeChild:function(){return this.resizeChild},destroy:function(C){this.proxy.remove();if(this.overlay){this.overlay.removeAllListeners();this.overlay.remove()}var D=Ext.Resizable.positions;for(var A in D){if(typeof D[A]!="function"&&this[D[A]]){var B=this[D[A]];B.el.removeAllListeners();B.el.remove()}}if(C){this.el.update("");this.el.remove()}},syncHandleHeight:function(){var A=this.el.getHeight(true);if(this.west){this.west.el.setHeight(A)}if(this.east){this.east.el.setHeight(A)}}});Ext.Resizable.positions={n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"};Ext.Resizable.Handle=function(C,E,B,D){if(!this.tpl){var A=Ext.DomHelper.createTemplate({tag:"div",cls:"x-resizable-handle x-resizable-handle-{0}"});A.compile();Ext.Resizable.Handle.prototype.tpl=A}this.position=E;this.rz=C;this.el=this.tpl.append(C.el.dom,[this.position],true);this.el.unselectable();if(D){this.el.setOpacity(0)}this.el.on("mousedown",this.onMouseDown,this);if(!B){this.el.on("mouseover",this.onMouseOver,this);this.el.on("mouseout",this.onMouseOut,this)}};Ext.Resizable.Handle.prototype={afterResize:function(A){},onMouseDown:function(A){this.rz.onMouseDown(this,A)},onMouseOver:function(A){this.rz.handleOver(this,A)},onMouseOut:function(A){this.rz.handleOut(this,A)}}; |
Ext.Editor=function(B,A){this.field=B;Ext.Editor.superclass.constructor.call(this,A)};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","specialkey")},onRender:function(B,A){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:B,shim:this.shim,shadowOffset:4,id:this.id,constrain:this.constrain});this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!="title"){this.field.msgTarget="qtip"}this.field.inEditor=true;this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute("autocomplete","off")}this.field.on("specialkey",this.onSpecialKey,this);if(this.swallowKeys){this.field.el.swallowEvent(["keydown","keypress"])}this.field.show();this.field.on("blur",this.onBlur,this);if(this.field.grow){this.field.on("autosize",this.el.sync,this.el,{delay:1})}},onSpecialKey:function(B,A){if(this.completeOnEnter&&A.getKey()==A.ENTER){A.stopEvent();this.completeEdit()}else{if(this.cancelOnEsc&&A.getKey()==A.ESC){this.cancelEdit()}else{this.fireEvent("specialkey",B,A)}}},startEdit:function(B,C){if(this.editing){this.completeEdit()}this.boundEl=Ext.get(B);var A=C!==undefined?C:this.boundEl.dom.innerHTML;if(!this.rendered){this.render(this.parentEl||document.body)}if(this.fireEvent("beforestartedit",this,this.boundEl,A)===false){return }this.startValue=A;this.field.setValue(A);this.doAutoSize();this.el.alignTo(this.boundEl,this.alignment);this.editing=true;this.show()},doAutoSize:function(){if(this.autoSize){var A=this.boundEl.getSize();switch(this.autoSize){case"width":this.setSize(A.width,"");break;case"height":this.setSize("",A.height);break;default:this.setSize(A.width,A.height)}}},setSize:function(A,B){delete this.field.lastSize;this.field.setSize(A,B);if(this.el){this.el.sync()}},realign:function(){this.el.alignTo(this.boundEl,this.alignment)},completeEdit:function(A){if(!this.editing){return }var B=this.getValue();if(this.revertInvalid!==false&&!this.field.isValid()){B=this.startValue;this.cancelEdit(true)}if(String(B)===String(this.startValue)&&this.ignoreNoChange){this.editing=false;this.hide();return }if(this.fireEvent("beforecomplete",this,B,this.startValue)!==false){this.editing=false;if(this.updateEl&&this.boundEl){this.boundEl.update(B)}if(A!==true){this.hide()}this.fireEvent("complete",this,B,this.startValue)}},onShow:function(){this.el.show();if(this.hideEl!==false){this.boundEl.hide()}this.field.show();if(Ext.isIE&&!this.fixIEFocus){this.fixIEFocus=true;this.deferredFocus.defer(50,this)}else{this.field.focus()}this.fireEvent("startedit",this.boundEl,this.startValue)},deferredFocus:function(){if(this.editing){this.field.focus()}},cancelEdit:function(A){if(this.editing){this.setValue(this.startValue);if(A!==true){this.hide()}}},onBlur:function(){if(this.allowBlur!==true&&this.editing){this.completeEdit()}},onHide:function(){if(this.editing){this.completeEdit();return }this.field.blur();if(this.field.collapse){this.field.collapse()}this.el.hide();if(this.hideEl!==false){this.boundEl.show()}},setValue:function(A){this.field.setValue(A)},getValue:function(){return this.field.getValue()},beforeDestroy:function(){this.field.destroy();this.field=null}});Ext.reg("editor",Ext.Editor); |
Ext.MessageBox=function(){var R,B,N,Q;var G,J,P,A,K,M,H,F;var O,S,L,C="";var D=function(U){R.hide();Ext.callback(B.fn,B.scope||window,[U,S.dom.value],1)};var T=function(){if(B&&B.cls){R.el.removeClass(B.cls)}K.reset()};var E=function(W,U,V){if(B&&B.closable!==false){R.hide()}if(V){V.stopEvent()}};var I=function(U){var W=0;if(!U){O["ok"].hide();O["cancel"].hide();O["yes"].hide();O["no"].hide();return W}R.footer.dom.style.display="";for(var V in O){if(typeof O[V]!="function"){if(U[V]){O[V].show();O[V].setText(typeof U[V]=="string"?U[V]:Ext.MessageBox.buttonText[V]);W+=O[V].el.getWidth()+15}else{O[V].hide()}}}return W};return{getDialog:function(U){if(!R){R=new Ext.Window({autoCreate:true,title:U,resizable:false,constrain:true,constrainHeader:true,minimizable:false,maximizable:false,stateful:false,modal:true,shim:true,buttonAlign:"center",width:400,height:100,minHeight:80,plain:true,footer:true,closable:true,close:function(){if(B&&B.buttons&&B.buttons.no&&!B.buttons.cancel){D("no")}else{D("cancel")}}});O={};var V=this.buttonText;O["ok"]=R.addButton(V["ok"],D.createCallback("ok"));O["yes"]=R.addButton(V["yes"],D.createCallback("yes"));O["no"]=R.addButton(V["no"],D.createCallback("no"));O["cancel"]=R.addButton(V["cancel"],D.createCallback("cancel"));O["ok"].hideMode=O["yes"].hideMode=O["no"].hideMode=O["cancel"].hideMode="offsets";R.render(document.body);R.getEl().addClass("x-window-dlg");N=R.mask;G=R.body.createChild({html:"<div class=\"ext-mb-icon\"></div><div class=\"ext-mb-content\"><span class=\"ext-mb-text\"></span><br /><input type=\"text\" class=\"ext-mb-input\" /><textarea class=\"ext-mb-textarea\"></textarea></div>"});H=Ext.get(G.dom.firstChild);var W=G.dom.childNodes[1];J=Ext.get(W.firstChild);P=Ext.get(W.childNodes[2]);P.enableDisplayMode();P.addKeyListener([10,13],function(){if(R.isVisible()&&B&&B.buttons){if(B.buttons.ok){D("ok")}else{if(B.buttons.yes){D("yes")}}}});A=Ext.get(W.childNodes[3]);A.enableDisplayMode();K=new Ext.ProgressBar({renderTo:G});G.createChild({cls:"x-clear"})}return R},updateText:function(X){if(!R.isVisible()&&!B.width){R.setSize(this.maxWidth,100)}J.update(X||" ");var V=C!=""?(H.getWidth()+H.getMargins("lr")):0;var Z=J.getWidth()+J.getMargins("lr");var W=R.getFrameWidth("lr");var Y=R.body.getFrameWidth("lr");if(Ext.isIE&&V>0){V+=3}var U=Math.max(Math.min(B.width||V+Z+W+Y,this.maxWidth),Math.max(B.minWidth||this.minWidth,L||0));if(B.prompt===true){S.setWidth(U-V-W-Y)}if(B.progress===true||B.wait===true){K.setSize(U-V-W-Y)}R.setSize(U,"auto").center();return this},updateProgress:function(V,U,W){K.updateProgress(V,U);if(W){this.updateText(W)}return this},isVisible:function(){return R&&R.isVisible()},hide:function(){if(this.isVisible()){R.hide();T()}return this},show:function(X){if(this.isVisible()){this.hide()}B=X;var Y=this.getDialog(B.title||" ");Y.setTitle(B.title||" ");var U=(B.closable!==false&&B.progress!==true&&B.wait!==true);Y.tools.close.setDisplayed(U);S=P;B.prompt=B.prompt||(B.multiline?true:false);if(B.prompt){if(B.multiline){P.hide();A.show();A.setHeight(typeof B.multiline=="number"?B.multiline:this.defaultTextHeight);S=A}else{P.show();A.hide()}}else{P.hide();A.hide()}S.dom.value=B.value||"";if(B.prompt){Y.focusEl=S}else{var W=B.buttons;var V=null;if(W&&W.ok){V=O["ok"]}else{if(W&&W.yes){V=O["yes"]}}if(V){Y.focusEl=V}}this.setIcon(B.icon);L=I(B.buttons);K.setVisible(B.progress===true||B.wait===true);this.updateProgress(0,B.progressText);this.updateText(B.msg);if(B.cls){Y.el.addClass(B.cls)}Y.proxyDrag=B.proxyDrag===true;Y.modal=B.modal!==false;Y.mask=B.modal!==false?N:false;if(!Y.isVisible()){document.body.appendChild(R.el.dom);Y.setAnimateTarget(B.animEl);Y.show(B.animEl)}Y.on("show",function(){if(U===true){Y.keyMap.enable()}else{Y.keyMap.disable()}},this,{single:true});if(B.wait===true){K.wait(B.waitConfig)}return this},setIcon:function(U){if(U&&U!=""){H.removeClass("x-hidden");H.replaceClass(C,U);C=U}else{H.replaceClass(C,"x-hidden");C=""}return this},progress:function(W,V,U){this.show({title:W,msg:V,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth,progressText:U});return this},wait:function(W,V,U){this.show({title:V,msg:W,buttons:false,closable:false,wait:true,modal:true,minWidth:this.minProgressWidth,waitConfig:U});return this},alert:function(X,W,V,U){this.show({title:X,msg:W,buttons:this.OK,fn:V,scope:U});return this},confirm:function(X,W,V,U){this.show({title:X,msg:W,buttons:this.YESNO,fn:V,scope:U,icon:this.QUESTION});return this},prompt:function(Y,X,W,V,U){this.show({title:Y,msg:X,buttons:this.OKCANCEL,fn:W,minWidth:250,scope:V,prompt:true,multiline:U});return this},OK:{ok:true},CANCEL:{cancel:true},OKCANCEL:{ok:true,cancel:true},YESNO:{yes:true,no:true},YESNOCANCEL:{yes:true,no:true,cancel:true},INFO:"ext-mb-info",WARNING:"ext-mb-warning",QUESTION:"ext-mb-question",ERROR:"ext-mb-error",defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}}}();Ext.Msg=Ext.MessageBox; |
Ext.Tip=Ext.extend(Ext.Panel,{minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",autoRender:true,quickShowInterval:250,frame:true,hidden:true,baseCls:"x-tip",floating:{shadow:true,shim:true,useDisplay:true,constrain:false},autoHeight:true,initComponent:function(){Ext.Tip.superclass.initComponent.call(this);if(this.closable&&!this.title){this.elements+=",header"}},afterRender:function(){Ext.Tip.superclass.afterRender.call(this);if(this.closable){this.addTool({id:"close",handler:this.hide,scope:this})}},showAt:function(A){Ext.Tip.superclass.show.call(this);if(this.measureWidth!==false&&(!this.initialConfig||typeof this.initialConfig.width!="number")){var B=this.body.getTextWidth();if(this.title){B=Math.max(B,this.header.child("span").getTextWidth(this.title))}B+=this.getFrameWidth()+(this.closable?20:0)+this.body.getPadding("lr");this.setWidth(B.constrain(this.minWidth,this.maxWidth))}if(this.constrainPosition){A=this.el.adjustForConstraints(A)}this.setPagePosition(A[0],A[1])},showBy:function(A,B){if(!this.rendered){this.render(Ext.getBody())}this.showAt(this.el.getAlignToXY(A,B||this.defaultAlign))},initDraggable:function(){this.dd=new Ext.Tip.DD(this,typeof this.draggable=="boolean"?null:this.draggable);this.header.addClass("x-tip-draggable")}});Ext.Tip.DD=function(B,A){Ext.apply(this,A);this.tip=B;Ext.Tip.DD.superclass.constructor.call(this,B.el.id,"WindowDD-"+B.id);this.setHandleElId(B.header.id);this.scroll=false};Ext.extend(Ext.Tip.DD,Ext.dd.DD,{moveOnly:true,scroll:false,headerOffsets:[100,25],startDrag:function(){this.tip.el.disableShadow()},endDrag:function(A){this.tip.el.enableShadow(true)}}); |
Ext.ToolTip=Ext.extend(Ext.Tip,{showDelay:500,hideDelay:200,dismissDelay:5000,mouseOffset:[15,18],trackMouse:false,constrainPosition:true,initComponent:function(){Ext.ToolTip.superclass.initComponent.call(this);this.lastActive=new Date();this.initTarget()},initTarget:function(){if(this.target){this.target=Ext.get(this.target);this.target.on("mouseover",this.onTargetOver,this);this.target.on("mouseout",this.onTargetOut,this);this.target.on("mousemove",this.onMouseMove,this)}},onMouseMove:function(A){this.targetXY=A.getXY();if(!this.hidden&&this.trackMouse){this.setPagePosition(this.getTargetXY())}},getTargetXY:function(){return[this.targetXY[0]+this.mouseOffset[0],this.targetXY[1]+this.mouseOffset[1]]},onTargetOver:function(A){if(this.disabled||A.within(this.target.dom,true)){return }this.clearTimer("hide");this.targetXY=A.getXY();this.delayShow()},delayShow:function(){if(this.hidden&&!this.showTimer){if(this.lastActive.getElapsed()<this.quickShowInterval){this.show()}else{this.showTimer=this.show.defer(this.showDelay,this)}}else{if(!this.hidden&&this.autoHide!==false){this.show()}}},onTargetOut:function(A){if(this.disabled||A.within(this.target.dom,true)){return }this.clearTimer("show");if(this.autoHide!==false){this.delayHide()}},delayHide:function(){if(!this.hidden&&!this.hideTimer){this.hideTimer=this.hide.defer(this.hideDelay,this)}},hide:function(){this.clearTimer("dismiss");this.lastActive=new Date();Ext.ToolTip.superclass.hide.call(this)},show:function(){this.showAt(this.getTargetXY())},showAt:function(A){this.lastActive=new Date();this.clearTimers();Ext.ToolTip.superclass.showAt.call(this,A);if(this.dismissDelay&&this.autoHide!==false){this.dismissTimer=this.hide.defer(this.dismissDelay,this)}},clearTimer:function(A){A=A+"Timer";clearTimeout(this[A]);delete this[A]},clearTimers:function(){this.clearTimer("show");this.clearTimer("dismiss");this.clearTimer("hide")},onShow:function(){Ext.ToolTip.superclass.onShow.call(this);Ext.getDoc().on("mousedown",this.onDocMouseDown,this)},onHide:function(){Ext.ToolTip.superclass.onHide.call(this);Ext.getDoc().un("mousedown",this.onDocMouseDown,this)},onDocMouseDown:function(A){if(this.autoHide!==false&&!A.within(this.el.dom)){this.disable();this.enable.defer(100,this)}},onDisable:function(){this.clearTimers();this.hide()},adjustPosition:function(A,D){var C=this.targetXY[1],B=this.getSize().height;if(this.constrainPosition&&D<=C&&(D+B)>=C){D=C-B-5}return{x:A,y:D}},onDestroy:function(){Ext.ToolTip.superclass.onDestroy.call(this);if(this.target){this.target.un("mouseover",this.onTargetOver,this);this.target.un("mouseout",this.onTargetOut,this);this.target.un("mousemove",this.onMouseMove,this)}}}); |
Ext.QuickTip=Ext.extend(Ext.ToolTip,{interceptTitles:false,tagConfig:{namespace:"ext",attribute:"qtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign"},initComponent:function(){this.target=this.target||Ext.getDoc();this.targets=this.targets||{};Ext.QuickTip.superclass.initComponent.call(this)},register:function(D){var F=Ext.isArray(D)?D:arguments;for(var E=0,A=F.length;E<A;E++){var H=F[E];var G=H.target;if(G){if(Ext.isArray(G)){for(var C=0,B=G.length;C<B;C++){this.targets[Ext.id(G[C])]=H}}else{this.targets[Ext.id(G)]=H}}}},unregister:function(A){delete this.targets[Ext.id(A)]},onTargetOver:function(G){if(this.disabled){return }this.targetXY=G.getXY();var C=G.getTarget();if(!C||C.nodeType!==1||C==document||C==document.body){return }if(this.activeTarget&&C==this.activeTarget.el){this.clearTimer("hide");this.show();return }if(C&&this.targets[C.id]){this.activeTarget=this.targets[C.id];this.activeTarget.el=C;this.delayShow();return }var E,F=Ext.fly(C),B=this.tagConfig;var D=B.namespace;if(this.interceptTitles&&C.title){E=C.title;C.qtip=E;C.removeAttribute("title");G.preventDefault()}else{E=C.qtip||F.getAttributeNS(D,B.attribute)}if(E){var A=F.getAttributeNS(D,B.hide);this.activeTarget={el:C,text:E,width:F.getAttributeNS(D,B.width),autoHide:A!="user"&&A!=="false",title:F.getAttributeNS(D,B.title),cls:F.getAttributeNS(D,B.cls),align:F.getAttributeNS(D,B.align)};this.delayShow()}},onTargetOut:function(A){this.clearTimer("show");if(this.autoHide!==false){this.delayHide()}},showAt:function(B){var A=this.activeTarget;if(A){if(!this.rendered){this.render(Ext.getBody());this.activeTarget=A}if(A.width){this.setWidth(A.width);this.body.setWidth(this.adjustBodyWidth(A.width-this.getFrameWidth()));this.measureWidth=false}else{this.measureWidth=true}this.setTitle(A.title||"");this.body.update(A.text);this.autoHide=A.autoHide;this.dismissDelay=A.dismissDelay||this.dismissDelay;if(this.lastCls){this.el.removeClass(this.lastCls);delete this.lastCls}if(A.cls){this.el.addClass(A.cls);this.lastCls=A.cls}if(A.align){B=this.el.getAlignToXY(A.el,A.align);this.constrainPosition=false}else{this.constrainPosition=true}}Ext.QuickTip.superclass.showAt.call(this,B)},hide:function(){delete this.activeTarget;Ext.QuickTip.superclass.hide.call(this)}}); |
Ext.QuickTips=function(){var B,A=[];return{init:function(){if(!B){B=new Ext.QuickTip({elements:"header,body"})}},enable:function(){if(B){A.pop();if(A.length<1){B.enable()}}},disable:function(){if(B){B.disable()}A.push(1)},isEnabled:function(){return B&&!B.disabled},getQuickTip:function(){return B},register:function(){B.register.apply(B,arguments)},unregister:function(){B.unregister.apply(B,arguments)},tips:function(){B.register.apply(B,arguments)}}}(); |
Ext.tree.TreePanel=Ext.extend(Ext.Panel,{rootVisible:true,animate:Ext.enableFx,lines:true,enableDD:false,hlDrop:Ext.enableFx,pathSeparator:"/",initComponent:function(){Ext.tree.TreePanel.superclass.initComponent.call(this);if(!this.eventModel){this.eventModel=new Ext.tree.TreeEventModel(this)}this.nodeHash={};if(this.root){this.setRootNode(this.root)}this.addEvents("append","remove","movenode","insert","beforeappend","beforeremove","beforemovenode","beforeinsert","beforeload","load","textchange","beforeexpandnode","beforecollapsenode","expandnode","disabledchange","collapsenode","beforeclick","click","checkchange","dblclick","contextmenu","beforechildrenrendered","startdrag","enddrag","dragdrop","beforenodedrop","nodedrop","nodedragover");if(this.singleExpand){this.on("beforeexpandnode",this.restrictExpand,this)}},proxyNodeEvent:function(C,B,A,G,F,E,D){if(C=="collapse"||C=="expand"||C=="beforecollapse"||C=="beforeexpand"||C=="move"||C=="beforemove"){C=C+"node"}return this.fireEvent(C,B,A,G,F,E,D)},getRootNode:function(){return this.root},setRootNode:function(B){this.root=B;B.ownerTree=this;B.isRoot=true;this.registerNode(B);if(!this.rootVisible){var A=B.attributes.uiProvider;B.ui=A?new A(B):new Ext.tree.RootTreeNodeUI(B)}return B},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:"")+"]"},restrictExpand:function(A){var B=A.parentNode;if(B){if(B.expandedChild&&B.expandedChild.parentNode==B){B.expandedChild.collapse()}B.expandedChild=A}},getChecked:function(A,B){B=B||this.root;var C=[];var D=function(){if(this.attributes.checked){C.push(!A?this:(A=="id"?this.id:this.attributes[A]))}};B.cascade(D);return C},getEl:function(){return this.el},getLoader:function(){return this.loader},expandAll:function(){this.root.expand(true)},collapseAll:function(){this.root.collapse(true)},getSelectionModel:function(){if(!this.selModel){this.selModel=new Ext.tree.DefaultSelectionModel()}return this.selModel},expandPath:function(F,A,G){A=A||"id";var D=F.split(this.pathSeparator);var C=this.root;if(C.attributes[A]!=D[1]){if(G){G(false,null)}return }var B=1;var E=function(){if(++B==D.length){if(G){G(true,C)}return }var H=C.findChild(A,D[B]);if(!H){if(G){G(false,C)}return }C=H;H.expand(false,false,E)};C.expand(false,false,E)},selectPath:function(E,A,F){A=A||"id";var C=E.split(this.pathSeparator);var B=C.pop();if(C.length>0){var D=function(H,G){if(H&&G){var I=G.findChild(A,B);if(I){I.select();if(F){F(true,I)}}else{if(F){F(false,I)}}}else{if(F){F(false,I)}}};this.expandPath(C.join(this.pathSeparator),A,D)}else{this.root.select();if(F){F(true,this.root)}}},getTreeEl:function(){return this.body},onRender:function(B,A){Ext.tree.TreePanel.superclass.onRender.call(this,B,A);this.el.addClass("x-tree");this.innerCt=this.body.createChild({tag:"ul",cls:"x-tree-root-ct "+(this.useArrows?"x-tree-arrows":this.lines?"x-tree-lines":"x-tree-no-lines")})},initEvents:function(){Ext.tree.TreePanel.superclass.initEvents.call(this);if(this.containerScroll){Ext.dd.ScrollManager.register(this.body)}if((this.enableDD||this.enableDrop)&&!this.dropZone){this.dropZone=new Ext.tree.TreeDropZone(this,this.dropConfig||{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.ddAppendOnly===true})}if((this.enableDD||this.enableDrag)&&!this.dragZone){this.dragZone=new Ext.tree.TreeDragZone(this,this.dragConfig||{ddGroup:this.ddGroup||"TreeDD",scroll:this.ddScroll})}this.getSelectionModel().init(this)},afterRender:function(){Ext.tree.TreePanel.superclass.afterRender.call(this);this.root.render();if(!this.rootVisible){this.root.renderChildren()}},onDestroy:function(){if(this.rendered){this.body.removeAllListeners();Ext.dd.ScrollManager.unregister(this.body);if(this.dropZone){this.dropZone.unreg()}if(this.dragZone){this.dragZone.unreg()}}this.root.destroy();this.nodeHash=null;Ext.tree.TreePanel.superclass.onDestroy.call(this)}});Ext.reg("treepanel",Ext.tree.TreePanel); |
Ext.tree.TreeEventModel=function(A){this.tree=A;this.tree.on("render",this.initEvents,this)};Ext.tree.TreeEventModel.prototype={initEvents:function(){var A=this.tree.getTreeEl();A.on("click",this.delegateClick,this);if(this.tree.trackMouseOver!==false){A.on("mouseover",this.delegateOver,this);A.on("mouseout",this.delegateOut,this)}A.on("dblclick",this.delegateDblClick,this);A.on("contextmenu",this.delegateContextMenu,this)},getNode:function(B){var A;if(A=B.getTarget(".x-tree-node-el",10)){var C=Ext.fly(A,"_treeEvents").getAttributeNS("ext","tree-node-id");if(C){return this.tree.getNodeById(C)}}return null},getNodeTarget:function(B){var A=B.getTarget(".x-tree-node-icon",1);if(!A){A=B.getTarget(".x-tree-node-el",6)}return A},delegateOut:function(B,A){if(!this.beforeEvent(B)){return }if(B.getTarget(".x-tree-ec-icon",1)){var C=this.getNode(B);this.onIconOut(B,C);if(C==this.lastEcOver){delete this.lastEcOver}}if((A=this.getNodeTarget(B))&&!B.within(A,true)){this.onNodeOut(B,this.getNode(B))}},delegateOver:function(B,A){if(!this.beforeEvent(B)){return }if(this.lastEcOver){this.onIconOut(B,this.lastEcOver);delete this.lastEcOver}if(B.getTarget(".x-tree-ec-icon",1)){this.lastEcOver=this.getNode(B);this.onIconOver(B,this.lastEcOver)}if(A=this.getNodeTarget(B)){this.onNodeOver(B,this.getNode(B))}},delegateClick:function(B,A){if(!this.beforeEvent(B)){return }if(B.getTarget("input[type=checkbox]",1)){this.onCheckboxClick(B,this.getNode(B))}else{if(B.getTarget(".x-tree-ec-icon",1)){this.onIconClick(B,this.getNode(B))}else{if(this.getNodeTarget(B)){this.onNodeClick(B,this.getNode(B))}}}},delegateDblClick:function(B,A){if(this.beforeEvent(B)&&this.getNodeTarget(B)){this.onNodeDblClick(B,this.getNode(B))}},delegateContextMenu:function(B,A){if(this.beforeEvent(B)&&this.getNodeTarget(B)){this.onNodeContextMenu(B,this.getNode(B))}},onNodeClick:function(B,A){A.ui.onClick(B)},onNodeOver:function(B,A){A.ui.onOver(B)},onNodeOut:function(B,A){A.ui.onOut(B)},onIconOver:function(B,A){A.ui.addClass("x-tree-ec-over")},onIconOut:function(B,A){A.ui.removeClass("x-tree-ec-over")},onIconClick:function(B,A){A.ui.ecClick(B)},onCheckboxClick:function(B,A){A.ui.onCheckChange(B)},onNodeDblClick:function(B,A){A.ui.onDblClick(B)},onNodeContextMenu:function(B,A){A.ui.onContextMenu(B)},beforeEvent:function(A){if(this.disabled){A.stopEvent();return false}return true},disable:function(){this.disabled=true},enable:function(){this.disabled=false}}; |
Ext.tree.DefaultSelectionModel=function(A){this.selNode=null;this.addEvents("selectionchange","beforeselect");Ext.apply(this,A);Ext.tree.DefaultSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.tree.DefaultSelectionModel,Ext.util.Observable,{init:function(A){this.tree=A;A.getTreeEl().on("keydown",this.onKeyDown,this);A.on("click",this.onNodeClick,this)},onNodeClick:function(A,B){this.select(A)},select:function(B){var A=this.selNode;if(A!=B&&this.fireEvent("beforeselect",this,B,A)!==false){if(A){A.ui.onSelectedChange(false)}this.selNode=B;B.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,B,A)}return B},unselect:function(A){if(this.selNode==A){this.clearSelections()}},clearSelections:function(){var A=this.selNode;if(A){A.ui.onSelectedChange(false);this.selNode=null;this.fireEvent("selectionchange",this,null)}return A},getSelectedNode:function(){return this.selNode},isSelected:function(A){return this.selNode==A},selectPrevious:function(){var A=this.selNode||this.lastSelNode;if(!A){return null}var C=A.previousSibling;if(C){if(!C.isExpanded()||C.childNodes.length<1){return this.select(C)}else{var B=C.lastChild;while(B&&B.isExpanded()&&B.childNodes.length>0){B=B.lastChild}return this.select(B)}}else{if(A.parentNode&&(this.tree.rootVisible||!A.parentNode.isRoot)){return this.select(A.parentNode)}}return null},selectNext:function(){var B=this.selNode||this.lastSelNode;if(!B){return null}if(B.firstChild&&B.isExpanded()){return this.select(B.firstChild)}else{if(B.nextSibling){return this.select(B.nextSibling)}else{if(B.parentNode){var A=null;B.parentNode.bubble(function(){if(this.nextSibling){A=this.getOwnerTree().selModel.select(this.nextSibling);return false}});return A}}}return null},onKeyDown:function(C){var B=this.selNode||this.lastSelNode;var D=this;if(!B){return }var A=C.getKey();switch(A){case C.DOWN:C.stopEvent();this.selectNext();break;case C.UP:C.stopEvent();this.selectPrevious();break;case C.RIGHT:C.preventDefault();if(B.hasChildNodes()){if(!B.isExpanded()){B.expand()}else{if(B.firstChild){this.select(B.firstChild,C)}}}break;case C.LEFT:C.preventDefault();if(B.hasChildNodes()&&B.isExpanded()){B.collapse()}else{if(B.parentNode&&(this.tree.rootVisible||B.parentNode!=this.tree.getRootNode())){this.select(B.parentNode,C)}}break}}});Ext.tree.MultiSelectionModel=function(A){this.selNodes=[];this.selMap={};this.addEvents("selectionchange");Ext.apply(this,A);Ext.tree.MultiSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.tree.MultiSelectionModel,Ext.util.Observable,{init:function(A){this.tree=A;A.getTreeEl().on("keydown",this.onKeyDown,this);A.on("click",this.onNodeClick,this)},onNodeClick:function(A,B){this.select(A,B,B.ctrlKey)},select:function(A,C,B){if(B!==true){this.clearSelections(true)}if(this.isSelected(A)){this.lastSelNode=A;return A}this.selNodes.push(A);this.selMap[A.id]=A;this.lastSelNode=A;A.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,this.selNodes);return A},unselect:function(B){if(this.selMap[B.id]){B.ui.onSelectedChange(false);var C=this.selNodes;var A=C.indexOf(B);if(A!=-1){this.selNodes.splice(A,1)}delete this.selMap[B.id];this.fireEvent("selectionchange",this,this.selNodes)}},clearSelections:function(B){var D=this.selNodes;if(D.length>0){for(var C=0,A=D.length;C<A;C++){D[C].ui.onSelectedChange(false)}this.selNodes=[];this.selMap={};if(B!==true){this.fireEvent("selectionchange",this,this.selNodes)}}},isSelected:function(A){return this.selMap[A.id]?true:false},getSelectedNodes:function(){return this.selNodes},onKeyDown:Ext.tree.DefaultSelectionModel.prototype.onKeyDown,selectNext:Ext.tree.DefaultSelectionModel.prototype.selectNext,selectPrevious:Ext.tree.DefaultSelectionModel.prototype.selectPrevious}); |
Ext.tree.TreeNode=function(A){A=A||{};if(typeof A=="string"){A={text:A}}this.childrenRendered=false;this.rendered=false;Ext.tree.TreeNode.superclass.constructor.call(this,A);this.expanded=A.expanded===true;this.isTarget=A.isTarget!==false;this.draggable=A.draggable!==false&&A.allowDrag!==false;this.allowChildren=A.allowChildren!==false&&A.allowDrop!==false;this.text=A.text;this.disabled=A.disabled===true;this.addEvents("textchange","beforeexpand","beforecollapse","expand","disabledchange","collapse","beforeclick","click","checkchange","dblclick","contextmenu","beforechildrenrendered");var B=this.attributes.uiProvider||this.defaultUI||Ext.tree.TreeNodeUI;this.ui=new B(this)};Ext.extend(Ext.tree.TreeNode,Ext.data.Node,{preventHScroll:true,isExpanded:function(){return this.expanded},getUI:function(){return this.ui},setFirstChild:function(A){var B=this.firstChild;Ext.tree.TreeNode.superclass.setFirstChild.call(this,A);if(this.childrenRendered&&B&&A!=B){B.renderIndent(true,true)}if(this.rendered){this.renderIndent(true,true)}},setLastChild:function(B){var A=this.lastChild;Ext.tree.TreeNode.superclass.setLastChild.call(this,B);if(this.childrenRendered&&A&&B!=A){A.renderIndent(true,true)}if(this.rendered){this.renderIndent(true,true)}},appendChild:function(){var A=Ext.tree.TreeNode.superclass.appendChild.apply(this,arguments);if(A&&this.childrenRendered){A.render()}this.ui.updateExpandIcon();return A},removeChild:function(A){this.ownerTree.getSelectionModel().unselect(A);Ext.tree.TreeNode.superclass.removeChild.apply(this,arguments);if(this.childrenRendered){A.ui.remove()}if(this.childNodes.length<1){this.collapse(false,false)}else{this.ui.updateExpandIcon()}if(!this.firstChild&&!this.isHiddenRoot()){this.childrenRendered=false}return A},insertBefore:function(C,A){var B=Ext.tree.TreeNode.superclass.insertBefore.apply(this,arguments);if(B&&A&&this.childrenRendered){C.render()}this.ui.updateExpandIcon();return B},setText:function(B){var A=this.text;this.text=B;this.attributes.text=B;if(this.rendered){this.ui.onTextChange(this,B,A)}this.fireEvent("textchange",this,B,A)},select:function(){this.getOwnerTree().getSelectionModel().select(this)},unselect:function(){this.getOwnerTree().getSelectionModel().unselect(this)},isSelected:function(){return this.getOwnerTree().getSelectionModel().isSelected(this)},expand:function(A,B,C){if(!this.expanded){if(this.fireEvent("beforeexpand",this,A,B)===false){return }if(!this.childrenRendered){this.renderChildren()}this.expanded=true;if(!this.isHiddenRoot()&&(this.getOwnerTree().animate&&B!==false)||B){this.ui.animExpand(function(){this.fireEvent("expand",this);if(typeof C=="function"){C(this)}if(A===true){this.expandChildNodes(true)}}.createDelegate(this));return }else{this.ui.expand();this.fireEvent("expand",this);if(typeof C=="function"){C(this)}}}else{if(typeof C=="function"){C(this)}}if(A===true){this.expandChildNodes(true)}},isHiddenRoot:function(){return this.isRoot&&!this.getOwnerTree().rootVisible},collapse:function(B,E){if(this.expanded&&!this.isHiddenRoot()){if(this.fireEvent("beforecollapse",this,B,E)===false){return }this.expanded=false;if((this.getOwnerTree().animate&&E!==false)||E){this.ui.animCollapse(function(){this.fireEvent("collapse",this);if(B===true){this.collapseChildNodes(true)}}.createDelegate(this));return }else{this.ui.collapse();this.fireEvent("collapse",this)}}if(B===true){var D=this.childNodes;for(var C=0,A=D.length;C<A;C++){D[C].collapse(true,false)}}},delayedExpand:function(A){if(!this.expandProcId){this.expandProcId=this.expand.defer(A,this)}},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId)}this.expandProcId=false},toggle:function(){if(this.expanded){this.collapse()}else{this.expand()}},ensureVisible:function(B){var A=this.getOwnerTree();A.expandPath(this.parentNode.getPath(),false,function(){var C=A.getNodeById(this.id);A.getTreeEl().scrollChildIntoView(C.ui.anchor);Ext.callback(B)}.createDelegate(this))},expandChildNodes:function(B){var D=this.childNodes;for(var C=0,A=D.length;C<A;C++){D[C].expand(B)}},collapseChildNodes:function(B){var D=this.childNodes;for(var C=0,A=D.length;C<A;C++){D[C].collapse(B)}},disable:function(){this.disabled=true;this.unselect();if(this.rendered&&this.ui.onDisableChange){this.ui.onDisableChange(this,true)}this.fireEvent("disabledchange",this,true)},enable:function(){this.disabled=false;if(this.rendered&&this.ui.onDisableChange){this.ui.onDisableChange(this,false)}this.fireEvent("disabledchange",this,false)},renderChildren:function(B){if(B!==false){this.fireEvent("beforechildrenrendered",this)}var D=this.childNodes;for(var C=0,A=D.length;C<A;C++){D[C].render(true)}this.childrenRendered=true},sort:function(E,D){Ext.tree.TreeNode.superclass.sort.apply(this,arguments);if(this.childrenRendered){var C=this.childNodes;for(var B=0,A=C.length;B<A;B++){C[B].render(true)}}},render:function(A){this.ui.render(A);if(!this.rendered){this.getOwnerTree().registerNode(this);this.rendered=true;if(this.expanded){this.expanded=false;this.expand(false,false)}}},renderIndent:function(B,E){if(E){this.ui.childIndent=null}this.ui.renderIndent();if(B===true&&this.childrenRendered){var D=this.childNodes;for(var C=0,A=D.length;C<A;C++){D[C].renderIndent(true,E)}}},beginUpdate:function(){this.childrenRendered=false},endUpdate:function(){if(this.expanded){this.renderChildren()}},destroy:function(){for(var B=0,A=this.childNodes.length;B<A;B++){this.childNodes[B].destroy()}this.childNodes=null;if(this.ui.destroy){this.ui.destroy()}}}); |
Ext.tree.AsyncTreeNode=function(A){this.loaded=false;this.loading=false;Ext.tree.AsyncTreeNode.superclass.constructor.apply(this,arguments);this.addEvents("beforeload","load")};Ext.extend(Ext.tree.AsyncTreeNode,Ext.tree.TreeNode,{expand:function(B,D,F){if(this.loading){var E;var C=function(){if(!this.loading){clearInterval(E);this.expand(B,D,F)}}.createDelegate(this);E=setInterval(C,200);return }if(!this.loaded){if(this.fireEvent("beforeload",this)===false){return }this.loading=true;this.ui.beforeLoad(this);var A=this.loader||this.attributes.loader||this.getOwnerTree().getLoader();if(A){A.load(this,this.loadComplete.createDelegate(this,[B,D,F]));return }}Ext.tree.AsyncTreeNode.superclass.expand.call(this,B,D,F)},isLoading:function(){return this.loading},loadComplete:function(A,B,C){this.loading=false;this.loaded=true;this.ui.afterLoad(this);this.fireEvent("load",this);this.expand(A,B,C)},isLoaded:function(){return this.loaded},hasChildNodes:function(){if(!this.isLeaf()&&!this.loaded){return true}else{return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this)}},reload:function(A){this.collapse(false,false);while(this.firstChild){this.removeChild(this.firstChild)}this.childrenRendered=false;this.loaded=false;if(this.isHiddenRoot()){this.expanded=false}this.expand(false,false,A)}}); |
Ext.tree.TreeNodeUI=function(A){this.node=A;this.rendered=false;this.animating=false;this.wasLeaf=true;this.ecc="x-tree-ec-icon x-tree-elbow";this.emptyIcon=Ext.BLANK_IMAGE_URL};Ext.tree.TreeNodeUI.prototype={removeChild:function(A){if(this.rendered){this.ctNode.removeChild(A.ui.getEl())}},beforeLoad:function(){this.addClass("x-tree-node-loading")},afterLoad:function(){this.removeClass("x-tree-node-loading")},onTextChange:function(B,C,A){if(this.rendered){this.textNode.innerHTML=C}},onDisableChange:function(A,B){this.disabled=B;if(this.checkbox){this.checkbox.disabled=B}if(B){this.addClass("x-tree-node-disabled")}else{this.removeClass("x-tree-node-disabled")}},onSelectedChange:function(A){if(A){this.focus();this.addClass("x-tree-selected")}else{this.removeClass("x-tree-selected")}},onMove:function(A,G,E,F,D,B){this.childIndent=null;if(this.rendered){var H=F.ui.getContainer();if(!H){this.holder=document.createElement("div");this.holder.appendChild(this.wrap);return }var C=B?B.ui.getEl():null;if(C){H.insertBefore(this.wrap,C)}else{H.appendChild(this.wrap)}this.node.renderIndent(true)}},addClass:function(A){if(this.elNode){Ext.fly(this.elNode).addClass(A)}},removeClass:function(A){if(this.elNode){Ext.fly(this.elNode).removeClass(A)}},remove:function(){if(this.rendered){this.holder=document.createElement("div");this.holder.appendChild(this.wrap)}},fireEvent:function(){return this.node.fireEvent.apply(this.node,arguments)},initEvents:function(){this.node.on("move",this.onMove,this);if(this.node.disabled){this.addClass("x-tree-node-disabled");if(this.checkbox){this.checkbox.disabled=true}}if(this.node.hidden){this.hide()}var B=this.node.getOwnerTree();var A=B.enableDD||B.enableDrag||B.enableDrop;if(A&&(!this.node.isRoot||B.rootVisible)){Ext.dd.Registry.register(this.elNode,{node:this.node,handles:this.getDDHandles(),isHandle:false})}},getDDHandles:function(){return[this.iconNode,this.textNode,this.elNode]},hide:function(){this.node.hidden=true;if(this.wrap){this.wrap.style.display="none"}},show:function(){this.node.hidden=false;if(this.wrap){this.wrap.style.display=""}},onContextMenu:function(A){if(this.node.hasListener("contextmenu")||this.node.getOwnerTree().hasListener("contextmenu")){A.preventDefault();this.focus();this.fireEvent("contextmenu",this.node,A)}},onClick:function(B){if(this.dropping){B.stopEvent();return }if(this.fireEvent("beforeclick",this.node,B)!==false){var A=B.getTarget("a");if(!this.disabled&&this.node.attributes.href&&A){this.fireEvent("click",this.node,B);return }else{if(A&&B.ctrlKey){B.stopEvent()}}B.preventDefault();if(this.disabled){return }if(this.node.attributes.singleClickExpand&&!this.animating&&this.node.hasChildNodes()){this.node.toggle()}this.fireEvent("click",this.node,B)}else{B.stopEvent()}},onDblClick:function(A){A.preventDefault();if(this.disabled){return }if(this.checkbox){this.toggleCheck()}if(!this.animating&&this.node.hasChildNodes()){this.node.toggle()}this.fireEvent("dblclick",this.node,A)},onOver:function(A){this.addClass("x-tree-node-over")},onOut:function(A){this.removeClass("x-tree-node-over")},onCheckChange:function(){var A=this.checkbox.checked;this.node.attributes.checked=A;this.fireEvent("checkchange",this.node,A)},ecClick:function(A){if(!this.animating&&(this.node.hasChildNodes()||this.node.attributes.expandable)){this.node.toggle()}},startDrop:function(){this.dropping=true},endDrop:function(){setTimeout(function(){this.dropping=false}.createDelegate(this),50)},expand:function(){this.updateExpandIcon();this.ctNode.style.display=""},focus:function(){if(!this.node.preventHScroll){try{this.anchor.focus()}catch(C){}}else{if(!Ext.isIE){try{var B=this.node.getOwnerTree().getTreeEl().dom;var A=B.scrollLeft;this.anchor.focus();B.scrollLeft=A}catch(C){}}}},toggleCheck:function(B){var A=this.checkbox;if(A){A.checked=(B===undefined?!A.checked:B)}},blur:function(){try{this.anchor.blur()}catch(A){}},animExpand:function(B){var A=Ext.get(this.ctNode);A.stopFx();if(!this.node.hasChildNodes()){this.updateExpandIcon();this.ctNode.style.display="";Ext.callback(B);return }this.animating=true;this.updateExpandIcon();A.slideIn("t",{callback:function(){this.animating=false;Ext.callback(B)},scope:this,duration:this.node.ownerTree.duration||0.25})},highlight:function(){var A=this.node.getOwnerTree();Ext.fly(this.wrap).highlight(A.hlColor||"C3DAF9",{endColor:A.hlBaseColor})},collapse:function(){this.updateExpandIcon();this.ctNode.style.display="none"},animCollapse:function(B){var A=Ext.get(this.ctNode);A.enableDisplayMode("block");A.stopFx();this.animating=true;this.updateExpandIcon();A.slideOut("t",{callback:function(){this.animating=false;Ext.callback(B)},scope:this,duration:this.node.ownerTree.duration||0.25})},getContainer:function(){return this.ctNode},getEl:function(){return this.wrap},appendDDGhost:function(A){A.appendChild(this.elNode.cloneNode(true))},getDDRepairXY:function(){return Ext.lib.Dom.getXY(this.iconNode)},onRender:function(){this.render()},render:function(B){var D=this.node,A=D.attributes;var C=D.parentNode?D.parentNode.ui.getContainer():D.ownerTree.innerCt.dom;if(!this.rendered){this.rendered=true;this.renderElements(D,A,C,B);if(A.qtip){if(this.textNode.setAttributeNS){this.textNode.setAttributeNS("ext","qtip",A.qtip);if(A.qtipTitle){this.textNode.setAttributeNS("ext","qtitle",A.qtipTitle)}}else{this.textNode.setAttribute("ext:qtip",A.qtip);if(A.qtipTitle){this.textNode.setAttribute("ext:qtitle",A.qtipTitle)}}}else{if(A.qtipCfg){A.qtipCfg.target=Ext.id(this.textNode);Ext.QuickTips.register(A.qtipCfg)}}this.initEvents();if(!this.node.expanded){this.updateExpandIcon(true)}}else{if(B===true){C.appendChild(this.wrap)}}},renderElements:function(D,I,H,J){this.indentMarkup=D.parentNode?D.parentNode.ui.getChildIndent():"";var E=typeof I.checked=="boolean";var B=I.href?I.href:Ext.isGecko?"":"#";var C=["<li class=\"x-tree-node\"><div ext:tree-node-id=\"",D.id,"\" class=\"x-tree-node-el x-tree-node-leaf x-unselectable ",I.cls,"\" unselectable=\"on\">","<span class=\"x-tree-node-indent\">",this.indentMarkup,"</span>","<img src=\"",this.emptyIcon,"\" class=\"x-tree-ec-icon x-tree-elbow\" />","<img src=\"",I.icon||this.emptyIcon,"\" class=\"x-tree-node-icon",(I.icon?" x-tree-node-inline-icon":""),(I.iconCls?" "+I.iconCls:""),"\" unselectable=\"on\" />",E?("<input class=\"x-tree-node-cb\" type=\"checkbox\" "+(I.checked?"checked=\"checked\" />":"/>")):"","<a hidefocus=\"on\" class=\"x-tree-node-anchor\" href=\"",B,"\" tabIndex=\"1\" ",I.hrefTarget?" target=\""+I.hrefTarget+"\"":"","><span unselectable=\"on\">",D.text,"</span></a></div>","<ul class=\"x-tree-node-ct\" style=\"display:none;\"></ul>","</li>"].join("");var A;if(J!==true&&D.nextSibling&&(A=D.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",A,C)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",H,C)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var G=this.elNode.childNodes;this.indentNode=G[0];this.ecNode=G[1];this.iconNode=G[2];var F=3;if(E){this.checkbox=G[3];F++}this.anchor=G[F];this.textNode=G[F].firstChild},getAnchor:function(){return this.anchor},getTextEl:function(){return this.textNode},getIconEl:function(){return this.iconNode},isChecked:function(){return this.checkbox?this.checkbox.checked:false},updateExpandIcon:function(){if(this.rendered){var F=this.node,D,C;var A=F.isLast()?"x-tree-elbow-end":"x-tree-elbow";var E=F.hasChildNodes();if(E||F.attributes.expandable){if(F.expanded){A+="-minus";D="x-tree-node-collapsed";C="x-tree-node-expanded"}else{A+="-plus";D="x-tree-node-expanded";C="x-tree-node-collapsed"}if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf=false}if(this.c1!=D||this.c2!=C){Ext.fly(this.elNode).replaceClass(D,C);this.c1=D;this.c2=C}}else{if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-leaf");delete this.c1;delete this.c2;this.wasLeaf=true}}var B="x-tree-ec-icon "+A;if(this.ecc!=B){this.ecNode.className=B;this.ecc=B}}},getChildIndent:function(){if(!this.childIndent){var A=[];var B=this.node;while(B){if(!B.isRoot||(B.isRoot&&B.ownerTree.rootVisible)){if(!B.isLast()){A.unshift("<img src=\""+this.emptyIcon+"\" class=\"x-tree-elbow-line\" />")}else{A.unshift("<img src=\""+this.emptyIcon+"\" class=\"x-tree-icon\" />")}}B=B.parentNode}this.childIndent=A.join("")}return this.childIndent},renderIndent:function(){if(this.rendered){var A="";var B=this.node.parentNode;if(B){A=B.ui.getChildIndent()}if(this.indentMarkup!=A){this.indentNode.innerHTML=A;this.indentMarkup=A}this.updateExpandIcon()}},destroy:function(){if(this.elNode){Ext.dd.Registry.unregister(this.elNode.id)}delete this.elNode;delete this.ctNode;delete this.indentNode;delete this.ecNode;delete this.iconNode;delete this.checkbox;delete this.anchor;delete this.textNode;Ext.removeNode(this.ctNode)}};Ext.tree.RootTreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{render:function(){if(!this.rendered){var A=this.node.ownerTree.innerCt.dom;this.node.expanded=true;A.innerHTML="<div class=\"x-tree-root-node\"></div>";this.wrap=this.ctNode=A.firstChild}},collapse:Ext.emptyFn,expand:Ext.emptyFn}); |
Ext.tree.TreeLoader=function(A){this.baseParams={};this.requestMethod="POST";Ext.apply(this,A);this.addEvents("beforeload","load","loadexception");Ext.tree.TreeLoader.superclass.constructor.call(this)};Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:true,load:function(A,B){if(this.clearOnLoad){while(A.firstChild){A.removeChild(A.firstChild)}}if(this.doPreload(A)){if(typeof B=="function"){B()}}else{if(this.dataUrl||this.url){this.requestData(A,B)}}},doPreload:function(D){if(D.attributes.children){if(D.childNodes.length<1){var C=D.attributes.children;D.beginUpdate();for(var B=0,A=C.length;B<A;B++){var E=D.appendChild(this.createNode(C[B]));if(this.preloadChildren){this.doPreload(E)}}D.endUpdate()}return true}else{return false}},getParams:function(D){var A=[],C=this.baseParams;for(var B in C){if(typeof C[B]!="function"){A.push(encodeURIComponent(B),"=",encodeURIComponent(C[B]),"&")}}A.push("node=",encodeURIComponent(D.id));return A.join("")},requestData:function(A,B){if(this.fireEvent("beforeload",this,A,B)!==false){this.transId=Ext.Ajax.request({method:this.requestMethod,url:this.dataUrl||this.url,success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{callback:B,node:A},params:this.getParams(A)})}else{if(typeof B=="function"){B()}}},isLoading:function(){return this.transId?true:false},abort:function(){if(this.isLoading()){Ext.Ajax.abort(this.transId)}},createNode:function(attr){if(this.baseAttrs){Ext.applyIf(attr,this.baseAttrs)}if(this.applyLoader!==false){attr.loader=this}if(typeof attr.uiProvider=="string"){attr.uiProvider=this.uiProviders[attr.uiProvider]||eval(attr.uiProvider)}return(attr.leaf?new Ext.tree.TreeNode(attr):new Ext.tree.AsyncTreeNode(attr))},processResponse:function(response,node,callback){var json=response.responseText;try{var o=eval("("+json+")");node.beginUpdate();for(var i=0,len=o.length;i<len;i++){var n=this.createNode(o[i]);if(n){node.appendChild(n)}}node.endUpdate();if(typeof callback=="function"){callback(this,node)}}catch(e){this.handleFailure(response)}},handleResponse:function(B){this.transId=false;var A=B.argument;this.processResponse(B,A.node,A.callback);this.fireEvent("load",this,A.node,B)},handleFailure:function(B){this.transId=false;var A=B.argument;this.fireEvent("loadexception",this,A.node,B);if(typeof A.callback=="function"){A.callback(this,A.node)}}}); |
Ext.tree.TreeFilter=function(A,B){this.tree=A;this.filtered={};Ext.apply(this,B)};Ext.tree.TreeFilter.prototype={clearBlank:false,reverse:false,autoClear:false,remove:false,filter:function(D,A,B){A=A||"text";var C;if(typeof D=="string"){var E=D.length;if(E==0&&this.clearBlank){this.clear();return }D=D.toLowerCase();C=function(F){return F.attributes[A].substr(0,E).toLowerCase()==D}}else{if(D.exec){C=function(F){return D.test(F.attributes[A])}}else{throw"Illegal filter type, must be string or regex"}}this.filterBy(C,null,B)},filterBy:function(D,C,B){B=B||this.tree.root;if(this.autoClear){this.clear()}var A=this.filtered,H=this.reverse;var E=function(J){if(J==B){return true}if(A[J.id]){return false}var I=D.call(C||J,J);if(!I||H){A[J.id]=J;J.ui.hide();return false}return true};B.cascade(E);if(this.remove){for(var G in A){if(typeof G!="function"){var F=A[G];if(F&&F.parentNode){F.parentNode.removeChild(F)}}}}},clear:function(){var B=this.tree;var A=this.filtered;for(var D in A){if(typeof D!="function"){var C=A[D];if(C){C.ui.show()}}}this.filtered={}}}; |
Ext.tree.TreeSorter=function(B,C){Ext.apply(this,C);B.on("beforechildrenrendered",this.doSort,this);B.on("append",this.updateSort,this);B.on("insert",this.updateSort,this);B.on("textchange",this.updateSortParent,this);var E=this.dir&&this.dir.toLowerCase()=="desc";var F=this.property||"text";var G=this.sortType;var A=this.folderSort;var D=this.caseSensitive===true;var H=this.leafAttr||"leaf";this.sortFn=function(J,I){if(A){if(J.attributes[H]&&!I.attributes[H]){return 1}if(!J.attributes[H]&&I.attributes[H]){return -1}}var L=G?G(J):(D?J.attributes[F]:J.attributes[F].toUpperCase());var K=G?G(I):(D?I.attributes[F]:I.attributes[F].toUpperCase());if(L<K){return E?+1:-1}else{if(L>K){return E?-1:+1}else{return 0}}}};Ext.tree.TreeSorter.prototype={doSort:function(A){A.sort(this.sortFn)},compareNodes:function(B,A){return(B.text.toUpperCase()>A.text.toUpperCase()?1:-1)},updateSort:function(A,B){if(B.childrenRendered){this.doSort.defer(1,this,[B])}},updateSortParent:function(A){var B=A.parentNode;if(B&&B.childrenRendered){this.doSort.defer(1,this,[B])}}}; |
if(Ext.dd.DropZone){Ext.tree.TreeDropZone=function(A,B){this.allowParentInsert=false;this.allowContainerDrop=false;this.appendOnly=false;Ext.tree.TreeDropZone.superclass.constructor.call(this,A.innerCt,B);this.tree=A;this.dragOverData={};this.lastInsertClass="x-tree-no-status"};Ext.extend(Ext.tree.TreeDropZone,Ext.dd.DropZone,{ddGroup:"TreeDD",expandDelay:1000,expandNode:function(A){if(A.hasChildNodes()&&!A.isExpanded()){A.expand(false,null,this.triggerCacheRefresh.createDelegate(this))}},queueExpand:function(A){this.expandProcId=this.expandNode.defer(this.expandDelay,this,[A])},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false}},isValidDropPoint:function(A,I,G,D,C){if(!A||!C){return false}var E=A.node;var F=C.node;if(!(E&&E.isTarget&&I)){return false}if(I=="append"&&E.allowChildren===false){return false}if((I=="above"||I=="below")&&(E.parentNode&&E.parentNode.allowChildren===false)){return false}if(F&&(E==F||F.contains(E))){return false}var B=this.dragOverData;B.tree=this.tree;B.target=E;B.data=C;B.point=I;B.source=G;B.rawEvent=D;B.dropNode=F;B.cancel=false;var H=this.tree.fireEvent("nodedragover",B);return B.cancel===false&&H!==false},getDropPoint:function(E,D,I){var J=D.node;if(J.isRoot){return J.allowChildren!==false?"append":false}var B=D.ddel;var K=Ext.lib.Dom.getY(B),G=K+B.offsetHeight;var F=Ext.lib.Event.getPageY(E);var H=J.allowChildren===false||J.isLeaf();if(this.appendOnly||J.parentNode.allowChildren===false){return H?false:"append"}var C=false;if(!this.allowParentInsert){C=J.hasChildNodes()&&J.isExpanded()}var A=(G-K)/(H?2:3);if(F>=K&&F<(K+A)){return"above"}else{if(!C&&(H||F>=G-A&&F<=G)){return"below"}else{return"append"}}},onNodeEnter:function(D,A,C,B){this.cancelExpand()},onNodeOver:function(B,G,F,E){var I=this.getDropPoint(F,B,G);var C=B.node;if(!this.expandProcId&&I=="append"&&C.hasChildNodes()&&!B.node.isExpanded()){this.queueExpand(C)}else{if(I!="append"){this.cancelExpand()}}var D=this.dropNotAllowed;if(this.isValidDropPoint(B,I,G,F,E)){if(I){var A=B.ddel;var H;if(I=="above"){D=B.node.isFirst()?"x-tree-drop-ok-above":"x-tree-drop-ok-between";H="x-tree-drag-insert-above"}else{if(I=="below"){D=B.node.isLast()?"x-tree-drop-ok-below":"x-tree-drop-ok-between";H="x-tree-drag-insert-below"}else{D="x-tree-drop-ok-append";H="x-tree-drag-append"}}if(this.lastInsertClass!=H){Ext.fly(A).replaceClass(this.lastInsertClass,H);this.lastInsertClass=H}}}return D},onNodeOut:function(D,A,C,B){this.cancelExpand();this.removeDropIndicators(D)},onNodeDrop:function(C,I,E,D){var H=this.getDropPoint(E,C,I);var F=C.node;F.ui.startDrop();if(!this.isValidDropPoint(C,H,I,E,D)){F.ui.endDrop();return false}var G=D.node||(I.getTreeNode?I.getTreeNode(D,F,H,E):null);var B={tree:this.tree,target:F,data:D,point:H,source:I,rawEvent:E,dropNode:G,cancel:!G,dropStatus:false};var A=this.tree.fireEvent("beforenodedrop",B);if(A===false||B.cancel===true||!B.dropNode){F.ui.endDrop();return B.dropStatus}F=B.target;if(H=="append"&&!F.isExpanded()){F.expand(false,null,function(){this.completeDrop(B)}.createDelegate(this))}else{this.completeDrop(B)}return true},completeDrop:function(G){var D=G.dropNode,E=G.point,C=G.target;if(!Ext.isArray(D)){D=[D]}var F;for(var B=0,A=D.length;B<A;B++){F=D[B];if(E=="above"){C.parentNode.insertBefore(F,C)}else{if(E=="below"){C.parentNode.insertBefore(F,C.nextSibling)}else{C.appendChild(F)}}}F.ui.focus();if(this.tree.hlDrop){F.ui.highlight()}C.ui.endDrop();this.tree.fireEvent("nodedrop",G)},afterNodeMoved:function(A,C,E,D,B){if(this.tree.hlDrop){B.ui.focus();B.ui.highlight()}this.tree.fireEvent("nodedrop",this.tree,D,C,A,E)},getTree:function(){return this.tree},removeDropIndicators:function(B){if(B&&B.ddel){var A=B.ddel;Ext.fly(A).removeClass(["x-tree-drag-insert-above","x-tree-drag-insert-below","x-tree-drag-append"]);this.lastInsertClass="_noclass"}},beforeDragDrop:function(B,A,C){this.cancelExpand();return true},afterRepair:function(A){if(A&&Ext.enableFx){A.node.ui.highlight()}this.hideProxy()}})}; |
if(Ext.dd.DragZone){Ext.tree.TreeDragZone=function(A,B){Ext.tree.TreeDragZone.superclass.constructor.call(this,A.getTreeEl(),B);this.tree=A};Ext.extend(Ext.tree.TreeDragZone,Ext.dd.DragZone,{ddGroup:"TreeDD",onBeforeDrag:function(A,B){var C=A.node;return C&&C.draggable&&!C.disabled},onInitDrag:function(B){var A=this.dragData;this.tree.getSelectionModel().select(A.node);this.tree.eventModel.disable();this.proxy.update("");A.node.ui.appendDDGhost(this.proxy.ghost.dom);this.tree.fireEvent("startdrag",this.tree,A.node,B)},getRepairXY:function(B,A){return A.node.ui.getDDRepairXY()},onEndDrag:function(A,B){this.tree.eventModel.enable.defer(100,this.tree.eventModel);this.tree.fireEvent("enddrag",this.tree,A.node,B)},onValidDrop:function(A,B,C){this.tree.fireEvent("dragdrop",this.tree,this.dragData.node,A,B);this.hideProxy()},beforeInvalidDrop:function(A,C){var B=this.tree.getSelectionModel();B.clearSelections();B.select(this.dragData.node)}})}; |
Ext.tree.TreeEditor=function(A,B){B=B||{};var C=B.events?B:new Ext.form.TextField(B);Ext.tree.TreeEditor.superclass.constructor.call(this,C);this.tree=A;if(!A.rendered){A.on("render",this.initEditor,this)}else{this.initEditor(A)}};Ext.extend(Ext.tree.TreeEditor,Ext.Editor,{alignment:"l-l",autoSize:false,hideEl:false,cls:"x-small-editor x-tree-editor",shim:false,shadow:"frame",maxWidth:250,editDelay:350,initEditor:function(A){A.on("beforeclick",this.beforeNodeClick,this);A.on("dblclick",this.onNodeDblClick,this);this.on("complete",this.updateNode,this);this.on("beforestartedit",this.fitToTree,this);this.on("startedit",this.bindScroll,this,{delay:10});this.on("specialkey",this.onSpecialKey,this)},fitToTree:function(B,C){var E=this.tree.getTreeEl().dom,D=C.dom;if(E.scrollLeft>D.offsetLeft){E.scrollLeft=D.offsetLeft}var A=Math.min(this.maxWidth,(E.clientWidth>20?E.clientWidth:E.offsetWidth)-Math.max(0,D.offsetLeft-E.scrollLeft)-5);this.setSize(A,"")},triggerEdit:function(A,B){this.completeEdit();if(A.attributes.editable!==false){this.editNode=A;this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[A.ui.textNode,A.text]);return false}},bindScroll:function(){this.tree.getTreeEl().on("scroll",this.cancelEdit,this)},beforeNodeClick:function(A,B){clearTimeout(this.autoEditTimer);if(this.tree.getSelectionModel().isSelected(A)){B.stopEvent();return this.triggerEdit(A)}},onNodeDblClick:function(A,B){clearTimeout(this.autoEditTimer)},updateNode:function(A,B){this.tree.getTreeEl().un("scroll",this.cancelEdit,this);this.editNode.setText(B)},onHide:function(){Ext.tree.TreeEditor.superclass.onHide.call(this);if(this.editNode){this.editNode.ui.focus.defer(50,this.editNode.ui)}},onSpecialKey:function(C,B){var A=B.getKey();if(A==B.ESC){B.stopEvent();this.cancelEdit()}else{if(A==B.ENTER&&!B.hasModifier()){B.stopEvent();this.completeEdit()}}}}); |
Ext.menu.Menu=function(A){if(Ext.isArray(A)){A={items:A}}Ext.apply(this,A);this.id=this.id||Ext.id();this.addEvents("beforeshow","beforehide","show","hide","click","mouseover","mouseout","itemclick");Ext.menu.MenuMgr.register(this);Ext.menu.Menu.superclass.constructor.call(this);var B=this.items;this.items=new Ext.util.MixedCollection();if(B){this.add.apply(this,B)}};Ext.extend(Ext.menu.Menu,Ext.util.Observable,{minWidth:120,shadow:"sides",subMenuAlign:"tl-tr?",defaultAlign:"tl-bl?",allowOtherMenus:false,hidden:true,createEl:function(){return new Ext.Layer({cls:"x-menu",shadow:this.shadow,constrain:false,parentEl:this.parentEl||document.body,zindex:15000})},render:function(){if(this.el){return }var B=this.el=this.createEl();if(!this.keyNav){this.keyNav=new Ext.menu.MenuNav(this)}if(this.plain){B.addClass("x-menu-plain")}if(this.cls){B.addClass(this.cls)}this.focusEl=B.createChild({tag:"a",cls:"x-menu-focus",href:"#",onclick:"return false;",tabIndex:"-1"});var A=B.createChild({tag:"ul",cls:"x-menu-list"});A.on("click",this.onClick,this);A.on("mouseover",this.onMouseOver,this);A.on("mouseout",this.onMouseOut,this);this.items.each(function(D){var C=document.createElement("li");C.className="x-menu-list-item";A.dom.appendChild(C);D.render(C,this)},this);this.ul=A;this.autoWidth()},autoWidth:function(){var D=this.el,C=this.ul;if(!D){return }var A=this.width;if(A){D.setWidth(A)}else{if(Ext.isIE){D.setWidth(this.minWidth);var B=D.dom.offsetWidth;D.setWidth(C.getWidth()+D.getFrameWidth("lr"))}}},delayAutoWidth:function(){if(this.el){if(!this.awTask){this.awTask=new Ext.util.DelayedTask(this.autoWidth,this)}this.awTask.delay(20)}},findTargetItem:function(B){var A=B.getTarget(".x-menu-list-item",this.ul,true);if(A&&A.menuItemId){return this.items.get(A.menuItemId)}},onClick:function(B){var A;if(A=this.findTargetItem(B)){A.onClick(B);this.fireEvent("click",this,A,B)}},setActiveItem:function(A,B){if(A!=this.activeItem){if(this.activeItem){this.activeItem.deactivate()}this.activeItem=A;A.activate(B)}else{if(B){A.expandMenu()}}},tryActivate:function(F,E){var B=this.items;for(var C=F,A=B.length;C>=0&&C<A;C+=E){var D=B.get(C);if(!D.disabled&&D.canActivate){this.setActiveItem(D,false);return D}}return false},onMouseOver:function(B){var A;if(A=this.findTargetItem(B)){if(A.canActivate&&!A.disabled){this.setActiveItem(A,true)}}this.fireEvent("mouseover",this,B,A)},onMouseOut:function(B){var A;if(A=this.findTargetItem(B)){if(A==this.activeItem&&A.shouldDeactivate(B)){this.activeItem.deactivate();delete this.activeItem}}this.fireEvent("mouseout",this,B,A)},isVisible:function(){return this.el&&!this.hidden},show:function(B,C,A){this.parentMenu=A;if(!this.el){this.render()}this.fireEvent("beforeshow",this);this.showAt(this.el.getAlignToXY(B,C||this.defaultAlign),A,false)},showAt:function(C,B,A){this.parentMenu=B;if(!this.el){this.render()}if(A!==false){this.fireEvent("beforeshow",this);C=this.el.adjustForConstraints(C)}this.el.setXY(C);this.el.show();this.hidden=false;this.focus();this.fireEvent("show",this)},focus:function(){if(!this.hidden){this.doFocus.defer(50,this)}},doFocus:function(){if(!this.hidden){this.focusEl.focus()}},hide:function(A){if(this.el&&this.isVisible()){this.fireEvent("beforehide",this);if(this.activeItem){this.activeItem.deactivate();this.activeItem=null}this.el.hide();this.hidden=true;this.fireEvent("hide",this)}if(A===true&&this.parentMenu){this.parentMenu.hide(true)}},add:function(){var B=arguments,A=B.length,E;for(var C=0;C<A;C++){var D=B[C];if(D.render){E=this.addItem(D)}else{if(typeof D=="string"){if(D=="separator"||D=="-"){E=this.addSeparator()}else{E=this.addText(D)}}else{if(D.tagName||D.el){E=this.addElement(D)}else{if(typeof D=="object"){Ext.applyIf(D,this.defaults);E=this.addMenuItem(D)}}}}}return E},getEl:function(){if(!this.el){this.render()}return this.el},addSeparator:function(){return this.addItem(new Ext.menu.Separator())},addElement:function(A){return this.addItem(new Ext.menu.BaseItem(A))},addItem:function(B){this.items.add(B);if(this.ul){var A=document.createElement("li");A.className="x-menu-list-item";this.ul.dom.appendChild(A);B.render(A,this);this.delayAutoWidth()}return B},addMenuItem:function(A){if(!(A instanceof Ext.menu.Item)){if(typeof A.checked=="boolean"){A=new Ext.menu.CheckItem(A)}else{A=new Ext.menu.Item(A)}}return this.addItem(A)},addText:function(A){return this.addItem(new Ext.menu.TextItem(A))},insert:function(B,C){this.items.insert(B,C);if(this.ul){var A=document.createElement("li");A.className="x-menu-list-item";this.ul.dom.insertBefore(A,this.ul.dom.childNodes[B]);C.render(A,this);this.delayAutoWidth()}return C},remove:function(A){this.items.removeKey(A.id);A.destroy()},removeAll:function(){var A;while(A=this.items.first()){this.remove(A)}},destroy:function(){this.beforeDestroy();Ext.menu.MenuMgr.unregister(this);if(this.keyNav){this.keyNav.disable()}this.removeAll();if(this.ul){this.ul.removeAllListeners()}if(this.el){this.el.destroy()}},beforeDestroy:Ext.emptyFn});Ext.menu.MenuNav=function(A){Ext.menu.MenuNav.superclass.constructor.call(this,A.el);this.scope=this.menu=A};Ext.extend(Ext.menu.MenuNav,Ext.KeyNav,{doRelay:function(C,B){var A=C.getKey();if(!this.menu.activeItem&&C.isNavKeyPress()&&A!=C.SPACE&&A!=C.RETURN){this.menu.tryActivate(0,1);return false}return B.call(this.scope||this,C,this.menu)},up:function(B,A){if(!A.tryActivate(A.items.indexOf(A.activeItem)-1,-1)){A.tryActivate(A.items.length-1,-1)}},down:function(B,A){if(!A.tryActivate(A.items.indexOf(A.activeItem)+1,1)){A.tryActivate(0,1)}},right:function(B,A){if(A.activeItem){A.activeItem.expandMenu(true)}},left:function(B,A){A.hide();if(A.parentMenu&&A.parentMenu.activeItem){A.parentMenu.activeItem.activate()}},enter:function(B,A){if(A.activeItem){B.stopPropagation();A.activeItem.onClick(B);A.fireEvent("click",this,A.activeItem);return true}}}); |
Ext.menu.MenuMgr=function(){var F,D,C={},A=false,K=new Date();function M(){F={};D=new Ext.util.MixedCollection();Ext.getDoc().addKeyListener(27,function(){if(D.length>0){H()}})}function H(){if(D&&D.length>0){var N=D.clone();N.each(function(O){O.hide()})}}function E(N){D.remove(N);if(D.length<1){Ext.getDoc().un("mousedown",L);A=false}}function J(N){var O=D.last();K=new Date();D.add(N);if(!A){Ext.getDoc().on("mousedown",L);A=true}if(N.parentMenu){N.getEl().setZIndex(parseInt(N.parentMenu.getEl().getStyle("z-index"),10)+3);N.parentMenu.activeChild=N}else{if(O&&O.isVisible()){N.getEl().setZIndex(parseInt(O.getEl().getStyle("z-index"),10)+3)}}}function B(N){if(N.activeChild){N.activeChild.hide()}if(N.autoHideTimer){clearTimeout(N.autoHideTimer);delete N.autoHideTimer}}function G(N){var O=N.parentMenu;if(!O&&!N.allowOtherMenus){H()}else{if(O&&O.activeChild){O.activeChild.hide()}}}function L(N){if(K.getElapsed()>50&&D.length>0&&!N.getTarget(".x-menu")){H()}}function I(O,R){if(R){var Q=C[O.group];for(var P=0,N=Q.length;P<N;P++){if(Q[P]!=O){Q[P].setChecked(false)}}}}return{hideAll:function(){H()},register:function(O){if(!F){M()}F[O.id]=O;O.on("beforehide",B);O.on("hide",E);O.on("beforeshow",G);O.on("show",J);var N=O.group;if(N&&O.events["checkchange"]){if(!C[N]){C[N]=[]}C[N].push(O);O.on("checkchange",onCheck)}},get:function(N){if(typeof N=="string"){if(!F){return null}return F[N]}else{if(N.events){return N}else{if(typeof N.length=="number"){return new Ext.menu.Menu({items:N})}else{return new Ext.menu.Menu(N)}}}},unregister:function(O){delete F[O.id];O.un("beforehide",B);O.un("hide",E);O.un("beforeshow",G);O.un("show",J);var N=O.group;if(N&&O.events["checkchange"]){C[N].remove(O);O.un("checkchange",onCheck)}},registerCheckable:function(N){var O=N.group;if(O){if(!C[O]){C[O]=[]}C[O].push(N);N.on("beforecheckchange",I)}},unregisterCheckable:function(N){var O=N.group;if(O){C[O].remove(N);N.un("beforecheckchange",I)}},getCheckedItem:function(P){var Q=C[P];if(Q){for(var O=0,N=Q.length;O<N;O++){if(Q[O].checked){return Q[O]}}}return null},setCheckedItem:function(P,R){var Q=C[P];if(Q){for(var O=0,N=Q.length;O<N;O++){if(Q[O].id==R){Q[O].setChecked(true)}}}return null}}}(); |
Ext.menu.BaseItem=function(A){Ext.menu.BaseItem.superclass.constructor.call(this,A);this.addEvents("click","activate","deactivate");if(this.handler){this.on("click",this.handler,this.scope)}};Ext.extend(Ext.menu.BaseItem,Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,hideDelay:100,ctype:"Ext.menu.BaseItem",actionMode:"container",render:function(A,B){this.parentMenu=B;Ext.menu.BaseItem.superclass.render.call(this,A);this.container.menuItemId=this.id},onRender:function(B,A){this.el=Ext.get(this.el);B.dom.appendChild(this.el.dom)},setHandler:function(B,A){if(this.handler){this.un("click",this.handler,this.scope)}this.on("click",this.handler=B,this.scope=A)},onClick:function(A){if(!this.disabled&&this.fireEvent("click",this,A)!==false&&this.parentMenu.fireEvent("itemclick",this,A)!==false){this.handleClick(A)}else{A.stopEvent()}},activate:function(){if(this.disabled){return false}var A=this.container;A.addClass(this.activeClass);this.region=A.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this)},shouldDeactivate:function(A){return !this.region||!this.region.contains(A.getPoint())},handleClick:function(A){if(this.hideOnClick){this.parentMenu.hide.defer(this.hideDelay,this.parentMenu,[true])}},expandMenu:function(A){},hideMenu:function(){}}); |
Ext.menu.TextItem=function(A){this.text=A;Ext.menu.TextItem.superclass.constructor.call(this)};Ext.extend(Ext.menu.TextItem,Ext.menu.BaseItem,{hideOnClick:false,itemCls:"x-menu-text",onRender:function(){var A=document.createElement("span");A.className=this.itemCls;A.innerHTML=this.text;this.el=A;Ext.menu.TextItem.superclass.onRender.apply(this,arguments)}}); |
Ext.menu.Separator=function(A){Ext.menu.Separator.superclass.constructor.call(this,A)};Ext.extend(Ext.menu.Separator,Ext.menu.BaseItem,{itemCls:"x-menu-sep",hideOnClick:false,onRender:function(A){var B=document.createElement("span");B.className=this.itemCls;B.innerHTML=" ";this.el=B;A.addClass("x-menu-sep-li");Ext.menu.Separator.superclass.onRender.apply(this,arguments)}}); |
Ext.menu.Item=function(A){Ext.menu.Item.superclass.constructor.call(this,A);if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu)}};Ext.extend(Ext.menu.Item,Ext.menu.BaseItem,{itemCls:"x-menu-item",canActivate:true,showDelay:200,hideDelay:200,ctype:"Ext.menu.Item",onRender:function(B,A){var C=document.createElement("a");C.hideFocus=true;C.unselectable="on";C.href=this.href||"#";if(this.hrefTarget){C.target=this.hrefTarget}C.className=this.itemCls+(this.menu?" x-menu-item-arrow":"")+(this.cls?" "+this.cls:"");C.innerHTML=String.format("<img src=\"{0}\" class=\"x-menu-item-icon {2}\" />{1}",this.icon||Ext.BLANK_IMAGE_URL,this.itemText||this.text,this.iconCls||"");this.el=C;Ext.menu.Item.superclass.onRender.call(this,B,A)},setText:function(A){this.text=A;if(this.rendered){this.el.update(String.format("<img src=\"{0}\" class=\"x-menu-item-icon {2}\">{1}",this.icon||Ext.BLANK_IMAGE_URL,this.text,this.iconCls||""));this.parentMenu.autoWidth()}},setIconClass:function(A){var B=this.iconCls;this.iconCls=A;if(this.rendered){this.el.child("img.x-menu-item-icon").replaceClass(B,this.iconCls)}},handleClick:function(A){if(!this.href){A.stopEvent()}Ext.menu.Item.superclass.handleClick.apply(this,arguments)},activate:function(A){if(Ext.menu.Item.superclass.activate.apply(this,arguments)){this.focus();if(A){this.expandMenu()}}return true},shouldDeactivate:function(A){if(Ext.menu.Item.superclass.shouldDeactivate.call(this,A)){if(this.menu&&this.menu.isVisible()){return !this.menu.getEl().getRegion().contains(A.getPoint())}return true}return false},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments);this.hideMenu()},expandMenu:function(A){if(!this.disabled&&this.menu){clearTimeout(this.hideTimer);delete this.hideTimer;if(!this.menu.isVisible()&&!this.showTimer){this.showTimer=this.deferExpand.defer(this.showDelay,this,[A])}else{if(this.menu.isVisible()&&A){this.menu.tryActivate(0,1)}}}},deferExpand:function(A){delete this.showTimer;this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu);if(A){this.menu.tryActivate(0,1)}},hideMenu:function(){clearTimeout(this.showTimer);delete this.showTimer;if(!this.hideTimer&&this.menu&&this.menu.isVisible()){this.hideTimer=this.deferHide.defer(this.hideDelay,this)}},deferHide:function(){delete this.hideTimer;this.menu.hide()}}); |
Ext.menu.CheckItem=function(A){Ext.menu.CheckItem.superclass.constructor.call(this,A);this.addEvents("beforecheckchange","checkchange");if(this.checkHandler){this.on("checkchange",this.checkHandler,this.scope)}Ext.menu.MenuMgr.registerCheckable(this)};Ext.extend(Ext.menu.CheckItem,Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:false,ctype:"Ext.menu.CheckItem",onRender:function(A){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments);if(this.group){this.el.addClass(this.groupClass)}if(this.checked){this.checked=false;this.setChecked(true,true)}},destroy:function(){Ext.menu.MenuMgr.unregisterCheckable(this);Ext.menu.CheckItem.superclass.destroy.apply(this,arguments)},setChecked:function(B,A){if(this.checked!=B&&this.fireEvent("beforecheckchange",this,B)!==false){if(this.container){this.container[B?"addClass":"removeClass"]("x-menu-item-checked")}this.checked=B;if(A!==true){this.fireEvent("checkchange",this,B)}}},handleClick:function(A){if(!this.disabled&&!(this.checked&&this.group)){this.setChecked(!this.checked)}Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments)}}); |
Ext.menu.Adapter=function(B,A){Ext.menu.Adapter.superclass.constructor.call(this,A);this.component=B};Ext.extend(Ext.menu.Adapter,Ext.menu.BaseItem,{canActivate:true,onRender:function(B,A){this.component.render(B);this.el=this.component.getEl()},activate:function(){if(this.disabled){return false}this.component.focus();this.fireEvent("activate",this);return true},deactivate:function(){this.fireEvent("deactivate",this)},disable:function(){this.component.disable();Ext.menu.Adapter.superclass.disable.call(this)},enable:function(){this.component.enable();Ext.menu.Adapter.superclass.enable.call(this)}}); |
Ext.menu.DateItem=function(A){Ext.menu.DateItem.superclass.constructor.call(this,new Ext.DatePicker(A),A);this.picker=this.component;this.addEvents("select");this.picker.on("render",function(B){B.getEl().swallowEvent("click");B.container.addClass("x-menu-date-item")});this.picker.on("select",this.onSelect,this)};Ext.extend(Ext.menu.DateItem,Ext.menu.Adapter,{onSelect:function(B,A){this.fireEvent("select",this,A,B);Ext.menu.DateItem.superclass.handleClick.call(this)}}); |
Ext.menu.ColorItem=function(A){Ext.menu.ColorItem.superclass.constructor.call(this,new Ext.ColorPalette(A),A);this.palette=this.component;this.relayEvents(this.palette,["select"]);if(this.selectHandler){this.on("select",this.selectHandler,this.scope)}};Ext.extend(Ext.menu.ColorItem,Ext.menu.Adapter); |
Ext.menu.DateMenu=function(A){Ext.menu.DateMenu.superclass.constructor.call(this,A);this.plain=true;var B=new Ext.menu.DateItem(A);this.add(B);this.picker=B.picker;this.relayEvents(B,["select"]);this.on("beforeshow",function(){if(this.picker){this.picker.hideMonthPicker(true)}},this)};Ext.extend(Ext.menu.DateMenu,Ext.menu.Menu,{cls:"x-date-menu",beforeDestroy:function(){this.picker.destroy()}}); |
Ext.menu.ColorMenu=function(A){Ext.menu.ColorMenu.superclass.constructor.call(this,A);this.plain=true;var B=new Ext.menu.ColorItem(A);this.add(B);this.palette=B.palette;this.relayEvents(B,["select"])};Ext.extend(Ext.menu.ColorMenu,Ext.menu.Menu); |
Ext.form.Field=Ext.extend(Ext.BoxComponent,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:true,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:"qtip",msgFx:"normal",readOnly:false,disabled:false,isFormField:true,hasFocus:false,initComponent:function(){Ext.form.Field.superclass.initComponent.call(this);this.addEvents("focus","blur","specialkey","change","invalid","valid")},getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:(this.hiddenName||"")},onRender:function(C,A){Ext.form.Field.superclass.onRender.call(this,C,A);if(!this.el){var B=this.getAutoCreate();if(!B.name){B.name=this.name||this.id}if(this.inputType){B.type=this.inputType}this.el=C.createChild(B,A)}var D=this.el.dom.type;if(D){if(D=="password"){D="text"}this.el.addClass("x-form-"+D)}if(this.readOnly){this.el.dom.readOnly=true}if(this.tabIndex!==undefined){this.el.dom.setAttribute("tabIndex",this.tabIndex)}this.el.addClass([this.fieldClass,this.cls]);this.initValue()},initValue:function(){if(this.value!==undefined){this.setValue(this.value)}else{if(this.el.dom.value.length>0){this.setValue(this.el.dom.value)}}},isDirty:function(){if(this.disabled){return false}return String(this.getValue())!==String(this.originalValue)},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents()},fireKey:function(A){if(A.isSpecialKey()){this.fireEvent("specialkey",this,A)}},reset:function(){this.setValue(this.originalValue);this.clearInvalid()},initEvents:function(){this.el.on(Ext.isIE?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);this.el.on("blur",this.onBlur,this);this.originalValue=this.getValue()},onFocus:function(){if(!Ext.isOpera&&this.focusClass){this.el.addClass(this.focusClass)}if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this)}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(!Ext.isOpera&&this.focusClass){this.el.removeClass(this.focusClass)}this.hasFocus=false;if(this.validationEvent!==false&&this.validateOnBlur&&this.validationEvent!="blur"){this.validate()}var A=this.getValue();if(String(A)!==String(this.startValue)){this.fireEvent("change",this,A,this.startValue)}this.fireEvent("blur",this)},isValid:function(A){if(this.disabled){return true}var C=this.preventMark;this.preventMark=A===true;var B=this.validateValue(this.processValue(this.getRawValue()));this.preventMark=C;return B},validate:function(){if(this.disabled||this.validateValue(this.processValue(this.getRawValue()))){this.clearInvalid();return true}return false},processValue:function(A){return A},validateValue:function(A){return true},markInvalid:function(C){if(!this.rendered||this.preventMark){return }this.el.addClass(this.invalidClass);C=C||this.invalidText;switch(this.msgTarget){case"qtip":this.el.dom.qtip=C;this.el.dom.qclass="x-form-invalid-tip";if(Ext.QuickTips){Ext.QuickTips.enable()}break;case"title":this.el.dom.title=C;break;case"under":if(!this.errorEl){var B=this.el.findParent(".x-form-element",5,true);this.errorEl=B.createChild({cls:"x-form-invalid-msg"});this.errorEl.setWidth(B.getWidth(true)-20)}this.errorEl.update(C);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this);break;case"side":if(!this.errorIcon){var B=this.el.findParent(".x-form-element",5,true);this.errorIcon=B.createChild({cls:"x-form-invalid-icon"})}this.alignErrorIcon();this.errorIcon.dom.qtip=C;this.errorIcon.dom.qclass="x-form-invalid-tip";this.errorIcon.show();this.on("resize",this.alignErrorIcon,this);break;default:var A=Ext.getDom(this.msgTarget);A.innerHTML=C;A.style.display=this.msgDisplay;break}this.fireEvent("invalid",this,C)},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,"tl-tr",[2,0])},clearInvalid:function(){if(!this.rendered||this.preventMark){return }this.el.removeClass(this.invalidClass);switch(this.msgTarget){case"qtip":this.el.dom.qtip="";break;case"title":this.el.dom.title="";break;case"under":if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this)}break;case"side":if(this.errorIcon){this.errorIcon.dom.qtip="";this.errorIcon.hide();this.un("resize",this.alignErrorIcon,this)}break;default:var A=Ext.getDom(this.msgTarget);A.innerHTML="";A.style.display="none";break}this.fireEvent("valid",this)},getRawValue:function(){var A=this.rendered?this.el.getValue():Ext.value(this.value,"");if(A===this.emptyText){A=""}return A},getValue:function(){if(!this.rendered){return this.value}var A=this.el.getValue();if(A===this.emptyText||A===undefined){A=""}return A},setRawValue:function(A){return this.el.dom.value=(A===null||A===undefined?"":A)},setValue:function(A){this.value=A;if(this.rendered){this.el.dom.value=(A===null||A===undefined?"":A);this.validate()}},adjustSize:function(A,C){var B=Ext.form.Field.superclass.adjustSize.call(this,A,C);B.width=this.adjustWidth(this.el.dom.tagName,B.width);return B},adjustWidth:function(A,B){A=A.toLowerCase();if(typeof B=="number"&&!Ext.isSafari){if(Ext.isIE&&(A=="input"||A=="textarea")){if(A=="input"&&!Ext.isStrict){return this.inEditor?B:B-3}if(A=="input"&&Ext.isStrict){return B-(Ext.isIE6?4:1)}if(A="textarea"&&Ext.isStrict){return B-2}}else{if(Ext.isOpera&&Ext.isStrict){if(A=="input"){return B+2}if(A="textarea"){return B-2}}}}return B}});Ext.form.Field.msgFx={normal:{show:function(A,B){A.setDisplayed("block")},hide:function(A,B){A.setDisplayed(false).update("")}},slide:{show:function(A,B){A.slideIn("t",{stopFx:true})},hide:function(A,B){A.slideOut("t",{stopFx:true,useDisplay:true})}},slideRight:{show:function(A,B){A.fixDisplay();A.alignTo(B.el,"tl-tr");A.slideIn("l",{stopFx:true})},hide:function(A,B){A.slideOut("l",{stopFx:true,useDisplay:true})}}};Ext.reg("field",Ext.form.Field); |
Ext.form.TextField=Ext.extend(Ext.form.Field,{grow:false,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:false,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:false,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:"x-form-empty-field",initComponent:function(){Ext.form.TextField.superclass.initComponent.call(this);this.addEvents("autosize")},initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent=="keyup"){this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.el.on("keyup",this.filterValidation,this)}else{if(this.validationEvent!==false){this.el.on(this.validationEvent,this.validate,this,{buffer:this.validationDelay})}}if(this.selectOnFocus||this.emptyText){this.on("focus",this.preFocus,this);if(this.emptyText){this.on("blur",this.postBlur,this);this.applyEmptyText()}}if(this.maskRe||(this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Ext.form.VTypes[this.vtype+"Mask"]))){this.el.on("keypress",this.filterKeys,this)}if(this.grow){this.el.on("keyup",this.onKeyUp,this,{buffer:50});this.el.on("click",this.autoSize,this)}},processValue:function(A){if(this.stripCharsRe){var B=A.replace(this.stripCharsRe,"");if(B!==A){this.setRawValue(B);return B}}return A},filterValidation:function(A){if(!A.isNavKeyPress()){this.validationTask.delay(this.validationDelay)}},onKeyUp:function(A){if(!A.isNavKeyPress()){this.autoSize()}},reset:function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText()},applyEmptyText:function(){if(this.rendered&&this.emptyText&&this.getRawValue().length<1){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass)}},preFocus:function(){if(this.emptyText){if(this.el.dom.value==this.emptyText){this.setRawValue("")}this.el.removeClass(this.emptyClass)}if(this.selectOnFocus){this.el.dom.select()}},postBlur:function(){this.applyEmptyText()},filterKeys:function(B){var A=B.getKey();if(!Ext.isIE&&(B.isNavKeyPress()||A==B.BACKSPACE||(A==B.DELETE&&B.button==-1))){return }var D=B.getCharCode(),C=String.fromCharCode(D);if(Ext.isIE&&(B.isSpecialKey()||!C)){return }if(!this.maskRe.test(C)){B.stopEvent()}},setValue:function(A){if(this.emptyText&&this.el&&A!==undefined&&A!==null&&A!==""){this.el.removeClass(this.emptyClass)}Ext.form.TextField.superclass.setValue.apply(this,arguments);this.applyEmptyText();this.autoSize()},validateValue:function(A){if(A.length<1||A===this.emptyText){if(this.allowBlank){this.clearInvalid();return true}else{this.markInvalid(this.blankText);return false}}if(A.length<this.minLength){this.markInvalid(String.format(this.minLengthText,this.minLength));return false}if(A.length>this.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false}if(this.vtype){var C=Ext.form.VTypes;if(!C[this.vtype](A,this)){this.markInvalid(this.vtypeText||C[this.vtype+"Text"]);return false}}if(typeof this.validator=="function"){var B=this.validator(A);if(B!==true){this.markInvalid(B);return false}}if(this.regex&&!this.regex.test(A)){this.markInvalid(this.regexText);return false}return true},selectText:function(E,A){var C=this.getRawValue();if(C.length>0){E=E===undefined?0:E;A=A===undefined?C.length:A;var D=this.el.dom;if(D.setSelectionRange){D.setSelectionRange(E,A)}else{if(D.createTextRange){var B=D.createTextRange();B.moveStart("character",E);B.moveEnd("character",A-C.length);B.select()}}}},autoSize:function(){if(!this.grow||!this.rendered){return }if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el)}var C=this.el;var B=C.dom.value;var D=document.createElement("div");D.appendChild(document.createTextNode(B));B=D.innerHTML;D=null;B+=" ";var A=Math.min(this.growMax,Math.max(this.metrics.getWidth(B)+10,this.growMin));this.el.setWidth(A);this.fireEvent("autosize",this,A)}});Ext.reg("textfield",Ext.form.TextField); |
Ext.form.TriggerField=Ext.extend(Ext.form.TextField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},hideTrigger:false,autoSize:Ext.emptyFn,monitorTab:true,deferHeight:true,mimicing:false,onResize:function(A,B){Ext.form.TriggerField.superclass.onResize.call(this,A,B);if(typeof A=="number"){this.el.setWidth(this.adjustWidth("input",A-this.trigger.getWidth()))}this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())},adjustSize:Ext.BoxComponent.prototype.adjustSize,getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},alignErrorIcon:function(){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0])},onRender:function(B,A){Ext.form.TriggerField.superclass.onRender.call(this,B,A);this.wrap=this.el.wrap({cls:"x-form-field-wrap"});this.trigger=this.wrap.createChild(this.triggerConfig||{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});if(this.hideTrigger){this.trigger.setDisplayed(false)}this.initTrigger();if(!this.width){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())}},initTrigger:function(){this.trigger.on("click",this.onTriggerClick,this,{preventDefault:true});this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click")},onDestroy:function(){if(this.trigger){this.trigger.removeAllListeners();this.trigger.remove()}if(this.wrap){this.wrap.remove()}Ext.form.TriggerField.superclass.onDestroy.call(this)},onFocus:function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.wrap.addClass("x-trigger-wrap-focus");this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this,{delay:10});if(this.monitorTab){this.el.on("keydown",this.checkTab,this)}}},checkTab:function(A){if(A.getKey()==A.TAB){this.triggerBlur()}},onBlur:function(){},mimicBlur:function(A){if(!this.wrap.contains(A.target)&&this.validateBlur(A)){this.triggerBlur()}},triggerBlur:function(){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur);if(this.monitorTab){this.el.un("keydown",this.checkTab,this)}this.beforeBlur();this.wrap.removeClass("x-trigger-wrap-focus");Ext.form.TriggerField.superclass.onBlur.call(this)},beforeBlur:Ext.emptyFn,validateBlur:function(A){return true},onDisable:function(){Ext.form.TriggerField.superclass.onDisable.call(this);if(this.wrap){this.wrap.addClass("x-item-disabled")}},onEnable:function(){Ext.form.TriggerField.superclass.onEnable.call(this);if(this.wrap){this.wrap.removeClass("x-item-disabled")}},onShow:function(){if(this.wrap){this.wrap.dom.style.display="";this.wrap.dom.style.visibility="visible"}},onHide:function(){this.wrap.dom.style.display="none"},onTriggerClick:Ext.emptyFn});Ext.form.TwinTriggerField=Ext.extend(Ext.form.TriggerField,{initComponent:function(){Ext.form.TwinTriggerField.superclass.initComponent.call(this);this.triggerConfig={tag:"span",cls:"x-form-twin-triggers",cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger1Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger2Class}]}},getTrigger:function(A){return this.triggers[A]},initTrigger:function(){var A=this.trigger.select(".x-form-trigger",true);this.wrap.setStyle("overflow","hidden");var B=this;A.each(function(D,F,C){D.hide=function(){var G=B.wrap.getWidth();this.dom.style.display="none";B.el.setWidth(G-B.trigger.getWidth())};D.show=function(){var G=B.wrap.getWidth();this.dom.style.display="";B.el.setWidth(G-B.trigger.getWidth())};var E="Trigger"+(C+1);if(this["hide"+E]){D.dom.style.display="none"}D.on("click",this["on"+E+"Click"],this,{preventDefault:true});D.addClassOnOver("x-form-trigger-over");D.addClassOnClick("x-form-trigger-click")},this);this.triggers=A.elements},onTrigger1Click:Ext.emptyFn,onTrigger2Click:Ext.emptyFn});Ext.reg("trigger",Ext.form.TriggerField); |
Ext.form.TextArea=Ext.extend(Ext.form.TextField,{growMin:60,growMax:1000,growAppend:" \n ",growPad:0,enterIsSpecial:false,preventScrollbars:false,onRender:function(B,A){if(!this.el){this.defaultAutoCreate={tag:"textarea",style:"width:100px;height:60px;",autocomplete:"off"}}Ext.form.TextArea.superclass.onRender.call(this,B,A);if(this.grow){this.textSizeEl=Ext.DomHelper.append(document.body,{tag:"pre",cls:"x-form-grow-sizer"});if(this.preventScrollbars){this.el.setStyle("overflow","hidden")}this.el.setHeight(this.growMin)}},onDestroy:function(){if(this.textSizeEl){Ext.removeNode(this.textSizeEl)}Ext.form.TextArea.superclass.onDestroy.call(this)},fireKey:function(A){if(A.isSpecialKey()&&(this.enterIsSpecial||(A.getKey()!=A.ENTER||A.hasModifier()))){this.fireEvent("specialkey",this,A)}},onKeyUp:function(A){if(!A.isNavKeyPress()||A.getKey()==A.ENTER){this.autoSize()}},autoSize:function(){if(!this.grow||!this.textSizeEl){return }var C=this.el;var A=C.dom.value;var D=this.textSizeEl;D.innerHTML="";D.appendChild(document.createTextNode(A));A=D.innerHTML;Ext.fly(D).setWidth(this.el.getWidth());if(A.length<1){A="  "}else{if(Ext.isIE){A=A.replace(/\n/g,"<p> </p>")}A+=this.growAppend}D.innerHTML=A;var B=Math.min(this.growMax,Math.max(D.offsetHeight,this.growMin)+this.growPad);if(B!=this.lastHeight){this.lastHeight=B;this.el.setHeight(B);this.fireEvent("autosize",this,B)}}});Ext.reg("textarea",Ext.form.TextArea); |
Ext.form.NumberField=Ext.extend(Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,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",baseChars:"0123456789",initEvents:function(){Ext.form.NumberField.superclass.initEvents.call(this);var B=this.baseChars+"";if(this.allowDecimals){B+=this.decimalSeparator}if(this.allowNegative){B+="-"}this.stripCharsRe=new RegExp("[^"+B+"]","gi");var A=function(D){var C=D.getKey();if(!Ext.isIE&&(D.isSpecialKey()||C==D.BACKSPACE||C==D.DELETE)){return }var E=D.getCharCode();if(B.indexOf(String.fromCharCode(E))===-1){D.stopEvent()}};this.el.on("keypress",A,this)},validateValue:function(B){if(!Ext.form.NumberField.superclass.validateValue.call(this,B)){return false}if(B.length<1){return true}B=String(B).replace(this.decimalSeparator,".");if(isNaN(B)){this.markInvalid(String.format(this.nanText,B));return false}var A=this.parseValue(B);if(A<this.minValue){this.markInvalid(String.format(this.minText,this.minValue));return false}if(A>this.maxValue){this.markInvalid(String.format(this.maxText,this.maxValue));return false}return true},getValue:function(){return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)))},setValue:function(A){A=parseFloat(A);A=isNaN(A)?"":String(A).replace(".",this.decimalSeparator);Ext.form.NumberField.superclass.setValue.call(this,A)},parseValue:function(A){A=parseFloat(String(A).replace(this.decimalSeparator,"."));return isNaN(A)?"":A},fixPrecision:function(B){var A=isNaN(B);if(!this.allowDecimals||this.decimalPrecision==-1||A||!B){return A?"":B}return parseFloat(parseFloat(B).toFixed(this.decimalPrecision))},beforeBlur:function(){var A=this.parseValue(this.getRawValue());if(A){this.setValue(this.fixPrecision(A))}}});Ext.reg("numberfield",Ext.form.NumberField); |
Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",disabledDays:null,disabledDaysText:"Disabled",disabledDates:null,disabledDatesText:"Disabled",minValue:null,maxValue:null,minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:"x-form-date-trigger",defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue)}if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue)}this.ddMatch=null;if(this.disabledDates){var A=this.disabledDates;var C="(?:";for(var B=0;B<A.length;B++){C+=A[B];if(B!=A.length-1){C+="|"}}this.ddMatch=new RegExp(C+")")}},validateValue:function(E){E=this.formatDate(E);if(!Ext.form.DateField.superclass.validateValue.call(this,E)){return false}if(E.length<1){return true}var C=E;E=this.parseDate(E);if(!E){this.markInvalid(String.format(this.invalidText,C,this.format));return false}var F=E.getTime();if(this.minValue&&F<this.minValue.getTime()){this.markInvalid(String.format(this.minText,this.formatDate(this.minValue)));return false}if(this.maxValue&&F>this.maxValue.getTime()){this.markInvalid(String.format(this.maxText,this.formatDate(this.maxValue)));return false}if(this.disabledDays){var A=E.getDay();for(var B=0;B<this.disabledDays.length;B++){if(A===this.disabledDays[B]){this.markInvalid(this.disabledDaysText);return false}}}var D=this.formatDate(E);if(this.ddMatch&&this.ddMatch.test(D)){this.markInvalid(String.format(this.disabledDatesText,D));return false}return true},validateBlur:function(){return !this.menu||!this.menu.isVisible()},getValue:function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this))||""},setValue:function(A){Ext.form.DateField.superclass.setValue.call(this,this.formatDate(this.parseDate(A)))},parseDate:function(D){if(!D||Ext.isDate(D)){return D}var B=Date.parseDate(D,this.format);if(!B&&this.altFormats){if(!this.altFormatsArray){this.altFormatsArray=this.altFormats.split("|")}for(var C=0,A=this.altFormatsArray.length;C<A&&!B;C++){B=Date.parseDate(D,this.altFormatsArray[C])}}return B},onDestroy:function(){if(this.menu){this.menu.destroy()}if(this.wrap){this.wrap.remove()}Ext.form.DateField.superclass.onDestroy.call(this)},formatDate:function(A){return Ext.isDate(A)?A.dateFormat(this.format):A},menuListeners:{select:function(A,B){this.setValue(B)},show:function(){this.onFocus()},hide:function(){this.focus.defer(10,this);var A=this.menuListeners;this.menu.un("select",A.select,this);this.menu.un("show",A.show,this);this.menu.un("hide",A.hide,this)}},onTriggerClick:function(){if(this.disabled){return }if(this.menu==null){this.menu=new Ext.menu.DateMenu()}Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.ddMatch,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?")},beforeBlur:function(){var A=this.parseDate(this.getRawValue());if(A){this.setValue(A)}}});Ext.reg("datefield",Ext.form.DateField); |
Ext.form.ComboBox=Ext.extend(Ext.form.TriggerField,{defaultAutoCreate:{tag:"input",type:"text",size:"24",autocomplete:"off"},listClass:"",selectedClass:"x-combo-selected",triggerClass:"x-form-arrow-trigger",shadow:"sides",listAlign:"tl-bl?",maxHeight:300,minHeight:90,triggerAction:"query",minChars:4,typeAhead:false,queryDelay:500,pageSize:0,selectOnFocus:false,queryParam:"query",loadingText:"Loading...",resizable:false,handleHeight:8,editable:true,allQuery:"",mode:"remote",minListWidth:70,forceSelection:false,typeAheadDelay:250,lazyInit:true,initComponent:function(){Ext.form.ComboBox.superclass.initComponent.call(this);this.addEvents("expand","collapse","beforeselect","select","beforequery");if(this.transform){this.allowDomMove=false;var C=Ext.getDom(this.transform);if(!this.hiddenName){this.hiddenName=C.name}if(!this.store){this.mode="local";var G=[],D=C.options;for(var B=0,A=D.length;B<A;B++){var F=D[B];var E=(Ext.isIE?F.getAttributeNode("value").specified:F.hasAttribute("value"))?F.value:F.text;if(F.selected){this.value=E}G.push([E,F.text])}this.store=new Ext.data.SimpleStore({"id":0,fields:["value","text"],data:G});this.valueField="value";this.displayField="text"}C.name=Ext.id();if(!this.lazyRender){this.target=true;this.el=Ext.DomHelper.insertBefore(C,this.autoCreate||this.defaultAutoCreate);Ext.removeNode(C);this.render(this.el.parentNode)}else{Ext.removeNode(C)}}this.selectedIndex=-1;if(this.mode=="local"){if(this.initialConfig.queryDelay===undefined){this.queryDelay=10}if(this.initialConfig.minChars===undefined){this.minChars=0}}},onRender:function(B,A){Ext.form.ComboBox.superclass.onRender.call(this,B,A);if(this.hiddenName){this.hiddenField=this.el.insertSibling({tag:"input",type:"hidden",name:this.hiddenName,id:(this.hiddenId||this.hiddenName)},"before",true);this.hiddenField.value=this.hiddenValue!==undefined?this.hiddenValue:this.value!==undefined?this.value:"";this.el.dom.removeAttribute("name")}if(Ext.isGecko){this.el.dom.setAttribute("autocomplete","off")}if(!this.lazyInit){this.initList()}else{this.on("focus",this.initList,this,{single:true})}if(!this.editable){this.editable=true;this.setEditable(false)}},initList:function(){if(!this.list){var A="x-combo-list";this.list=new Ext.Layer({shadow:this.shadow,cls:[A,this.listClass].join(" "),constrain:false});var B=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setWidth(B);this.list.swallowEvent("mousewheel");this.assetHeight=0;if(this.title){this.header=this.list.createChild({cls:A+"-hd",html:this.title});this.assetHeight+=this.header.getHeight()}this.innerList=this.list.createChild({cls:A+"-inner"});this.innerList.on("mouseover",this.onViewOver,this);this.innerList.on("mousemove",this.onViewMove,this);this.innerList.setWidth(B-this.list.getFrameWidth("lr"));if(this.pageSize){this.footer=this.list.createChild({cls:A+"-ft"});this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer});this.assetHeight+=this.footer.getHeight()}if(!this.tpl){this.tpl="<tpl for=\".\"><div class=\""+A+"-item\">{"+this.displayField+"}</div></tpl>"}this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+A+"-item"});this.view.on("click",this.onViewClick,this);this.bindStore(this.store,true);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.resizer.on("resize",function(E,C,D){this.maxHeight=D-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=C;this.innerList.setWidth(C-this.list.getFrameWidth("lr"));this.restrictHeight()},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")}}},bindStore:function(A,B){if(this.store&&!B){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("loadexception",this.collapse,this);if(!A){this.store=null;if(this.view){this.view.setStore(null)}}}if(A){this.store=Ext.StoreMgr.lookup(A);this.store.on("beforeload",this.onBeforeLoad,this);this.store.on("load",this.onLoad,this);this.store.on("loadexception",this.collapse,this);if(this.view){this.view.setStore(A)}}},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{"up":function(A){this.inKeyMode=true;this.selectPrev()},"down":function(A){if(!this.isExpanded()){this.onTriggerClick()}else{this.inKeyMode=true;this.selectNext()}},"enter":function(A){this.onViewClick();this.delayedCheck=true;this.unsetDelayCheck.defer(10,this)},"esc":function(A){this.collapse()},"tab":function(A){this.onViewClick(false);return true},scope:this,doRelay:function(C,B,A){if(A=="down"||this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this,arguments)}return true},forceKeyDown:true});this.queryDelay=Math.max(this.queryDelay||10,this.mode=="local"?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead){this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this)}if(this.editable!==false){this.el.on("keyup",this.onKeyUp,this)}if(this.forceSelection){this.on("blur",this.doForce,this)}},onDestroy:function(){if(this.view){this.view.el.removeAllListeners();this.view.el.remove();this.view.purgeListeners()}if(this.list){this.list.destroy()}this.bindStore(null);Ext.form.ComboBox.superclass.onDestroy.call(this)},unsetDelayCheck:function(){delete this.delayedCheck},fireKey:function(A){if(A.isNavKeyPress()&&!this.isExpanded()&&!this.delayedCheck){this.fireEvent("specialkey",this,A)}},onResize:function(A,B){Ext.form.ComboBox.superclass.onResize.apply(this,arguments);if(this.list&&this.listWidth===undefined){var C=Math.max(A,this.minListWidth);this.list.setWidth(C);this.innerList.setWidth(C-this.list.getFrameWidth("lr"))}},onEnable:function(){Ext.form.ComboBox.superclass.onEnable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=false}},onDisable:function(){Ext.form.ComboBox.superclass.onDisable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=true}},setEditable:function(A){if(A==this.editable){return }this.editable=A;if(!A){this.el.dom.setAttribute("readOnly",true);this.el.on("mousedown",this.onTriggerClick,this);this.el.addClass("x-combo-noedit")}else{this.el.dom.setAttribute("readOnly",false);this.el.un("mousedown",this.onTriggerClick,this);this.el.removeClass("x-combo-noedit")}},onBeforeLoad:function(){if(!this.hasFocus){return }this.innerList.update(this.loadingText?"<div class=\"loading-indicator\">"+this.loadingText+"</div>":"");this.restrictHeight();this.selectedIndex=-1},onLoad:function(){if(!this.hasFocus){return }if(this.store.getCount()>0){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable){this.el.dom.select()}if(!this.selectByValue(this.value,true)){this.select(0,true)}}else{this.selectNext();if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay)}}}else{this.onEmptyResults()}},onTypeAhead:function(){if(this.store.getCount()>0){var B=this.store.getAt(0);var C=B.data[this.displayField];var A=C.length;var D=this.getRawValue().length;if(D!=A){this.setRawValue(C);this.selectText(D,C.length)}}},onSelect:function(A,B){if(this.fireEvent("beforeselect",this,A,B)!==false){this.setValue(A.data[this.valueField||this.displayField]);this.collapse();this.fireEvent("select",this,A,B)}},getValue:function(){if(this.valueField){return typeof this.value!="undefined"?this.value:""}else{return Ext.form.ComboBox.superclass.getValue.call(this)}},clearValue:function(){if(this.hiddenField){this.hiddenField.value=""}this.setRawValue("");this.lastSelectionText="";this.applyEmptyText();this.value=""},setValue:function(A){var C=A;if(this.valueField){var B=this.findRecord(this.valueField,A);if(B){C=B.data[this.displayField]}else{if(this.valueNotFoundText!==undefined){C=this.valueNotFoundText}}}this.lastSelectionText=C;if(this.hiddenField){this.hiddenField.value=A}Ext.form.ComboBox.superclass.setValue.call(this,C);this.value=A},findRecord:function(C,B){var A;if(this.store.getCount()>0){this.store.each(function(D){if(D.data[C]==B){A=D;return false}})}return A},onViewMove:function(B,A){this.inKeyMode=false},onViewOver:function(D,B){if(this.inKeyMode){return }var C=this.view.findItemFromChild(B);if(C){var A=this.view.indexOf(C);this.select(A,false)}},onViewClick:function(B){var A=this.view.getSelectedIndexes()[0];var C=this.store.getAt(A);if(C){this.onSelect(C,A)}if(B!==false){this.el.focus()}},restrictHeight:function(){this.innerList.dom.style.height="";var B=this.innerList.dom;var E=this.list.getFrameWidth("tb")+(this.resizable?this.handleHeight:0)+this.assetHeight;var C=Math.max(B.clientHeight,B.offsetHeight,B.scrollHeight);var A=this.getPosition()[1]-Ext.getBody().getScroll().top;var F=Ext.lib.Dom.getViewHeight()-A-this.getSize().height;var D=Math.max(A,F,this.minHeight||0)-this.list.shadow.offset-E-2;C=Math.min(C,D,this.maxHeight);this.innerList.setHeight(C);this.list.beginUpdate();this.list.setHeight(C+E);this.list.alignTo(this.el,this.listAlign);this.list.endUpdate()},onEmptyResults:function(){this.collapse()},isExpanded:function(){return this.list&&this.list.isVisible()},selectByValue:function(A,C){if(A!==undefined&&A!==null){var B=this.findRecord(this.valueField||this.displayField,A);if(B){this.select(this.store.indexOf(B),C);return true}}return false},select:function(A,C){this.selectedIndex=A;this.view.select(A);if(C!==false){var B=this.view.getNode(A);if(B){this.innerList.scrollChildIntoView(B,false)}}},selectNext:function(){var A=this.store.getCount();if(A>0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex<A-1){this.select(this.selectedIndex+1)}}}},selectPrev:function(){var A=this.store.getCount();if(A>0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex!=0){this.select(this.selectedIndex-1)}}}},onKeyUp:function(A){if(this.editable!==false&&!A.isSpecialKey()){this.lastKey=A.getKey();this.dqTask.delay(this.queryDelay)}},validateBlur:function(){return !this.list||!this.list.isVisible()},initQuery:function(){this.doQuery(this.getRawValue())},doForce:function(){if(this.el.dom.value.length>0){this.el.dom.value=this.lastSelectionText===undefined?"":this.lastSelectionText;this.applyEmptyText()}},doQuery:function(C,B){if(C===undefined||C===null){C=""}var A={query:C,forceAll:B,combo:this,cancel:false};if(this.fireEvent("beforequery",A)===false||A.cancel){return false}C=A.query;B=A.forceAll;if(B===true||(C.length>=this.minChars)){if(this.lastQuery!==C){this.lastQuery=C;if(this.mode=="local"){this.selectedIndex=-1;if(B){this.store.clearFilter()}else{this.store.filter(this.displayField,C)}this.onLoad()}else{this.store.baseParams[this.queryParam]=C;this.store.load({params:this.getParams(C)});this.expand()}}else{this.selectedIndex=-1;this.onLoad()}}},getParams:function(A){var B={};if(this.pageSize){B.start=0;B.limit=this.pageSize}return B},collapse:function(){if(!this.isExpanded()){return }this.list.hide();Ext.getDoc().un("mousewheel",this.collapseIf,this);Ext.getDoc().un("mousedown",this.collapseIf,this);this.fireEvent("collapse",this)},collapseIf:function(A){if(!A.within(this.wrap)&&!A.within(this.list)){this.collapse()}},expand:function(){if(this.isExpanded()||!this.hasFocus){return }this.list.alignTo(this.wrap,this.listAlign);this.list.show();this.innerList.setOverflow("auto");Ext.getDoc().on("mousewheel",this.collapseIf,this);Ext.getDoc().on("mousedown",this.collapseIf,this);this.fireEvent("expand",this)},onTriggerClick:function(){if(this.disabled){return }if(this.isExpanded()){this.collapse();this.el.focus()}else{this.onFocus({});if(this.triggerAction=="all"){this.doQuery(this.allQuery,true)}else{this.doQuery(this.getRawValue())}this.el.focus()}}});Ext.reg("combo",Ext.form.ComboBox); |
Ext.form.Checkbox=Ext.extend(Ext.form.Field,{focusClass:undefined,fieldClass:"x-form-field",checked:false,defaultAutoCreate:{tag:"input",type:"checkbox",autocomplete:"off"},initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this);this.addEvents("check")},onResize:function(){Ext.form.Checkbox.superclass.onResize.apply(this,arguments);if(!this.boxLabel){this.el.alignTo(this.wrap,"c-c")}},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.el.on("click",this.onClick,this);this.el.on("change",this.onClick,this)},getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,onRender:function(B,A){Ext.form.Checkbox.superclass.onRender.call(this,B,A);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue}this.wrap=this.el.wrap({cls:"x-form-check-wrap"});if(this.boxLabel){this.wrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel})}if(this.checked){this.setValue(true)}else{this.checked=this.el.dom.checked}},onDestroy:function(){if(this.wrap){this.wrap.remove()}Ext.form.Checkbox.superclass.onDestroy.call(this)},initValue:Ext.emptyFn,getValue:function(){if(this.rendered){return this.el.dom.checked}return false},onClick:function(){if(this.el.dom.checked!=this.checked){this.setValue(this.el.dom.checked)}},setValue:function(A){this.checked=(A===true||A==="true"||A=="1"||String(A).toLowerCase()=="on");if(this.el&&this.el.dom){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked}this.fireEvent("check",this,this.checked)}});Ext.reg("checkbox",Ext.form.Checkbox); |
Ext.form.Radio=Ext.extend(Ext.form.Checkbox,{inputType:"radio",markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,getGroupValue:function(){var A=this.el.up("form")||Ext.getBody();var B=A.child("input[name="+this.el.dom.name+"]:checked",true);return B?B.value:null},onClick:function(){if(this.el.dom.checked!=this.checked){var B=this.el.up("form")||Ext.getBody();var A=B.select("input[name="+this.el.dom.name+"]");A.each(function(C){if(C.dom.id==this.id){this.setValue(true)}else{Ext.getCmp(C.dom.id).setValue(false)}},this)}},setValue:function(A){if(typeof A=="boolean"){Ext.form.Radio.superclass.setValue.call(this,A)}else{var B=this.el.up("form").child("input[name="+this.el.dom.name+"][value="+A+"]",true);if(B){B.checked=true}}}});Ext.reg("radio",Ext.form.Radio); |
Ext.form.Hidden=Ext.extend(Ext.form.Field,{inputType:"hidden",onRender:function(){Ext.form.Hidden.superclass.onRender.apply(this,arguments)},initEvents:function(){this.originalValue=this.getValue()},setSize:Ext.emptyFn,setWidth:Ext.emptyFn,setHeight:Ext.emptyFn,setPosition:Ext.emptyFn,setPagePosition:Ext.emptyFn,markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.reg("hidden",Ext.form.Hidden); |
Ext.form.BasicForm=function(B,A){Ext.apply(this,A);this.items=new Ext.util.MixedCollection(false,function(C){return C.id||(C.id=Ext.id())});this.addEvents("beforeaction","actionfailed","actioncomplete");if(B){this.initEl(B)}Ext.form.BasicForm.superclass.constructor.call(this)};Ext.extend(Ext.form.BasicForm,Ext.util.Observable,{timeout:30,activeAction:null,trackResetOnLoad:false,initEl:function(A){this.el=Ext.get(A);this.id=this.el.id||Ext.id();if(!this.standardSubmit){this.el.on("submit",this.onSubmit,this)}this.el.addClass("x-form")},getEl:function(){return this.el},onSubmit:function(A){A.stopEvent()},destroy:function(){this.items.each(function(A){Ext.destroy(A)});if(this.el){this.el.removeAllListeners();this.el.remove()}this.purgeListeners()},isValid:function(){var A=true;this.items.each(function(B){if(!B.validate()){A=false}});return A},isDirty:function(){var A=false;this.items.each(function(B){if(B.isDirty()){A=true;return false}});return A},doAction:function(B,A){if(typeof B=="string"){B=new Ext.form.Action.ACTION_TYPES[B](this,A)}if(this.fireEvent("beforeaction",this,B)!==false){this.beforeAction(B);B.run.defer(100,B)}return this},submit:function(B){if(this.standardSubmit){var A=this.isValid();if(A){this.el.dom.submit()}return A}this.doAction("submit",B);return this},load:function(A){this.doAction("load",A);return this},updateRecord:function(B){B.beginEdit();var A=B.fields;A.each(function(C){var D=this.findField(C.name);if(D){B.set(C.name,D.getValue())}},this);B.endEdit();return this},loadRecord:function(A){this.setValues(A.data);return this},beforeAction:function(A){var B=A.options;if(B.waitMsg){if(this.waitMsgTarget===true){this.el.mask(B.waitMsg,"x-mask-loading")}else{if(this.waitMsgTarget){this.waitMsgTarget=Ext.get(this.waitMsgTarget);this.waitMsgTarget.mask(B.waitMsg,"x-mask-loading")}else{Ext.MessageBox.wait(B.waitMsg,B.waitTitle||this.waitTitle||"Please Wait...")}}}},afterAction:function(A,C){this.activeAction=null;var B=A.options;if(B.waitMsg){if(this.waitMsgTarget===true){this.el.unmask()}else{if(this.waitMsgTarget){this.waitMsgTarget.unmask()}else{Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide()}}}if(C){if(B.reset){this.reset()}Ext.callback(B.success,B.scope,[this,A]);this.fireEvent("actioncomplete",this,A)}else{Ext.callback(B.failure,B.scope,[this,A]);this.fireEvent("actionfailed",this,A)}},findField:function(B){var A=this.items.get(B);if(!A){this.items.each(function(C){if(C.isFormField&&(C.dataIndex==B||C.id==B||C.getName()==B)){A=C;return false}})}return A||null},markInvalid:function(G){if(Ext.isArray(G)){for(var C=0,A=G.length;C<A;C++){var B=G[C];var D=this.findField(B.id);if(D){D.markInvalid(B.msg)}}}else{var E,F;for(F in G){if(typeof G[F]!="function"&&(E=this.findField(F))){E.markInvalid(G[F])}}}return this},setValues:function(C){if(Ext.isArray(C)){for(var D=0,A=C.length;D<A;D++){var B=C[D];var E=this.findField(B.id);if(E){E.setValue(B.value);if(this.trackResetOnLoad){E.originalValue=E.getValue()}}}}else{var F,G;for(G in C){if(typeof C[G]!="function"&&(F=this.findField(G))){F.setValue(C[G]);if(this.trackResetOnLoad){F.originalValue=F.getValue()}}}}return this},getValues:function(B){var A=Ext.lib.Ajax.serializeForm(this.el.dom);if(B===true){return A}return Ext.urlDecode(A)},clearInvalid:function(){this.items.each(function(A){A.clearInvalid()});return this},reset:function(){this.items.each(function(A){A.reset()});return this},add:function(){this.items.addAll(Array.prototype.slice.call(arguments,0));return this},remove:function(A){this.items.remove(A);return this},render:function(){this.items.each(function(A){if(A.isFormField&&!A.rendered&&document.getElementById(A.id)){A.applyToMarkup(A.id)}});return this},applyToFields:function(A){this.items.each(function(B){Ext.apply(B,A)});return this},applyIfToFields:function(A){this.items.each(function(B){Ext.applyIf(B,A)});return this}});Ext.BasicForm=Ext.form.BasicForm; |
Ext.FormPanel=Ext.extend(Ext.Panel,{buttonAlign:"center",minButtonWidth:75,labelAlign:"left",monitorValid:false,monitorPoll:200,layout:"form",initComponent:function(){this.form=this.createForm();Ext.FormPanel.superclass.initComponent.call(this);this.addEvents("clientvalidation");this.relayEvents(this.form,["beforeaction","actionfailed","actioncomplete"])},createForm:function(){delete this.initialConfig.listeners;return new Ext.form.BasicForm(null,this.initialConfig)},initFields:function(){var C=this.form;var A=this;var B=function(D){if(D.doLayout&&D!=A){Ext.applyIf(D,{labelAlign:D.ownerCt.labelAlign,labelWidth:D.ownerCt.labelWidth,itemCls:D.ownerCt.itemCls});if(D.items){D.items.each(B)}}else{if(D.isFormField){C.add(D)}}};this.items.each(B)},getLayoutTarget:function(){return this.form.el},getForm:function(){return this.form},onRender:function(B,A){this.initFields();Ext.FormPanel.superclass.onRender.call(this,B,A);var C={tag:"form",method:this.method||"POST",id:this.formId||Ext.id()};if(this.fileUpload){C.enctype="multipart/form-data"}this.form.initEl(this.body.createChild(C))},beforeDestroy:function(){Ext.FormPanel.superclass.beforeDestroy.call(this);Ext.destroy(this.form)},initEvents:function(){Ext.FormPanel.superclass.initEvents.call(this);this.items.on("remove",this.onRemove,this);this.items.on("add",this.onAdd,this);if(this.monitorValid){this.startMonitoring()}},onAdd:function(A,B){if(B.isFormField){this.form.add(B)}},onRemove:function(A){if(A.isFormField){Ext.destroy(A.container.up(".x-form-item"));this.form.remove(A)}},startMonitoring:function(){if(!this.bound){this.bound=true;Ext.TaskMgr.start({run:this.bindHandler,interval:this.monitorPoll||200,scope:this})}},stopMonitoring:function(){this.bound=false},load:function(){this.form.load.apply(this.form,arguments)},onDisable:function(){Ext.FormPanel.superclass.onDisable.call(this);if(this.form){this.form.items.each(function(){this.disable()})}},onEnable:function(){Ext.FormPanel.superclass.onEnable.call(this);if(this.form){this.form.items.each(function(){this.enable()})}},bindHandler:function(){if(!this.bound){return false}var D=true;this.form.items.each(function(E){if(!E.isValid(true)){D=false;return false}});if(this.buttons){for(var C=0,A=this.buttons.length;C<A;C++){var B=this.buttons[C];if(B.formBind===true&&B.disabled===D){B.setDisabled(!D)}}}this.fireEvent("clientvalidation",this,D)}});Ext.reg("form",Ext.FormPanel);Ext.form.FormPanel=Ext.FormPanel; |
Ext.form.FieldSet=Ext.extend(Ext.Panel,{baseCls:"x-fieldset",layout:"form",onRender:function(B,A){if(!this.el){this.el=document.createElement("fieldset");this.el.id=this.id;if(this.title||this.header||this.checkboxToggle){this.el.appendChild(document.createElement("legend")).className="x-fieldset-header"}}Ext.form.FieldSet.superclass.onRender.call(this,B,A);if(this.checkboxToggle){var C=typeof this.checkboxToggle=="object"?this.checkboxToggle:{tag:"input",type:"checkbox",name:this.checkboxName||this.id+"-checkbox"};this.checkbox=this.header.insertFirst(C);this.checkbox.dom.checked=!this.collapsed;this.checkbox.on("click",this.onCheckClick,this)}},onCollapse:function(A,B){if(this.checkbox){this.checkbox.dom.checked=false}this.afterCollapse()},onExpand:function(A,B){if(this.checkbox){this.checkbox.dom.checked=true}this.afterExpand()},onCheckClick:function(){this[this.checkbox.dom.checked?"expand":"collapse"]()}});Ext.reg("fieldset",Ext.form.FieldSet); |
Ext.form.HtmlEditor=Ext.extend(Ext.form.Field,{enableFormat:true,enableFontSize:true,enableColors:true,enableAlignments:true,enableLists:true,enableSourceEdit:true,enableLinks:true,enableFont:true,createLinkText:"Please enter the URL for the link:",defaultLinkValue:"http:/"+"/",fontFamilies:["Arial","Courier New","Tahoma","Times New Roman","Verdana"],defaultFont:"tahoma",validationEvent:false,deferHeight:true,initialized:false,activated:false,sourceEditMode:false,onFocus:Ext.emptyFn,iframePad:3,hideMode:"offsets",defaultAutoCreate:{tag:"textarea",style:"width:500px;height:300px;",autocomplete:"off"},initComponent:function(){this.addEvents("initialize","activate","beforesync","beforepush","sync","push","editmodechange")},createFontOptions:function(){var D=[],B=this.fontFamilies,C,F;for(var E=0,A=B.length;E<A;E++){C=B[E];F=C.toLowerCase();D.push("<option value=\"",F,"\" style=\"font-family:",C,";\"",(this.defaultFont==F?" selected=\"true\">":">"),C,"</option>")}return D.join("")},createToolbar:function(C){function B(F,D,E){return{itemId:F,cls:"x-btn-icon x-edit-"+F,enableToggle:D!==false,scope:C,handler:E||C.relayBtnCmd,clickEvent:"mousedown",tooltip:C.buttonTips[F]||undefined,tabIndex:-1}}var A=new Ext.Toolbar({renderTo:this.wrap.dom.firstChild});A.el.on("click",function(D){D.preventDefault()});if(this.enableFont&&!Ext.isSafari){this.fontSelect=A.el.createChild({tag:"select",cls:"x-font-select",html:this.createFontOptions()});this.fontSelect.on("change",function(){var D=this.fontSelect.dom.value;this.relayCmd("fontname",D);this.deferFocus()},this);A.add(this.fontSelect.dom,"-")}if(this.enableFormat){A.add(B("bold"),B("italic"),B("underline"))}if(this.enableFontSize){A.add("-",B("increasefontsize",false,this.adjustFont),B("decreasefontsize",false,this.adjustFont))}if(this.enableColors){A.add("-",{itemId:"forecolor",cls:"x-btn-icon x-edit-forecolor",clickEvent:"mousedown",tooltip:C.buttonTips["forecolor"]||undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({allowReselect:true,focus:Ext.emptyFn,value:"000000",plain:true,selectHandler:function(E,D){this.execCmd("forecolor",Ext.isSafari||Ext.isIE?"#"+D:D);this.deferFocus()},scope:this,clickEvent:"mousedown"})},{itemId:"backcolor",cls:"x-btn-icon x-edit-backcolor",clickEvent:"mousedown",tooltip:C.buttonTips["backcolor"]||undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({focus:Ext.emptyFn,value:"FFFFFF",plain:true,allowReselect:true,selectHandler:function(E,D){if(Ext.isGecko){this.execCmd("useCSS",false);this.execCmd("hilitecolor",D);this.execCmd("useCSS",true);this.deferFocus()}else{this.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isSafari||Ext.isIE?"#"+D:D);this.deferFocus()}},scope:this,clickEvent:"mousedown"})})}if(this.enableAlignments){A.add("-",B("justifyleft"),B("justifycenter"),B("justifyright"))}if(!Ext.isSafari){if(this.enableLinks){A.add("-",B("createlink",false,this.createLink))}if(this.enableLists){A.add("-",B("insertorderedlist"),B("insertunorderedlist"))}if(this.enableSourceEdit){A.add("-",B("sourceedit",true,function(D){this.toggleSourceEdit(D.pressed)}))}}this.tb=A},getDocMarkup:function(){return"<html><head><style type=\"text/css\">body{border:0;margin:0;padding:3px;height:98%;cursor:text;}</style></head><body></body></html>"},getEditorBody:function(){return this.doc.body||this.doc.documentElement},onRender:function(C,A){Ext.form.HtmlEditor.superclass.onRender.call(this,C,A);this.el.dom.style.border="0 none";this.el.dom.setAttribute("tabIndex",-1);this.el.addClass("x-hidden");if(Ext.isIE){this.el.applyStyles("margin-top:-1px;margin-bottom:-1px;")}this.wrap=this.el.wrap({cls:"x-html-editor-wrap",cn:{cls:"x-html-editor-tb"}});this.createToolbar(this);this.tb.items.each(function(E){if(E.itemId!="sourceedit"){E.disable()}});var D=document.createElement("iframe");D.name=Ext.id();D.frameBorder="no";D.src=(Ext.SSL_SECURE_URL||"javascript:false");this.wrap.dom.appendChild(D);this.iframe=D;if(Ext.isIE){D.contentWindow.document.designMode="on";this.doc=D.contentWindow.document;this.win=D.contentWindow}else{this.doc=(D.contentDocument||window.frames[D.name].document);this.win=window.frames[D.name];this.doc.designMode="on"}this.doc.open();this.doc.write(this.getDocMarkup());this.doc.close();var B={run:function(){if(this.doc.body||this.doc.readyState=="complete"){Ext.TaskMgr.stop(B);this.doc.designMode="on";this.initEditor.defer(10,this)}},interval:10,duration:10000,scope:this};Ext.TaskMgr.start(B);if(!this.width){this.setSize(this.el.getSize())}},onResize:function(B,C){Ext.form.HtmlEditor.superclass.onResize.apply(this,arguments);if(this.el&&this.iframe){if(typeof B=="number"){var D=B-this.wrap.getFrameWidth("lr");this.el.setWidth(this.adjustWidth("textarea",D));this.iframe.style.width=D+"px"}if(typeof C=="number"){var A=C-this.wrap.getFrameWidth("tb")-this.tb.el.getHeight();this.el.setHeight(this.adjustWidth("textarea",A));this.iframe.style.height=A+"px";if(this.doc){this.getEditorBody().style.height=(A-(this.iframePad*2))+"px"}}}},toggleSourceEdit:function(A){if(A===undefined){A=!this.sourceEditMode}this.sourceEditMode=A===true;var C=this.tb.items.get("sourceedit");if(C.pressed!==this.sourceEditMode){C.toggle(this.sourceEditMode);return }if(this.sourceEditMode){this.tb.items.each(function(D){if(D.itemId!="sourceedit"){D.disable()}});this.syncValue();this.iframe.className="x-hidden";this.el.removeClass("x-hidden");this.el.dom.removeAttribute("tabIndex");this.el.focus()}else{if(this.initialized){this.tb.items.each(function(D){D.enable()})}this.pushValue();this.iframe.className="";this.el.addClass("x-hidden");this.el.dom.setAttribute("tabIndex",-1);this.deferFocus()}var B=this.lastSize;if(B){delete this.lastSize;this.setSize(B)}this.fireEvent("editmodechange",this,this.sourceEditMode)},createLink:function(){var A=prompt(this.createLinkText,this.defaultLinkValue);if(A&&A!="http:/"+"/"){this.relayCmd("createlink",A)}},adjustSize:Ext.BoxComponent.prototype.adjustSize,getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},initEvents:function(){this.originalValue=this.getValue()},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,setValue:function(A){Ext.form.HtmlEditor.superclass.setValue.call(this,A);this.pushValue()},cleanHtml:function(A){A=String(A);if(A.length>5){if(Ext.isSafari){A=A.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"")}}if(A==" "){A=""}return A},syncValue:function(){if(this.initialized){var D=this.getEditorBody();var C=D.innerHTML;if(Ext.isSafari){var B=D.getAttribute("style");var A=B.match(/text-align:(.*?);/i);if(A&&A[1]){C="<div style=\""+A[0]+"\">"+C+"</div>"}}C=this.cleanHtml(C);if(this.fireEvent("beforesync",this,C)!==false){this.el.dom.value=C;this.fireEvent("sync",this,C)}}},pushValue:function(){if(this.initialized){var A=this.el.dom.value;if(!this.activated&&A.length<1){A=" "}if(this.fireEvent("beforepush",this,A)!==false){this.getEditorBody().innerHTML=A;this.fireEvent("push",this,A)}}},deferFocus:function(){this.focus.defer(10,this)},focus:function(){if(this.win&&!this.sourceEditMode){this.win.focus()}else{this.el.focus()}},initEditor:function(){var B=this.getEditorBody();var A=this.el.getStyles("font-size","font-family","background-image","background-repeat");A["background-attachment"]="fixed";B.bgProperties="fixed";Ext.DomHelper.applyStyles(B,A);Ext.EventManager.on(this.doc,{"mousedown":this.onEditorEvent,"dblclick":this.onEditorEvent,"click":this.onEditorEvent,"keyup":this.onEditorEvent,buffer:100,scope:this});if(Ext.isGecko){Ext.EventManager.on(this.doc,"keypress",this.applyCommand,this)}if(Ext.isIE||Ext.isSafari||Ext.isOpera){Ext.EventManager.on(this.doc,"keydown",this.fixKeys,this)}this.initialized=true;this.fireEvent("initialize",this);this.pushValue()},onDestroy:function(){if(this.rendered){this.tb.items.each(function(A){if(A.menu){A.menu.removeAll();if(A.menu.el){A.menu.el.destroy()}}A.destroy()});this.wrap.dom.innerHTML="";this.wrap.remove()}},onFirstFocus:function(){this.activated=true;this.tb.items.each(function(D){D.enable()});if(Ext.isGecko){this.win.focus();var A=this.win.getSelection();if(!A.focusNode||A.focusNode.nodeType!=3){var B=A.getRangeAt(0);B.selectNodeContents(this.getEditorBody());B.collapse(true);this.deferFocus()}try{this.execCmd("useCSS",true);this.execCmd("styleWithCSS",false)}catch(C){}}this.fireEvent("activate",this)},adjustFont:function(B){var C=B.itemId=="increasefontsize"?1:-1;var A=parseInt(this.doc.queryCommandValue("FontSize")||2,10);if(Ext.isSafari3||Ext.isAir){if(A<=10){A=1+C}else{if(A<=13){A=2+C}else{if(A<=16){A=3+C}else{if(A<=18){A=4+C}else{if(A<=24){A=5+C}else{A=6+C}}}}}A=A.constrain(1,6)}else{if(Ext.isSafari){C*=2}A=Math.max(1,A+C)+(Ext.isSafari?"px":0)}this.execCmd("FontSize",A)},onEditorEvent:function(A){this.updateToolbar()},updateToolbar:function(){if(!this.activated){this.onFirstFocus();return }var B=this.tb.items.map,C=this.doc;if(this.enableFont&&!Ext.isSafari){var A=(this.doc.queryCommandValue("FontName")||this.defaultFont).toLowerCase();if(A!=this.fontSelect.dom.value){this.fontSelect.dom.value=A}}if(this.enableFormat){B.bold.toggle(C.queryCommandState("bold"));B.italic.toggle(C.queryCommandState("italic"));B.underline.toggle(C.queryCommandState("underline"))}if(this.enableAlignments){B.justifyleft.toggle(C.queryCommandState("justifyleft"));B.justifycenter.toggle(C.queryCommandState("justifycenter"));B.justifyright.toggle(C.queryCommandState("justifyright"))}if(!Ext.isSafari&&this.enableLists){B.insertorderedlist.toggle(C.queryCommandState("insertorderedlist"));B.insertunorderedlist.toggle(C.queryCommandState("insertunorderedlist"))}Ext.menu.MenuMgr.hideAll();this.syncValue()},relayBtnCmd:function(A){this.relayCmd(A.itemId)},relayCmd:function(B,A){this.win.focus();this.execCmd(B,A);this.updateToolbar();this.deferFocus()},execCmd:function(B,A){this.doc.execCommand(B,false,A===undefined?null:A);this.syncValue()},applyCommand:function(B){if(B.ctrlKey){var C=B.getCharCode(),A;if(C>0){C=String.fromCharCode(C);switch(C){case"b":A="bold";break;case"i":A="italic";break;case"u":A="underline";break}if(A){this.win.focus();this.execCmd(A);this.deferFocus();B.preventDefault()}}}},insertAtCursor:function(B){if(!this.activated){return }if(Ext.isIE){this.win.focus();var A=this.doc.selection.createRange();if(A){A.collapse(true);A.pasteHTML(B);this.syncValue();this.deferFocus()}}else{if(Ext.isGecko||Ext.isOpera){this.win.focus();this.execCmd("InsertHTML",B);this.deferFocus()}else{if(Ext.isSafari){this.execCmd("InsertText",B);this.deferFocus()}}}},fixKeys:function(){if(Ext.isIE){return function(D){var A=D.getKey(),B;if(A==D.TAB){D.stopEvent();B=this.doc.selection.createRange();if(B){B.collapse(true);B.pasteHTML(" ");this.deferFocus()}}else{if(A==D.ENTER){B=this.doc.selection.createRange();if(B){var C=B.parentElement();if(!C||C.tagName.toLowerCase()!="li"){D.stopEvent();B.pasteHTML("<br />");B.collapse(false);B.select()}}}}}}else{if(Ext.isOpera){return function(B){var A=B.getKey();if(A==B.TAB){B.stopEvent();this.win.focus();this.execCmd("InsertHTML"," ");this.deferFocus()}}}else{if(Ext.isSafari){return function(B){var A=B.getKey();if(A==B.TAB){B.stopEvent();this.execCmd("InsertText","\t");this.deferFocus()}}}}}}(),getToolbar:function(){return this.tb},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"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:"x-html-editor-tip"}}});Ext.reg("htmleditor",Ext.form.HtmlEditor); |
Ext.form.TimeField=Ext.extend(Ext.form.ComboBox,{minValue:null,maxValue:null,minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H",increment:15,mode:"local",triggerAction:"all",typeAhead:false,initComponent:function(){Ext.form.TimeField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue)}if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue)}if(!this.store){var B=this.parseDate(this.minValue);if(!B){B=new Date().clearTime()}var A=this.parseDate(this.maxValue);if(!A){A=new Date().clearTime().add("mi",(24*60)-1)}var C=[];while(B<=A){C.push([B.dateFormat(this.format)]);B=B.add("mi",this.increment)}this.store=new Ext.data.SimpleStore({fields:["text"],data:C});this.displayField="text"}},getValue:function(){var A=Ext.form.TimeField.superclass.getValue.call(this);return this.formatDate(this.parseDate(A))||""},setValue:function(A){Ext.form.TimeField.superclass.setValue.call(this,this.formatDate(this.parseDate(A)))},validateValue:Ext.form.DateField.prototype.validateValue,parseDate:Ext.form.DateField.prototype.parseDate,formatDate:Ext.form.DateField.prototype.formatDate,beforeBlur:function(){var A=this.parseDate(this.getRawValue());if(A){this.setValue(A.dateFormat(this.format))}}});Ext.reg("timefield",Ext.form.TimeField); |
Ext.form.Label=Ext.extend(Ext.BoxComponent,{onRender:function(B,A){if(!this.el){this.el=document.createElement("label");this.el.innerHTML=this.text?Ext.util.Format.htmlEncode(this.text):(this.html||"");if(this.forId){this.el.setAttribute("htmlFor",this.forId)}}Ext.form.Label.superclass.onRender.call(this,B,A)}});Ext.reg("label",Ext.form.Label); |
Ext.form.Action=function(B,A){this.form=B;this.options=A||{}};Ext.form.Action.CLIENT_INVALID="client";Ext.form.Action.SERVER_INVALID="server";Ext.form.Action.CONNECT_FAILURE="connect";Ext.form.Action.LOAD_FAILURE="load";Ext.form.Action.prototype={type:"default",run:function(A){},success:function(A){},handleResponse:function(A){},failure:function(A){this.response=A;this.failureType=Ext.form.Action.CONNECT_FAILURE;this.form.afterAction(this,false)},processResponse:function(A){this.response=A;if(!A.responseText){return true}this.result=this.handleResponse(A);return this.result},getUrl:function(C){var A=this.options.url||this.form.url||this.form.el.dom.action;if(C){var B=this.getParams();if(B){A+=(A.indexOf("?")!=-1?"&":"?")+B}}return A},getMethod:function(){return(this.options.method||this.form.method||this.form.el.dom.method||"POST").toUpperCase()},getParams:function(){var A=this.form.baseParams;var B=this.options.params;if(B){if(typeof B=="object"){B=Ext.urlEncode(Ext.applyIf(B,A))}else{if(typeof B=="string"&&A){B+="&"+Ext.urlEncode(A)}}}else{if(A){B=Ext.urlEncode(A)}}return B},createCallback:function(A){var A=A||{};return{success:this.success,failure:this.failure,scope:this,timeout:(A.timeout*1000)||(this.form.timeout*1000),upload:this.form.fileUpload?this.success:undefined}}};Ext.form.Action.Submit=function(B,A){Ext.form.Action.Submit.superclass.constructor.call(this,B,A)};Ext.extend(Ext.form.Action.Submit,Ext.form.Action,{type:"submit",run:function(){var B=this.options;var C=this.getMethod();var A=C=="POST";if(B.clientValidation===false||this.form.isValid()){Ext.Ajax.request(Ext.apply(this.createCallback(B),{form:this.form.el.dom,url:this.getUrl(!A),method:C,params:A?this.getParams():null,isUpload:this.form.fileUpload}))}else{if(B.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false)}}},success:function(B){var A=this.processResponse(B);if(A===true||A.success){this.form.afterAction(this,true);return }if(A.errors){this.form.markInvalid(A.errors);this.failureType=Ext.form.Action.SERVER_INVALID}this.form.afterAction(this,false)},handleResponse:function(C){if(this.form.errorReader){var B=this.form.errorReader.read(C);var F=[];if(B.records){for(var D=0,A=B.records.length;D<A;D++){var E=B.records[D];F[D]=E.data}}if(F.length<1){F=null}return{success:B.success,errors:F}}return Ext.decode(C.responseText)}});Ext.form.Action.Load=function(B,A){Ext.form.Action.Load.superclass.constructor.call(this,B,A);this.reader=this.form.reader};Ext.extend(Ext.form.Action.Load,Ext.form.Action,{type:"load",run:function(){Ext.Ajax.request(Ext.apply(this.createCallback(this.options),{method:this.getMethod(),url:this.getUrl(false),params:this.getParams()}))},success:function(B){var A=this.processResponse(B);if(A===true||!A.success||!A.data){this.failureType=Ext.form.Action.LOAD_FAILURE;this.form.afterAction(this,false);return }this.form.clearInvalid();this.form.setValues(A.data);this.form.afterAction(this,true)},handleResponse:function(B){if(this.form.reader){var A=this.form.reader.read(B);var C=A.records&&A.records[0]?A.records[0].data:null;return{success:A.success,data:C}}return Ext.decode(B.responseText)}});Ext.form.Action.ACTION_TYPES={"load":Ext.form.Action.Load,"submit":Ext.form.Action.Submit}; |
Ext.form.VTypes=function(){var C=/^[a-zA-Z_]+$/;var D=/^[a-zA-Z0-9_]+$/;var B=/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/;var A=/(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return{"email":function(E){return B.test(E)},"emailText":"This field should be an e-mail address in the format \"user@domain.com\"","emailMask":/[a-z0-9_\.\-@]/i,"url":function(E){return A.test(E)},"urlText":"This field should be a URL in the format \"http:/"+"/www.domain.com\"","alpha":function(E){return C.test(E)},"alphaText":"This field should only contain letters and _","alphaMask":/[a-z_]/i,"alphanum":function(E){return D.test(E)},"alphanumText":"This field should only contain letters, numbers and _","alphanumMask":/[a-z0-9_]/i}}(); |
Ext.grid.GridPanel=Ext.extend(Ext.Panel,{ddText:"{0} selected row{1}",minColumnWidth:25,trackMouseOver:true,enableDragDrop:false,enableColumnMove:true,enableColumnHide:true,enableHdMenu:true,stripeRows:false,autoExpandColumn:false,autoExpandMin:50,autoExpandMax:1000,view:null,loadMask:false,rendered:false,viewReady:false,stateEvents:["columnmove","columnresize","sortchange"],initComponent:function(){Ext.grid.GridPanel.superclass.initComponent.call(this);this.autoScroll=false;this.autoWidth=false;if(Ext.isArray(this.columns)){this.colModel=new Ext.grid.ColumnModel(this.columns);delete this.columns}if(this.ds){this.store=this.ds;delete this.ds}if(this.cm){this.colModel=this.cm;delete this.cm}if(this.sm){this.selModel=this.sm;delete this.sm}this.store=Ext.StoreMgr.lookup(this.store);this.addEvents("click","dblclick","contextmenu","mousedown","mouseup","mouseover","mouseout","keypress","keydown","cellmousedown","rowmousedown","headermousedown","cellclick","celldblclick","rowclick","rowdblclick","headerclick","headerdblclick","rowcontextmenu","cellcontextmenu","headercontextmenu","bodyscroll","columnresize","columnmove","sortchange")},onRender:function(C,A){Ext.grid.GridPanel.superclass.onRender.apply(this,arguments);var D=this.body;this.el.addClass("x-grid-panel");var B=this.getView();B.init(this);D.on("mousedown",this.onMouseDown,this);D.on("click",this.onClick,this);D.on("dblclick",this.onDblClick,this);D.on("contextmenu",this.onContextMenu,this);D.on("keydown",this.onKeyDown,this);this.relayEvents(D,["mousedown","mouseup","mouseover","mouseout","keypress"]);this.getSelectionModel().init(this);this.view.render()},initEvents:function(){Ext.grid.GridPanel.superclass.initEvents.call(this);if(this.loadMask){this.loadMask=new Ext.LoadMask(this.bwrap,Ext.apply({store:this.store},this.loadMask))}},initStateEvents:function(){Ext.grid.GridPanel.superclass.initStateEvents.call(this);this.colModel.on("hiddenchange",this.saveState,this,{delay:100})},applyState:function(F){var B=this.colModel;var E=F.columns;if(E){for(var C=0,A=E.length;C<A;C++){var D=E[C];var H=B.getColumnById(D.id);if(H){H.hidden=D.hidden;H.width=D.width;var G=B.getIndexById(D.id);if(G!=C){B.moveColumn(G,C)}}}}if(F.sort){this.store[this.store.remoteSort?"setDefaultSort":"sort"](F.sort.field,F.sort.direction)}},getState:function(){var C={columns:[]};for(var B=0,D;D=this.colModel.config[B];B++){C.columns[B]={id:D.id,width:D.width};if(D.hidden){C.columns[B].hidden=true}}var A=this.store.getSortState();if(A){C.sort=A}return C},afterRender:function(){Ext.grid.GridPanel.superclass.afterRender.call(this);this.view.layout();this.viewReady=true},reconfigure:function(A,B){if(this.loadMask){this.loadMask.destroy();this.loadMask=new Ext.LoadMask(this.bwrap,Ext.apply({store:A},this.initialConfig.loadMask))}this.view.bind(A,B);this.store=A;this.colModel=B;if(this.rendered){this.view.refresh(true)}},onKeyDown:function(A){this.fireEvent("keydown",A)},onDestroy:function(){if(this.rendered){if(this.loadMask){this.loadMask.destroy()}var A=this.body;A.removeAllListeners();this.view.destroy();A.update("")}this.colModel.purgeListeners();Ext.grid.GridPanel.superclass.onDestroy.call(this)},processEvent:function(C,E){this.fireEvent(C,E);var D=E.getTarget();var B=this.view;var G=B.findHeaderIndex(D);if(G!==false){this.fireEvent("header"+C,this,G,E)}else{var F=B.findRowIndex(D);var A=B.findCellIndex(D);if(F!==false){this.fireEvent("row"+C,this,F,E);if(A!==false){this.fireEvent("cell"+C,this,F,A,E)}}}},onClick:function(A){this.processEvent("click",A)},onMouseDown:function(A){this.processEvent("mousedown",A)},onContextMenu:function(B,A){this.processEvent("contextmenu",B)},onDblClick:function(A){this.processEvent("dblclick",A)},walkCells:function(J,C,B,E,I){var H=this.colModel,F=H.getColumnCount();var A=this.store,G=A.getCount(),D=true;if(B<0){if(C<0){J--;D=false}while(J>=0){if(!D){C=F-1}D=false;while(C>=0){if(E.call(I||this,J,C,H)===true){return[J,C]}C--}J--}}else{if(C>=F){J++;D=false}while(J<G){if(!D){C=0}D=false;while(C<F){if(E.call(I||this,J,C,H)===true){return[J,C]}C++}J++}}return null},getSelections:function(){return this.selModel.getSelections()},onResize:function(){Ext.grid.GridPanel.superclass.onResize.apply(this,arguments);if(this.viewReady){this.view.layout()}},getGridEl:function(){return this.body},stopEditing:function(){},getSelectionModel:function(){if(!this.selModel){this.selModel=new Ext.grid.RowSelectionModel(this.disableSelection?{selectRow:Ext.emptyFn}:null)}return this.selModel},getStore:function(){return this.store},getColumnModel:function(){return this.colModel},getView:function(){if(!this.view){this.view=new Ext.grid.GridView(this.viewConfig)}return this.view},getDragDropText:function(){var A=this.selModel.getCount();return String.format(this.ddText,A,A==1?"":"s")}});Ext.reg("grid",Ext.grid.GridPanel); |
Ext.grid.GridView=function(A){Ext.apply(this,A);this.addEvents("beforerowremoved","beforerowsinserted","beforerefresh","rowremoved","rowsinserted","rowupdated","refresh");Ext.grid.GridView.superclass.constructor.call(this)};Ext.extend(Ext.grid.GridView,Ext.util.Observable,{scrollOffset:19,autoFill:false,forceFit:false,sortClasses:["sort-asc","sort-desc"],sortAscText:"Sort Ascending",sortDescText:"Sort Descending",columnsText:"Columns",borderWidth:2,initTemplates:function(){var C=this.templates||{};if(!C.master){C.master=new Ext.Template("<div class=\"x-grid3\" hidefocus=\"true\">","<div class=\"x-grid3-viewport\">","<div class=\"x-grid3-header\"><div class=\"x-grid3-header-inner\"><div class=\"x-grid3-header-offset\">{header}</div></div><div class=\"x-clear\"></div></div>","<div class=\"x-grid3-scroller\"><div class=\"x-grid3-body\">{body}</div><a href=\"#\" class=\"x-grid3-focus\" tabIndex=\"-1\"></a></div>","</div>","<div class=\"x-grid3-resize-marker\"> </div>","<div class=\"x-grid3-resize-proxy\"> </div>","</div>")}if(!C.header){C.header=new Ext.Template("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"{tstyle}\">","<thead><tr class=\"x-grid3-hd-row\">{cells}</tr></thead>","</table>")}if(!C.hcell){C.hcell=new Ext.Template("<td class=\"x-grid3-hd x-grid3-cell x-grid3-td-{id}\" style=\"{style}\"><div {tooltip} {attr} class=\"x-grid3-hd-inner x-grid3-hd-{id}\" unselectable=\"on\" style=\"{istyle}\">",this.grid.enableHdMenu?"<a class=\"x-grid3-hd-btn\" href=\"#\"></a>":"","{value}<img class=\"x-grid3-sort-icon\" src=\"",Ext.BLANK_IMAGE_URL,"\" />","</div></td>")}if(!C.body){C.body=new Ext.Template("{rows}")}if(!C.row){C.row=new Ext.Template("<div class=\"x-grid3-row {alt}\" style=\"{tstyle}\"><table class=\"x-grid3-row-table\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"{tstyle}\">","<tbody><tr>{cells}</tr>",(this.enableRowBody?"<tr class=\"x-grid3-row-body-tr\" style=\"{bodyStyle}\"><td colspan=\"{cols}\" class=\"x-grid3-body-cell\" tabIndex=\"0\" hidefocus=\"on\"><div class=\"x-grid3-row-body\">{body}</div></td></tr>":""),"</tbody></table></div>")}if(!C.cell){C.cell=new Ext.Template("<td class=\"x-grid3-col x-grid3-cell x-grid3-td-{id} {css}\" style=\"{style}\" tabIndex=\"0\" {cellAttr}>","<div class=\"x-grid3-cell-inner x-grid3-col-{id}\" unselectable=\"on\" {attr}>{value}</div>","</td>")}for(var A in C){var B=C[A];if(B&&typeof B.compile=="function"&&!B.compiled){B.disableFormats=true;B.compile()}}this.templates=C;this.tdClass="x-grid3-cell";this.cellSelector="td.x-grid3-cell";this.hdCls="x-grid3-hd";this.rowSelector="div.x-grid3-row";this.colRe=new RegExp("x-grid3-td-([^\\s]+)","")},fly:function(A){if(!this._flyweight){this._flyweight=new Ext.Element.Flyweight(document.body)}this._flyweight.dom=A;return this._flyweight},getEditorParent:function(A){return this.scroller.dom},initElements:function(){var C=Ext.Element;var B=this.grid.getGridEl().dom.firstChild;var A=B.childNodes;this.el=new C(B);this.mainWrap=new C(A[0]);this.mainHd=new C(this.mainWrap.dom.firstChild);if(this.grid.hideHeaders){this.mainHd.setDisplayed(false)}this.innerHd=this.mainHd.dom.firstChild;this.scroller=new C(this.mainWrap.dom.childNodes[1]);if(this.forceFit){this.scroller.setStyle("overflow-x","hidden")}this.mainBody=new C(this.scroller.dom.firstChild);this.focusEl=new C(this.scroller.dom.childNodes[1]);this.focusEl.swallowEvent("click",true);this.resizeMarker=new C(A[1]);this.resizeProxy=new C(A[2])},getRows:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},findCell:function(A){if(!A){return false}return this.fly(A).findParent(this.cellSelector,3)},findCellIndex:function(C,B){var A=this.findCell(C);if(A&&(!B||this.fly(A).hasClass(B))){return this.getCellIndex(A)}return false},getCellIndex:function(B){if(B){var A=B.className.match(this.colRe);if(A&&A[1]){return this.cm.getIndexById(A[1])}}return false},findHeaderCell:function(B){var A=this.findCell(B);return A&&this.fly(A).hasClass(this.hdCls)?A:null},findHeaderIndex:function(A){return this.findCellIndex(A,this.hdCls)},findRow:function(A){if(!A){return false}return this.fly(A).findParent(this.rowSelector,10)},findRowIndex:function(A){var B=this.findRow(A);return B?B.rowIndex:false},getRow:function(A){return this.getRows()[A]},getCell:function(B,A){return this.getRow(B).getElementsByTagName("td")[A]},getHeaderCell:function(A){return this.mainHd.dom.getElementsByTagName("td")[A]},addRowClass:function(C,A){var B=this.getRow(C);if(B){this.fly(B).addClass(A)}},removeRowClass:function(C,A){var B=this.getRow(C);if(B){this.fly(B).removeClass(A)}},removeRow:function(A){Ext.removeNode(this.getRow(A))},removeRows:function(C,A){var B=this.mainBody.dom;for(var D=C;D<=A;D++){Ext.removeNode(B.childNodes[C])}},getScrollState:function(){var A=this.scroller.dom;return{left:A.scrollLeft,top:A.scrollTop}},restoreScroll:function(A){var B=this.scroller.dom;B.scrollLeft=A.left;B.scrollTop=A.top},scrollToTop:function(){this.scroller.dom.scrollTop=0;this.scroller.dom.scrollLeft=0},syncScroll:function(){this.syncHeaderScroll();var A=this.scroller.dom;this.grid.fireEvent("bodyscroll",A.scrollLeft,A.scrollTop)},syncHeaderScroll:function(){var A=this.scroller.dom;this.innerHd.scrollLeft=A.scrollLeft;this.innerHd.scrollLeft=A.scrollLeft},updateSortIcon:function(B,A){var D=this.sortClasses;var C=this.mainHd.select("td").removeClass(D);C.item(B).addClass(D[A=="DESC"?1:0])},updateAllColumnWidths:function(){var D=this.getTotalWidth();var H=this.cm.getColumnCount();var F=[];for(var B=0;B<H;B++){F[B]=this.getColumnWidth(B)}this.innerHd.firstChild.firstChild.style.width=D;for(var B=0;B<H;B++){var C=this.getHeaderCell(B);C.style.width=F[B]}var G=this.getRows();for(var B=0,E=G.length;B<E;B++){G[B].style.width=D;G[B].firstChild.style.width=D;var I=G[B].firstChild.rows[0];for(var A=0;A<H;A++){I.childNodes[A].style.width=F[A]}}this.onAllColumnWidthsUpdated(F,D)},updateColumnWidth:function(D,G){var B=this.getColumnWidth(D);var C=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=C;var H=this.getHeaderCell(D);H.style.width=B;var F=this.getRows();for(var E=0,A=F.length;E<A;E++){F[E].style.width=C;F[E].firstChild.style.width=C;F[E].firstChild.rows[0].childNodes[D].style.width=B}this.onColumnWidthUpdated(D,B,C)},updateColumnHidden:function(C,F){var B=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=B;var H=F?"none":"";var G=this.getHeaderCell(C);G.style.display=H;var E=this.getRows();for(var D=0,A=E.length;D<A;D++){E[D].style.width=B;E[D].firstChild.style.width=B;E[D].firstChild.rows[0].childNodes[C].style.display=H}this.onColumnHiddenUpdated(C,F,B);delete this.lastViewWidth;this.layout()},doRender:function(E,G,M,A,L,Q){var B=this.templates,D=B.cell,F=B.row,H=L-1;var C="width:"+this.getTotalWidth()+";";var T=[],N,U,O={},I={tstyle:C},K;for(var P=0,S=G.length;P<S;P++){K=G[P];N=[];var J=(P+A);for(var R=0;R<L;R++){U=E[R];O.id=U.id;O.css=R==0?"x-grid3-cell-first ":(R==H?"x-grid3-cell-last ":"");O.attr=O.cellAttr="";O.value=U.renderer(K.data[U.name],O,K,J,R,M);O.style=U.style;if(O.value==undefined||O.value===""){O.value=" "}if(K.dirty&&typeof K.modified[U.name]!=="undefined"){O.css+=" x-grid3-dirty-cell"}N[N.length]=D.apply(O)}var V=[];if(Q&&((J+1)%2==0)){V[0]="x-grid3-row-alt"}if(K.dirty){V[1]=" x-grid3-dirty-row"}I.cols=L;if(this.getRowClass){V[2]=this.getRowClass(K,J,I,M)}I.alt=V.join(" ");I.cells=N.join("");T[T.length]=F.apply(I)}return T.join("")},processRows:function(E,D){if(this.ds.getCount()<1){return }D=D||!this.grid.stripeRows;E=E||0;var I=this.getRows();var F=" x-grid3-row-alt ";for(var B=E,C=I.length;B<C;B++){var H=I[B];H.rowIndex=B;if(!D){var A=((B+1)%2==0);var G=(" "+H.className+" ").indexOf(F)!=-1;if(A==G){continue}if(A){H.className+=" x-grid3-row-alt"}else{H.className=H.className.replace("x-grid3-row-alt","")}}}},renderUI:function(){var E=this.renderHeaders();var B=this.templates.body.apply({rows:""});var C=this.templates.master.apply({body:B,header:E});var D=this.grid;D.getGridEl().dom.innerHTML=C;this.initElements();this.mainBody.dom.innerHTML=this.renderRows();this.processRows(0,true);Ext.fly(this.innerHd).on("click",this.handleHdDown,this);this.mainHd.on("mouseover",this.handleHdOver,this);this.mainHd.on("mouseout",this.handleHdOut,this);this.mainHd.on("mousemove",this.handleHdMove,this);this.scroller.on("scroll",this.syncScroll,this);if(D.enableColumnResize!==false){this.splitone=new Ext.grid.GridView.SplitDragZone(D,this.mainHd.dom)}if(D.enableColumnMove){this.columnDrag=new Ext.grid.GridView.ColumnDragZone(D,this.innerHd);this.columnDrop=new Ext.grid.HeaderDropZone(D,this.mainHd.dom)}if(D.enableHdMenu!==false){if(D.enableColumnHide!==false){this.colMenu=new Ext.menu.Menu({id:D.id+"-hcols-menu"});this.colMenu.on("beforeshow",this.beforeColMenuShow,this);this.colMenu.on("itemclick",this.handleHdMenuClick,this)}this.hmenu=new Ext.menu.Menu({id:D.id+"-hctx"});this.hmenu.add({id:"asc",text:this.sortAscText,cls:"xg-hmenu-sort-asc"},{id:"desc",text:this.sortDescText,cls:"xg-hmenu-sort-desc"});if(D.enableColumnHide!==false){this.hmenu.add("-",{id:"columns",text:this.columnsText,menu:this.colMenu,iconCls:"x-cols-icon"})}this.hmenu.on("itemclick",this.handleHdMenuClick,this)}if(D.enableDragDrop||D.enableDrag){var A=new Ext.grid.GridDragZone(D,{ddGroup:D.ddGroup||"GridDD"})}this.updateHeaderSortState()},layout:function(){if(!this.mainBody){return }var E=this.grid;var G=E.getGridEl(),I=this.cm,B=E.autoExpandColumn,A=this;var C=G.getSize(true);var H=C.width;if(H<20||C.height<20){return }if(E.autoHeight){this.scroller.dom.style.overflow="visible"}else{this.el.setSize(C.width,C.height);var F=this.mainHd.getHeight();var D=C.height-(F);this.scroller.setSize(H,D);if(this.innerHd){this.innerHd.style.width=(H)+"px"}}if(this.forceFit){if(this.lastViewWidth!=H){this.fitColumns(false,false);this.lastViewWidth=H}}else{this.autoExpand();this.syncHeaderScroll()}this.onLayout(H,D)},onLayout:function(A,B){},onColumnWidthUpdated:function(C,A,B){},onAllColumnWidthsUpdated:function(A,B){},onColumnHiddenUpdated:function(B,C,A){},updateColumnText:function(A,B){},afterMove:function(A){},init:function(A){this.grid=A;this.initTemplates();this.initData(A.store,A.colModel);this.initUI(A)},getColumnId:function(A){return this.cm.getColumnId(A)},renderHeaders:function(){var C=this.cm,F=this.templates;var E=F.hcell;var B=[],H=[],G={};for(var D=0,A=C.getColumnCount();D<A;D++){G.id=C.getColumnId(D);G.value=C.getColumnHeader(D)||"";G.style=this.getColumnStyle(D,true);G.tooltip=this.getColumnTooltip(D);if(C.config[D].align=="right"){G.istyle="padding-right:16px"}else{delete G.istyle}B[B.length]=E.apply(G)}return F.header.apply({cells:B.join(""),tstyle:"width:"+this.getTotalWidth()+";"})},getColumnTooltip:function(A){var B=this.cm.getColumnTooltip(A);if(B){if(Ext.QuickTips.isEnabled()){return"ext:qtip=\""+B+"\""}else{return"title=\""+B+"\""}}return""},beforeUpdate:function(){this.grid.stopEditing(true)},updateHeaders:function(){this.innerHd.firstChild.innerHTML=this.renderHeaders()},focusRow:function(A){this.focusCell(A,0,false)},focusCell:function(D,A,C){var B=this.ensureVisible(D,A,C);this.focusEl.setXY(B);if(Ext.isGecko){this.focusEl.focus()}else{this.focusEl.focus.defer(1,this.focusEl)}},ensureVisible:function(P,E,D){if(typeof P!="number"){P=P.rowIndex}if(!this.ds){return }if(P<0||P>=this.ds.getCount()){return }E=(E!==undefined?E:0);var I=this.getRow(P),F;if(!(D===false&&E===0)){while(this.cm.isHidden(E)){E++}F=this.getCell(P,E)}if(!I){return }var L=this.scroller.dom;var O=0;var C=I,M=this.el.dom;while(C&&C!=M){O+=C.offsetTop;C=C.offsetParent}O-=this.mainHd.dom.offsetHeight;var N=O+I.offsetHeight;var A=L.clientHeight;var M=parseInt(L.scrollTop,10);var K=M+A;if(O<M){L.scrollTop=O}else{if(N>K){L.scrollTop=N-A}}if(D!==false){var J=parseInt(F.offsetLeft,10);var H=J+F.offsetWidth;var G=parseInt(L.scrollLeft,10);var B=G+L.clientWidth;if(J<G){L.scrollLeft=J}else{if(H>B){L.scrollLeft=H-L.clientWidth}}}return F?Ext.fly(F).getXY():[L.scrollLeft,Ext.fly(I).getY()]},insertRows:function(A,F,C,E){if(!E&&F===0&&C==A.getCount()-1){this.refresh()}else{if(!E){this.fireEvent("beforerowsinserted",this,F,C)}var B=this.renderRows(F,C);var D=this.getRow(F);if(D){Ext.DomHelper.insertHtml("beforeBegin",D,B)}else{Ext.DomHelper.insertHtml("beforeEnd",this.mainBody.dom,B)}if(!E){this.fireEvent("rowsinserted",this,F,C);this.processRows(F)}}},deleteRows:function(A,C,B){if(A.getRowCount()<1){this.refresh()}else{this.fireEvent("beforerowsdeleted",this,C,B);this.removeRows(C,B);this.processRows(C);this.fireEvent("rowsdeleted",this,C,B)}},getColumnStyle:function(A,C){var B=!C?(this.cm.config[A].css||""):"";B+="width:"+this.getColumnWidth(A)+";";if(this.cm.isHidden(A)){B+="display:none;"}var D=this.cm.config[A].align;if(D){B+="text-align:"+D+";"}return B},getColumnWidth:function(B){var A=this.cm.getColumnWidth(B);if(typeof A=="number"){return(Ext.isBorderBox?A:(A-this.borderWidth>0?A-this.borderWidth:0))+"px"}return A},getTotalWidth:function(){return this.cm.getTotalWidth()+"px"},fitColumns:function(D,G,E){var F=this.cm,S,L,O;var R=F.getTotalWidth(false);var J=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(J<20){return }var B=J-R;if(B===0){return false}var A=F.getColumnCount(true);var P=A-(typeof E=="number"?1:0);if(P===0){P=1;E=undefined}var K=F.getColumnCount();var I=[];var N=0;var M=0;var H;for(O=0;O<K;O++){if(!F.isHidden(O)&&!F.isFixed(O)&&O!==E){H=F.getColumnWidth(O);I.push(O);N=O;I.push(H);M+=H}}var C=(J-F.getTotalWidth())/M;while(I.length){H=I.pop();O=I.pop();F.setColumnWidth(O,Math.max(this.grid.minColumnWidth,Math.floor(H+H*C)),true)}if((R=F.getTotalWidth(false))>J){var Q=P!=A?E:N;F.setColumnWidth(Q,Math.max(1,F.getColumnWidth(Q)-(R-J)),true)}if(D!==true){this.updateAllColumnWidths()}return true},autoExpand:function(B){var G=this.grid,A=this.cm;if(!this.userResized&&G.autoExpandColumn){var D=A.getTotalWidth(false);var H=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(D!=H){var F=A.getIndexById(G.autoExpandColumn);var E=A.getColumnWidth(F);var C=Math.min(Math.max(((H-D)+E),G.autoExpandMin),G.autoExpandMax);if(C!=E){A.setColumnWidth(F,C,true);if(B!==true){this.updateColumnWidth(F,C)}}}}},getColumnData:function(){var D=[],A=this.cm,E=A.getColumnCount();for(var C=0;C<E;C++){var B=A.getDataIndex(C);D[C]={name:(typeof B=="undefined"?this.ds.fields.get(C).name:B),renderer:A.getRenderer(C),id:A.getColumnId(C),style:this.getColumnStyle(C)}}return D},renderRows:function(H,C){var D=this.grid,F=D.colModel,A=D.store,I=D.stripeRows;var G=F.getColumnCount();if(A.getCount()<1){return""}var E=this.getColumnData();H=H||0;C=typeof C=="undefined"?A.getCount()-1:C;var B=A.getRange(H,C);return this.doRender(E,B,A,H,G,I)},renderBody:function(){var A=this.renderRows();return this.templates.body.apply({rows:A})},refreshRow:function(B){var D=this.ds,C;if(typeof B=="number"){C=B;B=D.getAt(C)}else{C=D.indexOf(B)}var A=[];this.insertRows(D,C,C,true);this.getRow(C).rowIndex=C;this.onRemove(D,B,C+1,true);this.fireEvent("rowupdated",this,C,B)},refresh:function(B){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var A=this.renderBody();this.mainBody.update(A);if(B===true){this.updateHeaders();this.updateHeaderSortState()}this.processRows(0,true);this.layout();this.applyEmptyText();this.fireEvent("refresh",this)},applyEmptyText:function(){if(this.emptyText&&!this.hasRows()){this.mainBody.update("<div class=\"x-grid-empty\">"+this.emptyText+"</div>")}},updateHeaderSortState:function(){var B=this.ds.getSortState();if(!B){return }if(!this.sortState||(this.sortState.field!=B.field||this.sortState.direction!=B.direction)){this.grid.fireEvent("sortchange",this.grid,B)}this.sortState=B;var C=this.cm.findColumnIndex(B.field);if(C!=-1){var A=B.direction;this.updateSortIcon(C,A)}},destroy:function(){if(this.colMenu){this.colMenu.removeAll();Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.getEl().remove();delete this.colMenu}if(this.hmenu){this.hmenu.removeAll();Ext.menu.MenuMgr.unregister(this.hmenu);this.hmenu.getEl().remove();delete this.hmenu}if(this.grid.enableColumnMove){var C=Ext.dd.DDM.ids["gridHeader"+this.grid.getGridEl().id];if(C){for(var A in C){if(!C[A].config.isTarget&&C[A].dragElId){var B=C[A].dragElId;C[A].unreg();Ext.get(B).remove()}else{if(C[A].config.isTarget){C[A].proxyTop.remove();C[A].proxyBottom.remove();C[A].unreg()}}if(Ext.dd.DDM.locationCache[A]){delete Ext.dd.DDM.locationCache[A]}}delete Ext.dd.DDM.ids["gridHeader"+this.grid.getGridEl().id]}}Ext.destroy(this.resizeMarker,this.resizeProxy);this.initData(null,null);Ext.EventManager.removeResizeListener(this.onWindowResize,this)},onDenyColumnHide:function(){},render:function(){var A=this.cm;var B=A.getColumnCount();if(this.autoFill){this.fitColumns(true,true)}else{if(this.forceFit){this.fitColumns(true,false)}else{if(this.grid.autoExpandColumn){this.autoExpand(true)}}}this.renderUI()},initData:function(B,A){if(this.ds){this.ds.un("load",this.onLoad,this);this.ds.un("datachanged",this.onDataChange,this);this.ds.un("add",this.onAdd,this);this.ds.un("remove",this.onRemove,this);this.ds.un("update",this.onUpdate,this);this.ds.un("clear",this.onClear,this)}if(B){B.on("load",this.onLoad,this);B.on("datachanged",this.onDataChange,this);B.on("add",this.onAdd,this);B.on("remove",this.onRemove,this);B.on("update",this.onUpdate,this);B.on("clear",this.onClear,this)}this.ds=B;if(this.cm){this.cm.un("configchange",this.onColConfigChange,this);this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this);this.cm.un("columnlockchange",this.onColumnLock,this)}if(A){A.on("configchange",this.onColConfigChange,this);A.on("widthchange",this.onColWidthChange,this);A.on("headerchange",this.onHeaderChange,this);A.on("hiddenchange",this.onHiddenChange,this);A.on("columnmoved",this.onColumnMove,this);A.on("columnlockchange",this.onColumnLock,this)}this.cm=A},onDataChange:function(){this.refresh();this.updateHeaderSortState()},onClear:function(){this.refresh()},onUpdate:function(B,A){this.refreshRow(A)},onAdd:function(C,A,B){this.insertRows(C,B,B+(A.length-1))},onRemove:function(D,A,B,C){if(C!==true){this.fireEvent("beforerowremoved",this,B,A)}this.removeRow(B);if(C!==true){this.processRows(B);this.applyEmptyText();this.fireEvent("rowremoved",this,B,A)}},onLoad:function(){this.scrollToTop()},onColWidthChange:function(A,B,C){this.updateColumnWidth(B,C)},onHeaderChange:function(A,B,C){this.updateHeaders()},onHiddenChange:function(A,B,C){this.updateColumnHidden(B,C)},onColumnMove:function(A,D,B){this.indexMap=null;var C=this.getScrollState();this.refresh(true);this.restoreScroll(C);this.afterMove(B)},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true)},initUI:function(A){A.on("headerclick",this.onHeaderClick,this);if(A.trackMouseOver){A.on("mouseover",this.onRowOver,this);A.on("mouseout",this.onRowOut,this)}},initEvents:function(){},onHeaderClick:function(B,A){if(this.headersDisabled||!this.cm.isSortable(A)){return }B.stopEditing(true);B.store.sort(this.cm.getDataIndex(A))},onRowOver:function(B,A){var C;if((C=this.findRowIndex(A))!==false){this.addRowClass(C,"x-grid3-row-over")}},onRowOut:function(B,A){var C;if((C=this.findRowIndex(A))!==false&&C!==this.findRowIndex(B.getRelatedTarget())){this.removeRowClass(C,"x-grid3-row-over")}},handleWheel:function(A){A.stopPropagation()},onRowSelect:function(A){this.addRowClass(A,"x-grid3-row-selected")},onRowDeselect:function(A){this.removeRowClass(A,"x-grid3-row-selected")},onCellSelect:function(C,B){var A=this.getCell(C,B);if(A){this.fly(A).addClass("x-grid3-cell-selected")}},onCellDeselect:function(C,B){var A=this.getCell(C,B);if(A){this.fly(A).removeClass("x-grid3-cell-selected")}},onColumnSplitterMoved:function(C,B){this.userResized=true;var A=this.grid.colModel;A.setColumnWidth(C,B,true);if(this.forceFit){this.fitColumns(true,false,C);this.updateAllColumnWidths()}else{this.updateColumnWidth(C,B)}this.grid.fireEvent("columnresize",C,B)},handleHdMenuClick:function(C){var B=this.hdCtxIndex;var A=this.cm,D=this.ds;switch(C.id){case"asc":D.sort(A.getDataIndex(B),"ASC");break;case"desc":D.sort(A.getDataIndex(B),"DESC");break;default:B=A.getIndexById(C.id.substr(4));if(B!=-1){if(C.checked&&A.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false}A.setHidden(B,C.checked)}}return true},isHideableColumn:function(A){return !A.hidden&&!A.fixed},beforeColMenuShow:function(){var A=this.cm,C=A.getColumnCount();this.colMenu.removeAll();for(var B=0;B<C;B++){if(A.config[B].fixed!==true&&A.config[B].hideable!==false){this.colMenu.add(new Ext.menu.CheckItem({id:"col-"+A.getColumnId(B),text:A.getColumnHeader(B),checked:!A.isHidden(B),hideOnClick:false,disabled:A.config[B].hideable===false}))}}},handleHdDown:function(F,D){if(Ext.fly(D).hasClass("x-grid3-hd-btn")){F.stopEvent();var E=this.findHeaderCell(D);Ext.fly(E).addClass("x-grid3-hd-menu-open");var C=this.getCellIndex(E);this.hdCtxIndex=C;var B=this.hmenu.items,A=this.cm;B.get("asc").setDisabled(!A.isSortable(C));B.get("desc").setDisabled(!A.isSortable(C));this.hmenu.on("hide",function(){Ext.fly(E).removeClass("x-grid3-hd-menu-open")},this,{single:true});this.hmenu.show(D,"tl-bl?")}},handleHdOver:function(D,A){var C=this.findHeaderCell(A);if(C&&!this.headersDisabled){this.activeHd=C;this.activeHdIndex=this.getCellIndex(C);var B=this.fly(C);this.activeHdRegion=B.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){B.addClass("x-grid3-hd-over");this.activeHdBtn=B.child(".x-grid3-hd-btn");if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(C.firstChild.offsetHeight-1)+"px"}}}},handleHdMove:function(F,D){if(this.activeHd&&!this.headersDisabled){var B=this.splitHandleWidth||5;var E=this.activeHdRegion;var A=F.getPageX();var C=this.activeHd.style;if(A-E.left<=B&&this.cm.isResizable(this.activeHdIndex-1)){C.cursor=Ext.isAir?"move":Ext.isSafari?"e-resize":"col-resize"}else{if(E.right-A<=(!this.activeHdBtn?B:2)&&this.cm.isResizable(this.activeHdIndex)){C.cursor=Ext.isAir?"move":Ext.isSafari?"w-resize":"col-resize"}else{C.cursor=""}}}},handleHdOut:function(C,A){var B=this.findHeaderCell(A);if(B&&(!Ext.isIE||!C.within(B,true))){this.activeHd=null;this.fly(B).removeClass("x-grid3-hd-over");B.style.cursor=""}},hasRows:function(){var A=this.mainBody.dom.firstChild;return A&&A.className!="x-grid-empty"},bind:function(A,B){this.initData(A,B)}});Ext.grid.GridView.SplitDragZone=function(A,B){this.grid=A;this.view=A.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,B,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5};Ext.extend(Ext.grid.GridView.SplitDragZone,Ext.dd.DDProxy,{b4StartDrag:function(A,E){this.view.headersDisabled=true;var D=this.view.mainWrap.getHeight();this.marker.setHeight(D);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),"tl-tl",[-2,0]);this.proxy.setHeight(D);var B=this.cm.getColumnWidth(this.cellIndex);var C=Math.max(B-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(C,1000);this.setYConstraint(0,0);this.minX=A-C;this.maxX=A+1000;this.startPos=A;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,A,E)},handleMouseDown:function(A){var H=this.view.findHeaderCell(A.getTarget());if(H){var K=this.view.fly(H).getXY(),E=K[0],D=K[1];var I=A.getXY(),C=I[0],B=I[1];var G=H.offsetWidth,F=false;if((C-E)<=this.hw){F=-1}else{if((E+G)-C<=this.hw){F=0}}if(F!==false){this.cm=this.grid.colModel;var J=this.view.getCellIndex(H);if(F==-1){if(J+F<0){return }while(this.cm.isHidden(J+F)){--F;if(J+F<0){return }}}this.cellIndex=J+F;this.split=H.dom;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this,arguments)}}else{if(this.view.columnDrag){this.view.columnDrag.callHandleMouseDown(A)}}}},endDrag:function(D){this.marker.hide();var A=this.view;var B=Math.max(this.minX,D.getPageX());var C=B-this.startPos;A.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+C);setTimeout(function(){A.headersDisabled=false},50)},autoOffset:function(){this.setDelta(0,0)}}); |
Ext.grid.GroupingView=Ext.extend(Ext.grid.GridView,{hideGroupedColumn:false,showGroupName:true,startCollapsed:false,enableGrouping:true,enableGroupingMenu:true,enableNoGroups:true,emptyGroupText:"(None)",ignoreAdd:false,groupTextTpl:"{text}",gidSeed:1000,initTemplates:function(){Ext.grid.GroupingView.superclass.initTemplates.call(this);this.state={};var A=this.grid.getSelectionModel();A.on(A.selectRow?"beforerowselect":"beforecellselect",this.onBeforeRowSelect,this);if(!this.startGroup){this.startGroup=new Ext.XTemplate("<div id=\"{groupId}\" class=\"x-grid-group {cls}\">","<div id=\"{groupId}-hd\" class=\"x-grid-group-hd\" style=\"{style}\"><div>",this.groupTextTpl,"</div></div>","<div id=\"{groupId}-bd\" class=\"x-grid-group-body\">")}this.startGroup.compile();this.endGroup="</div></div>"},findGroup:function(A){return Ext.fly(A).up(".x-grid-group",this.mainBody.dom)},getGroups:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},onAdd:function(){if(this.enableGrouping&&!this.ignoreAdd){var A=this.getScrollState();this.refresh();this.restoreScroll(A)}else{if(!this.enableGrouping){Ext.grid.GroupingView.superclass.onAdd.apply(this,arguments)}}},onRemove:function(E,A,B,D){Ext.grid.GroupingView.superclass.onRemove.apply(this,arguments);var C=document.getElementById(A._groupId);if(C&&C.childNodes[1].childNodes.length<1){Ext.removeNode(C)}this.applyEmptyText()},refreshRow:function(A){if(this.ds.getCount()==1){this.refresh()}else{this.isUpdating=true;Ext.grid.GroupingView.superclass.refreshRow.apply(this,arguments);this.isUpdating=false}},beforeMenuShow:function(){var C=this.getGroupField();var B=this.hmenu.items.get("groupBy");if(B){B.setDisabled(this.cm.config[this.hdCtxIndex].groupable===false)}var A=this.hmenu.items.get("showGroups");if(A){if(!!C){A.setDisabled(this.cm.config[this.hdCtxIndex].groupable===false)}A.setChecked(!!C)}},renderUI:function(){Ext.grid.GroupingView.superclass.renderUI.call(this);this.mainBody.on("mousedown",this.interceptMouse,this);if(this.enableGroupingMenu&&this.hmenu){this.hmenu.add("-",{id:"groupBy",text:this.groupByText,handler:this.onGroupByClick,scope:this,iconCls:"x-group-by-icon"});if(this.enableNoGroups){this.hmenu.add({id:"showGroups",text:this.showGroupsText,checked:true,checkHandler:this.onShowGroupsClick,scope:this})}this.hmenu.on("beforeshow",this.beforeMenuShow,this)}},onGroupByClick:function(){this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex));this.beforeMenuShow()},onShowGroupsClick:function(A,B){if(B){this.onGroupByClick()}else{this.grid.store.clearGrouping()}},toggleGroup:function(C,B){this.grid.stopEditing(true);C=Ext.getDom(C);var A=Ext.fly(C);B=B!==undefined?B:A.hasClass("x-grid-group-collapsed");this.state[A.dom.id]=B;A[B?"removeClass":"addClass"]("x-grid-group-collapsed")},toggleAllGroups:function(C){var B=this.getGroups();for(var D=0,A=B.length;D<A;D++){this.toggleGroup(B[D],C)}},expandAllGroups:function(){this.toggleAllGroups(true)},collapseAllGroups:function(){this.toggleAllGroups(false)},interceptMouse:function(B){var A=B.getTarget(".x-grid-group-hd",this.mainBody);if(A){B.stopEvent();this.toggleGroup(A.parentNode)}},getGroup:function(A,D,F,G,B,E){var C=F?F(A,{},D,G,B,E):String(A);if(C===""){C=this.cm.config[B].emptyGroupText||this.emptyGroupText}return C},getGroupField:function(){return this.grid.store.getGroupState()},renderRows:function(){var A=this.getGroupField();var D=!!A;if(this.hideGroupedColumn){var B=this.cm.findColumnIndex(A);if(!D&&this.lastGroupField!==undefined){this.mainBody.update("");this.cm.setHidden(this.cm.findColumnIndex(this.lastGroupField),false);delete this.lastGroupField}else{if(D&&this.lastGroupField===undefined){this.lastGroupField=A;this.cm.setHidden(B,true)}else{if(D&&this.lastGroupField!==undefined&&A!==this.lastGroupField){this.mainBody.update("");var C=this.cm.findColumnIndex(this.lastGroupField);this.cm.setHidden(C,false);this.lastGroupField=A;this.cm.setHidden(B,true)}}}}return Ext.grid.GroupingView.superclass.renderRows.apply(this,arguments)},doRender:function(D,G,P,A,O,R){if(G.length<1){return""}var Y=this.getGroupField();var N=this.cm.findColumnIndex(Y);this.enableGrouping=!!Y;if(!this.enableGrouping||this.isUpdating){return Ext.grid.GroupingView.superclass.doRender.apply(this,arguments)}var H="width:"+this.getTotalWidth()+";";var Q=this.grid.getGridEl().id;var F=this.cm.config[N];var B=F.groupRenderer||F.renderer;var S=this.showGroupName?(F.groupName||F.header)+": ":"";var X=[],K,T,U,M;for(T=0,U=G.length;T<U;T++){var J=A+T;var L=G[T],E=L.data[Y],V=this.getGroup(E,L,B,J,N,P);if(!K||K.group!=V){M=Q+"-gp-"+Y+"-"+Ext.util.Format.htmlEncode(V);var C=typeof this.state[M]!=="undefined"?!this.state[M]:this.startCollapsed;var I=C?"x-grid-group-collapsed":"";K={group:V,gvalue:E,text:S+V,groupId:M,startRow:J,rs:[L],cls:I,style:H};X.push(K)}else{K.rs.push(L)}L._groupId=M}var W=[];for(T=0,U=X.length;T<U;T++){var V=X[T];this.doGroupStart(W,V,D,P,O);W[W.length]=Ext.grid.GroupingView.superclass.doRender.call(this,D,V.rs,P,V.startRow,O,R);this.doGroupEnd(W,V,D,P,O)}return W.join("")},getGroupId:function(F){var D=this.grid.getGridEl().id;var C=this.getGroupField();var E=this.cm.findColumnIndex(C);var B=this.cm.config[E];var G=B.groupRenderer||B.renderer;var A=this.getGroup(F,{data:{}},G,0,E,this.ds);return D+"-gp-"+C+"-"+Ext.util.Format.htmlEncode(F)},doGroupStart:function(A,D,B,E,C){A[A.length]=this.startGroup.apply(D)},doGroupEnd:function(A,D,B,E,C){A[A.length]=this.endGroup},getRows:function(){if(!this.enableGrouping){return Ext.grid.GroupingView.superclass.getRows.call(this)}var G=[];var F,C=this.getGroups();for(var E=0,A=C.length;E<A;E++){F=C[E].childNodes[1].childNodes;for(var D=0,B=F.length;D<B;D++){G[G.length]=F[D]}}return G},updateGroupWidths:function(){if(!this.enableGrouping||!this.hasRows()){return }var C=Math.max(this.cm.getTotalWidth(),this.el.dom.offsetWidth-this.scrollOffset)+"px";var B=this.getGroups();for(var D=0,A=B.length;D<A;D++){B[D].firstChild.style.width=C}},onColumnWidthUpdated:function(C,A,B){this.updateGroupWidths()},onAllColumnWidthsUpdated:function(A,B){this.updateGroupWidths()},onColumnHiddenUpdated:function(B,C,A){this.updateGroupWidths()},onLayout:function(){this.updateGroupWidths()},onBeforeRowSelect:function(D,C){if(!this.enableGrouping){return }var B=this.getRow(C);if(B&&!B.offsetParent){var A=this.findGroup(B);this.toggleGroup(A,true)}},groupByText:"Group By This Field",showGroupsText:"Show in Groups"});Ext.grid.GroupingView.GROUP_ID=1000; |
Ext.grid.HeaderDragZone=function(A,C,B){this.grid=A;this.view=A.getView();this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDragZone.superclass.constructor.call(this,C);if(B){this.setHandleElId(Ext.id(C));this.setOuterHandleElId(Ext.id(B))}this.scroll=false};Ext.extend(Ext.grid.HeaderDragZone,Ext.dd.DragZone,{maxDragWidth:120,getDragData:function(C){var A=Ext.lib.Event.getTarget(C);var B=this.view.findHeaderCell(A);if(B){return{ddel:B.firstChild,header:B}}return false},onInitDrag:function(A){this.view.headersDisabled=true;var B=this.dragData.ddel.cloneNode(true);B.id=Ext.id();B.style.width=Math.min(this.dragData.header.offsetWidth,this.maxDragWidth)+"px";this.proxy.update(B);return true},afterValidDrop:function(){var A=this.view;setTimeout(function(){A.headersDisabled=false},50)},afterInvalidDrop:function(){var A=this.view;setTimeout(function(){A.headersDisabled=false},50)}});Ext.grid.HeaderDropZone=function(A,C,B){this.grid=A;this.view=A.getView();this.proxyTop=Ext.DomHelper.append(document.body,{cls:"col-move-top",html:" "},true);this.proxyBottom=Ext.DomHelper.append(document.body,{cls:"col-move-bottom",html:" "},true);this.proxyTop.hide=this.proxyBottom.hide=function(){this.setLeftTop(-100,-100);this.setStyle("visibility","hidden")};this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDropZone.superclass.constructor.call(this,A.getGridEl().dom)};Ext.extend(Ext.grid.HeaderDropZone,Ext.dd.DropZone,{proxyOffsets:[-4,-9],fly:Ext.Element.fly,getTargetFromEvent:function(C){var A=Ext.lib.Event.getTarget(C);var B=this.view.findCellIndex(A);if(B!==false){return this.view.getHeaderCell(B)}},nextVisible:function(C){var B=this.view,A=this.grid.colModel;C=C.nextSibling;while(C){if(!A.isHidden(B.getCellIndex(C))){return C}C=C.nextSibling}return null},prevVisible:function(C){var B=this.view,A=this.grid.colModel;C=C.prevSibling;while(C){if(!A.isHidden(B.getCellIndex(C))){return C}C=C.prevSibling}return null},positionIndicator:function(D,B,E){var H=Ext.lib.Event.getPageX(E);var A=Ext.lib.Dom.getRegion(B.firstChild);var I,K,G=A.top+this.proxyOffsets[1];if((A.right-H)<=(A.right-A.left)/2){I=A.right+this.view.borderWidth;K="after"}else{I=A.left;K="before"}var F=this.view.getCellIndex(D);var J=this.view.getCellIndex(B);if(this.grid.colModel.isFixed(J)){return false}var C=this.grid.colModel.isLocked(J);if(K=="after"){J++}if(F<J){J--}if(F==J&&(C==this.grid.colModel.isLocked(F))){return false}I+=this.proxyOffsets[0];this.proxyTop.setLeftTop(I,G);this.proxyTop.show();if(!this.bottomOffset){this.bottomOffset=this.view.mainHd.getHeight()}this.proxyBottom.setLeftTop(I,G+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return K},onNodeEnter:function(D,A,C,B){if(B.header!=D){this.positionIndicator(B.header,D,C)}},onNodeOver:function(E,B,D,C){var A=false;if(C.header!=E){A=this.positionIndicator(C.header,E,D)}if(!A){this.proxyTop.hide();this.proxyBottom.hide()}return A?this.dropAllowed:this.dropNotAllowed},onNodeOut:function(D,A,C,B){this.proxyTop.hide();this.proxyBottom.hide()},onNodeDrop:function(B,K,F,D){var E=D.header;if(E!=B){var I=this.grid.colModel;var H=Ext.lib.Event.getPageX(F);var A=Ext.lib.Dom.getRegion(B.firstChild);var L=(A.right-H)<=((A.right-A.left)/2)?"after":"before";var G=this.view.getCellIndex(E);var J=this.view.getCellIndex(B);var C=I.isLocked(J);if(L=="after"){J++}if(G<J){J--}if(G==J&&(C==I.isLocked(G))){return false}I.setLocked(G,C,true);I.moveColumn(G,J);this.grid.fireEvent("columnmove",G,J);return true}return false}});Ext.grid.GridView.ColumnDragZone=function(A,B){Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this,A,B,null);this.proxy.el.addClass("x-grid3-col-dd")};Ext.extend(Ext.grid.GridView.ColumnDragZone,Ext.grid.HeaderDragZone,{handleMouseDown:function(A){},callHandleMouseDown:function(A){Ext.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call(this,A)}}); |
Ext.grid.SplitDragZone=function(A,C,B){this.grid=A;this.view=A.getView();this.proxy=this.view.resizeProxy;Ext.grid.SplitDragZone.superclass.constructor.call(this,C,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.setHandleElId(Ext.id(C));this.setOuterHandleElId(Ext.id(B));this.scroll=false};Ext.extend(Ext.grid.SplitDragZone,Ext.dd.DDProxy,{fly:Ext.Element.fly,b4StartDrag:function(A,D){this.view.headersDisabled=true;this.proxy.setHeight(this.view.mainWrap.getHeight());var B=this.cm.getColumnWidth(this.cellIndex);var C=Math.max(B-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(C,1000);this.setYConstraint(0,0);this.minX=A-C;this.maxX=A+1000;this.startPos=A;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,A,D)},handleMouseDown:function(B){ev=Ext.EventObject.setEvent(B);var A=this.fly(ev.getTarget());if(A.hasClass("x-grid-split")){this.cellIndex=this.view.getCellIndex(A.dom);this.split=A.dom;this.cm=this.grid.colModel;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this,arguments)}}},endDrag:function(C){this.view.headersDisabled=false;var A=Math.max(this.minX,Ext.lib.Event.getPageX(C));var B=A-this.startPos;this.view.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+B)},autoOffset:function(){this.setDelta(0,0)}}); |
Ext.grid.GridDragZone=function(B,A){this.view=B.getView();Ext.grid.GridDragZone.superclass.constructor.call(this,this.view.mainBody.dom,A);if(this.view.lockedBody){this.setHandleElId(Ext.id(this.view.mainBody.dom));this.setOuterHandleElId(Ext.id(this.view.lockedBody.dom))}this.scroll=false;this.grid=B;this.ddel=document.createElement("div");this.ddel.className="x-grid-dd-wrap"};Ext.extend(Ext.grid.GridDragZone,Ext.dd.DragZone,{ddGroup:"GridDD",getDragData:function(B){var A=Ext.lib.Event.getTarget(B);var D=this.view.findRowIndex(A);if(D!==false){var C=this.grid.selModel;if(!C.isSelected(D)||B.hasModifier()){C.handleMouseDown(this.grid,D,B)}return{grid:this.grid,ddel:this.ddel,rowIndex:D,selections:C.getSelections()}}return false},onInitDrag:function(B){var A=this.dragData;this.ddel.innerHTML=this.grid.getDragDropText();this.proxy.update(this.ddel)},afterRepair:function(){this.dragging=false},getRepairXY:function(B,A){return false},onEndDrag:function(A,B){},onValidDrop:function(A,B,C){this.hideProxy()},beforeInvalidDrop:function(A,B){}}); |
Ext.grid.ColumnModel=function(A){this.defaultWidth=100;this.defaultSortable=false;if(A.columns){Ext.apply(this,A);this.setConfig(A.columns,true)}else{this.setConfig(A,true)}this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","columnlockchange","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{getColumnId:function(A){return this.config[A].id},setConfig:function(C,B){if(!B){delete this.totalWidth;for(var D=0,A=this.config.length;D<A;D++){var E=this.config[D];if(E.editor){E.editor.destroy()}}}this.config=C;this.lookup={};for(var D=0,A=C.length;D<A;D++){var E=C[D];if(typeof E.renderer=="string"){E.renderer=Ext.util.Format[E.renderer]}if(typeof E.id=="undefined"){E.id=D}if(E.editor&&E.editor.isFormField){E.editor=new Ext.grid.GridEditor(E.editor)}this.lookup[E.id]=E}if(!B){this.fireEvent("configchange",this)}},getColumnById:function(A){return this.lookup[A]},getIndexById:function(C){for(var B=0,A=this.config.length;B<A;B++){if(this.config[B].id==C){return B}}return -1},moveColumn:function(C,A){var B=this.config[C];this.config.splice(C,1);this.config.splice(A,0,B);this.dataMap=null;this.fireEvent("columnmoved",this,C,A)},isLocked:function(A){return this.config[A].locked===true},setLocked:function(B,C,A){if(this.isLocked(B)==C){return }this.config[B].locked=C;if(!A){this.fireEvent("columnlockchange",this,B,C)}},getTotalLockedWidth:function(){var A=0;for(var B=0;B<this.config.length;B++){if(this.isLocked(B)&&!this.isHidden(B)){this.totalWidth+=this.getColumnWidth(B)}}return A},getLockedCount:function(){for(var B=0,A=this.config.length;B<A;B++){if(!this.isLocked(B)){return B}}},getColumnCount:function(C){if(C===true){var D=0;for(var B=0,A=this.config.length;B<A;B++){if(!this.isHidden(B)){D++}}return D}return this.config.length},getColumnsBy:function(D,C){var E=[];for(var B=0,A=this.config.length;B<A;B++){var F=this.config[B];if(D.call(C||this,F,B)===true){E[E.length]=F}}return E},isSortable:function(A){if(typeof this.config[A].sortable=="undefined"){return this.defaultSortable}return this.config[A].sortable},isMenuDisabled:function(A){return !!this.config[A].menuDisabled},getRenderer:function(A){if(!this.config[A].renderer){return Ext.grid.ColumnModel.defaultRenderer}return this.config[A].renderer},setRenderer:function(A,B){this.config[A].renderer=B},getColumnWidth:function(A){return this.config[A].width||this.defaultWidth},setColumnWidth:function(B,C,A){this.config[B].width=C;this.totalWidth=null;if(!A){this.fireEvent("widthchange",this,B,C)}},getTotalWidth:function(B){if(!this.totalWidth){this.totalWidth=0;for(var C=0,A=this.config.length;C<A;C++){if(B||!this.isHidden(C)){this.totalWidth+=this.getColumnWidth(C)}}}return this.totalWidth},getColumnHeader:function(A){return this.config[A].header},setColumnHeader:function(A,B){this.config[A].header=B;this.fireEvent("headerchange",this,A,B)},getColumnTooltip:function(A){return this.config[A].tooltip},setColumnTooltip:function(A,B){this.config[A].tooltip=B},getDataIndex:function(A){return this.config[A].dataIndex},setDataIndex:function(A,B){this.config[A].dataIndex=B},findColumnIndex:function(C){var D=this.config;for(var B=0,A=D.length;B<A;B++){if(D[B].dataIndex==C){return B}}return -1},isCellEditable:function(A,B){return(this.config[A].editable||(typeof this.config[A].editable=="undefined"&&this.config[A].editor))?true:false},getCellEditor:function(A,B){return this.config[A].editor},setEditable:function(A,B){this.config[A].editable=B},isHidden:function(A){return this.config[A].hidden},isFixed:function(A){return this.config[A].fixed},isResizable:function(A){return A>=0&&this.config[A].resizable!==false&&this.config[A].fixed!==true},setHidden:function(A,B){var C=this.config[A];if(C.hidden!==B){C.hidden=B;this.totalWidth=null;this.fireEvent("hiddenchange",this,A,B)}},setEditor:function(A,B){this.config[A].editor=B}});Ext.grid.ColumnModel.defaultRenderer=function(A){if(typeof A=="string"&&A.length<1){return" "}return A};Ext.grid.DefaultColumnModel=Ext.grid.ColumnModel; |
Ext.grid.AbstractSelectionModel=function(){this.locked=false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.AbstractSelectionModel,Ext.util.Observable,{init:function(A){this.grid=A;this.initEvents()},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked}}); |
Ext.grid.RowSelectionModel=function(A){Ext.apply(this,A);this.selections=new Ext.util.MixedCollection(false,function(B){return B.id});this.last=false;this.lastActive=false;this.addEvents("selectionchange","beforerowselect","rowselect","rowdeselect");Ext.grid.RowSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.RowSelectionModel,Ext.grid.AbstractSelectionModel,{singleSelect:false,initEvents:function(){if(!this.grid.enableDragDrop&&!this.grid.enableDrag){this.grid.on("rowmousedown",this.handleMouseDown,this)}else{this.grid.on("rowclick",function(B,D,C){if(C.button===0&&!C.shiftKey&&!C.ctrlKey){this.selectRow(D,false);B.view.focusRow(D)}},this)}this.rowNav=new Ext.KeyNav(this.grid.getGridEl(),{"up":function(C){if(!C.shiftKey){this.selectPrevious(C.shiftKey)}else{if(this.last!==false&&this.lastActive!==false){var B=this.last;this.selectRange(this.last,this.lastActive-1);this.grid.getView().focusRow(this.lastActive);if(B!==false){this.last=B}}else{this.selectFirstRow()}}},"down":function(C){if(!C.shiftKey){this.selectNext(C.shiftKey)}else{if(this.last!==false&&this.lastActive!==false){var B=this.last;this.selectRange(this.last,this.lastActive+1);this.grid.getView().focusRow(this.lastActive);if(B!==false){this.last=B}}else{this.selectFirstRow()}}},scope:this});var A=this.grid.view;A.on("refresh",this.onRefresh,this);A.on("rowupdated",this.onRowUpdated,this);A.on("rowremoved",this.onRemove,this)},onRefresh:function(){var F=this.grid.store,B;var D=this.getSelections();this.clearSelections(true);for(var C=0,A=D.length;C<A;C++){var E=D[C];if((B=F.indexOfId(E.id))!=-1){this.selectRow(B,true)}}if(D.length!=this.selections.getCount()){this.fireEvent("selectionchange",this)}},onRemove:function(A,B,C){if(this.selections.remove(C)!==false){this.fireEvent("selectionchange",this)}},onRowUpdated:function(A,B,C){if(this.isSelected(C)){A.onRowSelect(B)}},selectRecords:function(B,E){if(!E){this.clearSelections()}var D=this.grid.store;for(var C=0,A=B.length;C<A;C++){this.selectRow(D.indexOf(B[C]),true)}},getCount:function(){return this.selections.length},selectFirstRow:function(){this.selectRow(0)},selectLastRow:function(A){this.selectRow(this.grid.store.getCount()-1,A)},selectNext:function(A){if(this.hasNext()){this.selectRow(this.last+1,A);this.grid.getView().focusRow(this.last);return true}return false},selectPrevious:function(A){if(this.hasPrevious()){this.selectRow(this.last-1,A);this.grid.getView().focusRow(this.last);return true}return false},hasNext:function(){return this.last!==false&&(this.last+1)<this.grid.store.getCount()},hasPrevious:function(){return !!this.last},getSelections:function(){return[].concat(this.selections.items)},getSelected:function(){return this.selections.itemAt(0)},each:function(E,D){var C=this.getSelections();for(var B=0,A=C.length;B<A;B++){if(E.call(D||this,C[B],B)===false){return false}}return true},clearSelections:function(A){if(this.locked){return }if(A!==true){var C=this.grid.store;var B=this.selections;B.each(function(D){this.deselectRow(C.indexOfId(D.id))},this);B.clear()}else{this.selections.clear()}this.last=false},selectAll:function(){if(this.locked){return }this.selections.clear();for(var B=0,A=this.grid.store.getCount();B<A;B++){this.selectRow(B,true)}},hasSelection:function(){return this.selections.length>0},isSelected:function(A){var B=typeof A=="number"?this.grid.store.getAt(A):A;return(B&&this.selections.key(B.id)?true:false)},isIdSelected:function(A){return(this.selections.key(A)?true:false)},handleMouseDown:function(D,F,E){if(E.button!==0||this.isLocked()){return }var A=this.grid.getView();if(E.shiftKey&&this.last!==false){var C=this.last;this.selectRange(C,F,E.ctrlKey);this.last=C;A.focusRow(F)}else{var B=this.isSelected(F);if(E.ctrlKey&&B){this.deselectRow(F)}else{if(!B||this.getCount()>1){this.selectRow(F,E.ctrlKey||E.shiftKey);A.focusRow(F)}}}},selectRows:function(C,D){if(!D){this.clearSelections()}for(var B=0,A=C.length;B<A;B++){this.selectRow(C[B],true)}},selectRange:function(B,A,D){if(this.locked){return }if(!D){this.clearSelections()}if(B<=A){for(var C=B;C<=A;C++){this.selectRow(C,true)}}else{for(var C=B;C>=A;C--){this.selectRow(C,true)}}},deselectRange:function(C,B,A){if(this.locked){return }for(var D=C;D<=B;D++){this.deselectRow(D,A)}},selectRow:function(B,D,A){if(this.locked||(B<0||B>=this.grid.store.getCount())){return }var C=this.grid.store.getAt(B);if(C&&this.fireEvent("beforerowselect",this,B,D,C)!==false){if(!D||this.singleSelect){this.clearSelections()}this.selections.add(C);this.last=this.lastActive=B;if(!A){this.grid.getView().onRowSelect(B)}this.fireEvent("rowselect",this,B,C);this.fireEvent("selectionchange",this)}},deselectRow:function(B,A){if(this.locked){return }if(this.last==B){this.last=false}if(this.lastActive==B){this.lastActive=false}var C=this.grid.store.getAt(B);if(C){this.selections.remove(C);if(!A){this.grid.getView().onRowDeselect(B)}this.fireEvent("rowdeselect",this,B,C);this.fireEvent("selectionchange",this)}},restoreLast:function(){if(this._last){this.last=this._last}},acceptsNav:function(C,B,A){return !A.isHidden(B)&&A.isCellEditable(B,C)},onEditorKey:function(F,E){var C=E.getKey(),G,D=this.grid,B=D.activeEditor;var A=E.shiftKey;if(C==E.TAB){E.stopEvent();B.completeEdit();if(A){G=D.walkCells(B.row,B.col-1,-1,this.acceptsNav,this)}else{G=D.walkCells(B.row,B.col+1,1,this.acceptsNav,this)}}else{if(C==E.ENTER){E.stopEvent();B.completeEdit();if(this.moveEditorOnEnter!==false){if(A){G=D.walkCells(B.row-1,B.col,-1,this.acceptsNav,this)}else{G=D.walkCells(B.row+1,B.col,1,this.acceptsNav,this)}}}else{if(C==E.ESC){B.cancelEdit()}}}if(G){D.startEditing(G[0],G[1])}}}); |
Ext.grid.CellSelectionModel=function(A){Ext.apply(this,A);this.selection=null;this.addEvents("beforecellselect","cellselect","selectionchange");Ext.grid.CellSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.CellSelectionModel,Ext.grid.AbstractSelectionModel,{initEvents:function(){this.grid.on("cellmousedown",this.handleMouseDown,this);this.grid.getGridEl().on(Ext.isIE?"keydown":"keypress",this.handleKeyDown,this);var A=this.grid.view;A.on("refresh",this.onViewChange,this);A.on("rowupdated",this.onRowUpdated,this);A.on("beforerowremoved",this.clearSelections,this);A.on("beforerowsinserted",this.clearSelections,this);if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this)}},beforeEdit:function(A){this.select(A.row,A.column,false,true,A.record)},onRowUpdated:function(A,B,C){if(this.selection&&this.selection.record==C){A.onCellSelect(B,this.selection.cell[1])}},onViewChange:function(){this.clearSelections(true)},getSelectedCell:function(){return this.selection?this.selection.cell:null},clearSelections:function(B){var A=this.selection;if(A){if(B!==true){this.grid.view.onCellDeselect(A.cell[0],A.cell[1])}this.selection=null;this.fireEvent("selectionchange",this,null)}},hasSelection:function(){return this.selection?true:false},handleMouseDown:function(B,D,A,C){if(C.button!==0||this.isLocked()){return }this.select(D,A)},select:function(F,C,B,E,D){if(this.fireEvent("beforecellselect",this,F,C)!==false){this.clearSelections();D=D||this.grid.store.getAt(F);this.selection={record:D,cell:[F,C]};if(!B){var A=this.grid.getView();A.onCellSelect(F,C);if(E!==true){A.focusCell(F,C)}}this.fireEvent("cellselect",this,F,C);this.fireEvent("selectionchange",this,this.selection)}},isSelectable:function(C,B,A){return !A.isHidden(B)},handleKeyDown:function(F){if(!F.isNavKeyPress()){return }var E=this.grid,J=this.selection;if(!J){F.stopEvent();var I=E.walkCells(0,0,1,this.isSelectable,this);if(I){this.select(I[0],I[1])}return }var B=this;var H=function(M,K,L){return E.walkCells(M,K,L,B.isSelectable,B)};var C=F.getKey(),A=J.cell[0],G=J.cell[1];var D;switch(C){case F.TAB:if(F.shiftKey){D=H(A,G-1,-1)}else{D=H(A,G+1,1)}break;case F.DOWN:D=H(A+1,G,1);break;case F.UP:D=H(A-1,G,-1);break;case F.RIGHT:D=H(A,G+1,1);break;case F.LEFT:D=H(A,G-1,-1);break;case F.ENTER:if(E.isEditor&&!E.editing){E.startEditing(A,G);F.stopEvent();return }break}if(D){this.select(D[0],D[1]);F.stopEvent()}},acceptsNav:function(C,B,A){return !A.isHidden(B)&&A.isCellEditable(B,C)},onEditorKey:function(E,D){var B=D.getKey(),F,C=this.grid,A=C.activeEditor;if(B==D.TAB){if(D.shiftKey){F=C.walkCells(A.row,A.col-1,-1,this.acceptsNav,this)}else{F=C.walkCells(A.row,A.col+1,1,this.acceptsNav,this)}D.stopEvent()}else{if(B==D.ENTER){A.completeEdit();D.stopEvent()}else{if(B==D.ESC){D.stopEvent();A.cancelEdit()}}}if(F){C.startEditing(F[0],F[1])}}}); |
Ext.grid.EditorGridPanel=Ext.extend(Ext.grid.GridPanel,{clicksToEdit:2,isEditor:true,detectEdit:false,autoEncode:false,trackMouseOver:false,initComponent:function(){Ext.grid.EditorGridPanel.superclass.initComponent.call(this);if(!this.selModel){this.selModel=new Ext.grid.CellSelectionModel()}this.activeEditor=null;this.addEvents("beforeedit","afteredit","validateedit")},initEvents:function(){Ext.grid.EditorGridPanel.superclass.initEvents.call(this);this.on("bodyscroll",this.stopEditing,this,[true]);if(this.clicksToEdit==1){this.on("cellclick",this.onCellDblClick,this)}else{if(this.clicksToEdit=="auto"&&this.view.mainBody){this.view.mainBody.on("mousedown",this.onAutoEditClick,this)}this.on("celldblclick",this.onCellDblClick,this)}this.getGridEl().addClass("xedit-grid")},onCellDblClick:function(B,C,A){this.startEditing(C,A)},onAutoEditClick:function(C,B){if(C.button!==0){return }var E=this.view.findRowIndex(B);var A=this.view.findCellIndex(B);if(E!==false&&A!==false){this.stopEditing();if(this.selModel.getSelectedCell){var D=this.selModel.getSelectedCell();if(D&&D.cell[0]===E&&D.cell[1]===A){this.startEditing(E,A)}}else{if(this.selModel.isSelected(E)){this.startEditing(E,A)}}}},onEditComplete:function(B,D,A){this.editing=false;this.activeEditor=null;B.un("specialkey",this.selModel.onEditorKey,this.selModel);var C=B.record;var F=this.colModel.getDataIndex(B.col);D=this.postEditValue(D,A,C,F);if(String(D)!==String(A)){var E={grid:this,record:C,field:F,originalValue:A,value:D,row:B.row,column:B.col,cancel:false};if(this.fireEvent("validateedit",E)!==false&&!E.cancel){C.set(F,E.value);delete E.cancel;this.fireEvent("afteredit",E)}}this.view.focusCell(B.row,B.col)},startEditing:function(F,B){this.stopEditing();if(this.colModel.isCellEditable(B,F)){this.view.ensureVisible(F,B,true);var C=this.store.getAt(F);var E=this.colModel.getDataIndex(B);var D={grid:this,record:C,field:E,value:C.data[E],row:F,column:B,cancel:false};if(this.fireEvent("beforeedit",D)!==false&&!D.cancel){this.editing=true;var A=this.colModel.getCellEditor(B,F);if(!A.rendered){A.render(this.view.getEditorParent(A))}(function(){A.row=F;A.col=B;A.record=C;A.on("complete",this.onEditComplete,this,{single:true});A.on("specialkey",this.selModel.onEditorKey,this.selModel);this.activeEditor=A;var G=this.preEditValue(C,E);A.startEdit(this.view.getCell(F,B),G)}).defer(50,this)}}},preEditValue:function(A,B){return this.autoEncode&&typeof value=="string"?Ext.util.Format.htmlDecode(A.data[B]):A.data[B]},postEditValue:function(C,A,B,D){return this.autoEncode&&typeof C=="string"?Ext.util.Format.htmlEncode(C):C},stopEditing:function(A){if(this.activeEditor){this.activeEditor[A===true?"cancelEdit":"completeEdit"]()}this.activeEditor=null}});Ext.reg("editorgrid",Ext.grid.EditorGridPanel); |
Ext.grid.GridEditor=function(B,A){Ext.grid.GridEditor.superclass.constructor.call(this,B,A);B.monitorTab=false};Ext.extend(Ext.grid.GridEditor,Ext.Editor,{alignment:"tl-tl",autoSize:"width",hideEl:false,cls:"x-small-editor x-grid-editor",shim:false,shadow:false}); |
Ext.grid.PropertyRecord=Ext.data.Record.create([{name:"name",type:"string"},"value"]);Ext.grid.PropertyStore=function(A,B){this.grid=A;this.store=new Ext.data.Store({recordType:Ext.grid.PropertyRecord});this.store.on("update",this.onUpdate,this);if(B){this.setSource(B)}Ext.grid.PropertyStore.superclass.constructor.call(this)};Ext.extend(Ext.grid.PropertyStore,Ext.util.Observable,{setSource:function(C){this.source=C;this.store.removeAll();var B=[];for(var A in C){if(this.isEditableValue(C[A])){B.push(new Ext.grid.PropertyRecord({name:A,value:C[A]},A))}}this.store.loadRecords({records:B},{},true)},onUpdate:function(E,A,D){if(D==Ext.data.Record.EDIT){var B=A.data["value"];var C=A.modified["value"];if(this.grid.fireEvent("beforepropertychange",this.source,A.id,B,C)!==false){this.source[A.id]=B;A.commit();this.grid.fireEvent("propertychange",this.source,A.id,B,C)}else{A.reject()}}},getProperty:function(A){return this.store.getAt(A)},isEditableValue:function(A){if(Ext.isDate(A)){return true}else{if(typeof A=="object"||typeof A=="function"){return false}}return true},setValue:function(B,A){this.source[B]=A;this.store.getById(B).set("value",A)},getSource:function(){return this.source}});Ext.grid.PropertyColumnModel=function(C,B){this.grid=C;var D=Ext.grid;D.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:true,dataIndex:"name",id:"name",menuDisabled:true},{header:this.valueText,width:50,resizable:false,dataIndex:"value",id:"value",menuDisabled:true}]);this.store=B;this.bselect=Ext.DomHelper.append(document.body,{tag:"select",cls:"x-grid-editor x-hide-display",children:[{tag:"option",value:"true",html:"true"},{tag:"option",value:"false",html:"false"}]});var E=Ext.form;var A=new E.Field({el:this.bselect,bselect:this.bselect,autoShow:true,getValue:function(){return this.bselect.value=="true"}});this.editors={"date":new D.GridEditor(new E.DateField({selectOnFocus:true})),"string":new D.GridEditor(new E.TextField({selectOnFocus:true})),"number":new D.GridEditor(new E.NumberField({selectOnFocus:true,style:"text-align:left;"})),"boolean":new D.GridEditor(A)};this.renderCellDelegate=this.renderCell.createDelegate(this);this.renderPropDelegate=this.renderProp.createDelegate(this)};Ext.extend(Ext.grid.PropertyColumnModel,Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",renderDate:function(A){return A.dateFormat(this.dateFormat)},renderBool:function(A){return A?"true":"false"},isCellEditable:function(A,B){return A==1},getRenderer:function(A){return A==1?this.renderCellDelegate:this.renderPropDelegate},renderProp:function(A){return this.getPropertyName(A)},renderCell:function(A){var B=A;if(Ext.isDate(A)){B=this.renderDate(A)}else{if(typeof A=="boolean"){B=this.renderBool(A)}}return Ext.util.Format.htmlEncode(B)},getPropertyName:function(B){var A=this.grid.propertyNames;return A&&A[B]?A[B]:B},getCellEditor:function(A,E){var B=this.store.getProperty(E);var D=B.data["name"],C=B.data["value"];if(this.grid.customEditors[D]){return this.grid.customEditors[D]}if(Ext.isDate(C)){return this.editors["date"]}else{if(typeof C=="number"){return this.editors["number"]}else{if(typeof C=="boolean"){return this.editors["boolean"]}else{return this.editors["string"]}}}}});Ext.grid.PropertyGrid=Ext.extend(Ext.grid.EditorGridPanel,{enableColumnMove:false,stripeRows:false,trackMouseOver:false,clicksToEdit:1,enableHdMenu:false,viewConfig:{forceFit:true},initComponent:function(){this.customEditors=this.customEditors||{};this.lastEditRow=null;var B=new Ext.grid.PropertyStore(this);this.propStore=B;var A=new Ext.grid.PropertyColumnModel(this,B);B.store.sort("name","ASC");this.addEvents("beforepropertychange","propertychange");this.cm=A;this.ds=B.store;Ext.grid.PropertyGrid.superclass.initComponent.call(this);this.selModel.on("beforecellselect",function(E,D,C){if(C===0){this.startEditing.defer(200,this,[D,1]);return false}},this)},onRender:function(){Ext.grid.PropertyGrid.superclass.onRender.apply(this,arguments);this.getGridEl().addClass("x-props-grid")},afterRender:function(){Ext.grid.PropertyGrid.superclass.afterRender.apply(this,arguments);if(this.source){this.setSource(this.source)}},setSource:function(A){this.propStore.setSource(A)},getSource:function(){return this.propStore.getSource()}}); |
Ext.grid.RowNumberer=function(A){Ext.apply(this,A);if(this.rowspan){this.renderer=this.renderer.createDelegate(this)}};Ext.grid.RowNumberer.prototype={header:"",width:23,sortable:false,fixed:true,menuDisabled:true,dataIndex:"",id:"numberer",rowspan:undefined,renderer:function(B,C,A,D){if(this.rowspan){C.cellAttr="rowspan=\""+this.rowspan+"\""}return D+1}}; |
Ext.grid.CheckboxSelectionModel=Ext.extend(Ext.grid.RowSelectionModel,{header:"<div class=\"x-grid3-hd-checker\"> </div>",width:20,sortable:false,menuDisabled:true,fixed:true,dataIndex:"",id:"checker",initEvents:function(){Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this);this.grid.on("render",function(){var A=this.grid.getView();A.mainBody.on("mousedown",this.onMouseDown,this);Ext.fly(A.innerHd).on("mousedown",this.onHdMouseDown,this)},this)},onMouseDown:function(C,B){if(C.button===0&&B.className=="x-grid3-row-checker"){C.stopEvent();var D=C.getTarget(".x-grid3-row");if(D){var A=D.rowIndex;if(this.isSelected(A)){this.deselectRow(A)}else{this.selectRow(A,true)}}}},onHdMouseDown:function(C,A){if(A.className=="x-grid3-hd-checker"){C.stopEvent();var B=Ext.fly(A.parentNode);var D=B.hasClass("x-grid3-hd-checker-on");if(D){B.removeClass("x-grid3-hd-checker-on");this.clearSelections()}else{B.addClass("x-grid3-hd-checker-on");this.selectAll()}}},renderer:function(B,C,A){return"<div class=\"x-grid3-row-checker\"> </div>"}}); |
Ext.LoadMask=function(C,B){this.el=Ext.get(C);Ext.apply(this,B);if(this.store){this.store.on("beforeload",this.onBeforeLoad,this);this.store.on("load",this.onLoad,this);this.store.on("loadexception",this.onLoad,this);this.removeMask=Ext.value(this.removeMask,false)}else{var A=this.el.getUpdater();A.showLoadIndicator=false;A.on("beforeupdate",this.onBeforeLoad,this);A.on("update",this.onLoad,this);A.on("failure",this.onLoad,this);this.removeMask=Ext.value(this.removeMask,true)}};Ext.LoadMask.prototype={msg:"Loading...",msgCls:"x-mask-loading",disabled:false,disable:function(){this.disabled=true},enable:function(){this.disabled=false},onLoad:function(){this.el.unmask(this.removeMask)},onBeforeLoad:function(){if(!this.disabled){this.el.mask(this.msg,this.msgCls)}},show:function(){this.onBeforeLoad()},hide:function(){this.onLoad()},destroy:function(){if(this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("loadexception",this.onLoad,this)}else{var A=this.el.getUpdater();A.un("beforeupdate",this.onBeforeLoad,this);A.un("update",this.onLoad,this);A.un("failure",this.onLoad,this)}}}; |
Ext.ProgressBar=Ext.extend(Ext.BoxComponent,{baseCls:"x-progress",waitTimer:null,initComponent:function(){Ext.ProgressBar.superclass.initComponent.call(this);this.addEvents("update")},onRender:function(D,A){Ext.ProgressBar.superclass.onRender.call(this,D,A);var C=new Ext.Template("<div class=\"{cls}-wrap\">","<div class=\"{cls}-inner\">","<div class=\"{cls}-bar\">","<div class=\"{cls}-text\">","<div> </div>","</div>","</div>","<div class=\"{cls}-text {cls}-text-back\">","<div> </div>","</div>","</div>","</div>");if(A){this.el=C.insertBefore(A,{cls:this.baseCls},true)}else{this.el=C.append(D,{cls:this.baseCls},true)}if(this.id){this.el.dom.id=this.id}var B=this.el.dom.firstChild;this.progressBar=Ext.get(B.firstChild);if(this.textEl){this.textEl=Ext.get(this.textEl);delete this.textTopEl}else{this.textTopEl=Ext.get(this.progressBar.dom.firstChild);var E=Ext.get(B.childNodes[1]);this.textTopEl.setStyle("z-index",99).addClass("x-hidden");this.textEl=new Ext.CompositeElement([this.textTopEl.dom.firstChild,E.dom.firstChild]);this.textEl.setWidth(B.offsetWidth)}if(this.value){this.updateProgress(this.value,this.text)}else{this.updateText(this.text)}this.setSize(this.width||"auto","auto");this.progressBar.setHeight(B.offsetHeight)},updateProgress:function(B,C){this.value=B||0;if(C){this.updateText(C)}var A=Math.floor(B*this.el.dom.firstChild.offsetWidth);this.progressBar.setWidth(A);if(this.textTopEl){this.textTopEl.removeClass("x-hidden").setWidth(A)}this.fireEvent("update",this,B,C);return this},wait:function(B){if(!this.waitTimer){var A=this;B=B||{};this.waitTimer=Ext.TaskMgr.start({run:function(C){var D=B.increment||10;this.updateProgress(((((C+D)%D)+1)*(100/D))*0.01)},interval:B.interval||1000,duration:B.duration,onStop:function(){if(B.fn){B.fn.apply(B.scope||this)}this.reset()},scope:A})}return this},isWaiting:function(){return this.waitTimer!=null},updateText:function(A){this.text=A||" ";this.textEl.update(this.text);return this},setSize:function(A,C){Ext.ProgressBar.superclass.setSize.call(this,A,C);if(this.textTopEl){var B=this.el.dom.firstChild;this.textEl.setSize(B.offsetWidth,B.offsetHeight)}return this},reset:function(A){this.updateProgress(0);if(this.textTopEl){this.textTopEl.addClass("x-hidden")}if(this.waitTimer){this.waitTimer.onStop=null;Ext.TaskMgr.stop(this.waitTimer);this.waitTimer=null}if(A===true){this.hide()}return this}});Ext.reg("progress",Ext.ProgressBar); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/ext-core.js |
---|
New file |
0,0 → 1,19 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
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)}}}(); |
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||"")}; |
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; |
Ext.util.Observable=function(){if(this.listeners){this.on(this.listeners);delete this.listeners}};Ext.util.Observable.prototype={fireEvent:function(){if(this.eventsSuspended!==true){var A=this.events[arguments[0].toLowerCase()];if(typeof A=="object"){return A.fire.apply(A,Array.prototype.slice.call(arguments,1))}}return true},filterOptRe:/^(?:scope|delay|buffer|single)$/,addListener:function(A,C,B,F){if(typeof A=="object"){F=A;for(var E in F){if(this.filterOptRe.test(E)){continue}if(typeof F[E]=="function"){this.addListener(E,F[E],F.scope,F)}else{this.addListener(E,F[E].fn,F[E].scope,F[E])}}return }F=(!F||typeof F=="boolean")?{}:F;A=A.toLowerCase();var D=this.events[A]||true;if(typeof D=="boolean"){D=new Ext.util.Event(this,A);this.events[A]=D}D.addListener(C,B,F)},removeListener:function(A,C,B){var D=this.events[A.toLowerCase()];if(typeof D=="object"){D.removeListener(C,B)}},purgeListeners:function(){for(var A in this.events){if(typeof this.events[A]=="object"){this.events[A].clearListeners()}}},relayEvents:function(F,D){var E=function(G){return function(){return this.fireEvent.apply(this,Ext.combine(G,Array.prototype.slice.call(arguments,0)))}};for(var C=0,A=D.length;C<A;C++){var B=D[C];if(!this.events[B]){this.events[B]=true}F.on(B,E(B),this)}},addEvents:function(D){if(!this.events){this.events={}}if(typeof D=="string"){for(var C=0,A=arguments,B;B=A[C];C++){if(!this.events[A[C]]){D[A[C]]=true}}}else{Ext.applyIf(this.events,D)}},hasListener:function(A){var B=this.events[A];return typeof B=="object"&&B.listeners.length>0},suspendEvents:function(){this.eventsSuspended=true},resumeEvents:function(){this.eventsSuspended=false},getMethodEvent:function(G){if(!this.methodEvents){this.methodEvents={}}var F=this.methodEvents[G];if(!F){F={};this.methodEvents[G]=F;F.originalFn=this[G];F.methodName=G;F.before=[];F.after=[];var C,B,D;var E=this;var A=function(J,I,H){if((B=J.apply(I||E,H))!==undefined){if(typeof B==="object"){if(B.returnValue!==undefined){C=B.returnValue}else{C=B}if(B.cancel===true){D=true}}else{if(B===false){D=true}else{C=B}}}};this[G]=function(){C=B=undefined;D=false;var I=Array.prototype.slice.call(arguments,0);for(var J=0,H=F.before.length;J<H;J++){A(F.before[J].fn,F.before[J].scope,I);if(D){return C}}if((B=F.originalFn.apply(E,I))!==undefined){C=B}for(var J=0,H=F.after.length;J<H;J++){A(F.after[J].fn,F.after[J].scope,I);if(D){return C}}return C}}return F},beforeMethod:function(D,B,A){var C=this.getMethodEvent(D);C.before.push({fn:B,scope:A})},afterMethod:function(D,B,A){var C=this.getMethodEvent(D);C.after.push({fn:B,scope:A})},removeMethodListener:function(F,D,C){var E=this.getMethodEvent(F);for(var B=0,A=E.before.length;B<A;B++){if(E.before[B].fn==D&&E.before[B].scope==C){E.before.splice(B,1);return }}for(var B=0,A=E.after.length;B<A;B++){if(E.after[B].fn==D&&E.after[B].scope==C){E.after.splice(B,1);return }}}};Ext.util.Observable.prototype.on=Ext.util.Observable.prototype.addListener;Ext.util.Observable.prototype.un=Ext.util.Observable.prototype.removeListener;Ext.util.Observable.capture=function(C,B,A){C.fireEvent=C.fireEvent.createInterceptor(B,A)};Ext.util.Observable.releaseCapture=function(A){A.fireEvent=Ext.util.Observable.prototype.fireEvent};(function(){var B=function(F,G,E){var D=new Ext.util.DelayedTask();return function(){D.delay(G.buffer,F,E,Array.prototype.slice.call(arguments,0))}};var C=function(F,G,E,D){return function(){G.removeListener(E,D);return F.apply(D,arguments)}};var A=function(E,F,D){return function(){var G=Array.prototype.slice.call(arguments,0);setTimeout(function(){E.apply(D,G)},F.delay||10)}};Ext.util.Event=function(E,D){this.name=D;this.obj=E;this.listeners=[]};Ext.util.Event.prototype={addListener:function(G,F,E){F=F||this.obj;if(!this.isListening(G,F)){var D=this.createListener(G,F,E);if(!this.firing){this.listeners.push(D)}else{this.listeners=this.listeners.slice(0);this.listeners.push(D)}}},createListener:function(G,F,H){H=H||{};F=F||this.obj;var D={fn:G,scope:F,options:H};var E=G;if(H.delay){E=A(E,H,F)}if(H.single){E=C(E,this,G,F)}if(H.buffer){E=B(E,H,F)}D.fireFn=E;return D},findListener:function(I,H){H=H||this.obj;var F=this.listeners;for(var G=0,D=F.length;G<D;G++){var E=F[G];if(E.fn==I&&E.scope==H){return G}}return -1},isListening:function(E,D){return this.findListener(E,D)!=-1},removeListener:function(F,E){var D;if((D=this.findListener(F,E))!=-1){if(!this.firing){this.listeners.splice(D,1)}else{this.listeners=this.listeners.slice(0);this.listeners.splice(D,1)}return true}return false},clearListeners:function(){this.listeners=[]},fire:function(){var F=this.listeners,I,D=F.length;if(D>0){this.firing=true;var G=Array.prototype.slice.call(arguments,0);for(var H=0;H<D;H++){var E=F[H];if(E.fireFn.apply(E.scope||this.obj||window,arguments)===false){this.firing=false;return false}}this.firing=false}return true}}})(); |
Ext.EventManager=function(){var T,M,I=false;var K,S,C,O;var L=Ext.lib.Event;var N=Ext.lib.Dom;var B=function(){if(!I){I=true;Ext.isReady=true;if(M){clearInterval(M)}if(Ext.isGecko||Ext.isOpera){document.removeEventListener("DOMContentLoaded",B,false)}if(Ext.isIE){var D=document.getElementById("ie-deferred-loader");if(D){D.onreadystatechange=null;D.parentNode.removeChild(D)}}if(T){T.fire();T.clearListeners()}}};var A=function(){T=new Ext.util.Event();if(Ext.isGecko||Ext.isOpera){document.addEventListener("DOMContentLoaded",B,false)}else{if(Ext.isIE){document.write("<s"+"cript id=\"ie-deferred-loader\" defer=\"defer\" src=\"/"+"/:\"></s"+"cript>");var D=document.getElementById("ie-deferred-loader");D.onreadystatechange=function(){if(this.readyState=="complete"){B()}}}else{if(Ext.isSafari){M=setInterval(function(){var E=document.readyState;if(E=="complete"){B()}},10)}}}L.on(window,"load",B)};var R=function(E,U){var D=new Ext.util.DelayedTask(E);return function(V){V=new Ext.EventObjectImpl(V);D.delay(U.buffer,E,null,[V])}};var P=function(V,U,D,E){return function(W){Ext.EventManager.removeListener(U,D,E);V(W)}};var F=function(D,E){return function(U){U=new Ext.EventObjectImpl(U);setTimeout(function(){D(U)},E.delay||10)}};var J=function(U,E,D,Y,X){var Z=(!D||typeof D=="boolean")?{}:D;Y=Y||Z.fn;X=X||Z.scope;var W=Ext.getDom(U);if(!W){throw"Error listening for \""+E+"\". Element \""+U+"\" doesn't exist."}var V=function(b){b=Ext.EventObject.setEvent(b);var a;if(Z.delegate){a=b.getTarget(Z.delegate,W);if(!a){return }}else{a=b.target}if(Z.stopEvent===true){b.stopEvent()}if(Z.preventDefault===true){b.preventDefault()}if(Z.stopPropagation===true){b.stopPropagation()}if(Z.normalized===false){b=b.browserEvent}Y.call(X||W,b,a,Z)};if(Z.delay){V=F(V,Z)}if(Z.single){V=P(V,W,E,Y)}if(Z.buffer){V=R(V,Z)}Y._handlers=Y._handlers||[];Y._handlers.push([Ext.id(W),E,V]);L.on(W,E,V);if(E=="mousewheel"&&W.addEventListener){W.addEventListener("DOMMouseScroll",V,false);L.on(window,"unload",function(){W.removeEventListener("DOMMouseScroll",V,false)})}if(E=="mousedown"&&W==document){Ext.EventManager.stoppedMouseDownEvent.addListener(V)}return V};var G=function(E,U,Z){var D=Ext.id(E),a=Z._handlers,X=Z;if(a){for(var V=0,Y=a.length;V<Y;V++){var W=a[V];if(W[0]==D&&W[1]==U){X=W[2];a.splice(V,1);break}}}L.un(E,U,X);E=Ext.getDom(E);if(U=="mousewheel"&&E.addEventListener){E.removeEventListener("DOMMouseScroll",X,false)}if(U=="mousedown"&&E==document){Ext.EventManager.stoppedMouseDownEvent.removeListener(X)}};var H=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;var Q={addListener:function(U,D,W,V,E){if(typeof D=="object"){var Y=D;for(var X in Y){if(H.test(X)){continue}if(typeof Y[X]=="function"){J(U,X,Y,Y[X],Y.scope)}else{J(U,X,Y[X])}}return }return J(U,D,E,W,V)},removeListener:function(E,D,U){return G(E,D,U)},onDocumentReady:function(U,E,D){if(I){T.addListener(U,E,D);T.fire();T.clearListeners();return }if(!T){A()}T.addListener(U,E,D)},onWindowResize:function(U,E,D){if(!K){K=new Ext.util.Event();S=new Ext.util.DelayedTask(function(){K.fire(N.getViewWidth(),N.getViewHeight())});L.on(window,"resize",this.fireWindowResize,this)}K.addListener(U,E,D)},fireWindowResize:function(){if(K){if((Ext.isIE||Ext.isAir)&&S){S.delay(50)}else{K.fire(N.getViewWidth(),N.getViewHeight())}}},onTextResize:function(V,U,D){if(!C){C=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);O=E.dom.offsetHeight;setInterval(function(){if(E.dom.offsetHeight!=O){C.fire(O,O=E.dom.offsetHeight)}},this.textResizeInterval)}C.addListener(V,U,D)},removeResizeListener:function(E,D){if(K){K.removeListener(E,D)}},fireResize:function(){if(K){K.fire(N.getViewWidth(),N.getViewHeight())}},ieDeferSrc:false,textResizeInterval:50};Q.on=Q.addListener;Q.un=Q.removeListener;Q.stoppedMouseDownEvent=new Ext.util.Event();return Q}();Ext.onReady=Ext.EventManager.onDocumentReady;Ext.onReady(function(){var B=Ext.getBody();if(!B){return }var A=[Ext.isIE?"ext-ie "+(Ext.isIE6?"ext-ie6":"ext-ie7"):Ext.isGecko?"ext-gecko":Ext.isOpera?"ext-opera":Ext.isSafari?"ext-safari":""];if(Ext.isMac){A.push("ext-mac")}if(Ext.isLinux){A.push("ext-linux")}if(Ext.isBorderBox){A.push("ext-border-box")}if(Ext.isStrict){var C=B.dom.parentNode;if(C){C.className+=" ext-strict"}}B.addClass(A.join(" "))});Ext.EventObject=function(){var B=Ext.lib.Event;var A={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,RETURN:13,ENTER:13,SHIFT:16,CONTROL:17,ESC:27,SPACE:32,PAGEUP:33,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46,F5:116,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,G,D){var F=Ext.get(this.target);return E?F.findParent(E,G,D):(D?F: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()}(); |
(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,unique){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){Ext.EventManager.removeListener(this.dom,eventName,fn);return this},removeAllListeners:function(){E.purgeElement(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.isGecko){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="no";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,preventFlicker){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){E.purgeElement(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})})(); |
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(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); |
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; |
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,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 I=D.getAttribute("enctype");if(E.isUpload||(I&&I.toLowerCase()=="multipart/form-data")){return this.doFormUpload(E,C,B)}var H=Ext.lib.Ajax.serializeForm(D);C=C?(C+"&"+H):H}var J=E.headers;if(this.defaultHeaders){J=Ext.apply(J||{},this.defaultHeaders);if(!E.headers){E.headers=J}}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?"POST":"GET");if(A=="GET"&&(this.disableCaching&&E.disableCaching!==false)||E.disableCaching===true){B+=(B.indexOf("?")!=-1?"&":"?")+"_dc="+(new Date().getTime())}if(typeof E.autoAbort=="boolean"){if(E.autoAbort){this.abort()}}else{if(this.autoAbort!==false){this.abort()}}if((A=="GET"&&C)||E.xmlData||E.jsonData){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)}}); |
Ext.Updater=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.autoRefreshProcId=null;this.refreshDelegate=this.refresh.createDelegate(this);this.updateDelegate=this.update.createDelegate(this);this.formUpdateDelegate=this.formUpdate.createDelegate(this);if(!this.renderer){this.renderer=new Ext.Updater.BasicRenderer()}Ext.Updater.superclass.constructor.call(this)};Ext.extend(Ext.Updater,Ext.util.Observable,{getEl:function(){return this.el},update:function(B,F,H,D){if(this.fireEvent("beforeupdate",this.el,B,F)!==false){var G=this.method,A,C;if(typeof B=="object"){A=B;B=A.url;F=F||A.params;H=H||A.callback;D=D||A.discardUrl;C=A.scope;if(typeof A.method!="undefined"){G=A.method}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)}G=G||(F?"POST":"GET");if(G=="GET"){B=this.prepareUrl(B)}var E=Ext.apply(A||{},{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),argument:{"options":A,"url":B,"form":null,"callback":H,"scope":C||window,"params":F}});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)}},prepareUrl:function(B){if(this.disableCaching){var A="_dc="+(new Date().getTime());if(B.indexOf("?")!==-1){B+="&"+A}else{B+="?"+A}}return B},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.update=Ext.Updater.updateElement;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; |
Ext.util.DelayedTask=function(E,D,A){var G=null,F,B;var C=function(){var H=new Date().getTime();if(H-B>=F){clearInterval(G);G=null;E.apply(D,A||[])}};this.delay=function(I,K,J,H){if(G&&I!=F){this.cancel()}F=I;B=new Date().getTime();E=K||E;D=J||D;A=H||A;if(!G){G=setInterval(C,F)}};this.cancel=function(){if(G){clearInterval(G);G=null}}}; |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/ext-all-debug.js |
---|
New file |
0,0 → 1,33799 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
Ext.DomHelper = function(){ |
var tempTableEl = null; |
var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i; |
var tableRe = /^table|tbody|tr|td$/i; |
var createHtml = function(o){ |
if(typeof o == 'string'){ |
return o; |
} |
var b = ""; |
if (Ext.isArray(o)) { |
for (var i = 0, l = o.length; i < l; i++) { |
b += createHtml(o[i]); |
} |
return b; |
} |
if(!o.tag){ |
o.tag = "div"; |
} |
b += "<" + o.tag; |
for(var attr in o){ |
if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || typeof o[attr] == "function") continue; |
if(attr == "style"){ |
var s = o["style"]; |
if(typeof s == "function"){ |
s = s.call(); |
} |
if(typeof s == "string"){ |
b += ' style="' + s + '"'; |
}else if(typeof s == "object"){ |
b += ' style="'; |
for(var key in s){ |
if(typeof s[key] != "function"){ |
b += key + ":" + s[key] + ";"; |
} |
} |
b += '"'; |
} |
}else{ |
if(attr == "cls"){ |
b += ' class="' + o["cls"] + '"'; |
}else if(attr == "htmlFor"){ |
b += ' for="' + o["htmlFor"] + '"'; |
}else{ |
b += " " + attr + '="' + o[attr] + '"'; |
} |
} |
} |
if(emptyTags.test(o.tag)){ |
b += "/>"; |
}else{ |
b += ">"; |
var cn = o.children || o.cn; |
if(cn){ |
b += createHtml(cn); |
} else if(o.html){ |
b += o.html; |
} |
b += "</" + o.tag + ">"; |
} |
return b; |
}; |
var createDom = function(o, parentNode){ |
var el; |
if (Ext.isArray(o)) { |
el = document.createDocumentFragment(); |
for(var i = 0, l = o.length; i < l; i++) { |
createDom(o[i], el); |
} |
} else if (typeof o == "string)") { |
el = document.createTextNode(o); |
} else { |
el = document.createElement(o.tag||'div'); |
var useSet = !!el.setAttribute; |
for(var attr in o){ |
if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || attr == "style" || typeof o[attr] == "function") continue; |
if(attr=="cls"){ |
el.className = o["cls"]; |
}else{ |
if(useSet) el.setAttribute(attr, o[attr]); |
else el[attr] = o[attr]; |
} |
} |
Ext.DomHelper.applyStyles(el, o.style); |
var cn = o.children || o.cn; |
if(cn){ |
createDom(cn, el); |
} else if(o.html){ |
el.innerHTML = o.html; |
} |
} |
if(parentNode){ |
parentNode.appendChild(el); |
} |
return el; |
}; |
var ieTable = function(depth, s, h, e){ |
tempTableEl.innerHTML = [s, h, e].join(''); |
var i = -1, el = tempTableEl; |
while(++i < depth){ |
el = el.firstChild; |
} |
return el; |
}; |
var ts = '<table>', |
te = '</table>', |
tbs = ts+'<tbody>', |
tbe = '</tbody>'+te, |
trs = tbs + '<tr>', |
tre = '</tr>'+tbe; |
var insertIntoTable = function(tag, where, el, html){ |
if(!tempTableEl){ |
tempTableEl = document.createElement('div'); |
} |
var node; |
var before = null; |
if(tag == 'td'){ |
if(where == 'afterbegin' || where == 'beforeend'){ |
return; |
} |
if(where == 'beforebegin'){ |
before = el; |
el = el.parentNode; |
} else{ |
before = el.nextSibling; |
el = el.parentNode; |
} |
node = ieTable(4, trs, html, tre); |
} |
else if(tag == 'tr'){ |
if(where == 'beforebegin'){ |
before = el; |
el = el.parentNode; |
node = ieTable(3, tbs, html, tbe); |
} else if(where == 'afterend'){ |
before = el.nextSibling; |
el = el.parentNode; |
node = ieTable(3, tbs, html, tbe); |
} else{ |
if(where == 'afterbegin'){ |
before = el.firstChild; |
} |
node = ieTable(4, trs, html, tre); |
} |
} else if(tag == 'tbody'){ |
if(where == 'beforebegin'){ |
before = el; |
el = el.parentNode; |
node = ieTable(2, ts, html, te); |
} else if(where == 'afterend'){ |
before = el.nextSibling; |
el = el.parentNode; |
node = ieTable(2, ts, html, te); |
} else{ |
if(where == 'afterbegin'){ |
before = el.firstChild; |
} |
node = ieTable(3, tbs, html, tbe); |
} |
} else{ |
if(where == 'beforebegin' || where == 'afterend'){ |
return; |
} |
if(where == 'afterbegin'){ |
before = el.firstChild; |
} |
node = ieTable(2, ts, html, te); |
} |
el.insertBefore(node, before); |
return node; |
}; |
return { |
useDom : false, |
markup : function(o){ |
return createHtml(o); |
}, |
applyStyles : function(el, styles){ |
if(styles){ |
el = Ext.fly(el); |
if(typeof styles == "string"){ |
var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi; |
var matches; |
while ((matches = re.exec(styles)) != null){ |
el.setStyle(matches[1], matches[2]); |
} |
}else if (typeof styles == "object"){ |
for (var style in styles){ |
el.setStyle(style, styles[style]); |
} |
}else if (typeof styles == "function"){ |
Ext.DomHelper.applyStyles(el, styles.call()); |
} |
} |
}, |
insertHtml : function(where, el, html){ |
where = where.toLowerCase(); |
if(el.insertAdjacentHTML){ |
if(tableRe.test(el.tagName)){ |
var rs; |
if(rs = insertIntoTable(el.tagName.toLowerCase(), where, el, html)){ |
return rs; |
} |
} |
switch(where){ |
case "beforebegin": |
el.insertAdjacentHTML('BeforeBegin', html); |
return el.previousSibling; |
case "afterbegin": |
el.insertAdjacentHTML('AfterBegin', html); |
return el.firstChild; |
case "beforeend": |
el.insertAdjacentHTML('BeforeEnd', html); |
return el.lastChild; |
case "afterend": |
el.insertAdjacentHTML('AfterEnd', html); |
return el.nextSibling; |
} |
throw 'Illegal insertion point -> "' + where + '"'; |
} |
var range = el.ownerDocument.createRange(); |
var frag; |
switch(where){ |
case "beforebegin": |
range.setStartBefore(el); |
frag = range.createContextualFragment(html); |
el.parentNode.insertBefore(frag, el); |
return el.previousSibling; |
case "afterbegin": |
if(el.firstChild){ |
range.setStartBefore(el.firstChild); |
frag = range.createContextualFragment(html); |
el.insertBefore(frag, el.firstChild); |
return el.firstChild; |
}else{ |
el.innerHTML = html; |
return el.firstChild; |
} |
case "beforeend": |
if(el.lastChild){ |
range.setStartAfter(el.lastChild); |
frag = range.createContextualFragment(html); |
el.appendChild(frag); |
return el.lastChild; |
}else{ |
el.innerHTML = html; |
return el.lastChild; |
} |
case "afterend": |
range.setStartAfter(el); |
frag = range.createContextualFragment(html); |
el.parentNode.insertBefore(frag, el.nextSibling); |
return el.nextSibling; |
} |
throw 'Illegal insertion point -> "' + where + '"'; |
}, |
insertBefore : function(el, o, returnElement){ |
return this.doInsert(el, o, returnElement, "beforeBegin"); |
}, |
insertAfter : function(el, o, returnElement){ |
return this.doInsert(el, o, returnElement, "afterEnd", "nextSibling"); |
}, |
insertFirst : function(el, o, returnElement){ |
return this.doInsert(el, o, returnElement, "afterBegin", "firstChild"); |
}, |
doInsert : function(el, o, returnElement, pos, sibling){ |
el = Ext.getDom(el); |
var newNode; |
if(this.useDom){ |
newNode = createDom(o, null); |
(sibling === "firstChild" ? el : el.parentNode).insertBefore(newNode, sibling ? el[sibling] : el); |
}else{ |
var html = createHtml(o); |
newNode = this.insertHtml(pos, el, html); |
} |
return returnElement ? Ext.get(newNode, true) : newNode; |
}, |
append : function(el, o, returnElement){ |
el = Ext.getDom(el); |
var newNode; |
if(this.useDom){ |
newNode = createDom(o, null); |
el.appendChild(newNode); |
}else{ |
var html = createHtml(o); |
newNode = this.insertHtml("beforeEnd", el, html); |
} |
return returnElement ? Ext.get(newNode, true) : newNode; |
}, |
overwrite : function(el, o, returnElement){ |
el = Ext.getDom(el); |
el.innerHTML = createHtml(o); |
return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; |
}, |
createTemplate : function(o){ |
var html = createHtml(o); |
return new Ext.Template(html); |
} |
}; |
}(); |
Ext.Template = function(html){ |
var a = arguments; |
if(Ext.isArray(html)){ |
html = html.join(""); |
}else if(a.length > 1){ |
var buf = []; |
for(var i = 0, len = a.length; i < len; i++){ |
if(typeof a[i] == 'object'){ |
Ext.apply(this, a[i]); |
}else{ |
buf[buf.length] = a[i]; |
} |
} |
html = buf.join(''); |
} |
this.html = html; |
if(this.compiled){ |
this.compile(); |
} |
}; |
Ext.Template.prototype = { |
applyTemplate : function(values){ |
if(this.compiled){ |
return this.compiled(values); |
} |
var useF = this.disableFormats !== true; |
var fm = Ext.util.Format, tpl = this; |
var fn = function(m, name, format, args){ |
if(format && useF){ |
if(format.substr(0, 5) == "this."){ |
return tpl.call(format.substr(5), values[name], values); |
}else{ |
if(args){ |
var re = /^\s*['"](.*)["']\s*$/; |
args = args.split(','); |
for(var i = 0, len = args.length; i < len; i++){ |
args[i] = args[i].replace(re, "$1"); |
} |
args = [values[name]].concat(args); |
}else{ |
args = [values[name]]; |
} |
return fm[format].apply(fm, args); |
} |
}else{ |
return values[name] !== undefined ? values[name] : ""; |
} |
}; |
return this.html.replace(this.re, fn); |
}, |
set : function(html, compile){ |
this.html = html; |
this.compiled = null; |
if(compile){ |
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(fnName, value, allValues){ |
return this[fnName](value, allValues); |
}, |
insertFirst: function(el, values, returnElement){ |
return this.doInsert('afterBegin', el, values, returnElement); |
}, |
insertBefore: function(el, values, returnElement){ |
return this.doInsert('beforeBegin', el, values, returnElement); |
}, |
insertAfter : function(el, values, returnElement){ |
return this.doInsert('afterEnd', el, values, returnElement); |
}, |
append : function(el, values, returnElement){ |
return this.doInsert('beforeEnd', el, values, returnElement); |
}, |
doInsert : function(where, el, values, returnEl){ |
el = Ext.getDom(el); |
var newNode = Ext.DomHelper.insertHtml(where, el, this.applyTemplate(values)); |
return returnEl ? Ext.get(newNode, true) : newNode; |
}, |
overwrite : function(el, values, returnElement){ |
el = Ext.getDom(el); |
el.innerHTML = this.applyTemplate(values); |
return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; |
} |
}; |
Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate; |
Ext.DomHelper.Template = Ext.Template; |
Ext.Template.from = function(el, config){ |
el = Ext.getDom(el); |
return new Ext.Template(el.value || el.innerHTML, config || ''); |
}; |
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; |
Ext.util.Observable = function(){ |
if(this.listeners){ |
this.on(this.listeners); |
delete this.listeners; |
} |
}; |
Ext.util.Observable.prototype = { |
fireEvent : function(){ |
if(this.eventsSuspended !== true){ |
var ce = this.events[arguments[0].toLowerCase()]; |
if(typeof ce == "object"){ |
return ce.fire.apply(ce, Array.prototype.slice.call(arguments, 1)); |
} |
} |
return true; |
}, |
filterOptRe : /^(?:scope|delay|buffer|single)$/, |
addListener : function(eventName, fn, scope, o){ |
if(typeof eventName == "object"){ |
o = eventName; |
for(var e in o){ |
if(this.filterOptRe.test(e)){ |
continue; |
} |
if(typeof o[e] == "function"){ |
this.addListener(e, o[e], o.scope, o); |
}else{ |
this.addListener(e, o[e].fn, o[e].scope, o[e]); |
} |
} |
return; |
} |
o = (!o || typeof o == "boolean") ? {} : o; |
eventName = eventName.toLowerCase(); |
var ce = this.events[eventName] || true; |
if(typeof ce == "boolean"){ |
ce = new Ext.util.Event(this, eventName); |
this.events[eventName] = ce; |
} |
ce.addListener(fn, scope, o); |
}, |
removeListener : function(eventName, fn, scope){ |
var ce = this.events[eventName.toLowerCase()]; |
if(typeof ce == "object"){ |
ce.removeListener(fn, scope); |
} |
}, |
purgeListeners : function(){ |
for(var evt in this.events){ |
if(typeof this.events[evt] == "object"){ |
this.events[evt].clearListeners(); |
} |
} |
}, |
relayEvents : function(o, events){ |
var createHandler = function(ename){ |
return function(){ |
return this.fireEvent.apply(this, Ext.combine(ename, Array.prototype.slice.call(arguments, 0))); |
}; |
}; |
for(var i = 0, len = events.length; i < len; i++){ |
var ename = events[i]; |
if(!this.events[ename]){ this.events[ename] = true; }; |
o.on(ename, createHandler(ename), this); |
} |
}, |
addEvents : function(o){ |
if(!this.events){ |
this.events = {}; |
} |
if(typeof o == 'string'){ |
for(var i = 0, a = arguments, v; v = a[i]; i++){ |
if(!this.events[a[i]]){ |
o[a[i]] = true; |
} |
} |
}else{ |
Ext.applyIf(this.events, o); |
} |
}, |
hasListener : function(eventName){ |
var e = this.events[eventName]; |
return typeof e == "object" && e.listeners.length > 0; |
}, |
suspendEvents : function(){ |
this.eventsSuspended = true; |
}, |
resumeEvents : function(){ |
this.eventsSuspended = false; |
}, |
getMethodEvent : function(method){ |
if(!this.methodEvents){ |
this.methodEvents = {}; |
} |
var e = this.methodEvents[method]; |
if(!e){ |
e = {}; |
this.methodEvents[method] = e; |
e.originalFn = this[method]; |
e.methodName = method; |
e.before = []; |
e.after = []; |
var returnValue, v, cancel; |
var obj = this; |
var makeCall = function(fn, scope, args){ |
if((v = fn.apply(scope || obj, args)) !== undefined){ |
if(typeof v === 'object'){ |
if(v.returnValue !== undefined){ |
returnValue = v.returnValue; |
}else{ |
returnValue = v; |
} |
if(v.cancel === true){ |
cancel = true; |
} |
}else if(v === false){ |
cancel = true; |
}else { |
returnValue = v; |
} |
} |
} |
this[method] = function(){ |
returnValue = v = undefined; cancel = false; |
var args = Array.prototype.slice.call(arguments, 0); |
for(var i = 0, len = e.before.length; i < len; i++){ |
makeCall(e.before[i].fn, e.before[i].scope, args); |
if(cancel){ |
return returnValue; |
} |
} |
if((v = e.originalFn.apply(obj, args)) !== undefined){ |
returnValue = v; |
} |
for(var i = 0, len = e.after.length; i < len; i++){ |
makeCall(e.after[i].fn, e.after[i].scope, args); |
if(cancel){ |
return returnValue; |
} |
} |
return returnValue; |
}; |
} |
return e; |
}, |
beforeMethod : function(method, fn, scope){ |
var e = this.getMethodEvent(method); |
e.before.push({fn: fn, scope: scope}); |
}, |
afterMethod : function(method, fn, scope){ |
var e = this.getMethodEvent(method); |
e.after.push({fn: fn, scope: scope}); |
}, |
removeMethodListener : function(method, fn, scope){ |
var e = this.getMethodEvent(method); |
for(var i = 0, len = e.before.length; i < len; i++){ |
if(e.before[i].fn == fn && e.before[i].scope == scope){ |
e.before.splice(i, 1); |
return; |
} |
} |
for(var i = 0, len = e.after.length; i < len; i++){ |
if(e.after[i].fn == fn && e.after[i].scope == scope){ |
e.after.splice(i, 1); |
return; |
} |
} |
} |
}; |
Ext.util.Observable.prototype.on = Ext.util.Observable.prototype.addListener; |
Ext.util.Observable.prototype.un = Ext.util.Observable.prototype.removeListener; |
Ext.util.Observable.capture = function(o, fn, scope){ |
o.fireEvent = o.fireEvent.createInterceptor(fn, scope); |
}; |
Ext.util.Observable.releaseCapture = function(o){ |
o.fireEvent = Ext.util.Observable.prototype.fireEvent; |
}; |
(function(){ |
var createBuffered = function(h, o, scope){ |
var task = new Ext.util.DelayedTask(); |
return function(){ |
task.delay(o.buffer, h, scope, Array.prototype.slice.call(arguments, 0)); |
}; |
}; |
var createSingle = function(h, e, fn, scope){ |
return function(){ |
e.removeListener(fn, scope); |
return h.apply(scope, arguments); |
}; |
}; |
var createDelayed = function(h, o, scope){ |
return function(){ |
var args = Array.prototype.slice.call(arguments, 0); |
setTimeout(function(){ |
h.apply(scope, args); |
}, o.delay || 10); |
}; |
}; |
Ext.util.Event = function(obj, name){ |
this.name = name; |
this.obj = obj; |
this.listeners = []; |
}; |
Ext.util.Event.prototype = { |
addListener : function(fn, scope, options){ |
scope = scope || this.obj; |
if(!this.isListening(fn, scope)){ |
var l = this.createListener(fn, scope, options); |
if(!this.firing){ |
this.listeners.push(l); |
}else{ this.listeners = this.listeners.slice(0); |
this.listeners.push(l); |
} |
} |
}, |
createListener : function(fn, scope, o){ |
o = o || {}; |
scope = scope || this.obj; |
var l = {fn: fn, scope: scope, options: o}; |
var h = fn; |
if(o.delay){ |
h = createDelayed(h, o, scope); |
} |
if(o.single){ |
h = createSingle(h, this, fn, scope); |
} |
if(o.buffer){ |
h = createBuffered(h, o, scope); |
} |
l.fireFn = h; |
return l; |
}, |
findListener : function(fn, scope){ |
scope = scope || this.obj; |
var ls = this.listeners; |
for(var i = 0, len = ls.length; i < len; i++){ |
var l = ls[i]; |
if(l.fn == fn && l.scope == scope){ |
return i; |
} |
} |
return -1; |
}, |
isListening : function(fn, scope){ |
return this.findListener(fn, scope) != -1; |
}, |
removeListener : function(fn, scope){ |
var index; |
if((index = this.findListener(fn, scope)) != -1){ |
if(!this.firing){ |
this.listeners.splice(index, 1); |
}else{ |
this.listeners = this.listeners.slice(0); |
this.listeners.splice(index, 1); |
} |
return true; |
} |
return false; |
}, |
clearListeners : function(){ |
this.listeners = []; |
}, |
fire : function(){ |
var ls = this.listeners, scope, len = ls.length; |
if(len > 0){ |
this.firing = true; |
var args = Array.prototype.slice.call(arguments, 0); |
for(var i = 0; i < len; i++){ |
var l = ls[i]; |
if(l.fireFn.apply(l.scope||this.obj||window, arguments) === false){ |
this.firing = false; |
return false; |
} |
} |
this.firing = false; |
} |
return true; |
} |
}; |
})(); |
Ext.EventManager = function(){ |
var docReadyEvent, docReadyProcId, docReadyState = false; |
var resizeEvent, resizeTask, textEvent, textSize; |
var E = Ext.lib.Event; |
var D = Ext.lib.Dom; |
var fireDocReady = function(){ |
if(!docReadyState){ |
docReadyState = true; |
Ext.isReady = true; |
if(docReadyProcId){ |
clearInterval(docReadyProcId); |
} |
if(Ext.isGecko || Ext.isOpera) { |
document.removeEventListener("DOMContentLoaded", fireDocReady, false); |
} |
if(Ext.isIE){ |
var defer = document.getElementById("ie-deferred-loader"); |
if(defer){ |
defer.onreadystatechange = null; |
defer.parentNode.removeChild(defer); |
} |
} |
if(docReadyEvent){ |
docReadyEvent.fire(); |
docReadyEvent.clearListeners(); |
} |
} |
}; |
var initDocReady = function(){ |
docReadyEvent = new Ext.util.Event(); |
if(Ext.isGecko || Ext.isOpera) { |
document.addEventListener("DOMContentLoaded", fireDocReady, false); |
}else if(Ext.isIE){ |
document.write("<s"+'cript id="ie-deferred-loader" defer="defer" src="/'+'/:"></s'+"cript>"); |
var defer = document.getElementById("ie-deferred-loader"); |
defer.onreadystatechange = function(){ |
if(this.readyState == "complete"){ |
fireDocReady(); |
} |
}; |
}else if(Ext.isSafari){ |
docReadyProcId = setInterval(function(){ |
var rs = document.readyState; |
if(rs == "complete") { |
fireDocReady(); |
} |
}, 10); |
} |
E.on(window, "load", fireDocReady); |
}; |
var createBuffered = function(h, o){ |
var task = new Ext.util.DelayedTask(h); |
return function(e){ |
e = new Ext.EventObjectImpl(e); |
task.delay(o.buffer, h, null, [e]); |
}; |
}; |
var createSingle = function(h, el, ename, fn){ |
return function(e){ |
Ext.EventManager.removeListener(el, ename, fn); |
h(e); |
}; |
}; |
var createDelayed = function(h, o){ |
return function(e){ |
e = new Ext.EventObjectImpl(e); |
setTimeout(function(){ |
h(e); |
}, o.delay || 10); |
}; |
}; |
var listen = function(element, ename, opt, fn, scope){ |
var o = (!opt || typeof opt == "boolean") ? {} : opt; |
fn = fn || o.fn; scope = scope || o.scope; |
var el = Ext.getDom(element); |
if(!el){ |
throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.'; |
} |
var h = function(e){ |
e = Ext.EventObject.setEvent(e); |
var t; |
if(o.delegate){ |
t = e.getTarget(o.delegate, el); |
if(!t){ |
return; |
} |
}else{ |
t = e.target; |
} |
if(o.stopEvent === true){ |
e.stopEvent(); |
} |
if(o.preventDefault === true){ |
e.preventDefault(); |
} |
if(o.stopPropagation === true){ |
e.stopPropagation(); |
} |
if(o.normalized === false){ |
e = e.browserEvent; |
} |
fn.call(scope || el, e, t, o); |
}; |
if(o.delay){ |
h = createDelayed(h, o); |
} |
if(o.single){ |
h = createSingle(h, el, ename, fn); |
} |
if(o.buffer){ |
h = createBuffered(h, o); |
} |
fn._handlers = fn._handlers || []; |
fn._handlers.push([Ext.id(el), ename, h]); |
E.on(el, ename, h); |
if(ename == "mousewheel" && el.addEventListener){ |
el.addEventListener("DOMMouseScroll", h, false); |
E.on(window, 'unload', function(){ |
el.removeEventListener("DOMMouseScroll", h, false); |
}); |
} |
if(ename == "mousedown" && el == document){ |
Ext.EventManager.stoppedMouseDownEvent.addListener(h); |
} |
return h; |
}; |
var stopListening = function(el, ename, fn){ |
var id = Ext.id(el), hds = fn._handlers, hd = fn; |
if(hds){ |
for(var i = 0, len = hds.length; i < len; i++){ |
var h = hds[i]; |
if(h[0] == id && h[1] == ename){ |
hd = h[2]; |
hds.splice(i, 1); |
break; |
} |
} |
} |
E.un(el, ename, hd); |
el = Ext.getDom(el); |
if(ename == "mousewheel" && el.addEventListener){ |
el.removeEventListener("DOMMouseScroll", hd, false); |
} |
if(ename == "mousedown" && el == document){ |
Ext.EventManager.stoppedMouseDownEvent.removeListener(hd); |
} |
}; |
var propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/; |
var pub = { |
addListener : function(element, eventName, fn, scope, options){ |
if(typeof eventName == "object"){ |
var o = eventName; |
for(var e in o){ |
if(propRe.test(e)){ |
continue; |
} |
if(typeof o[e] == "function"){ |
listen(element, e, o, o[e], o.scope); |
}else{ |
listen(element, e, o[e]); |
} |
} |
return; |
} |
return listen(element, eventName, options, fn, scope); |
}, |
removeListener : function(element, eventName, fn){ |
return stopListening(element, eventName, fn); |
}, |
onDocumentReady : function(fn, scope, options){ |
if(docReadyState){ |
docReadyEvent.addListener(fn, scope, options); |
docReadyEvent.fire(); |
docReadyEvent.clearListeners(); |
return; |
} |
if(!docReadyEvent){ |
initDocReady(); |
} |
docReadyEvent.addListener(fn, scope, options); |
}, |
onWindowResize : function(fn, scope, options){ |
if(!resizeEvent){ |
resizeEvent = new Ext.util.Event(); |
resizeTask = new Ext.util.DelayedTask(function(){ |
resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); |
}); |
E.on(window, "resize", this.fireWindowResize, this); |
} |
resizeEvent.addListener(fn, scope, options); |
}, |
fireWindowResize : function(){ |
if(resizeEvent){ |
if((Ext.isIE||Ext.isAir) && resizeTask){ |
resizeTask.delay(50); |
}else{ |
resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); |
} |
} |
}, |
onTextResize : function(fn, scope, options){ |
if(!textEvent){ |
textEvent = new Ext.util.Event(); |
var textEl = new Ext.Element(document.createElement('div')); |
textEl.dom.className = 'x-text-resize'; |
textEl.dom.innerHTML = 'X'; |
textEl.appendTo(document.body); |
textSize = textEl.dom.offsetHeight; |
setInterval(function(){ |
if(textEl.dom.offsetHeight != textSize){ |
textEvent.fire(textSize, textSize = textEl.dom.offsetHeight); |
} |
}, this.textResizeInterval); |
} |
textEvent.addListener(fn, scope, options); |
}, |
removeResizeListener : function(fn, scope){ |
if(resizeEvent){ |
resizeEvent.removeListener(fn, scope); |
} |
}, |
fireResize : function(){ |
if(resizeEvent){ |
resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); |
} |
}, |
ieDeferSrc : false, |
textResizeInterval : 50 |
}; |
pub.on = pub.addListener; |
pub.un = pub.removeListener; |
pub.stoppedMouseDownEvent = new Ext.util.Event(); |
return pub; |
}(); |
Ext.onReady = Ext.EventManager.onDocumentReady; |
Ext.onReady(function(){ |
var bd = Ext.getBody(); |
if(!bd){ return; } |
var cls = [ |
Ext.isIE ? "ext-ie " + (Ext.isIE6 ? 'ext-ie6' : 'ext-ie7') |
: Ext.isGecko ? "ext-gecko" |
: Ext.isOpera ? "ext-opera" |
: Ext.isSafari ? "ext-safari" : ""]; |
if(Ext.isMac){ |
cls.push("ext-mac"); |
} |
if(Ext.isLinux){ |
cls.push("ext-linux"); |
} |
if(Ext.isBorderBox){ |
cls.push('ext-border-box'); |
} |
if(Ext.isStrict){ |
var p = bd.dom.parentNode; |
if(p){ |
p.className += ' ext-strict'; |
} |
} |
bd.addClass(cls.join(' ')); |
}); |
Ext.EventObject = function(){ |
var E = Ext.lib.Event; |
var safariKeys = { |
63234 : 37, |
63235 : 39, |
63232 : 38, |
63233 : 40, |
63276 : 33, |
63277 : 34, |
63272 : 46, |
63273 : 36, |
63275 : 35 |
}; |
var btnMap = 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(e){ |
if(e){ |
this.setEvent(e.browserEvent || e); |
} |
}; |
Ext.EventObjectImpl.prototype = { |
browserEvent : null, |
button : -1, |
shiftKey : false, |
ctrlKey : false, |
altKey : false, |
BACKSPACE : 8, |
TAB : 9, |
RETURN : 13, |
ENTER : 13, |
SHIFT : 16, |
CONTROL : 17, |
ESC : 27, |
SPACE : 32, |
PAGEUP : 33, |
PAGEDOWN : 34, |
END : 35, |
HOME : 36, |
LEFT : 37, |
UP : 38, |
RIGHT : 39, |
DOWN : 40, |
DELETE : 46, |
F5 : 116, |
setEvent : function(e){ |
if(e == this || (e && e.browserEvent)){ |
return e; |
} |
this.browserEvent = e; |
if(e){ |
this.button = e.button ? btnMap[e.button] : (e.which ? e.which-1 : -1); |
if(e.type == 'click' && this.button == -1){ |
this.button = 0; |
} |
this.type = e.type; |
this.shiftKey = e.shiftKey; |
this.ctrlKey = e.ctrlKey || e.metaKey; |
this.altKey = e.altKey; |
this.keyCode = e.keyCode; |
this.charCode = e.charCode; |
this.target = E.getTarget(e); |
this.xy = E.getXY(e); |
}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); |
} |
E.stopEvent(this.browserEvent); |
} |
}, |
preventDefault : function(){ |
if(this.browserEvent){ |
E.preventDefault(this.browserEvent); |
} |
}, |
isNavKeyPress : function(){ |
var k = this.keyCode; |
k = Ext.isSafari ? (safariKeys[k] || k) : k; |
return (k >= 33 && k <= 40) || k == this.RETURN || k == this.TAB || k == this.ESC; |
}, |
isSpecialKey : function(){ |
var k = this.keyCode; |
return (this.type == 'keypress' && this.ctrlKey) || k == 9 || k == 13 || k == 40 || k == 27 || |
(k == 16) || (k == 17) || |
(k >= 18 && k <= 20) || |
(k >= 33 && k <= 35) || |
(k >= 36 && k <= 39) || |
(k >= 44 && k <= 45); |
}, |
stopPropagation : function(){ |
if(this.browserEvent){ |
if(this.browserEvent.type == 'mousedown'){ |
Ext.EventManager.stoppedMouseDownEvent.fire(this); |
} |
E.stopPropagation(this.browserEvent); |
} |
}, |
getCharCode : function(){ |
return this.charCode || this.keyCode; |
}, |
getKey : function(){ |
var k = this.keyCode || this.charCode; |
return Ext.isSafari ? (safariKeys[k] || k) : k; |
}, |
getPageX : function(){ |
return this.xy[0]; |
}, |
getPageY : function(){ |
return this.xy[1]; |
}, |
getTime : function(){ |
if(this.browserEvent){ |
return E.getTime(this.browserEvent); |
} |
return null; |
}, |
getXY : function(){ |
return this.xy; |
}, |
getTarget : function(selector, maxDepth, returnEl){ |
var t = Ext.get(this.target); |
return selector ? t.findParent(selector, maxDepth, returnEl) : (returnEl ? t : this.target); |
}, |
getRelatedTarget : function(){ |
if(this.browserEvent){ |
return E.getRelatedTarget(this.browserEvent); |
} |
return null; |
}, |
getWheelDelta : function(){ |
var e = this.browserEvent; |
var delta = 0; |
if(e.wheelDelta){ |
delta = e.wheelDelta/120; |
}else if(e.detail){ |
delta = -e.detail/3; |
} |
return delta; |
}, |
hasModifier : function(){ |
return ((this.ctrlKey || this.altKey) || this.shiftKey) ? true : false; |
}, |
within : function(el, related){ |
var t = this[related ? "getRelatedTarget" : "getTarget"](); |
return t && Ext.fly(el).contains(t); |
}, |
getPoint : function(){ |
return new Ext.lib.Point(this.xy[0], this.xy[1]); |
} |
}; |
return new Ext.EventObjectImpl(); |
}(); |
(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) || .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, unique){ |
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(.01); |
this.setVisible(true); |
} |
this.anim({opacity: { to: (visible?1:0) }}, |
this.preanim(arguments, 1), |
null, .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){ |
Ext.EventManager.removeListener(this.dom, eventName, fn); |
return this; |
}, |
removeAllListeners : function(){ |
E.purgeElement(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, .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.isGecko){ 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*.5); |
y = r(h*.5); |
break; |
case "t": |
x = r(w*.5); |
y = 0; |
break; |
case "l": |
x = 0; |
y = r(h*.5); |
break; |
case "r": |
x = w; |
y = r(h*.5); |
break; |
case "b": |
x = r(w*.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 = 'no'; |
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, preventFlicker){ |
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){ |
E.purgeElement(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; |
}); |
})(); |
Ext.enableFx = true; |
Ext.Fx = { |
slideIn : function(anchor, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
anchor = anchor || "t"; |
this.fixDisplay(); |
var r = this.getFxRestore(); |
var b = this.getBox(); |
this.setSize(b); |
var wrap = this.fxWrap(r.pos, o, "hidden"); |
var st = this.dom.style; |
st.visibility = "visible"; |
st.position = "absolute"; |
var after = function(){ |
el.fxUnwrap(wrap, r.pos, o); |
st.width = r.width; |
st.height = r.height; |
el.afterFx(o); |
}; |
var a, pt = {to: [b.x, b.y]}, bw = {to: b.width}, bh = {to: b.height}; |
switch(anchor.toLowerCase()){ |
case "t": |
wrap.setSize(b.width, 0); |
st.left = st.bottom = "0"; |
a = {height: bh}; |
break; |
case "l": |
wrap.setSize(0, b.height); |
st.right = st.top = "0"; |
a = {width: bw}; |
break; |
case "r": |
wrap.setSize(0, b.height); |
wrap.setX(b.right); |
st.left = st.top = "0"; |
a = {width: bw, points: pt}; |
break; |
case "b": |
wrap.setSize(b.width, 0); |
wrap.setY(b.bottom); |
st.left = st.top = "0"; |
a = {height: bh, points: pt}; |
break; |
case "tl": |
wrap.setSize(0, 0); |
st.right = st.bottom = "0"; |
a = {width: bw, height: bh}; |
break; |
case "bl": |
wrap.setSize(0, 0); |
wrap.setY(b.y+b.height); |
st.right = st.top = "0"; |
a = {width: bw, height: bh, points: pt}; |
break; |
case "br": |
wrap.setSize(0, 0); |
wrap.setXY([b.right, b.bottom]); |
st.left = st.top = "0"; |
a = {width: bw, height: bh, points: pt}; |
break; |
case "tr": |
wrap.setSize(0, 0); |
wrap.setX(b.x+b.width); |
st.left = st.bottom = "0"; |
a = {width: bw, height: bh, points: pt}; |
break; |
} |
this.dom.style.visibility = "visible"; |
wrap.show(); |
arguments.callee.anim = wrap.fxanim(a, |
o, |
'motion', |
.5, |
'easeOut', after); |
}); |
return this; |
}, |
slideOut : function(anchor, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
anchor = anchor || "t"; |
var r = this.getFxRestore(); |
var b = this.getBox(); |
this.setSize(b); |
var wrap = this.fxWrap(r.pos, o, "visible"); |
var st = this.dom.style; |
st.visibility = "visible"; |
st.position = "absolute"; |
wrap.setSize(b); |
var after = function(){ |
if(o.useDisplay){ |
el.setDisplayed(false); |
}else{ |
el.hide(); |
} |
el.fxUnwrap(wrap, r.pos, o); |
st.width = r.width; |
st.height = r.height; |
el.afterFx(o); |
}; |
var a, zero = {to: 0}; |
switch(anchor.toLowerCase()){ |
case "t": |
st.left = st.bottom = "0"; |
a = {height: zero}; |
break; |
case "l": |
st.right = st.top = "0"; |
a = {width: zero}; |
break; |
case "r": |
st.left = st.top = "0"; |
a = {width: zero, points: {to:[b.right, b.y]}}; |
break; |
case "b": |
st.left = st.top = "0"; |
a = {height: zero, points: {to:[b.x, b.bottom]}}; |
break; |
case "tl": |
st.right = st.bottom = "0"; |
a = {width: zero, height: zero}; |
break; |
case "bl": |
st.right = st.top = "0"; |
a = {width: zero, height: zero, points: {to:[b.x, b.bottom]}}; |
break; |
case "br": |
st.left = st.top = "0"; |
a = {width: zero, height: zero, points: {to:[b.x+b.width, b.bottom]}}; |
break; |
case "tr": |
st.left = st.bottom = "0"; |
a = {width: zero, height: zero, points: {to:[b.right, b.y]}}; |
break; |
} |
arguments.callee.anim = wrap.fxanim(a, |
o, |
'motion', |
.5, |
"easeOut", after); |
}); |
return this; |
}, |
puff : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
this.clearOpacity(); |
this.show(); |
var r = this.getFxRestore(); |
var st = this.dom.style; |
var after = function(){ |
if(o.useDisplay){ |
el.setDisplayed(false); |
}else{ |
el.hide(); |
} |
el.clearOpacity(); |
el.setPositioning(r.pos); |
st.width = r.width; |
st.height = r.height; |
st.fontSize = ''; |
el.afterFx(o); |
}; |
var width = this.getWidth(); |
var height = this.getHeight(); |
arguments.callee.anim = this.fxanim({ |
width : {to: this.adjustWidth(width * 2)}, |
height : {to: this.adjustHeight(height * 2)}, |
points : {by: [-(width * .5), -(height * .5)]}, |
opacity : {to: 0}, |
fontSize: {to:200, unit: "%"} |
}, |
o, |
'motion', |
.5, |
"easeOut", after); |
}); |
return this; |
}, |
switchOff : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
this.clearOpacity(); |
this.clip(); |
var r = this.getFxRestore(); |
var st = this.dom.style; |
var after = function(){ |
if(o.useDisplay){ |
el.setDisplayed(false); |
}else{ |
el.hide(); |
} |
el.clearOpacity(); |
el.setPositioning(r.pos); |
st.width = r.width; |
st.height = r.height; |
el.afterFx(o); |
}; |
this.fxanim({opacity:{to:0.3}}, null, null, .1, null, function(){ |
this.clearOpacity(); |
(function(){ |
this.fxanim({ |
height:{to:1}, |
points:{by:[0, this.getHeight() * .5]} |
}, o, 'motion', 0.3, 'easeIn', after); |
}).defer(100, this); |
}); |
}); |
return this; |
}, |
highlight : function(color, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
color = color || "ffff9c"; |
var attr = o.attr || "backgroundColor"; |
this.clearOpacity(); |
this.show(); |
var origColor = this.getColor(attr); |
var restoreColor = this.dom.style[attr]; |
var endColor = (o.endColor || origColor) || "ffffff"; |
var after = function(){ |
el.dom.style[attr] = restoreColor; |
el.afterFx(o); |
}; |
var a = {}; |
a[attr] = {from: color, to: endColor}; |
arguments.callee.anim = this.fxanim(a, |
o, |
'color', |
1, |
'easeIn', after); |
}); |
return this; |
}, |
frame : function(color, count, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
color = color || "#C3DAF9"; |
if(color.length == 6){ |
color = "#" + color; |
} |
count = count || 1; |
var duration = o.duration || 1; |
this.show(); |
var b = this.getBox(); |
var animFn = function(){ |
var proxy = Ext.getBody().createChild({ |
style:{ |
visbility:"hidden", |
position:"absolute", |
"z-index":"35000", border:"0px solid " + color |
} |
}); |
var scale = Ext.isBorderBox ? 2 : 1; |
proxy.animate({ |
top:{from:b.y, to:b.y - 20}, |
left:{from:b.x, to:b.x - 20}, |
borderWidth:{from:0, to:10}, |
opacity:{from:1, to:0}, |
height:{from:b.height, to:(b.height + (20*scale))}, |
width:{from:b.width, to:(b.width + (20*scale))} |
}, duration, function(){ |
proxy.remove(); |
if(--count > 0){ |
animFn(); |
}else{ |
el.afterFx(o); |
} |
}); |
}; |
animFn.call(this); |
}); |
return this; |
}, |
pause : function(seconds){ |
var el = this.getFxEl(); |
var o = {}; |
el.queueFx(o, function(){ |
setTimeout(function(){ |
el.afterFx(o); |
}, seconds * 1000); |
}); |
return this; |
}, |
fadeIn : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
this.setOpacity(0); |
this.fixDisplay(); |
this.dom.style.visibility = 'visible'; |
var to = o.endOpacity || 1; |
arguments.callee.anim = this.fxanim({opacity:{to:to}}, |
o, null, .5, "easeOut", function(){ |
if(to == 1){ |
this.clearOpacity(); |
} |
el.afterFx(o); |
}); |
}); |
return this; |
}, |
fadeOut : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
arguments.callee.anim = this.fxanim({opacity:{to:o.endOpacity || 0}}, |
o, null, .5, "easeOut", function(){ |
if(this.visibilityMode == Ext.Element.DISPLAY || o.useDisplay){ |
this.dom.style.display = "none"; |
}else{ |
this.dom.style.visibility = "hidden"; |
} |
this.clearOpacity(); |
el.afterFx(o); |
}); |
}); |
return this; |
}, |
scale : function(w, h, o){ |
this.shift(Ext.apply({}, o, { |
width: w, |
height: h |
})); |
return this; |
}, |
shift : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
var a = {}, w = o.width, h = o.height, x = o.x, y = o.y, op = o.opacity; |
if(w !== undefined){ |
a.width = {to: this.adjustWidth(w)}; |
} |
if(h !== undefined){ |
a.height = {to: this.adjustHeight(h)}; |
} |
if(x !== undefined || y !== undefined){ |
a.points = {to: [ |
x !== undefined ? x : this.getX(), |
y !== undefined ? y : this.getY() |
]}; |
} |
if(op !== undefined){ |
a.opacity = {to: op}; |
} |
if(o.xy !== undefined){ |
a.points = {to: o.xy}; |
} |
arguments.callee.anim = this.fxanim(a, |
o, 'motion', .35, "easeOut", function(){ |
el.afterFx(o); |
}); |
}); |
return this; |
}, |
ghost : function(anchor, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
anchor = anchor || "b"; |
var r = this.getFxRestore(); |
var w = this.getWidth(), |
h = this.getHeight(); |
var st = this.dom.style; |
var after = function(){ |
if(o.useDisplay){ |
el.setDisplayed(false); |
}else{ |
el.hide(); |
} |
el.clearOpacity(); |
el.setPositioning(r.pos); |
st.width = r.width; |
st.height = r.height; |
el.afterFx(o); |
}; |
var a = {opacity: {to: 0}, points: {}}, pt = a.points; |
switch(anchor.toLowerCase()){ |
case "t": |
pt.by = [0, -h]; |
break; |
case "l": |
pt.by = [-w, 0]; |
break; |
case "r": |
pt.by = [w, 0]; |
break; |
case "b": |
pt.by = [0, h]; |
break; |
case "tl": |
pt.by = [-w, -h]; |
break; |
case "bl": |
pt.by = [-w, h]; |
break; |
case "br": |
pt.by = [w, h]; |
break; |
case "tr": |
pt.by = [w, -h]; |
break; |
} |
arguments.callee.anim = this.fxanim(a, |
o, |
'motion', |
.5, |
"easeOut", after); |
}); |
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 ef = this.fxQueue[0]; |
if(ef){ |
ef.call(this); |
} |
}, |
hasActiveFx : function(){ |
return this.fxQueue && this.fxQueue[0]; |
}, |
stopFx : function(){ |
if(this.hasActiveFx()){ |
var cur = this.fxQueue[0]; |
if(cur && cur.anim && cur.anim.isAnimated()){ |
this.fxQueue = [cur]; cur.anim.stop(true); |
} |
} |
return this; |
}, |
beforeFx : function(o){ |
if(this.hasActiveFx() && !o.concurrent){ |
if(o.stopFx){ |
this.stopFx(); |
return true; |
} |
return false; |
} |
return true; |
}, |
hasFxBlock : function(){ |
var q = this.fxQueue; |
return q && q[0] && q[0].block; |
}, |
queueFx : function(o, fn){ |
if(!this.fxQueue){ |
this.fxQueue = []; |
} |
if(!this.hasFxBlock()){ |
Ext.applyIf(o, this.fxDefaults); |
if(!o.concurrent){ |
var run = this.beforeFx(o); |
fn.block = o.block; |
this.fxQueue.push(fn); |
if(run){ |
this.nextFx(); |
} |
}else{ |
fn.call(this); |
} |
} |
return this; |
}, |
fxWrap : function(pos, o, vis){ |
var wrap; |
if(!o.wrap || !(wrap = Ext.get(o.wrap))){ |
var wrapXY; |
if(o.fixPosition){ |
wrapXY = this.getXY(); |
} |
var div = document.createElement("div"); |
div.style.visibility = vis; |
wrap = Ext.get(this.dom.parentNode.insertBefore(div, this.dom)); |
wrap.setPositioning(pos); |
if(wrap.getStyle("position") == "static"){ |
wrap.position("relative"); |
} |
this.clearPositioning('auto'); |
wrap.clip(); |
wrap.dom.appendChild(this.dom); |
if(wrapXY){ |
wrap.setXY(wrapXY); |
} |
} |
return wrap; |
}, |
fxUnwrap : function(wrap, pos, o){ |
this.clearPositioning(); |
this.setPositioning(pos); |
if(!o.wrap){ |
wrap.dom.parentNode.insertBefore(this.dom, wrap.dom); |
wrap.remove(); |
} |
}, |
getFxRestore : function(){ |
var st = this.dom.style; |
return {pos: this.getPositioning(), width: st.width, height : st.height}; |
}, |
afterFx : function(o){ |
if(o.afterStyle){ |
this.applyStyles(o.afterStyle); |
} |
if(o.afterCls){ |
this.addClass(o.afterCls); |
} |
if(o.remove === true){ |
this.remove(); |
} |
Ext.callback(o.callback, o.scope, [this]); |
if(!o.concurrent){ |
this.fxQueue.shift(); |
this.nextFx(); |
} |
}, |
getFxEl : function(){ return Ext.get(this.dom); |
}, |
fxanim : function(args, opt, animType, defaultDur, defaultEase, cb){ |
animType = animType || 'run'; |
opt = opt || {}; |
var anim = Ext.lib.Anim[animType]( |
this.dom, args, |
(opt.duration || defaultDur) || .35, |
(opt.easing || defaultEase) || 'easeOut', |
function(){ |
Ext.callback(cb, this); |
}, |
this |
); |
opt.anim = anim; |
return anim; |
} |
}; |
Ext.Fx.resize = Ext.Fx.scale; |
Ext.apply(Ext.Element.prototype, Ext.Fx); |
Ext.CompositeElement = function(els){ |
this.elements = []; |
this.addElements(els); |
}; |
Ext.CompositeElement.prototype = { |
isComposite: true, |
addElements : function(els){ |
if(!els) return this; |
if(typeof els == "string"){ |
els = Ext.Element.selectorFunction(els); |
} |
var yels = this.elements; |
var index = yels.length-1; |
for(var i = 0, len = els.length; i < len; i++) { |
yels[++index] = Ext.get(els[i]); |
} |
return this; |
}, |
fill : function(els){ |
this.elements = []; |
this.add(els); |
return this; |
}, |
filter : function(selector){ |
var els = []; |
this.each(function(el){ |
if(el.is(selector)){ |
els[els.length] = el.dom; |
} |
}); |
this.fill(els); |
return this; |
}, |
invoke : function(fn, args){ |
var els = this.elements; |
for(var i = 0, len = els.length; i < len; i++) { |
Ext.Element.prototype[fn].apply(els[i], args); |
} |
return this; |
}, |
add : function(els){ |
if(typeof els == "string"){ |
this.addElements(Ext.Element.selectorFunction(els)); |
}else if(els.length !== undefined){ |
this.addElements(els); |
}else{ |
this.addElements([els]); |
} |
return this; |
}, |
each : function(fn, scope){ |
var els = this.elements; |
for(var i = 0, len = els.length; i < len; i++){ |
if(fn.call(scope || els[i], els[i], this, i) === false) { |
break; |
} |
} |
return this; |
}, |
item : function(index){ |
return this.elements[index] || null; |
}, |
first : function(){ |
return this.item(0); |
}, |
last : function(){ |
return this.item(this.elements.length-1); |
}, |
getCount : function(){ |
return this.elements.length; |
}, |
contains : function(el){ |
return this.indexOf(el) !== -1; |
}, |
indexOf : function(el){ |
return this.elements.indexOf(Ext.get(el)); |
}, |
removeElement : function(el, removeDom){ |
if(Ext.isArray(el)){ |
for(var i = 0, len = el.length; i < len; i++){ |
this.removeElement(el[i]); |
} |
return this; |
} |
var index = typeof el == 'number' ? el : this.indexOf(el); |
if(index !== -1 && this.elements[index]){ |
if(removeDom){ |
var d = this.elements[index]; |
if(d.dom){ |
d.remove(); |
}else{ |
Ext.removeNode(d); |
} |
} |
this.elements.splice(index, 1); |
} |
return this; |
}, |
replaceElement : function(el, replacement, domReplace){ |
var index = typeof el == 'number' ? el : this.indexOf(el); |
if(index !== -1){ |
if(domReplace){ |
this.elements[index].replaceWith(replacement); |
}else{ |
this.elements.splice(index, 1, Ext.get(replacement)) |
} |
} |
return this; |
}, |
clear : function(){ |
this.elements = []; |
} |
}; |
(function(){ |
Ext.CompositeElement.createCall = function(proto, fnName){ |
if(!proto[fnName]){ |
proto[fnName] = function(){ |
return this.invoke(fnName, arguments); |
}; |
} |
}; |
for(var fnName in Ext.Element.prototype){ |
if(typeof Ext.Element.prototype[fnName] == "function"){ |
Ext.CompositeElement.createCall(Ext.CompositeElement.prototype, fnName); |
} |
}; |
})(); |
Ext.CompositeElementLite = function(els){ |
Ext.CompositeElementLite.superclass.constructor.call(this, els); |
this.el = new Ext.Element.Flyweight(); |
}; |
Ext.extend(Ext.CompositeElementLite, Ext.CompositeElement, { |
addElements : function(els){ |
if(els){ |
if(Ext.isArray(els)){ |
this.elements = this.elements.concat(els); |
}else{ |
var yels = this.elements; |
var index = yels.length-1; |
for(var i = 0, len = els.length; i < len; i++) { |
yels[++index] = els[i]; |
} |
} |
} |
return this; |
}, |
invoke : function(fn, args){ |
var els = this.elements; |
var el = this.el; |
for(var i = 0, len = els.length; i < len; i++) { |
el.dom = els[i]; |
Ext.Element.prototype[fn].apply(el, args); |
} |
return this; |
}, |
item : function(index){ |
if(!this.elements[index]){ |
return null; |
} |
this.el.dom = this.elements[index]; |
return this.el; |
}, |
addListener : function(eventName, handler, scope, opt){ |
var els = this.elements; |
for(var i = 0, len = els.length; i < len; i++) { |
Ext.EventManager.on(els[i], eventName, handler, scope || els[i], opt); |
} |
return this; |
}, |
each : function(fn, scope){ |
var els = this.elements; |
var el = this.el; |
for(var i = 0, len = els.length; i < len; i++){ |
el.dom = els[i]; |
if(fn.call(scope || el, el, this, i) === false){ |
break; |
} |
} |
return this; |
}, |
indexOf : function(el){ |
return this.elements.indexOf(Ext.getDom(el)); |
}, |
replaceElement : function(el, replacement, domReplace){ |
var index = typeof el == 'number' ? el : this.indexOf(el); |
if(index !== -1){ |
replacement = Ext.getDom(replacement); |
if(domReplace){ |
var d = this.elements[index]; |
d.parentNode.insertBefore(replacement, d); |
Ext.removeNode(d); |
} |
this.elements.splice(index, 1, replacement); |
} |
return this; |
} |
}); |
Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener; |
if(Ext.DomQuery){ |
Ext.Element.selectorFunction = Ext.DomQuery.select; |
} |
Ext.Element.select = function(selector, unique, root){ |
var els; |
if(typeof selector == "string"){ |
els = Ext.Element.selectorFunction(selector, root); |
}else if(selector.length !== undefined){ |
els = selector; |
}else{ |
throw "Invalid selector"; |
} |
if(unique === true){ |
return new Ext.CompositeElement(els); |
}else{ |
return new Ext.CompositeElementLite(els); |
} |
}; |
Ext.select = Ext.Element.select; |
Ext.data.Connection = function(config){ |
Ext.apply(this, config); |
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, |
request : function(o){ |
if(this.fireEvent("beforerequest", this, o) !== false){ |
var p = o.params; |
if(typeof p == "function"){ |
p = p.call(o.scope||window, o); |
} |
if(typeof p == "object"){ |
p = Ext.urlEncode(p); |
} |
if(this.extraParams){ |
var extras = Ext.urlEncode(this.extraParams); |
p = p ? (p + '&' + extras) : extras; |
} |
var url = o.url || this.url; |
if(typeof url == 'function'){ |
url = url.call(o.scope||window, o); |
} |
if(o.form){ |
var form = Ext.getDom(o.form); |
url = url || form.action; |
var enctype = form.getAttribute("enctype"); |
if(o.isUpload || (enctype && enctype.toLowerCase() == 'multipart/form-data')){ |
return this.doFormUpload(o, p, url); |
} |
var f = Ext.lib.Ajax.serializeForm(form); |
p = p ? (p + '&' + f) : f; |
} |
var hs = o.headers; |
if(this.defaultHeaders){ |
hs = Ext.apply(hs || {}, this.defaultHeaders); |
if(!o.headers){ |
o.headers = hs; |
} |
} |
var cb = { |
success: this.handleResponse, |
failure: this.handleFailure, |
scope: this, |
argument: {options: o}, |
timeout : o.timeout || this.timeout |
}; |
var method = o.method||this.method||(p ? "POST" : "GET"); |
if(method == 'GET' && (this.disableCaching && o.disableCaching !== false) || o.disableCaching === true){ |
url += (url.indexOf('?') != -1 ? '&' : '?') + '_dc=' + (new Date().getTime()); |
} |
if(typeof o.autoAbort == 'boolean'){ |
if(o.autoAbort){ |
this.abort(); |
} |
}else if(this.autoAbort !== false){ |
this.abort(); |
} |
if((method == 'GET' && p) || o.xmlData || o.jsonData){ |
url += (url.indexOf('?') != -1 ? '&' : '?') + p; |
p = ''; |
} |
this.transId = Ext.lib.Ajax.request(method, url, cb, p, o); |
return this.transId; |
}else{ |
Ext.callback(o.callback, o.scope, [o, null, null]); |
return null; |
} |
}, |
isLoading : function(transId){ |
if(transId){ |
return Ext.lib.Ajax.isCallInProgress(transId); |
}else{ |
return this.transId ? true : false; |
} |
}, |
abort : function(transId){ |
if(transId || this.isLoading()){ |
Ext.lib.Ajax.abort(transId || this.transId); |
} |
}, |
handleResponse : function(response){ |
this.transId = false; |
var options = response.argument.options; |
response.argument = options ? options.argument : null; |
this.fireEvent("requestcomplete", this, response, options); |
Ext.callback(options.success, options.scope, [response, options]); |
Ext.callback(options.callback, options.scope, [options, true, response]); |
}, |
handleFailure : function(response, e){ |
this.transId = false; |
var options = response.argument.options; |
response.argument = options ? options.argument : null; |
this.fireEvent("requestexception", this, response, options, e); |
Ext.callback(options.failure, options.scope, [response, options]); |
Ext.callback(options.callback, options.scope, [options, false, response]); |
}, |
doFormUpload : function(o, ps, url){ |
var id = Ext.id(); |
var frame = document.createElement('iframe'); |
frame.id = id; |
frame.name = id; |
frame.className = 'x-hidden'; |
if(Ext.isIE){ |
frame.src = Ext.SSL_SECURE_URL; |
} |
document.body.appendChild(frame); |
if(Ext.isIE){ |
document.frames[id].name = id; |
} |
var form = Ext.getDom(o.form); |
form.target = id; |
form.method = 'POST'; |
form.enctype = form.encoding = 'multipart/form-data'; |
if(url){ |
form.action = url; |
} |
var hiddens, hd; |
if(ps){ |
hiddens = []; |
ps = Ext.urlDecode(ps, false); |
for(var k in ps){ |
if(ps.hasOwnProperty(k)){ |
hd = document.createElement('input'); |
hd.type = 'hidden'; |
hd.name = k; |
hd.value = ps[k]; |
form.appendChild(hd); |
hiddens.push(hd); |
} |
} |
} |
function cb(){ |
var r = { |
responseText : '', |
responseXML : null |
}; |
r.argument = o ? o.argument : null; |
try { |
var doc; |
if(Ext.isIE){ |
doc = frame.contentWindow.document; |
}else { |
doc = (frame.contentDocument || window.frames[id].document); |
} |
if(doc && doc.body){ |
r.responseText = doc.body.innerHTML; |
} |
if(doc && doc.XMLDocument){ |
r.responseXML = doc.XMLDocument; |
}else { |
r.responseXML = doc; |
} |
} |
catch(e) { |
} |
Ext.EventManager.removeListener(frame, 'load', cb, this); |
this.fireEvent("requestcomplete", this, r, o); |
Ext.callback(o.success, o.scope, [r, o]); |
Ext.callback(o.callback, o.scope, [o, true, r]); |
setTimeout(function(){Ext.removeNode(frame);}, 100); |
} |
Ext.EventManager.on(frame, 'load', cb, this); |
form.submit(); |
if(hiddens){ |
for(var i = 0, len = hiddens.length; i < len; i++){ |
Ext.removeNode(hiddens[i]); |
} |
} |
} |
}); |
Ext.Ajax = new Ext.data.Connection({ |
autoAbort : false, |
serializeForm : function(form){ |
return Ext.lib.Ajax.serializeForm(form); |
} |
}); |
Ext.Updater = function(el, forceNew){ |
el = Ext.get(el); |
if(!forceNew && el.updateManager){ |
return el.updateManager; |
} |
this.el = el; |
this.defaultUrl = null; |
this.addEvents( |
"beforeupdate", |
"update", |
"failure" |
); |
var d = Ext.Updater.defaults; |
this.sslBlankUrl = d.sslBlankUrl; |
this.disableCaching = d.disableCaching; |
this.indicatorText = d.indicatorText; |
this.showLoadIndicator = d.showLoadIndicator; |
this.timeout = d.timeout; |
this.loadScripts = d.loadScripts; |
this.transaction = null; |
this.autoRefreshProcId = null; |
this.refreshDelegate = this.refresh.createDelegate(this); |
this.updateDelegate = this.update.createDelegate(this); |
this.formUpdateDelegate = this.formUpdate.createDelegate(this); |
if(!this.renderer){ |
this.renderer = new Ext.Updater.BasicRenderer(); |
} |
Ext.Updater.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.Updater, Ext.util.Observable, { |
getEl : function(){ |
return this.el; |
}, |
update : function(url, params, callback, discardUrl){ |
if(this.fireEvent("beforeupdate", this.el, url, params) !== false){ |
var method = this.method, cfg, callerScope; |
if(typeof url == "object"){ |
cfg = url; |
url = cfg.url; |
params = params || cfg.params; |
callback = callback || cfg.callback; |
discardUrl = discardUrl || cfg.discardUrl; |
callerScope = cfg.scope; |
if(typeof cfg.method != "undefined"){method = cfg.method;}; |
if(typeof cfg.nocache != "undefined"){this.disableCaching = cfg.nocache;}; |
if(typeof cfg.text != "undefined"){this.indicatorText = '<div class="loading-indicator">'+cfg.text+"</div>";}; |
if(typeof cfg.scripts != "undefined"){this.loadScripts = cfg.scripts;}; |
if(typeof cfg.timeout != "undefined"){this.timeout = cfg.timeout;}; |
} |
this.showLoading(); |
if(!discardUrl){ |
this.defaultUrl = url; |
} |
if(typeof url == "function"){ |
url = url.call(this); |
} |
method = method || (params ? "POST" : "GET"); |
if(method == "GET"){ |
url = this.prepareUrl(url); |
} |
var o = Ext.apply(cfg ||{}, { |
url : url, |
params: (typeof params == "function" && callerScope) ? params.createDelegate(callerScope) : params, |
success: this.processSuccess, |
failure: this.processFailure, |
scope: this, |
callback: undefined, |
timeout: (this.timeout*1000), |
argument: { |
"options": cfg, |
"url": url, |
"form": null, |
"callback": callback, |
"scope": callerScope || window, |
"params": params |
} |
}); |
this.transaction = Ext.Ajax.request(o); |
} |
}, |
formUpdate : function(form, url, reset, callback){ |
if(this.fireEvent("beforeupdate", this.el, form, url) !== false){ |
if(typeof url == "function"){ |
url = url.call(this); |
} |
form = Ext.getDom(form) |
this.transaction = Ext.Ajax.request({ |
form: form, |
url:url, |
success: this.processSuccess, |
failure: this.processFailure, |
scope: this, |
timeout: (this.timeout*1000), |
argument: { |
"url": url, |
"form": form, |
"callback": callback, |
"reset": reset |
} |
}); |
this.showLoading.defer(1, this); |
} |
}, |
refresh : function(callback){ |
if(this.defaultUrl == null){ |
return; |
} |
this.update(this.defaultUrl, null, callback, true); |
}, |
startAutoRefresh : function(interval, url, params, callback, refreshNow){ |
if(refreshNow){ |
this.update(url || this.defaultUrl, params, callback, true); |
} |
if(this.autoRefreshProcId){ |
clearInterval(this.autoRefreshProcId); |
} |
this.autoRefreshProcId = setInterval(this.update.createDelegate(this, [url || this.defaultUrl, params, callback, true]), interval*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); |
} |
}, |
prepareUrl : function(url){ |
if(this.disableCaching){ |
var append = "_dc=" + (new Date().getTime()); |
if(url.indexOf("?") !== -1){ |
url += "&" + append; |
}else{ |
url += "?" + append; |
} |
} |
return url; |
}, |
processSuccess : function(response){ |
this.transaction = null; |
if(response.argument.form && response.argument.reset){ |
try{ |
response.argument.form.reset(); |
}catch(e){} |
} |
if(this.loadScripts){ |
this.renderer.render(this.el, response, this, |
this.updateComplete.createDelegate(this, [response])); |
}else{ |
this.renderer.render(this.el, response, this); |
this.updateComplete(response); |
} |
}, |
updateComplete : function(response){ |
this.fireEvent("update", this.el, response); |
if(typeof response.argument.callback == "function"){ |
response.argument.callback.call(response.argument.scope, this.el, true, response, response.argument.options); |
} |
}, |
processFailure : function(response){ |
this.transaction = null; |
this.fireEvent("failure", this.el, response); |
if(typeof response.argument.callback == "function"){ |
response.argument.callback.call(response.argument.scope, this.el, false, response, response.argument.options); |
} |
}, |
setRenderer : function(renderer){ |
this.renderer = renderer; |
}, |
getRenderer : function(){ |
return this.renderer; |
}, |
setDefaultUrl : function(defaultUrl){ |
this.defaultUrl = defaultUrl; |
}, |
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(el, url, params, options){ |
var um = Ext.get(el).getUpdater(); |
Ext.apply(um, options); |
um.update(url, params, options ? options.callback : null); |
}; |
Ext.Updater.update = Ext.Updater.updateElement; |
Ext.Updater.BasicRenderer = function(){}; |
Ext.Updater.BasicRenderer.prototype = { |
render : function(el, response, updateManager, callback){ |
el.update(response.responseText, updateManager.loadScripts, callback); |
} |
}; |
Ext.UpdateManager = Ext.Updater; |
Date.parseFunctions = {count:0}; |
Date.parseRegexes = []; |
Date.formatFunctions = {count:0}; |
Date.prototype.dateFormat = function(format) { |
if (Date.formatFunctions[format] == null) { |
Date.createNewFormat(format); |
} |
var func = Date.formatFunctions[format]; |
return this[func](); |
}; |
Date.prototype.format = Date.prototype.dateFormat; |
Date.createNewFormat = function(format) { |
var funcName = "format" + Date.formatFunctions.count++; |
Date.formatFunctions[format] = funcName; |
var code = "Date.prototype." + funcName + " = function(){return "; |
var special = false; |
var ch = ''; |
for (var i = 0; i < format.length; ++i) { |
ch = format.charAt(i); |
if (!special && ch == "\\") { |
special = true; |
} |
else if (special) { |
special = false; |
code += "'" + String.escape(ch) + "' + "; |
} |
else { |
code += Date.getFormatCode(ch); |
} |
} |
eval(code.substring(0, code.length - 3) + ";}"); |
}; |
Date.getFormatCode = function(character) { |
switch (character) { |
case "d": |
return "String.leftPad(this.getDate(), 2, '0') + "; |
case "D": |
return "Date.getShortDayName(this.getDay()) + "; case "j": |
return "this.getDate() + "; |
case "l": |
return "Date.dayNames[this.getDay()] + "; |
case "N": |
return "(this.getDay() ? this.getDay() : 7) + "; |
case "S": |
return "this.getSuffix() + "; |
case "w": |
return "this.getDay() + "; |
case "z": |
return "this.getDayOfYear() + "; |
case "W": |
return "String.leftPad(this.getWeekOfYear(), 2, '0') + "; |
case "F": |
return "Date.monthNames[this.getMonth()] + "; |
case "m": |
return "String.leftPad(this.getMonth() + 1, 2, '0') + "; |
case "M": |
return "Date.getShortMonthName(this.getMonth()) + "; case "n": |
return "(this.getMonth() + 1) + "; |
case "t": |
return "this.getDaysInMonth() + "; |
case "L": |
return "(this.isLeapYear() ? 1 : 0) + "; |
case "o": |
return "(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0))) + "; |
case "Y": |
return "this.getFullYear() + "; |
case "y": |
return "('' + this.getFullYear()).substring(2, 4) + "; |
case "a": |
return "(this.getHours() < 12 ? 'am' : 'pm') + "; |
case "A": |
return "(this.getHours() < 12 ? 'AM' : 'PM') + "; |
case "g": |
return "((this.getHours() % 12) ? this.getHours() % 12 : 12) + "; |
case "G": |
return "this.getHours() + "; |
case "h": |
return "String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0') + "; |
case "H": |
return "String.leftPad(this.getHours(), 2, '0') + "; |
case "i": |
return "String.leftPad(this.getMinutes(), 2, '0') + "; |
case "s": |
return "String.leftPad(this.getSeconds(), 2, '0') + "; |
case "u": |
return "String.leftPad(this.getMilliseconds(), 3, '0') + "; |
case "O": |
return "this.getGMTOffset() + "; |
case "P": |
return "this.getGMTOffset(true) + "; |
case "T": |
return "this.getTimezone() + "; |
case "Z": |
return "(this.getTimezoneOffset() * -60) + "; |
case "c": |
for (var df = Date.getFormatCode, c = "Y-m-dTH:i:sP", code = "", i = 0, l = c.length; i < l; ++i) { |
var e = c.charAt(i); |
code += e == "T" ? "'T' + " : df(e); } |
return code; |
case "U": |
return "Math.round(this.getTime() / 1000) + "; |
default: |
return "'" + String.escape(character) + "' + "; |
} |
}; |
Date.parseDate = function(input, format) { |
if (Date.parseFunctions[format] == null) { |
Date.createParser(format); |
} |
var func = Date.parseFunctions[format]; |
return Date[func](input); |
}; |
Date.createParser = function(format) { |
var funcName = "parse" + Date.parseFunctions.count++; |
var regexNum = Date.parseRegexes.length; |
var currentGroup = 1; |
Date.parseFunctions[format] = funcName; |
var code = "Date." + funcName + " = function(input){\n" |
+ "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, ms = -1, o, z, u, v;\n" |
+ "input = String(input);var d = new Date();\n" |
+ "y = d.getFullYear();\n" |
+ "m = d.getMonth();\n" |
+ "d = d.getDate();\n" |
+ "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n" |
+ "if (results && results.length > 0) {"; |
var regex = ""; |
var special = false; |
var ch = ''; |
for (var i = 0; i < format.length; ++i) { |
ch = format.charAt(i); |
if (!special && ch == "\\") { |
special = true; |
} |
else if (special) { |
special = false; |
regex += String.escape(ch); |
} |
else { |
var obj = Date.formatCodeToRegex(ch, currentGroup); |
currentGroup += obj.g; |
regex += obj.s; |
if (obj.g && obj.c) { |
code += obj.c; |
} |
} |
} |
code += "if (u)\n" |
+ "{v = new Date(u * 1000);}" + "else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0)\n" |
+ "{v = new Date(y, m, d, h, i, s, ms);}\n" |
+ "else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n" |
+ "{v = new Date(y, m, d, h, i, s);}\n" |
+ "else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n" |
+ "{v = new Date(y, m, d, h, i);}\n" |
+ "else if (y >= 0 && m >= 0 && d > 0 && h >= 0)\n" |
+ "{v = new Date(y, m, d, h);}\n" |
+ "else if (y >= 0 && m >= 0 && d > 0)\n" |
+ "{v = new Date(y, m, d);}\n" |
+ "else if (y >= 0 && m >= 0)\n" |
+ "{v = new Date(y, m);}\n" |
+ "else if (y >= 0)\n" |
+ "{v = new Date(y);}\n" |
+ "}return (v && (z || o))?\n" + " (z ? v.add(Date.SECOND, (v.getTimezoneOffset() * 60) + (z*1)) :\n" + " v.add(Date.HOUR, (v.getGMTOffset() / 100) + (o / -100))) : v\n" + ";}"; |
Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$", "i"); |
eval(code); |
}; |
Date.formatCodeToRegex = function(character, currentGroup) { |
switch (character) { |
case "d": |
return {g:1, |
c:"d = parseInt(results[" + currentGroup + "], 10);\n", |
s:"(\\d{2})"}; case "D": |
for (var a = [], i = 0; i < 7; a.push(Date.getShortDayName(i)), ++i); return {g:0, |
c:null, |
s:"(?:" + a.join("|") +")"}; |
case "j": |
return {g:1, |
c:"d = parseInt(results[" + currentGroup + "], 10);\n", |
s:"(\\d{1,2})"}; case "l": |
return {g:0, |
c:null, |
s:"(?:" + Date.dayNames.join("|") + ")"}; |
case "N": |
return {g:0, |
c:null, |
s:"[1-7]"}; case "S": |
return {g:0, |
c:null, |
s:"(?:st|nd|rd|th)"}; |
case "w": |
return {g:0, |
c:null, |
s:"[0-6]"}; case "z": |
return {g:0, |
c:null, |
s:"(?:\\d{1,3}"}; case "W": |
return {g:0, |
c:null, |
s:"(?:\\d{2})"}; case "F": |
return {g:1, |
c:"m = parseInt(Date.getMonthNumber(results[" + currentGroup + "]), 10);\n", s:"(" + Date.monthNames.join("|") + ")"}; |
case "m": |
return {g:1, |
c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n", |
s:"(\\d{2})"}; case "M": |
for (var a = [], i = 0; i < 12; a.push(Date.getShortMonthName(i)), ++i); return {g:1, |
c:"m = parseInt(Date.getMonthNumber(results[" + currentGroup + "]), 10);\n", s:"(" + a.join("|") + ")"}; |
case "n": |
return {g:1, |
c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n", |
s:"(\\d{1,2})"}; case "t": |
return {g:0, |
c:null, |
s:"(?:\\d{2})"}; case "L": |
return {g:0, |
c:null, |
s:"(?:1|0)"}; |
case "o": |
case "Y": |
return {g:1, |
c:"y = parseInt(results[" + currentGroup + "], 10);\n", |
s:"(\\d{4})"}; case "y": |
return {g:1, |
c:"var ty = parseInt(results[" + currentGroup + "], 10);\n" |
+ "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n", |
s:"(\\d{1,2})"}; case "a": |
return {g:1, |
c:"if (results[" + currentGroup + "] == 'am') {\n" |
+ "if (h == 12) { h = 0; }\n" |
+ "} else { if (h < 12) { h += 12; }}", |
s:"(am|pm)"}; |
case "A": |
return {g:1, |
c:"if (results[" + currentGroup + "] == 'AM') {\n" |
+ "if (h == 12) { h = 0; }\n" |
+ "} else { if (h < 12) { h += 12; }}", |
s:"(AM|PM)"}; |
case "g": |
case "G": |
return {g:1, |
c:"h = parseInt(results[" + currentGroup + "], 10);\n", |
s:"(\\d{1,2})"}; case "h": |
case "H": |
return {g:1, |
c:"h = parseInt(results[" + currentGroup + "], 10);\n", |
s:"(\\d{2})"}; case "i": |
return {g:1, |
c:"i = parseInt(results[" + currentGroup + "], 10);\n", |
s:"(\\d{2})"}; case "s": |
return {g:1, |
c:"s = parseInt(results[" + currentGroup + "], 10);\n", |
s:"(\\d{2})"}; case "u": |
return {g:1, |
c:"ms = parseInt(results[" + currentGroup + "], 10);\n", |
s:"(\\d{3})"}; case "O": |
return {g:1, |
c:[ |
"o = results[", currentGroup, "];\n", |
"var sn = o.substring(0,1);\n", "var hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60);\n", "var mn = o.substring(3,5) % 60;\n", "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))?\n", " (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n" |
].join(""), |
s: "([+\-]\\d{4})"}; case "P": |
return {g:1, |
c:[ |
"o = results[", currentGroup, "];\n", |
"var sn = o.substring(0,1);\n", "var hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60);\n", "var mn = o.substring(4,6) % 60;\n", "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))?\n", " (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n" |
].join(""), |
s: "([+\-]\\d{2}:\\d{2})"}; case "T": |
return {g:0, |
c:null, |
s:"[A-Z]{1,4}"}; case "Z": |
return {g:1, |
c:"z = results[" + currentGroup + "] * 1;\n" + "z = (-43200 <= z && z <= 50400)? z : null;\n", |
s:"([+\-]?\\d{1,5})"}; case "c": |
var df = Date.formatCodeToRegex, calc = []; |
var arr = [df("Y", 1), df("m", 2), df("d", 3), df("h", 4), df("i", 5), df("s", 6), df("P", 7)]; |
for (var i = 0, l = arr.length; i < l; ++i) { |
calc.push(arr[i].c); |
} |
return {g:1, |
c:calc.join(""), |
s:arr[0].s + "-" + arr[1].s + "-" + arr[2].s + "T" + arr[3].s + ":" + arr[4].s + ":" + arr[5].s + arr[6].s}; |
case "U": |
return {g:1, |
c:"u = parseInt(results[" + currentGroup + "], 10);\n", |
s:"(-?\\d+)"}; default: |
return {g:0, |
c:null, |
s:Ext.escapeRe(character)}; |
} |
}; |
Date.prototype.getTimezone = function() { |
return this.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/, "$1$2").replace(/[^A-Z]/g, ""); |
}; |
Date.prototype.getGMTOffset = function(colon) { |
return (this.getTimezoneOffset() > 0 ? "-" : "+") |
+ String.leftPad(Math.abs(Math.floor(this.getTimezoneOffset() / 60)), 2, "0") |
+ (colon ? ":" : "") |
+ String.leftPad(this.getTimezoneOffset() % 60, 2, "0"); |
}; |
Date.prototype.getDayOfYear = function() { |
var num = 0; |
Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; |
for (var i = 0; i < this.getMonth(); ++i) { |
num += Date.daysInMonth[i]; |
} |
return num + this.getDate() - 1; |
}; |
Date.prototype.getWeekOfYear = function() { |
var ms1d = 864e5; var ms7d = 7 * ms1d; var DC3 = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate() + 3) / ms1d; var AWN = Math.floor(DC3 / 7); var Wyr = new Date(AWN * ms7d).getUTCFullYear(); |
return AWN - Math.floor(Date.UTC(Wyr, 0, 7) / ms7d) + 1; |
}; |
Date.prototype.isLeapYear = function() { |
var year = this.getFullYear(); |
return !!((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year))); |
}; |
Date.prototype.getFirstDayOfMonth = function() { |
var day = (this.getDay() - (this.getDate() - 1)) % 7; |
return (day < 0) ? (day + 7) : day; |
}; |
Date.prototype.getLastDayOfMonth = function() { |
var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7; |
return (day < 0) ? (day + 7) : day; |
}; |
Date.prototype.getFirstDateOfMonth = function() { |
return new Date(this.getFullYear(), this.getMonth(), 1); |
}; |
Date.prototype.getLastDateOfMonth = function() { |
return new Date(this.getFullYear(), this.getMonth(), this.getDaysInMonth()); |
}; |
Date.prototype.getDaysInMonth = function() { |
Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; |
return Date.daysInMonth[this.getMonth()]; |
}; |
Date.prototype.getSuffix = function() { |
switch (this.getDate()) { |
case 1: |
case 21: |
case 31: |
return "st"; |
case 2: |
case 22: |
return "nd"; |
case 3: |
case 23: |
return "rd"; |
default: |
return "th"; |
} |
}; |
Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31]; |
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.dayNames = |
["Sunday", |
"Monday", |
"Tuesday", |
"Wednesday", |
"Thursday", |
"Friday", |
"Saturday"]; |
Date.getShortDayName = function(day) { |
return Date.dayNames[day].substring(0, 3); |
} |
Date.y2kYear = 50; |
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.prototype.clone = function() { |
return new Date(this.getTime()); |
}; |
Date.prototype.clearTime = function(clone){ |
if(clone){ |
return this.clone().clearTime(); |
} |
this.setHours(0); |
this.setMinutes(0); |
this.setSeconds(0); |
this.setMilliseconds(0); |
return this; |
}; |
if(Ext.isSafari){ |
Date.brokenSetMonth = Date.prototype.setMonth; |
Date.prototype.setMonth = function(num){ |
if(num <= -1){ |
var n = Math.ceil(-num); |
var back_year = Math.ceil(n/12); |
var month = (n % 12) ? 12 - n % 12 : 0 ; |
this.setFullYear(this.getFullYear() - back_year); |
return Date.brokenSetMonth.call(this, month); |
} else { |
return Date.brokenSetMonth.apply(this, arguments); |
} |
}; |
} |
Date.MILLI = "ms"; |
Date.SECOND = "s"; |
Date.MINUTE = "mi"; |
Date.HOUR = "h"; |
Date.DAY = "d"; |
Date.MONTH = "mo"; |
Date.YEAR = "y"; |
Date.prototype.add = function(interval, value){ |
var d = this.clone(); |
if (!interval || value === 0) return d; |
switch(interval.toLowerCase()){ |
case Date.MILLI: |
d.setMilliseconds(this.getMilliseconds() + value); |
break; |
case Date.SECOND: |
d.setSeconds(this.getSeconds() + value); |
break; |
case Date.MINUTE: |
d.setMinutes(this.getMinutes() + value); |
break; |
case Date.HOUR: |
d.setHours(this.getHours() + value); |
break; |
case Date.DAY: |
d.setDate(this.getDate() + value); |
break; |
case Date.MONTH: |
var day = this.getDate(); |
if(day > 28){ |
day = Math.min(day, this.getFirstDateOfMonth().add('mo', value).getLastDateOfMonth().getDate()); |
} |
d.setDate(day); |
d.setMonth(this.getMonth() + value); |
break; |
case Date.YEAR: |
d.setFullYear(this.getFullYear() + value); |
break; |
} |
return d; |
}; |
Date.prototype.between = function(start, end){ |
var t = this.getTime(); |
return start.getTime() <= t && t <= end.getTime(); |
} |
Ext.util.DelayedTask = function(fn, scope, args){ |
var id = null, d, t; |
var call = function(){ |
var now = new Date().getTime(); |
if(now - t >= d){ |
clearInterval(id); |
id = null; |
fn.apply(scope, args || []); |
} |
}; |
this.delay = function(delay, newFn, newScope, newArgs){ |
if(id && delay != d){ |
this.cancel(); |
} |
d = delay; |
t = new Date().getTime(); |
fn = newFn || fn; |
scope = newScope || scope; |
args = newArgs || args; |
if(!id){ |
id = setInterval(call, d); |
} |
}; |
this.cancel = function(){ |
if(id){ |
clearInterval(id); |
id = null; |
} |
}; |
}; |
Ext.util.TaskRunner = function(interval){ |
interval = interval || 10; |
var tasks = [], removeQueue = []; |
var id = 0; |
var running = false; |
var stopThread = function(){ |
running = false; |
clearInterval(id); |
id = 0; |
}; |
var startThread = function(){ |
if(!running){ |
running = true; |
id = setInterval(runTasks, interval); |
} |
}; |
var removeTask = function(t){ |
removeQueue.push(t); |
if(t.onStop){ |
t.onStop.apply(t.scope || t); |
} |
}; |
var runTasks = function(){ |
if(removeQueue.length > 0){ |
for(var i = 0, len = removeQueue.length; i < len; i++){ |
tasks.remove(removeQueue[i]); |
} |
removeQueue = []; |
if(tasks.length < 1){ |
stopThread(); |
return; |
} |
} |
var now = new Date().getTime(); |
for(var i = 0, len = tasks.length; i < len; ++i){ |
var t = tasks[i]; |
var itime = now - t.taskRunTime; |
if(t.interval <= itime){ |
var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]); |
t.taskRunTime = now; |
if(rt === false || t.taskRunCount === t.repeat){ |
removeTask(t); |
return; |
} |
} |
if(t.duration && t.duration <= (now - t.taskStartTime)){ |
removeTask(t); |
} |
} |
}; |
this.start = function(task){ |
tasks.push(task); |
task.taskStartTime = new Date().getTime(); |
task.taskRunTime = 0; |
task.taskRunCount = 0; |
startThread(); |
return task; |
}; |
this.stop = function(task){ |
removeTask(task); |
return task; |
}; |
this.stopAll = function(){ |
stopThread(); |
for(var i = 0, len = tasks.length; i < len; i++){ |
if(tasks[i].onStop){ |
tasks[i].onStop(); |
} |
} |
tasks = []; |
removeQueue = []; |
}; |
}; |
Ext.TaskMgr = new Ext.util.TaskRunner(); |
Ext.util.MixedCollection = function(allowFunctions, keyFn){ |
this.items = []; |
this.map = {}; |
this.keys = []; |
this.length = 0; |
this.addEvents( |
"clear", |
"add", |
"replace", |
"remove", |
"sort" |
); |
this.allowFunctions = allowFunctions === true; |
if(keyFn){ |
this.getKey = keyFn; |
} |
Ext.util.MixedCollection.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { |
allowFunctions : false, |
add : function(key, o){ |
if(arguments.length == 1){ |
o = arguments[0]; |
key = this.getKey(o); |
} |
if(typeof key == "undefined" || key === null){ |
this.length++; |
this.items.push(o); |
this.keys.push(null); |
}else{ |
var old = this.map[key]; |
if(old){ |
return this.replace(key, o); |
} |
this.length++; |
this.items.push(o); |
this.map[key] = o; |
this.keys.push(key); |
} |
this.fireEvent("add", this.length-1, o, key); |
return o; |
}, |
getKey : function(o){ |
return o.id; |
}, |
replace : function(key, o){ |
if(arguments.length == 1){ |
o = arguments[0]; |
key = this.getKey(o); |
} |
var old = this.item(key); |
if(typeof key == "undefined" || key === null || typeof old == "undefined"){ |
return this.add(key, o); |
} |
var index = this.indexOfKey(key); |
this.items[index] = o; |
this.map[key] = o; |
this.fireEvent("replace", key, old, o); |
return o; |
}, |
addAll : function(objs){ |
if(arguments.length > 1 || Ext.isArray(objs)){ |
var args = arguments.length > 1 ? arguments : objs; |
for(var i = 0, len = args.length; i < len; i++){ |
this.add(args[i]); |
} |
}else{ |
for(var key in objs){ |
if(this.allowFunctions || typeof objs[key] != "function"){ |
this.add(key, objs[key]); |
} |
} |
} |
}, |
each : function(fn, scope){ |
var items = [].concat(this.items); |
for(var i = 0, len = items.length; i < len; i++){ |
if(fn.call(scope || items[i], items[i], i, len) === false){ |
break; |
} |
} |
}, |
eachKey : function(fn, scope){ |
for(var i = 0, len = this.keys.length; i < len; i++){ |
fn.call(scope || window, this.keys[i], this.items[i], i, len); |
} |
}, |
find : function(fn, scope){ |
for(var i = 0, len = this.items.length; i < len; i++){ |
if(fn.call(scope || window, this.items[i], this.keys[i])){ |
return this.items[i]; |
} |
} |
return null; |
}, |
insert : function(index, key, o){ |
if(arguments.length == 2){ |
o = arguments[1]; |
key = this.getKey(o); |
} |
if(index >= this.length){ |
return this.add(key, o); |
} |
this.length++; |
this.items.splice(index, 0, o); |
if(typeof key != "undefined" && key != null){ |
this.map[key] = o; |
} |
this.keys.splice(index, 0, key); |
this.fireEvent("add", index, o, key); |
return o; |
}, |
remove : function(o){ |
return this.removeAt(this.indexOf(o)); |
}, |
removeAt : function(index){ |
if(index < this.length && index >= 0){ |
this.length--; |
var o = this.items[index]; |
this.items.splice(index, 1); |
var key = this.keys[index]; |
if(typeof key != "undefined"){ |
delete this.map[key]; |
} |
this.keys.splice(index, 1); |
this.fireEvent("remove", o, key); |
return o; |
} |
return false; |
}, |
removeKey : function(key){ |
return this.removeAt(this.indexOfKey(key)); |
}, |
getCount : function(){ |
return this.length; |
}, |
indexOf : function(o){ |
return this.items.indexOf(o); |
}, |
indexOfKey : function(key){ |
return this.keys.indexOf(key); |
}, |
item : function(key){ |
var item = typeof this.map[key] != "undefined" ? this.map[key] : this.items[key]; |
return typeof item != 'function' || this.allowFunctions ? item : null; |
}, |
itemAt : function(index){ |
return this.items[index]; |
}, |
key : function(key){ |
return this.map[key]; |
}, |
contains : function(o){ |
return this.indexOf(o) != -1; |
}, |
containsKey : function(key){ |
return typeof this.map[key] != "undefined"; |
}, |
clear : function(){ |
this.length = 0; |
this.items = []; |
this.keys = []; |
this.map = {}; |
this.fireEvent("clear"); |
}, |
first : function(){ |
return this.items[0]; |
}, |
last : function(){ |
return this.items[this.length-1]; |
}, |
_sort : function(property, dir, fn){ |
var dsc = String(dir).toUpperCase() == "DESC" ? -1 : 1; |
fn = fn || function(a, b){ |
return a-b; |
}; |
var c = [], k = this.keys, items = this.items; |
for(var i = 0, len = items.length; i < len; i++){ |
c[c.length] = {key: k[i], value: items[i], index: i}; |
} |
c.sort(function(a, b){ |
var v = fn(a[property], b[property]) * dsc; |
if(v == 0){ |
v = (a.index < b.index ? -1 : 1); |
} |
return v; |
}); |
for(var i = 0, len = c.length; i < len; i++){ |
items[i] = c[i].value; |
k[i] = c[i].key; |
} |
this.fireEvent("sort", this); |
}, |
sort : function(dir, fn){ |
this._sort("value", dir, fn); |
}, |
keySort : function(dir, fn){ |
this._sort("key", dir, fn || function(a, b){ |
return String(a).toUpperCase()-String(b).toUpperCase(); |
}); |
}, |
getRange : function(start, end){ |
var items = this.items; |
if(items.length < 1){ |
return []; |
} |
start = start || 0; |
end = Math.min(typeof end == "undefined" ? this.length-1 : end, this.length-1); |
var r = []; |
if(start <= end){ |
for(var i = start; i <= end; i++) { |
r[r.length] = items[i]; |
} |
}else{ |
for(var i = start; i >= end; i--) { |
r[r.length] = items[i]; |
} |
} |
return r; |
}, |
filter : function(property, value, anyMatch, caseSensitive){ |
if(Ext.isEmpty(value, false)){ |
return this.clone(); |
} |
value = this.createValueMatcher(value, anyMatch, caseSensitive); |
return this.filterBy(function(o){ |
return o && value.test(o[property]); |
}); |
}, |
filterBy : function(fn, scope){ |
var r = new Ext.util.MixedCollection(); |
r.getKey = this.getKey; |
var k = this.keys, it = this.items; |
for(var i = 0, len = it.length; i < len; i++){ |
if(fn.call(scope||this, it[i], k[i])){ |
r.add(k[i], it[i]); |
} |
} |
return r; |
}, |
findIndex : function(property, value, start, anyMatch, caseSensitive){ |
if(Ext.isEmpty(value, false)){ |
return -1; |
} |
value = this.createValueMatcher(value, anyMatch, caseSensitive); |
return this.findIndexBy(function(o){ |
return o && value.test(o[property]); |
}, null, start); |
}, |
findIndexBy : function(fn, scope, start){ |
var k = this.keys, it = this.items; |
for(var i = (start||0), len = it.length; i < len; i++){ |
if(fn.call(scope||this, it[i], k[i])){ |
return i; |
} |
} |
if(typeof start == 'number' && start > 0){ |
for(var i = 0; i < start; i++){ |
if(fn.call(scope||this, it[i], k[i])){ |
return i; |
} |
} |
} |
return -1; |
}, |
createValueMatcher : function(value, anyMatch, caseSensitive){ |
if(!value.exec){ |
value = String(value); |
value = new RegExp((anyMatch === true ? '' : '^') + Ext.escapeRe(value), caseSensitive ? '' : 'i'); |
} |
return value; |
}, |
clone : function(){ |
var r = new Ext.util.MixedCollection(); |
var k = this.keys, it = this.items; |
for(var i = 0, len = it.length; i < len; i++){ |
r.add(k[i], it[i]); |
} |
r.getKey = this.getKey; |
return r; |
} |
}); |
Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item; |
Ext.util.JSON = new (function(){ |
var useHasOwn = {}.hasOwnProperty ? true : false; |
var pad = function(n) { |
return n < 10 ? "0" + n : n; |
}; |
var m = { |
"\b": '\\b', |
"\t": '\\t', |
"\n": '\\n', |
"\f": '\\f', |
"\r": '\\r', |
'"' : '\\"', |
"\\": '\\\\' |
}; |
var encodeString = function(s){ |
if (/["\\\x00-\x1f]/.test(s)) { |
return '"' + s.replace(/([\x00-\x1f\\"])/g, function(a, b) { |
var c = m[b]; |
if(c){ |
return c; |
} |
c = b.charCodeAt(); |
return "\\u00" + |
Math.floor(c / 16).toString(16) + |
(c % 16).toString(16); |
}) + '"'; |
} |
return '"' + s + '"'; |
}; |
var encodeArray = function(o){ |
var a = ["["], b, i, l = o.length, v; |
for (i = 0; i < l; i += 1) { |
v = o[i]; |
switch (typeof v) { |
case "undefined": |
case "function": |
case "unknown": |
break; |
default: |
if (b) { |
a.push(','); |
} |
a.push(v === null ? "null" : Ext.util.JSON.encode(v)); |
b = true; |
} |
} |
a.push("]"); |
return a.join(""); |
}; |
var encodeDate = function(o){ |
return '"' + o.getFullYear() + "-" + |
pad(o.getMonth() + 1) + "-" + |
pad(o.getDate()) + "T" + |
pad(o.getHours()) + ":" + |
pad(o.getMinutes()) + ":" + |
pad(o.getSeconds()) + '"'; |
}; |
this.encode = function(o){ |
if(typeof o == "undefined" || o === null){ |
return "null"; |
}else if(Ext.isArray(o)){ |
return encodeArray(o); |
}else if(Ext.isDate(o)){ |
return encodeDate(o); |
}else if(typeof o == "string"){ |
return encodeString(o); |
}else if(typeof o == "number"){ |
return isFinite(o) ? String(o) : "null"; |
}else if(typeof o == "boolean"){ |
return String(o); |
}else { |
var a = ["{"], b, i, v; |
for (i in o) { |
if(!useHasOwn || o.hasOwnProperty(i)) { |
v = o[i]; |
switch (typeof v) { |
case "undefined": |
case "function": |
case "unknown": |
break; |
default: |
if(b){ |
a.push(','); |
} |
a.push(this.encode(i), ":", |
v === null ? "null" : this.encode(v)); |
b = true; |
} |
} |
} |
a.push("}"); |
return a.join(""); |
} |
}; |
this.decode = function(json){ |
return eval("(" + json + ')'); |
}; |
})(); |
Ext.encode = Ext.util.JSON.encode; |
Ext.decode = Ext.util.JSON.decode; |
Ext.util.Format = function(){ |
var trimRe = /^\s+|\s+$/g; |
return { |
ellipsis : function(value, len){ |
if(value && value.length > len){ |
return value.substr(0, len-3)+"..."; |
} |
return value; |
}, |
undef : function(value){ |
return value !== undefined ? value : ""; |
}, |
defaultValue : function(value, defaultValue){ |
return value !== undefined && value !== '' ? value : defaultValue; |
}, |
htmlEncode : function(value){ |
return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<").replace(/"/g, """); |
}, |
htmlDecode : function(value){ |
return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<").replace(/"/g, '"'); |
}, |
trim : function(value){ |
return String(value).replace(trimRe, ""); |
}, |
substr : function(value, start, length){ |
return String(value).substr(start, length); |
}, |
lowercase : function(value){ |
return String(value).toLowerCase(); |
}, |
uppercase : function(value){ |
return String(value).toUpperCase(); |
}, |
capitalize : function(value){ |
return !value ? value : value.charAt(0).toUpperCase() + value.substr(1).toLowerCase(); |
}, |
call : function(value, fn){ |
if(arguments.length > 2){ |
var args = Array.prototype.slice.call(arguments, 2); |
args.unshift(value); |
return eval(fn).apply(window, args); |
}else{ |
return eval(fn).call(window, value); |
} |
}, |
usMoney : function(v){ |
v = (Math.round((v-0)*100))/100; |
v = (v == Math.floor(v)) ? v + ".00" : ((v*10 == Math.floor(v*10)) ? v + "0" : v); |
v = String(v); |
var ps = v.split('.'); |
var whole = ps[0]; |
var sub = ps[1] ? '.'+ ps[1] : '.00'; |
var r = /(\d+)(\d{3})/; |
while (r.test(whole)) { |
whole = whole.replace(r, '$1' + ',' + '$2'); |
} |
v = whole + sub; |
if(v.charAt(0) == '-'){ |
return '-$' + v.substr(1); |
} |
return "$" + v; |
}, |
date : function(v, format){ |
if(!v){ |
return ""; |
} |
if(!Ext.isDate(v)){ |
v = new Date(Date.parse(v)); |
} |
return v.dateFormat(format || "m/d/Y"); |
}, |
dateRenderer : function(format){ |
return function(v){ |
return Ext.util.Format.date(v, format); |
}; |
}, |
stripTagsRE : /<\/?[^>]+>/gi, |
stripTags : function(v){ |
return !v ? v : String(v).replace(this.stripTagsRE, ""); |
}, |
stripScriptsRe : /(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig, |
stripScripts : function(v){ |
return !v ? v : String(v).replace(this.stripScriptsRe, ""); |
}, |
fileSize : function(size){ |
if(size < 1024) { |
return size + " bytes"; |
} else if(size < 1048576) { |
return (Math.round(((size*10) / 1024))/10) + " KB"; |
} else { |
return (Math.round(((size*10) / 1048576))/10) + " MB"; |
} |
}, |
math : function(){ |
var fns = {}; |
return function(v, a){ |
if(!fns[a]){ |
fns[a] = new Function('v', 'return v ' + a + ';'); |
} |
return fns[a](v); |
} |
}() |
}; |
}(); |
Ext.XTemplate = function(){ |
Ext.XTemplate.superclass.constructor.apply(this, arguments); |
var s = this.html; |
s = ['<tpl>', s, '</tpl>'].join(''); |
var re = /<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/; |
var nameRe = /^<tpl\b[^>]*?for="(.*?)"/; |
var ifRe = /^<tpl\b[^>]*?if="(.*?)"/; |
var execRe = /^<tpl\b[^>]*?exec="(.*?)"/; |
var m, id = 0; |
var tpls = []; |
while(m = s.match(re)){ |
var m2 = m[0].match(nameRe); |
var m3 = m[0].match(ifRe); |
var m4 = m[0].match(execRe); |
var exp = null, fn = null, exec = null; |
var name = m2 && m2[1] ? m2[1] : ''; |
if(m3){ |
exp = m3 && m3[1] ? m3[1] : null; |
if(exp){ |
fn = new Function('values', 'parent', 'xindex', 'xcount', 'with(values){ return '+(Ext.util.Format.htmlDecode(exp))+'; }'); |
} |
} |
if(m4){ |
exp = m4 && m4[1] ? m4[1] : null; |
if(exp){ |
exec = new Function('values', 'parent', 'xindex', 'xcount', 'with(values){ '+(Ext.util.Format.htmlDecode(exp))+'; }'); |
} |
} |
if(name){ |
switch(name){ |
case '.': name = new Function('values', 'parent', 'with(values){ return values; }'); break; |
case '..': name = new Function('values', 'parent', 'with(values){ return parent; }'); break; |
default: name = new Function('values', 'parent', 'with(values){ return '+name+'; }'); |
} |
} |
tpls.push({ |
id: id, |
target: name, |
exec: exec, |
test: fn, |
body: m[1]||'' |
}); |
s = s.replace(m[0], '{xtpl'+ id + '}'); |
++id; |
} |
for(var i = tpls.length-1; i >= 0; --i){ |
this.compileTpl(tpls[i]); |
} |
this.master = tpls[tpls.length-1]; |
this.tpls = tpls; |
}; |
Ext.extend(Ext.XTemplate, Ext.Template, { |
re : /\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g, |
codeRe : /\{\[((?:\\\]|.|\n)*?)\]\}/g, |
applySubTemplate : function(id, values, parent, xindex, xcount){ |
var t = this.tpls[id]; |
if(t.test && !t.test.call(this, values, parent, xindex, xcount)){ |
return ''; |
} |
if(t.exec && t.exec.call(this, values, parent, xindex, xcount)){ |
return ''; |
} |
var vs = t.target ? t.target.call(this, values, parent) : values; |
parent = t.target ? values : parent; |
if(t.target && Ext.isArray(vs)){ |
var buf = []; |
for(var i = 0, len = vs.length; i < len; i++){ |
buf[buf.length] = t.compiled.call(this, vs[i], parent, i+1, len); |
} |
return buf.join(''); |
} |
return t.compiled.call(this, vs, parent, xindex, xcount); |
}, |
compileTpl : function(tpl){ |
var fm = Ext.util.Format; |
var useF = this.disableFormats !== true; |
var sep = Ext.isGecko ? "+" : ","; |
var fn = function(m, name, format, args, math){ |
if(name.substr(0, 4) == 'xtpl'){ |
return "'"+ sep +'this.applySubTemplate('+name.substr(4)+', values, parent, xindex, xcount)'+sep+"'"; |
} |
var v; |
if(name === '.'){ |
v = 'values'; |
}else if(name === '#'){ |
v = 'xindex'; |
}else if(name.indexOf('.') != -1){ |
v = name; |
}else{ |
v = "values['" + name + "']"; |
} |
if(math){ |
v = '(' + v + math + ')'; |
} |
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 = "("+v+" === undefined ? '' : "; |
} |
return "'"+ sep + format + v + args + ")"+sep+"'"; |
}; |
var codeFn = function(m, code){ |
return "'"+ sep +'('+code+')'+sep+"'"; |
}; |
var body; |
if(Ext.isGecko){ |
body = "tpl.compiled = function(values, parent, xindex, xcount){ return '" + |
tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn).replace(this.codeRe, codeFn) + |
"';};"; |
}else{ |
body = ["tpl.compiled = function(values, parent, xindex, xcount){ return ['"]; |
body.push(tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn).replace(this.codeRe, codeFn)); |
body.push("'].join('');};"); |
body = body.join(''); |
} |
eval(body); |
return this; |
}, |
apply : function(values){ |
return this.master.compiled.call(this, values, {}, 1, 1); |
}, |
applyTemplate : function(values){ |
return this.master.compiled.call(this, values, {}, 1, 1); |
}, |
compile : function(){return this;} |
}); |
Ext.XTemplate.from = function(el){ |
el = Ext.getDom(el); |
return new Ext.XTemplate(el.value || el.innerHTML); |
}; |
Ext.util.CSS = function(){ |
var rules = null; |
var doc = document; |
var camelRe = /(-[a-z])/gi; |
var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); }; |
return { |
createStyleSheet : function(cssText, id){ |
var ss; |
var head = doc.getElementsByTagName("head")[0]; |
var rules = doc.createElement("style"); |
rules.setAttribute("type", "text/css"); |
if(id){ |
rules.setAttribute("id", id); |
} |
if(Ext.isIE){ |
head.appendChild(rules); |
ss = rules.styleSheet; |
ss.cssText = cssText; |
}else{ |
try{ |
rules.appendChild(doc.createTextNode(cssText)); |
}catch(e){ |
rules.cssText = cssText; |
} |
head.appendChild(rules); |
ss = rules.styleSheet ? rules.styleSheet : (rules.sheet || doc.styleSheets[doc.styleSheets.length-1]); |
} |
this.cacheStyleSheet(ss); |
return ss; |
}, |
removeStyleSheet : function(id){ |
var existing = doc.getElementById(id); |
if(existing){ |
existing.parentNode.removeChild(existing); |
} |
}, |
swapStyleSheet : function(id, url){ |
this.removeStyleSheet(id); |
var ss = doc.createElement("link"); |
ss.setAttribute("rel", "stylesheet"); |
ss.setAttribute("type", "text/css"); |
ss.setAttribute("id", id); |
ss.setAttribute("href", url); |
doc.getElementsByTagName("head")[0].appendChild(ss); |
}, |
refreshCache : function(){ |
return this.getRules(true); |
}, |
cacheStyleSheet : function(ss){ |
if(!rules){ |
rules = {}; |
} |
try{ |
var ssRules = ss.cssRules || ss.rules; |
for(var j = ssRules.length-1; j >= 0; --j){ |
rules[ssRules[j].selectorText] = ssRules[j]; |
} |
}catch(e){} |
}, |
getRules : function(refreshCache){ |
if(rules == null || refreshCache){ |
rules = {}; |
var ds = doc.styleSheets; |
for(var i =0, len = ds.length; i < len; i++){ |
try{ |
this.cacheStyleSheet(ds[i]); |
}catch(e){} |
} |
} |
return rules; |
}, |
getRule : function(selector, refreshCache){ |
var rs = this.getRules(refreshCache); |
if(!Ext.isArray(selector)){ |
return rs[selector]; |
} |
for(var i = 0; i < selector.length; i++){ |
if(rs[selector[i]]){ |
return rs[selector[i]]; |
} |
} |
return null; |
}, |
updateRule : function(selector, property, value){ |
if(!Ext.isArray(selector)){ |
var rule = this.getRule(selector); |
if(rule){ |
rule.style[property.replace(camelRe, camelFn)] = value; |
return true; |
} |
}else{ |
for(var i = 0; i < selector.length; i++){ |
if(this.updateRule(selector[i], property, value)){ |
return true; |
} |
} |
} |
return false; |
} |
}; |
}(); |
Ext.util.ClickRepeater = function(el, config) |
{ |
this.el = Ext.get(el); |
this.el.unselectable(); |
Ext.apply(this, config); |
this.addEvents( |
"mousedown", |
"click", |
"mouseup" |
); |
this.el.on("mousedown", this.handleMouseDown, this); |
if(this.preventDefault || this.stopDefault){ |
this.el.on("click", function(e){ |
if(this.preventDefault){ |
e.preventDefault(); |
} |
if(this.stopDefault){ |
e.stopEvent(); |
} |
}, this); |
} |
if(this.handler){ |
this.on("click", this.handler, this.scope || this); |
} |
Ext.util.ClickRepeater.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.util.ClickRepeater, Ext.util.Observable, { |
interval : 20, |
delay: 250, |
preventDefault : true, |
stopDefault : false, |
timer : 0, |
handleMouseDown : function(){ |
clearTimeout(this.timer); |
this.el.blur(); |
if(this.pressClass){ |
this.el.addClass(this.pressClass); |
} |
this.mousedownTime = new Date(); |
Ext.getDoc().on("mouseup", this.handleMouseUp, this); |
this.el.on("mouseout", this.handleMouseOut, this); |
this.fireEvent("mousedown", this); |
this.fireEvent("click", this); |
if (this.accelerate) { |
this.delay = 400; |
} |
this.timer = this.click.defer(this.delay || this.interval, this); |
}, |
click : function(){ |
this.fireEvent("click", this); |
this.timer = this.click.defer(this.accelerate ? |
this.easeOutExpo(this.mousedownTime.getElapsed(), |
400, |
-390, |
12000) : |
this.interval, this); |
}, |
easeOutExpo : function (t, b, c, d) { |
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; |
}, |
handleMouseOut : function(){ |
clearTimeout(this.timer); |
if(this.pressClass){ |
this.el.removeClass(this.pressClass); |
} |
this.el.on("mouseover", this.handleMouseReturn, this); |
}, |
handleMouseReturn : function(){ |
this.el.un("mouseover", this.handleMouseReturn); |
if(this.pressClass){ |
this.el.addClass(this.pressClass); |
} |
this.click(); |
}, |
handleMouseUp : function(){ |
clearTimeout(this.timer); |
this.el.un("mouseover", this.handleMouseReturn); |
this.el.un("mouseout", this.handleMouseOut); |
Ext.getDoc().un("mouseup", this.handleMouseUp); |
this.el.removeClass(this.pressClass); |
this.fireEvent("mouseup", this); |
} |
}); |
Ext.KeyNav = function(el, config){ |
this.el = Ext.get(el); |
Ext.apply(this, config); |
if(!this.disabled){ |
this.disabled = true; |
this.enable(); |
} |
}; |
Ext.KeyNav.prototype = { |
disabled : false, |
defaultEventAction: "stopEvent", |
forceKeyDown : false, |
prepareEvent : function(e){ |
var k = e.getKey(); |
var h = this.keyToHandler[k]; |
if(Ext.isSafari && h && k >= 37 && k <= 40){ |
e.stopEvent(); |
} |
}, |
relay : function(e){ |
var k = e.getKey(); |
var h = this.keyToHandler[k]; |
if(h && this[h]){ |
if(this.doRelay(e, this[h], h) !== true){ |
e[this.defaultEventAction](); |
} |
} |
}, |
doRelay : function(e, h, hname){ |
return h.call(this.scope || this, e); |
}, |
enter : false, |
left : false, |
right : false, |
up : false, |
down : false, |
tab : false, |
esc : false, |
pageUp : false, |
pageDown : false, |
del : false, |
home : false, |
end : false, |
keyToHandler : { |
37 : "left", |
39 : "right", |
38 : "up", |
40 : "down", |
33 : "pageUp", |
34 : "pageDown", |
46 : "del", |
36 : "home", |
35 : "end", |
13 : "enter", |
27 : "esc", |
9 : "tab" |
}, |
enable: function(){ |
if(this.disabled){ |
if(this.forceKeyDown || Ext.isIE || Ext.isAir){ |
this.el.on("keydown", this.relay, this); |
}else{ |
this.el.on("keydown", this.prepareEvent, this); |
this.el.on("keypress", this.relay, this); |
} |
this.disabled = false; |
} |
}, |
disable: function(){ |
if(!this.disabled){ |
if(this.forceKeyDown || Ext.isIE || Ext.isAir){ |
this.el.un("keydown", this.relay); |
}else{ |
this.el.un("keydown", this.prepareEvent); |
this.el.un("keypress", this.relay); |
} |
this.disabled = true; |
} |
} |
}; |
Ext.KeyMap = function(el, config, eventName){ |
this.el = Ext.get(el); |
this.eventName = eventName || "keydown"; |
this.bindings = []; |
if(config){ |
this.addBinding(config); |
} |
this.enable(); |
}; |
Ext.KeyMap.prototype = { |
stopEvent : false, |
addBinding : function(config){ |
if(Ext.isArray(config)){ |
for(var i = 0, len = config.length; i < len; i++){ |
this.addBinding(config[i]); |
} |
return; |
} |
var keyCode = config.key, |
shift = config.shift, |
ctrl = config.ctrl, |
alt = config.alt, |
fn = config.fn || config.handler, |
scope = config.scope; |
if(typeof keyCode == "string"){ |
var ks = []; |
var keyString = keyCode.toUpperCase(); |
for(var j = 0, len = keyString.length; j < len; j++){ |
ks.push(keyString.charCodeAt(j)); |
} |
keyCode = ks; |
} |
var keyArray = Ext.isArray(keyCode); |
var handler = function(e){ |
if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) && (!alt || e.altKey)){ |
var k = e.getKey(); |
if(keyArray){ |
for(var i = 0, len = keyCode.length; i < len; i++){ |
if(keyCode[i] == k){ |
if(this.stopEvent){ |
e.stopEvent(); |
} |
fn.call(scope || window, k, e); |
return; |
} |
} |
}else{ |
if(k == keyCode){ |
if(this.stopEvent){ |
e.stopEvent(); |
} |
fn.call(scope || window, k, e); |
} |
} |
} |
}; |
this.bindings.push(handler); |
}, |
on : function(key, fn, scope){ |
var keyCode, shift, ctrl, alt; |
if(typeof key == "object" && !Ext.isArray(key)){ |
keyCode = key.key; |
shift = key.shift; |
ctrl = key.ctrl; |
alt = key.alt; |
}else{ |
keyCode = key; |
} |
this.addBinding({ |
key: keyCode, |
shift: shift, |
ctrl: ctrl, |
alt: alt, |
fn: fn, |
scope: scope |
}) |
}, |
handleKeyDown : function(e){ |
if(this.enabled){ |
var b = this.bindings; |
for(var i = 0, len = b.length; i < len; i++){ |
b[i].call(this, e); |
} |
} |
}, |
isEnabled : function(){ |
return this.enabled; |
}, |
enable: function(){ |
if(!this.enabled){ |
this.el.on(this.eventName, this.handleKeyDown, this); |
this.enabled = true; |
} |
}, |
disable: function(){ |
if(this.enabled){ |
this.el.removeListener(this.eventName, this.handleKeyDown, this); |
this.enabled = false; |
} |
} |
}; |
Ext.util.TextMetrics = function(){ |
var shared; |
return { |
measure : function(el, text, fixedWidth){ |
if(!shared){ |
shared = Ext.util.TextMetrics.Instance(el, fixedWidth); |
} |
shared.bind(el); |
shared.setFixedWidth(fixedWidth || 'auto'); |
return shared.getSize(text); |
}, |
createInstance : function(el, fixedWidth){ |
return Ext.util.TextMetrics.Instance(el, fixedWidth); |
} |
}; |
}(); |
Ext.util.TextMetrics.Instance = function(bindTo, fixedWidth){ |
var ml = new Ext.Element(document.createElement('div')); |
document.body.appendChild(ml.dom); |
ml.position('absolute'); |
ml.setLeftTop(-1000, -1000); |
ml.hide(); |
if(fixedWidth){ |
ml.setWidth(fixedWidth); |
} |
var instance = { |
getSize : function(text){ |
ml.update(text); |
var s = ml.getSize(); |
ml.update(''); |
return s; |
}, |
bind : function(el){ |
ml.setStyle( |
Ext.fly(el).getStyles('font-size','font-style', 'font-weight', 'font-family','line-height') |
); |
}, |
setFixedWidth : function(width){ |
ml.setWidth(width); |
}, |
getWidth : function(text){ |
ml.dom.style.width = 'auto'; |
return this.getSize(text).width; |
}, |
getHeight : function(text){ |
return this.getSize(text).height; |
} |
}; |
instance.bind(bindTo); |
return instance; |
}; |
Ext.Element.measureText = Ext.util.TextMetrics.measure; |
(function() { |
var Event=Ext.EventManager; |
var Dom=Ext.lib.Dom; |
Ext.dd.DragDrop = function(id, sGroup, config) { |
if(id) { |
this.init(id, sGroup, config); |
} |
}; |
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(x, y) { }, |
startDrag: function(x, y) { }, |
b4Drag: function(e) { }, |
onDrag: function(e) { }, |
onDragEnter: function(e, id) { }, |
b4DragOver: function(e) { }, |
onDragOver: function(e, id) { }, |
b4DragOut: function(e) { }, |
onDragOut: function(e, id) { }, |
b4DragDrop: function(e) { }, |
onDragDrop: function(e, id) { }, |
onInvalidDrop: function(e) { }, |
b4EndDrag: function(e) { }, |
endDrag: function(e) { }, |
b4MouseDown: function(e) { }, |
onMouseDown: function(e) { }, |
onMouseUp: function(e) { }, |
onAvailable: function () { |
}, |
defaultPadding : {left:0, right:0, top:0, bottom:0}, |
constrainTo : function(constrainTo, pad, inContent){ |
if(typeof pad == "number"){ |
pad = {left: pad, right:pad, top:pad, bottom:pad}; |
} |
pad = pad || this.defaultPadding; |
var b = Ext.get(this.getEl()).getBox(); |
var ce = Ext.get(constrainTo); |
var s = ce.getScroll(); |
var c, cd = ce.dom; |
if(cd == document.body){ |
c = { x: s.left, y: s.top, width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()}; |
}else{ |
var xy = ce.getXY(); |
c = {x : xy[0]+s.left, y: xy[1]+s.top, width: cd.clientWidth, height: cd.clientHeight}; |
} |
var topSpace = b.y - c.y; |
var leftSpace = b.x - c.x; |
this.resetConstraints(); |
this.setXConstraint(leftSpace - (pad.left||0), |
c.width - leftSpace - b.width - (pad.right||0), |
this.xTickSize |
); |
this.setYConstraint(topSpace - (pad.top||0), |
c.height - topSpace - b.height - (pad.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(id, sGroup, config) { |
this.initTarget(id, sGroup, config); |
Event.on(this.id, "mousedown", this.handleMouseDown, this); |
}, |
initTarget: function(id, sGroup, config) { |
this.config = config || {}; |
this.DDM = Ext.dd.DDM; |
this.groups = {}; |
if (typeof id !== "string") { |
id = Ext.id(id); |
} |
this.id = id; |
this.addToGroup((sGroup) ? sGroup : "default"); |
this.handleElId = id; |
this.setDragElId(id); |
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(iTop, iRight, iBot, iLeft) { |
if (!iRight && 0 !== iRight) { |
this.padding = [iTop, iTop, iTop, iTop]; |
} else if (!iBot && 0 !== iBot) { |
this.padding = [iTop, iRight, iTop, iRight]; |
} else { |
this.padding = [iTop, iRight, iBot, iLeft]; |
} |
}, |
setInitPosition: function(diffX, diffY) { |
var el = this.getEl(); |
if (!this.DDM.verifyEl(el)) { |
return; |
} |
var dx = diffX || 0; |
var dy = diffY || 0; |
var p = Dom.getXY( el ); |
this.initPageX = p[0] - dx; |
this.initPageY = p[1] - dy; |
this.lastPageX = p[0]; |
this.lastPageY = p[1]; |
this.setStartPosition(p); |
}, |
setStartPosition: function(pos) { |
var p = pos || Dom.getXY( this.getEl() ); |
this.deltaSetXY = null; |
this.startPageX = p[0]; |
this.startPageY = p[1]; |
}, |
addToGroup: function(sGroup) { |
this.groups[sGroup] = true; |
this.DDM.regDragDrop(this, sGroup); |
}, |
removeFromGroup: function(sGroup) { |
if (this.groups[sGroup]) { |
delete this.groups[sGroup]; |
} |
this.DDM.removeDDFromGroup(this, sGroup); |
}, |
setDragElId: function(id) { |
this.dragElId = id; |
}, |
setHandleElId: function(id) { |
if (typeof id !== "string") { |
id = Ext.id(id); |
} |
this.handleElId = id; |
this.DDM.regHandle(this.id, id); |
}, |
setOuterHandleElId: function(id) { |
if (typeof id !== "string") { |
id = Ext.id(id); |
} |
Event.on(id, "mousedown", |
this.handleMouseDown, this); |
this.setHandleElId(id); |
this.hasOuterHandles = true; |
}, |
unreg: function() { |
Event.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, oDD){ |
if (this.primaryButtonOnly && e.button != 0) { |
return; |
} |
if (this.isLocked()) { |
return; |
} |
this.DDM.refreshCache(this.groups); |
var pt = new Ext.lib.Point(Ext.lib.Event.getPageX(e), Ext.lib.Event.getPageY(e)); |
if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, 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(e) { |
var target = e.getTarget(); |
return ( this.isValidHandleChild(target) && |
(this.id == this.handleElId || |
this.DDM.handleWasClicked(target, this.id)) ); |
}, |
addInvalidHandleType: function(tagName) { |
var type = tagName.toUpperCase(); |
this.invalidHandleTypes[type] = type; |
}, |
addInvalidHandleId: function(id) { |
if (typeof id !== "string") { |
id = Ext.id(id); |
} |
this.invalidHandleIds[id] = id; |
}, |
addInvalidHandleClass: function(cssClass) { |
this.invalidHandleClasses.push(cssClass); |
}, |
removeInvalidHandleType: function(tagName) { |
var type = tagName.toUpperCase(); |
delete this.invalidHandleTypes[type]; |
}, |
removeInvalidHandleId: function(id) { |
if (typeof id !== "string") { |
id = Ext.id(id); |
} |
delete this.invalidHandleIds[id]; |
}, |
removeInvalidHandleClass: function(cssClass) { |
for (var i=0, len=this.invalidHandleClasses.length; i<len; ++i) { |
if (this.invalidHandleClasses[i] == cssClass) { |
delete this.invalidHandleClasses[i]; |
} |
} |
}, |
isValidHandleChild: function(node) { |
var valid = true; |
var nodeName; |
try { |
nodeName = node.nodeName.toUpperCase(); |
} catch(e) { |
nodeName = node.nodeName; |
} |
valid = valid && !this.invalidHandleTypes[nodeName]; |
valid = valid && !this.invalidHandleIds[node.id]; |
for (var i=0, len=this.invalidHandleClasses.length; valid && i<len; ++i) { |
valid = !Dom.hasClass(node, this.invalidHandleClasses[i]); |
} |
return valid; |
}, |
setXTicks: function(iStartX, iTickSize) { |
this.xTicks = []; |
this.xTickSize = iTickSize; |
var tickMap = {}; |
for (var i = this.initPageX; i >= this.minX; i = i - iTickSize) { |
if (!tickMap[i]) { |
this.xTicks[this.xTicks.length] = i; |
tickMap[i] = true; |
} |
} |
for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) { |
if (!tickMap[i]) { |
this.xTicks[this.xTicks.length] = i; |
tickMap[i] = true; |
} |
} |
this.xTicks.sort(this.DDM.numericSort) ; |
}, |
setYTicks: function(iStartY, iTickSize) { |
this.yTicks = []; |
this.yTickSize = iTickSize; |
var tickMap = {}; |
for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) { |
if (!tickMap[i]) { |
this.yTicks[this.yTicks.length] = i; |
tickMap[i] = true; |
} |
} |
for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) { |
if (!tickMap[i]) { |
this.yTicks[this.yTicks.length] = i; |
tickMap[i] = true; |
} |
} |
this.yTicks.sort(this.DDM.numericSort) ; |
}, |
setXConstraint: function(iLeft, iRight, iTickSize) { |
this.leftConstraint = iLeft; |
this.rightConstraint = iRight; |
this.minX = this.initPageX - iLeft; |
this.maxX = this.initPageX + iRight; |
if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); } |
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(iUp, iDown, iTickSize) { |
this.topConstraint = iUp; |
this.bottomConstraint = iDown; |
this.minY = this.initPageY - iUp; |
this.maxY = this.initPageY + iDown; |
if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); } |
this.constrainY = true; |
}, |
resetConstraints: function() { |
if (this.initPageX || this.initPageX === 0) { |
var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0; |
var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0; |
this.setInitPosition(dx, dy); |
} 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(val, tickArray) { |
if (!tickArray) { |
return val; |
} else if (tickArray[0] >= val) { |
return tickArray[0]; |
} else { |
for (var i=0, len=tickArray.length; i<len; ++i) { |
var next = i + 1; |
if (tickArray[next] && tickArray[next] >= val) { |
var diff1 = val - tickArray[i]; |
var diff2 = tickArray[next] - val; |
return (diff2 > diff1) ? tickArray[i] : tickArray[next]; |
} |
} |
return tickArray[tickArray.length - 1]; |
} |
}, |
toString: function() { |
return ("DragDrop " + this.id); |
} |
}; |
})(); |
if (!Ext.dd.DragDropMgr) { |
Ext.dd.DragDropMgr = function() { |
var Event = Ext.EventManager; |
return { |
ids: {}, |
handleIds: {}, |
dragCurrent: null, |
dragOvers: {}, |
deltaX: 0, |
deltaY: 0, |
preventDefault: true, |
stopPropagation: true, |
initalized: false, |
locked: false, |
init: function() { |
this.initialized = true; |
}, |
POINT: 0, |
INTERSECT: 1, |
mode: 0, |
_execOnAll: function(sMethod, args) { |
for (var i in this.ids) { |
for (var j in this.ids[i]) { |
var oDD = this.ids[i][j]; |
if (! this.isTypeOfDD(oDD)) { |
continue; |
} |
oDD[sMethod].apply(oDD, args); |
} |
} |
}, |
_onLoad: function() { |
this.init(); |
Event.on(document, "mouseup", this.handleMouseUp, this, true); |
Event.on(document, "mousemove", this.handleMouseMove, this, true); |
Event.on(window, "unload", this._onUnload, this, true); |
Event.on(window, "resize", this._onResize, this, true); |
}, |
_onResize: function(e) { |
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(oDD, sGroup) { |
if (!this.initialized) { this.init(); } |
if (!this.ids[sGroup]) { |
this.ids[sGroup] = {}; |
} |
this.ids[sGroup][oDD.id] = oDD; |
}, |
removeDDFromGroup: function(oDD, sGroup) { |
if (!this.ids[sGroup]) { |
this.ids[sGroup] = {}; |
} |
var obj = this.ids[sGroup]; |
if (obj && obj[oDD.id]) { |
delete obj[oDD.id]; |
} |
}, |
_remove: function(oDD) { |
for (var g in oDD.groups) { |
if (g && this.ids[g][oDD.id]) { |
delete this.ids[g][oDD.id]; |
} |
} |
delete this.handleIds[oDD.id]; |
}, |
regHandle: function(sDDId, sHandleId) { |
if (!this.handleIds[sDDId]) { |
this.handleIds[sDDId] = {}; |
} |
this.handleIds[sDDId][sHandleId] = sHandleId; |
}, |
isDragDrop: function(id) { |
return ( this.getDDById(id) ) ? true : false; |
}, |
getRelated: function(p_oDD, bTargetsOnly) { |
var oDDs = []; |
for (var i in p_oDD.groups) { |
for (j in this.ids[i]) { |
var dd = this.ids[i][j]; |
if (! this.isTypeOfDD(dd)) { |
continue; |
} |
if (!bTargetsOnly || dd.isTarget) { |
oDDs[oDDs.length] = dd; |
} |
} |
} |
return oDDs; |
}, |
isLegalTarget: function (oDD, oTargetDD) { |
var targets = this.getRelated(oDD, true); |
for (var i=0, len=targets.length;i<len;++i) { |
if (targets[i].id == oTargetDD.id) { |
return true; |
} |
} |
return false; |
}, |
isTypeOfDD: function (oDD) { |
return (oDD && oDD.__ygDragDrop); |
}, |
isHandle: function(sDDId, sHandleId) { |
return ( this.handleIds[sDDId] && |
this.handleIds[sDDId][sHandleId] ); |
}, |
getDDById: function(id) { |
for (var i in this.ids) { |
if (this.ids[i][id]) { |
return this.ids[i][id]; |
} |
} |
return null; |
}, |
handleMouseDown: function(e, oDD) { |
if(Ext.QuickTips){ |
Ext.QuickTips.disable(); |
} |
this.currentTarget = e.getTarget(); |
this.dragCurrent = oDD; |
var el = oDD.getEl(); |
this.startX = e.getPageX(); |
this.startY = e.getPageY(); |
this.deltaX = this.startX - el.offsetLeft; |
this.deltaY = this.startY - el.offsetTop; |
this.dragThreshMet = false; |
this.clickTimeout = setTimeout( |
function() { |
var DDM = Ext.dd.DDM; |
DDM.startDrag(DDM.startX, DDM.startY); |
}, |
this.clickTimeThresh ); |
}, |
startDrag: function(x, y) { |
clearTimeout(this.clickTimeout); |
if (this.dragCurrent) { |
this.dragCurrent.b4StartDrag(x, y); |
this.dragCurrent.startDrag(x, y); |
} |
this.dragThreshMet = true; |
}, |
handleMouseUp: function(e) { |
if(Ext.QuickTips){ |
Ext.QuickTips.enable(); |
} |
if (! this.dragCurrent) { |
return; |
} |
clearTimeout(this.clickTimeout); |
if (this.dragThreshMet) { |
this.fireEvents(e, true); |
} else { |
} |
this.stopDrag(e); |
this.stopEvent(e); |
}, |
stopEvent: function(e){ |
if(this.stopPropagation) { |
e.stopPropagation(); |
} |
if (this.preventDefault) { |
e.preventDefault(); |
} |
}, |
stopDrag: function(e) { |
if (this.dragCurrent) { |
if (this.dragThreshMet) { |
this.dragCurrent.b4EndDrag(e); |
this.dragCurrent.endDrag(e); |
} |
this.dragCurrent.onMouseUp(e); |
} |
this.dragCurrent = null; |
this.dragOvers = {}; |
}, |
handleMouseMove: function(e) { |
if (! this.dragCurrent) { |
return true; |
} |
if (Ext.isIE && (e.button !== 0 && e.button !== 1 && e.button !== 2)) { |
this.stopEvent(e); |
return this.handleMouseUp(e); |
} |
if (!this.dragThreshMet) { |
var diffX = Math.abs(this.startX - e.getPageX()); |
var diffY = Math.abs(this.startY - e.getPageY()); |
if (diffX > this.clickPixelThresh || |
diffY > this.clickPixelThresh) { |
this.startDrag(this.startX, this.startY); |
} |
} |
if (this.dragThreshMet) { |
this.dragCurrent.b4Drag(e); |
this.dragCurrent.onDrag(e); |
if(!this.dragCurrent.moveOnly){ |
this.fireEvents(e, false); |
} |
} |
this.stopEvent(e); |
return true; |
}, |
fireEvents: function(e, isDrop) { |
var dc = this.dragCurrent; |
if (!dc || dc.isLocked()) { |
return; |
} |
var pt = e.getPoint(); |
var oldOvers = []; |
var outEvts = []; |
var overEvts = []; |
var dropEvts = []; |
var enterEvts = []; |
for (var i in this.dragOvers) { |
var ddo = this.dragOvers[i]; |
if (! this.isTypeOfDD(ddo)) { |
continue; |
} |
if (! this.isOverTarget(pt, ddo, this.mode)) { |
outEvts.push( ddo ); |
} |
oldOvers[i] = true; |
delete this.dragOvers[i]; |
} |
for (var sGroup in dc.groups) { |
if ("string" != typeof sGroup) { |
continue; |
} |
for (i in this.ids[sGroup]) { |
var oDD = this.ids[sGroup][i]; |
if (! this.isTypeOfDD(oDD)) { |
continue; |
} |
if (oDD.isTarget && !oDD.isLocked() && oDD != dc) { |
if (this.isOverTarget(pt, oDD, this.mode)) { |
if (isDrop) { |
dropEvts.push( oDD ); |
} else { |
if (!oldOvers[oDD.id]) { |
enterEvts.push( oDD ); |
} else { |
overEvts.push( oDD ); |
} |
this.dragOvers[oDD.id] = oDD; |
} |
} |
} |
} |
} |
if (this.mode) { |
if (outEvts.length) { |
dc.b4DragOut(e, outEvts); |
dc.onDragOut(e, outEvts); |
} |
if (enterEvts.length) { |
dc.onDragEnter(e, enterEvts); |
} |
if (overEvts.length) { |
dc.b4DragOver(e, overEvts); |
dc.onDragOver(e, overEvts); |
} |
if (dropEvts.length) { |
dc.b4DragDrop(e, dropEvts); |
dc.onDragDrop(e, dropEvts); |
} |
} else { |
var len = 0; |
for (i=0, len=outEvts.length; i<len; ++i) { |
dc.b4DragOut(e, outEvts[i].id); |
dc.onDragOut(e, outEvts[i].id); |
} |
for (i=0,len=enterEvts.length; i<len; ++i) { |
dc.onDragEnter(e, enterEvts[i].id); |
} |
for (i=0,len=overEvts.length; i<len; ++i) { |
dc.b4DragOver(e, overEvts[i].id); |
dc.onDragOver(e, overEvts[i].id); |
} |
for (i=0, len=dropEvts.length; i<len; ++i) { |
dc.b4DragDrop(e, dropEvts[i].id); |
dc.onDragDrop(e, dropEvts[i].id); |
} |
} |
if (isDrop && !dropEvts.length) { |
dc.onInvalidDrop(e); |
} |
}, |
getBestMatch: function(dds) { |
var winner = null; |
var len = dds.length; |
if (len == 1) { |
winner = dds[0]; |
} else { |
for (var i=0; i<len; ++i) { |
var dd = dds[i]; |
if (dd.cursorIsOver) { |
winner = dd; |
break; |
} else { |
if (!winner || |
winner.overlap.getArea() < dd.overlap.getArea()) { |
winner = dd; |
} |
} |
} |
} |
return winner; |
}, |
refreshCache: function(groups) { |
for (var sGroup in groups) { |
if ("string" != typeof sGroup) { |
continue; |
} |
for (var i in this.ids[sGroup]) { |
var oDD = this.ids[sGroup][i]; |
if (this.isTypeOfDD(oDD)) { |
var loc = this.getLocation(oDD); |
if (loc) { |
this.locationCache[oDD.id] = loc; |
} else { |
delete this.locationCache[oDD.id]; |
} |
} |
} |
} |
}, |
verifyEl: function(el) { |
if (el) { |
var parent; |
if(Ext.isIE){ |
try{ |
parent = el.offsetParent; |
}catch(e){} |
}else{ |
parent = el.offsetParent; |
} |
if (parent) { |
return true; |
} |
} |
return false; |
}, |
getLocation: function(oDD) { |
if (! this.isTypeOfDD(oDD)) { |
return null; |
} |
var el = oDD.getEl(), pos, x1, x2, y1, y2, t, r, b, l; |
try { |
pos= Ext.lib.Dom.getXY(el); |
} catch (e) { } |
if (!pos) { |
return null; |
} |
x1 = pos[0]; |
x2 = x1 + el.offsetWidth; |
y1 = pos[1]; |
y2 = y1 + el.offsetHeight; |
t = y1 - oDD.padding[0]; |
r = x2 + oDD.padding[1]; |
b = y2 + oDD.padding[2]; |
l = x1 - oDD.padding[3]; |
return new Ext.lib.Region( t, r, b, l ); |
}, |
isOverTarget: function(pt, oTarget, intersect) { |
var loc = this.locationCache[oTarget.id]; |
if (!loc || !this.useCache) { |
loc = this.getLocation(oTarget); |
this.locationCache[oTarget.id] = loc; |
} |
if (!loc) { |
return false; |
} |
oTarget.cursorIsOver = loc.contains( pt ); |
var dc = this.dragCurrent; |
if (!dc || !dc.getTargetCoord || |
(!intersect && !dc.constrainX && !dc.constrainY)) { |
return oTarget.cursorIsOver; |
} |
oTarget.overlap = null; |
var pos = dc.getTargetCoord(pt.x, pt.y); |
var el = dc.getDragEl(); |
var curRegion = new Ext.lib.Region( pos.y, |
pos.x + el.offsetWidth, |
pos.y + el.offsetHeight, |
pos.x ); |
var overlap = curRegion.intersect(loc); |
if (overlap) { |
oTarget.overlap = overlap; |
return (intersect) ? true : oTarget.cursorIsOver; |
} else { |
return false; |
} |
}, |
_onUnload: function(e, me) { |
Ext.dd.DragDropMgr.unregAll(); |
}, |
unregAll: function() { |
if (this.dragCurrent) { |
this.stopDrag(); |
this.dragCurrent = null; |
} |
this._execOnAll("unreg", []); |
for (var i in this.elementCache) { |
delete this.elementCache[i]; |
} |
this.elementCache = {}; |
this.ids = {}; |
}, |
elementCache: {}, |
getElWrapper: function(id) { |
var oWrapper = this.elementCache[id]; |
if (!oWrapper || !oWrapper.el) { |
oWrapper = this.elementCache[id] = |
new this.ElementWrapper(Ext.getDom(id)); |
} |
return oWrapper; |
}, |
getElement: function(id) { |
return Ext.getDom(id); |
}, |
getCss: function(id) { |
var el = Ext.getDom(id); |
return (el) ? el.style : null; |
}, |
ElementWrapper: function(el) { |
this.el = el || null; |
this.id = this.el && el.id; |
this.css = this.el && el.style; |
}, |
getPosX: function(el) { |
return Ext.lib.Dom.getX(el); |
}, |
getPosY: function(el) { |
return Ext.lib.Dom.getY(el); |
}, |
swapNode: function(n1, n2) { |
if (n1.swapNode) { |
n1.swapNode(n2); |
} else { |
var p = n2.parentNode; |
var s = n2.nextSibling; |
if (s == n1) { |
p.insertBefore(n1, n2); |
} else if (n2 == n1.nextSibling) { |
p.insertBefore(n2, n1); |
} else { |
n1.parentNode.replaceChild(n2, n1); |
p.insertBefore(n1, s); |
} |
} |
}, |
getScroll: function () { |
var t, l, dde=document.documentElement, db=document.body; |
if (dde && (dde.scrollTop || dde.scrollLeft)) { |
t = dde.scrollTop; |
l = dde.scrollLeft; |
} else if (db) { |
t = db.scrollTop; |
l = db.scrollLeft; |
} else { |
} |
return { top: t, left: l }; |
}, |
getStyle: function(el, styleProp) { |
return Ext.fly(el).getStyle(styleProp); |
}, |
getScrollTop: function () { return this.getScroll().top; }, |
getScrollLeft: function () { return this.getScroll().left; }, |
moveToEl: function (moveEl, targetEl) { |
var aCoord = Ext.lib.Dom.getXY(targetEl); |
Ext.lib.Dom.setXY(moveEl, aCoord); |
}, |
numericSort: function(a, b) { return (a - b); }, |
_timeoutCount: 0, |
_addListeners: function() { |
var DDM = Ext.dd.DDM; |
if ( Ext.lib.Event && document ) { |
DDM._onLoad(); |
} else { |
if (DDM._timeoutCount > 2000) { |
} else { |
setTimeout(DDM._addListeners, 10); |
if (document && document.body) { |
DDM._timeoutCount += 1; |
} |
} |
} |
}, |
handleWasClicked: function(node, id) { |
if (this.isHandle(id, node.id)) { |
return true; |
} else { |
var p = node.parentNode; |
while (p) { |
if (this.isHandle(id, p.id)) { |
return true; |
} else { |
p = p.parentNode; |
} |
} |
} |
return false; |
} |
}; |
}(); |
Ext.dd.DDM = Ext.dd.DragDropMgr; |
Ext.dd.DDM._addListeners(); |
} |
Ext.dd.DD = function(id, sGroup, config) { |
if (id) { |
this.init(id, sGroup, config); |
} |
}; |
Ext.extend(Ext.dd.DD, Ext.dd.DragDrop, { |
scroll: true, |
autoOffset: function(iPageX, iPageY) { |
var x = iPageX - this.startPageX; |
var y = iPageY - this.startPageY; |
this.setDelta(x, y); |
}, |
setDelta: function(iDeltaX, iDeltaY) { |
this.deltaX = iDeltaX; |
this.deltaY = iDeltaY; |
}, |
setDragElPos: function(iPageX, iPageY) { |
var el = this.getDragEl(); |
this.alignElWithMouse(el, iPageX, iPageY); |
}, |
alignElWithMouse: function(el, iPageX, iPageY) { |
var oCoord = this.getTargetCoord(iPageX, iPageY); |
var fly = el.dom ? el : Ext.fly(el, '_dd'); |
if (!this.deltaSetXY) { |
var aCoord = [oCoord.x, oCoord.y]; |
fly.setXY(aCoord); |
var newLeft = fly.getLeft(true); |
var newTop = fly.getTop(true); |
this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ]; |
} else { |
fly.setLeftTop(oCoord.x + this.deltaSetXY[0], oCoord.y + this.deltaSetXY[1]); |
} |
this.cachePosition(oCoord.x, oCoord.y); |
this.autoScroll(oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth); |
return oCoord; |
}, |
cachePosition: function(iPageX, iPageY) { |
if (iPageX) { |
this.lastPageX = iPageX; |
this.lastPageY = iPageY; |
} else { |
var aCoord = Ext.lib.Dom.getXY(this.getEl()); |
this.lastPageX = aCoord[0]; |
this.lastPageY = aCoord[1]; |
} |
}, |
autoScroll: function(x, y, h, w) { |
if (this.scroll) { |
var clientH = Ext.lib.Dom.getViewHeight(); |
var clientW = Ext.lib.Dom.getViewWidth(); |
var st = this.DDM.getScrollTop(); |
var sl = this.DDM.getScrollLeft(); |
var bot = h + y; |
var right = w + x; |
var toBot = (clientH + st - y - this.deltaY); |
var toRight = (clientW + sl - x - this.deltaX); |
var thresh = 40; |
var scrAmt = (document.all) ? 80 : 30; |
if ( bot > clientH && toBot < thresh ) { |
window.scrollTo(sl, st + scrAmt); |
} |
if ( y < st && st > 0 && y - st < thresh ) { |
window.scrollTo(sl, st - scrAmt); |
} |
if ( right > clientW && toRight < thresh ) { |
window.scrollTo(sl + scrAmt, st); |
} |
if ( x < sl && sl > 0 && x - sl < thresh ) { |
window.scrollTo(sl - scrAmt, st); |
} |
} |
}, |
getTargetCoord: function(iPageX, iPageY) { |
var x = iPageX - this.deltaX; |
var y = iPageY - this.deltaY; |
if (this.constrainX) { |
if (x < this.minX) { x = this.minX; } |
if (x > this.maxX) { x = this.maxX; } |
} |
if (this.constrainY) { |
if (y < this.minY) { y = this.minY; } |
if (y > this.maxY) { y = this.maxY; } |
} |
x = this.getTick(x, this.xTicks); |
y = this.getTick(y, this.yTicks); |
return {x:x, y:y}; |
}, |
applyConfig: function() { |
Ext.dd.DD.superclass.applyConfig.call(this); |
this.scroll = (this.config.scroll !== false); |
}, |
b4MouseDown: function(e) { |
this.autoOffset(e.getPageX(), |
e.getPageY()); |
}, |
b4Drag: function(e) { |
this.setDragElPos(e.getPageX(), |
e.getPageY()); |
}, |
toString: function() { |
return ("DD " + this.id); |
} |
}); |
Ext.dd.DDProxy = function(id, sGroup, config) { |
if (id) { |
this.init(id, sGroup, config); |
this.initFrame(); |
} |
}; |
Ext.dd.DDProxy.dragElId = "ygddfdiv"; |
Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { |
resizeFrame: true, |
centerFrame: false, |
createFrame: function() { |
var self = this; |
var body = document.body; |
if (!body || !body.firstChild) { |
setTimeout( function() { self.createFrame(); }, 50 ); |
return; |
} |
var div = this.getDragEl(); |
if (!div) { |
div = document.createElement("div"); |
div.id = this.dragElId; |
var s = div.style; |
s.position = "absolute"; |
s.visibility = "hidden"; |
s.cursor = "move"; |
s.border = "2px solid #aaa"; |
s.zIndex = 999; |
body.insertBefore(div, body.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(iPageX, iPageY) { |
var el = this.getEl(); |
var dragEl = this.getDragEl(); |
var s = dragEl.style; |
this._resizeProxy(); |
if (this.centerFrame) { |
this.setDelta( Math.round(parseInt(s.width, 10)/2), |
Math.round(parseInt(s.height, 10)/2) ); |
} |
this.setDragElPos(iPageX, iPageY); |
Ext.fly(dragEl).show(); |
}, |
_resizeProxy: function() { |
if (this.resizeFrame) { |
var el = this.getEl(); |
Ext.fly(this.getDragEl()).setSize(el.offsetWidth, el.offsetHeight); |
} |
}, |
b4MouseDown: function(e) { |
var x = e.getPageX(); |
var y = e.getPageY(); |
this.autoOffset(x, y); |
this.setDragElPos(x, y); |
}, |
b4StartDrag: function(x, y) { |
this.showFrame(x, y); |
}, |
b4EndDrag: function(e) { |
Ext.fly(this.getDragEl()).hide(); |
}, |
endDrag: function(e) { |
var lel = this.getEl(); |
var del = this.getDragEl(); |
del.style.visibility = ""; |
this.beforeMove(); |
lel.style.visibility = "hidden"; |
Ext.dd.DDM.moveToEl(lel, del); |
del.style.visibility = "hidden"; |
lel.style.visibility = ""; |
this.afterDrag(); |
}, |
beforeMove : function(){ |
}, |
afterDrag : function(){ |
}, |
toString: function() { |
return ("DDProxy " + this.id); |
} |
}); |
Ext.dd.DDTarget = function(id, sGroup, config) { |
if (id) { |
this.initTarget(id, sGroup, config); |
} |
}; |
Ext.extend(Ext.dd.DDTarget, Ext.dd.DragDrop, { |
toString: function() { |
return ("DDTarget " + this.id); |
} |
}); |
Ext.dd.DragTracker = function(config){ |
Ext.apply(this, config); |
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(el){ |
this.el = Ext.get(el); |
el.on('mousedown', this.onMouseDown, this, |
this.delegate ? {delegate: this.delegate} : undefined); |
}, |
destroy : function(){ |
this.el.un('mousedown', this.onMouseDown, this); |
}, |
onMouseDown: function(e, target){ |
if(this.fireEvent('mousedown', this, e) !== false && this.onBeforeStart(e) !== false){ |
this.startXY = this.lastXY = e.getXY(); |
this.dragTarget = this.delegate ? target : this.el.dom; |
e.preventDefault(); |
var doc = Ext.getDoc(); |
doc.on('mouseup', this.onMouseUp, this); |
doc.on('mousemove', this.onMouseMove, this); |
doc.on('selectstart', this.stopSelect, this); |
if(this.autoStart){ |
this.timer = this.triggerStart.defer(this.autoStart === true ? 1000 : this.autoStart, this); |
} |
} |
}, |
onMouseMove: function(e, target){ |
e.preventDefault(); |
var xy = e.getXY(), s = this.startXY; |
this.lastXY = xy; |
if(!this.active){ |
if(Math.abs(s[0]-xy[0]) > this.tolerance || Math.abs(s[1]-xy[1]) > this.tolerance){ |
this.triggerStart(); |
}else{ |
return; |
} |
} |
this.fireEvent('mousemove', this, e); |
this.onDrag(e); |
this.fireEvent('drag', this, e); |
}, |
onMouseUp: function(e){ |
var doc = Ext.getDoc(); |
doc.un('mousemove', this.onMouseMove, this); |
doc.un('mouseup', this.onMouseUp, this); |
doc.un('selectstart', this.stopSelect, this); |
e.preventDefault(); |
this.clearStart(); |
this.active = false; |
delete this.elRegion; |
this.fireEvent('mouseup', this, e); |
this.onEnd(e); |
this.fireEvent('dragend', this, e); |
}, |
triggerStart: function(isTimer){ |
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(e){ |
e.stopEvent(); |
return false; |
}, |
onBeforeStart : function(e){ |
}, |
onStart : function(xy){ |
}, |
onDrag : function(e){ |
}, |
onEnd : function(e){ |
}, |
getDragTarget : function(){ |
return this.dragTarget; |
}, |
getDragCt : function(){ |
return this.el; |
}, |
getXY : function(constrain){ |
return constrain ? |
this.constrainModes[constrain].call(this, this.lastXY) : this.lastXY; |
}, |
getOffset : function(constrain){ |
var xy = this.getXY(constrain); |
var s = this.startXY; |
return [s[0]-xy[0], s[1]-xy[1]]; |
}, |
constrainModes: { |
'point' : function(xy){ |
if(!this.elRegion){ |
this.elRegion = this.getDragCt().getRegion(); |
} |
var dr = this.dragRegion; |
dr.left = xy[0]; |
dr.top = xy[1]; |
dr.right = xy[0]; |
dr.bottom = xy[1]; |
dr.constrainTo(this.elRegion); |
return [dr.left, dr.top]; |
} |
} |
}); |
Ext.dd.ScrollManager = function(){ |
var ddm = Ext.dd.DragDropMgr; |
var els = {}; |
var dragEl = null; |
var proc = {}; |
var onStop = function(e){ |
dragEl = null; |
clearProc(); |
}; |
var triggerRefresh = function(){ |
if(ddm.dragCurrent){ |
ddm.refreshCache(ddm.dragCurrent.groups); |
} |
}; |
var doScroll = function(){ |
if(ddm.dragCurrent){ |
var dds = Ext.dd.ScrollManager; |
var inc = proc.el.ddScrollConfig ? |
proc.el.ddScrollConfig.increment : dds.increment; |
if(!dds.animate){ |
if(proc.el.scroll(proc.dir, inc)){ |
triggerRefresh(); |
} |
}else{ |
proc.el.scroll(proc.dir, inc, true, dds.animDuration, triggerRefresh); |
} |
} |
}; |
var clearProc = function(){ |
if(proc.id){ |
clearInterval(proc.id); |
} |
proc.id = 0; |
proc.el = null; |
proc.dir = ""; |
}; |
var startProc = function(el, dir){ |
clearProc(); |
proc.el = el; |
proc.dir = dir; |
proc.id = setInterval(doScroll, Ext.dd.ScrollManager.frequency); |
}; |
var onFire = function(e, isDrop){ |
if(isDrop || !ddm.dragCurrent){ return; } |
var dds = Ext.dd.ScrollManager; |
if(!dragEl || dragEl != ddm.dragCurrent){ |
dragEl = ddm.dragCurrent; |
dds.refreshCache(); |
} |
var xy = Ext.lib.Event.getXY(e); |
var pt = new Ext.lib.Point(xy[0], xy[1]); |
for(var id in els){ |
var el = els[id], r = el._region; |
var c = el.ddScrollConfig ? el.ddScrollConfig : dds; |
if(r && r.contains(pt) && el.isScrollable()){ |
if(r.bottom - pt.y <= c.vthresh){ |
if(proc.el != el){ |
startProc(el, "down"); |
} |
return; |
}else if(r.right - pt.x <= c.hthresh){ |
if(proc.el != el){ |
startProc(el, "left"); |
} |
return; |
}else if(pt.y - r.top <= c.vthresh){ |
if(proc.el != el){ |
startProc(el, "up"); |
} |
return; |
}else if(pt.x - r.left <= c.hthresh){ |
if(proc.el != el){ |
startProc(el, "right"); |
} |
return; |
} |
} |
} |
clearProc(); |
}; |
ddm.fireEvents = ddm.fireEvents.createSequence(onFire, ddm); |
ddm.stopDrag = ddm.stopDrag.createSequence(onStop, ddm); |
return { |
register : function(el){ |
if(Ext.isArray(el)){ |
for(var i = 0, len = el.length; i < len; i++) { |
this.register(el[i]); |
} |
}else{ |
el = Ext.get(el); |
els[el.id] = el; |
} |
}, |
unregister : function(el){ |
if(Ext.isArray(el)){ |
for(var i = 0, len = el.length; i < len; i++) { |
this.unregister(el[i]); |
} |
}else{ |
el = Ext.get(el); |
delete els[el.id]; |
} |
}, |
vthresh : 25, |
hthresh : 25, |
increment : 100, |
frequency : 500, |
animate: true, |
animDuration: .4, |
refreshCache : function(){ |
for(var id in els){ |
if(typeof els[id] == 'object'){ |
els[id]._region = els[id].getRegion(); |
} |
} |
} |
}; |
}(); |
Ext.dd.Registry = function(){ |
var elements = {}; |
var handles = {}; |
var autoIdSeed = 0; |
var getId = function(el, autogen){ |
if(typeof el == "string"){ |
return el; |
} |
var id = el.id; |
if(!id && autogen !== false){ |
id = "extdd-" + (++autoIdSeed); |
el.id = id; |
} |
return id; |
}; |
return { |
register : function(el, data){ |
data = data || {}; |
if(typeof el == "string"){ |
el = document.getElementById(el); |
} |
data.ddel = el; |
elements[getId(el)] = data; |
if(data.isHandle !== false){ |
handles[data.ddel.id] = data; |
} |
if(data.handles){ |
var hs = data.handles; |
for(var i = 0, len = hs.length; i < len; i++){ |
handles[getId(hs[i])] = data; |
} |
} |
}, |
unregister : function(el){ |
var id = getId(el, false); |
var data = elements[id]; |
if(data){ |
delete elements[id]; |
if(data.handles){ |
var hs = data.handles; |
for(var i = 0, len = hs.length; i < len; i++){ |
delete handles[getId(hs[i], false)]; |
} |
} |
} |
}, |
getHandle : function(id){ |
if(typeof id != "string"){ |
id = id.id; |
} |
return handles[id]; |
}, |
getHandleFromEvent : function(e){ |
var t = Ext.lib.Event.getTarget(e); |
return t ? handles[t.id] : null; |
}, |
getTarget : function(id){ |
if(typeof id != "string"){ |
id = id.id; |
} |
return elements[id]; |
}, |
getTargetFromEvent : function(e){ |
var t = Ext.lib.Event.getTarget(e); |
return t ? elements[t.id] || handles[t.id] : null; |
} |
}; |
}(); |
Ext.dd.StatusProxy = function(config){ |
Ext.apply(this, config); |
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: !config || config.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(cssClass){ |
cssClass = cssClass || this.dropNotAllowed; |
if(this.dropStatus != cssClass){ |
this.el.replaceClass(this.dropStatus, cssClass); |
this.dropStatus = cssClass; |
} |
}, |
reset : function(clearGhost){ |
this.el.dom.className = "x-dd-drag-proxy " + this.dropNotAllowed; |
this.dropStatus = this.dropNotAllowed; |
if(clearGhost){ |
this.ghost.update(""); |
} |
}, |
update : function(html){ |
if(typeof html == "string"){ |
this.ghost.update(html); |
}else{ |
this.ghost.update(""); |
html.style.margin = "0"; |
this.ghost.dom.appendChild(html); |
} |
}, |
getEl : function(){ |
return this.el; |
}, |
getGhost : function(){ |
return this.ghost; |
}, |
hide : function(clear){ |
this.el.hide(); |
if(clear){ |
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(xy, callback, scope){ |
this.callback = callback; |
this.scope = scope; |
if(xy && this.animRepair !== false){ |
this.el.addClass("x-dd-drag-repair"); |
this.el.hideUnders(true); |
this.anim = this.el.shift({ |
duration: this.repairDuration || .5, |
easing: 'easeOut', |
xy: xy, |
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; |
} |
}; |
Ext.dd.DragSource = function(el, config){ |
this.el = Ext.get(el); |
if(!this.dragData){ |
this.dragData = {}; |
} |
Ext.apply(this, config); |
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(e){ |
return this.dragData; |
}, |
onDragEnter : function(e, id){ |
var target = Ext.dd.DragDropMgr.getDDById(id); |
this.cachedTarget = target; |
if(this.beforeDragEnter(target, e, id) !== false){ |
if(target.isNotifyTarget){ |
var status = target.notifyEnter(this, e, this.dragData); |
this.proxy.setStatus(status); |
}else{ |
this.proxy.setStatus(this.dropAllowed); |
} |
if(this.afterDragEnter){ |
this.afterDragEnter(target, e, id); |
} |
} |
}, |
beforeDragEnter : function(target, e, id){ |
return true; |
}, |
alignElWithMouse: function() { |
Ext.dd.DragSource.superclass.alignElWithMouse.apply(this, arguments); |
this.proxy.sync(); |
}, |
onDragOver : function(e, id){ |
var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); |
if(this.beforeDragOver(target, e, id) !== false){ |
if(target.isNotifyTarget){ |
var status = target.notifyOver(this, e, this.dragData); |
this.proxy.setStatus(status); |
} |
if(this.afterDragOver){ |
this.afterDragOver(target, e, id); |
} |
} |
}, |
beforeDragOver : function(target, e, id){ |
return true; |
}, |
onDragOut : function(e, id){ |
var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); |
if(this.beforeDragOut(target, e, id) !== false){ |
if(target.isNotifyTarget){ |
target.notifyOut(this, e, this.dragData); |
} |
this.proxy.reset(); |
if(this.afterDragOut){ |
this.afterDragOut(target, e, id); |
} |
} |
this.cachedTarget = null; |
}, |
beforeDragOut : function(target, e, id){ |
return true; |
}, |
onDragDrop : function(e, id){ |
var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); |
if(this.beforeDragDrop(target, e, id) !== false){ |
if(target.isNotifyTarget){ |
if(target.notifyDrop(this, e, this.dragData)){ |
this.onValidDrop(target, e, id); |
}else{ |
this.onInvalidDrop(target, e, id); |
} |
}else{ |
this.onValidDrop(target, e, id); |
} |
if(this.afterDragDrop){ |
this.afterDragDrop(target, e, id); |
} |
} |
delete this.cachedTarget; |
}, |
beforeDragDrop : function(target, e, id){ |
return true; |
}, |
onValidDrop : function(target, e, id){ |
this.hideProxy(); |
if(this.afterValidDrop){ |
this.afterValidDrop(target, e, id); |
} |
}, |
getRepairXY : function(e, data){ |
return this.el.getXY(); |
}, |
onInvalidDrop : function(target, e, id){ |
this.beforeInvalidDrop(target, e, id); |
if(this.cachedTarget){ |
if(this.cachedTarget.isNotifyTarget){ |
this.cachedTarget.notifyOut(this, e, this.dragData); |
} |
this.cacheTarget = null; |
} |
this.proxy.repair(this.getRepairXY(e, this.dragData), this.afterRepair, this); |
if(this.afterInvalidDrop){ |
this.afterInvalidDrop(e, id); |
} |
}, |
afterRepair : function(){ |
if(Ext.enableFx){ |
this.el.highlight(this.hlColor || "c3daf9"); |
} |
this.dragging = false; |
}, |
beforeInvalidDrop : function(target, e, id){ |
return true; |
}, |
handleMouseDown : function(e){ |
if(this.dragging) { |
return; |
} |
var data = this.getDragData(e); |
if(data && this.onBeforeDrag(data, e) !== false){ |
this.dragData = data; |
this.proxy.stop(); |
Ext.dd.DragSource.superclass.handleMouseDown.apply(this, arguments); |
} |
}, |
onBeforeDrag : function(data, e){ |
return true; |
}, |
onStartDrag : Ext.emptyFn, |
startDrag : function(x, y){ |
this.proxy.reset(); |
this.dragging = true; |
this.proxy.update(""); |
this.onInitDrag(x, y); |
this.proxy.show(); |
}, |
onInitDrag : function(x, y){ |
var clone = this.el.dom.cloneNode(true); |
clone.id = Ext.id(); |
this.proxy.update(clone); |
this.onStartDrag(x, y); |
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(e) { |
}, |
endDrag : function(e){ |
this.onEndDrag(this.dragData, e); |
}, |
onEndDrag : function(data, e){ |
}, |
autoOffset : function(x, y) { |
this.setDelta(-12, -20); |
} |
}); |
Ext.dd.DropTarget = function(el, config){ |
this.el = Ext.get(el); |
Ext.apply(this, config); |
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(dd, e, data){ |
if(this.overClass){ |
this.el.addClass(this.overClass); |
} |
return this.dropAllowed; |
}, |
notifyOver : function(dd, e, data){ |
return this.dropAllowed; |
}, |
notifyOut : function(dd, e, data){ |
if(this.overClass){ |
this.el.removeClass(this.overClass); |
} |
}, |
notifyDrop : function(dd, e, data){ |
return false; |
} |
}); |
Ext.dd.DragZone = function(el, config){ |
Ext.dd.DragZone.superclass.constructor.call(this, el, config); |
if(this.containerScroll){ |
Ext.dd.ScrollManager.register(this.el); |
} |
}; |
Ext.extend(Ext.dd.DragZone, Ext.dd.DragSource, { |
getDragData : function(e){ |
return Ext.dd.Registry.getHandleFromEvent(e); |
}, |
onInitDrag : function(x, y){ |
this.proxy.update(this.dragData.ddel.cloneNode(true)); |
this.onStartDrag(x, y); |
return true; |
}, |
afterRepair : function(){ |
if(Ext.enableFx){ |
Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9"); |
} |
this.dragging = false; |
}, |
getRepairXY : function(e){ |
return Ext.Element.fly(this.dragData.ddel).getXY(); |
} |
}); |
Ext.dd.DropZone = function(el, config){ |
Ext.dd.DropZone.superclass.constructor.call(this, el, config); |
}; |
Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, { |
getTargetFromEvent : function(e){ |
return Ext.dd.Registry.getTargetFromEvent(e); |
}, |
onNodeEnter : function(n, dd, e, data){ |
}, |
onNodeOver : function(n, dd, e, data){ |
return this.dropAllowed; |
}, |
onNodeOut : function(n, dd, e, data){ |
}, |
onNodeDrop : function(n, dd, e, data){ |
return false; |
}, |
onContainerOver : function(dd, e, data){ |
return this.dropNotAllowed; |
}, |
onContainerDrop : function(dd, e, data){ |
return false; |
}, |
notifyEnter : function(dd, e, data){ |
return this.dropNotAllowed; |
}, |
notifyOver : function(dd, e, data){ |
var n = this.getTargetFromEvent(e); |
if(!n){ |
if(this.lastOverNode){ |
this.onNodeOut(this.lastOverNode, dd, e, data); |
this.lastOverNode = null; |
} |
return this.onContainerOver(dd, e, data); |
} |
if(this.lastOverNode != n){ |
if(this.lastOverNode){ |
this.onNodeOut(this.lastOverNode, dd, e, data); |
} |
this.onNodeEnter(n, dd, e, data); |
this.lastOverNode = n; |
} |
return this.onNodeOver(n, dd, e, data); |
}, |
notifyOut : function(dd, e, data){ |
if(this.lastOverNode){ |
this.onNodeOut(this.lastOverNode, dd, e, data); |
this.lastOverNode = null; |
} |
}, |
notifyDrop : function(dd, e, data){ |
if(this.lastOverNode){ |
this.onNodeOut(this.lastOverNode, dd, e, data); |
this.lastOverNode = null; |
} |
var n = this.getTargetFromEvent(e); |
return n ? |
this.onNodeDrop(n, dd, e, data) : |
this.onContainerDrop(dd, e, data); |
}, |
triggerCacheRefresh : function(){ |
Ext.dd.DDM.refreshCache(this.groups); |
} |
}); |
Ext.data.SortTypes = { |
none : function(s){ |
return s; |
}, |
stripTagsRE : /<\/?[^>]+>/gi, |
asText : function(s){ |
return String(s).replace(this.stripTagsRE, ""); |
}, |
asUCText : function(s){ |
return String(s).toUpperCase().replace(this.stripTagsRE, ""); |
}, |
asUCString : function(s) { |
return String(s).toUpperCase(); |
}, |
asDate : function(s) { |
if(!s){ |
return 0; |
} |
if(Ext.isDate(s)){ |
return s.getTime(); |
} |
return Date.parse(String(s)); |
}, |
asFloat : function(s) { |
var val = parseFloat(String(s).replace(/,/g, "")); |
if(isNaN(val)) val = 0; |
return val; |
}, |
asInt : function(s) { |
var val = parseInt(String(s).replace(/,/g, "")); |
if(isNaN(val)) val = 0; |
return val; |
} |
}; |
Ext.data.Record = function(data, id){ |
this.id = (id || id === 0) ? id : ++Ext.data.Record.AUTO_ID; |
this.data = data; |
}; |
Ext.data.Record.create = function(o){ |
var f = Ext.extend(Ext.data.Record, {}); |
var p = f.prototype; |
p.fields = new Ext.util.MixedCollection(false, function(field){ |
return field.name; |
}); |
for(var i = 0, len = o.length; i < len; i++){ |
p.fields.add(new Ext.data.Field(o[i])); |
} |
f.getField = function(name){ |
return p.fields.get(name); |
}; |
return f; |
}; |
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(store){ |
this.store = store; |
}, |
set : function(name, value){ |
if(String(this.data[name]) == String(value)){ |
return; |
} |
this.dirty = true; |
if(!this.modified){ |
this.modified = {}; |
} |
if(typeof this.modified[name] == 'undefined'){ |
this.modified[name] = this.data[name]; |
} |
this.data[name] = value; |
if(!this.editing && this.store){ |
this.store.afterEdit(this); |
} |
}, |
get : function(name){ |
return this.data[name]; |
}, |
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(silent){ |
var m = this.modified; |
for(var n in m){ |
if(typeof m[n] != "function"){ |
this.data[n] = m[n]; |
} |
} |
this.dirty = false; |
delete this.modified; |
this.editing = false; |
if(this.store && silent !== true){ |
this.store.afterReject(this); |
} |
}, |
commit : function(silent){ |
this.dirty = false; |
delete this.modified; |
this.editing = false; |
if(this.store && silent !== true){ |
this.store.afterCommit(this); |
} |
}, |
getChanges : function(){ |
var m = this.modified, cs = {}; |
for(var n in m){ |
if(m.hasOwnProperty(n)){ |
cs[n] = this.data[n]; |
} |
} |
return cs; |
}, |
hasError : function(){ |
return this.error != null; |
}, |
clearError : function(){ |
this.error = null; |
}, |
copy : function(newId) { |
return new this.constructor(Ext.apply({}, this.data), newId || this.id); |
}, |
isModified : function(fieldName){ |
return this.modified && this.modified.hasOwnProperty(fieldName); |
} |
}; |
Ext.StoreMgr = Ext.apply(new Ext.util.MixedCollection(), { |
register : function(){ |
for(var i = 0, s; s = arguments[i]; i++){ |
this.add(s); |
} |
}, |
unregister : function(){ |
for(var i = 0, s; s = arguments[i]; i++){ |
this.remove(this.lookup(s)); |
} |
}, |
lookup : function(id){ |
return typeof id == "object" ? id : this.get(id); |
}, |
getKey : function(o){ |
return o.storeId || o.id; |
} |
}); |
Ext.data.Store = function(config){ |
this.data = new Ext.util.MixedCollection(false); |
this.data.getKey = function(o){ |
return o.id; |
}; |
this.baseParams = {}; |
this.paramNames = { |
"start" : "start", |
"limit" : "limit", |
"sort" : "sort", |
"dir" : "dir" |
}; |
if(config && config.data){ |
this.inlineData = config.data; |
delete config.data; |
} |
Ext.apply(this, config); |
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(records){ |
records = [].concat(records); |
if(records.length < 1){ |
return; |
} |
for(var i = 0, len = records.length; i < len; i++){ |
records[i].join(this); |
} |
var index = this.data.length; |
this.data.addAll(records); |
if(this.snapshot){ |
this.snapshot.addAll(records); |
} |
this.fireEvent("add", this, records, index); |
}, |
addSorted : function(record){ |
var index = this.findInsertIndex(record); |
this.insert(index, record); |
}, |
remove : function(record){ |
var index = this.data.indexOf(record); |
this.data.removeAt(index); |
if(this.pruneModifiedRecords){ |
this.modified.remove(record); |
} |
if(this.snapshot){ |
this.snapshot.remove(record); |
} |
this.fireEvent("remove", this, record, index); |
}, |
removeAll : function(){ |
this.data.clear(); |
if(this.snapshot){ |
this.snapshot.clear(); |
} |
if(this.pruneModifiedRecords){ |
this.modified = []; |
} |
this.fireEvent("clear", this); |
}, |
insert : function(index, records){ |
records = [].concat(records); |
for(var i = 0, len = records.length; i < len; i++){ |
this.data.insert(index, records[i]); |
records[i].join(this); |
} |
this.fireEvent("add", this, records, index); |
}, |
indexOf : function(record){ |
return this.data.indexOf(record); |
}, |
indexOfId : function(id){ |
return this.data.indexOfKey(id); |
}, |
getById : function(id){ |
return this.data.key(id); |
}, |
getAt : function(index){ |
return this.data.itemAt(index); |
}, |
getRange : function(start, end){ |
return this.data.getRange(start, end); |
}, |
storeOptions : function(o){ |
o = Ext.apply({}, o); |
delete o.callback; |
delete o.scope; |
this.lastOptions = o; |
}, |
load : function(options){ |
options = options || {}; |
if(this.fireEvent("beforeload", this, options) !== false){ |
this.storeOptions(options); |
var p = Ext.apply(options.params || {}, this.baseParams); |
if(this.sortInfo && this.remoteSort){ |
var pn = this.paramNames; |
p[pn["sort"]] = this.sortInfo.field; |
p[pn["dir"]] = this.sortInfo.direction; |
} |
this.proxy.load(p, this.reader, this.loadRecords, this, options); |
return true; |
} else { |
return false; |
} |
}, |
reload : function(options){ |
this.load(Ext.applyIf(options||{}, this.lastOptions)); |
}, |
loadRecords : function(o, options, success){ |
if(!o || success === false){ |
if(success !== false){ |
this.fireEvent("load", this, [], options); |
} |
if(options.callback){ |
options.callback.call(options.scope || this, [], options, false); |
} |
return; |
} |
var r = o.records, t = o.totalRecords || r.length; |
if(!options || options.add !== true){ |
if(this.pruneModifiedRecords){ |
this.modified = []; |
} |
for(var i = 0, len = r.length; i < len; i++){ |
r[i].join(this); |
} |
if(this.snapshot){ |
this.data = this.snapshot; |
delete this.snapshot; |
} |
this.data.clear(); |
this.data.addAll(r); |
this.totalLength = t; |
this.applySort(); |
this.fireEvent("datachanged", this); |
}else{ |
this.totalLength = Math.max(t, this.data.length+r.length); |
this.add(r); |
} |
this.fireEvent("load", this, r, options); |
if(options.callback){ |
options.callback.call(options.scope || this, r, options, true); |
} |
}, |
loadData : function(o, append){ |
var r = this.reader.readRecords(o); |
this.loadRecords(r, {add: append}, 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 s = this.sortInfo, f = s.field; |
this.sortData(f, s.direction); |
} |
}, |
sortData : function(f, direction){ |
direction = direction || 'ASC'; |
var st = this.fields.get(f).sortType; |
var fn = function(r1, r2){ |
var v1 = st(r1.data[f]), v2 = st(r2.data[f]); |
return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); |
}; |
this.data.sort(direction, fn); |
if(this.snapshot && this.snapshot != this.data){ |
this.snapshot.sort(direction, fn); |
} |
}, |
setDefaultSort : function(field, dir){ |
dir = dir ? dir.toUpperCase() : "ASC"; |
this.sortInfo = {field: field, direction: dir}; |
this.sortToggle[field] = dir; |
}, |
sort : function(fieldName, dir){ |
var f = this.fields.get(fieldName); |
if(!f){ |
return false; |
} |
if(!dir){ |
if(this.sortInfo && this.sortInfo.field == f.name){ |
dir = (this.sortToggle[f.name] || "ASC").toggle("ASC", "DESC"); |
}else{ |
dir = f.sortDir; |
} |
} |
var st = (this.sortToggle) ? this.sortToggle[f.name] : null; |
var si = (this.sortInfo) ? this.sortInfo : null; |
this.sortToggle[f.name] = dir; |
this.sortInfo = {field: f.name, direction: dir}; |
if(!this.remoteSort){ |
this.applySort(); |
this.fireEvent("datachanged", this); |
}else{ |
if (!this.load(this.lastOptions)) { |
if (st) { |
this.sortToggle[f.name] = st; |
} |
if (si) { |
this.sortInfo = si; |
} |
} |
} |
}, |
each : function(fn, scope){ |
this.data.each(fn, scope); |
}, |
getModifiedRecords : function(){ |
return this.modified; |
}, |
createFilterFn : function(property, value, anyMatch, caseSensitive){ |
if(Ext.isEmpty(value, false)){ |
return false; |
} |
value = this.data.createValueMatcher(value, anyMatch, caseSensitive); |
return function(r){ |
return value.test(r.data[property]); |
}; |
}, |
sum : function(property, start, end){ |
var rs = this.data.items, v = 0; |
start = start || 0; |
end = (end || end === 0) ? end : rs.length-1; |
for(var i = start; i <= end; i++){ |
v += (rs[i].data[property] || 0); |
} |
return v; |
}, |
filter : function(property, value, anyMatch, caseSensitive){ |
var fn = this.createFilterFn(property, value, anyMatch, caseSensitive); |
return fn ? this.filterBy(fn) : this.clearFilter(); |
}, |
filterBy : function(fn, scope){ |
this.snapshot = this.snapshot || this.data; |
this.data = this.queryBy(fn, scope||this); |
this.fireEvent("datachanged", this); |
}, |
query : function(property, value, anyMatch, caseSensitive){ |
var fn = this.createFilterFn(property, value, anyMatch, caseSensitive); |
return fn ? this.queryBy(fn) : this.data.clone(); |
}, |
queryBy : function(fn, scope){ |
var data = this.snapshot || this.data; |
return data.filterBy(fn, scope||this); |
}, |
find : function(property, value, start, anyMatch, caseSensitive){ |
var fn = this.createFilterFn(property, value, anyMatch, caseSensitive); |
return fn ? this.data.findIndexBy(fn, null, start) : -1; |
}, |
findBy : function(fn, scope, start){ |
return this.data.findIndexBy(fn, scope, start); |
}, |
collect : function(dataIndex, allowNull, bypassFilter){ |
var d = (bypassFilter === true && this.snapshot) ? |
this.snapshot.items : this.data.items; |
var v, sv, r = [], l = {}; |
for(var i = 0, len = d.length; i < len; i++){ |
v = d[i].data[dataIndex]; |
sv = String(v); |
if((allowNull || !Ext.isEmpty(v)) && !l[sv]){ |
l[sv] = true; |
r[r.length] = v; |
} |
} |
return r; |
}, |
clearFilter : function(suppressEvent){ |
if(this.isFiltered()){ |
this.data = this.snapshot; |
delete this.snapshot; |
if(suppressEvent !== true){ |
this.fireEvent("datachanged", this); |
} |
} |
}, |
isFiltered : function(){ |
return this.snapshot && this.snapshot != this.data; |
}, |
afterEdit : function(record){ |
if(this.modified.indexOf(record) == -1){ |
this.modified.push(record); |
} |
this.fireEvent("update", this, record, Ext.data.Record.EDIT); |
}, |
afterReject : function(record){ |
this.modified.remove(record); |
this.fireEvent("update", this, record, Ext.data.Record.REJECT); |
}, |
afterCommit : function(record){ |
this.modified.remove(record); |
this.fireEvent("update", this, record, Ext.data.Record.COMMIT); |
}, |
commitChanges : function(){ |
var m = this.modified.slice(0); |
this.modified = []; |
for(var i = 0, len = m.length; i < len; i++){ |
m[i].commit(); |
} |
}, |
rejectChanges : function(){ |
var m = this.modified.slice(0); |
this.modified = []; |
for(var i = 0, len = m.length; i < len; i++){ |
m[i].reject(); |
} |
}, |
onMetaChange : function(meta, rtype, o){ |
this.recordType = rtype; |
this.fields = rtype.prototype.fields; |
delete this.snapshot; |
this.sortInfo = meta.sortInfo; |
this.modified = []; |
this.fireEvent('metachange', this, this.reader.meta); |
}, |
findInsertIndex : function(record){ |
this.suspendEvents(); |
var data = this.data.clone(); |
this.data.add(record); |
this.applySort(); |
var index = this.data.indexOf(record); |
this.data = data; |
this.resumeEvents(); |
return index; |
} |
}); |
Ext.data.SimpleStore = function(config){ |
Ext.data.SimpleStore.superclass.constructor.call(this, Ext.apply(config, { |
reader: new Ext.data.ArrayReader({ |
id: config.id |
}, |
Ext.data.Record.create(config.fields) |
) |
})); |
}; |
Ext.extend(Ext.data.SimpleStore, Ext.data.Store, { |
loadData : function(data, append){ |
if(this.expandData === true){ |
var r = []; |
for(var i = 0, len = data.length; i < len; i++){ |
r[r.length] = [data[i]]; |
} |
data = r; |
} |
Ext.data.SimpleStore.superclass.loadData.call(this, data, append); |
} |
}); |
Ext.data.JsonStore = function(c){ |
Ext.data.JsonStore.superclass.constructor.call(this, Ext.apply(c, { |
proxy: !c.data ? new Ext.data.HttpProxy({url: c.url}) : undefined, |
reader: new Ext.data.JsonReader(c, c.fields) |
})); |
}; |
Ext.extend(Ext.data.JsonStore, Ext.data.Store); |
Ext.data.Field = function(config){ |
if(typeof config == "string"){ |
config = {name: config}; |
} |
Ext.apply(this, config); |
if(!this.type){ |
this.type = "auto"; |
} |
var st = Ext.data.SortTypes; |
if(typeof this.sortType == "string"){ |
this.sortType = st[this.sortType]; |
} |
if(!this.sortType){ |
switch(this.type){ |
case "string": |
this.sortType = st.asUCString; |
break; |
case "date": |
this.sortType = st.asDate; |
break; |
default: |
this.sortType = st.none; |
} |
} |
var stripRe = /[\$,%]/g; |
if(!this.convert){ |
var cv, dateFormat = this.dateFormat; |
switch(this.type){ |
case "": |
case "auto": |
case undefined: |
cv = function(v){ return v; }; |
break; |
case "string": |
cv = function(v){ return (v === undefined || v === null) ? '' : String(v); }; |
break; |
case "int": |
cv = function(v){ |
return v !== undefined && v !== null && v !== '' ? |
parseInt(String(v).replace(stripRe, ""), 10) : ''; |
}; |
break; |
case "float": |
cv = function(v){ |
return v !== undefined && v !== null && v !== '' ? |
parseFloat(String(v).replace(stripRe, ""), 10) : ''; |
}; |
break; |
case "bool": |
case "boolean": |
cv = function(v){ return v === true || v === "true" || v == 1; }; |
break; |
case "date": |
cv = function(v){ |
if(!v){ |
return ''; |
} |
if(Ext.isDate(v)){ |
return v; |
} |
if(dateFormat){ |
if(dateFormat == "timestamp"){ |
return new Date(v*1000); |
} |
if(dateFormat == "time"){ |
return new Date(parseInt(v, 10)); |
} |
return Date.parseDate(v, dateFormat); |
} |
var parsed = Date.parse(v); |
return parsed ? new Date(parsed) : null; |
}; |
break; |
} |
this.convert = cv; |
} |
}; |
Ext.data.Field.prototype = { |
dateFormat: null, |
defaultValue: "", |
mapping: null, |
sortType : null, |
sortDir : "ASC" |
}; |
Ext.data.DataReader = function(meta, recordType){ |
this.meta = meta; |
this.recordType = Ext.isArray(recordType) ? |
Ext.data.Record.create(recordType) : recordType; |
}; |
Ext.data.DataReader.prototype = { |
}; |
Ext.data.DataProxy = function(){ |
this.addEvents( |
'beforeload', |
'load', |
'loadexception' |
); |
Ext.data.DataProxy.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.data.DataProxy, Ext.util.Observable); |
Ext.data.MemoryProxy = function(data){ |
Ext.data.MemoryProxy.superclass.constructor.call(this); |
this.data = data; |
}; |
Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, { |
load : function(params, reader, callback, scope, arg){ |
params = params || {}; |
var result; |
try { |
result = reader.readRecords(this.data); |
}catch(e){ |
this.fireEvent("loadexception", this, arg, null, e); |
callback.call(scope, null, arg, false); |
return; |
} |
callback.call(scope, result, arg, true); |
}, |
update : function(params, records){ |
} |
}); |
Ext.data.HttpProxy = function(conn){ |
Ext.data.HttpProxy.superclass.constructor.call(this); |
this.conn = conn; |
this.useAjax = !conn || !conn.events; |
}; |
Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { |
getConnection : function(){ |
return this.useAjax ? Ext.Ajax : this.conn; |
}, |
load : function(params, reader, callback, scope, arg){ |
if(this.fireEvent("beforeload", this, params) !== false){ |
var o = { |
params : params || {}, |
request: { |
callback : callback, |
scope : scope, |
arg : arg |
}, |
reader: reader, |
callback : this.loadResponse, |
scope: this |
}; |
if(this.useAjax){ |
Ext.applyIf(o, this.conn); |
if(this.activeRequest){ |
Ext.Ajax.abort(this.activeRequest); |
} |
this.activeRequest = Ext.Ajax.request(o); |
}else{ |
this.conn.request(o); |
} |
}else{ |
callback.call(scope||this, null, arg, false); |
} |
}, |
loadResponse : function(o, success, response){ |
delete this.activeRequest; |
if(!success){ |
this.fireEvent("loadexception", this, o, response); |
o.request.callback.call(o.request.scope, null, o.request.arg, false); |
return; |
} |
var result; |
try { |
result = o.reader.read(response); |
}catch(e){ |
this.fireEvent("loadexception", this, o, response, e); |
o.request.callback.call(o.request.scope, null, o.request.arg, false); |
return; |
} |
this.fireEvent("load", this, o, o.request.arg); |
o.request.callback.call(o.request.scope, result, o.request.arg, true); |
}, |
update : function(dataSet){ |
}, |
updateResponse : function(dataSet){ |
} |
}); |
Ext.data.ScriptTagProxy = function(config){ |
Ext.data.ScriptTagProxy.superclass.constructor.call(this); |
Ext.apply(this, config); |
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(params, reader, callback, scope, arg){ |
if(this.fireEvent("beforeload", this, params) !== false){ |
var p = Ext.urlEncode(Ext.apply(params, this.extraParams)); |
var url = this.url; |
url += (url.indexOf("?") != -1 ? "&" : "?") + p; |
if(this.nocache){ |
url += "&_dc=" + (new Date().getTime()); |
} |
var transId = ++Ext.data.ScriptTagProxy.TRANS_ID; |
var trans = { |
id : transId, |
cb : "stcCallback"+transId, |
scriptId : "stcScript"+transId, |
params : params, |
arg : arg, |
url : url, |
callback : callback, |
scope : scope, |
reader : reader |
}; |
var conn = this; |
window[trans.cb] = function(o){ |
conn.handleResponse(o, trans); |
}; |
url += String.format("&{0}={1}", this.callbackParam, trans.cb); |
if(this.autoAbort !== false){ |
this.abort(); |
} |
trans.timeoutId = this.handleFailure.defer(this.timeout, this, [trans]); |
var script = document.createElement("script"); |
script.setAttribute("src", url); |
script.setAttribute("type", "text/javascript"); |
script.setAttribute("id", trans.scriptId); |
this.head.appendChild(script); |
this.trans = trans; |
}else{ |
callback.call(scope||this, null, arg, false); |
} |
}, |
isLoading : function(){ |
return this.trans ? true : false; |
}, |
abort : function(){ |
if(this.isLoading()){ |
this.destroyTrans(this.trans); |
} |
}, |
destroyTrans : function(trans, isLoaded){ |
this.head.removeChild(document.getElementById(trans.scriptId)); |
clearTimeout(trans.timeoutId); |
if(isLoaded){ |
window[trans.cb] = undefined; |
try{ |
delete window[trans.cb]; |
}catch(e){} |
}else{ |
window[trans.cb] = function(){ |
window[trans.cb] = undefined; |
try{ |
delete window[trans.cb]; |
}catch(e){} |
}; |
} |
}, |
handleResponse : function(o, trans){ |
this.trans = false; |
this.destroyTrans(trans, true); |
var result; |
try { |
result = trans.reader.readRecords(o); |
}catch(e){ |
this.fireEvent("loadexception", this, o, trans.arg, e); |
trans.callback.call(trans.scope||window, null, trans.arg, false); |
return; |
} |
this.fireEvent("load", this, o, trans.arg); |
trans.callback.call(trans.scope||window, result, trans.arg, true); |
}, |
handleFailure : function(trans){ |
this.trans = false; |
this.destroyTrans(trans, false); |
this.fireEvent("loadexception", this, null, trans.arg); |
trans.callback.call(trans.scope||window, null, trans.arg, false); |
} |
}); |
Ext.data.JsonReader = function(meta, recordType){ |
meta = meta || {}; |
Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType || meta.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"}; |
} |
if(o.metaData){ |
delete this.ef; |
this.meta = o.metaData; |
this.recordType = Ext.data.Record.create(o.metaData.fields); |
this.onMetaChange(this.meta, this.recordType, o); |
} |
return this.readRecords(o); |
}, |
onMetaChange : function(meta, recordType, o){ |
}, |
simpleAccess: function(obj, subsc) { |
return obj[subsc]; |
}, |
getJsonAccessor: function(){ |
var re = /[\[\.]/; |
return function(expr) { |
try { |
return(re.test(expr)) |
? new Function("obj", "return obj." + expr) |
: function(obj){ |
return obj[expr]; |
}; |
} catch(e){} |
return Ext.emptyFn; |
}; |
}(), |
readRecords : function(o){ |
this.jsonData = o; |
var s = this.meta, Record = this.recordType, |
f = Record.prototype.fields, fi = f.items, fl = f.length; |
if (!this.ef) { |
if(s.totalProperty) { |
this.getTotal = this.getJsonAccessor(s.totalProperty); |
} |
if(s.successProperty) { |
this.getSuccess = this.getJsonAccessor(s.successProperty); |
} |
this.getRoot = s.root ? this.getJsonAccessor(s.root) : function(p){return p;}; |
if (s.id) { |
var g = this.getJsonAccessor(s.id); |
this.getId = function(rec) { |
var r = g(rec); |
return (r === undefined || r === "") ? null : r; |
}; |
} else { |
this.getId = function(){return null;}; |
} |
this.ef = []; |
for(var i = 0; i < fl; i++){ |
f = fi[i]; |
var map = (f.mapping !== undefined && f.mapping !== null) ? f.mapping : f.name; |
this.ef[i] = this.getJsonAccessor(map); |
} |
} |
var root = this.getRoot(o), c = root.length, totalRecords = c, success = true; |
if(s.totalProperty){ |
var v = parseInt(this.getTotal(o), 10); |
if(!isNaN(v)){ |
totalRecords = v; |
} |
} |
if(s.successProperty){ |
var v = this.getSuccess(o); |
if(v === false || v === 'false'){ |
success = false; |
} |
} |
var records = []; |
for(var i = 0; i < c; i++){ |
var n = root[i]; |
var values = {}; |
var id = this.getId(n); |
for(var j = 0; j < fl; j++){ |
f = fi[j]; |
var v = this.ef[j](n); |
values[f.name] = f.convert((v !== undefined) ? v : f.defaultValue, n); |
} |
var record = new Record(values, id); |
record.json = n; |
records[i] = record; |
} |
return { |
success : success, |
records : records, |
totalRecords : totalRecords |
}; |
} |
}); |
Ext.data.XmlReader = function(meta, recordType){ |
meta = meta || {}; |
Ext.data.XmlReader.superclass.constructor.call(this, meta, recordType || meta.fields); |
}; |
Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { |
read : function(response){ |
var doc = response.responseXML; |
if(!doc) { |
throw {message: "XmlReader.read: XML Document not available"}; |
} |
return this.readRecords(doc); |
}, |
readRecords : function(doc){ |
this.xmlData = doc; |
var root = doc.documentElement || doc; |
var q = Ext.DomQuery; |
var recordType = this.recordType, fields = recordType.prototype.fields; |
var sid = this.meta.id; |
var totalRecords = 0, success = true; |
if(this.meta.totalRecords){ |
totalRecords = q.selectNumber(this.meta.totalRecords, root, 0); |
} |
if(this.meta.success){ |
var sv = q.selectValue(this.meta.success, root, true); |
success = sv !== false && sv !== 'false'; |
} |
var records = []; |
var ns = q.select(this.meta.record, root); |
for(var i = 0, len = ns.length; i < len; i++) { |
var n = ns[i]; |
var values = {}; |
var id = sid ? q.selectValue(sid, n) : undefined; |
for(var j = 0, jlen = fields.length; j < jlen; j++){ |
var f = fields.items[j]; |
var v = q.selectValue(f.mapping || f.name, n, f.defaultValue); |
v = f.convert(v, n); |
values[f.name] = v; |
} |
var record = new recordType(values, id); |
record.node = n; |
records[records.length] = record; |
} |
return { |
success : success, |
records : records, |
totalRecords : totalRecords || records.length |
}; |
} |
}); |
Ext.data.ArrayReader = Ext.extend(Ext.data.JsonReader, { |
readRecords : function(o){ |
var sid = this.meta ? this.meta.id : null; |
var recordType = this.recordType, fields = recordType.prototype.fields; |
var records = []; |
var root = o; |
for(var i = 0; i < root.length; i++){ |
var n = root[i]; |
var values = {}; |
var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); |
for(var j = 0, jlen = fields.length; j < jlen; j++){ |
var f = fields.items[j]; |
var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; |
var v = n[k] !== undefined ? n[k] : f.defaultValue; |
v = f.convert(v, n); |
values[f.name] = v; |
} |
var record = new recordType(values, id); |
record.json = n; |
records[records.length] = record; |
} |
return { |
records : records, |
totalRecords : records.length |
}; |
} |
}); |
Ext.data.Tree = function(root){ |
this.nodeHash = {}; |
this.root = null; |
if(root){ |
this.setRootNode(root); |
} |
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(node){ |
this.root = node; |
node.ownerTree = this; |
node.isRoot = true; |
this.registerNode(node); |
return node; |
}, |
getNodeById : function(id){ |
return this.nodeHash[id]; |
}, |
registerNode : function(node){ |
this.nodeHash[node.id] = node; |
}, |
unregisterNode : function(node){ |
delete this.nodeHash[node.id]; |
}, |
toString : function(){ |
return "[Tree"+(this.id?" "+this.id:"")+"]"; |
} |
}); |
Ext.data.Node = function(attributes){ |
this.attributes = attributes || {}; |
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(o){ |
for(var i = 0, len = this.length; i < len; i++){ |
if(this[i] == o) return i; |
} |
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(evtName){ |
if(Ext.data.Node.superclass.fireEvent.apply(this, arguments) === false){ |
return false; |
} |
var ot = this.getOwnerTree(); |
if(ot){ |
if(ot.proxyNodeEvent.apply(ot, arguments) === false){ |
return false; |
} |
} |
return true; |
}, |
isLeaf : function(){ |
return this.leaf === true; |
}, |
setFirstChild : function(node){ |
this.firstChild = node; |
}, |
setLastChild : function(node){ |
this.lastChild = node; |
}, |
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; |
}, |
appendChild : function(node){ |
var multi = false; |
if(Ext.isArray(node)){ |
multi = node; |
}else if(arguments.length > 1){ |
multi = arguments; |
} |
if(multi){ |
for(var i = 0, len = multi.length; i < len; i++) { |
this.appendChild(multi[i]); |
} |
}else{ |
if(this.fireEvent("beforeappend", this.ownerTree, this, node) === false){ |
return false; |
} |
var index = this.childNodes.length; |
var oldParent = node.parentNode; |
if(oldParent){ |
if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index) === false){ |
return false; |
} |
oldParent.removeChild(node); |
} |
index = this.childNodes.length; |
if(index == 0){ |
this.setFirstChild(node); |
} |
this.childNodes.push(node); |
node.parentNode = this; |
var ps = this.childNodes[index-1]; |
if(ps){ |
node.previousSibling = ps; |
ps.nextSibling = node; |
}else{ |
node.previousSibling = null; |
} |
node.nextSibling = null; |
this.setLastChild(node); |
node.setOwnerTree(this.getOwnerTree()); |
this.fireEvent("append", this.ownerTree, this, node, index); |
if(oldParent){ |
node.fireEvent("move", this.ownerTree, node, oldParent, this, index); |
} |
return node; |
} |
}, |
removeChild : function(node){ |
var index = this.childNodes.indexOf(node); |
if(index == -1){ |
return false; |
} |
if(this.fireEvent("beforeremove", this.ownerTree, this, node) === false){ |
return false; |
} |
this.childNodes.splice(index, 1); |
if(node.previousSibling){ |
node.previousSibling.nextSibling = node.nextSibling; |
} |
if(node.nextSibling){ |
node.nextSibling.previousSibling = node.previousSibling; |
} |
if(this.firstChild == node){ |
this.setFirstChild(node.nextSibling); |
} |
if(this.lastChild == node){ |
this.setLastChild(node.previousSibling); |
} |
node.setOwnerTree(null); |
node.parentNode = null; |
node.previousSibling = null; |
node.nextSibling = null; |
this.fireEvent("remove", this.ownerTree, this, node); |
return node; |
}, |
insertBefore : function(node, refNode){ |
if(!refNode){ |
return this.appendChild(node); |
} |
if(node == refNode){ |
return false; |
} |
if(this.fireEvent("beforeinsert", this.ownerTree, this, node, refNode) === false){ |
return false; |
} |
var index = this.childNodes.indexOf(refNode); |
var oldParent = node.parentNode; |
var refIndex = index; |
if(oldParent == this && this.childNodes.indexOf(node) < index){ |
refIndex--; |
} |
if(oldParent){ |
if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index, refNode) === false){ |
return false; |
} |
oldParent.removeChild(node); |
} |
if(refIndex == 0){ |
this.setFirstChild(node); |
} |
this.childNodes.splice(refIndex, 0, node); |
node.parentNode = this; |
var ps = this.childNodes[refIndex-1]; |
if(ps){ |
node.previousSibling = ps; |
ps.nextSibling = node; |
}else{ |
node.previousSibling = null; |
} |
node.nextSibling = refNode; |
refNode.previousSibling = node; |
node.setOwnerTree(this.getOwnerTree()); |
this.fireEvent("insert", this.ownerTree, this, node, refNode); |
if(oldParent){ |
node.fireEvent("move", this.ownerTree, node, oldParent, this, refIndex, refNode); |
} |
return node; |
}, |
remove : function(){ |
this.parentNode.removeChild(this); |
return this; |
}, |
item : function(index){ |
return this.childNodes[index]; |
}, |
replaceChild : function(newChild, oldChild){ |
this.insertBefore(newChild, oldChild); |
this.removeChild(oldChild); |
return oldChild; |
}, |
indexOf : function(child){ |
return this.childNodes.indexOf(child); |
}, |
getOwnerTree : function(){ |
if(!this.ownerTree){ |
var p = this; |
while(p){ |
if(p.ownerTree){ |
this.ownerTree = p.ownerTree; |
break; |
} |
p = p.parentNode; |
} |
} |
return this.ownerTree; |
}, |
getDepth : function(){ |
var depth = 0; |
var p = this; |
while(p.parentNode){ |
++depth; |
p = p.parentNode; |
} |
return depth; |
}, |
setOwnerTree : function(tree){ |
if(tree != this.ownerTree){ |
if(this.ownerTree){ |
this.ownerTree.unregisterNode(this); |
} |
this.ownerTree = tree; |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++) { |
cs[i].setOwnerTree(tree); |
} |
if(tree){ |
tree.registerNode(this); |
} |
} |
}, |
getPath : function(attr){ |
attr = attr || "id"; |
var p = this.parentNode; |
var b = [this.attributes[attr]]; |
while(p){ |
b.unshift(p.attributes[attr]); |
p = p.parentNode; |
} |
var sep = this.getOwnerTree().pathSeparator; |
return sep + b.join(sep); |
}, |
bubble : function(fn, scope, args){ |
var p = this; |
while(p){ |
if(fn.apply(scope || p, args || [p]) === false){ |
break; |
} |
p = p.parentNode; |
} |
}, |
cascade : function(fn, scope, args){ |
if(fn.apply(scope || this, args || [this]) !== false){ |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++) { |
cs[i].cascade(fn, scope, args); |
} |
} |
}, |
eachChild : function(fn, scope, args){ |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++) { |
if(fn.apply(scope || this, args || [cs[i]]) === false){ |
break; |
} |
} |
}, |
findChild : function(attribute, value){ |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++) { |
if(cs[i].attributes[attribute] == value){ |
return cs[i]; |
} |
} |
return null; |
}, |
findChildBy : function(fn, scope){ |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++) { |
if(fn.call(scope||cs[i], cs[i]) === true){ |
return cs[i]; |
} |
} |
return null; |
}, |
sort : function(fn, scope){ |
var cs = this.childNodes; |
var len = cs.length; |
if(len > 0){ |
var sortFn = scope ? function(){fn.apply(scope, arguments);} : fn; |
cs.sort(sortFn); |
for(var i = 0; i < len; i++){ |
var n = cs[i]; |
n.previousSibling = cs[i-1]; |
n.nextSibling = cs[i+1]; |
if(i == 0){ |
this.setFirstChild(n); |
} |
if(i == len-1){ |
this.setLastChild(n); |
} |
} |
} |
}, |
contains : function(node){ |
return node.isAncestor(this); |
}, |
isAncestor : function(node){ |
var p = this.parentNode; |
while(p){ |
if(p == node){ |
return true; |
} |
p = p.parentNode; |
} |
return false; |
}, |
toString : function(){ |
return "[Node"+(this.id?" "+this.id:"")+"]"; |
} |
}); |
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(field, forceRegroup){ |
if(this.groupField == field && !forceRegroup){ |
return; |
} |
this.groupField = field; |
if(this.remoteGroup){ |
if(!this.baseParams){ |
this.baseParams = {}; |
} |
this.baseParams['groupBy'] = field; |
} |
if(this.groupOnSort){ |
this.sort(field); |
return; |
} |
if(this.remoteGroup){ |
this.reload(); |
}else{ |
var si = this.sortInfo || {}; |
if(si.field != field){ |
this.applySort(); |
}else{ |
this.sortData(field); |
} |
this.fireEvent('datachanged', this); |
} |
}, |
applySort : function(){ |
Ext.data.GroupingStore.superclass.applySort.call(this); |
if(!this.groupOnSort && !this.remoteGroup){ |
var gs = this.getGroupState(); |
if(gs && gs != this.sortInfo.field){ |
this.sortData(this.groupField); |
} |
} |
}, |
applyGrouping : function(alwaysFireChange){ |
if(this.groupField !== false){ |
this.groupBy(this.groupField, true); |
return true; |
}else{ |
if(alwaysFireChange === true){ |
this.fireEvent('datachanged', this); |
} |
return false; |
} |
}, |
getGroupState : function(){ |
return this.groupOnSort && this.groupField !== false ? |
(this.sortInfo ? this.sortInfo.field : undefined) : this.groupField; |
} |
}); |
Ext.ComponentMgr = function(){ |
var all = new Ext.util.MixedCollection(); |
var types = {}; |
return { |
register : function(c){ |
all.add(c); |
}, |
unregister : function(c){ |
all.remove(c); |
}, |
get : function(id){ |
return all.get(id); |
}, |
onAvailable : function(id, fn, scope){ |
all.on("add", function(index, o){ |
if(o.id == id){ |
fn.call(scope || o, o); |
all.un("add", fn, scope); |
} |
}); |
}, |
all : all, |
registerType : function(xtype, cls){ |
types[xtype] = cls; |
cls.xtype = xtype; |
}, |
create : function(config, defaultType){ |
return new types[config.xtype || defaultType](config); |
} |
}; |
}(); |
Ext.reg = Ext.ComponentMgr.registerType; |
Ext.Component = function(config){ |
config = config || {}; |
if(config.initialConfig){ |
if(config.isAction){ this.baseAction = config; |
} |
config = config.initialConfig; }else if(config.tagName || config.dom || typeof config == "string"){ config = {applyTo: config, id: config.id || config}; |
} |
this.initialConfig = config; |
Ext.apply(this, config); |
this.addEvents( |
'disable', |
'enable', |
'beforeshow', |
'show', |
'beforehide', |
'hide', |
'beforerender', |
'render', |
'beforedestroy', |
'destroy', |
'beforestaterestore', |
'staterestore', |
'beforestatesave', |
'statesave' |
); |
this.getId(); |
Ext.ComponentMgr.register(this); |
Ext.Component.superclass.constructor.call(this); |
if(this.baseAction){ |
this.baseAction.addComponent(this); |
} |
this.initComponent(); |
if(this.plugins){ |
if(Ext.isArray(this.plugins)){ |
for(var i = 0, len = this.plugins.length; i < len; i++){ |
this.plugins[i].init(this); |
} |
}else{ |
this.plugins.init(this); |
} |
} |
if(this.stateful !== false){ |
this.initState(config); |
} |
if(this.applyTo){ |
this.applyToMarkup(this.applyTo); |
delete this.applyTo; |
}else if(this.renderTo){ |
this.render(this.renderTo); |
delete this.renderTo; |
} |
}; |
Ext.Component.AUTO_ID = 1000; |
Ext.extend(Ext.Component, Ext.util.Observable, { |
disabledClass : "x-item-disabled", |
allowDomMove : true, |
autoShow : false, |
hideMode: 'display', |
hideParent: false, |
hidden : false, |
disabled : false, |
rendered : false, |
ctype : "Ext.Component", |
actionMode : "el", |
getActionEl : function(){ |
return this[this.actionMode]; |
}, |
initComponent : Ext.emptyFn, |
render : function(container, position){ |
if(!this.rendered && this.fireEvent("beforerender", this) !== false){ |
if(!container && this.el){ |
this.el = Ext.get(this.el); |
container = this.el.dom.parentNode; |
this.allowDomMove = false; |
} |
this.container = Ext.get(container); |
if(this.ctCls){ |
this.container.addClass(this.ctCls); |
} |
this.rendered = true; |
if(position !== undefined){ |
if(typeof position == 'number'){ |
position = this.container.dom.childNodes[position]; |
}else{ |
position = Ext.getDom(position); |
} |
} |
this.onRender(this.container, position || null); |
if(this.autoShow){ |
this.el.removeClass(['x-hidden','x-hide-' + this.hideMode]); |
} |
if(this.cls){ |
this.el.addClass(this.cls); |
delete this.cls; |
} |
if(this.style){ |
this.el.applyStyles(this.style); |
delete this.style; |
} |
this.fireEvent("render", this); |
this.afterRender(this.container); |
if(this.hidden){ |
this.hide(); |
} |
if(this.disabled){ |
this.disable(); |
} |
this.initStateEvents(); |
} |
return this; |
}, |
initState : function(config){ |
if(Ext.state.Manager){ |
var state = Ext.state.Manager.get(this.stateId || this.id); |
if(state){ |
if(this.fireEvent('beforestaterestore', this, state) !== false){ |
this.applyState(state); |
this.fireEvent('staterestore', this, state); |
} |
} |
} |
}, |
initStateEvents : function(){ |
if(this.stateEvents){ |
for(var i = 0, e; e = this.stateEvents[i]; i++){ |
this.on(e, this.saveState, this, {delay:100}); |
} |
} |
}, |
applyState : function(state, config){ |
if(state){ |
Ext.apply(this, state); |
} |
}, |
getState : function(){ |
return null; |
}, |
saveState : function(){ |
if(Ext.state.Manager){ |
var state = this.getState(); |
if(this.fireEvent('beforestatesave', this, state) !== false){ |
Ext.state.Manager.set(this.stateId || this.id, state); |
this.fireEvent('statesave', this, state); |
} |
} |
}, |
applyToMarkup : function(el){ |
this.allowDomMove = false; |
this.el = Ext.get(el); |
this.render(this.el.dom.parentNode); |
}, |
addClass : function(cls){ |
if(this.el){ |
this.el.addClass(cls); |
}else{ |
this.cls = this.cls ? this.cls + ' ' + cls : cls; |
} |
}, |
removeClass : function(cls){ |
if(this.el){ |
this.el.removeClass(cls); |
}else if(this.cls){ |
this.cls = this.cls.split(' ').remove(cls).join(' '); |
} |
}, |
onRender : function(ct, position){ |
if(this.autoEl){ |
if(typeof this.autoEl == 'string'){ |
this.el = document.createElement(this.autoEl); |
}else{ |
var div = document.createElement('div'); |
Ext.DomHelper.overwrite(div, this.autoEl); |
this.el = div.firstChild; |
} |
if (!this.el.id) { |
this.el.id = this.getId(); |
} |
} |
if(this.el){ |
this.el = Ext.get(this.el); |
if(this.allowDomMove !== false){ |
ct.dom.insertBefore(this.el.dom, position); |
} |
} |
}, |
getAutoCreate : function(){ |
var cfg = typeof this.autoCreate == "object" ? |
this.autoCreate : Ext.apply({}, this.defaultAutoCreate); |
if(this.id && !cfg.id){ |
cfg.id = this.id; |
} |
return cfg; |
}, |
afterRender : Ext.emptyFn, |
destroy : function(){ |
if(this.fireEvent("beforedestroy", this) !== false){ |
this.beforeDestroy(); |
if(this.rendered){ |
this.el.removeAllListeners(); |
this.el.remove(); |
if(this.actionMode == "container"){ |
this.container.remove(); |
} |
} |
this.onDestroy(); |
Ext.ComponentMgr.unregister(this); |
this.fireEvent("destroy", this); |
this.purgeListeners(); |
} |
}, |
beforeDestroy : Ext.emptyFn, |
onDestroy : Ext.emptyFn, |
getEl : function(){ |
return this.el; |
}, |
getId : function(){ |
return this.id || (this.id = "ext-comp-" + (++Ext.Component.AUTO_ID)); |
}, |
getItemId : function(){ |
return this.itemId || this.getId(); |
}, |
focus : function(selectText, delay){ |
if(delay){ |
this.focus.defer(typeof delay == 'number' ? delay : 10, this, [selectText, false]); |
return; |
} |
if(this.rendered){ |
this.el.focus(); |
if(selectText === true){ |
this.el.dom.select(); |
} |
} |
return this; |
}, |
blur : function(){ |
if(this.rendered){ |
this.el.blur(); |
} |
return this; |
}, |
disable : function(){ |
if(this.rendered){ |
this.onDisable(); |
} |
this.disabled = true; |
this.fireEvent("disable", this); |
return this; |
}, |
onDisable : function(){ |
this.getActionEl().addClass(this.disabledClass); |
this.el.dom.disabled = true; |
}, |
enable : function(){ |
if(this.rendered){ |
this.onEnable(); |
} |
this.disabled = false; |
this.fireEvent("enable", this); |
return this; |
}, |
onEnable : function(){ |
this.getActionEl().removeClass(this.disabledClass); |
this.el.dom.disabled = false; |
}, |
setDisabled : function(disabled){ |
this[disabled ? "disable" : "enable"](); |
}, |
show: function(){ |
if(this.fireEvent("beforeshow", this) !== false){ |
this.hidden = false; |
if(this.autoRender){ |
this.render(typeof this.autoRender == 'boolean' ? Ext.getBody() : this.autoRender); |
} |
if(this.rendered){ |
this.onShow(); |
} |
this.fireEvent("show", this); |
} |
return this; |
}, |
onShow : function(){ |
if(this.hideParent){ |
this.container.removeClass('x-hide-' + this.hideMode); |
}else{ |
this.getActionEl().removeClass('x-hide-' + this.hideMode); |
} |
}, |
hide: function(){ |
if(this.fireEvent("beforehide", this) !== false){ |
this.hidden = true; |
if(this.rendered){ |
this.onHide(); |
} |
this.fireEvent("hide", this); |
} |
return this; |
}, |
onHide : function(){ |
if(this.hideParent){ |
this.container.addClass('x-hide-' + this.hideMode); |
}else{ |
this.getActionEl().addClass('x-hide-' + this.hideMode); |
} |
}, |
setVisible: function(visible){ |
if(visible) { |
this.show(); |
}else{ |
this.hide(); |
} |
return this; |
}, |
isVisible : function(){ |
return this.rendered && this.getActionEl().isVisible(); |
}, |
cloneConfig : function(overrides){ |
overrides = overrides || {}; |
var id = overrides.id || Ext.id(); |
var cfg = Ext.applyIf(overrides, this.initialConfig); |
cfg.id = id; return new this.constructor(cfg); |
}, |
getXType : function(){ |
return this.constructor.xtype; |
}, |
isXType : function(xtype, shallow){ |
return !shallow ? |
('/' + this.getXTypes() + '/').indexOf('/' + xtype + '/') != -1 : |
this.constructor.xtype == xtype; |
}, |
getXTypes : function(){ |
var tc = this.constructor; |
if(!tc.xtypes){ |
var c = [], sc = this; |
while(sc && sc.constructor.xtype){ |
c.unshift(sc.constructor.xtype); |
sc = sc.constructor.superclass; |
} |
tc.xtypeChain = c; |
tc.xtypes = c.join('/'); |
} |
return tc.xtypes; |
}, |
findParentBy: function(fn) { |
for (var p = this.ownerCt; (p != null) && !fn(p, this); p = p.ownerCt); |
return p || null; |
}, |
findParentByType: function(xtype) { |
return typeof xtype == 'function' ? |
this.findParentBy(function(p){ |
return p.constructor === xtype; |
}) : |
this.findParentBy(function(p){ |
return p.constructor.xtype === xtype; |
}); |
} |
}); |
Ext.reg('component', Ext.Component); |
Ext.Action = function(config){ |
this.initialConfig = config; |
this.items = []; |
} |
Ext.Action.prototype = { |
isAction : true, |
setText : function(text){ |
this.initialConfig.text = text; |
this.callEach('setText', [text]); |
}, |
getText : function(){ |
return this.initialConfig.text; |
}, |
setIconClass : function(cls){ |
this.initialConfig.iconCls = cls; |
this.callEach('setIconClass', [cls]); |
}, |
getIconClass : function(){ |
return this.initialConfig.iconCls; |
}, |
setDisabled : function(v){ |
this.initialConfig.disabled = v; |
this.callEach('setDisabled', [v]); |
}, |
enable : function(){ |
this.setDisabled(false); |
}, |
disable : function(){ |
this.setDisabled(true); |
}, |
isDisabled : function(){ |
return this.initialConfig.disabled; |
}, |
setHidden : function(v){ |
this.initialConfig.hidden = v; |
this.callEach('setVisible', [!v]); |
}, |
show : function(){ |
this.setHidden(false); |
}, |
hide : function(){ |
this.setHidden(true); |
}, |
isHidden : function(){ |
return this.initialConfig.hidden; |
}, |
setHandler : function(fn, scope){ |
this.initialConfig.handler = fn; |
this.initialConfig.scope = scope; |
this.callEach('setHandler', [fn, scope]); |
}, |
each : function(fn, scope){ |
Ext.each(this.items, fn, scope); |
}, |
callEach : function(fnName, args){ |
var cs = this.items; |
for(var i = 0, len = cs.length; i < len; i++){ |
cs[i][fnName].apply(cs[i], args); |
} |
}, |
addComponent : function(comp){ |
this.items.push(comp); |
comp.on('destroy', this.removeComponent, this); |
}, |
removeComponent : function(comp){ |
this.items.remove(comp); |
}, |
execute : function(){ |
this.initialConfig.handler.apply(this.initialConfig.scope || window, arguments); |
} |
}; |
(function(){ |
Ext.Layer = function(config, existingEl){ |
config = config || {}; |
var dh = Ext.DomHelper; |
var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body; |
if(existingEl){ |
this.dom = Ext.getDom(existingEl); |
} |
if(!this.dom){ |
var o = config.dh || {tag: "div", cls: "x-layer"}; |
this.dom = dh.append(pel, o); |
} |
if(config.cls){ |
this.addClass(config.cls); |
} |
this.constrain = config.constrain !== false; |
this.visibilityMode = Ext.Element.VISIBILITY; |
if(config.id){ |
this.id = this.dom.id = config.id; |
}else{ |
this.id = Ext.id(this.dom); |
} |
this.zindex = config.zindex || this.getZIndex(); |
this.position("absolute", this.zindex); |
if(config.shadow){ |
this.shadowOffset = config.shadowOffset || 4; |
this.shadow = new Ext.Shadow({ |
offset : this.shadowOffset, |
mode : config.shadow |
}); |
}else{ |
this.shadowOffset = 0; |
} |
this.useShim = config.shim !== false && Ext.useShims; |
this.useDisplay = config.useDisplay; |
this.hide(); |
}; |
var supr = Ext.Element.prototype; |
var shims = []; |
Ext.extend(Ext.Layer, Ext.Element, { |
getZIndex : function(){ |
return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000; |
}, |
getShim : function(){ |
if(!this.useShim){ |
return null; |
} |
if(this.shim){ |
return this.shim; |
} |
var shim = shims.shift(); |
if(!shim){ |
shim = this.createShim(); |
shim.enableDisplayMode('block'); |
shim.dom.style.display = 'none'; |
shim.dom.style.visibility = 'visible'; |
} |
var pn = this.dom.parentNode; |
if(shim.dom.parentNode != pn){ |
pn.insertBefore(shim.dom, this.dom); |
} |
shim.setStyle('z-index', this.getZIndex()-2); |
this.shim = shim; |
return shim; |
}, |
hideShim : function(){ |
if(this.shim){ |
this.shim.setDisplayed(false); |
shims.push(this.shim); |
delete this.shim; |
} |
}, |
disableShadow : function(){ |
if(this.shadow){ |
this.shadowDisabled = true; |
this.shadow.hide(); |
this.lastShadowOffset = this.shadowOffset; |
this.shadowOffset = 0; |
} |
}, |
enableShadow : function(show){ |
if(this.shadow){ |
this.shadowDisabled = false; |
this.shadowOffset = this.lastShadowOffset; |
delete this.lastShadowOffset; |
if(show){ |
this.sync(true); |
} |
} |
}, |
sync : function(doShow){ |
var sw = this.shadow; |
if(!this.updating && this.isVisible() && (sw || this.useShim)){ |
var sh = this.getShim(); |
var w = this.getWidth(), |
h = this.getHeight(); |
var l = this.getLeft(true), |
t = this.getTop(true); |
if(sw && !this.shadowDisabled){ |
if(doShow && !sw.isVisible()){ |
sw.show(this); |
}else{ |
sw.realign(l, t, w, h); |
} |
if(sh){ |
if(doShow){ |
sh.show(); |
} |
var a = sw.adjusts, s = sh.dom.style; |
s.left = (Math.min(l, l+a.l))+"px"; |
s.top = (Math.min(t, t+a.t))+"px"; |
s.width = (w+a.w)+"px"; |
s.height = (h+a.h)+"px"; |
} |
}else if(sh){ |
if(doShow){ |
sh.show(); |
} |
sh.setSize(w, h); |
sh.setLeftTop(l, t); |
} |
} |
}, |
destroy : function(){ |
this.hideShim(); |
if(this.shadow){ |
this.shadow.hide(); |
} |
this.removeAllListeners(); |
Ext.removeNode(this.dom); |
Ext.Element.uncache(this.id); |
}, |
remove : function(){ |
this.destroy(); |
}, |
beginUpdate : function(){ |
this.updating = true; |
}, |
endUpdate : function(){ |
this.updating = false; |
this.sync(true); |
}, |
hideUnders : function(negOffset){ |
if(this.shadow){ |
this.shadow.hide(); |
} |
this.hideShim(); |
}, |
constrainXY : function(){ |
if(this.constrain){ |
var vw = Ext.lib.Dom.getViewWidth(), |
vh = Ext.lib.Dom.getViewHeight(); |
var s = Ext.getDoc().getScroll(); |
var xy = this.getXY(); |
var x = xy[0], y = xy[1]; |
var w = this.dom.offsetWidth+this.shadowOffset, h = this.dom.offsetHeight+this.shadowOffset; |
var moved = false; |
if((x + w) > vw+s.left){ |
x = vw - w - this.shadowOffset; |
moved = true; |
} |
if((y + h) > vh+s.top){ |
y = vh - h - this.shadowOffset; |
moved = true; |
} |
if(x < s.left){ |
x = s.left; |
moved = true; |
} |
if(y < s.top){ |
y = s.top; |
moved = true; |
} |
if(moved){ |
if(this.avoidY){ |
var ay = this.avoidY; |
if(y <= ay && (y+h) >= ay){ |
y = ay-h-5; |
} |
} |
xy = [x, y]; |
this.storeXY(xy); |
supr.setXY.call(this, xy); |
this.sync(); |
} |
} |
}, |
isVisible : function(){ |
return this.visible; |
}, |
showAction : function(){ |
this.visible = true; |
if(this.useDisplay === true){ |
this.setDisplayed(""); |
}else if(this.lastXY){ |
supr.setXY.call(this, this.lastXY); |
}else if(this.lastLT){ |
supr.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]); |
} |
}, |
hideAction : function(){ |
this.visible = false; |
if(this.useDisplay === true){ |
this.setDisplayed(false); |
}else{ |
this.setLeftTop(-10000,-10000); |
} |
}, |
setVisible : function(v, a, d, c, e){ |
if(v){ |
this.showAction(); |
} |
if(a && v){ |
var cb = function(){ |
this.sync(true); |
if(c){ |
c(); |
} |
}.createDelegate(this); |
supr.setVisible.call(this, true, true, d, cb, e); |
}else{ |
if(!v){ |
this.hideUnders(true); |
} |
var cb = c; |
if(a){ |
cb = function(){ |
this.hideAction(); |
if(c){ |
c(); |
} |
}.createDelegate(this); |
} |
supr.setVisible.call(this, v, a, d, cb, e); |
if(v){ |
this.sync(true); |
}else if(!a){ |
this.hideAction(); |
} |
} |
}, |
storeXY : function(xy){ |
delete this.lastLT; |
this.lastXY = xy; |
}, |
storeLeftTop : function(left, top){ |
delete this.lastXY; |
this.lastLT = [left, top]; |
}, |
beforeFx : function(){ |
this.beforeAction(); |
return Ext.Layer.superclass.beforeFx.apply(this, arguments); |
}, |
afterFx : function(){ |
Ext.Layer.superclass.afterFx.apply(this, arguments); |
this.sync(this.isVisible()); |
}, |
beforeAction : function(){ |
if(!this.updating && this.shadow){ |
this.shadow.hide(); |
} |
}, |
setLeft : function(left){ |
this.storeLeftTop(left, this.getTop(true)); |
supr.setLeft.apply(this, arguments); |
this.sync(); |
}, |
setTop : function(top){ |
this.storeLeftTop(this.getLeft(true), top); |
supr.setTop.apply(this, arguments); |
this.sync(); |
}, |
setLeftTop : function(left, top){ |
this.storeLeftTop(left, top); |
supr.setLeftTop.apply(this, arguments); |
this.sync(); |
}, |
setXY : function(xy, a, d, c, e){ |
this.fixDisplay(); |
this.beforeAction(); |
this.storeXY(xy); |
var cb = this.createCB(c); |
supr.setXY.call(this, xy, a, d, cb, e); |
if(!a){ |
cb(); |
} |
}, |
createCB : function(c){ |
var el = this; |
return function(){ |
el.constrainXY(); |
el.sync(true); |
if(c){ |
c(); |
} |
}; |
}, |
setX : function(x, a, d, c, e){ |
this.setXY([x, this.getY()], a, d, c, e); |
}, |
setY : function(y, a, d, c, e){ |
this.setXY([this.getX(), y], a, d, c, e); |
}, |
setSize : function(w, h, a, d, c, e){ |
this.beforeAction(); |
var cb = this.createCB(c); |
supr.setSize.call(this, w, h, a, d, cb, e); |
if(!a){ |
cb(); |
} |
}, |
setWidth : function(w, a, d, c, e){ |
this.beforeAction(); |
var cb = this.createCB(c); |
supr.setWidth.call(this, w, a, d, cb, e); |
if(!a){ |
cb(); |
} |
}, |
setHeight : function(h, a, d, c, e){ |
this.beforeAction(); |
var cb = this.createCB(c); |
supr.setHeight.call(this, h, a, d, cb, e); |
if(!a){ |
cb(); |
} |
}, |
setBounds : function(x, y, w, h, a, d, c, e){ |
this.beforeAction(); |
var cb = this.createCB(c); |
if(!a){ |
this.storeXY([x, y]); |
supr.setXY.call(this, [x, y]); |
supr.setSize.call(this, w, h, a, d, cb, e); |
cb(); |
}else{ |
supr.setBounds.call(this, x, y, w, h, a, d, cb, e); |
} |
return this; |
}, |
setZIndex : function(zindex){ |
this.zindex = zindex; |
this.setStyle("z-index", zindex + 2); |
if(this.shadow){ |
this.shadow.setZIndex(zindex + 1); |
} |
if(this.shim){ |
this.shim.setStyle("z-index", zindex); |
} |
} |
}); |
})(); |
Ext.Shadow = function(config){ |
Ext.apply(this, config); |
if(typeof this.mode != "string"){ |
this.mode = this.defaultMode; |
} |
var o = this.offset, a = {h: 0}; |
var rad = Math.floor(this.offset/2); |
switch(this.mode.toLowerCase()){ case "drop": |
a.w = 0; |
a.l = a.t = o; |
a.t -= 1; |
if(Ext.isIE){ |
a.l -= this.offset + rad; |
a.t -= this.offset + rad; |
a.w -= rad; |
a.h -= rad; |
a.t += 1; |
} |
break; |
case "sides": |
a.w = (o*2); |
a.l = -o; |
a.t = o-1; |
if(Ext.isIE){ |
a.l -= (this.offset - rad); |
a.t -= this.offset + rad; |
a.l += 1; |
a.w -= (this.offset - rad)*2; |
a.w -= rad + 1; |
a.h -= 1; |
} |
break; |
case "frame": |
a.w = a.h = (o*2); |
a.l = a.t = -o; |
a.t += 1; |
a.h -= 2; |
if(Ext.isIE){ |
a.l -= (this.offset - rad); |
a.t -= (this.offset - rad); |
a.l += 1; |
a.w -= (this.offset + rad + 1); |
a.h -= (this.offset + rad); |
a.h += 1; |
} |
break; |
}; |
this.adjusts = a; |
}; |
Ext.Shadow.prototype = { |
offset: 4, |
defaultMode: "drop", |
show : function(target){ |
target = Ext.get(target); |
if(!this.el){ |
this.el = Ext.Shadow.Pool.pull(); |
if(this.el.dom.nextSibling != target.dom){ |
this.el.insertBefore(target); |
} |
} |
this.el.setStyle("z-index", this.zIndex || parseInt(target.getStyle("z-index"), 10)-1); |
if(Ext.isIE){ |
this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+(this.offset)+")"; |
} |
this.realign( |
target.getLeft(true), |
target.getTop(true), |
target.getWidth(), |
target.getHeight() |
); |
this.el.dom.style.display = "block"; |
}, |
isVisible : function(){ |
return this.el ? true : false; |
}, |
realign : function(l, t, w, h){ |
if(!this.el){ |
return; |
} |
var a = this.adjusts, d = this.el.dom, s = d.style; |
var iea = 0; |
s.left = (l+a.l)+"px"; |
s.top = (t+a.t)+"px"; |
var sw = (w+a.w), sh = (h+a.h), sws = sw +"px", shs = sh + "px"; |
if(s.width != sws || s.height != shs){ |
s.width = sws; |
s.height = shs; |
if(!Ext.isIE){ |
var cn = d.childNodes; |
var sww = Math.max(0, (sw-12))+"px"; |
cn[0].childNodes[1].style.width = sww; |
cn[1].childNodes[1].style.width = sww; |
cn[2].childNodes[1].style.width = sww; |
cn[1].style.height = Math.max(0, (sh-12))+"px"; |
} |
} |
}, |
hide : function(){ |
if(this.el){ |
this.el.dom.style.display = "none"; |
Ext.Shadow.Pool.push(this.el); |
delete this.el; |
} |
}, |
setZIndex : function(z){ |
this.zIndex = z; |
if(this.el){ |
this.el.setStyle("z-index", z); |
} |
} |
}; |
Ext.Shadow.Pool = function(){ |
var p = []; |
var markup = Ext.isIE ? |
'<div class="x-ie-shadow"></div>' : |
'<div class="x-shadow"><div class="xst"><div class="xstl"></div><div class="xstc"></div><div class="xstr"></div></div><div class="xsc"><div class="xsml"></div><div class="xsmc"></div><div class="xsmr"></div></div><div class="xsb"><div class="xsbl"></div><div class="xsbc"></div><div class="xsbr"></div></div></div>'; |
return { |
pull : function(){ |
var sh = p.shift(); |
if(!sh){ |
sh = Ext.get(Ext.DomHelper.insertHtml("beforeBegin", document.body.firstChild, markup)); |
sh.autoBoxAdjust = false; |
} |
return sh; |
}, |
push : function(sh){ |
p.push(sh); |
} |
}; |
}(); |
Ext.BoxComponent = Ext.extend(Ext.Component, { |
initComponent : function(){ |
Ext.BoxComponent.superclass.initComponent.call(this); |
this.addEvents( |
'resize', |
'move' |
); |
}, |
boxReady : false, |
deferHeight: false, |
setSize : function(w, h){ |
if(typeof w == 'object'){ |
h = w.height; |
w = w.width; |
} |
if(!this.boxReady){ |
this.width = w; |
this.height = h; |
return this; |
} |
if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){ |
return this; |
} |
this.lastSize = {width: w, height: h}; |
var adj = this.adjustSize(w, h); |
var aw = adj.width, ah = adj.height; |
if(aw !== undefined || ah !== undefined){ var rz = this.getResizeEl(); |
if(!this.deferHeight && aw !== undefined && ah !== undefined){ |
rz.setSize(aw, ah); |
}else if(!this.deferHeight && ah !== undefined){ |
rz.setHeight(ah); |
}else if(aw !== undefined){ |
rz.setWidth(aw); |
} |
this.onResize(aw, ah, w, h); |
this.fireEvent('resize', this, aw, ah, w, h); |
} |
return this; |
}, |
setWidth : function(width){ |
return this.setSize(width); |
}, |
setHeight : function(height){ |
return this.setSize(undefined, height); |
}, |
getSize : function(){ |
return this.el.getSize(); |
}, |
getPosition : function(local){ |
if(local === true){ |
return [this.el.getLeft(true), this.el.getTop(true)]; |
} |
return this.xy || this.el.getXY(); |
}, |
getBox : function(local){ |
var s = this.el.getSize(); |
if(local === true){ |
s.x = this.el.getLeft(true); |
s.y = this.el.getTop(true); |
}else{ |
var xy = this.xy || this.el.getXY(); |
s.x = xy[0]; |
s.y = xy[1]; |
} |
return s; |
}, |
updateBox : function(box){ |
this.setSize(box.width, box.height); |
this.setPagePosition(box.x, box.y); |
return this; |
}, |
getResizeEl : function(){ |
return this.resizeEl || this.el; |
}, |
getPositionEl : function(){ |
return this.positionEl || this.el; |
}, |
setPosition : function(x, y){ |
if(x && typeof x[1] == 'number'){ |
y = x[1]; |
x = x[0]; |
} |
this.x = x; |
this.y = y; |
if(!this.boxReady){ |
return this; |
} |
var adj = this.adjustPosition(x, y); |
var ax = adj.x, ay = adj.y; |
var el = this.getPositionEl(); |
if(ax !== undefined || ay !== undefined){ |
if(ax !== undefined && ay !== undefined){ |
el.setLeftTop(ax, ay); |
}else if(ax !== undefined){ |
el.setLeft(ax); |
}else if(ay !== undefined){ |
el.setTop(ay); |
} |
this.onPosition(ax, ay); |
this.fireEvent('move', this, ax, ay); |
} |
return this; |
}, |
setPagePosition : function(x, y){ |
if(x && typeof x[1] == 'number'){ |
y = x[1]; |
x = x[0]; |
} |
this.pageX = x; |
this.pageY = y; |
if(!this.boxReady){ |
return; |
} |
if(x === undefined || y === undefined){ return; |
} |
var p = this.el.translatePoints(x, y); |
this.setPosition(p.left, p.top); |
return this; |
}, |
onRender : function(ct, position){ |
Ext.BoxComponent.superclass.onRender.call(this, ct, position); |
if(this.resizeEl){ |
this.resizeEl = Ext.get(this.resizeEl); |
} |
if(this.positionEl){ |
this.positionEl = Ext.get(this.positionEl); |
} |
}, |
afterRender : function(){ |
Ext.BoxComponent.superclass.afterRender.call(this); |
this.boxReady = true; |
this.setSize(this.width, this.height); |
if(this.x || this.y){ |
this.setPosition(this.x, this.y); |
}else if(this.pageX || this.pageY){ |
this.setPagePosition(this.pageX, this.pageY); |
} |
}, |
syncSize : function(){ |
delete this.lastSize; |
this.setSize(this.autoWidth ? undefined : this.el.getWidth(), this.autoHeight ? undefined : this.el.getHeight()); |
return this; |
}, |
onResize : function(adjWidth, adjHeight, rawWidth, rawHeight){ |
}, |
onPosition : function(x, y){ |
}, |
adjustSize : function(w, h){ |
if(this.autoWidth){ |
w = 'auto'; |
} |
if(this.autoHeight){ |
h = 'auto'; |
} |
return {width : w, height: h}; |
}, |
adjustPosition : function(x, y){ |
return {x : x, y: y}; |
} |
}); |
Ext.reg('box', Ext.BoxComponent); |
Ext.SplitBar = function(dragElement, resizingElement, orientation, placement, existingProxy){ |
this.el = Ext.get(dragElement, true); |
this.el.dom.unselectable = "on"; |
this.resizingEl = Ext.get(resizingElement, true); |
this.orientation = orientation || Ext.SplitBar.HORIZONTAL; |
this.minSize = 0; |
this.maxSize = 2000; |
this.animate = false; |
this.useShim = false; |
this.shim = null; |
if(!existingProxy){ |
this.proxy = Ext.SplitBar.createProxy(this.orientation); |
}else{ |
this.proxy = Ext.get(existingProxy).dom; |
} |
this.dd = new Ext.dd.DDProxy(this.el.dom.id, "XSplitBars", {dragElId : this.proxy.id}); |
this.dd.b4StartDrag = this.onStartProxyDrag.createDelegate(this); |
this.dd.endDrag = this.onEndProxyDrag.createDelegate(this); |
this.dragSpecs = {}; |
this.adapter = new Ext.SplitBar.BasicLayoutAdapter(); |
this.adapter.init(this); |
if(this.orientation == Ext.SplitBar.HORIZONTAL){ |
this.placement = placement || (this.el.getX() > this.resizingEl.getX() ? Ext.SplitBar.LEFT : Ext.SplitBar.RIGHT); |
this.el.addClass("x-splitbar-h"); |
}else{ |
this.placement = placement || (this.el.getY() > this.resizingEl.getY() ? Ext.SplitBar.TOP : Ext.SplitBar.BOTTOM); |
this.el.addClass("x-splitbar-v"); |
} |
this.addEvents( |
"resize", |
"moved", |
"beforeresize", |
"beforeapply" |
); |
Ext.SplitBar.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.SplitBar, Ext.util.Observable, { |
onStartProxyDrag : function(x, y){ |
this.fireEvent("beforeresize", this); |
this.overlay = Ext.DomHelper.append(document.body, {cls: "x-drag-overlay", html: " "}, true); |
this.overlay.unselectable(); |
this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); |
this.overlay.show(); |
Ext.get(this.proxy).setDisplayed("block"); |
var size = this.adapter.getElementSize(this); |
this.activeMinSize = this.getMinimumSize();; |
this.activeMaxSize = this.getMaximumSize();; |
var c1 = size - this.activeMinSize; |
var c2 = Math.max(this.activeMaxSize - size, 0); |
if(this.orientation == Ext.SplitBar.HORIZONTAL){ |
this.dd.resetConstraints(); |
this.dd.setXConstraint( |
this.placement == Ext.SplitBar.LEFT ? c1 : c2, |
this.placement == Ext.SplitBar.LEFT ? c2 : c1 |
); |
this.dd.setYConstraint(0, 0); |
}else{ |
this.dd.resetConstraints(); |
this.dd.setXConstraint(0, 0); |
this.dd.setYConstraint( |
this.placement == Ext.SplitBar.TOP ? c1 : c2, |
this.placement == Ext.SplitBar.TOP ? c2 : c1 |
); |
} |
this.dragSpecs.startSize = size; |
this.dragSpecs.startPoint = [x, y]; |
Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd, x, y); |
}, |
onEndProxyDrag : function(e){ |
Ext.get(this.proxy).setDisplayed(false); |
var endPoint = Ext.lib.Event.getXY(e); |
if(this.overlay){ |
this.overlay.remove(); |
delete this.overlay; |
} |
var newSize; |
if(this.orientation == Ext.SplitBar.HORIZONTAL){ |
newSize = this.dragSpecs.startSize + |
(this.placement == Ext.SplitBar.LEFT ? |
endPoint[0] - this.dragSpecs.startPoint[0] : |
this.dragSpecs.startPoint[0] - endPoint[0] |
); |
}else{ |
newSize = this.dragSpecs.startSize + |
(this.placement == Ext.SplitBar.TOP ? |
endPoint[1] - this.dragSpecs.startPoint[1] : |
this.dragSpecs.startPoint[1] - endPoint[1] |
); |
} |
newSize = Math.min(Math.max(newSize, this.activeMinSize), this.activeMaxSize); |
if(newSize != this.dragSpecs.startSize){ |
if(this.fireEvent('beforeapply', this, newSize) !== false){ |
this.adapter.setElementSize(this, newSize); |
this.fireEvent("moved", this, newSize); |
this.fireEvent("resize", this, newSize); |
} |
} |
}, |
getAdapter : function(){ |
return this.adapter; |
}, |
setAdapter : function(adapter){ |
this.adapter = adapter; |
this.adapter.init(this); |
}, |
getMinimumSize : function(){ |
return this.minSize; |
}, |
setMinimumSize : function(minSize){ |
this.minSize = minSize; |
}, |
getMaximumSize : function(){ |
return this.maxSize; |
}, |
setMaximumSize : function(maxSize){ |
this.maxSize = maxSize; |
}, |
setCurrentSize : function(size){ |
var oldAnimate = this.animate; |
this.animate = false; |
this.adapter.setElementSize(this, size); |
this.animate = oldAnimate; |
}, |
destroy : function(removeEl){ |
if(this.shim){ |
this.shim.remove(); |
} |
this.dd.unreg(); |
Ext.removeNode(this.proxy); |
if(removeEl){ |
this.el.remove(); |
} |
} |
}); |
Ext.SplitBar.createProxy = function(dir){ |
var proxy = new Ext.Element(document.createElement("div")); |
proxy.unselectable(); |
var cls = 'x-splitbar-proxy'; |
proxy.addClass(cls + ' ' + (dir == Ext.SplitBar.HORIZONTAL ? cls +'-h' : cls + '-v')); |
document.body.appendChild(proxy.dom); |
return proxy.dom; |
}; |
Ext.SplitBar.BasicLayoutAdapter = function(){ |
}; |
Ext.SplitBar.BasicLayoutAdapter.prototype = { |
init : function(s){ |
}, |
getElementSize : function(s){ |
if(s.orientation == Ext.SplitBar.HORIZONTAL){ |
return s.resizingEl.getWidth(); |
}else{ |
return s.resizingEl.getHeight(); |
} |
}, |
setElementSize : function(s, newSize, onComplete){ |
if(s.orientation == Ext.SplitBar.HORIZONTAL){ |
if(!s.animate){ |
s.resizingEl.setWidth(newSize); |
if(onComplete){ |
onComplete(s, newSize); |
} |
}else{ |
s.resizingEl.setWidth(newSize, true, .1, onComplete, 'easeOut'); |
} |
}else{ |
if(!s.animate){ |
s.resizingEl.setHeight(newSize); |
if(onComplete){ |
onComplete(s, newSize); |
} |
}else{ |
s.resizingEl.setHeight(newSize, true, .1, onComplete, 'easeOut'); |
} |
} |
} |
}; |
Ext.SplitBar.AbsoluteLayoutAdapter = function(container){ |
this.basic = new Ext.SplitBar.BasicLayoutAdapter(); |
this.container = Ext.get(container); |
}; |
Ext.SplitBar.AbsoluteLayoutAdapter.prototype = { |
init : function(s){ |
this.basic.init(s); |
}, |
getElementSize : function(s){ |
return this.basic.getElementSize(s); |
}, |
setElementSize : function(s, newSize, onComplete){ |
this.basic.setElementSize(s, newSize, this.moveSplitter.createDelegate(this, [s])); |
}, |
moveSplitter : function(s){ |
var yes = Ext.SplitBar; |
switch(s.placement){ |
case yes.LEFT: |
s.el.setX(s.resizingEl.getRight()); |
break; |
case yes.RIGHT: |
s.el.setStyle("right", (this.container.getWidth() - s.resizingEl.getLeft()) + "px"); |
break; |
case yes.TOP: |
s.el.setY(s.resizingEl.getBottom()); |
break; |
case yes.BOTTOM: |
s.el.setY(s.resizingEl.getTop() - s.el.getHeight()); |
break; |
} |
} |
}; |
Ext.SplitBar.VERTICAL = 1; |
Ext.SplitBar.HORIZONTAL = 2; |
Ext.SplitBar.LEFT = 1; |
Ext.SplitBar.RIGHT = 2; |
Ext.SplitBar.TOP = 3; |
Ext.SplitBar.BOTTOM = 4; |
Ext.Container = Ext.extend(Ext.BoxComponent, { |
autoDestroy: true, |
defaultType: 'panel', |
initComponent : function(){ |
Ext.Container.superclass.initComponent.call(this); |
this.addEvents( |
'afterlayout', |
'beforeadd', |
'beforeremove', |
'add', |
'remove' |
); |
var items = this.items; |
if(items){ |
delete this.items; |
if(Ext.isArray(items)){ |
this.add.apply(this, items); |
}else{ |
this.add(items); |
} |
} |
}, |
initItems : function(){ |
if(!this.items){ |
this.items = new Ext.util.MixedCollection(false, this.getComponentId); |
this.getLayout(); } |
}, |
setLayout : function(layout){ |
if(this.layout && this.layout != layout){ |
this.layout.setContainer(null); |
} |
this.initItems(); |
this.layout = layout; |
layout.setContainer(this); |
}, |
render : function(){ |
Ext.Container.superclass.render.apply(this, arguments); |
if(this.layout){ |
if(typeof this.layout == 'string'){ |
this.layout = new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig); |
} |
this.setLayout(this.layout); |
if(this.activeItem !== undefined){ |
var item = this.activeItem; |
delete this.activeItem; |
this.layout.setActiveItem(item); |
return; |
} |
} |
if(!this.ownerCt){ |
this.doLayout(); |
} |
if(this.monitorResize === true){ |
Ext.EventManager.onWindowResize(this.doLayout, this, [false]); |
} |
}, |
getLayoutTarget : function(){ |
return this.el; |
}, |
getComponentId : function(comp){ |
return comp.itemId || comp.id; |
}, |
add : function(comp){ |
if(!this.items){ |
this.initItems(); |
} |
var a = arguments, len = a.length; |
if(len > 1){ |
for(var i = 0; i < len; i++) { |
this.add(a[i]); |
} |
return; |
} |
var c = this.lookupComponent(this.applyDefaults(comp)); |
var pos = this.items.length; |
if(this.fireEvent('beforeadd', this, c, pos) !== false && this.onBeforeAdd(c) !== false){ |
this.items.add(c); |
c.ownerCt = this; |
this.fireEvent('add', this, c, pos); |
} |
return c; |
}, |
insert : function(index, comp){ |
if(!this.items){ |
this.initItems(); |
} |
var a = arguments, len = a.length; |
if(len > 2){ |
for(var i = len-1; i >= 1; --i) { |
this.insert(index, a[i]); |
} |
return; |
} |
var c = this.lookupComponent(this.applyDefaults(comp)); |
if(c.ownerCt == this && this.items.indexOf(c) < index){ |
--index; |
} |
if(this.fireEvent('beforeadd', this, c, index) !== false && this.onBeforeAdd(c) !== false){ |
this.items.insert(index, c); |
c.ownerCt = this; |
this.fireEvent('add', this, c, index); |
} |
return c; |
}, |
applyDefaults : function(c){ |
if(this.defaults){ |
if(typeof c == 'string'){ |
c = Ext.ComponentMgr.get(c); |
Ext.apply(c, this.defaults); |
}else if(!c.events){ |
Ext.applyIf(c, this.defaults); |
}else{ |
Ext.apply(c, this.defaults); |
} |
} |
return c; |
}, |
onBeforeAdd : function(item){ |
if(item.ownerCt){ |
item.ownerCt.remove(item, false); |
} |
if(this.hideBorders === true){ |
item.border = (item.border === true); |
} |
}, |
remove : function(comp, autoDestroy){ |
var c = this.getComponent(comp); |
if(c && this.fireEvent('beforeremove', this, c) !== false){ |
this.items.remove(c); |
delete c.ownerCt; |
if(autoDestroy === true || (autoDestroy !== false && this.autoDestroy)){ |
c.destroy(); |
} |
if(this.layout && this.layout.activeItem == c){ |
delete this.layout.activeItem; |
} |
this.fireEvent('remove', this, c); |
} |
return c; |
}, |
getComponent : function(comp){ |
if(typeof comp == 'object'){ |
return comp; |
} |
return this.items.get(comp); |
}, |
lookupComponent : function(comp){ |
if(typeof comp == 'string'){ |
return Ext.ComponentMgr.get(comp); |
}else if(!comp.events){ |
return this.createComponent(comp); |
} |
return comp; |
}, |
createComponent : function(config){ |
return Ext.ComponentMgr.create(config, this.defaultType); |
}, |
doLayout : function(shallow){ |
if(this.rendered && this.layout){ |
this.layout.layout(); |
} |
if(shallow !== false && this.items){ |
var cs = this.items.items; |
for(var i = 0, len = cs.length; i < len; i++) { |
var c = cs[i]; |
if(c.doLayout){ |
c.doLayout(); |
} |
} |
} |
}, |
getLayout : function(){ |
if(!this.layout){ |
var layout = new Ext.layout.ContainerLayout(this.layoutConfig); |
this.setLayout(layout); |
} |
return this.layout; |
}, |
onDestroy : function(){ |
if(this.items){ |
var cs = this.items.items; |
for(var i = 0, len = cs.length; i < len; i++) { |
Ext.destroy(cs[i]); |
} |
} |
if(this.monitorResize){ |
Ext.EventManager.removeResizeListener(this.doLayout, this); |
} |
Ext.Container.superclass.onDestroy.call(this); |
}, |
bubble : function(fn, scope, args){ |
var p = this; |
while(p){ |
if(fn.apply(scope || p, args || [p]) === false){ |
break; |
} |
p = p.ownerCt; |
} |
}, |
cascade : function(fn, scope, args){ |
if(fn.apply(scope || this, args || [this]) !== false){ |
if(this.items){ |
var cs = this.items.items; |
for(var i = 0, len = cs.length; i < len; i++){ |
if(cs[i].cascade){ |
cs[i].cascade(fn, scope, args); |
}else{ |
fn.apply(scope || this, args || [cs[i]]); |
} |
} |
} |
} |
}, |
findById : function(id){ |
var m, ct = this; |
this.cascade(function(c){ |
if(ct != c && c.id === id){ |
m = c; |
return false; |
} |
}); |
return m || null; |
}, |
findByType : function(xtype){ |
return typeof xtype == 'function' ? |
this.findBy(function(c){ |
return c.constructor === xtype; |
}) : |
this.findBy(function(c){ |
return c.constructor.xtype === xtype; |
}); |
}, |
find : function(prop, value){ |
return this.findBy(function(c){ |
return c[prop] === value; |
}); |
}, |
findBy : function(fn, scope){ |
var m = [], ct = this; |
this.cascade(function(c){ |
if(ct != c && fn.call(scope || c, c, ct) === true){ |
m.push(c); |
} |
}); |
return m; |
} |
}); |
Ext.Container.LAYOUTS = {}; |
Ext.reg('container', Ext.Container); |
Ext.layout.ContainerLayout = function(config){ |
Ext.apply(this, config); |
}; |
Ext.layout.ContainerLayout.prototype = { |
monitorResize:false, |
activeItem : null, |
layout : function(){ |
var target = this.container.getLayoutTarget(); |
this.onLayout(this.container, target); |
this.container.fireEvent('afterlayout', this.container, this); |
}, |
onLayout : function(ct, target){ |
this.renderAll(ct, target); |
}, |
isValidParent : function(c, target){ |
var el = c.getPositionEl ? c.getPositionEl() : c.getEl(); |
return el.dom.parentNode == target.dom; |
}, |
renderAll : function(ct, target){ |
var items = ct.items.items; |
for(var i = 0, len = items.length; i < len; i++) { |
var c = items[i]; |
if(c && (!c.rendered || !this.isValidParent(c, target))){ |
this.renderItem(c, i, target); |
} |
} |
}, |
renderItem : function(c, position, target){ |
if(c && !c.rendered){ |
c.render(target, position); |
if(this.extraCls){ |
var t = c.getPositionEl ? c.getPositionEl() : c; |
t.addClass(this.extraCls); |
} |
if (this.renderHidden && c != this.activeItem) { |
c.hide(); |
} |
}else if(c && !this.isValidParent(c, target)){ |
if(this.extraCls){ |
c.addClass(this.extraCls); |
} |
if(typeof position == 'number'){ |
position = target.dom.childNodes[position]; |
} |
target.dom.insertBefore(c.getEl().dom, position || null); |
if (this.renderHidden && c != this.activeItem) { |
c.hide(); |
} |
} |
}, |
onResize: function(){ |
if(this.container.collapsed){ |
return; |
} |
var b = this.container.bufferResize; |
if(b){ |
if(!this.resizeTask){ |
this.resizeTask = new Ext.util.DelayedTask(this.layout, this); |
this.resizeBuffer = typeof b == 'number' ? b : 100; |
} |
this.resizeTask.delay(this.resizeBuffer); |
}else{ |
this.layout(); |
} |
}, |
setContainer : function(ct){ |
if(this.monitorResize && ct != this.container){ |
if(this.container){ |
this.container.un('resize', this.onResize, this); |
} |
if(ct){ |
ct.on('resize', this.onResize, this); |
} |
} |
this.container = ct; |
}, |
parseMargins : function(v){ |
var ms = v.split(' '); |
var len = ms.length; |
if(len == 1){ |
ms[1] = ms[0]; |
ms[2] = ms[0]; |
ms[3] = ms[0]; |
} |
if(len == 2){ |
ms[2] = ms[0]; |
ms[3] = ms[1]; |
} |
return { |
top:parseInt(ms[0], 10) || 0, |
right:parseInt(ms[1], 10) || 0, |
bottom:parseInt(ms[2], 10) || 0, |
left:parseInt(ms[3], 10) || 0 |
}; |
} |
}; |
Ext.Container.LAYOUTS['auto'] = Ext.layout.ContainerLayout; |
Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, { |
monitorResize:true, |
onLayout : function(ct, target){ |
Ext.layout.FitLayout.superclass.onLayout.call(this, ct, target); |
if(!this.container.collapsed){ |
this.setItemSize(this.activeItem || ct.items.itemAt(0), target.getStyleSize()); |
} |
}, |
setItemSize : function(item, size){ |
if(item && size.height > 0){ |
item.setSize(size); |
} |
} |
}); |
Ext.Container.LAYOUTS['fit'] = Ext.layout.FitLayout; |
Ext.layout.CardLayout = Ext.extend(Ext.layout.FitLayout, { |
deferredRender : false, |
renderHidden : true, |
setActiveItem : function(item){ |
item = this.container.getComponent(item); |
if(this.activeItem != item){ |
if(this.activeItem){ |
this.activeItem.hide(); |
} |
this.activeItem = item; |
item.show(); |
this.layout(); |
} |
}, |
renderAll : function(ct, target){ |
if(this.deferredRender){ |
this.renderItem(this.activeItem, undefined, target); |
}else{ |
Ext.layout.CardLayout.superclass.renderAll.call(this, ct, target); |
} |
} |
}); |
Ext.Container.LAYOUTS['card'] = Ext.layout.CardLayout; |
Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { |
monitorResize:true, |
getAnchorViewSize : function(ct, target){ |
return target.dom == document.body ? |
target.getViewSize() : target.getStyleSize(); |
}, |
onLayout : function(ct, target){ |
Ext.layout.AnchorLayout.superclass.onLayout.call(this, ct, target); |
var size = this.getAnchorViewSize(ct, target); |
var w = size.width, h = size.height; |
if(w < 20 || h < 20){ |
return; |
} |
var aw, ah; |
if(ct.anchorSize){ |
if(typeof ct.anchorSize == 'number'){ |
aw = ct.anchorSize; |
}else{ |
aw = ct.anchorSize.width; |
ah = ct.anchorSize.height; |
} |
}else{ |
aw = ct.initialConfig.width; |
ah = ct.initialConfig.height; |
} |
var cs = ct.items.items, len = cs.length, i, c, a, cw, ch; |
for(i = 0; i < len; i++){ |
c = cs[i]; |
if(c.anchor){ |
a = c.anchorSpec; |
if(!a){ |
var vs = c.anchor.split(' '); |
c.anchorSpec = a = { |
right: this.parseAnchor(vs[0], c.initialConfig.width, aw), |
bottom: this.parseAnchor(vs[1], c.initialConfig.height, ah) |
}; |
} |
cw = a.right ? this.adjustWidthAnchor(a.right(w), c) : undefined; |
ch = a.bottom ? this.adjustHeightAnchor(a.bottom(h), c) : undefined; |
if(cw || ch){ |
c.setSize(cw || undefined, ch || undefined); |
} |
} |
} |
}, |
parseAnchor : function(a, start, cstart){ |
if(a && a != 'none'){ |
var last; |
if(/^(r|right|b|bottom)$/i.test(a)){ |
var diff = cstart - start; |
return function(v){ |
if(v !== last){ |
last = v; |
return v - diff; |
} |
} |
}else if(a.indexOf('%') != -1){ |
var ratio = parseFloat(a.replace('%', ''))*.01; |
return function(v){ |
if(v !== last){ |
last = v; |
return Math.floor(v*ratio); |
} |
} |
}else{ |
a = parseInt(a, 10); |
if(!isNaN(a)){ |
return function(v){ |
if(v !== last){ |
last = v; |
return v + a; |
} |
} |
} |
} |
} |
return false; |
}, |
adjustWidthAnchor : function(value, comp){ |
return value; |
}, |
adjustHeightAnchor : function(value, comp){ |
return value; |
} |
}); |
Ext.Container.LAYOUTS['anchor'] = Ext.layout.AnchorLayout; |
Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { |
monitorResize:true, |
extraCls: 'x-column', |
scrollOffset : 0, |
isValidParent : function(c, target){ |
return c.getEl().dom.parentNode == this.innerCt.dom; |
}, |
onLayout : function(ct, target){ |
var cs = ct.items.items, len = cs.length, c, i; |
if(!this.innerCt){ |
target.addClass('x-column-layout-ct'); |
this.innerCt = target.createChild({cls:'x-column-inner'}); |
this.innerCt.createChild({cls:'x-clear'}); |
} |
this.renderAll(ct, this.innerCt); |
var size = target.getViewSize(); |
if(size.width < 1 && size.height < 1){ |
return; |
} |
var w = size.width - target.getPadding('lr') - this.scrollOffset, |
h = size.height - target.getPadding('tb'), |
pw = w; |
this.innerCt.setWidth(w); |
for(i = 0; i < len; i++){ |
c = cs[i]; |
if(!c.columnWidth){ |
pw -= (c.getSize().width + c.getEl().getMargins('lr')); |
} |
} |
pw = pw < 0 ? 0 : pw; |
for(i = 0; i < len; i++){ |
c = cs[i]; |
if(c.columnWidth){ |
c.setSize(Math.floor(c.columnWidth*pw) - c.getEl().getMargins('lr')); |
} |
} |
} |
}); |
Ext.Container.LAYOUTS['column'] = Ext.layout.ColumnLayout; |
Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, { |
monitorResize:true, |
rendered : false, |
onLayout : function(ct, target){ |
var collapsed; |
if(!this.rendered){ |
target.position(); |
target.addClass('x-border-layout-ct'); |
var items = ct.items.items; |
collapsed = []; |
for(var i = 0, len = items.length; i < len; i++) { |
var c = items[i]; |
var pos = c.region; |
if(c.collapsed){ |
collapsed.push(c); |
} |
c.collapsed = false; |
if(!c.rendered){ |
c.cls = c.cls ? c.cls +' x-border-panel' : 'x-border-panel'; |
c.render(target, i); |
} |
this[pos] = pos != 'center' && c.split ? |
new Ext.layout.BorderLayout.SplitRegion(this, c.initialConfig, pos) : |
new Ext.layout.BorderLayout.Region(this, c.initialConfig, pos); |
this[pos].render(target, c); |
} |
this.rendered = true; |
} |
var size = target.getViewSize(); |
if(size.width < 20 || size.height < 20){ if(collapsed){ |
this.restoreCollapsed = collapsed; |
} |
return; |
}else if(this.restoreCollapsed){ |
collapsed = this.restoreCollapsed; |
delete this.restoreCollapsed; |
} |
var w = size.width, h = size.height; |
var centerW = w, centerH = h, centerY = 0, centerX = 0; |
var n = this.north, s = this.south, west = this.west, e = this.east, c = this.center; |
if(!c){ |
throw 'No center region defined in BorderLayout ' + ct.id; |
} |
if(n && n.isVisible()){ |
var b = n.getSize(); |
var m = n.getMargins(); |
b.width = w - (m.left+m.right); |
b.x = m.left; |
b.y = m.top; |
centerY = b.height + b.y + m.bottom; |
centerH -= centerY; |
n.applyLayout(b); |
} |
if(s && s.isVisible()){ |
var b = s.getSize(); |
var m = s.getMargins(); |
b.width = w - (m.left+m.right); |
b.x = m.left; |
var totalHeight = (b.height + m.top + m.bottom); |
b.y = h - totalHeight + m.top; |
centerH -= totalHeight; |
s.applyLayout(b); |
} |
if(west && west.isVisible()){ |
var b = west.getSize(); |
var m = west.getMargins(); |
b.height = centerH - (m.top+m.bottom); |
b.x = m.left; |
b.y = centerY + m.top; |
var totalWidth = (b.width + m.left + m.right); |
centerX += totalWidth; |
centerW -= totalWidth; |
west.applyLayout(b); |
} |
if(e && e.isVisible()){ |
var b = e.getSize(); |
var m = e.getMargins(); |
b.height = centerH - (m.top+m.bottom); |
var totalWidth = (b.width + m.left + m.right); |
b.x = w - totalWidth + m.left; |
b.y = centerY + m.top; |
centerW -= totalWidth; |
e.applyLayout(b); |
} |
var m = c.getMargins(); |
var centerBox = { |
x: centerX + m.left, |
y: centerY + m.top, |
width: centerW - (m.left+m.right), |
height: centerH - (m.top+m.bottom) |
}; |
c.applyLayout(centerBox); |
if(collapsed){ |
for(var i = 0, len = collapsed.length; i < len; i++){ |
collapsed[i].collapse(false); |
} |
} |
if(Ext.isIE && Ext.isStrict){ target.repaint(); |
} |
} |
}); |
Ext.layout.BorderLayout.Region = function(layout, config, pos){ |
Ext.apply(this, config); |
this.layout = layout; |
this.position = pos; |
this.state = {}; |
if(typeof this.margins == 'string'){ |
this.margins = this.layout.parseMargins(this.margins); |
} |
this.margins = Ext.applyIf(this.margins || {}, this.defaultMargins); |
if(this.collapsible){ |
if(typeof this.cmargins == 'string'){ |
this.cmargins = this.layout.parseMargins(this.cmargins); |
} |
if(this.collapseMode == 'mini' && !this.cmargins){ |
this.cmargins = {left:0,top:0,right:0,bottom:0}; |
}else{ |
this.cmargins = Ext.applyIf(this.cmargins || {}, |
pos == 'north' || pos == 'south' ? this.defaultNSCMargins : this.defaultEWCMargins); |
} |
} |
}; |
Ext.layout.BorderLayout.Region.prototype = { |
collapsible : false, |
split:false, |
floatable: true, |
minWidth:50, |
minHeight:50, |
defaultMargins : {left:0,top:0,right:0,bottom:0}, |
defaultNSCMargins : {left:5,top:5,right:5,bottom:5}, |
defaultEWCMargins : {left:5,top:0,right:5,bottom:0}, |
isCollapsed : false, |
render : function(ct, p){ |
this.panel = p; |
p.el.enableDisplayMode(); |
this.targetEl = ct; |
this.el = p.el; |
var gs = p.getState, ps = this.position; |
p.getState = function(){ |
return Ext.apply(gs.call(p) || {}, this.state); |
}.createDelegate(this); |
if(ps != 'center'){ |
p.allowQueuedExpand = false; |
p.on({ |
beforecollapse: this.beforeCollapse, |
collapse: this.onCollapse, |
beforeexpand: this.beforeExpand, |
expand: this.onExpand, |
hide: this.onHide, |
show: this.onShow, |
scope: this |
}); |
if(this.collapsible){ |
p.collapseEl = 'el'; |
p.slideAnchor = this.getSlideAnchor(); |
} |
if(p.tools && p.tools.toggle){ |
p.tools.toggle.addClass('x-tool-collapse-'+ps); |
p.tools.toggle.addClassOnOver('x-tool-collapse-'+ps+'-over'); |
} |
} |
}, |
getCollapsedEl : function(){ |
if(!this.collapsedEl){ |
if(!this.toolTemplate){ |
var tt = new Ext.Template( |
'<div class="x-tool x-tool-{id}"> </div>' |
); |
tt.disableFormats = true; |
tt.compile(); |
Ext.layout.BorderLayout.Region.prototype.toolTemplate = tt; |
} |
this.collapsedEl = this.targetEl.createChild({ |
cls: "x-layout-collapsed x-layout-collapsed-"+this.position, |
id: this.panel.id + '-xcollapsed' |
}); |
this.collapsedEl.enableDisplayMode('block'); |
if(this.collapseMode == 'mini'){ |
this.collapsedEl.addClass('x-layout-cmini-'+this.position); |
this.miniCollapsedEl = this.collapsedEl.createChild({ |
cls: "x-layout-mini x-layout-mini-"+this.position, html: " " |
}); |
this.miniCollapsedEl.addClassOnOver('x-layout-mini-over'); |
this.collapsedEl.addClassOnOver("x-layout-collapsed-over"); |
this.collapsedEl.on('click', this.onExpandClick, this, {stopEvent:true}); |
}else { |
var t = this.toolTemplate.append( |
this.collapsedEl.dom, |
{id:'expand-'+this.position}, true); |
t.addClassOnOver('x-tool-expand-'+this.position+'-over'); |
t.on('click', this.onExpandClick, this, {stopEvent:true}); |
if(this.floatable !== false){ |
this.collapsedEl.addClassOnOver("x-layout-collapsed-over"); |
this.collapsedEl.on("click", this.collapseClick, this); |
} |
} |
} |
return this.collapsedEl; |
}, |
onExpandClick : function(e){ |
if(this.isSlid){ |
this.afterSlideIn(); |
this.panel.expand(false); |
}else{ |
this.panel.expand(); |
} |
}, |
onCollapseClick : function(e){ |
this.panel.collapse(); |
}, |
beforeCollapse : function(p, animate){ |
this.lastAnim = animate; |
if(this.splitEl){ |
this.splitEl.hide(); |
} |
this.getCollapsedEl().show(); |
this.panel.el.setStyle('z-index', 100); |
this.isCollapsed = true; |
this.layout.layout(); |
}, |
onCollapse : function(animate){ |
this.panel.el.setStyle('z-index', 1); |
if(this.lastAnim === false || this.panel.animCollapse === false){ |
this.getCollapsedEl().dom.style.visibility = 'visible'; |
}else{ |
this.getCollapsedEl().slideIn(this.panel.slideAnchor, {duration:.2}); |
} |
this.state.collapsed = true; |
this.panel.saveState(); |
}, |
beforeExpand : function(animate){ |
var c = this.getCollapsedEl(); |
this.el.show(); |
if(this.position == 'east' || this.position == 'west'){ |
this.panel.setSize(undefined, c.getHeight()); |
}else{ |
this.panel.setSize(c.getWidth(), undefined); |
} |
c.hide(); |
c.dom.style.visibility = 'hidden'; |
this.panel.el.setStyle('z-index', 100); |
}, |
onExpand : function(){ |
this.isCollapsed = false; |
if(this.splitEl){ |
this.splitEl.show(); |
} |
this.layout.layout(); |
this.panel.el.setStyle('z-index', 1); |
this.state.collapsed = false; |
this.panel.saveState(); |
}, |
collapseClick : function(e){ |
if(this.isSlid){ |
e.stopPropagation(); |
this.slideIn(); |
}else{ |
e.stopPropagation(); |
this.slideOut(); |
} |
}, |
onHide : function(){ |
if(this.isCollapsed){ |
this.getCollapsedEl().hide(); |
}else if(this.splitEl){ |
this.splitEl.hide(); |
} |
}, |
onShow : function(){ |
if(this.isCollapsed){ |
this.getCollapsedEl().show(); |
}else if(this.splitEl){ |
this.splitEl.show(); |
} |
}, |
isVisible : function(){ |
return !this.panel.hidden; |
}, |
getMargins : function(){ |
return this.isCollapsed && this.cmargins ? this.cmargins : this.margins; |
}, |
getSize : function(){ |
return this.isCollapsed ? this.getCollapsedEl().getSize() : this.panel.getSize(); |
}, |
setPanel : function(panel){ |
this.panel = panel; |
}, |
getMinWidth: function(){ |
return this.minWidth; |
}, |
getMinHeight: function(){ |
return this.minHeight; |
}, |
applyLayoutCollapsed : function(box){ |
var ce = this.getCollapsedEl(); |
ce.setLeftTop(box.x, box.y); |
ce.setSize(box.width, box.height); |
}, |
applyLayout : function(box){ |
if(this.isCollapsed){ |
this.applyLayoutCollapsed(box); |
}else{ |
this.panel.setPosition(box.x, box.y); |
this.panel.setSize(box.width, box.height); |
} |
}, |
beforeSlide: function(){ |
this.panel.beforeEffect(); |
}, |
afterSlide : function(){ |
this.panel.afterEffect(); |
}, |
initAutoHide : function(){ |
if(this.autoHide !== false){ |
if(!this.autoHideHd){ |
var st = new Ext.util.DelayedTask(this.slideIn, this); |
this.autoHideHd = { |
"mouseout": function(e){ |
if(!e.within(this.el, true)){ |
st.delay(500); |
} |
}, |
"mouseover" : function(e){ |
st.cancel(); |
}, |
scope : this |
}; |
} |
this.el.on(this.autoHideHd); |
} |
}, |
clearAutoHide : function(){ |
if(this.autoHide !== false){ |
this.el.un("mouseout", this.autoHideHd.mouseout); |
this.el.un("mouseover", this.autoHideHd.mouseover); |
} |
}, |
clearMonitor : function(){ |
Ext.getDoc().un("click", this.slideInIf, this); |
}, |
slideOut : function(){ |
if(this.isSlid || this.el.hasActiveFx()){ |
return; |
} |
this.isSlid = true; |
var ts = this.panel.tools; |
if(ts && ts.toggle){ |
ts.toggle.hide(); |
} |
this.el.show(); |
if(this.position == 'east' || this.position == 'west'){ |
this.panel.setSize(undefined, this.collapsedEl.getHeight()); |
}else{ |
this.panel.setSize(this.collapsedEl.getWidth(), undefined); |
} |
this.restoreLT = [this.el.dom.style.left, this.el.dom.style.top]; |
this.el.alignTo(this.collapsedEl, this.getCollapseAnchor()); |
this.el.setStyle("z-index", 102); |
if(this.animFloat !== false){ |
this.beforeSlide(); |
this.el.slideIn(this.getSlideAnchor(), { |
callback: function(){ |
this.afterSlide(); |
this.initAutoHide(); |
Ext.getDoc().on("click", this.slideInIf, this); |
}, |
scope: this, |
block: true |
}); |
}else{ |
this.initAutoHide(); |
Ext.getDoc().on("click", this.slideInIf, this); |
} |
}, |
afterSlideIn : function(){ |
this.clearAutoHide(); |
this.isSlid = false; |
this.clearMonitor(); |
this.el.setStyle("z-index", ""); |
this.el.dom.style.left = this.restoreLT[0]; |
this.el.dom.style.top = this.restoreLT[1]; |
var ts = this.panel.tools; |
if(ts && ts.toggle){ |
ts.toggle.show(); |
} |
}, |
slideIn : function(cb){ |
if(!this.isSlid || this.el.hasActiveFx()){ |
Ext.callback(cb); |
return; |
} |
this.isSlid = false; |
if(this.animFloat !== false){ |
this.beforeSlide(); |
this.el.slideOut(this.getSlideAnchor(), { |
callback: function(){ |
this.el.hide(); |
this.afterSlide(); |
this.afterSlideIn(); |
Ext.callback(cb); |
}, |
scope: this, |
block: true |
}); |
}else{ |
this.el.hide(); |
this.afterSlideIn(); |
} |
}, |
slideInIf : function(e){ |
if(!e.within(this.el)){ |
this.slideIn(); |
} |
}, |
anchors : { |
"west" : "left", |
"east" : "right", |
"north" : "top", |
"south" : "bottom" |
}, |
sanchors : { |
"west" : "l", |
"east" : "r", |
"north" : "t", |
"south" : "b" |
}, |
canchors : { |
"west" : "tl-tr", |
"east" : "tr-tl", |
"north" : "tl-bl", |
"south" : "bl-tl" |
}, |
getAnchor : function(){ |
return this.anchors[this.position]; |
}, |
getCollapseAnchor : function(){ |
return this.canchors[this.position]; |
}, |
getSlideAnchor : function(){ |
return this.sanchors[this.position]; |
}, |
getAlignAdj : function(){ |
var cm = this.cmargins; |
switch(this.position){ |
case "west": |
return [0, 0]; |
break; |
case "east": |
return [0, 0]; |
break; |
case "north": |
return [0, 0]; |
break; |
case "south": |
return [0, 0]; |
break; |
} |
}, |
getExpandAdj : function(){ |
var c = this.collapsedEl, cm = this.cmargins; |
switch(this.position){ |
case "west": |
return [-(cm.right+c.getWidth()+cm.left), 0]; |
break; |
case "east": |
return [cm.right+c.getWidth()+cm.left, 0]; |
break; |
case "north": |
return [0, -(cm.top+cm.bottom+c.getHeight())]; |
break; |
case "south": |
return [0, cm.top+cm.bottom+c.getHeight()]; |
break; |
} |
} |
}; |
Ext.layout.BorderLayout.SplitRegion = function(layout, config, pos){ |
Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this, layout, config, pos); |
this.applyLayout = this.applyFns[pos]; |
}; |
Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, { |
splitTip : "Drag to resize.", |
collapsibleSplitTip : "Drag to resize. Double click to hide.", |
useSplitTips : false, |
splitSettings : { |
north : { |
orientation: Ext.SplitBar.VERTICAL, |
placement: Ext.SplitBar.TOP, |
maxFn : 'getVMaxSize', |
minProp: 'minHeight', |
maxProp: 'maxHeight' |
}, |
south : { |
orientation: Ext.SplitBar.VERTICAL, |
placement: Ext.SplitBar.BOTTOM, |
maxFn : 'getVMaxSize', |
minProp: 'minHeight', |
maxProp: 'maxHeight' |
}, |
east : { |
orientation: Ext.SplitBar.HORIZONTAL, |
placement: Ext.SplitBar.RIGHT, |
maxFn : 'getHMaxSize', |
minProp: 'minWidth', |
maxProp: 'maxWidth' |
}, |
west : { |
orientation: Ext.SplitBar.HORIZONTAL, |
placement: Ext.SplitBar.LEFT, |
maxFn : 'getHMaxSize', |
minProp: 'minWidth', |
maxProp: 'maxWidth' |
} |
}, |
applyFns : { |
west : function(box){ |
if(this.isCollapsed){ |
return this.applyLayoutCollapsed(box); |
} |
var sd = this.splitEl.dom, s = sd.style; |
this.panel.setPosition(box.x, box.y); |
var sw = sd.offsetWidth; |
s.left = (box.x+box.width-sw)+'px'; |
s.top = (box.y)+'px'; |
s.height = Math.max(0, box.height)+'px'; |
this.panel.setSize(box.width-sw, box.height); |
}, |
east : function(box){ |
if(this.isCollapsed){ |
return this.applyLayoutCollapsed(box); |
} |
var sd = this.splitEl.dom, s = sd.style; |
var sw = sd.offsetWidth; |
this.panel.setPosition(box.x+sw, box.y); |
s.left = (box.x)+'px'; |
s.top = (box.y)+'px'; |
s.height = Math.max(0, box.height)+'px'; |
this.panel.setSize(box.width-sw, box.height); |
}, |
north : function(box){ |
if(this.isCollapsed){ |
return this.applyLayoutCollapsed(box); |
} |
var sd = this.splitEl.dom, s = sd.style; |
var sh = sd.offsetHeight; |
this.panel.setPosition(box.x, box.y); |
s.left = (box.x)+'px'; |
s.top = (box.y+box.height-sh)+'px'; |
s.width = Math.max(0, box.width)+'px'; |
this.panel.setSize(box.width, box.height-sh); |
}, |
south : function(box){ |
if(this.isCollapsed){ |
return this.applyLayoutCollapsed(box); |
} |
var sd = this.splitEl.dom, s = sd.style; |
var sh = sd.offsetHeight; |
this.panel.setPosition(box.x, box.y+sh); |
s.left = (box.x)+'px'; |
s.top = (box.y)+'px'; |
s.width = Math.max(0, box.width)+'px'; |
this.panel.setSize(box.width, box.height-sh); |
} |
}, |
render : function(ct, p){ |
Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this, ct, p); |
var ps = this.position; |
this.splitEl = ct.createChild({ |
cls: "x-layout-split x-layout-split-"+ps, html: " ", |
id: this.panel.id + '-xsplit' |
}); |
if(this.collapseMode == 'mini'){ |
this.miniSplitEl = this.splitEl.createChild({ |
cls: "x-layout-mini x-layout-mini-"+ps, html: " " |
}); |
this.miniSplitEl.addClassOnOver('x-layout-mini-over'); |
this.miniSplitEl.on('click', this.onCollapseClick, this, {stopEvent:true}); |
} |
var s = this.splitSettings[ps]; |
this.split = new Ext.SplitBar(this.splitEl.dom, p.el, s.orientation); |
this.split.placement = s.placement; |
this.split.getMaximumSize = this[s.maxFn].createDelegate(this); |
this.split.minSize = this.minSize || this[s.minProp]; |
this.split.on("beforeapply", this.onSplitMove, this); |
this.split.useShim = this.useShim === true; |
this.maxSize = this.maxSize || this[s.maxProp]; |
if(p.hidden){ |
this.splitEl.hide(); |
} |
if(this.useSplitTips){ |
this.splitEl.dom.title = this.collapsible ? this.collapsibleSplitTip : this.splitTip; |
} |
if(this.collapsible){ |
this.splitEl.on("dblclick", this.onCollapseClick, this); |
} |
}, |
getSize : function(){ |
if(this.isCollapsed){ |
return this.collapsedEl.getSize(); |
} |
var s = this.panel.getSize(); |
if(this.position == 'north' || this.position == 'south'){ |
s.height += this.splitEl.dom.offsetHeight; |
}else{ |
s.width += this.splitEl.dom.offsetWidth; |
} |
return s; |
}, |
getHMaxSize : function(){ |
var cmax = this.maxSize || 10000; |
var center = this.layout.center; |
return Math.min(cmax, (this.el.getWidth()+center.el.getWidth())-center.getMinWidth()); |
}, |
getVMaxSize : function(){ |
var cmax = this.maxSize || 10000; |
var center = this.layout.center; |
return Math.min(cmax, (this.el.getHeight()+center.el.getHeight())-center.getMinHeight()); |
}, |
onSplitMove : function(split, newSize){ |
var s = this.panel.getSize(); |
this.lastSplitSize = newSize; |
if(this.position == 'north' || this.position == 'south'){ |
this.panel.setSize(s.width, newSize); |
this.state.height = newSize; |
}else{ |
this.panel.setSize(newSize, s.height); |
this.state.width = newSize; |
} |
this.layout.layout(); |
this.panel.saveState(); |
return false; |
}, |
getSplitBar : function(){ |
return this.split; |
} |
}); |
Ext.Container.LAYOUTS['border'] = Ext.layout.BorderLayout; |
Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { |
labelSeparator : ':', |
getAnchorViewSize : function(ct, target){ |
return ct.body.getStyleSize(); |
}, |
setContainer : function(ct){ |
Ext.layout.FormLayout.superclass.setContainer.call(this, ct); |
if(ct.labelAlign){ |
ct.addClass('x-form-label-'+ct.labelAlign); |
} |
if(ct.hideLabels){ |
this.labelStyle = "display:none"; |
this.elementStyle = "padding-left:0;"; |
this.labelAdjust = 0; |
}else{ |
this.labelSeparator = ct.labelSeparator || this.labelSeparator; |
ct.labelWidth = ct.labelWidth || 100; |
if(typeof ct.labelWidth == 'number'){ |
var pad = (typeof ct.labelPad == 'number' ? ct.labelPad : 5); |
this.labelAdjust = ct.labelWidth+pad; |
this.labelStyle = "width:"+ct.labelWidth+"px;"; |
this.elementStyle = "padding-left:"+(ct.labelWidth+pad)+'px'; |
} |
if(ct.labelAlign == 'top'){ |
this.labelStyle = "width:auto;"; |
this.labelAdjust = 0; |
this.elementStyle = "padding-left:0;"; |
} |
} |
if(!this.fieldTpl){ |
var t = new Ext.Template( |
'<div class="x-form-item {5}" tabIndex="-1">', |
'<label for="{0}" style="{2}" class="x-form-item-label">{1}{4}</label>', |
'<div class="x-form-element" id="x-form-el-{0}" style="{3}">', |
'</div><div class="{6}"></div>', |
'</div>' |
); |
t.disableFormats = true; |
t.compile(); |
Ext.layout.FormLayout.prototype.fieldTpl = t; |
} |
}, |
renderItem : function(c, position, target){ |
if(c && !c.rendered && c.isFormField && c.inputType != 'hidden'){ |
var args = [ |
c.id, c.fieldLabel, |
c.labelStyle||this.labelStyle||'', |
this.elementStyle||'', |
typeof c.labelSeparator == 'undefined' ? this.labelSeparator : c.labelSeparator, |
(c.itemCls||this.container.itemCls||'') + (c.hideLabel ? ' x-hide-label' : ''), |
c.clearCls || 'x-form-clear-left' |
]; |
if(typeof position == 'number'){ |
position = target.dom.childNodes[position] || null; |
} |
if(position){ |
this.fieldTpl.insertBefore(position, args); |
}else{ |
this.fieldTpl.append(target, args); |
} |
c.render('x-form-el-'+c.id); |
}else { |
Ext.layout.FormLayout.superclass.renderItem.apply(this, arguments); |
} |
}, |
adjustWidthAnchor : function(value, comp){ |
return value - (comp.isFormField ? (comp.hideLabel ? 0 : this.labelAdjust) : 0); |
}, |
isValidParent : function(c, target){ |
return true; |
} |
}); |
Ext.Container.LAYOUTS['form'] = Ext.layout.FormLayout; |
Ext.layout.Accordion = Ext.extend(Ext.layout.FitLayout, { |
fill : true, |
autoWidth : true, |
titleCollapse : true, |
hideCollapseTool : false, |
collapseFirst : false, |
animate : false, |
sequence : false, |
activeOnTop : false, |
renderItem : function(c){ |
if(this.animate === false){ |
c.animCollapse = false; |
} |
c.collapsible = true; |
if(this.autoWidth){ |
c.autoWidth = true; |
} |
if(this.titleCollapse){ |
c.titleCollapse = true; |
} |
if(this.hideCollapseTool){ |
c.hideCollapseTool = true; |
} |
if(this.collapseFirst !== undefined){ |
c.collapseFirst = this.collapseFirst; |
} |
if(!this.activeItem && !c.collapsed){ |
this.activeItem = c; |
}else if(this.activeItem){ |
c.collapsed = true; |
} |
Ext.layout.Accordion.superclass.renderItem.apply(this, arguments); |
c.header.addClass('x-accordion-hd'); |
c.on('beforeexpand', this.beforeExpand, this); |
}, |
beforeExpand : function(p, anim){ |
var ai = this.activeItem; |
if(ai){ |
if(this.sequence){ |
delete this.activeItem; |
ai.collapse({callback:function(){ |
p.expand(anim || true); |
}, scope: this}); |
return false; |
}else{ |
ai.collapse(this.animate); |
} |
} |
this.activeItem = p; |
if(this.activeOnTop){ |
p.el.dom.parentNode.insertBefore(p.el.dom, p.el.dom.parentNode.firstChild); |
} |
this.layout(); |
}, |
setItemSize : function(item, size){ |
if(this.fill && item){ |
var items = this.container.items.items; |
var hh = 0; |
for(var i = 0, len = items.length; i < len; i++){ |
var p = items[i]; |
if(p != item){ |
hh += (p.getSize().height - p.bwrap.getHeight()); |
} |
} |
size.height -= hh; |
item.setSize(size); |
} |
} |
}); |
Ext.Container.LAYOUTS['accordion'] = Ext.layout.Accordion; |
Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, { |
monitorResize:false, |
setContainer : function(ct){ |
Ext.layout.TableLayout.superclass.setContainer.call(this, ct); |
this.currentRow = 0; |
this.currentColumn = 0; |
this.cells = []; |
}, |
onLayout : function(ct, target){ |
var cs = ct.items.items, len = cs.length, c, i; |
if(!this.table){ |
target.addClass('x-table-layout-ct'); |
this.table = target.createChild( |
{tag:'table', cls:'x-table-layout', cellspacing: 0, cn: {tag: 'tbody'}}, null, true); |
this.renderAll(ct, target); |
} |
}, |
getRow : function(index){ |
var row = this.table.tBodies[0].childNodes[index]; |
if(!row){ |
row = document.createElement('tr'); |
this.table.tBodies[0].appendChild(row); |
} |
return row; |
}, |
getNextCell : function(c){ |
var cell = this.getNextNonSpan(this.currentColumn, this.currentRow); |
var curCol = this.currentColumn = cell[0], curRow = this.currentRow = cell[1]; |
for(var rowIndex = curRow; rowIndex < curRow + (c.rowspan || 1); rowIndex++){ |
if(!this.cells[rowIndex]){ |
this.cells[rowIndex] = []; |
} |
for(var colIndex = curCol; colIndex < curCol + (c.colspan || 1); colIndex++){ |
this.cells[rowIndex][colIndex] = true; |
} |
} |
var td = document.createElement('td'); |
if(c.cellId){ |
td.id = c.cellId; |
} |
var cls = 'x-table-layout-cell'; |
if(c.cellCls){ |
cls += ' ' + c.cellCls; |
} |
td.className = cls; |
if(c.colspan){ |
td.colSpan = c.colspan; |
} |
if(c.rowspan){ |
td.rowSpan = c.rowspan; |
} |
this.getRow(curRow).appendChild(td); |
return td; |
}, |
getNextNonSpan: function(colIndex, rowIndex){ |
var cols = this.columns; |
while((cols && colIndex >= cols) || (this.cells[rowIndex] && this.cells[rowIndex][colIndex])) { |
if(cols && colIndex >= cols){ |
rowIndex++; |
colIndex = 0; |
}else{ |
colIndex++; |
} |
} |
return [colIndex, rowIndex]; |
}, |
renderItem : function(c, position, target){ |
if(c && !c.rendered){ |
c.render(this.getNextCell(c)); |
} |
}, |
isValidParent : function(c, target){ |
return true; |
} |
}); |
Ext.Container.LAYOUTS['table'] = Ext.layout.TableLayout; |
Ext.layout.AbsoluteLayout = Ext.extend(Ext.layout.AnchorLayout, { |
extraCls: 'x-abs-layout-item', |
isForm: false, |
setContainer : function(ct){ |
Ext.layout.AbsoluteLayout.superclass.setContainer.call(this, ct); |
if(ct.isXType('form')){ |
this.isForm = true; |
} |
}, |
onLayout : function(ct, target){ |
if(this.isForm){ ct.body.position(); } else { target.position(); } |
Ext.layout.AbsoluteLayout.superclass.onLayout.call(this, ct, target); |
}, |
getAnchorViewSize : function(ct, target){ |
return this.isForm ? ct.body.getStyleSize() : Ext.layout.AbsoluteLayout.superclass.getAnchorViewSize.call(this, ct, target); |
}, |
isValidParent : function(c, target){ |
return this.isForm ? true : Ext.layout.AbsoluteLayout.superclass.isValidParent.call(this, c, target); |
}, |
adjustWidthAnchor : function(value, comp){ |
return value ? value - comp.getPosition(true)[0] : value; |
}, |
adjustHeightAnchor : function(value, comp){ |
return value ? value - comp.getPosition(true)[1] : value; |
} |
}); |
Ext.Container.LAYOUTS['absolute'] = Ext.layout.AbsoluteLayout; |
Ext.Viewport = Ext.extend(Ext.Container, { |
initComponent : function() { |
Ext.Viewport.superclass.initComponent.call(this); |
document.getElementsByTagName('html')[0].className += ' x-viewport'; |
this.el = Ext.getBody(); |
this.el.setHeight = Ext.emptyFn; |
this.el.setWidth = Ext.emptyFn; |
this.el.setSize = Ext.emptyFn; |
this.el.dom.scroll = 'no'; |
this.allowDomMove = false; |
this.autoWidth = true; |
this.autoHeight = true; |
Ext.EventManager.onWindowResize(this.fireResize, this); |
this.renderTo = this.el; |
}, |
fireResize : function(w, h){ |
this.fireEvent('resize', this, w, h, w, h); |
} |
}); |
Ext.reg('viewport', Ext.Viewport); |
Ext.Panel = Ext.extend(Ext.Container, { |
baseCls : 'x-panel', |
collapsedCls : 'x-panel-collapsed', |
maskDisabled: true, |
animCollapse: Ext.enableFx, |
headerAsText: true, |
buttonAlign: 'right', |
collapsed : false, |
collapseFirst: true, |
minButtonWidth:75, |
elements : 'body', |
toolTarget : 'header', |
collapseEl : 'bwrap', |
slideAnchor : 't', |
deferHeight: true, |
expandDefaults: { |
duration:.25 |
}, |
collapseDefaults: { |
duration:.25 |
}, |
initComponent : function(){ |
Ext.Panel.superclass.initComponent.call(this); |
this.addEvents( |
'bodyresize', |
'titlechange', |
'collapse', |
'expand', |
'beforecollapse', |
'beforeexpand', |
'beforeclose', |
'close', |
'activate', |
'deactivate' |
); |
if(this.tbar){ |
this.elements += ',tbar'; |
if(typeof this.tbar == 'object'){ |
this.topToolbar = this.tbar; |
} |
delete this.tbar; |
} |
if(this.bbar){ |
this.elements += ',bbar'; |
if(typeof this.bbar == 'object'){ |
this.bottomToolbar = this.bbar; |
} |
delete this.bbar; |
} |
if(this.header === true){ |
this.elements += ',header'; |
delete this.header; |
}else if(this.title && this.header !== false){ |
this.elements += ',header'; |
} |
if(this.footer === true){ |
this.elements += ',footer'; |
delete this.footer; |
} |
if(this.buttons){ |
var btns = this.buttons; |
this.buttons = []; |
for(var i = 0, len = btns.length; i < len; i++) { |
if(btns[i].render){ this.buttons.push(btns[i]); |
}else{ |
this.addButton(btns[i]); |
} |
} |
} |
if(this.autoLoad){ |
this.on('render', this.doAutoLoad, this, {delay:10}); |
} |
}, |
createElement : function(name, pnode){ |
if(this[name]){ |
pnode.appendChild(this[name].dom); |
return; |
} |
if(name === 'bwrap' || this.elements.indexOf(name) != -1){ |
if(this[name+'Cfg']){ |
this[name] = Ext.fly(pnode).createChild(this[name+'Cfg']); |
}else{ |
var el = document.createElement('div'); |
el.className = this[name+'Cls']; |
this[name] = Ext.get(pnode.appendChild(el)); |
} |
} |
}, |
onRender : function(ct, position){ |
Ext.Panel.superclass.onRender.call(this, ct, position); |
this.createClasses(); |
if(this.el){ this.el.addClass(this.baseCls); |
this.header = this.el.down('.'+this.headerCls); |
this.bwrap = this.el.down('.'+this.bwrapCls); |
var cp = this.bwrap ? this.bwrap : this.el; |
this.tbar = cp.down('.'+this.tbarCls); |
this.body = cp.down('.'+this.bodyCls); |
this.bbar = cp.down('.'+this.bbarCls); |
this.footer = cp.down('.'+this.footerCls); |
this.fromMarkup = true; |
}else{ |
this.el = ct.createChild({ |
id: this.id, |
cls: this.baseCls |
}, position); |
} |
var el = this.el, d = el.dom; |
if(this.cls){ |
this.el.addClass(this.cls); |
} |
if(this.buttons){ |
this.elements += ',footer'; |
} |
if(this.frame){ |
el.insertHtml('afterBegin', String.format(Ext.Element.boxMarkup, this.baseCls)); |
this.createElement('header', d.firstChild.firstChild.firstChild); |
this.createElement('bwrap', d); |
var bw = this.bwrap.dom; |
var ml = d.childNodes[1], bl = d.childNodes[2]; |
bw.appendChild(ml); |
bw.appendChild(bl); |
var mc = bw.firstChild.firstChild.firstChild; |
this.createElement('tbar', mc); |
this.createElement('body', mc); |
this.createElement('bbar', mc); |
this.createElement('footer', bw.lastChild.firstChild.firstChild); |
if(!this.footer){ |
this.bwrap.dom.lastChild.className += ' x-panel-nofooter'; |
} |
}else{ |
this.createElement('header', d); |
this.createElement('bwrap', d); |
var bw = this.bwrap.dom; |
this.createElement('tbar', bw); |
this.createElement('body', bw); |
this.createElement('bbar', bw); |
this.createElement('footer', bw); |
if(!this.header){ |
this.body.addClass(this.bodyCls + '-noheader'); |
if(this.tbar){ |
this.tbar.addClass(this.tbarCls + '-noheader'); |
} |
} |
} |
if(this.border === false){ |
this.el.addClass(this.baseCls + '-noborder'); |
this.body.addClass(this.bodyCls + '-noborder'); |
if(this.header){ |
this.header.addClass(this.headerCls + '-noborder'); |
} |
if(this.footer){ |
this.footer.addClass(this.footerCls + '-noborder'); |
} |
if(this.tbar){ |
this.tbar.addClass(this.tbarCls + '-noborder'); |
} |
if(this.bbar){ |
this.bbar.addClass(this.bbarCls + '-noborder'); |
} |
} |
if(this.bodyBorder === false){ |
this.body.addClass(this.bodyCls + '-noborder'); |
} |
if(this.bodyStyle){ |
this.body.applyStyles(this.bodyStyle); |
} |
this.bwrap.enableDisplayMode('block'); |
if(this.header){ |
this.header.unselectable(); |
if(this.headerAsText){ |
this.header.dom.innerHTML = |
'<span class="' + this.headerTextCls + '">'+this.header.dom.innerHTML+'</span>'; |
if(this.iconCls){ |
this.setIconClass(this.iconCls); |
} |
} |
} |
if(this.floating){ |
this.makeFloating(this.floating); |
} |
if(this.collapsible){ |
this.tools = this.tools ? this.tools.slice(0) : []; |
if(!this.hideCollapseTool){ |
this.tools[this.collapseFirst?'unshift':'push']({ |
id: 'toggle', |
handler : this.toggleCollapse, |
scope: this |
}); |
} |
if(this.titleCollapse && this.header){ |
this.header.on('click', this.toggleCollapse, this); |
this.header.setStyle('cursor', 'pointer'); |
} |
} |
if(this.tools){ |
var ts = this.tools; |
this.tools = {}; |
this.addTool.apply(this, ts); |
}else{ |
this.tools = {}; |
} |
if(this.buttons && this.buttons.length > 0){ |
var tb = this.footer.createChild({cls:'x-panel-btns-ct', cn: { |
cls:"x-panel-btns x-panel-btns-"+this.buttonAlign, |
html:'<table cellspacing="0"><tbody><tr></tr></tbody></table><div class="x-clear"></div>' |
}}, null, true); |
var tr = tb.getElementsByTagName('tr')[0]; |
for(var i = 0, len = this.buttons.length; i < len; i++) { |
var b = this.buttons[i]; |
var td = document.createElement('td'); |
td.className = 'x-panel-btn-td'; |
b.render(tr.appendChild(td)); |
} |
} |
if(this.tbar && this.topToolbar){ |
if(Ext.isArray(this.topToolbar)){ |
this.topToolbar = new Ext.Toolbar(this.topToolbar); |
} |
this.topToolbar.render(this.tbar); |
} |
if(this.bbar && this.bottomToolbar){ |
if(Ext.isArray(this.bottomToolbar)){ |
this.bottomToolbar = new Ext.Toolbar(this.bottomToolbar); |
} |
this.bottomToolbar.render(this.bbar); |
} |
}, |
setIconClass : function(cls){ |
var old = this.iconCls; |
this.iconCls = cls; |
if(this.rendered && this.header){ |
if(this.frame){ |
this.header.addClass('x-panel-icon'); |
this.header.replaceClass(old, this.iconCls); |
}else{ |
var hd = this.header.dom; |
var img = hd.firstChild && String(hd.firstChild.tagName).toLowerCase() == 'img' ? hd.firstChild : null; |
if(img){ |
Ext.fly(img).replaceClass(old, this.iconCls); |
}else{ |
Ext.DomHelper.insertBefore(hd.firstChild, { |
tag:'img', src: Ext.BLANK_IMAGE_URL, cls:'x-panel-inline-icon '+this.iconCls |
}); |
} |
} |
} |
}, |
makeFloating : function(cfg){ |
this.floating = true; |
this.el = new Ext.Layer( |
typeof cfg == 'object' ? cfg : { |
shadow: this.shadow !== undefined ? this.shadow : 'sides', |
shadowOffset: this.shadowOffset, |
constrain:false, |
shim: this.shim === false ? false : undefined |
}, this.el |
); |
}, |
getTopToolbar : function(){ |
return this.topToolbar; |
}, |
getBottomToolbar : function(){ |
return this.bottomToolbar; |
}, |
addButton : function(config, handler, scope){ |
var bc = { |
handler: handler, |
scope: scope, |
minWidth: this.minButtonWidth, |
hideParent:true |
}; |
if(typeof config == "string"){ |
bc.text = config; |
}else{ |
Ext.apply(bc, config); |
} |
var btn = new Ext.Button(bc); |
btn.ownerCt = this; |
if(!this.buttons){ |
this.buttons = []; |
} |
this.buttons.push(btn); |
return btn; |
}, |
addTool : function(){ |
if(!this[this.toolTarget]) { return; |
} |
if(!this.toolTemplate){ |
var tt = new Ext.Template( |
'<div class="x-tool x-tool-{id}"> </div>' |
); |
tt.disableFormats = true; |
tt.compile(); |
Ext.Panel.prototype.toolTemplate = tt; |
} |
for(var i = 0, a = arguments, len = a.length; i < len; i++) { |
var tc = a[i], overCls = 'x-tool-'+tc.id+'-over'; |
var t = this.toolTemplate.insertFirst(this[this.toolTarget], tc, true); |
this.tools[tc.id] = t; |
t.enableDisplayMode('block'); |
t.on('click', this.createToolHandler(t, tc, overCls, this)); |
if(tc.on){ |
t.on(tc.on); |
} |
if(tc.hidden){ |
t.hide(); |
} |
if(tc.qtip){ |
if(typeof tc.qtip == 'object'){ |
Ext.QuickTips.register(Ext.apply({ |
target: t.id |
}, tc.qtip)); |
} else { |
t.dom.qtip = tc.qtip; |
} |
} |
t.addClassOnOver(overCls); |
} |
}, |
onShow : function(){ |
if(this.floating){ |
return this.el.show(); |
} |
Ext.Panel.superclass.onShow.call(this); |
}, |
onHide : function(){ |
if(this.floating){ |
return this.el.hide(); |
} |
Ext.Panel.superclass.onHide.call(this); |
}, |
createToolHandler : function(t, tc, overCls, panel){ |
return function(e){ |
t.removeClass(overCls); |
e.stopEvent(); |
if(tc.handler){ |
tc.handler.call(tc.scope || t, e, t, panel); |
} |
}; |
}, |
afterRender : function(){ |
if(this.fromMarkup && this.height === undefined && !this.autoHeight){ |
this.height = this.el.getHeight(); |
} |
if(this.floating && !this.hidden && !this.initHidden){ |
this.el.show(); |
} |
if(this.title){ |
this.setTitle(this.title); |
} |
this.setAutoScroll(); |
if(this.html){ |
this.body.update(typeof this.html == 'object' ? |
Ext.DomHelper.markup(this.html) : |
this.html); |
delete this.html; |
} |
if(this.contentEl){ |
var ce = Ext.getDom(this.contentEl); |
Ext.fly(ce).removeClass(['x-hidden', 'x-hide-display']); |
this.body.dom.appendChild(ce); |
} |
if(this.collapsed){ |
this.collapsed = false; |
this.collapse(false); |
} |
Ext.Panel.superclass.afterRender.call(this); this.initEvents(); |
}, |
setAutoScroll : function(){ |
if(this.rendered && this.autoScroll){ |
this.body.setOverflow('auto'); |
} |
}, |
getKeyMap : function(){ |
if(!this.keyMap){ |
this.keyMap = new Ext.KeyMap(this.el, this.keys); |
} |
return this.keyMap; |
}, |
initEvents : function(){ |
if(this.keys){ |
this.getKeyMap(); |
} |
if(this.draggable){ |
this.initDraggable(); |
} |
}, |
initDraggable : function(){ |
this.dd = new Ext.Panel.DD(this, typeof this.draggable == 'boolean' ? null : this.draggable); |
}, |
beforeEffect : function(){ |
if(this.floating){ |
this.el.beforeAction(); |
} |
this.el.addClass('x-panel-animated'); |
}, |
afterEffect : function(){ |
this.syncShadow(); |
this.el.removeClass('x-panel-animated'); |
}, |
createEffect : function(a, cb, scope){ |
var o = { |
scope:scope, |
block:true |
}; |
if(a === true){ |
o.callback = cb; |
return o; |
}else if(!a.callback){ |
o.callback = cb; |
}else { o.callback = function(){ |
cb.call(scope); |
Ext.callback(a.callback, a.scope); |
}; |
} |
return Ext.applyIf(o, a); |
}, |
collapse : function(animate){ |
if(this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforecollapse', this, animate) === false){ |
return; |
} |
var doAnim = animate === true || (animate !== false && this.animCollapse); |
this.beforeEffect(); |
this.onCollapse(doAnim, animate); |
return this; |
}, |
onCollapse : function(doAnim, animArg){ |
if(doAnim){ |
this[this.collapseEl].slideOut(this.slideAnchor, |
Ext.apply(this.createEffect(animArg||true, this.afterCollapse, this), |
this.collapseDefaults)); |
}else{ |
this[this.collapseEl].hide(); |
this.afterCollapse(); |
} |
}, |
afterCollapse : function(){ |
this.collapsed = true; |
this.el.addClass(this.collapsedCls); |
this.afterEffect(); |
this.fireEvent('collapse', this); |
}, |
expand : function(animate){ |
if(!this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforeexpand', this, animate) === false){ |
return; |
} |
var doAnim = animate === true || (animate !== false && this.animCollapse); |
this.el.removeClass(this.collapsedCls); |
this.beforeEffect(); |
this.onExpand(doAnim, animate); |
return this; |
}, |
onExpand : function(doAnim, animArg){ |
if(doAnim){ |
this[this.collapseEl].slideIn(this.slideAnchor, |
Ext.apply(this.createEffect(animArg||true, this.afterExpand, this), |
this.expandDefaults)); |
}else{ |
this[this.collapseEl].show(); |
this.afterExpand(); |
} |
}, |
afterExpand : function(){ |
this.collapsed = false; |
this.afterEffect(); |
this.fireEvent('expand', this); |
}, |
toggleCollapse : function(animate){ |
this[this.collapsed ? 'expand' : 'collapse'](animate); |
return this; |
}, |
onDisable : function(){ |
if(this.rendered && this.maskDisabled){ |
this.el.mask(); |
} |
Ext.Panel.superclass.onDisable.call(this); |
}, |
onEnable : function(){ |
if(this.rendered && this.maskDisabled){ |
this.el.unmask(); |
} |
Ext.Panel.superclass.onEnable.call(this); |
}, |
onResize : function(w, h){ |
if(w !== undefined || h !== undefined){ |
if(!this.collapsed){ |
if(typeof w == 'number'){ |
this.body.setWidth( |
this.adjustBodyWidth(w - this.getFrameWidth())); |
}else if(w == 'auto'){ |
this.body.setWidth(w); |
} |
if(typeof h == 'number'){ |
this.body.setHeight( |
this.adjustBodyHeight(h - this.getFrameHeight())); |
}else if(h == 'auto'){ |
this.body.setHeight(h); |
} |
}else{ |
this.queuedBodySize = {width: w, height: h}; |
if(!this.queuedExpand && this.allowQueuedExpand !== false){ |
this.queuedExpand = true; |
this.on('expand', function(){ |
delete this.queuedExpand; |
this.onResize(this.queuedBodySize.width, this.queuedBodySize.height); |
this.doLayout(); |
}, this, {single:true}); |
} |
} |
this.fireEvent('bodyresize', this, w, h); |
} |
this.syncShadow(); |
}, |
adjustBodyHeight : function(h){ |
return h; |
}, |
adjustBodyWidth : function(w){ |
return w; |
}, |
onPosition : function(){ |
this.syncShadow(); |
}, |
onDestroy : function(){ |
if(this.tools){ |
for(var k in this.tools){ |
Ext.destroy(this.tools[k]); |
} |
} |
if(this.buttons){ |
for(var b in this.buttons){ |
Ext.destroy(this.buttons[b]); |
} |
} |
Ext.destroy( |
this.topToolbar, |
this.bottomToolbar |
); |
Ext.Panel.superclass.onDestroy.call(this); |
}, |
getFrameWidth : function(){ |
var w = this.el.getFrameWidth('lr'); |
if(this.frame){ |
var l = this.bwrap.dom.firstChild; |
w += (Ext.fly(l).getFrameWidth('l') + Ext.fly(l.firstChild).getFrameWidth('r')); |
var mc = this.bwrap.dom.firstChild.firstChild.firstChild; |
w += Ext.fly(mc).getFrameWidth('lr'); |
} |
return w; |
}, |
getFrameHeight : function(){ |
var h = this.el.getFrameWidth('tb'); |
h += (this.tbar ? this.tbar.getHeight() : 0) + |
(this.bbar ? this.bbar.getHeight() : 0); |
if(this.frame){ |
var hd = this.el.dom.firstChild; |
var ft = this.bwrap.dom.lastChild; |
h += (hd.offsetHeight + ft.offsetHeight); |
var mc = this.bwrap.dom.firstChild.firstChild.firstChild; |
h += Ext.fly(mc).getFrameWidth('tb'); |
}else{ |
h += (this.header ? this.header.getHeight() : 0) + |
(this.footer ? this.footer.getHeight() : 0); |
} |
return h; |
}, |
getInnerWidth : function(){ |
return this.getSize().width - this.getFrameWidth(); |
}, |
getInnerHeight : function(){ |
return this.getSize().height - this.getFrameHeight(); |
}, |
syncShadow : function(){ |
if(this.floating){ |
this.el.sync(true); |
} |
}, |
getLayoutTarget : function(){ |
return this.body; |
}, |
setTitle : function(title, iconCls){ |
this.title = title; |
if(this.header && this.headerAsText){ |
this.header.child('span').update(title); |
} |
if(iconCls){ |
this.setIconClass(iconCls); |
} |
this.fireEvent('titlechange', this, title); |
return this; |
}, |
getUpdater : function(){ |
return this.body.getUpdater(); |
}, |
load : function(){ |
var um = this.body.getUpdater(); |
um.update.apply(um, arguments); |
return this; |
}, |
beforeDestroy : function(){ |
Ext.Element.uncache( |
this.header, |
this.tbar, |
this.bbar, |
this.footer, |
this.body |
); |
}, |
createClasses : function(){ |
this.headerCls = this.baseCls + '-header'; |
this.headerTextCls = this.baseCls + '-header-text'; |
this.bwrapCls = this.baseCls + '-bwrap'; |
this.tbarCls = this.baseCls + '-tbar'; |
this.bodyCls = this.baseCls + '-body'; |
this.bbarCls = this.baseCls + '-bbar'; |
this.footerCls = this.baseCls + '-footer'; |
}, |
createGhost : function(cls, useShim, appendTo){ |
var el = document.createElement('div'); |
el.className = 'x-panel-ghost ' + (cls ? cls : ''); |
if(this.header){ |
el.appendChild(this.el.dom.firstChild.cloneNode(true)); |
} |
Ext.fly(el.appendChild(document.createElement('ul'))).setHeight(this.bwrap.getHeight()); |
el.style.width = this.el.dom.offsetWidth + 'px';; |
if(!appendTo){ |
this.container.dom.appendChild(el); |
}else{ |
Ext.getDom(appendTo).appendChild(el); |
} |
if(useShim !== false && this.el.useShim !== false){ |
var layer = new Ext.Layer({shadow:false, useDisplay:true, constrain:false}, el); |
layer.show(); |
return layer; |
}else{ |
return new Ext.Element(el); |
} |
}, |
doAutoLoad : function(){ |
this.body.load( |
typeof this.autoLoad == 'object' ? |
this.autoLoad : {url: this.autoLoad}); |
} |
}); |
Ext.reg('panel', Ext.Panel); |
Ext.Window = Ext.extend(Ext.Panel, { |
baseCls : 'x-window', |
resizable:true, |
draggable:true, |
closable : true, |
constrain:false, |
constrainHeader:false, |
plain:false, |
minimizable : false, |
maximizable : false, |
minHeight: 100, |
minWidth: 200, |
expandOnShow: true, |
closeAction: 'close', |
collapsible:false, |
initHidden : true, |
monitorResize : true, |
elements: 'header,body', |
frame:true, |
floating:true, |
initComponent : function(){ |
Ext.Window.superclass.initComponent.call(this); |
this.addEvents( |
'resize', |
'maximize', |
'minimize', |
'restore' |
); |
}, |
getState : function(){ |
return Ext.apply(Ext.Window.superclass.getState.call(this) || {}, this.getBox()); |
}, |
onRender : function(ct, position){ |
Ext.Window.superclass.onRender.call(this, ct, position); |
if(this.plain){ |
this.el.addClass('x-window-plain'); |
} |
this.focusEl = this.el.createChild({ |
tag: "a", href:"#", cls:"x-dlg-focus", |
tabIndex:"-1", html: " "}); |
this.focusEl.swallowEvent('click', true); |
this.proxy = this.el.createProxy("x-window-proxy"); |
this.proxy.enableDisplayMode('block'); |
if(this.modal){ |
this.mask = this.container.createChild({cls:"ext-el-mask"}, this.el.dom); |
this.mask.enableDisplayMode("block"); |
this.mask.hide(); |
} |
}, |
initEvents : function(){ |
Ext.Window.superclass.initEvents.call(this); |
if(this.animateTarget){ |
this.setAnimateTarget(this.animateTarget); |
} |
if(this.resizable){ |
this.resizer = new Ext.Resizable(this.el, { |
minWidth: this.minWidth, |
minHeight:this.minHeight, |
handles: this.resizeHandles || "all", |
pinned: true, |
resizeElement : this.resizerAction |
}); |
this.resizer.window = this; |
this.resizer.on("beforeresize", this.beforeResize, this); |
} |
if(this.draggable){ |
this.header.addClass("x-window-draggable"); |
} |
this.initTools(); |
this.el.on("mousedown", this.toFront, this); |
this.manager = this.manager || Ext.WindowMgr; |
this.manager.register(this); |
this.hidden = true; |
if(this.maximized){ |
this.maximized = false; |
this.maximize(); |
} |
if(this.closable){ |
var km = this.getKeyMap(); |
km.on(27, this.onEsc, this); |
km.disable(); |
} |
}, |
initDraggable : function(){ |
this.dd = new Ext.Window.DD(this); |
}, |
onEsc : function(){ |
this[this.closeAction](); |
}, |
beforeDestroy : function(){ |
Ext.destroy( |
this.resizer, |
this.dd, |
this.proxy, |
this.mask |
); |
Ext.Window.superclass.beforeDestroy.call(this); |
}, |
onDestroy : function(){ |
if(this.manager){ |
this.manager.unregister(this); |
} |
Ext.Window.superclass.onDestroy.call(this); |
}, |
initTools : function(){ |
if(this.minimizable){ |
this.addTool({ |
id: 'minimize', |
handler: this.minimize.createDelegate(this, []) |
}); |
} |
if(this.maximizable){ |
this.addTool({ |
id: 'maximize', |
handler: this.maximize.createDelegate(this, []) |
}); |
this.addTool({ |
id: 'restore', |
handler: this.restore.createDelegate(this, []), |
hidden:true |
}); |
this.header.on('dblclick', this.toggleMaximize, this); |
} |
if(this.closable){ |
this.addTool({ |
id: 'close', |
handler: this[this.closeAction].createDelegate(this, []) |
}); |
} |
}, |
resizerAction : function(){ |
var box = this.proxy.getBox(); |
this.proxy.hide(); |
this.window.handleResize(box); |
return box; |
}, |
beforeResize : function(){ |
this.resizer.minHeight = Math.max(this.minHeight, this.getFrameHeight() + 40); this.resizer.minWidth = Math.max(this.minWidth, this.getFrameWidth() + 40); |
this.resizeBox = this.el.getBox(); |
}, |
updateHandles : function(){ |
if(Ext.isIE && this.resizer){ |
this.resizer.syncHandleHeight(); |
this.el.repaint(); |
} |
}, |
handleResize : function(box){ |
var rz = this.resizeBox; |
if(rz.x != box.x || rz.y != box.y){ |
this.updateBox(box); |
}else{ |
this.setSize(box); |
} |
this.focus(); |
this.updateHandles(); |
this.saveState(); |
this.fireEvent("resize", this, box.width, box.height); |
}, |
focus : function(){ |
var f = this.focusEl, db = this.defaultButton, t = typeof db; |
if(t != 'undefined'){ |
if(t == 'number'){ |
f = this.buttons[db]; |
}else if(t == 'string'){ |
f = Ext.getCmp(db); |
}else{ |
f = db; |
} |
} |
f.focus.defer(10, f); |
}, |
setAnimateTarget : function(el){ |
el = Ext.get(el); |
this.animateTarget = el; |
}, |
beforeShow : function(){ |
delete this.el.lastXY; |
delete this.el.lastLT; |
if(this.x === undefined || this.y === undefined){ |
var xy = this.el.getAlignToXY(this.container, 'c-c'); |
var pos = this.el.translatePoints(xy[0], xy[1]); |
this.x = this.x === undefined? pos.left : this.x; |
this.y = this.y === undefined? pos.top : this.y; |
} |
this.el.setLeftTop(this.x, this.y); |
if(this.expandOnShow){ |
this.expand(false); |
} |
if(this.modal){ |
Ext.getBody().addClass("x-body-masked"); |
this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); |
this.mask.show(); |
} |
}, |
show : function(animateTarget, cb, scope){ |
if(!this.rendered){ |
this.render(Ext.getBody()); |
} |
if(this.hidden === false){ |
this.toFront(); |
return; |
} |
if(this.fireEvent("beforeshow", this) === false){ |
return; |
} |
if(cb){ |
this.on('show', cb, scope, {single:true}); |
} |
this.hidden = false; |
if(animateTarget !== undefined){ |
this.setAnimateTarget(animateTarget); |
} |
this.beforeShow(); |
if(this.animateTarget){ |
this.animShow(); |
}else{ |
this.afterShow(); |
} |
}, |
afterShow : function(){ |
this.proxy.hide(); |
this.el.setStyle('display', 'block'); |
this.el.show(); |
if(this.maximized){ |
this.fitContainer(); |
} |
if(Ext.isMac && Ext.isGecko){ this.cascade(this.setAutoScroll); |
} |
if(this.monitorResize || this.modal || this.constrain || this.constrainHeader){ |
Ext.EventManager.onWindowResize(this.onWindowResize, this); |
} |
this.doConstrain(); |
if(this.layout){ |
this.doLayout(); |
} |
if(this.keyMap){ |
this.keyMap.enable(); |
} |
this.toFront(); |
this.updateHandles(); |
this.fireEvent("show", this); |
}, |
animShow : function(){ |
this.proxy.show(); |
this.proxy.setBox(this.animateTarget.getBox()); |
this.proxy.setOpacity(0); |
var b = this.getBox(false); |
b.callback = this.afterShow; |
b.scope = this; |
b.duration = .25; |
b.easing = 'easeNone'; |
b.opacity = .5; |
b.block = true; |
this.el.setStyle('display', 'none'); |
this.proxy.shift(b); |
}, |
hide : function(animateTarget, cb, scope){ |
if(this.hidden || this.fireEvent("beforehide", this) === false){ |
return; |
} |
if(cb){ |
this.on('hide', cb, scope, {single:true}); |
} |
this.hidden = true; |
if(animateTarget !== undefined){ |
this.setAnimateTarget(animateTarget); |
} |
if(this.animateTarget){ |
this.animHide(); |
}else{ |
this.el.hide(); |
this.afterHide(); |
} |
}, |
afterHide : function(){ |
this.proxy.hide(); |
if(this.monitorResize || this.modal || this.constrain || this.constrainHeader){ |
Ext.EventManager.removeResizeListener(this.onWindowResize, this); |
} |
if(this.modal){ |
this.mask.hide(); |
Ext.getBody().removeClass("x-body-masked"); |
} |
if(this.keyMap){ |
this.keyMap.disable(); |
} |
this.fireEvent("hide", this); |
}, |
animHide : function(){ |
this.proxy.setOpacity(.5); |
this.proxy.show(); |
var tb = this.getBox(false); |
this.proxy.setBox(tb); |
this.el.hide(); |
var b = this.animateTarget.getBox(); |
b.callback = this.afterHide; |
b.scope = this; |
b.duration = .25; |
b.easing = 'easeNone'; |
b.block = true; |
b.opacity = 0; |
this.proxy.shift(b); |
}, |
onWindowResize : function(){ |
if(this.maximized){ |
this.fitContainer(); |
} |
if(this.modal){ |
this.mask.setSize('100%', '100%'); |
var force = this.mask.dom.offsetHeight; |
this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); |
} |
this.doConstrain(); |
}, |
doConstrain : function(){ |
if(this.constrain || this.constrainHeader){ |
var offsets; |
if(this.constrain){ |
offsets = { |
right:this.el.shadowOffset, |
left:this.el.shadowOffset, |
bottom:this.el.shadowOffset |
}; |
}else { |
var s = this.getSize(); |
offsets = { |
right:-(s.width - 100), |
bottom:-(s.height - 25) |
}; |
} |
var xy = this.el.getConstrainToXY(this.container, true, offsets); |
if(xy){ |
this.setPosition(xy[0], xy[1]); |
} |
} |
}, |
ghost : function(cls){ |
var ghost = this.createGhost(cls); |
var box = this.getBox(true); |
ghost.setLeftTop(box.x, box.y); |
ghost.setWidth(box.width); |
this.el.hide(); |
this.activeGhost = ghost; |
return ghost; |
}, |
unghost : function(show, matchPosition){ |
if(show !== false){ |
this.el.show(); |
this.focus(); |
if(Ext.isMac && Ext.isGecko){ this.cascade(this.setAutoScroll); |
} |
} |
if(matchPosition !== false){ |
this.setPosition(this.activeGhost.getLeft(true), this.activeGhost.getTop(true)); |
} |
this.activeGhost.hide(); |
this.activeGhost.remove(); |
delete this.activeGhost; |
}, |
minimize : function(){ |
this.fireEvent('minimize', this); |
}, |
close : function(){ |
if(this.fireEvent("beforeclose", this) !== false){ |
this.hide(null, function(){ |
this.fireEvent('close', this); |
this.destroy(); |
}, this); |
} |
}, |
maximize : function(){ |
if(!this.maximized){ |
this.expand(false); |
this.restoreSize = this.getSize(); |
this.restorePos = this.getPosition(true); |
this.tools.maximize.hide(); |
this.tools.restore.show(); |
this.maximized = true; |
this.el.disableShadow(); |
if(this.dd){ |
this.dd.lock(); |
} |
if(this.collapsible){ |
this.tools.toggle.hide(); |
} |
this.el.addClass('x-window-maximized'); |
this.container.addClass('x-window-maximized-ct'); |
this.setPosition(0, 0); |
this.fitContainer(); |
this.fireEvent('maximize', this); |
} |
}, |
restore : function(){ |
if(this.maximized){ |
this.el.removeClass('x-window-maximized'); |
this.tools.restore.hide(); |
this.tools.maximize.show(); |
this.setPosition(this.restorePos[0], this.restorePos[1]); |
this.setSize(this.restoreSize.width, this.restoreSize.height); |
delete this.restorePos; |
delete this.restoreSize; |
this.maximized = false; |
this.el.enableShadow(true); |
if(this.dd){ |
this.dd.unlock(); |
} |
if(this.collapsible){ |
this.tools.toggle.show(); |
} |
this.container.removeClass('x-window-maximized-ct'); |
this.doConstrain(); |
this.fireEvent('restore', this); |
} |
}, |
toggleMaximize : function(){ |
this[this.maximized ? 'restore' : 'maximize'](); |
}, |
fitContainer : function(){ |
var vs = this.container.getViewSize(); |
this.setSize(vs.width, vs.height); |
}, |
setZIndex : function(index){ |
if(this.modal){ |
this.mask.setStyle("z-index", index); |
} |
this.el.setZIndex(++index); |
index += 5; |
if(this.resizer){ |
this.resizer.proxy.setStyle("z-index", ++index); |
} |
this.lastZIndex = index; |
}, |
alignTo : function(element, position, offsets){ |
var xy = this.el.getAlignToXY(element, position, offsets); |
this.setPagePosition(xy[0], xy[1]); |
return this; |
}, |
anchorTo : function(el, alignment, offsets, monitorScroll, _pname){ |
var action = function(){ |
this.alignTo(el, alignment, offsets); |
}; |
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); |
this[_pname] = action; |
return this; |
}, |
toFront : function(){ |
if(this.manager.bringToFront(this)){ |
this.focus(); |
} |
return this; |
}, |
setActive : function(active){ |
if(active){ |
if(!this.maximized){ |
this.el.enableShadow(true); |
} |
this.fireEvent('activate', this); |
}else{ |
this.el.disableShadow(); |
this.fireEvent('deactivate', this); |
} |
}, |
toBack : function(){ |
this.manager.sendToBack(this); |
return this; |
}, |
center : function(){ |
var xy = this.el.getAlignToXY(this.container, 'c-c'); |
this.setPagePosition(xy[0], xy[1]); |
return this; |
} |
}); |
Ext.reg('window', Ext.Window); |
Ext.Window.DD = function(win){ |
this.win = win; |
Ext.Window.DD.superclass.constructor.call(this, win.el.id, 'WindowDD-'+win.id); |
this.setHandleElId(win.header.id); |
this.scroll = false; |
}; |
Ext.extend(Ext.Window.DD, Ext.dd.DD, { |
moveOnly:true, |
headerOffsets:[100, 25], |
startDrag : function(){ |
var w = this.win; |
this.proxy = w.ghost(); |
if(w.constrain !== false){ |
var so = w.el.shadowOffset; |
this.constrainTo(w.container, {right: so, left: so, bottom: so}); |
}else if(w.constrainHeader !== false){ |
var s = this.proxy.getSize(); |
this.constrainTo(w.container, {right: -(s.width-this.headerOffsets[0]), bottom: -(s.height-this.headerOffsets[1])}); |
} |
}, |
b4Drag : Ext.emptyFn, |
onDrag : function(e){ |
this.alignElWithMouse(this.proxy, e.getPageX(), e.getPageY()); |
}, |
endDrag : function(e){ |
this.win.unghost(); |
this.win.saveState(); |
} |
}); |
Ext.WindowGroup = function(){ |
var list = {}; |
var accessList = []; |
var front = null; |
var sortWindows = function(d1, d2){ |
return (!d1._lastAccess || d1._lastAccess < d2._lastAccess) ? -1 : 1; |
}; |
var orderWindows = function(){ |
var a = accessList, len = a.length; |
if(len > 0){ |
a.sort(sortWindows); |
var seed = a[0].manager.zseed; |
for(var i = 0; i < len; i++){ |
var win = a[i]; |
if(win && !win.hidden){ |
win.setZIndex(seed + (i*10)); |
} |
} |
} |
activateLast(); |
}; |
var setActiveWin = function(win){ |
if(win != front){ |
if(front){ |
front.setActive(false); |
} |
front = win; |
if(win){ |
win.setActive(true); |
} |
} |
}; |
var activateLast = function(){ |
for(var i = accessList.length-1; i >=0; --i) { |
if(!accessList[i].hidden){ |
setActiveWin(accessList[i]); |
return; |
} |
} |
setActiveWin(null); |
}; |
return { |
zseed : 9000, |
register : function(win){ |
list[win.id] = win; |
accessList.push(win); |
win.on('hide', activateLast); |
}, |
unregister : function(win){ |
delete list[win.id]; |
win.un('hide', activateLast); |
accessList.remove(win); |
}, |
get : function(id){ |
return typeof id == "object" ? id : list[id]; |
}, |
bringToFront : function(win){ |
win = this.get(win); |
if(win != front){ |
win._lastAccess = new Date().getTime(); |
orderWindows(); |
return true; |
} |
return false; |
}, |
sendToBack : function(win){ |
win = this.get(win); |
win._lastAccess = -(new Date().getTime()); |
orderWindows(); |
return win; |
}, |
hideAll : function(){ |
for(var id in list){ |
if(list[id] && typeof list[id] != "function" && list[id].isVisible()){ |
list[id].hide(); |
} |
} |
}, |
getActive : function(){ |
return front; |
}, |
getBy : function(fn, scope){ |
var r = []; |
for(var i = accessList.length-1; i >=0; --i) { |
var win = accessList[i]; |
if(fn.call(scope||win, win) !== false){ |
r.push(win); |
} |
} |
return r; |
}, |
each : function(fn, scope){ |
for(var id in list){ |
if(list[id] && typeof list[id] != "function"){ |
if(fn.call(scope || list[id], list[id]) === false){ |
return; |
} |
} |
} |
} |
}; |
}; |
Ext.WindowMgr = new Ext.WindowGroup(); |
Ext.dd.PanelProxy = function(panel, config){ |
this.panel = panel; |
this.id = this.panel.id +'-ddproxy'; |
Ext.apply(this, config); |
}; |
Ext.dd.PanelProxy.prototype = { |
insertProxy : true, |
setStatus : Ext.emptyFn, |
reset : Ext.emptyFn, |
update : Ext.emptyFn, |
stop : Ext.emptyFn, |
sync: Ext.emptyFn, |
getEl : function(){ |
return this.ghost; |
}, |
getGhost : function(){ |
return this.ghost; |
}, |
getProxy : function(){ |
return this.proxy; |
}, |
hide : function(){ |
if(this.ghost){ |
if(this.proxy){ |
this.proxy.remove(); |
delete this.proxy; |
} |
this.panel.el.dom.style.display = ''; |
this.ghost.remove(); |
delete this.ghost; |
} |
}, |
show : function(){ |
if(!this.ghost){ |
this.ghost = this.panel.createGhost(undefined, undefined, Ext.getBody()); |
this.ghost.setXY(this.panel.el.getXY()) |
if(this.insertProxy){ |
this.proxy = this.panel.el.insertSibling({cls:'x-panel-dd-spacer'}); |
this.proxy.setSize(this.panel.getSize()); |
} |
this.panel.el.dom.style.display = 'none'; |
} |
}, |
repair : function(xy, callback, scope){ |
this.hide(); |
if(typeof callback == "function"){ |
callback.call(scope || this); |
} |
}, |
moveProxy : function(parentNode, before){ |
if(this.proxy){ |
parentNode.insertBefore(this.proxy.dom, before); |
} |
} |
}; |
Ext.Panel.DD = function(panel, cfg){ |
this.panel = panel; |
this.dragData = {panel: panel}; |
this.proxy = new Ext.dd.PanelProxy(panel, cfg); |
Ext.Panel.DD.superclass.constructor.call(this, panel.el, cfg); |
this.setHandleElId(panel.header.id); |
panel.header.setStyle('cursor', 'move'); |
this.scroll = false; |
}; |
Ext.extend(Ext.Panel.DD, Ext.dd.DragSource, { |
showFrame: Ext.emptyFn, |
startDrag: Ext.emptyFn, |
b4StartDrag: function(x, y) { |
this.proxy.show(); |
}, |
b4MouseDown: function(e) { |
var x = e.getPageX(); |
var y = e.getPageY(); |
this.autoOffset(x, y); |
}, |
onInitDrag : function(x, y){ |
this.onStartDrag(x, y); |
return true; |
}, |
createFrame : Ext.emptyFn, |
getDragEl : function(e){ |
return this.proxy.ghost.dom; |
}, |
endDrag : function(e){ |
this.proxy.hide(); |
this.panel.saveState(); |
}, |
autoOffset : function(x, y) { |
x -= this.startPageX; |
y -= this.startPageY; |
this.setDelta(x, y); |
} |
}); |
Ext.state.Provider = function(){ |
this.addEvents("statechange"); |
this.state = {}; |
Ext.state.Provider.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.state.Provider, Ext.util.Observable, { |
get : function(name, defaultValue){ |
return typeof this.state[name] == "undefined" ? |
defaultValue : this.state[name]; |
}, |
clear : function(name){ |
delete this.state[name]; |
this.fireEvent("statechange", this, name, null); |
}, |
set : function(name, value){ |
this.state[name] = value; |
this.fireEvent("statechange", this, name, value); |
}, |
decodeValue : function(cookie){ |
var re = /^(a|n|d|b|s|o)\:(.*)$/; |
var matches = re.exec(unescape(cookie)); |
if(!matches || !matches[1]) return; |
var type = matches[1]; |
var v = matches[2]; |
switch(type){ |
case "n": |
return parseFloat(v); |
case "d": |
return new Date(Date.parse(v)); |
case "b": |
return (v == "1"); |
case "a": |
var all = []; |
var values = v.split("^"); |
for(var i = 0, len = values.length; i < len; i++){ |
all.push(this.decodeValue(values[i])); |
} |
return all; |
case "o": |
var all = {}; |
var values = v.split("^"); |
for(var i = 0, len = values.length; i < len; i++){ |
var kv = values[i].split("="); |
all[kv[0]] = this.decodeValue(kv[1]); |
} |
return all; |
default: |
return v; |
} |
}, |
encodeValue : function(v){ |
var enc; |
if(typeof v == "number"){ |
enc = "n:" + v; |
}else if(typeof v == "boolean"){ |
enc = "b:" + (v ? "1" : "0"); |
}else if(Ext.isDate(v)){ |
enc = "d:" + v.toGMTString(); |
}else if(Ext.isArray(v)){ |
var flat = ""; |
for(var i = 0, len = v.length; i < len; i++){ |
flat += this.encodeValue(v[i]); |
if(i != len-1) flat += "^"; |
} |
enc = "a:" + flat; |
}else if(typeof v == "object"){ |
var flat = ""; |
for(var key in v){ |
if(typeof v[key] != "function" && v[key] !== undefined){ |
flat += key + "=" + this.encodeValue(v[key]) + "^"; |
} |
} |
enc = "o:" + flat.substring(0, flat.length-1); |
}else{ |
enc = "s:" + v; |
} |
return escape(enc); |
} |
}); |
Ext.state.Manager = function(){ |
var provider = new Ext.state.Provider(); |
return { |
setProvider : function(stateProvider){ |
provider = stateProvider; |
}, |
get : function(key, defaultValue){ |
return provider.get(key, defaultValue); |
}, |
set : function(key, value){ |
provider.set(key, value); |
}, |
clear : function(key){ |
provider.clear(key); |
}, |
getProvider : function(){ |
return provider; |
} |
}; |
}(); |
Ext.state.CookieProvider = function(config){ |
Ext.state.CookieProvider.superclass.constructor.call(this); |
this.path = "/"; |
this.expires = new Date(new Date().getTime()+(1000*60*60*24*7)); |
this.domain = null; |
this.secure = false; |
Ext.apply(this, config); |
this.state = this.readCookies(); |
}; |
Ext.extend(Ext.state.CookieProvider, Ext.state.Provider, { |
set : function(name, value){ |
if(typeof value == "undefined" || value === null){ |
this.clear(name); |
return; |
} |
this.setCookie(name, value); |
Ext.state.CookieProvider.superclass.set.call(this, name, value); |
}, |
clear : function(name){ |
this.clearCookie(name); |
Ext.state.CookieProvider.superclass.clear.call(this, name); |
}, |
readCookies : function(){ |
var cookies = {}; |
var c = document.cookie + ";"; |
var re = /\s?(.*?)=(.*?);/g; |
var matches; |
while((matches = re.exec(c)) != null){ |
var name = matches[1]; |
var value = matches[2]; |
if(name && name.substring(0,3) == "ys-"){ |
cookies[name.substr(3)] = this.decodeValue(value); |
} |
} |
return cookies; |
}, |
setCookie : function(name, value){ |
document.cookie = "ys-"+ name + "=" + this.encodeValue(value) + |
((this.expires == null) ? "" : ("; expires=" + this.expires.toGMTString())) + |
((this.path == null) ? "" : ("; path=" + this.path)) + |
((this.domain == null) ? "" : ("; domain=" + this.domain)) + |
((this.secure == true) ? "; secure" : ""); |
}, |
clearCookie : function(name){ |
document.cookie = "ys-" + name + "=null; expires=Thu, 01-Jan-70 00:00:01 GMT" + |
((this.path == null) ? "" : ("; path=" + this.path)) + |
((this.domain == null) ? "" : ("; domain=" + this.domain)) + |
((this.secure == true) ? "; secure" : ""); |
} |
}); |
Ext.DataView = Ext.extend(Ext.BoxComponent, { |
selectedClass : "x-view-selected", |
emptyText : "", |
last: false, |
initComponent : function(){ |
Ext.DataView.superclass.initComponent.call(this); |
if(typeof this.tpl == "string"){ |
this.tpl = new Ext.XTemplate(this.tpl); |
} |
this.addEvents( |
"beforeclick", |
"click", |
"containerclick", |
"dblclick", |
"contextmenu", |
"selectionchange", |
"beforeselect" |
); |
this.all = new Ext.CompositeElementLite(); |
this.selected = new Ext.CompositeElementLite(); |
}, |
onRender : function(){ |
if(!this.el){ |
this.el = document.createElement('div'); |
} |
Ext.DataView.superclass.onRender.apply(this, arguments); |
}, |
afterRender : function(){ |
Ext.DataView.superclass.afterRender.call(this); |
this.el.on({ |
"click": this.onClick, |
"dblclick": this.onDblClick, |
"contextmenu": this.onContextMenu, |
scope:this |
}); |
if(this.overClass){ |
this.el.on({ |
"mouseover": this.onMouseOver, |
"mouseout": this.onMouseOut, |
scope:this |
}); |
} |
if(this.store){ |
this.setStore(this.store, true); |
} |
}, |
refresh : function(){ |
this.clearSelections(false, true); |
this.el.update(""); |
var html = []; |
var records = this.store.getRange(); |
if(records.length < 1){ |
this.el.update(this.emptyText); |
this.all.clear(); |
return; |
} |
this.tpl.overwrite(this.el, this.collectData(records, 0)); |
this.all.fill(Ext.query(this.itemSelector, this.el.dom)); |
this.updateIndexes(0); |
}, |
prepareData : function(data){ |
return data; |
}, |
collectData : function(records, startIndex){ |
var r = []; |
for(var i = 0, len = records.length; i < len; i++){ |
r[r.length] = this.prepareData(records[i].data, startIndex+i, records[i]); |
} |
return r; |
}, |
bufferRender : function(records){ |
var div = document.createElement('div'); |
this.tpl.overwrite(div, this.collectData(records)); |
return Ext.query(this.itemSelector, div); |
}, |
onUpdate : function(ds, record){ |
var index = this.store.indexOf(record); |
var sel = this.isSelected(index); |
var original = this.all.elements[index]; |
var node = this.bufferRender([record], index)[0]; |
this.all.replaceElement(index, node, true); |
if(sel){ |
this.selected.replaceElement(original, node); |
this.all.item(index).addClass(this.selectedClass); |
} |
this.updateIndexes(index, index); |
}, |
onAdd : function(ds, records, index){ |
if(this.all.getCount() == 0){ |
this.refresh(); |
return; |
} |
var nodes = this.bufferRender(records, index), n; |
if(index < this.all.getCount()){ |
n = this.all.item(index).insertSibling(nodes, 'before', true); |
this.all.elements.splice(index, 0, n); |
}else{ |
n = this.all.last().insertSibling(nodes, 'after', true); |
this.all.elements.push(n); |
} |
this.updateIndexes(index); |
}, |
onRemove : function(ds, record, index){ |
this.deselect(index); |
this.all.removeElement(index, true); |
this.updateIndexes(index); |
}, |
refreshNode : function(index){ |
this.onUpdate(this.store, this.store.getAt(index)); |
}, |
updateIndexes : function(startIndex, endIndex){ |
var ns = this.all.elements; |
startIndex = startIndex || 0; |
endIndex = endIndex || ((endIndex === 0) ? 0 : (ns.length - 1)); |
for(var i = startIndex; i <= endIndex; i++){ |
ns[i].viewIndex = i; |
} |
}, |
setStore : function(store, initial){ |
if(!initial && this.store){ |
this.store.un("beforeload", this.onBeforeLoad, this); |
this.store.un("datachanged", this.refresh, this); |
this.store.un("add", this.onAdd, this); |
this.store.un("remove", this.onRemove, this); |
this.store.un("update", this.onUpdate, this); |
this.store.un("clear", this.refresh, this); |
} |
if(store){ |
store = Ext.StoreMgr.lookup(store); |
store.on("beforeload", this.onBeforeLoad, this); |
store.on("datachanged", this.refresh, this); |
store.on("add", this.onAdd, this); |
store.on("remove", this.onRemove, this); |
store.on("update", this.onUpdate, this); |
store.on("clear", this.refresh, this); |
} |
this.store = store; |
if(store){ |
this.refresh(); |
} |
}, |
findItemFromChild : function(node){ |
return Ext.fly(node).findParent(this.itemSelector, this.el); |
}, |
onClick : function(e){ |
var item = e.getTarget(this.itemSelector, this.el); |
if(item){ |
var index = this.indexOf(item); |
if(this.onItemClick(item, index, e) !== false){ |
this.fireEvent("click", this, index, item, e); |
} |
}else{ |
if(this.fireEvent("containerclick", this, e) !== false){ |
this.clearSelections(); |
} |
} |
}, |
onContextMenu : function(e){ |
var item = e.getTarget(this.itemSelector, this.el); |
if(item){ |
this.fireEvent("contextmenu", this, this.indexOf(item), item, e); |
} |
}, |
onDblClick : function(e){ |
var item = e.getTarget(this.itemSelector, this.el); |
if(item){ |
this.fireEvent("dblclick", this, this.indexOf(item), item, e); |
} |
}, |
onMouseOver : function(e){ |
var item = e.getTarget(this.itemSelector, this.el); |
if(item && item !== this.lastItem){ |
this.lastItem = item; |
Ext.fly(item).addClass(this.overClass); |
} |
}, |
onMouseOut : function(e){ |
if(this.lastItem){ |
if(!e.within(this.lastItem, true)){ |
Ext.fly(this.lastItem).removeClass(this.overClass); |
delete this.lastItem; |
} |
} |
}, |
onItemClick : function(item, index, e){ |
if(this.fireEvent("beforeclick", this, index, item, e) === false){ |
return false; |
} |
if(this.multiSelect){ |
this.doMultiSelection(item, index, e); |
e.preventDefault(); |
}else if(this.singleSelect){ |
this.doSingleSelection(item, index, e); |
e.preventDefault(); |
} |
return true; |
}, |
doSingleSelection : function(item, index, e){ |
if(e.ctrlKey && this.isSelected(index)){ |
this.deselect(index); |
}else{ |
this.select(index, false); |
} |
}, |
doMultiSelection : function(item, index, e){ |
if(e.shiftKey && this.last !== false){ |
var last = this.last; |
this.selectRange(last, index, e.ctrlKey); |
this.last = last; |
}else{ |
if((e.ctrlKey||this.simpleSelect) && this.isSelected(index)){ |
this.deselect(index); |
}else{ |
this.select(index, e.ctrlKey || e.shiftKey || this.simpleSelect); |
} |
} |
}, |
getSelectionCount : function(){ |
return this.selected.getCount() |
}, |
getSelectedNodes : function(){ |
return this.selected.elements; |
}, |
getSelectedIndexes : function(){ |
var indexes = [], s = this.selected.elements; |
for(var i = 0, len = s.length; i < len; i++){ |
indexes.push(s[i].viewIndex); |
} |
return indexes; |
}, |
getSelectedRecords : function(){ |
var r = [], s = this.selected.elements; |
for(var i = 0, len = s.length; i < len; i++){ |
r[r.length] = this.store.getAt(s[i].viewIndex); |
} |
return r; |
}, |
getRecords : function(nodes){ |
var r = [], s = nodes; |
for(var i = 0, len = s.length; i < len; i++){ |
r[r.length] = this.store.getAt(s[i].viewIndex); |
} |
return r; |
}, |
getRecord : function(node){ |
return this.store.getAt(node.viewIndex); |
}, |
clearSelections : function(suppressEvent, skipUpdate){ |
if(this.multiSelect || this.singleSelect){ |
if(!skipUpdate){ |
this.selected.removeClass(this.selectedClass); |
} |
this.selected.clear(); |
this.last = false; |
if(!suppressEvent){ |
this.fireEvent("selectionchange", this, this.selected.elements); |
} |
} |
}, |
isSelected : function(node){ |
return this.selected.contains(this.getNode(node)); |
}, |
deselect : function(node){ |
if(this.isSelected(node)){ |
var node = this.getNode(node); |
this.selected.removeElement(node); |
if(this.last == node.viewIndex){ |
this.last = false; |
} |
Ext.fly(node).removeClass(this.selectedClass); |
this.fireEvent("selectionchange", this, this.selected.elements); |
} |
}, |
select : function(nodeInfo, keepExisting, suppressEvent){ |
if(Ext.isArray(nodeInfo)){ |
if(!keepExisting){ |
this.clearSelections(true); |
} |
for(var i = 0, len = nodeInfo.length; i < len; i++){ |
this.select(nodeInfo[i], true, true); |
} |
} else{ |
var node = this.getNode(nodeInfo); |
if(!keepExisting){ |
this.clearSelections(true); |
} |
if(node && !this.isSelected(node)){ |
if(this.fireEvent("beforeselect", this, node, this.selected.elements) !== false){ |
Ext.fly(node).addClass(this.selectedClass); |
this.selected.add(node); |
this.last = node.viewIndex; |
if(!suppressEvent){ |
this.fireEvent("selectionchange", this, this.selected.elements); |
} |
} |
} |
} |
}, |
selectRange : function(start, end, keepExisting){ |
if(!keepExisting){ |
this.clearSelections(true); |
} |
this.select(this.getNodes(start, end), true); |
}, |
getNode : function(nodeInfo){ |
if(typeof nodeInfo == "string"){ |
return document.getElementById(nodeInfo); |
}else if(typeof nodeInfo == "number"){ |
return this.all.elements[nodeInfo]; |
} |
return nodeInfo; |
}, |
getNodes : function(start, end){ |
var ns = this.all.elements; |
start = start || 0; |
end = typeof end == "undefined" ? ns.length - 1 : end; |
var nodes = [], i; |
if(start <= end){ |
for(i = start; i <= end; i++){ |
nodes.push(ns[i]); |
} |
} else{ |
for(i = start; i >= end; i--){ |
nodes.push(ns[i]); |
} |
} |
return nodes; |
}, |
indexOf : function(node){ |
node = this.getNode(node); |
if(typeof node.viewIndex == "number"){ |
return node.viewIndex; |
} |
return this.all.indexOf(node); |
}, |
onBeforeLoad : function(){ |
if(this.loadingText){ |
this.clearSelections(false, true); |
this.el.update('<div class="loading-indicator">'+this.loadingText+'</div>'); |
this.all.clear(); |
} |
} |
}); |
Ext.reg('dataview', Ext.DataView); |
Ext.ColorPalette = function(config){ |
Ext.ColorPalette.superclass.constructor.call(this, config); |
this.addEvents( |
'select' |
); |
if(this.handler){ |
this.on("select", this.handler, this.scope, true); |
} |
}; |
Ext.extend(Ext.ColorPalette, Ext.Component, { |
itemCls : "x-color-palette", |
value : null, |
clickEvent:'click', |
ctype: "Ext.ColorPalette", |
allowReselect : false, |
colors : [ |
"000000", "993300", "333300", "003300", "003366", "000080", "333399", "333333", |
"800000", "FF6600", "808000", "008000", "008080", "0000FF", "666699", "808080", |
"FF0000", "FF9900", "99CC00", "339966", "33CCCC", "3366FF", "800080", "969696", |
"FF00FF", "FFCC00", "FFFF00", "00FF00", "00FFFF", "00CCFF", "993366", "C0C0C0", |
"FF99CC", "FFCC99", "FFFF99", "CCFFCC", "CCFFFF", "99CCFF", "CC99FF", "FFFFFF" |
], |
onRender : function(container, position){ |
var t = this.tpl || new Ext.XTemplate( |
'<tpl for="."><a href="#" class="color-{.}" hidefocus="on"><em><span style="background:#{.}" unselectable="on"> </span></em></a></tpl>' |
); |
var el = document.createElement("div"); |
el.className = this.itemCls; |
t.overwrite(el, this.colors); |
container.dom.insertBefore(el, position); |
this.el = Ext.get(el); |
this.el.on(this.clickEvent, this.handleClick, this, {delegate: "a"}); |
if(this.clickEvent != 'click'){ |
this.el.on('click', Ext.emptyFn, this, {delegate: "a", preventDefault:true}); |
} |
}, |
afterRender : function(){ |
Ext.ColorPalette.superclass.afterRender.call(this); |
if(this.value){ |
var s = this.value; |
this.value = null; |
this.select(s); |
} |
}, |
handleClick : function(e, t){ |
e.preventDefault(); |
if(!this.disabled){ |
var c = t.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1]; |
this.select(c.toUpperCase()); |
} |
}, |
select : function(color){ |
color = color.replace("#", ""); |
if(color != this.value || this.allowReselect){ |
var el = this.el; |
if(this.value){ |
el.child("a.color-"+this.value).removeClass("x-color-palette-sel"); |
} |
el.child("a.color-"+color).addClass("x-color-palette-sel"); |
this.value = color; |
this.fireEvent("select", this, color); |
} |
} |
}); |
Ext.reg('colorpalette', Ext.ColorPalette); |
Ext.DatePicker = Ext.extend(Ext.Component, { |
todayText : "Today", |
okText : " OK ", |
cancelText : "Cancel", |
todayTip : "{0} (Spacebar)", |
minDate : null, |
maxDate : null, |
minText : "This date is before the minimum date", |
maxText : "This date is after the maximum date", |
format : "m/d/y", |
disabledDays : null, |
disabledDaysText : "", |
disabledDatesRE : null, |
disabledDatesText : "", |
constrainToViewport : true, |
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)', |
startDay : 0, |
initComponent : function(){ |
Ext.DatePicker.superclass.initComponent.call(this); |
this.value = this.value ? |
this.value.clearTime() : new Date().clearTime(); |
this.addEvents( |
'select' |
); |
if(this.handler){ |
this.on("select", this.handler, this.scope || this); |
} |
this.initDisabledDays(); |
}, |
initDisabledDays : function(){ |
if(!this.disabledDatesRE && this.disabledDates){ |
var dd = this.disabledDates; |
var re = "(?:"; |
for(var i = 0; i < dd.length; i++){ |
re += dd[i]; |
if(i != dd.length-1) re += "|"; |
} |
this.disabledDatesRE = new RegExp(re + ")"); |
} |
}, |
setValue : function(value){ |
var old = this.value; |
this.value = value.clearTime(true); |
if(this.el){ |
this.update(this.value); |
} |
}, |
getValue : function(){ |
return this.value; |
}, |
focus : function(){ |
if(this.el){ |
this.update(this.activeDate); |
} |
}, |
onRender : function(container, position){ |
var m = [ |
'<table cellspacing="0">', |
'<tr><td class="x-date-left"><a href="#" title="', this.prevText ,'"> </a></td><td class="x-date-middle" align="center"></td><td class="x-date-right"><a href="#" title="', this.nextText ,'"> </a></td></tr>', |
'<tr><td colspan="3"><table class="x-date-inner" cellspacing="0"><thead><tr>']; |
var dn = this.dayNames; |
for(var i = 0; i < 7; i++){ |
var d = this.startDay+i; |
if(d > 6){ |
d = d-7; |
} |
m.push("<th><span>", dn[d].substr(0,1), "</span></th>"); |
} |
m[m.length] = "</tr></thead><tbody><tr>"; |
for(var i = 0; i < 42; i++) { |
if(i % 7 == 0 && i != 0){ |
m[m.length] = "</tr><tr>"; |
} |
m[m.length] = '<td><a href="#" hidefocus="on" class="x-date-date" tabIndex="1"><em><span></span></em></a></td>'; |
} |
m[m.length] = '</tr></tbody></table></td></tr><tr><td colspan="3" class="x-date-bottom" align="center"></td></tr></table><div class="x-date-mp"></div>'; |
var el = document.createElement("div"); |
el.className = "x-date-picker"; |
el.innerHTML = m.join(""); |
container.dom.insertBefore(el, position); |
this.el = Ext.get(el); |
this.eventEl = Ext.get(el.firstChild); |
new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"), { |
handler: this.showPrevMonth, |
scope: this, |
preventDefault:true, |
stopDefault:true |
}); |
new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"), { |
handler: this.showNextMonth, |
scope: this, |
preventDefault:true, |
stopDefault:true |
}); |
this.eventEl.on("mousewheel", this.handleMouseWheel, this); |
this.monthPicker = this.el.down('div.x-date-mp'); |
this.monthPicker.enableDisplayMode('block'); |
var kn = new Ext.KeyNav(this.eventEl, { |
"left" : function(e){ |
e.ctrlKey ? |
this.showPrevMonth() : |
this.update(this.activeDate.add("d", -1)); |
}, |
"right" : function(e){ |
e.ctrlKey ? |
this.showNextMonth() : |
this.update(this.activeDate.add("d", 1)); |
}, |
"up" : function(e){ |
e.ctrlKey ? |
this.showNextYear() : |
this.update(this.activeDate.add("d", -7)); |
}, |
"down" : function(e){ |
e.ctrlKey ? |
this.showPrevYear() : |
this.update(this.activeDate.add("d", 7)); |
}, |
"pageUp" : function(e){ |
this.showNextMonth(); |
}, |
"pageDown" : function(e){ |
this.showPrevMonth(); |
}, |
"enter" : function(e){ |
e.stopPropagation(); |
return true; |
}, |
scope : this |
}); |
this.eventEl.on("click", this.handleDateClick, this, {delegate: "a.x-date-date"}); |
this.eventEl.addKeyListener(Ext.EventObject.SPACE, this.selectToday, this); |
this.el.unselectable(); |
this.cells = this.el.select("table.x-date-inner tbody td"); |
this.textNodes = this.el.query("table.x-date-inner tbody span"); |
this.mbtn = new Ext.Button({ |
text: " ", |
tooltip: this.monthYearText, |
renderTo: this.el.child("td.x-date-middle", true) |
}); |
this.mbtn.on('click', this.showMonthPicker, this); |
this.mbtn.el.child(this.mbtn.menuClassTarget).addClass("x-btn-with-menu"); |
var today = (new Date()).dateFormat(this.format); |
this.todayBtn = new Ext.Button({ |
renderTo: this.el.child("td.x-date-bottom", true), |
text: String.format(this.todayText, today), |
tooltip: String.format(this.todayTip, today), |
handler: this.selectToday, |
scope: this |
}); |
if(Ext.isIE){ |
this.el.repaint(); |
} |
this.update(this.value); |
}, |
createMonthPicker : function(){ |
if(!this.monthPicker.dom.firstChild){ |
var buf = ['<table border="0" cellspacing="0">']; |
for(var i = 0; i < 6; i++){ |
buf.push( |
'<tr><td class="x-date-mp-month"><a href="#">', this.monthNames[i].substr(0, 3), '</a></td>', |
'<td class="x-date-mp-month x-date-mp-sep"><a href="#">', this.monthNames[i+6].substr(0, 3), '</a></td>', |
i == 0 ? |
'<td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-prev"></a></td><td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-next"></a></td></tr>' : |
'<td class="x-date-mp-year"><a href="#"></a></td><td class="x-date-mp-year"><a href="#"></a></td></tr>' |
); |
} |
buf.push( |
'<tr class="x-date-mp-btns"><td colspan="4"><button type="button" class="x-date-mp-ok">', |
this.okText, |
'</button><button type="button" class="x-date-mp-cancel">', |
this.cancelText, |
'</button></td></tr>', |
'</table>' |
); |
this.monthPicker.update(buf.join('')); |
this.monthPicker.on('click', this.onMonthClick, this); |
this.monthPicker.on('dblclick', this.onMonthDblClick, this); |
this.mpMonths = this.monthPicker.select('td.x-date-mp-month'); |
this.mpYears = this.monthPicker.select('td.x-date-mp-year'); |
this.mpMonths.each(function(m, a, i){ |
i += 1; |
if((i%2) == 0){ |
m.dom.xmonth = 5 + Math.round(i * .5); |
}else{ |
m.dom.xmonth = Math.round((i-1) * .5); |
} |
}); |
} |
}, |
showMonthPicker : function(){ |
this.createMonthPicker(); |
var size = this.el.getSize(); |
this.monthPicker.setSize(size); |
this.monthPicker.child('table').setSize(size); |
this.mpSelMonth = (this.activeDate || this.value).getMonth(); |
this.updateMPMonth(this.mpSelMonth); |
this.mpSelYear = (this.activeDate || this.value).getFullYear(); |
this.updateMPYear(this.mpSelYear); |
this.monthPicker.slideIn('t', {duration:.2}); |
}, |
updateMPYear : function(y){ |
this.mpyear = y; |
var ys = this.mpYears.elements; |
for(var i = 1; i <= 10; i++){ |
var td = ys[i-1], y2; |
if((i%2) == 0){ |
y2 = y + Math.round(i * .5); |
td.firstChild.innerHTML = y2; |
td.xyear = y2; |
}else{ |
y2 = y - (5-Math.round(i * .5)); |
td.firstChild.innerHTML = y2; |
td.xyear = y2; |
} |
this.mpYears.item(i-1)[y2 == this.mpSelYear ? 'addClass' : 'removeClass']('x-date-mp-sel'); |
} |
}, |
updateMPMonth : function(sm){ |
this.mpMonths.each(function(m, a, i){ |
m[m.dom.xmonth == sm ? 'addClass' : 'removeClass']('x-date-mp-sel'); |
}); |
}, |
selectMPMonth: function(m){ |
}, |
onMonthClick : function(e, t){ |
e.stopEvent(); |
var el = new Ext.Element(t), pn; |
if(el.is('button.x-date-mp-cancel')){ |
this.hideMonthPicker(); |
} |
else if(el.is('button.x-date-mp-ok')){ |
this.update(new Date(this.mpSelYear, this.mpSelMonth, (this.activeDate || this.value).getDate())); |
this.hideMonthPicker(); |
} |
else if(pn = el.up('td.x-date-mp-month', 2)){ |
this.mpMonths.removeClass('x-date-mp-sel'); |
pn.addClass('x-date-mp-sel'); |
this.mpSelMonth = pn.dom.xmonth; |
} |
else if(pn = el.up('td.x-date-mp-year', 2)){ |
this.mpYears.removeClass('x-date-mp-sel'); |
pn.addClass('x-date-mp-sel'); |
this.mpSelYear = pn.dom.xyear; |
} |
else if(el.is('a.x-date-mp-prev')){ |
this.updateMPYear(this.mpyear-10); |
} |
else if(el.is('a.x-date-mp-next')){ |
this.updateMPYear(this.mpyear+10); |
} |
}, |
onMonthDblClick : function(e, t){ |
e.stopEvent(); |
var el = new Ext.Element(t), pn; |
if(pn = el.up('td.x-date-mp-month', 2)){ |
this.update(new Date(this.mpSelYear, pn.dom.xmonth, (this.activeDate || this.value).getDate())); |
this.hideMonthPicker(); |
} |
else if(pn = el.up('td.x-date-mp-year', 2)){ |
this.update(new Date(pn.dom.xyear, this.mpSelMonth, (this.activeDate || this.value).getDate())); |
this.hideMonthPicker(); |
} |
}, |
hideMonthPicker : function(disableAnim){ |
if(this.monthPicker){ |
if(disableAnim === true){ |
this.monthPicker.hide(); |
}else{ |
this.monthPicker.slideOut('t', {duration:.2}); |
} |
} |
}, |
showPrevMonth : function(e){ |
this.update(this.activeDate.add("mo", -1)); |
}, |
showNextMonth : function(e){ |
this.update(this.activeDate.add("mo", 1)); |
}, |
showPrevYear : function(){ |
this.update(this.activeDate.add("y", -1)); |
}, |
showNextYear : function(){ |
this.update(this.activeDate.add("y", 1)); |
}, |
handleMouseWheel : function(e){ |
var delta = e.getWheelDelta(); |
if(delta > 0){ |
this.showPrevMonth(); |
e.stopEvent(); |
} else if(delta < 0){ |
this.showNextMonth(); |
e.stopEvent(); |
} |
}, |
handleDateClick : function(e, t){ |
e.stopEvent(); |
if(t.dateValue && !Ext.fly(t.parentNode).hasClass("x-date-disabled")){ |
this.setValue(new Date(t.dateValue)); |
this.fireEvent("select", this, this.value); |
} |
}, |
selectToday : function(){ |
this.setValue(new Date().clearTime()); |
this.fireEvent("select", this, this.value); |
}, |
update : function(date){ |
var vd = this.activeDate; |
this.activeDate = date; |
if(vd && this.el){ |
var t = date.getTime(); |
if(vd.getMonth() == date.getMonth() && vd.getFullYear() == date.getFullYear()){ |
this.cells.removeClass("x-date-selected"); |
this.cells.each(function(c){ |
if(c.dom.firstChild.dateValue == t){ |
c.addClass("x-date-selected"); |
setTimeout(function(){ |
try{c.dom.firstChild.focus();}catch(e){} |
}, 50); |
return false; |
} |
}); |
return; |
} |
} |
var days = date.getDaysInMonth(); |
var firstOfMonth = date.getFirstDateOfMonth(); |
var startingPos = firstOfMonth.getDay()-this.startDay; |
if(startingPos <= this.startDay){ |
startingPos += 7; |
} |
var pm = date.add("mo", -1); |
var prevStart = pm.getDaysInMonth()-startingPos; |
var cells = this.cells.elements; |
var textEls = this.textNodes; |
days += startingPos; |
var day = 86400000; |
var d = (new Date(pm.getFullYear(), pm.getMonth(), prevStart)).clearTime(); |
var today = new Date().clearTime().getTime(); |
var sel = date.clearTime().getTime(); |
var min = this.minDate ? this.minDate.clearTime() : Number.NEGATIVE_INFINITY; |
var max = this.maxDate ? this.maxDate.clearTime() : Number.POSITIVE_INFINITY; |
var ddMatch = this.disabledDatesRE; |
var ddText = this.disabledDatesText; |
var ddays = this.disabledDays ? this.disabledDays.join("") : false; |
var ddaysText = this.disabledDaysText; |
var format = this.format; |
var setCellClass = function(cal, cell){ |
cell.title = ""; |
var t = d.getTime(); |
cell.firstChild.dateValue = t; |
if(t == today){ |
cell.className += " x-date-today"; |
cell.title = cal.todayText; |
} |
if(t == sel){ |
cell.className += " x-date-selected"; |
setTimeout(function(){ |
try{cell.firstChild.focus();}catch(e){} |
}, 50); |
} |
if(t < min) { |
cell.className = " x-date-disabled"; |
cell.title = cal.minText; |
return; |
} |
if(t > max) { |
cell.className = " x-date-disabled"; |
cell.title = cal.maxText; |
return; |
} |
if(ddays){ |
if(ddays.indexOf(d.getDay()) != -1){ |
cell.title = ddaysText; |
cell.className = " x-date-disabled"; |
} |
} |
if(ddMatch && format){ |
var fvalue = d.dateFormat(format); |
if(ddMatch.test(fvalue)){ |
cell.title = ddText.replace("%0", fvalue); |
cell.className = " x-date-disabled"; |
} |
} |
}; |
var i = 0; |
for(; i < startingPos; i++) { |
textEls[i].innerHTML = (++prevStart); |
d.setDate(d.getDate()+1); |
cells[i].className = "x-date-prevday"; |
setCellClass(this, cells[i]); |
} |
for(; i < days; i++){ |
intDay = i - startingPos + 1; |
textEls[i].innerHTML = (intDay); |
d.setDate(d.getDate()+1); |
cells[i].className = "x-date-active"; |
setCellClass(this, cells[i]); |
} |
var extraDays = 0; |
for(; i < 42; i++) { |
textEls[i].innerHTML = (++extraDays); |
d.setDate(d.getDate()+1); |
cells[i].className = "x-date-nextday"; |
setCellClass(this, cells[i]); |
} |
this.mbtn.setText(this.monthNames[date.getMonth()] + " " + date.getFullYear()); |
if(!this.internalRender){ |
var main = this.el.dom.firstChild; |
var w = main.offsetWidth; |
this.el.setWidth(w + this.el.getBorderWidth("lr")); |
Ext.fly(main).setWidth(w); |
this.internalRender = true; |
if(Ext.isOpera && !this.secondPass){ |
main.rows[0].cells[1].style.width = (w - (main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth)) + "px"; |
this.secondPass = true; |
this.update.defer(10, this, [date]); |
} |
} |
}, |
beforeDestroy : function() { |
this.mbtn.destroy(); |
this.todayBtn.destroy(); |
} |
}); |
Ext.reg('datepicker', Ext.DatePicker); |
Ext.TabPanel = Ext.extend(Ext.Panel, { |
monitorResize : true, |
deferredRender : true, |
tabWidth: 120, |
minTabWidth: 30, |
resizeTabs:false, |
enableTabScroll: false, |
scrollIncrement : 0, |
scrollRepeatInterval : 400, |
scrollDuration : .35, |
animScroll : true, |
tabPosition: 'top', |
baseCls: 'x-tab-panel', |
autoTabs : false, |
autoTabSelector:'div.x-tab', |
activeTab : null, |
tabMargin : 2, |
plain: false, |
wheelIncrement : 20, |
idDelimiter : '__', |
itemCls : 'x-tab-item', |
elements: 'body', |
headerAsText: false, |
frame: false, |
hideBorders:true, |
initComponent : function(){ |
this.frame = false; |
Ext.TabPanel.superclass.initComponent.call(this); |
this.addEvents( |
'beforetabchange', |
'tabchange', |
'contextmenu' |
); |
this.setLayout(new Ext.layout.CardLayout({ |
deferredRender: this.deferredRender |
})); |
if(this.tabPosition == 'top'){ |
this.elements += ',header'; |
this.stripTarget = 'header'; |
}else { |
this.elements += ',footer'; |
this.stripTarget = 'footer'; |
} |
if(!this.stack){ |
this.stack = Ext.TabPanel.AccessStack(); |
} |
this.initItems(); |
}, |
render : function(){ |
Ext.TabPanel.superclass.render.apply(this, arguments); |
if(this.activeTab !== undefined){ |
var item = this.activeTab; |
delete this.activeTab; |
this.setActiveTab(item); |
} |
}, |
onRender : function(ct, position){ |
Ext.TabPanel.superclass.onRender.call(this, ct, position); |
if(this.plain){ |
var pos = this.tabPosition == 'top' ? 'header' : 'footer'; |
this[pos].addClass('x-tab-panel-'+pos+'-plain'); |
} |
var st = this[this.stripTarget]; |
this.stripWrap = st.createChild({cls:'x-tab-strip-wrap', cn:{ |
tag:'ul', cls:'x-tab-strip x-tab-strip-'+this.tabPosition}}); |
this.stripSpacer = st.createChild({cls:'x-tab-strip-spacer'}); |
this.strip = new Ext.Element(this.stripWrap.dom.firstChild); |
this.edge = this.strip.createChild({tag:'li', cls:'x-tab-edge'}); |
this.strip.createChild({cls:'x-clear'}); |
this.body.addClass('x-tab-panel-body-'+this.tabPosition); |
if(!this.itemTpl){ |
var tt = new Ext.Template( |
'<li class="{cls}" id="{id}"><a class="x-tab-strip-close" onclick="return false;"></a>', |
'<a class="x-tab-right" href="#" onclick="return false;"><em class="x-tab-left">', |
'<span class="x-tab-strip-inner"><span class="x-tab-strip-text {iconCls}">{text}</span></span>', |
'</em></a></li>' |
); |
tt.disableFormats = true; |
tt.compile(); |
Ext.TabPanel.prototype.itemTpl = tt; |
} |
this.items.each(this.initTab, this); |
}, |
afterRender : function(){ |
Ext.TabPanel.superclass.afterRender.call(this); |
if(this.autoTabs){ |
this.readTabs(false); |
} |
}, |
initEvents : function(){ |
Ext.TabPanel.superclass.initEvents.call(this); |
this.on('add', this.onAdd, this); |
this.on('remove', this.onRemove, this); |
this.strip.on('mousedown', this.onStripMouseDown, this); |
this.strip.on('click', this.onStripClick, this); |
this.strip.on('contextmenu', this.onStripContextMenu, this); |
if(this.enableTabScroll){ |
this.strip.on('mousewheel', this.onWheel, this); |
} |
}, |
findTargets : function(e){ |
var item = null; |
var itemEl = e.getTarget('li', this.strip); |
if(itemEl){ |
item = this.getComponent(itemEl.id.split(this.idDelimiter)[1]); |
if(item.disabled){ |
return { |
close : null, |
item : null, |
el : null |
}; |
} |
} |
return { |
close : e.getTarget('.x-tab-strip-close', this.strip), |
item : item, |
el : itemEl |
}; |
}, |
onStripMouseDown : function(e){ |
e.preventDefault(); |
if(e.button != 0){ |
return; |
} |
var t = this.findTargets(e); |
if(t.close){ |
this.remove(t.item); |
return; |
} |
if(t.item && t.item != this.activeTab){ |
this.setActiveTab(t.item); |
} |
}, |
onStripClick : function(e){ |
var t = this.findTargets(e); |
if(!t.close && t.item && t.item != this.activeTab){ |
this.setActiveTab(t.item); |
} |
}, |
onStripContextMenu : function(e){ |
e.preventDefault(); |
var t = this.findTargets(e); |
if(t.item){ |
this.fireEvent('contextmenu', this, t.item, e); |
} |
}, |
readTabs : function(removeExisting){ |
if(removeExisting === true){ |
this.items.each(function(item){ |
this.remove(item); |
}, this); |
} |
var tabs = this.el.query(this.autoTabSelector); |
for(var i = 0, len = tabs.length; i < len; i++){ |
var tab = tabs[i]; |
var title = tab.getAttribute('title'); |
tab.removeAttribute('title'); |
this.add({ |
title: title, |
el: tab |
}); |
} |
}, |
initTab : function(item, index){ |
var before = this.strip.dom.childNodes[index]; |
var cls = item.closable ? 'x-tab-strip-closable' : ''; |
if(item.disabled){ |
cls += ' x-item-disabled'; |
} |
if(item.iconCls){ |
cls += ' x-tab-with-icon'; |
} |
if(item.tabCls){ |
cls += ' ' + item.tabCls; |
} |
var p = { |
id: this.id + this.idDelimiter + item.getItemId(), |
text: item.title, |
cls: cls, |
iconCls: item.iconCls || '' |
}; |
var el = before ? |
this.itemTpl.insertBefore(before, p) : |
this.itemTpl.append(this.strip, p); |
Ext.fly(el).addClassOnOver('x-tab-strip-over'); |
if(item.tabTip){ |
Ext.fly(el).child('span.x-tab-strip-text', true).qtip = item.tabTip; |
} |
item.on('disable', this.onItemDisabled, this); |
item.on('enable', this.onItemEnabled, this); |
item.on('titlechange', this.onItemTitleChanged, this); |
item.on('beforeshow', this.onBeforeShowItem, this); |
}, |
onAdd : function(tp, item, index){ |
this.initTab(item, index); |
if(this.items.getCount() == 1){ |
this.syncSize(); |
} |
this.delegateUpdates(); |
}, |
onBeforeAdd : function(item){ |
var existing = item.events ? (this.items.containsKey(item.getItemId()) ? item : null) : this.items.get(item); |
if(existing){ |
this.setActiveTab(item); |
return false; |
} |
Ext.TabPanel.superclass.onBeforeAdd.apply(this, arguments); |
var es = item.elements; |
item.elements = es ? es.replace(',header', '') : es; |
item.border = (item.border === true); |
}, |
onRemove : function(tp, item){ |
Ext.removeNode(this.getTabEl(item)); |
this.stack.remove(item); |
if(item == this.activeTab){ |
var next = this.stack.next(); |
if(next){ |
this.setActiveTab(next); |
}else{ |
this.setActiveTab(0); |
} |
} |
this.delegateUpdates(); |
}, |
onBeforeShowItem : function(item){ |
if(item != this.activeTab){ |
this.setActiveTab(item); |
return false; |
} |
}, |
onItemDisabled : function(item){ |
var el = this.getTabEl(item); |
if(el){ |
Ext.fly(el).addClass('x-item-disabled'); |
} |
this.stack.remove(item); |
}, |
onItemEnabled : function(item){ |
var el = this.getTabEl(item); |
if(el){ |
Ext.fly(el).removeClass('x-item-disabled'); |
} |
}, |
onItemTitleChanged : function(item){ |
var el = this.getTabEl(item); |
if(el){ |
Ext.fly(el).child('span.x-tab-strip-text', true).innerHTML = item.title; |
} |
}, |
getTabEl : function(item){ |
var itemId = (typeof item === 'number')?this.items.items[item].getItemId() : item.getItemId(); |
return document.getElementById(this.id+this.idDelimiter+itemId); |
}, |
onResize : function(){ |
Ext.TabPanel.superclass.onResize.apply(this, arguments); |
this.delegateUpdates(); |
}, |
beginUpdate : function(){ |
this.suspendUpdates = true; |
}, |
endUpdate : function(){ |
this.suspendUpdates = false; |
this.delegateUpdates(); |
}, |
hideTabStripItem : function(item){ |
item = this.getComponent(item); |
var el = this.getTabEl(item); |
if(el){ |
el.style.display = 'none'; |
this.delegateUpdates(); |
} |
}, |
unhideTabStripItem : function(item){ |
item = this.getComponent(item); |
var el = this.getTabEl(item); |
if(el){ |
el.style.display = ''; |
this.delegateUpdates(); |
} |
}, |
delegateUpdates : function(){ |
if(this.suspendUpdates){ |
return; |
} |
if(this.resizeTabs && this.rendered){ |
this.autoSizeTabs(); |
} |
if(this.enableTabScroll && this.rendered){ |
this.autoScrollTabs(); |
} |
}, |
autoSizeTabs : function(){ |
var count = this.items.length; |
var ce = this.tabPosition != 'bottom' ? 'header' : 'footer'; |
var ow = this[ce].dom.offsetWidth; |
var aw = this[ce].dom.clientWidth; |
if(!this.resizeTabs || count < 1 || !aw){ return; |
} |
var each = Math.max(Math.min(Math.floor((aw-4) / count) - this.tabMargin, this.tabWidth), this.minTabWidth); this.lastTabWidth = each; |
var lis = this.stripWrap.dom.getElementsByTagName('li'); |
for(var i = 0, len = lis.length-1; i < len; i++) { var li = lis[i]; |
var inner = li.childNodes[1].firstChild.firstChild; |
var tw = li.offsetWidth; |
var iw = inner.offsetWidth; |
inner.style.width = (each - (tw-iw)) + 'px'; |
} |
}, |
adjustBodyWidth : function(w){ |
if(this.header){ |
this.header.setWidth(w); |
} |
if(this.footer){ |
this.footer.setWidth(w); |
} |
return w; |
}, |
setActiveTab : function(item){ |
item = this.getComponent(item); |
if(!item || this.fireEvent('beforetabchange', this, item, this.activeTab) === false){ |
return; |
} |
if(!this.rendered){ |
this.activeTab = item; |
return; |
} |
if(this.activeTab != item){ |
if(this.activeTab){ |
var oldEl = this.getTabEl(this.activeTab); |
if(oldEl){ |
Ext.fly(oldEl).removeClass('x-tab-strip-active'); |
} |
this.activeTab.fireEvent('deactivate', this.activeTab); |
} |
var el = this.getTabEl(item); |
Ext.fly(el).addClass('x-tab-strip-active'); |
this.activeTab = item; |
this.stack.add(item); |
this.layout.setActiveItem(item); |
if(this.layoutOnTabChange && item.doLayout){ |
item.doLayout(); |
} |
if(this.scrolling){ |
this.scrollToTab(item, this.animScroll); |
} |
item.fireEvent('activate', item); |
this.fireEvent('tabchange', this, item); |
} |
}, |
getActiveTab : function(){ |
return this.activeTab || null; |
}, |
getItem : function(item){ |
return this.getComponent(item); |
}, |
autoScrollTabs : function(){ |
var count = this.items.length; |
var ow = this.header.dom.offsetWidth; |
var tw = this.header.dom.clientWidth; |
var wrap = this.stripWrap; |
var wd = wrap.dom; |
var cw = wd.offsetWidth; |
var pos = this.getScrollPos(); |
var l = this.edge.getOffsetsTo(this.stripWrap)[0] + pos; |
if(!this.enableTabScroll || count < 1 || cw < 20){ return; |
} |
if(l <= tw){ |
wd.scrollLeft = 0; |
wrap.setWidth(tw); |
if(this.scrolling){ |
this.scrolling = false; |
this.header.removeClass('x-tab-scrolling'); |
this.scrollLeft.hide(); |
this.scrollRight.hide(); |
if(Ext.isAir){ |
wd.style.marginLeft = ''; |
wd.style.marginRight = ''; |
} |
} |
}else{ |
if(!this.scrolling){ |
this.header.addClass('x-tab-scrolling'); |
if(Ext.isAir){ |
wd.style.marginLeft = '18px'; |
wd.style.marginRight = '18px'; |
} |
} |
tw -= wrap.getMargins('lr'); |
wrap.setWidth(tw > 20 ? tw : 20); |
if(!this.scrolling){ |
if(!this.scrollLeft){ |
this.createScrollers(); |
}else{ |
this.scrollLeft.show(); |
this.scrollRight.show(); |
} |
} |
this.scrolling = true; |
if(pos > (l-tw)){ wd.scrollLeft = l-tw; |
}else{ this.scrollToTab(this.activeTab, false); |
} |
this.updateScrollButtons(); |
} |
}, |
createScrollers : function(){ |
var h = this.stripWrap.dom.offsetHeight; |
var sl = this.header.insertFirst({ |
cls:'x-tab-scroller-left' |
}); |
sl.setHeight(h); |
sl.addClassOnOver('x-tab-scroller-left-over'); |
this.leftRepeater = new Ext.util.ClickRepeater(sl, { |
interval : this.scrollRepeatInterval, |
handler: this.onScrollLeft, |
scope: this |
}); |
this.scrollLeft = sl; |
var sr = this.header.insertFirst({ |
cls:'x-tab-scroller-right' |
}); |
sr.setHeight(h); |
sr.addClassOnOver('x-tab-scroller-right-over'); |
this.rightRepeater = new Ext.util.ClickRepeater(sr, { |
interval : this.scrollRepeatInterval, |
handler: this.onScrollRight, |
scope: this |
}); |
this.scrollRight = sr; |
}, |
getScrollWidth : function(){ |
return this.edge.getOffsetsTo(this.stripWrap)[0] + this.getScrollPos(); |
}, |
getScrollPos : function(){ |
return parseInt(this.stripWrap.dom.scrollLeft, 10) || 0; |
}, |
getScrollArea : function(){ |
return parseInt(this.stripWrap.dom.clientWidth, 10) || 0; |
}, |
getScrollAnim : function(){ |
return {duration:this.scrollDuration, callback: this.updateScrollButtons, scope: this}; |
}, |
getScrollIncrement : function(){ |
return this.scrollIncrement || (this.resizeTabs ? this.lastTabWidth+2 : 100); |
}, |
scrollToTab : function(item, animate){ |
if(!item){ return; } |
var el = this.getTabEl(item); |
var pos = this.getScrollPos(), area = this.getScrollArea(); |
var left = Ext.fly(el).getOffsetsTo(this.stripWrap)[0] + pos; |
var right = left + el.offsetWidth; |
if(left < pos){ |
this.scrollTo(left, animate); |
}else if(right > (pos + area)){ |
this.scrollTo(right - area, animate); |
} |
}, |
scrollTo : function(pos, animate){ |
this.stripWrap.scrollTo('left', pos, animate ? this.getScrollAnim() : false); |
if(!animate){ |
this.updateScrollButtons(); |
} |
}, |
onWheel : function(e){ |
var d = e.getWheelDelta()*this.wheelIncrement*-1; |
e.stopEvent(); |
var pos = this.getScrollPos(); |
var newpos = pos + d; |
var sw = this.getScrollWidth()-this.getScrollArea(); |
var s = Math.max(0, Math.min(sw, newpos)); |
if(s != pos){ |
this.scrollTo(s, false); |
} |
}, |
onScrollRight : function(){ |
var sw = this.getScrollWidth()-this.getScrollArea(); |
var pos = this.getScrollPos(); |
var s = Math.min(sw, pos + this.getScrollIncrement()); |
if(s != pos){ |
this.scrollTo(s, this.animScroll); |
} |
}, |
onScrollLeft : function(){ |
var pos = this.getScrollPos(); |
var s = Math.max(0, pos - this.getScrollIncrement()); |
if(s != pos){ |
this.scrollTo(s, this.animScroll); |
} |
}, |
updateScrollButtons : function(){ |
var pos = this.getScrollPos(); |
this.scrollLeft[pos == 0 ? 'addClass' : 'removeClass']('x-tab-scroller-left-disabled'); |
this.scrollRight[pos >= (this.getScrollWidth()-this.getScrollArea()) ? 'addClass' : 'removeClass']('x-tab-scroller-right-disabled'); |
} |
}); |
Ext.reg('tabpanel', Ext.TabPanel); |
Ext.TabPanel.prototype.activate = Ext.TabPanel.prototype.setActiveTab; |
Ext.TabPanel.AccessStack = function(){ |
var items = []; |
return { |
add : function(item){ |
items.push(item); |
if(items.length > 10){ |
items.shift(); |
} |
}, |
remove : function(item){ |
var s = []; |
for(var i = 0, len = items.length; i < len; i++) { |
if(items[i] != item){ |
s.push(items[i]); |
} |
} |
items = s; |
}, |
next : function(){ |
return items.pop(); |
} |
}; |
}; |
Ext.Button = Ext.extend(Ext.Component, { |
hidden : false, |
disabled : false, |
pressed : false, |
enableToggle: false, |
menuAlign : "tl-bl?", |
type : 'button', |
menuClassTarget: 'tr', |
clickEvent : 'click', |
handleMouseEvents : true, |
tooltipType : 'qtip', |
buttonSelector : "button:first", |
initComponent : function(){ |
Ext.Button.superclass.initComponent.call(this); |
this.addEvents( |
"click", |
"toggle", |
'mouseover', |
'mouseout', |
'menushow', |
'menuhide', |
'menutriggerover', |
'menutriggerout' |
); |
if(this.menu){ |
this.menu = Ext.menu.MenuMgr.get(this.menu); |
} |
if(typeof this.toggleGroup === 'string'){ |
this.enableToggle = true; |
} |
}, |
onRender : function(ct, position){ |
if(!this.template){ |
if(!Ext.Button.buttonTemplate){ |
Ext.Button.buttonTemplate = new Ext.Template( |
'<table border="0" cellpadding="0" cellspacing="0" class="x-btn-wrap"><tbody><tr>', |
'<td class="x-btn-left"><i> </i></td><td class="x-btn-center"><em unselectable="on"><button class="x-btn-text" type="{1}">{0}</button></em></td><td class="x-btn-right"><i> </i></td>', |
"</tr></tbody></table>"); |
} |
this.template = Ext.Button.buttonTemplate; |
} |
var btn, targs = [this.text || ' ', this.type]; |
if(position){ |
btn = this.template.insertBefore(position, targs, true); |
}else{ |
btn = this.template.append(ct, targs, true); |
} |
var btnEl = btn.child(this.buttonSelector); |
btnEl.on('focus', this.onFocus, this); |
btnEl.on('blur', this.onBlur, this); |
this.initButtonEl(btn, btnEl); |
if(this.menu){ |
this.el.child(this.menuClassTarget).addClass("x-btn-with-menu"); |
} |
Ext.ButtonToggleMgr.register(this); |
}, |
initButtonEl : function(btn, btnEl){ |
this.el = btn; |
btn.addClass("x-btn"); |
if(this.icon){ |
btnEl.setStyle('background-image', 'url(' +this.icon +')'); |
} |
if(this.iconCls){ |
btnEl.addClass(this.iconCls); |
if(!this.cls){ |
btn.addClass(this.text ? 'x-btn-text-icon' : 'x-btn-icon'); |
} |
} |
if(this.tabIndex !== undefined){ |
btnEl.dom.tabIndex = this.tabIndex; |
} |
if(this.tooltip){ |
if(typeof this.tooltip == 'object'){ |
Ext.QuickTips.register(Ext.apply({ |
target: btnEl.id |
}, this.tooltip)); |
} else { |
btnEl.dom[this.tooltipType] = this.tooltip; |
} |
} |
if(this.pressed){ |
this.el.addClass("x-btn-pressed"); |
} |
if(this.handleMouseEvents){ |
btn.on("mouseover", this.onMouseOver, this); |
btn.on("mousedown", this.onMouseDown, this); |
} |
if(this.menu){ |
this.menu.on("show", this.onMenuShow, this); |
this.menu.on("hide", this.onMenuHide, this); |
} |
if(this.id){ |
this.el.dom.id = this.el.id = this.id; |
} |
if(this.repeat){ |
var repeater = new Ext.util.ClickRepeater(btn, |
typeof this.repeat == "object" ? this.repeat : {} |
); |
repeater.on("click", this.onClick, this); |
} |
btn.on(this.clickEvent, this.onClick, this); |
}, |
afterRender : function(){ |
Ext.Button.superclass.afterRender.call(this); |
if(Ext.isIE6){ |
this.autoWidth.defer(1, this); |
}else{ |
this.autoWidth(); |
} |
}, |
setIconClass : function(cls){ |
if(this.el){ |
this.el.child(this.buttonSelector).replaceClass(this.iconCls, cls); |
} |
this.iconCls = cls; |
}, |
beforeDestroy: function(){ |
if(this.rendered){ |
var btn = this.el.child(this.buttonSelector); |
if(btn){ |
btn.removeAllListeners(); |
} |
} |
if(this.menu){ |
Ext.destroy(this.menu); |
} |
}, |
onDestroy : function(){ |
if(this.rendered){ |
Ext.ButtonToggleMgr.unregister(this); |
} |
}, |
autoWidth : function(){ |
if(this.el){ |
this.el.setWidth("auto"); |
if(Ext.isIE7 && Ext.isStrict){ |
var ib = this.el.child(this.buttonSelector); |
if(ib && ib.getWidth() > 20){ |
ib.clip(); |
ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr')); |
} |
} |
if(this.minWidth){ |
if(this.el.getWidth() < this.minWidth){ |
this.el.setWidth(this.minWidth); |
} |
} |
} |
}, |
setHandler : function(handler, scope){ |
this.handler = handler; |
this.scope = scope; |
}, |
setText : function(text){ |
this.text = text; |
if(this.el){ |
this.el.child("td.x-btn-center " + this.buttonSelector).update(text); |
} |
this.autoWidth(); |
}, |
getText : function(){ |
return this.text; |
}, |
toggle : function(state){ |
state = state === undefined ? !this.pressed : state; |
if(state != this.pressed){ |
if(state){ |
this.el.addClass("x-btn-pressed"); |
this.pressed = true; |
this.fireEvent("toggle", this, true); |
}else{ |
this.el.removeClass("x-btn-pressed"); |
this.pressed = false; |
this.fireEvent("toggle", this, false); |
} |
if(this.toggleHandler){ |
this.toggleHandler.call(this.scope || this, this, state); |
} |
} |
}, |
focus : function(){ |
this.el.child(this.buttonSelector).focus(); |
}, |
onDisable : function(){ |
if(this.el){ |
if(!Ext.isIE6 || !this.text){ |
this.el.addClass(this.disabledClass); |
} |
this.el.dom.disabled = true; |
} |
this.disabled = true; |
}, |
onEnable : function(){ |
if(this.el){ |
if(!Ext.isIE6 || !this.text){ |
this.el.removeClass(this.disabledClass); |
} |
this.el.dom.disabled = false; |
} |
this.disabled = false; |
}, |
showMenu : function(){ |
if(this.menu){ |
this.menu.show(this.el, this.menuAlign); |
} |
return this; |
}, |
hideMenu : function(){ |
if(this.menu){ |
this.menu.hide(); |
} |
return this; |
}, |
hasVisibleMenu : function(){ |
return this.menu && this.menu.isVisible(); |
}, |
onClick : function(e){ |
if(e){ |
e.preventDefault(); |
} |
if(e.button != 0){ |
return; |
} |
if(!this.disabled){ |
if(this.enableToggle && (this.allowDepress !== false || !this.pressed)){ |
this.toggle(); |
} |
if(this.menu && !this.menu.isVisible() && !this.ignoreNextClick){ |
this.showMenu(); |
} |
this.fireEvent("click", this, e); |
if(this.handler){ |
this.handler.call(this.scope || this, this, e); |
} |
} |
}, |
isMenuTriggerOver : function(e, internal){ |
return this.menu && !internal; |
}, |
isMenuTriggerOut : function(e, internal){ |
return this.menu && !internal; |
}, |
onMouseOver : function(e){ |
if(!this.disabled){ |
var internal = e.within(this.el, true); |
if(!internal){ |
this.el.addClass("x-btn-over"); |
Ext.getDoc().on('mouseover', this.monitorMouseOver, this); |
this.fireEvent('mouseover', this, e); |
} |
if(this.isMenuTriggerOver(e, internal)){ |
this.fireEvent('menutriggerover', this, this.menu, e); |
} |
} |
}, |
monitorMouseOver : function(e){ |
if(e.target != this.el.dom && !e.within(this.el)){ |
Ext.getDoc().un('mouseover', this.monitorMouseOver, this); |
this.onMouseOut(e); |
} |
}, |
onMouseOut : function(e){ |
var internal = e.within(this.el) && e.target != this.el.dom; |
this.el.removeClass("x-btn-over"); |
this.fireEvent('mouseout', this, e); |
if(this.isMenuTriggerOut(e, internal)){ |
this.fireEvent('menutriggerout', this, this.menu, e); |
} |
}, |
onFocus : function(e){ |
if(!this.disabled){ |
this.el.addClass("x-btn-focus"); |
} |
}, |
onBlur : function(e){ |
this.el.removeClass("x-btn-focus"); |
}, |
getClickEl : function(e, isUp){ |
return this.el; |
}, |
onMouseDown : function(e){ |
if(!this.disabled && e.button == 0){ |
this.getClickEl(e).addClass("x-btn-click"); |
Ext.getDoc().on('mouseup', this.onMouseUp, this); |
} |
}, |
onMouseUp : function(e){ |
if(e.button == 0){ |
this.getClickEl(e, true).removeClass("x-btn-click"); |
Ext.getDoc().un('mouseup', this.onMouseUp, this); |
} |
}, |
onMenuShow : function(e){ |
this.ignoreNextClick = 0; |
this.el.addClass("x-btn-menu-active"); |
this.fireEvent('menushow', this, this.menu); |
}, |
onMenuHide : function(e){ |
this.el.removeClass("x-btn-menu-active"); |
this.ignoreNextClick = this.restoreClick.defer(250, this); |
this.fireEvent('menuhide', this, this.menu); |
}, |
restoreClick : function(){ |
this.ignoreNextClick = 0; |
} |
}); |
Ext.reg('button', Ext.Button); |
Ext.ButtonToggleMgr = function(){ |
var groups = {}; |
function toggleGroup(btn, state){ |
if(state){ |
var g = groups[btn.toggleGroup]; |
for(var i = 0, l = g.length; i < l; i++){ |
if(g[i] != btn){ |
g[i].toggle(false); |
} |
} |
} |
} |
return { |
register : function(btn){ |
if(!btn.toggleGroup){ |
return; |
} |
var g = groups[btn.toggleGroup]; |
if(!g){ |
g = groups[btn.toggleGroup] = []; |
} |
g.push(btn); |
btn.on("toggle", toggleGroup); |
}, |
unregister : function(btn){ |
if(!btn.toggleGroup){ |
return; |
} |
var g = groups[btn.toggleGroup]; |
if(g){ |
g.remove(btn); |
btn.un("toggle", toggleGroup); |
} |
} |
}; |
}(); |
Ext.SplitButton = Ext.extend(Ext.Button, { |
arrowSelector : 'button:last', |
initComponent : function(){ |
Ext.SplitButton.superclass.initComponent.call(this); |
this.addEvents("arrowclick"); |
}, |
onRender : function(ct, position){ |
var tpl = new Ext.Template( |
'<table cellspacing="0" class="x-btn-menu-wrap x-btn"><tr><td>', |
'<table cellspacing="0" class="x-btn-wrap x-btn-menu-text-wrap"><tbody>', |
'<tr><td class="x-btn-left"><i> </i></td><td class="x-btn-center"><button class="x-btn-text" type="{1}">{0}</button></td></tr>', |
"</tbody></table></td><td>", |
'<table cellspacing="0" class="x-btn-wrap x-btn-menu-arrow-wrap"><tbody>', |
'<tr><td class="x-btn-center"><button class="x-btn-menu-arrow-el" type="button"> </button></td><td class="x-btn-right"><i> </i></td></tr>', |
"</tbody></table></td></tr></table>" |
); |
var btn, targs = [this.text || ' ', this.type]; |
if(position){ |
btn = tpl.insertBefore(position, targs, true); |
}else{ |
btn = tpl.append(ct, targs, true); |
} |
var btnEl = btn.child(this.buttonSelector); |
this.initButtonEl(btn, btnEl); |
this.arrowBtnTable = btn.child("table:last"); |
if(this.arrowTooltip){ |
btn.child(this.arrowSelector).dom[this.tooltipType] = this.arrowTooltip; |
} |
}, |
autoWidth : function(){ |
if(this.el){ |
var tbl = this.el.child("table:first"); |
var tbl2 = this.el.child("table:last"); |
this.el.setWidth("auto"); |
tbl.setWidth("auto"); |
if(Ext.isIE7 && Ext.isStrict){ |
var ib = this.el.child(this.buttonSelector); |
if(ib && ib.getWidth() > 20){ |
ib.clip(); |
ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr')); |
} |
} |
if(this.minWidth){ |
if((tbl.getWidth()+tbl2.getWidth()) < this.minWidth){ |
tbl.setWidth(this.minWidth-tbl2.getWidth()); |
} |
} |
this.el.setWidth(tbl.getWidth()+tbl2.getWidth()); |
} |
}, |
setArrowHandler : function(handler, scope){ |
this.arrowHandler = handler; |
this.scope = scope; |
}, |
onClick : function(e){ |
e.preventDefault(); |
if(!this.disabled){ |
if(e.getTarget(".x-btn-menu-arrow-wrap")){ |
if(this.menu && !this.menu.isVisible() && !this.ignoreNextClick){ |
this.showMenu(); |
} |
this.fireEvent("arrowclick", this, e); |
if(this.arrowHandler){ |
this.arrowHandler.call(this.scope || this, this, e); |
} |
}else{ |
if(this.enableToggle){ |
this.toggle(); |
} |
this.fireEvent("click", this, e); |
if(this.handler){ |
this.handler.call(this.scope || this, this, e); |
} |
} |
} |
}, |
getClickEl : function(e, isUp){ |
if(!isUp){ |
return (this.lastClickEl = e.getTarget("table", 10, true)); |
} |
return this.lastClickEl; |
}, |
onDisable : function(){ |
if(this.el){ |
if(!Ext.isIE6){ |
this.el.addClass("x-item-disabled"); |
} |
this.el.child(this.buttonSelector).dom.disabled = true; |
this.el.child(this.arrowSelector).dom.disabled = true; |
} |
this.disabled = true; |
}, |
onEnable : function(){ |
if(this.el){ |
if(!Ext.isIE6){ |
this.el.removeClass("x-item-disabled"); |
} |
this.el.child(this.buttonSelector).dom.disabled = false; |
this.el.child(this.arrowSelector).dom.disabled = false; |
} |
this.disabled = false; |
}, |
isMenuTriggerOver : function(e){ |
return this.menu && e.within(this.arrowBtnTable) && !e.within(this.arrowBtnTable, true); |
}, |
isMenuTriggerOut : function(e, internal){ |
return this.menu && !e.within(this.arrowBtnTable); |
}, |
onDestroy : function(){ |
Ext.destroy(this.arrowBtnTable); |
Ext.SplitButton.superclass.onDestroy.call(this); |
} |
}); |
Ext.MenuButton = Ext.SplitButton; |
Ext.reg('splitbutton', Ext.SplitButton); |
Ext.CycleButton = Ext.extend(Ext.SplitButton, { |
getItemText : function(item){ |
if(item && this.showText === true){ |
var text = ''; |
if(this.prependText){ |
text += this.prependText; |
} |
text += item.text; |
return text; |
} |
return undefined; |
}, |
setActiveItem : function(item, suppressEvent){ |
if(typeof item != 'object'){ |
item = this.menu.items.get(item); |
} |
if(item){ |
if(!this.rendered){ |
this.text = this.getItemText(item); |
this.iconCls = item.iconCls; |
}else{ |
var t = this.getItemText(item); |
if(t){ |
this.setText(t); |
} |
this.setIconClass(item.iconCls); |
} |
this.activeItem = item; |
if(!item.checked){ |
item.setChecked(true, true); |
} |
if(this.forceIcon){ |
this.setIconClass(this.forceIcon); |
} |
if(!suppressEvent){ |
this.fireEvent('change', this, item); |
} |
} |
}, |
getActiveItem : function(){ |
return this.activeItem; |
}, |
initComponent : function(){ |
this.addEvents( |
"change" |
); |
if(this.changeHandler){ |
this.on('change', this.changeHandler, this.scope||this); |
delete this.changeHandler; |
} |
this.itemCount = this.items.length; |
this.menu = {cls:'x-cycle-menu', items:[]}; |
var checked; |
for(var i = 0, len = this.itemCount; i < len; i++){ |
var item = this.items[i]; |
item.group = item.group || this.id; |
item.itemIndex = i; |
item.checkHandler = this.checkHandler; |
item.scope = this; |
item.checked = item.checked || false; |
this.menu.items.push(item); |
if(item.checked){ |
checked = item; |
} |
} |
this.setActiveItem(checked, true); |
Ext.CycleButton.superclass.initComponent.call(this); |
this.on('click', this.toggleSelected, this); |
}, |
checkHandler : function(item, pressed){ |
if(pressed){ |
this.setActiveItem(item); |
} |
}, |
toggleSelected : function(){ |
this.menu.render(); |
var nextIdx, checkItem; |
for (var i = 1; i < this.itemCount; i++) { |
nextIdx = (this.activeItem.itemIndex + i) % this.itemCount; |
checkItem = this.menu.items.itemAt(nextIdx); |
if (!checkItem.disabled) { |
checkItem.setChecked(true); |
break; |
} |
} |
} |
}); |
Ext.reg('cycle', Ext.CycleButton); |
Ext.Toolbar = function(config){ |
if(Ext.isArray(config)){ |
config = {buttons:config}; |
} |
Ext.Toolbar.superclass.constructor.call(this, config); |
}; |
(function(){ |
var T = Ext.Toolbar; |
Ext.extend(T, Ext.BoxComponent, { |
trackMenus : true, |
initComponent : function(){ |
T.superclass.initComponent.call(this); |
if(this.items){ |
this.buttons = this.items; |
} |
this.items = new Ext.util.MixedCollection(false, function(o){ |
return o.itemId || o.id || Ext.id(); |
}); |
}, |
autoCreate: { |
cls:'x-toolbar x-small-editor', |
html:'<table cellspacing="0"><tr></tr></table>' |
}, |
onRender : function(ct, position){ |
this.el = ct.createChild(Ext.apply({ id: this.id },this.autoCreate), position); |
this.tr = this.el.child("tr", true); |
}, |
afterRender : function(){ |
T.superclass.afterRender.call(this); |
if(this.buttons){ |
this.add.apply(this, this.buttons); |
delete this.buttons; |
} |
}, |
add : function(){ |
var a = arguments, l = a.length; |
for(var i = 0; i < l; i++){ |
var el = a[i]; |
if(el.isFormField){ |
this.addField(el); |
}else if(el.render){ |
this.addItem(el); |
}else if(typeof el == "string"){ |
if(el == "separator" || el == "-"){ |
this.addSeparator(); |
}else if(el == " "){ |
this.addSpacer(); |
}else if(el == "->"){ |
this.addFill(); |
}else{ |
this.addText(el); |
} |
}else if(el.tagName){ |
this.addElement(el); |
}else if(typeof el == "object"){ |
if(el.xtype){ |
this.addField(Ext.ComponentMgr.create(el, 'button')); |
}else{ |
this.addButton(el); |
} |
} |
} |
}, |
addSeparator : function(){ |
return this.addItem(new T.Separator()); |
}, |
addSpacer : function(){ |
return this.addItem(new T.Spacer()); |
}, |
addFill : function(){ |
return this.addItem(new T.Fill()); |
}, |
addElement : function(el){ |
return this.addItem(new T.Item(el)); |
}, |
addItem : function(item){ |
var td = this.nextBlock(); |
this.initMenuTracking(item); |
item.render(td); |
this.items.add(item); |
return item; |
}, |
addButton : function(config){ |
if(Ext.isArray(config)){ |
var buttons = []; |
for(var i = 0, len = config.length; i < len; i++) { |
buttons.push(this.addButton(config[i])); |
} |
return buttons; |
} |
var b = config; |
if(!(config instanceof T.Button)){ |
b = config.split ? |
new T.SplitButton(config) : |
new T.Button(config); |
} |
var td = this.nextBlock(); |
this.initMenuTracking(b); |
b.render(td); |
this.items.add(b); |
return b; |
}, |
initMenuTracking : function(item){ |
if(this.trackMenus && item.menu){ |
item.on({ |
'menutriggerover' : this.onButtonTriggerOver, |
'menushow' : this.onButtonMenuShow, |
'menuhide' : this.onButtonMenuHide, |
scope: this |
}) |
} |
}, |
addText : function(text){ |
return this.addItem(new T.TextItem(text)); |
}, |
insertButton : function(index, item){ |
if(Ext.isArray(item)){ |
var buttons = []; |
for(var i = 0, len = item.length; i < len; i++) { |
buttons.push(this.insertButton(index + i, item[i])); |
} |
return buttons; |
} |
if (!(item instanceof T.Button)){ |
item = new T.Button(item); |
} |
var td = document.createElement("td"); |
this.tr.insertBefore(td, this.tr.childNodes[index]); |
this.initMenuTracking(item); |
item.render(td); |
this.items.insert(index, item); |
return item; |
}, |
addDom : function(config, returnEl){ |
var td = this.nextBlock(); |
Ext.DomHelper.overwrite(td, config); |
var ti = new T.Item(td.firstChild); |
ti.render(td); |
this.items.add(ti); |
return ti; |
}, |
addField : function(field){ |
var td = this.nextBlock(); |
field.render(td); |
var ti = new T.Item(td.firstChild); |
ti.render(td); |
this.items.add(ti); |
return ti; |
}, |
nextBlock : function(){ |
var td = document.createElement("td"); |
this.tr.appendChild(td); |
return td; |
}, |
onDestroy : function(){ |
Ext.Toolbar.superclass.onDestroy.call(this); |
if(this.rendered){ |
if(this.items){ |
Ext.destroy.apply(Ext, this.items.items); |
} |
Ext.Element.uncache(this.tr); |
} |
}, |
onDisable : function(){ |
this.items.each(function(item){ |
if(item.disable){ |
item.disable(); |
} |
}); |
}, |
onEnable : function(){ |
this.items.each(function(item){ |
if(item.enable){ |
item.enable(); |
} |
}); |
}, |
onButtonTriggerOver : function(btn){ |
if(this.activeMenuBtn && this.activeMenuBtn != btn){ |
this.activeMenuBtn.hideMenu(); |
btn.showMenu(); |
this.activeMenuBtn = btn; |
} |
}, |
onButtonMenuShow : function(btn){ |
this.activeMenuBtn = btn; |
}, |
onButtonMenuHide : function(btn){ |
delete this.activeMenuBtn; |
} |
}); |
Ext.reg('toolbar', Ext.Toolbar); |
T.Item = function(el){ |
this.el = Ext.getDom(el); |
this.id = Ext.id(this.el); |
this.hidden = false; |
}; |
T.Item.prototype = { |
getEl : function(){ |
return this.el; |
}, |
render : function(td){ |
this.td = td; |
td.appendChild(this.el); |
}, |
destroy : function(){ |
if(this.td && this.td.parentNode){ |
this.td.parentNode.removeChild(this.td); |
} |
}, |
show: function(){ |
this.hidden = false; |
this.td.style.display = ""; |
}, |
hide: function(){ |
this.hidden = true; |
this.td.style.display = "none"; |
}, |
setVisible: function(visible){ |
if(visible) { |
this.show(); |
}else{ |
this.hide(); |
} |
}, |
focus : function(){ |
Ext.fly(this.el).focus(); |
}, |
disable : function(){ |
Ext.fly(this.td).addClass("x-item-disabled"); |
this.disabled = true; |
this.el.disabled = true; |
}, |
enable : function(){ |
Ext.fly(this.td).removeClass("x-item-disabled"); |
this.disabled = false; |
this.el.disabled = false; |
} |
}; |
Ext.reg('tbitem', T.Item); |
T.Separator = function(){ |
var s = document.createElement("span"); |
s.className = "ytb-sep"; |
T.Separator.superclass.constructor.call(this, s); |
}; |
Ext.extend(T.Separator, T.Item, { |
enable:Ext.emptyFn, |
disable:Ext.emptyFn, |
focus:Ext.emptyFn |
}); |
Ext.reg('tbseparator', T.Separator); |
T.Spacer = function(){ |
var s = document.createElement("div"); |
s.className = "ytb-spacer"; |
T.Spacer.superclass.constructor.call(this, s); |
}; |
Ext.extend(T.Spacer, T.Item, { |
enable:Ext.emptyFn, |
disable:Ext.emptyFn, |
focus:Ext.emptyFn |
}); |
Ext.reg('tbspacer', T.Spacer); |
T.Fill = Ext.extend(T.Spacer, { |
render : function(td){ |
td.style.width = '100%'; |
T.Fill.superclass.render.call(this, td); |
} |
}); |
Ext.reg('tbfill', T.Fill); |
T.TextItem = function(t){ |
var s = document.createElement("span"); |
s.className = "ytb-text"; |
s.innerHTML = t.text ? t.text : t; |
T.TextItem.superclass.constructor.call(this, s); |
}; |
Ext.extend(T.TextItem, T.Item, { |
enable:Ext.emptyFn, |
disable:Ext.emptyFn, |
focus:Ext.emptyFn |
}); |
Ext.reg('tbtext', T.TextItem); |
T.Button = Ext.extend(Ext.Button, { |
hideParent : true, |
onDestroy : function(){ |
T.Button.superclass.onDestroy.call(this); |
if(this.container){ |
this.container.remove(); |
} |
} |
}); |
Ext.reg('tbbutton', T.Button); |
T.SplitButton = Ext.extend(Ext.SplitButton, { |
hideParent : true, |
onDestroy : function(){ |
T.SplitButton.superclass.onDestroy.call(this); |
if(this.container){ |
this.container.remove(); |
} |
} |
}); |
Ext.reg('tbsplit', T.SplitButton); |
T.MenuButton = T.SplitButton; |
})(); |
Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { |
pageSize: 20, |
displayMsg : 'Displaying {0} - {1} of {2}', |
emptyMsg : 'No data to display', |
beforePageText : "Page", |
afterPageText : "of {0}", |
firstText : "First Page", |
prevText : "Previous Page", |
nextText : "Next Page", |
lastText : "Last Page", |
refreshText : "Refresh", |
paramNames : {start: 'start', limit: 'limit'}, |
initComponent : function(){ |
Ext.PagingToolbar.superclass.initComponent.call(this); |
this.cursor = 0; |
this.bind(this.store); |
}, |
onRender : function(ct, position){ |
Ext.PagingToolbar.superclass.onRender.call(this, ct, position); |
this.first = this.addButton({ |
tooltip: this.firstText, |
iconCls: "x-tbar-page-first", |
disabled: true, |
handler: this.onClick.createDelegate(this, ["first"]) |
}); |
this.prev = this.addButton({ |
tooltip: this.prevText, |
iconCls: "x-tbar-page-prev", |
disabled: true, |
handler: this.onClick.createDelegate(this, ["prev"]) |
}); |
this.addSeparator(); |
this.add(this.beforePageText); |
this.field = Ext.get(this.addDom({ |
tag: "input", |
type: "text", |
size: "3", |
value: "1", |
cls: "x-tbar-page-number" |
}).el); |
this.field.on("keydown", this.onPagingKeydown, this); |
this.field.on("focus", function(){this.dom.select();}); |
this.afterTextEl = this.addText(String.format(this.afterPageText, 1)); |
this.field.setHeight(18); |
this.addSeparator(); |
this.next = this.addButton({ |
tooltip: this.nextText, |
iconCls: "x-tbar-page-next", |
disabled: true, |
handler: this.onClick.createDelegate(this, ["next"]) |
}); |
this.last = this.addButton({ |
tooltip: this.lastText, |
iconCls: "x-tbar-page-last", |
disabled: true, |
handler: this.onClick.createDelegate(this, ["last"]) |
}); |
this.addSeparator(); |
this.loading = this.addButton({ |
tooltip: this.refreshText, |
iconCls: "x-tbar-loading", |
handler: this.onClick.createDelegate(this, ["refresh"]) |
}); |
if(this.displayInfo){ |
this.displayEl = Ext.fly(this.el.dom).createChild({cls:'x-paging-info'}); |
} |
if(this.dsLoaded){ |
this.onLoad.apply(this, this.dsLoaded); |
} |
}, |
updateInfo : function(){ |
if(this.displayEl){ |
var count = this.store.getCount(); |
var msg = count == 0 ? |
this.emptyMsg : |
String.format( |
this.displayMsg, |
this.cursor+1, this.cursor+count, this.store.getTotalCount() |
); |
this.displayEl.update(msg); |
} |
}, |
onLoad : function(store, r, o){ |
if(!this.rendered){ |
this.dsLoaded = [store, r, o]; |
return; |
} |
this.cursor = o.params ? o.params[this.paramNames.start] : 0; |
var d = this.getPageData(), ap = d.activePage, ps = d.pages; |
this.afterTextEl.el.innerHTML = String.format(this.afterPageText, d.pages); |
this.field.dom.value = ap; |
this.first.setDisabled(ap == 1); |
this.prev.setDisabled(ap == 1); |
this.next.setDisabled(ap == ps); |
this.last.setDisabled(ap == ps); |
this.loading.enable(); |
this.updateInfo(); |
}, |
getPageData : function(){ |
var total = this.store.getTotalCount(); |
return { |
total : total, |
activePage : Math.ceil((this.cursor+this.pageSize)/this.pageSize), |
pages : total < this.pageSize ? 1 : Math.ceil(total/this.pageSize) |
}; |
}, |
onLoadError : function(){ |
if(!this.rendered){ |
return; |
} |
this.loading.enable(); |
}, |
readPage : function(d){ |
var v = this.field.dom.value, pageNum; |
if (!v || isNaN(pageNum = parseInt(v, 10))) { |
this.field.dom.value = d.activePage; |
return false; |
} |
return pageNum; |
}, |
onPagingKeydown : function(e){ |
var k = e.getKey(), d = this.getPageData(), pageNum; |
if (k == e.RETURN) { |
e.stopEvent(); |
if(pageNum = this.readPage(d)){ |
pageNum = Math.min(Math.max(1, pageNum), d.pages) - 1; |
this.doLoad(pageNum * this.pageSize); |
} |
}else if (k == e.HOME || k == e.END){ |
e.stopEvent(); |
pageNum = k == e.HOME ? 1 : d.pages; |
this.field.dom.value = pageNum; |
}else if (k == e.UP || k == e.PAGEUP || k == e.DOWN || k == e.PAGEDOWN){ |
e.stopEvent(); |
if(pageNum = this.readPage(d)){ |
var increment = e.shiftKey ? 10 : 1; |
if(k == e.DOWN || k == e.PAGEDOWN){ |
increment *= -1; |
} |
pageNum += increment; |
if(pageNum >= 1 & pageNum <= d.pages){ |
this.field.dom.value = pageNum; |
} |
} |
} |
}, |
beforeLoad : function(){ |
if(this.rendered && this.loading){ |
this.loading.disable(); |
} |
}, |
doLoad : function(start){ |
var o = {}, pn = this.paramNames; |
o[pn.start] = start; |
o[pn.limit] = this.pageSize; |
this.store.load({params:o}); |
}, |
onClick : function(which){ |
var store = this.store; |
switch(which){ |
case "first": |
this.doLoad(0); |
break; |
case "prev": |
this.doLoad(Math.max(0, this.cursor-this.pageSize)); |
break; |
case "next": |
this.doLoad(this.cursor+this.pageSize); |
break; |
case "last": |
var total = store.getTotalCount(); |
var extra = total % this.pageSize; |
var lastStart = extra ? (total - extra) : total-this.pageSize; |
this.doLoad(lastStart); |
break; |
case "refresh": |
this.doLoad(this.cursor); |
break; |
} |
}, |
unbind : function(store){ |
store = Ext.StoreMgr.lookup(store); |
store.un("beforeload", this.beforeLoad, this); |
store.un("load", this.onLoad, this); |
store.un("loadexception", this.onLoadError, this); |
this.store = undefined; |
}, |
bind : function(store){ |
store = Ext.StoreMgr.lookup(store); |
store.on("beforeload", this.beforeLoad, this); |
store.on("load", this.onLoad, this); |
store.on("loadexception", this.onLoadError, this); |
this.store = store; |
} |
}); |
Ext.reg('paging', Ext.PagingToolbar); |
Ext.Resizable = function(el, config){ |
this.el = Ext.get(el); |
if(config && config.wrap){ |
config.resizeChild = this.el; |
this.el = this.el.wrap(typeof config.wrap == "object" ? config.wrap : {cls:"xresizable-wrap"}); |
this.el.id = this.el.dom.id = config.resizeChild.id + "-rzwrap"; |
this.el.setStyle("overflow", "hidden"); |
this.el.setPositioning(config.resizeChild.getPositioning()); |
config.resizeChild.clearPositioning(); |
if(!config.width || !config.height){ |
var csize = config.resizeChild.getSize(); |
this.el.setSize(csize.width, csize.height); |
} |
if(config.pinned && !config.adjustments){ |
config.adjustments = "auto"; |
} |
} |
this.proxy = this.el.createProxy({tag: "div", cls: "x-resizable-proxy", id: this.el.id + "-rzproxy"}); |
this.proxy.unselectable(); |
this.proxy.enableDisplayMode('block'); |
Ext.apply(this, config); |
if(this.pinned){ |
this.disableTrackOver = true; |
this.el.addClass("x-resizable-pinned"); |
} |
var position = this.el.getStyle("position"); |
if(position != "absolute" && position != "fixed"){ |
this.el.setStyle("position", "relative"); |
} |
if(!this.handles){ |
this.handles = 's,e,se'; |
if(this.multiDirectional){ |
this.handles += ',n,w'; |
} |
} |
if(this.handles == "all"){ |
this.handles = "n s e w ne nw se sw"; |
} |
var hs = this.handles.split(/\s*?[,;]\s*?| /); |
var ps = Ext.Resizable.positions; |
for(var i = 0, len = hs.length; i < len; i++){ |
if(hs[i] && ps[hs[i]]){ |
var pos = ps[hs[i]]; |
this[pos] = new Ext.Resizable.Handle(this, pos, this.disableTrackOver, this.transparent); |
} |
} |
this.corner = this.southeast; |
if(this.handles.indexOf("n") != -1 || this.handles.indexOf("w") != -1){ |
this.updateBox = true; |
} |
this.activeHandle = null; |
if(this.resizeChild){ |
if(typeof this.resizeChild == "boolean"){ |
this.resizeChild = Ext.get(this.el.dom.firstChild, true); |
}else{ |
this.resizeChild = Ext.get(this.resizeChild, true); |
} |
} |
if(this.adjustments == "auto"){ |
var rc = this.resizeChild; |
var hw = this.west, he = this.east, hn = this.north, hs = this.south; |
if(rc && (hw || hn)){ |
rc.position("relative"); |
rc.setLeft(hw ? hw.el.getWidth() : 0); |
rc.setTop(hn ? hn.el.getHeight() : 0); |
} |
this.adjustments = [ |
(he ? -he.el.getWidth() : 0) + (hw ? -hw.el.getWidth() : 0), |
(hn ? -hn.el.getHeight() : 0) + (hs ? -hs.el.getHeight() : 0) -1 |
]; |
} |
if(this.draggable){ |
this.dd = this.dynamic ? |
this.el.initDD(null) : this.el.initDDProxy(null, {dragElId: this.proxy.id}); |
this.dd.setHandleElId(this.resizeChild ? this.resizeChild.id : this.el.id); |
} |
this.addEvents( |
"beforeresize", |
"resize" |
); |
if(this.width !== null && this.height !== null){ |
this.resizeTo(this.width, this.height); |
}else{ |
this.updateChildSize(); |
} |
if(Ext.isIE){ |
this.el.dom.style.zoom = 1; |
} |
Ext.Resizable.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.Resizable, Ext.util.Observable, { |
resizeChild : false, |
adjustments : [0, 0], |
minWidth : 5, |
minHeight : 5, |
maxWidth : 10000, |
maxHeight : 10000, |
enabled : true, |
animate : false, |
duration : .35, |
dynamic : false, |
handles : false, |
multiDirectional : false, |
disableTrackOver : false, |
easing : 'easeOutStrong', |
widthIncrement : 0, |
heightIncrement : 0, |
pinned : false, |
width : null, |
height : null, |
preserveRatio : false, |
transparent: false, |
minX: 0, |
minY: 0, |
draggable: false, |
resizeTo : function(width, height){ |
this.el.setSize(width, height); |
this.updateChildSize(); |
this.fireEvent("resize", this, width, height, null); |
}, |
startSizing : function(e, handle){ |
this.fireEvent("beforeresize", this, e); |
if(this.enabled){ |
if(!this.overlay){ |
this.overlay = this.el.createProxy({tag: "div", cls: "x-resizable-overlay", html: " "}, Ext.getBody()); |
this.overlay.unselectable(); |
this.overlay.enableDisplayMode("block"); |
this.overlay.on("mousemove", this.onMouseMove, this); |
this.overlay.on("mouseup", this.onMouseUp, this); |
} |
this.overlay.setStyle("cursor", handle.el.getStyle("cursor")); |
this.resizing = true; |
this.startBox = this.el.getBox(); |
this.startPoint = e.getXY(); |
this.offsets = [(this.startBox.x + this.startBox.width) - this.startPoint[0], |
(this.startBox.y + this.startBox.height) - this.startPoint[1]]; |
this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); |
this.overlay.show(); |
if(this.constrainTo) { |
var ct = Ext.get(this.constrainTo); |
this.resizeRegion = ct.getRegion().adjust( |
ct.getFrameWidth('t'), |
ct.getFrameWidth('l'), |
-ct.getFrameWidth('b'), |
-ct.getFrameWidth('r') |
); |
} |
this.proxy.setStyle('visibility', 'hidden'); |
this.proxy.show(); |
this.proxy.setBox(this.startBox); |
if(!this.dynamic){ |
this.proxy.setStyle('visibility', 'visible'); |
} |
} |
}, |
onMouseDown : function(handle, e){ |
if(this.enabled){ |
e.stopEvent(); |
this.activeHandle = handle; |
this.startSizing(e, handle); |
} |
}, |
onMouseUp : function(e){ |
var size = this.resizeElement(); |
this.resizing = false; |
this.handleOut(); |
this.overlay.hide(); |
this.proxy.hide(); |
this.fireEvent("resize", this, size.width, size.height, e); |
}, |
updateChildSize : function(){ |
if(this.resizeChild){ |
var el = this.el; |
var child = this.resizeChild; |
var adj = this.adjustments; |
if(el.dom.offsetWidth){ |
var b = el.getSize(true); |
child.setSize(b.width+adj[0], b.height+adj[1]); |
} |
if(Ext.isIE){ |
setTimeout(function(){ |
if(el.dom.offsetWidth){ |
var b = el.getSize(true); |
child.setSize(b.width+adj[0], b.height+adj[1]); |
} |
}, 10); |
} |
} |
}, |
snap : function(value, inc, min){ |
if(!inc || !value) return value; |
var newValue = value; |
var m = value % inc; |
if(m > 0){ |
if(m > (inc/2)){ |
newValue = value + (inc-m); |
}else{ |
newValue = value - m; |
} |
} |
return Math.max(min, newValue); |
}, |
resizeElement : function(){ |
var box = this.proxy.getBox(); |
if(this.updateBox){ |
this.el.setBox(box, false, this.animate, this.duration, null, this.easing); |
}else{ |
this.el.setSize(box.width, box.height, this.animate, this.duration, null, this.easing); |
} |
this.updateChildSize(); |
if(!this.dynamic){ |
this.proxy.hide(); |
} |
return box; |
}, |
constrain : function(v, diff, m, mx){ |
if(v - diff < m){ |
diff = v - m; |
}else if(v - diff > mx){ |
diff = mx - v; |
} |
return diff; |
}, |
onMouseMove : function(e){ |
if(this.enabled){ |
try{ |
if(this.resizeRegion && !this.resizeRegion.contains(e.getPoint())) { |
return; |
} |
var curSize = this.curSize || this.startBox; |
var x = this.startBox.x, y = this.startBox.y; |
var ox = x, oy = y; |
var w = curSize.width, h = curSize.height; |
var ow = w, oh = h; |
var mw = this.minWidth, mh = this.minHeight; |
var mxw = this.maxWidth, mxh = this.maxHeight; |
var wi = this.widthIncrement; |
var hi = this.heightIncrement; |
var eventXY = e.getXY(); |
var diffX = -(this.startPoint[0] - Math.max(this.minX, eventXY[0])); |
var diffY = -(this.startPoint[1] - Math.max(this.minY, eventXY[1])); |
var pos = this.activeHandle.position; |
switch(pos){ |
case "east": |
w += diffX; |
w = Math.min(Math.max(mw, w), mxw); |
break; |
case "south": |
h += diffY; |
h = Math.min(Math.max(mh, h), mxh); |
break; |
case "southeast": |
w += diffX; |
h += diffY; |
w = Math.min(Math.max(mw, w), mxw); |
h = Math.min(Math.max(mh, h), mxh); |
break; |
case "north": |
diffY = this.constrain(h, diffY, mh, mxh); |
y += diffY; |
h -= diffY; |
break; |
case "west": |
diffX = this.constrain(w, diffX, mw, mxw); |
x += diffX; |
w -= diffX; |
break; |
case "northeast": |
w += diffX; |
w = Math.min(Math.max(mw, w), mxw); |
diffY = this.constrain(h, diffY, mh, mxh); |
y += diffY; |
h -= diffY; |
break; |
case "northwest": |
diffX = this.constrain(w, diffX, mw, mxw); |
diffY = this.constrain(h, diffY, mh, mxh); |
y += diffY; |
h -= diffY; |
x += diffX; |
w -= diffX; |
break; |
case "southwest": |
diffX = this.constrain(w, diffX, mw, mxw); |
h += diffY; |
h = Math.min(Math.max(mh, h), mxh); |
x += diffX; |
w -= diffX; |
break; |
} |
var sw = this.snap(w, wi, mw); |
var sh = this.snap(h, hi, mh); |
if(sw != w || sh != h){ |
switch(pos){ |
case "northeast": |
y -= sh - h; |
break; |
case "north": |
y -= sh - h; |
break; |
case "southwest": |
x -= sw - w; |
break; |
case "west": |
x -= sw - w; |
break; |
case "northwest": |
x -= sw - w; |
y -= sh - h; |
break; |
} |
w = sw; |
h = sh; |
} |
if(this.preserveRatio){ |
switch(pos){ |
case "southeast": |
case "east": |
h = oh * (w/ow); |
h = Math.min(Math.max(mh, h), mxh); |
w = ow * (h/oh); |
break; |
case "south": |
w = ow * (h/oh); |
w = Math.min(Math.max(mw, w), mxw); |
h = oh * (w/ow); |
break; |
case "northeast": |
w = ow * (h/oh); |
w = Math.min(Math.max(mw, w), mxw); |
h = oh * (w/ow); |
break; |
case "north": |
var tw = w; |
w = ow * (h/oh); |
w = Math.min(Math.max(mw, w), mxw); |
h = oh * (w/ow); |
x += (tw - w) / 2; |
break; |
case "southwest": |
h = oh * (w/ow); |
h = Math.min(Math.max(mh, h), mxh); |
var tw = w; |
w = ow * (h/oh); |
x += tw - w; |
break; |
case "west": |
var th = h; |
h = oh * (w/ow); |
h = Math.min(Math.max(mh, h), mxh); |
y += (th - h) / 2; |
var tw = w; |
w = ow * (h/oh); |
x += tw - w; |
break; |
case "northwest": |
var tw = w; |
var th = h; |
h = oh * (w/ow); |
h = Math.min(Math.max(mh, h), mxh); |
w = ow * (h/oh); |
y += th - h; |
x += tw - w; |
break; |
} |
} |
this.proxy.setBounds(x, y, w, h); |
if(this.dynamic){ |
this.resizeElement(); |
} |
}catch(e){} |
} |
}, |
handleOver : function(){ |
if(this.enabled){ |
this.el.addClass("x-resizable-over"); |
} |
}, |
handleOut : function(){ |
if(!this.resizing){ |
this.el.removeClass("x-resizable-over"); |
} |
}, |
getEl : function(){ |
return this.el; |
}, |
getResizeChild : function(){ |
return this.resizeChild; |
}, |
destroy : function(removeEl){ |
this.proxy.remove(); |
if(this.overlay){ |
this.overlay.removeAllListeners(); |
this.overlay.remove(); |
} |
var ps = Ext.Resizable.positions; |
for(var k in ps){ |
if(typeof ps[k] != "function" && this[ps[k]]){ |
var h = this[ps[k]]; |
h.el.removeAllListeners(); |
h.el.remove(); |
} |
} |
if(removeEl){ |
this.el.update(""); |
this.el.remove(); |
} |
}, |
syncHandleHeight : function(){ |
var h = this.el.getHeight(true); |
if(this.west){ |
this.west.el.setHeight(h); |
} |
if(this.east){ |
this.east.el.setHeight(h); |
} |
} |
}); |
Ext.Resizable.positions = { |
n: "north", s: "south", e: "east", w: "west", se: "southeast", sw: "southwest", nw: "northwest", ne: "northeast" |
}; |
Ext.Resizable.Handle = function(rz, pos, disableTrackOver, transparent){ |
if(!this.tpl){ |
var tpl = Ext.DomHelper.createTemplate( |
{tag: "div", cls: "x-resizable-handle x-resizable-handle-{0}"} |
); |
tpl.compile(); |
Ext.Resizable.Handle.prototype.tpl = tpl; |
} |
this.position = pos; |
this.rz = rz; |
this.el = this.tpl.append(rz.el.dom, [this.position], true); |
this.el.unselectable(); |
if(transparent){ |
this.el.setOpacity(0); |
} |
this.el.on("mousedown", this.onMouseDown, this); |
if(!disableTrackOver){ |
this.el.on("mouseover", this.onMouseOver, this); |
this.el.on("mouseout", this.onMouseOut, this); |
} |
}; |
Ext.Resizable.Handle.prototype = { |
afterResize : function(rz){ |
}, |
onMouseDown : function(e){ |
this.rz.onMouseDown(this, e); |
}, |
onMouseOver : function(e){ |
this.rz.handleOver(this, e); |
}, |
onMouseOut : function(e){ |
this.rz.handleOut(this, e); |
} |
}; |
Ext.Editor = function(field, config){ |
this.field = field; |
Ext.Editor.superclass.constructor.call(this, config); |
}; |
Ext.extend(Ext.Editor, Ext.Component, { |
value : "", |
alignment: "c-c?", |
shadow : "frame", |
constrain : false, |
swallowKeys : true, |
completeOnEnter : false, |
cancelOnEsc : false, |
updateEl : false, |
initComponent : function(){ |
Ext.Editor.superclass.initComponent.call(this); |
this.addEvents( |
"beforestartedit", |
"startedit", |
"beforecomplete", |
"complete", |
"specialkey" |
); |
}, |
onRender : function(ct, position){ |
this.el = new Ext.Layer({ |
shadow: this.shadow, |
cls: "x-editor", |
parentEl : ct, |
shim : this.shim, |
shadowOffset:4, |
id: this.id, |
constrain: this.constrain |
}); |
this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden"); |
if(this.field.msgTarget != 'title'){ |
this.field.msgTarget = 'qtip'; |
} |
this.field.inEditor = true; |
this.field.render(this.el); |
if(Ext.isGecko){ |
this.field.el.dom.setAttribute('autocomplete', 'off'); |
} |
this.field.on("specialkey", this.onSpecialKey, this); |
if(this.swallowKeys){ |
this.field.el.swallowEvent(['keydown','keypress']); |
} |
this.field.show(); |
this.field.on("blur", this.onBlur, this); |
if(this.field.grow){ |
this.field.on("autosize", this.el.sync, this.el, {delay:1}); |
} |
}, |
onSpecialKey : function(field, e){ |
if(this.completeOnEnter && e.getKey() == e.ENTER){ |
e.stopEvent(); |
this.completeEdit(); |
}else if(this.cancelOnEsc && e.getKey() == e.ESC){ |
this.cancelEdit(); |
}else{ |
this.fireEvent('specialkey', field, e); |
} |
}, |
startEdit : function(el, value){ |
if(this.editing){ |
this.completeEdit(); |
} |
this.boundEl = Ext.get(el); |
var v = value !== undefined ? value : this.boundEl.dom.innerHTML; |
if(!this.rendered){ |
this.render(this.parentEl || document.body); |
} |
if(this.fireEvent("beforestartedit", this, this.boundEl, v) === false){ |
return; |
} |
this.startValue = v; |
this.field.setValue(v); |
this.doAutoSize(); |
this.el.alignTo(this.boundEl, this.alignment); |
this.editing = true; |
this.show(); |
}, |
doAutoSize : function(){ |
if(this.autoSize){ |
var sz = this.boundEl.getSize(); |
switch(this.autoSize){ |
case "width": |
this.setSize(sz.width, ""); |
break; |
case "height": |
this.setSize("", sz.height); |
break; |
default: |
this.setSize(sz.width, sz.height); |
} |
} |
}, |
setSize : function(w, h){ |
delete this.field.lastSize; |
this.field.setSize(w, h); |
if(this.el){ |
this.el.sync(); |
} |
}, |
realign : function(){ |
this.el.alignTo(this.boundEl, this.alignment); |
}, |
completeEdit : function(remainVisible){ |
if(!this.editing){ |
return; |
} |
var v = this.getValue(); |
if(this.revertInvalid !== false && !this.field.isValid()){ |
v = this.startValue; |
this.cancelEdit(true); |
} |
if(String(v) === String(this.startValue) && this.ignoreNoChange){ |
this.editing = false; |
this.hide(); |
return; |
} |
if(this.fireEvent("beforecomplete", this, v, this.startValue) !== false){ |
this.editing = false; |
if(this.updateEl && this.boundEl){ |
this.boundEl.update(v); |
} |
if(remainVisible !== true){ |
this.hide(); |
} |
this.fireEvent("complete", this, v, this.startValue); |
} |
}, |
onShow : function(){ |
this.el.show(); |
if(this.hideEl !== false){ |
this.boundEl.hide(); |
} |
this.field.show(); |
if(Ext.isIE && !this.fixIEFocus){ this.fixIEFocus = true; |
this.deferredFocus.defer(50, this); |
}else{ |
this.field.focus(); |
} |
this.fireEvent("startedit", this.boundEl, this.startValue); |
}, |
deferredFocus : function(){ |
if(this.editing){ |
this.field.focus(); |
} |
}, |
cancelEdit : function(remainVisible){ |
if(this.editing){ |
this.setValue(this.startValue); |
if(remainVisible !== true){ |
this.hide(); |
} |
} |
}, |
onBlur : function(){ |
if(this.allowBlur !== true && this.editing){ |
this.completeEdit(); |
} |
}, |
onHide : function(){ |
if(this.editing){ |
this.completeEdit(); |
return; |
} |
this.field.blur(); |
if(this.field.collapse){ |
this.field.collapse(); |
} |
this.el.hide(); |
if(this.hideEl !== false){ |
this.boundEl.show(); |
} |
}, |
setValue : function(v){ |
this.field.setValue(v); |
}, |
getValue : function(){ |
return this.field.getValue(); |
}, |
beforeDestroy : function(){ |
this.field.destroy(); |
this.field = null; |
} |
}); |
Ext.reg('editor', Ext.Editor); |
Ext.MessageBox = function(){ |
var dlg, opt, mask, waitTimer; |
var bodyEl, msgEl, textboxEl, textareaEl, progressBar, pp, iconEl, spacerEl; |
var buttons, activeTextEl, bwidth, iconCls = ''; |
var handleButton = function(button){ |
dlg.hide(); |
Ext.callback(opt.fn, opt.scope||window, [button, activeTextEl.dom.value], 1); |
}; |
var handleHide = function(){ |
if(opt && opt.cls){ |
dlg.el.removeClass(opt.cls); |
} |
progressBar.reset(); |
}; |
var handleEsc = function(d, k, e){ |
if(opt && opt.closable !== false){ |
dlg.hide(); |
} |
if(e){ |
e.stopEvent(); |
} |
}; |
var updateButtons = function(b){ |
var width = 0; |
if(!b){ |
buttons["ok"].hide(); |
buttons["cancel"].hide(); |
buttons["yes"].hide(); |
buttons["no"].hide(); |
return width; |
} |
dlg.footer.dom.style.display = ''; |
for(var k in buttons){ |
if(typeof buttons[k] != "function"){ |
if(b[k]){ |
buttons[k].show(); |
buttons[k].setText(typeof b[k] == "string" ? b[k] : Ext.MessageBox.buttonText[k]); |
width += buttons[k].el.getWidth()+15; |
}else{ |
buttons[k].hide(); |
} |
} |
} |
return width; |
}; |
return { |
getDialog : function(titleText){ |
if(!dlg){ |
dlg = new Ext.Window({ |
autoCreate : true, |
title:titleText, |
resizable:false, |
constrain:true, |
constrainHeader:true, |
minimizable : false, |
maximizable : false, |
stateful: false, |
modal: true, |
shim:true, |
buttonAlign:"center", |
width:400, |
height:100, |
minHeight: 80, |
plain:true, |
footer:true, |
closable:true, |
close : function(){ |
if(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){ |
handleButton("no"); |
}else{ |
handleButton("cancel"); |
} |
} |
}); |
buttons = {}; |
var bt = this.buttonText; |
buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok")); |
buttons["yes"] = dlg.addButton(bt["yes"], handleButton.createCallback("yes")); |
buttons["no"] = dlg.addButton(bt["no"], handleButton.createCallback("no")); |
buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel")); |
buttons["ok"].hideMode = buttons["yes"].hideMode = buttons["no"].hideMode = buttons["cancel"].hideMode = 'offsets'; |
dlg.render(document.body); |
dlg.getEl().addClass('x-window-dlg'); |
mask = dlg.mask; |
bodyEl = dlg.body.createChild({ |
html:'<div class="ext-mb-icon"></div><div class="ext-mb-content"><span class="ext-mb-text"></span><br /><input type="text" class="ext-mb-input" /><textarea class="ext-mb-textarea"></textarea></div>' |
}); |
iconEl = Ext.get(bodyEl.dom.firstChild); |
var contentEl = bodyEl.dom.childNodes[1]; |
msgEl = Ext.get(contentEl.firstChild); |
textboxEl = Ext.get(contentEl.childNodes[2]); |
textboxEl.enableDisplayMode(); |
textboxEl.addKeyListener([10,13], function(){ |
if(dlg.isVisible() && opt && opt.buttons){ |
if(opt.buttons.ok){ |
handleButton("ok"); |
}else if(opt.buttons.yes){ |
handleButton("yes"); |
} |
} |
}); |
textareaEl = Ext.get(contentEl.childNodes[3]); |
textareaEl.enableDisplayMode(); |
progressBar = new Ext.ProgressBar({ |
renderTo:bodyEl |
}); |
bodyEl.createChild({cls:'x-clear'}); |
} |
return dlg; |
}, |
updateText : function(text){ |
if(!dlg.isVisible() && !opt.width){ |
dlg.setSize(this.maxWidth, 100); |
} |
msgEl.update(text || ' '); |
var iw = iconCls != '' ? (iconEl.getWidth() + iconEl.getMargins('lr')) : 0; |
var mw = msgEl.getWidth() + msgEl.getMargins('lr'); |
var fw = dlg.getFrameWidth('lr'); |
var bw = dlg.body.getFrameWidth('lr'); |
if (Ext.isIE && iw > 0){ |
iw += 3; |
} |
var w = Math.max(Math.min(opt.width || iw+mw+fw+bw, this.maxWidth), |
Math.max(opt.minWidth || this.minWidth, bwidth || 0)); |
if(opt.prompt === true){ |
activeTextEl.setWidth(w-iw-fw-bw); |
} |
if(opt.progress === true || opt.wait === true){ |
progressBar.setSize(w-iw-fw-bw); |
} |
dlg.setSize(w, 'auto').center(); |
return this; |
}, |
updateProgress : function(value, progressText, msg){ |
progressBar.updateProgress(value, progressText); |
if(msg){ |
this.updateText(msg); |
} |
return this; |
}, |
isVisible : function(){ |
return dlg && dlg.isVisible(); |
}, |
hide : function(){ |
if(this.isVisible()){ |
dlg.hide(); |
handleHide(); |
} |
return this; |
}, |
show : function(options){ |
if(this.isVisible()){ |
this.hide(); |
} |
opt = options; |
var d = this.getDialog(opt.title || " "); |
d.setTitle(opt.title || " "); |
var allowClose = (opt.closable !== false && opt.progress !== true && opt.wait !== true); |
d.tools.close.setDisplayed(allowClose); |
activeTextEl = textboxEl; |
opt.prompt = opt.prompt || (opt.multiline ? true : false); |
if(opt.prompt){ |
if(opt.multiline){ |
textboxEl.hide(); |
textareaEl.show(); |
textareaEl.setHeight(typeof opt.multiline == "number" ? |
opt.multiline : this.defaultTextHeight); |
activeTextEl = textareaEl; |
}else{ |
textboxEl.show(); |
textareaEl.hide(); |
} |
}else{ |
textboxEl.hide(); |
textareaEl.hide(); |
} |
activeTextEl.dom.value = opt.value || ""; |
if(opt.prompt){ |
d.focusEl = activeTextEl; |
}else{ |
var bs = opt.buttons; |
var db = null; |
if(bs && bs.ok){ |
db = buttons["ok"]; |
}else if(bs && bs.yes){ |
db = buttons["yes"]; |
} |
if (db){ |
d.focusEl = db; |
} |
} |
this.setIcon(opt.icon); |
bwidth = updateButtons(opt.buttons); |
progressBar.setVisible(opt.progress === true || opt.wait === true); |
this.updateProgress(0, opt.progressText); |
this.updateText(opt.msg); |
if(opt.cls){ |
d.el.addClass(opt.cls); |
} |
d.proxyDrag = opt.proxyDrag === true; |
d.modal = opt.modal !== false; |
d.mask = opt.modal !== false ? mask : false; |
if(!d.isVisible()){ |
document.body.appendChild(dlg.el.dom); |
d.setAnimateTarget(opt.animEl); |
d.show(opt.animEl); |
} |
d.on('show', function(){ |
if(allowClose === true){ |
d.keyMap.enable(); |
}else{ |
d.keyMap.disable(); |
} |
}, this, {single:true}); |
if(opt.wait === true){ |
progressBar.wait(opt.waitConfig); |
} |
return this; |
}, |
setIcon : function(icon){ |
if(icon && icon != ''){ |
iconEl.removeClass('x-hidden'); |
iconEl.replaceClass(iconCls, icon); |
iconCls = icon; |
}else{ |
iconEl.replaceClass(iconCls, 'x-hidden'); |
iconCls = ''; |
} |
return this; |
}, |
progress : function(title, msg, progressText){ |
this.show({ |
title : title, |
msg : msg, |
buttons: false, |
progress:true, |
closable:false, |
minWidth: this.minProgressWidth, |
progressText: progressText |
}); |
return this; |
}, |
wait : function(msg, title, config){ |
this.show({ |
title : title, |
msg : msg, |
buttons: false, |
closable:false, |
wait:true, |
modal:true, |
minWidth: this.minProgressWidth, |
waitConfig: config |
}); |
return this; |
}, |
alert : function(title, msg, fn, scope){ |
this.show({ |
title : title, |
msg : msg, |
buttons: this.OK, |
fn: fn, |
scope : scope |
}); |
return this; |
}, |
confirm : function(title, msg, fn, scope){ |
this.show({ |
title : title, |
msg : msg, |
buttons: this.YESNO, |
fn: fn, |
scope : scope, |
icon: this.QUESTION |
}); |
return this; |
}, |
prompt : function(title, msg, fn, scope, multiline){ |
this.show({ |
title : title, |
msg : msg, |
buttons: this.OKCANCEL, |
fn: fn, |
minWidth:250, |
scope : scope, |
prompt:true, |
multiline: multiline |
}); |
return this; |
}, |
OK : {ok:true}, |
CANCEL : {cancel:true}, |
OKCANCEL : {ok:true, cancel:true}, |
YESNO : {yes:true, no:true}, |
YESNOCANCEL : {yes:true, no:true, cancel:true}, |
INFO : 'ext-mb-info', |
WARNING : 'ext-mb-warning', |
QUESTION : 'ext-mb-question', |
ERROR : 'ext-mb-error', |
defaultTextHeight : 75, |
maxWidth : 600, |
minWidth : 100, |
minProgressWidth : 250, |
buttonText : { |
ok : "OK", |
cancel : "Cancel", |
yes : "Yes", |
no : "No" |
} |
}; |
}(); |
Ext.Msg = Ext.MessageBox; |
Ext.Tip = Ext.extend(Ext.Panel, { |
minWidth : 40, |
maxWidth : 300, |
shadow : "sides", |
defaultAlign : "tl-bl?", |
autoRender: true, |
quickShowInterval : 250, |
frame:true, |
hidden:true, |
baseCls: 'x-tip', |
floating:{shadow:true,shim:true,useDisplay:true,constrain:false}, |
autoHeight:true, |
initComponent : function(){ |
Ext.Tip.superclass.initComponent.call(this); |
if(this.closable && !this.title){ |
this.elements += ',header'; |
} |
}, |
afterRender : function(){ |
Ext.Tip.superclass.afterRender.call(this); |
if(this.closable){ |
this.addTool({ |
id: 'close', |
handler: this.hide, |
scope: this |
}); |
} |
}, |
showAt : function(xy){ |
Ext.Tip.superclass.show.call(this); |
if(this.measureWidth !== false && (!this.initialConfig || typeof this.initialConfig.width != 'number')){ |
var bw = this.body.getTextWidth(); |
if(this.title){ |
bw = Math.max(bw, this.header.child('span').getTextWidth(this.title)); |
} |
bw += this.getFrameWidth() + (this.closable ? 20 : 0) + this.body.getPadding("lr"); |
this.setWidth(bw.constrain(this.minWidth, this.maxWidth)); |
} |
if(this.constrainPosition){ |
xy = this.el.adjustForConstraints(xy); |
} |
this.setPagePosition(xy[0], xy[1]); |
}, |
showBy : function(el, pos){ |
if(!this.rendered){ |
this.render(Ext.getBody()); |
} |
this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign)); |
}, |
initDraggable : function(){ |
this.dd = new Ext.Tip.DD(this, typeof this.draggable == 'boolean' ? null : this.draggable); |
this.header.addClass('x-tip-draggable'); |
} |
}); |
Ext.Tip.DD = function(tip, config){ |
Ext.apply(this, config); |
this.tip = tip; |
Ext.Tip.DD.superclass.constructor.call(this, tip.el.id, 'WindowDD-'+tip.id); |
this.setHandleElId(tip.header.id); |
this.scroll = false; |
}; |
Ext.extend(Ext.Tip.DD, Ext.dd.DD, { |
moveOnly:true, |
scroll:false, |
headerOffsets:[100, 25], |
startDrag : function(){ |
this.tip.el.disableShadow(); |
}, |
endDrag : function(e){ |
this.tip.el.enableShadow(true); |
} |
}); |
Ext.ToolTip = Ext.extend(Ext.Tip, { |
showDelay: 500, |
hideDelay: 200, |
dismissDelay: 5000, |
mouseOffset: [15,18], |
trackMouse : false, |
constrainPosition: true, |
initComponent: function(){ |
Ext.ToolTip.superclass.initComponent.call(this); |
this.lastActive = new Date(); |
this.initTarget(); |
}, |
initTarget : function(){ |
if(this.target){ |
this.target = Ext.get(this.target); |
this.target.on('mouseover', this.onTargetOver, this); |
this.target.on('mouseout', this.onTargetOut, this); |
this.target.on('mousemove', this.onMouseMove, this); |
} |
}, |
onMouseMove : function(e){ |
this.targetXY = e.getXY(); |
if(!this.hidden && this.trackMouse){ |
this.setPagePosition(this.getTargetXY()); |
} |
}, |
getTargetXY : function(){ |
return [this.targetXY[0]+this.mouseOffset[0], this.targetXY[1]+this.mouseOffset[1]]; |
}, |
onTargetOver : function(e){ |
if(this.disabled || e.within(this.target.dom, true)){ |
return; |
} |
this.clearTimer('hide'); |
this.targetXY = e.getXY(); |
this.delayShow(); |
}, |
delayShow : function(){ |
if(this.hidden && !this.showTimer){ |
if(this.lastActive.getElapsed() < this.quickShowInterval){ |
this.show(); |
}else{ |
this.showTimer = this.show.defer(this.showDelay, this); |
} |
}else if(!this.hidden && this.autoHide !== false){ |
this.show(); |
} |
}, |
onTargetOut : function(e){ |
if(this.disabled || e.within(this.target.dom, true)){ |
return; |
} |
this.clearTimer('show'); |
if(this.autoHide !== false){ |
this.delayHide(); |
} |
}, |
delayHide : function(){ |
if(!this.hidden && !this.hideTimer){ |
this.hideTimer = this.hide.defer(this.hideDelay, this); |
} |
}, |
hide: function(){ |
this.clearTimer('dismiss'); |
this.lastActive = new Date(); |
Ext.ToolTip.superclass.hide.call(this); |
}, |
show : function(){ |
this.showAt(this.getTargetXY()); |
}, |
showAt : function(xy){ |
this.lastActive = new Date(); |
this.clearTimers(); |
Ext.ToolTip.superclass.showAt.call(this, xy); |
if(this.dismissDelay && this.autoHide !== false){ |
this.dismissTimer = this.hide.defer(this.dismissDelay, this); |
} |
}, |
clearTimer : function(name){ |
name = name + 'Timer'; |
clearTimeout(this[name]); |
delete this[name]; |
}, |
clearTimers : function(){ |
this.clearTimer('show'); |
this.clearTimer('dismiss'); |
this.clearTimer('hide'); |
}, |
onShow : function(){ |
Ext.ToolTip.superclass.onShow.call(this); |
Ext.getDoc().on('mousedown', this.onDocMouseDown, this); |
}, |
onHide : function(){ |
Ext.ToolTip.superclass.onHide.call(this); |
Ext.getDoc().un('mousedown', this.onDocMouseDown, this); |
}, |
onDocMouseDown : function(e){ |
if(this.autoHide !== false && !e.within(this.el.dom)){ |
this.disable(); |
this.enable.defer(100, this); |
} |
}, |
onDisable : function(){ |
this.clearTimers(); |
this.hide(); |
}, |
adjustPosition : function(x, y){ |
var ay = this.targetXY[1], h = this.getSize().height; |
if(this.constrainPosition && y <= ay && (y+h) >= ay){ |
y = ay-h-5; |
} |
return {x : x, y: y}; |
}, |
onDestroy : function(){ |
Ext.ToolTip.superclass.onDestroy.call(this); |
if(this.target){ |
this.target.un('mouseover', this.onTargetOver, this); |
this.target.un('mouseout', this.onTargetOut, this); |
this.target.un('mousemove', this.onMouseMove, this); |
} |
} |
}); |
Ext.QuickTip = Ext.extend(Ext.ToolTip, { |
interceptTitles : false, |
tagConfig : { |
namespace : "ext", |
attribute : "qtip", |
width : "qwidth", |
target : "target", |
title : "qtitle", |
hide : "hide", |
cls : "qclass", |
align : "qalign" |
}, |
initComponent : function(){ |
this.target = this.target || Ext.getDoc(); |
this.targets = this.targets || {}; |
Ext.QuickTip.superclass.initComponent.call(this); |
}, |
register : function(config){ |
var cs = Ext.isArray(config) ? config : arguments; |
for(var i = 0, len = cs.length; i < len; i++){ |
var c = cs[i]; |
var target = c.target; |
if(target){ |
if(Ext.isArray(target)){ |
for(var j = 0, jlen = target.length; j < jlen; j++){ |
this.targets[Ext.id(target[j])] = c; |
} |
} else{ |
this.targets[Ext.id(target)] = c; |
} |
} |
} |
}, |
unregister : function(el){ |
delete this.targets[Ext.id(el)]; |
}, |
onTargetOver : function(e){ |
if(this.disabled){ |
return; |
} |
this.targetXY = e.getXY(); |
var t = e.getTarget(); |
if(!t || t.nodeType !== 1 || t == document || t == document.body){ |
return; |
} |
if(this.activeTarget && t == this.activeTarget.el){ |
this.clearTimer('hide'); |
this.show(); |
return; |
} |
if(t && this.targets[t.id]){ |
this.activeTarget = this.targets[t.id]; |
this.activeTarget.el = t; |
this.delayShow(); |
return; |
} |
var ttp, et = Ext.fly(t), cfg = this.tagConfig; |
var ns = cfg.namespace; |
if(this.interceptTitles && t.title){ |
ttp = t.title; |
t.qtip = ttp; |
t.removeAttribute("title"); |
e.preventDefault(); |
} else{ |
ttp = t.qtip || et.getAttributeNS(ns, cfg.attribute); |
} |
if(ttp){ |
var autoHide = et.getAttributeNS(ns, cfg.hide); |
this.activeTarget = { |
el: t, |
text: ttp, |
width: et.getAttributeNS(ns, cfg.width), |
autoHide: autoHide != "user" && autoHide !== 'false', |
title: et.getAttributeNS(ns, cfg.title), |
cls: et.getAttributeNS(ns, cfg.cls), |
align: et.getAttributeNS(ns, cfg.align) |
}; |
this.delayShow(); |
} |
}, |
onTargetOut : function(e){ |
this.clearTimer('show'); |
if(this.autoHide !== false){ |
this.delayHide(); |
} |
}, |
showAt : function(xy){ |
var t = this.activeTarget; |
if(t){ |
if(!this.rendered){ |
this.render(Ext.getBody()); |
this.activeTarget = t; |
} |
if(t.width){ |
this.setWidth(t.width); |
this.body.setWidth(this.adjustBodyWidth(t.width - this.getFrameWidth())); |
this.measureWidth = false; |
} else{ |
this.measureWidth = true; |
} |
this.setTitle(t.title || ''); |
this.body.update(t.text); |
this.autoHide = t.autoHide; |
this.dismissDelay = t.dismissDelay || this.dismissDelay; |
if(this.lastCls){ |
this.el.removeClass(this.lastCls); |
delete this.lastCls; |
} |
if(t.cls){ |
this.el.addClass(t.cls); |
this.lastCls = t.cls; |
} |
if(t.align){ |
xy = this.el.getAlignToXY(t.el, t.align); |
this.constrainPosition = false; |
} else{ |
this.constrainPosition = true; |
} |
} |
Ext.QuickTip.superclass.showAt.call(this, xy); |
}, |
hide: function(){ |
delete this.activeTarget; |
Ext.QuickTip.superclass.hide.call(this); |
} |
}); |
Ext.QuickTips = function(){ |
var tip, locks = []; |
return { |
init : function(){ |
if(!tip){ |
tip = new Ext.QuickTip({elements:'header,body'}); |
} |
}, |
enable : function(){ |
if(tip){ |
locks.pop(); |
if(locks.length < 1){ |
tip.enable(); |
} |
} |
}, |
disable : function(){ |
if(tip){ |
tip.disable(); |
} |
locks.push(1); |
}, |
isEnabled : function(){ |
return tip && !tip.disabled; |
}, |
getQuickTip : function(){ |
return tip; |
}, |
register : function(){ |
tip.register.apply(tip, arguments); |
}, |
unregister : function(){ |
tip.unregister.apply(tip, arguments); |
}, |
tips :function(){ |
tip.register.apply(tip, arguments); |
} |
} |
}(); |
Ext.tree.TreePanel = Ext.extend(Ext.Panel, { |
rootVisible : true, |
animate: Ext.enableFx, |
lines : true, |
enableDD : false, |
hlDrop : Ext.enableFx, |
pathSeparator: "/", |
initComponent : function(){ |
Ext.tree.TreePanel.superclass.initComponent.call(this); |
if(!this.eventModel){ |
this.eventModel = new Ext.tree.TreeEventModel(this); |
} |
this.nodeHash = {}; |
if(this.root){ |
this.setRootNode(this.root); |
} |
this.addEvents( |
"append", |
"remove", |
"movenode", |
"insert", |
"beforeappend", |
"beforeremove", |
"beforemovenode", |
"beforeinsert", |
"beforeload", |
"load", |
"textchange", |
"beforeexpandnode", |
"beforecollapsenode", |
"expandnode", |
"disabledchange", |
"collapsenode", |
"beforeclick", |
"click", |
"checkchange", |
"dblclick", |
"contextmenu", |
"beforechildrenrendered", |
"startdrag", |
"enddrag", |
"dragdrop", |
"beforenodedrop", |
"nodedrop", |
"nodedragover" |
); |
if(this.singleExpand){ |
this.on("beforeexpandnode", this.restrictExpand, this); |
} |
}, |
proxyNodeEvent : function(ename, a1, a2, a3, a4, a5, a6){ |
if(ename == 'collapse' || ename == 'expand' || ename == 'beforecollapse' || ename == 'beforeexpand' || ename == 'move' || ename == 'beforemove'){ |
ename = ename+'node'; |
} |
return this.fireEvent(ename, a1, a2, a3, a4, a5, a6); |
}, |
getRootNode : function(){ |
return this.root; |
}, |
setRootNode : function(node){ |
this.root = node; |
node.ownerTree = this; |
node.isRoot = true; |
this.registerNode(node); |
if(!this.rootVisible){ |
var uiP = node.attributes.uiProvider; |
node.ui = uiP ? new uiP(node) : new Ext.tree.RootTreeNodeUI(node); |
} |
return node; |
}, |
getNodeById : function(id){ |
return this.nodeHash[id]; |
}, |
registerNode : function(node){ |
this.nodeHash[node.id] = node; |
}, |
unregisterNode : function(node){ |
delete this.nodeHash[node.id]; |
}, |
toString : function(){ |
return "[Tree"+(this.id?" "+this.id:"")+"]"; |
}, |
restrictExpand : function(node){ |
var p = node.parentNode; |
if(p){ |
if(p.expandedChild && p.expandedChild.parentNode == p){ |
p.expandedChild.collapse(); |
} |
p.expandedChild = node; |
} |
}, |
getChecked : function(a, startNode){ |
startNode = startNode || this.root; |
var r = []; |
var f = function(){ |
if(this.attributes.checked){ |
r.push(!a ? this : (a == 'id' ? this.id : this.attributes[a])); |
} |
} |
startNode.cascade(f); |
return r; |
}, |
getEl : function(){ |
return this.el; |
}, |
getLoader : function(){ |
return this.loader; |
}, |
expandAll : function(){ |
this.root.expand(true); |
}, |
collapseAll : function(){ |
this.root.collapse(true); |
}, |
getSelectionModel : function(){ |
if(!this.selModel){ |
this.selModel = new Ext.tree.DefaultSelectionModel(); |
} |
return this.selModel; |
}, |
expandPath : function(path, attr, callback){ |
attr = attr || "id"; |
var keys = path.split(this.pathSeparator); |
var curNode = this.root; |
if(curNode.attributes[attr] != keys[1]){ |
if(callback){ |
callback(false, null); |
} |
return; |
} |
var index = 1; |
var f = function(){ |
if(++index == keys.length){ |
if(callback){ |
callback(true, curNode); |
} |
return; |
} |
var c = curNode.findChild(attr, keys[index]); |
if(!c){ |
if(callback){ |
callback(false, curNode); |
} |
return; |
} |
curNode = c; |
c.expand(false, false, f); |
}; |
curNode.expand(false, false, f); |
}, |
selectPath : function(path, attr, callback){ |
attr = attr || "id"; |
var keys = path.split(this.pathSeparator); |
var v = keys.pop(); |
if(keys.length > 0){ |
var f = function(success, node){ |
if(success && node){ |
var n = node.findChild(attr, v); |
if(n){ |
n.select(); |
if(callback){ |
callback(true, n); |
} |
}else if(callback){ |
callback(false, n); |
} |
}else{ |
if(callback){ |
callback(false, n); |
} |
} |
}; |
this.expandPath(keys.join(this.pathSeparator), attr, f); |
}else{ |
this.root.select(); |
if(callback){ |
callback(true, this.root); |
} |
} |
}, |
getTreeEl : function(){ |
return this.body; |
}, |
onRender : function(ct, position){ |
Ext.tree.TreePanel.superclass.onRender.call(this, ct, position); |
this.el.addClass('x-tree'); |
this.innerCt = this.body.createChild({tag:"ul", |
cls:"x-tree-root-ct " + |
(this.useArrows ? 'x-tree-arrows' : this.lines ? "x-tree-lines" : "x-tree-no-lines")}); |
}, |
initEvents : function(){ |
Ext.tree.TreePanel.superclass.initEvents.call(this); |
if(this.containerScroll){ |
Ext.dd.ScrollManager.register(this.body); |
} |
if((this.enableDD || this.enableDrop) && !this.dropZone){ |
this.dropZone = new Ext.tree.TreeDropZone(this, this.dropConfig || { |
ddGroup: this.ddGroup || "TreeDD", appendOnly: this.ddAppendOnly === true |
}); |
} |
if((this.enableDD || this.enableDrag) && !this.dragZone){ |
this.dragZone = new Ext.tree.TreeDragZone(this, this.dragConfig || { |
ddGroup: this.ddGroup || "TreeDD", |
scroll: this.ddScroll |
}); |
} |
this.getSelectionModel().init(this); |
}, |
afterRender : function(){ |
Ext.tree.TreePanel.superclass.afterRender.call(this); |
this.root.render(); |
if(!this.rootVisible){ |
this.root.renderChildren(); |
} |
}, |
onDestroy : function(){ |
if(this.rendered){ |
this.body.removeAllListeners(); |
Ext.dd.ScrollManager.unregister(this.body); |
if(this.dropZone){ |
this.dropZone.unreg(); |
} |
if(this.dragZone){ |
this.dragZone.unreg(); |
} |
} |
this.root.destroy(); |
this.nodeHash = null; |
Ext.tree.TreePanel.superclass.onDestroy.call(this); |
} |
}); |
Ext.reg('treepanel', Ext.tree.TreePanel); |
Ext.tree.TreeEventModel = function(tree){ |
this.tree = tree; |
this.tree.on('render', this.initEvents, this); |
} |
Ext.tree.TreeEventModel.prototype = { |
initEvents : function(){ |
var el = this.tree.getTreeEl(); |
el.on('click', this.delegateClick, this); |
if(this.tree.trackMouseOver !== false){ |
el.on('mouseover', this.delegateOver, this); |
el.on('mouseout', this.delegateOut, this); |
} |
el.on('dblclick', this.delegateDblClick, this); |
el.on('contextmenu', this.delegateContextMenu, this); |
}, |
getNode : function(e){ |
var t; |
if(t = e.getTarget('.x-tree-node-el', 10)){ |
var id = Ext.fly(t, '_treeEvents').getAttributeNS('ext', 'tree-node-id'); |
if(id){ |
return this.tree.getNodeById(id); |
} |
} |
return null; |
}, |
getNodeTarget : function(e){ |
var t = e.getTarget('.x-tree-node-icon', 1); |
if(!t){ |
t = e.getTarget('.x-tree-node-el', 6); |
} |
return t; |
}, |
delegateOut : function(e, t){ |
if(!this.beforeEvent(e)){ |
return; |
} |
if(e.getTarget('.x-tree-ec-icon', 1)){ |
var n = this.getNode(e); |
this.onIconOut(e, n); |
if(n == this.lastEcOver){ |
delete this.lastEcOver; |
} |
} |
if((t = this.getNodeTarget(e)) && !e.within(t, true)){ |
this.onNodeOut(e, this.getNode(e)); |
} |
}, |
delegateOver : function(e, t){ |
if(!this.beforeEvent(e)){ |
return; |
} |
if(this.lastEcOver){ |
this.onIconOut(e, this.lastEcOver); |
delete this.lastEcOver; |
} |
if(e.getTarget('.x-tree-ec-icon', 1)){ |
this.lastEcOver = this.getNode(e); |
this.onIconOver(e, this.lastEcOver); |
} |
if(t = this.getNodeTarget(e)){ |
this.onNodeOver(e, this.getNode(e)); |
} |
}, |
delegateClick : function(e, t){ |
if(!this.beforeEvent(e)){ |
return; |
} |
if(e.getTarget('input[type=checkbox]', 1)){ |
this.onCheckboxClick(e, this.getNode(e)); |
} |
else if(e.getTarget('.x-tree-ec-icon', 1)){ |
this.onIconClick(e, this.getNode(e)); |
} |
else if(this.getNodeTarget(e)){ |
this.onNodeClick(e, this.getNode(e)); |
} |
}, |
delegateDblClick : function(e, t){ |
if(this.beforeEvent(e) && this.getNodeTarget(e)){ |
this.onNodeDblClick(e, this.getNode(e)); |
} |
}, |
delegateContextMenu : function(e, t){ |
if(this.beforeEvent(e) && this.getNodeTarget(e)){ |
this.onNodeContextMenu(e, this.getNode(e)); |
} |
}, |
onNodeClick : function(e, node){ |
node.ui.onClick(e); |
}, |
onNodeOver : function(e, node){ |
node.ui.onOver(e); |
}, |
onNodeOut : function(e, node){ |
node.ui.onOut(e); |
}, |
onIconOver : function(e, node){ |
node.ui.addClass('x-tree-ec-over'); |
}, |
onIconOut : function(e, node){ |
node.ui.removeClass('x-tree-ec-over'); |
}, |
onIconClick : function(e, node){ |
node.ui.ecClick(e); |
}, |
onCheckboxClick : function(e, node){ |
node.ui.onCheckChange(e); |
}, |
onNodeDblClick : function(e, node){ |
node.ui.onDblClick(e); |
}, |
onNodeContextMenu : function(e, node){ |
node.ui.onContextMenu(e); |
}, |
beforeEvent : function(e){ |
if(this.disabled){ |
e.stopEvent(); |
return false; |
} |
return true; |
}, |
disable: function(){ |
this.disabled = true; |
}, |
enable: function(){ |
this.disabled = false; |
} |
}; |
Ext.tree.DefaultSelectionModel = function(config){ |
this.selNode = null; |
this.addEvents( |
"selectionchange", |
"beforeselect" |
); |
Ext.apply(this, config); |
Ext.tree.DefaultSelectionModel.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.tree.DefaultSelectionModel, Ext.util.Observable, { |
init : function(tree){ |
this.tree = tree; |
tree.getTreeEl().on("keydown", this.onKeyDown, this); |
tree.on("click", this.onNodeClick, this); |
}, |
onNodeClick : function(node, e){ |
this.select(node); |
}, |
select : function(node){ |
var last = this.selNode; |
if(last != node && this.fireEvent('beforeselect', this, node, last) !== false){ |
if(last){ |
last.ui.onSelectedChange(false); |
} |
this.selNode = node; |
node.ui.onSelectedChange(true); |
this.fireEvent("selectionchange", this, node, last); |
} |
return node; |
}, |
unselect : function(node){ |
if(this.selNode == node){ |
this.clearSelections(); |
} |
}, |
clearSelections : function(){ |
var n = this.selNode; |
if(n){ |
n.ui.onSelectedChange(false); |
this.selNode = null; |
this.fireEvent("selectionchange", this, null); |
} |
return n; |
}, |
getSelectedNode : function(){ |
return this.selNode; |
}, |
isSelected : function(node){ |
return this.selNode == node; |
}, |
selectPrevious : function(){ |
var s = this.selNode || this.lastSelNode; |
if(!s){ |
return null; |
} |
var ps = s.previousSibling; |
if(ps){ |
if(!ps.isExpanded() || ps.childNodes.length < 1){ |
return this.select(ps); |
} else{ |
var lc = ps.lastChild; |
while(lc && lc.isExpanded() && lc.childNodes.length > 0){ |
lc = lc.lastChild; |
} |
return this.select(lc); |
} |
} else if(s.parentNode && (this.tree.rootVisible || !s.parentNode.isRoot)){ |
return this.select(s.parentNode); |
} |
return null; |
}, |
selectNext : function(){ |
var s = this.selNode || this.lastSelNode; |
if(!s){ |
return null; |
} |
if(s.firstChild && s.isExpanded()){ |
return this.select(s.firstChild); |
}else if(s.nextSibling){ |
return this.select(s.nextSibling); |
}else if(s.parentNode){ |
var newS = null; |
s.parentNode.bubble(function(){ |
if(this.nextSibling){ |
newS = this.getOwnerTree().selModel.select(this.nextSibling); |
return false; |
} |
}); |
return newS; |
} |
return null; |
}, |
onKeyDown : function(e){ |
var s = this.selNode || this.lastSelNode; |
var sm = this; |
if(!s){ |
return; |
} |
var k = e.getKey(); |
switch(k){ |
case e.DOWN: |
e.stopEvent(); |
this.selectNext(); |
break; |
case e.UP: |
e.stopEvent(); |
this.selectPrevious(); |
break; |
case e.RIGHT: |
e.preventDefault(); |
if(s.hasChildNodes()){ |
if(!s.isExpanded()){ |
s.expand(); |
}else if(s.firstChild){ |
this.select(s.firstChild, e); |
} |
} |
break; |
case e.LEFT: |
e.preventDefault(); |
if(s.hasChildNodes() && s.isExpanded()){ |
s.collapse(); |
}else if(s.parentNode && (this.tree.rootVisible || s.parentNode != this.tree.getRootNode())){ |
this.select(s.parentNode, e); |
} |
break; |
}; |
} |
}); |
Ext.tree.MultiSelectionModel = function(config){ |
this.selNodes = []; |
this.selMap = {}; |
this.addEvents( |
"selectionchange" |
); |
Ext.apply(this, config); |
Ext.tree.MultiSelectionModel.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.tree.MultiSelectionModel, Ext.util.Observable, { |
init : function(tree){ |
this.tree = tree; |
tree.getTreeEl().on("keydown", this.onKeyDown, this); |
tree.on("click", this.onNodeClick, this); |
}, |
onNodeClick : function(node, e){ |
this.select(node, e, e.ctrlKey); |
}, |
select : function(node, e, keepExisting){ |
if(keepExisting !== true){ |
this.clearSelections(true); |
} |
if(this.isSelected(node)){ |
this.lastSelNode = node; |
return node; |
} |
this.selNodes.push(node); |
this.selMap[node.id] = node; |
this.lastSelNode = node; |
node.ui.onSelectedChange(true); |
this.fireEvent("selectionchange", this, this.selNodes); |
return node; |
}, |
unselect : function(node){ |
if(this.selMap[node.id]){ |
node.ui.onSelectedChange(false); |
var sn = this.selNodes; |
var index = sn.indexOf(node); |
if(index != -1){ |
this.selNodes.splice(index, 1); |
} |
delete this.selMap[node.id]; |
this.fireEvent("selectionchange", this, this.selNodes); |
} |
}, |
clearSelections : function(suppressEvent){ |
var sn = this.selNodes; |
if(sn.length > 0){ |
for(var i = 0, len = sn.length; i < len; i++){ |
sn[i].ui.onSelectedChange(false); |
} |
this.selNodes = []; |
this.selMap = {}; |
if(suppressEvent !== true){ |
this.fireEvent("selectionchange", this, this.selNodes); |
} |
} |
}, |
isSelected : function(node){ |
return this.selMap[node.id] ? true : false; |
}, |
getSelectedNodes : function(){ |
return this.selNodes; |
}, |
onKeyDown : Ext.tree.DefaultSelectionModel.prototype.onKeyDown, |
selectNext : Ext.tree.DefaultSelectionModel.prototype.selectNext, |
selectPrevious : Ext.tree.DefaultSelectionModel.prototype.selectPrevious |
}); |
Ext.tree.TreeNode = function(attributes){ |
attributes = attributes || {}; |
if(typeof attributes == "string"){ |
attributes = {text: attributes}; |
} |
this.childrenRendered = false; |
this.rendered = false; |
Ext.tree.TreeNode.superclass.constructor.call(this, attributes); |
this.expanded = attributes.expanded === true; |
this.isTarget = attributes.isTarget !== false; |
this.draggable = attributes.draggable !== false && attributes.allowDrag !== false; |
this.allowChildren = attributes.allowChildren !== false && attributes.allowDrop !== false; |
this.text = attributes.text; |
this.disabled = attributes.disabled === true; |
this.addEvents( |
"textchange", |
"beforeexpand", |
"beforecollapse", |
"expand", |
"disabledchange", |
"collapse", |
"beforeclick", |
"click", |
"checkchange", |
"dblclick", |
"contextmenu", |
"beforechildrenrendered" |
); |
var uiClass = this.attributes.uiProvider || this.defaultUI || Ext.tree.TreeNodeUI; |
this.ui = new uiClass(this); |
}; |
Ext.extend(Ext.tree.TreeNode, Ext.data.Node, { |
preventHScroll: true, |
isExpanded : function(){ |
return this.expanded; |
}, |
getUI : function(){ |
return this.ui; |
}, |
setFirstChild : function(node){ |
var of = this.firstChild; |
Ext.tree.TreeNode.superclass.setFirstChild.call(this, node); |
if(this.childrenRendered && of && node != of){ |
of.renderIndent(true, true); |
} |
if(this.rendered){ |
this.renderIndent(true, true); |
} |
}, |
setLastChild : function(node){ |
var ol = this.lastChild; |
Ext.tree.TreeNode.superclass.setLastChild.call(this, node); |
if(this.childrenRendered && ol && node != ol){ |
ol.renderIndent(true, true); |
} |
if(this.rendered){ |
this.renderIndent(true, true); |
} |
}, |
appendChild : function(){ |
var node = Ext.tree.TreeNode.superclass.appendChild.apply(this, arguments); |
if(node && this.childrenRendered){ |
node.render(); |
} |
this.ui.updateExpandIcon(); |
return node; |
}, |
removeChild : function(node){ |
this.ownerTree.getSelectionModel().unselect(node); |
Ext.tree.TreeNode.superclass.removeChild.apply(this, arguments); |
if(this.childrenRendered){ |
node.ui.remove(); |
} |
if(this.childNodes.length < 1){ |
this.collapse(false, false); |
}else{ |
this.ui.updateExpandIcon(); |
} |
if(!this.firstChild && !this.isHiddenRoot()) { |
this.childrenRendered = false; |
} |
return node; |
}, |
insertBefore : function(node, refNode){ |
var newNode = Ext.tree.TreeNode.superclass.insertBefore.apply(this, arguments); |
if(newNode && refNode && this.childrenRendered){ |
node.render(); |
} |
this.ui.updateExpandIcon(); |
return newNode; |
}, |
setText : function(text){ |
var oldText = this.text; |
this.text = text; |
this.attributes.text = text; |
if(this.rendered){ |
this.ui.onTextChange(this, text, oldText); |
} |
this.fireEvent("textchange", this, text, oldText); |
}, |
select : function(){ |
this.getOwnerTree().getSelectionModel().select(this); |
}, |
unselect : function(){ |
this.getOwnerTree().getSelectionModel().unselect(this); |
}, |
isSelected : function(){ |
return this.getOwnerTree().getSelectionModel().isSelected(this); |
}, |
expand : function(deep, anim, callback){ |
if(!this.expanded){ |
if(this.fireEvent("beforeexpand", this, deep, anim) === false){ |
return; |
} |
if(!this.childrenRendered){ |
this.renderChildren(); |
} |
this.expanded = true; |
if(!this.isHiddenRoot() && (this.getOwnerTree().animate && anim !== false) || anim){ |
this.ui.animExpand(function(){ |
this.fireEvent("expand", this); |
if(typeof callback == "function"){ |
callback(this); |
} |
if(deep === true){ |
this.expandChildNodes(true); |
} |
}.createDelegate(this)); |
return; |
}else{ |
this.ui.expand(); |
this.fireEvent("expand", this); |
if(typeof callback == "function"){ |
callback(this); |
} |
} |
}else{ |
if(typeof callback == "function"){ |
callback(this); |
} |
} |
if(deep === true){ |
this.expandChildNodes(true); |
} |
}, |
isHiddenRoot : function(){ |
return this.isRoot && !this.getOwnerTree().rootVisible; |
}, |
collapse : function(deep, anim){ |
if(this.expanded && !this.isHiddenRoot()){ |
if(this.fireEvent("beforecollapse", this, deep, anim) === false){ |
return; |
} |
this.expanded = false; |
if((this.getOwnerTree().animate && anim !== false) || anim){ |
this.ui.animCollapse(function(){ |
this.fireEvent("collapse", this); |
if(deep === true){ |
this.collapseChildNodes(true); |
} |
}.createDelegate(this)); |
return; |
}else{ |
this.ui.collapse(); |
this.fireEvent("collapse", this); |
} |
} |
if(deep === true){ |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++) { |
cs[i].collapse(true, false); |
} |
} |
}, |
delayedExpand : function(delay){ |
if(!this.expandProcId){ |
this.expandProcId = this.expand.defer(delay, this); |
} |
}, |
cancelExpand : function(){ |
if(this.expandProcId){ |
clearTimeout(this.expandProcId); |
} |
this.expandProcId = false; |
}, |
toggle : function(){ |
if(this.expanded){ |
this.collapse(); |
}else{ |
this.expand(); |
} |
}, |
ensureVisible : function(callback){ |
var tree = this.getOwnerTree(); |
tree.expandPath(this.parentNode.getPath(), false, function(){ |
var node = tree.getNodeById(this.id); |
tree.getTreeEl().scrollChildIntoView(node.ui.anchor); |
Ext.callback(callback); |
}.createDelegate(this)); |
}, |
expandChildNodes : function(deep){ |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++) { |
cs[i].expand(deep); |
} |
}, |
collapseChildNodes : function(deep){ |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++) { |
cs[i].collapse(deep); |
} |
}, |
disable : function(){ |
this.disabled = true; |
this.unselect(); |
if(this.rendered && this.ui.onDisableChange){ |
this.ui.onDisableChange(this, true); |
} |
this.fireEvent("disabledchange", this, true); |
}, |
enable : function(){ |
this.disabled = false; |
if(this.rendered && this.ui.onDisableChange){ |
this.ui.onDisableChange(this, false); |
} |
this.fireEvent("disabledchange", this, false); |
}, |
renderChildren : function(suppressEvent){ |
if(suppressEvent !== false){ |
this.fireEvent("beforechildrenrendered", this); |
} |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++){ |
cs[i].render(true); |
} |
this.childrenRendered = true; |
}, |
sort : function(fn, scope){ |
Ext.tree.TreeNode.superclass.sort.apply(this, arguments); |
if(this.childrenRendered){ |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++){ |
cs[i].render(true); |
} |
} |
}, |
render : function(bulkRender){ |
this.ui.render(bulkRender); |
if(!this.rendered){ |
this.getOwnerTree().registerNode(this); |
this.rendered = true; |
if(this.expanded){ |
this.expanded = false; |
this.expand(false, false); |
} |
} |
}, |
renderIndent : function(deep, refresh){ |
if(refresh){ |
this.ui.childIndent = null; |
} |
this.ui.renderIndent(); |
if(deep === true && this.childrenRendered){ |
var cs = this.childNodes; |
for(var i = 0, len = cs.length; i < len; i++){ |
cs[i].renderIndent(true, refresh); |
} |
} |
}, |
beginUpdate : function(){ |
this.childrenRendered = false; |
}, |
endUpdate : function(){ |
if(this.expanded){ |
this.renderChildren(); |
} |
}, |
destroy : function(){ |
for(var i = 0,l = this.childNodes.length; i < l; i++){ |
this.childNodes[i].destroy(); |
} |
this.childNodes = null; |
if(this.ui.destroy){ |
this.ui.destroy(); |
} |
} |
}); |
Ext.tree.AsyncTreeNode = function(config){ |
this.loaded = false; |
this.loading = false; |
Ext.tree.AsyncTreeNode.superclass.constructor.apply(this, arguments); |
this.addEvents('beforeload', 'load'); |
}; |
Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, { |
expand : function(deep, anim, callback){ |
if(this.loading){ |
var timer; |
var f = function(){ |
if(!this.loading){ |
clearInterval(timer); |
this.expand(deep, anim, callback); |
} |
}.createDelegate(this); |
timer = setInterval(f, 200); |
return; |
} |
if(!this.loaded){ |
if(this.fireEvent("beforeload", this) === false){ |
return; |
} |
this.loading = true; |
this.ui.beforeLoad(this); |
var loader = this.loader || this.attributes.loader || this.getOwnerTree().getLoader(); |
if(loader){ |
loader.load(this, this.loadComplete.createDelegate(this, [deep, anim, callback])); |
return; |
} |
} |
Ext.tree.AsyncTreeNode.superclass.expand.call(this, deep, anim, callback); |
}, |
isLoading : function(){ |
return this.loading; |
}, |
loadComplete : function(deep, anim, callback){ |
this.loading = false; |
this.loaded = true; |
this.ui.afterLoad(this); |
this.fireEvent("load", this); |
this.expand(deep, anim, callback); |
}, |
isLoaded : function(){ |
return this.loaded; |
}, |
hasChildNodes : function(){ |
if(!this.isLeaf() && !this.loaded){ |
return true; |
}else{ |
return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this); |
} |
}, |
reload : function(callback){ |
this.collapse(false, false); |
while(this.firstChild){ |
this.removeChild(this.firstChild); |
} |
this.childrenRendered = false; |
this.loaded = false; |
if(this.isHiddenRoot()){ |
this.expanded = false; |
} |
this.expand(false, false, callback); |
} |
}); |
Ext.tree.TreeNodeUI = function(node){ |
this.node = node; |
this.rendered = false; |
this.animating = false; |
this.wasLeaf = true; |
this.ecc = 'x-tree-ec-icon x-tree-elbow'; |
this.emptyIcon = Ext.BLANK_IMAGE_URL; |
}; |
Ext.tree.TreeNodeUI.prototype = { |
removeChild : function(node){ |
if(this.rendered){ |
this.ctNode.removeChild(node.ui.getEl()); |
} |
}, |
beforeLoad : function(){ |
this.addClass("x-tree-node-loading"); |
}, |
afterLoad : function(){ |
this.removeClass("x-tree-node-loading"); |
}, |
onTextChange : function(node, text, oldText){ |
if(this.rendered){ |
this.textNode.innerHTML = text; |
} |
}, |
onDisableChange : function(node, state){ |
this.disabled = state; |
if (this.checkbox) { |
this.checkbox.disabled = state; |
} |
if(state){ |
this.addClass("x-tree-node-disabled"); |
}else{ |
this.removeClass("x-tree-node-disabled"); |
} |
}, |
onSelectedChange : function(state){ |
if(state){ |
this.focus(); |
this.addClass("x-tree-selected"); |
}else{ |
this.removeClass("x-tree-selected"); |
} |
}, |
onMove : function(tree, node, oldParent, newParent, index, refNode){ |
this.childIndent = null; |
if(this.rendered){ |
var targetNode = newParent.ui.getContainer(); |
if(!targetNode){ |
this.holder = document.createElement("div"); |
this.holder.appendChild(this.wrap); |
return; |
} |
var insertBefore = refNode ? refNode.ui.getEl() : null; |
if(insertBefore){ |
targetNode.insertBefore(this.wrap, insertBefore); |
}else{ |
targetNode.appendChild(this.wrap); |
} |
this.node.renderIndent(true); |
} |
}, |
addClass : function(cls){ |
if(this.elNode){ |
Ext.fly(this.elNode).addClass(cls); |
} |
}, |
removeClass : function(cls){ |
if(this.elNode){ |
Ext.fly(this.elNode).removeClass(cls); |
} |
}, |
remove : function(){ |
if(this.rendered){ |
this.holder = document.createElement("div"); |
this.holder.appendChild(this.wrap); |
} |
}, |
fireEvent : function(){ |
return this.node.fireEvent.apply(this.node, arguments); |
}, |
initEvents : function(){ |
this.node.on("move", this.onMove, this); |
if(this.node.disabled){ |
this.addClass("x-tree-node-disabled"); |
if (this.checkbox) { |
this.checkbox.disabled = true; |
} |
} |
if(this.node.hidden){ |
this.hide(); |
} |
var ot = this.node.getOwnerTree(); |
var dd = ot.enableDD || ot.enableDrag || ot.enableDrop; |
if(dd && (!this.node.isRoot || ot.rootVisible)){ |
Ext.dd.Registry.register(this.elNode, { |
node: this.node, |
handles: this.getDDHandles(), |
isHandle: false |
}); |
} |
}, |
getDDHandles : function(){ |
return [this.iconNode, this.textNode, this.elNode]; |
}, |
hide : function(){ |
this.node.hidden = true; |
if(this.wrap){ |
this.wrap.style.display = "none"; |
} |
}, |
show : function(){ |
this.node.hidden = false; |
if(this.wrap){ |
this.wrap.style.display = ""; |
} |
}, |
onContextMenu : function(e){ |
if (this.node.hasListener("contextmenu") || this.node.getOwnerTree().hasListener("contextmenu")) { |
e.preventDefault(); |
this.focus(); |
this.fireEvent("contextmenu", this.node, e); |
} |
}, |
onClick : function(e){ |
if(this.dropping){ |
e.stopEvent(); |
return; |
} |
if(this.fireEvent("beforeclick", this.node, e) !== false){ |
var a = e.getTarget('a'); |
if(!this.disabled && this.node.attributes.href && a){ |
this.fireEvent("click", this.node, e); |
return; |
}else if(a && e.ctrlKey){ |
e.stopEvent(); |
} |
e.preventDefault(); |
if(this.disabled){ |
return; |
} |
if(this.node.attributes.singleClickExpand && !this.animating && this.node.hasChildNodes()){ |
this.node.toggle(); |
} |
this.fireEvent("click", this.node, e); |
}else{ |
e.stopEvent(); |
} |
}, |
onDblClick : function(e){ |
e.preventDefault(); |
if(this.disabled){ |
return; |
} |
if(this.checkbox){ |
this.toggleCheck(); |
} |
if(!this.animating && this.node.hasChildNodes()){ |
this.node.toggle(); |
} |
this.fireEvent("dblclick", this.node, e); |
}, |
onOver : function(e){ |
this.addClass('x-tree-node-over'); |
}, |
onOut : function(e){ |
this.removeClass('x-tree-node-over'); |
}, |
onCheckChange : function(){ |
var checked = this.checkbox.checked; |
this.node.attributes.checked = checked; |
this.fireEvent('checkchange', this.node, checked); |
}, |
ecClick : function(e){ |
if(!this.animating && (this.node.hasChildNodes() || this.node.attributes.expandable)){ |
this.node.toggle(); |
} |
}, |
startDrop : function(){ |
this.dropping = true; |
}, |
endDrop : function(){ |
setTimeout(function(){ |
this.dropping = false; |
}.createDelegate(this), 50); |
}, |
expand : function(){ |
this.updateExpandIcon(); |
this.ctNode.style.display = ""; |
}, |
focus : function(){ |
if(!this.node.preventHScroll){ |
try{this.anchor.focus(); |
}catch(e){} |
}else if(!Ext.isIE){ |
try{ |
var noscroll = this.node.getOwnerTree().getTreeEl().dom; |
var l = noscroll.scrollLeft; |
this.anchor.focus(); |
noscroll.scrollLeft = l; |
}catch(e){} |
} |
}, |
toggleCheck : function(value){ |
var cb = this.checkbox; |
if(cb){ |
cb.checked = (value === undefined ? !cb.checked : value); |
} |
}, |
blur : function(){ |
try{ |
this.anchor.blur(); |
}catch(e){} |
}, |
animExpand : function(callback){ |
var ct = Ext.get(this.ctNode); |
ct.stopFx(); |
if(!this.node.hasChildNodes()){ |
this.updateExpandIcon(); |
this.ctNode.style.display = ""; |
Ext.callback(callback); |
return; |
} |
this.animating = true; |
this.updateExpandIcon(); |
ct.slideIn('t', { |
callback : function(){ |
this.animating = false; |
Ext.callback(callback); |
}, |
scope: this, |
duration: this.node.ownerTree.duration || .25 |
}); |
}, |
highlight : function(){ |
var tree = this.node.getOwnerTree(); |
Ext.fly(this.wrap).highlight( |
tree.hlColor || "C3DAF9", |
{endColor: tree.hlBaseColor} |
); |
}, |
collapse : function(){ |
this.updateExpandIcon(); |
this.ctNode.style.display = "none"; |
}, |
animCollapse : function(callback){ |
var ct = Ext.get(this.ctNode); |
ct.enableDisplayMode('block'); |
ct.stopFx(); |
this.animating = true; |
this.updateExpandIcon(); |
ct.slideOut('t', { |
callback : function(){ |
this.animating = false; |
Ext.callback(callback); |
}, |
scope: this, |
duration: this.node.ownerTree.duration || .25 |
}); |
}, |
getContainer : function(){ |
return this.ctNode; |
}, |
getEl : function(){ |
return this.wrap; |
}, |
appendDDGhost : function(ghostNode){ |
ghostNode.appendChild(this.elNode.cloneNode(true)); |
}, |
getDDRepairXY : function(){ |
return Ext.lib.Dom.getXY(this.iconNode); |
}, |
onRender : function(){ |
this.render(); |
}, |
render : function(bulkRender){ |
var n = this.node, a = n.attributes; |
var targetNode = n.parentNode ? |
n.parentNode.ui.getContainer() : n.ownerTree.innerCt.dom; |
if(!this.rendered){ |
this.rendered = true; |
this.renderElements(n, a, targetNode, bulkRender); |
if(a.qtip){ |
if(this.textNode.setAttributeNS){ |
this.textNode.setAttributeNS("ext", "qtip", a.qtip); |
if(a.qtipTitle){ |
this.textNode.setAttributeNS("ext", "qtitle", a.qtipTitle); |
} |
}else{ |
this.textNode.setAttribute("ext:qtip", a.qtip); |
if(a.qtipTitle){ |
this.textNode.setAttribute("ext:qtitle", a.qtipTitle); |
} |
} |
}else if(a.qtipCfg){ |
a.qtipCfg.target = Ext.id(this.textNode); |
Ext.QuickTips.register(a.qtipCfg); |
} |
this.initEvents(); |
if(!this.node.expanded){ |
this.updateExpandIcon(true); |
} |
}else{ |
if(bulkRender === true) { |
targetNode.appendChild(this.wrap); |
} |
} |
}, |
renderElements : function(n, a, targetNode, bulkRender){ |
this.indentMarkup = n.parentNode ? n.parentNode.ui.getChildIndent() : ''; |
var cb = typeof a.checked == 'boolean'; |
var href = a.href ? a.href : Ext.isGecko ? "" : "#"; |
var buf = ['<li class="x-tree-node"><div ext:tree-node-id="',n.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ', a.cls,'" unselectable="on">', |
'<span class="x-tree-node-indent">',this.indentMarkup,"</span>", |
'<img src="', this.emptyIcon, '" class="x-tree-ec-icon x-tree-elbow" />', |
'<img src="', a.icon || this.emptyIcon, '" class="x-tree-node-icon',(a.icon ? " x-tree-node-inline-icon" : ""),(a.iconCls ? " "+a.iconCls : ""),'" unselectable="on" />', |
cb ? ('<input class="x-tree-node-cb" type="checkbox" ' + (a.checked ? 'checked="checked" />' : '/>')) : '', |
'<a hidefocus="on" class="x-tree-node-anchor" href="',href,'" tabIndex="1" ', |
a.hrefTarget ? ' target="'+a.hrefTarget+'"' : "", '><span unselectable="on">',n.text,"</span></a></div>", |
'<ul class="x-tree-node-ct" style="display:none;"></ul>', |
"</li>"].join(''); |
var nel; |
if(bulkRender !== true && n.nextSibling && (nel = n.nextSibling.ui.getEl())){ |
this.wrap = Ext.DomHelper.insertHtml("beforeBegin", nel, buf); |
}else{ |
this.wrap = Ext.DomHelper.insertHtml("beforeEnd", targetNode, buf); |
} |
this.elNode = this.wrap.childNodes[0]; |
this.ctNode = this.wrap.childNodes[1]; |
var cs = this.elNode.childNodes; |
this.indentNode = cs[0]; |
this.ecNode = cs[1]; |
this.iconNode = cs[2]; |
var index = 3; |
if(cb){ |
this.checkbox = cs[3]; |
index++; |
} |
this.anchor = cs[index]; |
this.textNode = cs[index].firstChild; |
}, |
getAnchor : function(){ |
return this.anchor; |
}, |
getTextEl : function(){ |
return this.textNode; |
}, |
getIconEl : function(){ |
return this.iconNode; |
}, |
isChecked : function(){ |
return this.checkbox ? this.checkbox.checked : false; |
}, |
updateExpandIcon : function(){ |
if(this.rendered){ |
var n = this.node, c1, c2; |
var cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow"; |
var hasChild = n.hasChildNodes(); |
if(hasChild || n.attributes.expandable){ |
if(n.expanded){ |
cls += "-minus"; |
c1 = "x-tree-node-collapsed"; |
c2 = "x-tree-node-expanded"; |
}else{ |
cls += "-plus"; |
c1 = "x-tree-node-expanded"; |
c2 = "x-tree-node-collapsed"; |
} |
if(this.wasLeaf){ |
this.removeClass("x-tree-node-leaf"); |
this.wasLeaf = false; |
} |
if(this.c1 != c1 || this.c2 != c2){ |
Ext.fly(this.elNode).replaceClass(c1, c2); |
this.c1 = c1; this.c2 = c2; |
} |
}else{ |
if(!this.wasLeaf){ |
Ext.fly(this.elNode).replaceClass("x-tree-node-expanded", "x-tree-node-leaf"); |
delete this.c1; |
delete this.c2; |
this.wasLeaf = true; |
} |
} |
var ecc = "x-tree-ec-icon "+cls; |
if(this.ecc != ecc){ |
this.ecNode.className = ecc; |
this.ecc = ecc; |
} |
} |
}, |
getChildIndent : function(){ |
if(!this.childIndent){ |
var buf = []; |
var p = this.node; |
while(p){ |
if(!p.isRoot || (p.isRoot && p.ownerTree.rootVisible)){ |
if(!p.isLast()) { |
buf.unshift('<img src="'+this.emptyIcon+'" class="x-tree-elbow-line" />'); |
} else { |
buf.unshift('<img src="'+this.emptyIcon+'" class="x-tree-icon" />'); |
} |
} |
p = p.parentNode; |
} |
this.childIndent = buf.join(""); |
} |
return this.childIndent; |
}, |
renderIndent : function(){ |
if(this.rendered){ |
var indent = ""; |
var p = this.node.parentNode; |
if(p){ |
indent = p.ui.getChildIndent(); |
} |
if(this.indentMarkup != indent){ |
this.indentNode.innerHTML = indent; |
this.indentMarkup = indent; |
} |
this.updateExpandIcon(); |
} |
}, |
destroy : function(){ |
if(this.elNode){ |
Ext.dd.Registry.unregister(this.elNode.id); |
} |
delete this.elNode; |
delete this.ctNode; |
delete this.indentNode; |
delete this.ecNode; |
delete this.iconNode; |
delete this.checkbox; |
delete this.anchor; |
delete this.textNode; |
Ext.removeNode(this.ctNode); |
} |
}; |
Ext.tree.RootTreeNodeUI = Ext.extend(Ext.tree.TreeNodeUI, { |
render : function(){ |
if(!this.rendered){ |
var targetNode = this.node.ownerTree.innerCt.dom; |
this.node.expanded = true; |
targetNode.innerHTML = '<div class="x-tree-root-node"></div>'; |
this.wrap = this.ctNode = targetNode.firstChild; |
} |
}, |
collapse : Ext.emptyFn, |
expand : Ext.emptyFn |
}); |
Ext.tree.TreeLoader = function(config){ |
this.baseParams = {}; |
this.requestMethod = "POST"; |
Ext.apply(this, config); |
this.addEvents( |
"beforeload", |
"load", |
"loadexception" |
); |
Ext.tree.TreeLoader.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { |
uiProviders : {}, |
clearOnLoad : true, |
load : function(node, callback){ |
if(this.clearOnLoad){ |
while(node.firstChild){ |
node.removeChild(node.firstChild); |
} |
} |
if(this.doPreload(node)){ |
if(typeof callback == "function"){ |
callback(); |
} |
}else if(this.dataUrl||this.url){ |
this.requestData(node, callback); |
} |
}, |
doPreload : function(node){ |
if(node.attributes.children){ |
if(node.childNodes.length < 1){ |
var cs = node.attributes.children; |
node.beginUpdate(); |
for(var i = 0, len = cs.length; i < len; i++){ |
var cn = node.appendChild(this.createNode(cs[i])); |
if(this.preloadChildren){ |
this.doPreload(cn); |
} |
} |
node.endUpdate(); |
} |
return true; |
}else { |
return false; |
} |
}, |
getParams: function(node){ |
var buf = [], bp = this.baseParams; |
for(var key in bp){ |
if(typeof bp[key] != "function"){ |
buf.push(encodeURIComponent(key), "=", encodeURIComponent(bp[key]), "&"); |
} |
} |
buf.push("node=", encodeURIComponent(node.id)); |
return buf.join(""); |
}, |
requestData : function(node, callback){ |
if(this.fireEvent("beforeload", this, node, callback) !== false){ |
this.transId = Ext.Ajax.request({ |
method:this.requestMethod, |
url: this.dataUrl||this.url, |
success: this.handleResponse, |
failure: this.handleFailure, |
scope: this, |
argument: {callback: callback, node: node}, |
params: this.getParams(node) |
}); |
}else{ |
if(typeof callback == "function"){ |
callback(); |
} |
} |
}, |
isLoading : function(){ |
return this.transId ? true : false; |
}, |
abort : function(){ |
if(this.isLoading()){ |
Ext.Ajax.abort(this.transId); |
} |
}, |
createNode : function(attr){ |
if(this.baseAttrs){ |
Ext.applyIf(attr, this.baseAttrs); |
} |
if(this.applyLoader !== false){ |
attr.loader = this; |
} |
if(typeof attr.uiProvider == 'string'){ |
attr.uiProvider = this.uiProviders[attr.uiProvider] || eval(attr.uiProvider); |
} |
return(attr.leaf ? |
new Ext.tree.TreeNode(attr) : |
new Ext.tree.AsyncTreeNode(attr)); |
}, |
processResponse : function(response, node, callback){ |
var json = response.responseText; |
try { |
var o = eval("("+json+")"); |
node.beginUpdate(); |
for(var i = 0, len = o.length; i < len; i++){ |
var n = this.createNode(o[i]); |
if(n){ |
node.appendChild(n); |
} |
} |
node.endUpdate(); |
if(typeof callback == "function"){ |
callback(this, node); |
} |
}catch(e){ |
this.handleFailure(response); |
} |
}, |
handleResponse : function(response){ |
this.transId = false; |
var a = response.argument; |
this.processResponse(response, a.node, a.callback); |
this.fireEvent("load", this, a.node, response); |
}, |
handleFailure : function(response){ |
this.transId = false; |
var a = response.argument; |
this.fireEvent("loadexception", this, a.node, response); |
if(typeof a.callback == "function"){ |
a.callback(this, a.node); |
} |
} |
}); |
Ext.tree.TreeFilter = function(tree, config){ |
this.tree = tree; |
this.filtered = {}; |
Ext.apply(this, config); |
}; |
Ext.tree.TreeFilter.prototype = { |
clearBlank:false, |
reverse:false, |
autoClear:false, |
remove:false, |
filter : function(value, attr, startNode){ |
attr = attr || "text"; |
var f; |
if(typeof value == "string"){ |
var vlen = value.length; |
if(vlen == 0 && this.clearBlank){ |
this.clear(); |
return; |
} |
value = value.toLowerCase(); |
f = function(n){ |
return n.attributes[attr].substr(0, vlen).toLowerCase() == value; |
}; |
}else if(value.exec){ |
f = function(n){ |
return value.test(n.attributes[attr]); |
}; |
}else{ |
throw 'Illegal filter type, must be string or regex'; |
} |
this.filterBy(f, null, startNode); |
}, |
filterBy : function(fn, scope, startNode){ |
startNode = startNode || this.tree.root; |
if(this.autoClear){ |
this.clear(); |
} |
var af = this.filtered, rv = this.reverse; |
var f = function(n){ |
if(n == startNode){ |
return true; |
} |
if(af[n.id]){ |
return false; |
} |
var m = fn.call(scope || n, n); |
if(!m || rv){ |
af[n.id] = n; |
n.ui.hide(); |
return false; |
} |
return true; |
}; |
startNode.cascade(f); |
if(this.remove){ |
for(var id in af){ |
if(typeof id != "function"){ |
var n = af[id]; |
if(n && n.parentNode){ |
n.parentNode.removeChild(n); |
} |
} |
} |
} |
}, |
clear : function(){ |
var t = this.tree; |
var af = this.filtered; |
for(var id in af){ |
if(typeof id != "function"){ |
var n = af[id]; |
if(n){ |
n.ui.show(); |
} |
} |
} |
this.filtered = {}; |
} |
}; |
Ext.tree.TreeSorter = function(tree, config){ |
Ext.apply(this, config); |
tree.on("beforechildrenrendered", this.doSort, this); |
tree.on("append", this.updateSort, this); |
tree.on("insert", this.updateSort, this); |
tree.on("textchange", this.updateSortParent, this); |
var dsc = this.dir && this.dir.toLowerCase() == "desc"; |
var p = this.property || "text"; |
var sortType = this.sortType; |
var fs = this.folderSort; |
var cs = this.caseSensitive === true; |
var leafAttr = this.leafAttr || 'leaf'; |
this.sortFn = function(n1, n2){ |
if(fs){ |
if(n1.attributes[leafAttr] && !n2.attributes[leafAttr]){ |
return 1; |
} |
if(!n1.attributes[leafAttr] && n2.attributes[leafAttr]){ |
return -1; |
} |
} |
var v1 = sortType ? sortType(n1) : (cs ? n1.attributes[p] : n1.attributes[p].toUpperCase()); |
var v2 = sortType ? sortType(n2) : (cs ? n2.attributes[p] : n2.attributes[p].toUpperCase()); |
if(v1 < v2){ |
return dsc ? +1 : -1; |
}else if(v1 > v2){ |
return dsc ? -1 : +1; |
}else{ |
return 0; |
} |
}; |
}; |
Ext.tree.TreeSorter.prototype = { |
doSort : function(node){ |
node.sort(this.sortFn); |
}, |
compareNodes : function(n1, n2){ |
return (n1.text.toUpperCase() > n2.text.toUpperCase() ? 1 : -1); |
}, |
updateSort : function(tree, node){ |
if(node.childrenRendered){ |
this.doSort.defer(1, this, [node]); |
} |
}, |
updateSortParent : function(node){ |
var p = node.parentNode; |
if(p && p.childrenRendered){ |
this.doSort.defer(1, this, [p]); |
} |
} |
}; |
if(Ext.dd.DropZone){ |
Ext.tree.TreeDropZone = function(tree, config){ |
this.allowParentInsert = false; |
this.allowContainerDrop = false; |
this.appendOnly = false; |
Ext.tree.TreeDropZone.superclass.constructor.call(this, tree.innerCt, config); |
this.tree = tree; |
this.dragOverData = {}; |
this.lastInsertClass = "x-tree-no-status"; |
}; |
Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { |
ddGroup : "TreeDD", |
expandDelay : 1000, |
expandNode : function(node){ |
if(node.hasChildNodes() && !node.isExpanded()){ |
node.expand(false, null, this.triggerCacheRefresh.createDelegate(this)); |
} |
}, |
queueExpand : function(node){ |
this.expandProcId = this.expandNode.defer(this.expandDelay, this, [node]); |
}, |
cancelExpand : function(){ |
if(this.expandProcId){ |
clearTimeout(this.expandProcId); |
this.expandProcId = false; |
} |
}, |
isValidDropPoint : function(n, pt, dd, e, data){ |
if(!n || !data){ return false; } |
var targetNode = n.node; |
var dropNode = data.node; |
if(!(targetNode && targetNode.isTarget && pt)){ |
return false; |
} |
if(pt == "append" && targetNode.allowChildren === false){ |
return false; |
} |
if((pt == "above" || pt == "below") && (targetNode.parentNode && targetNode.parentNode.allowChildren === false)){ |
return false; |
} |
if(dropNode && (targetNode == dropNode || dropNode.contains(targetNode))){ |
return false; |
} |
var overEvent = this.dragOverData; |
overEvent.tree = this.tree; |
overEvent.target = targetNode; |
overEvent.data = data; |
overEvent.point = pt; |
overEvent.source = dd; |
overEvent.rawEvent = e; |
overEvent.dropNode = dropNode; |
overEvent.cancel = false; |
var result = this.tree.fireEvent("nodedragover", overEvent); |
return overEvent.cancel === false && result !== false; |
}, |
getDropPoint : function(e, n, dd){ |
var tn = n.node; |
if(tn.isRoot){ |
return tn.allowChildren !== false ? "append" : false; |
} |
var dragEl = n.ddel; |
var t = Ext.lib.Dom.getY(dragEl), b = t + dragEl.offsetHeight; |
var y = Ext.lib.Event.getPageY(e); |
var noAppend = tn.allowChildren === false || tn.isLeaf(); |
if(this.appendOnly || tn.parentNode.allowChildren === false){ |
return noAppend ? false : "append"; |
} |
var noBelow = false; |
if(!this.allowParentInsert){ |
noBelow = tn.hasChildNodes() && tn.isExpanded(); |
} |
var q = (b - t) / (noAppend ? 2 : 3); |
if(y >= t && y < (t + q)){ |
return "above"; |
}else if(!noBelow && (noAppend || y >= b-q && y <= b)){ |
return "below"; |
}else{ |
return "append"; |
} |
}, |
onNodeEnter : function(n, dd, e, data){ |
this.cancelExpand(); |
}, |
onNodeOver : function(n, dd, e, data){ |
var pt = this.getDropPoint(e, n, dd); |
var node = n.node; |
if(!this.expandProcId && pt == "append" && node.hasChildNodes() && !n.node.isExpanded()){ |
this.queueExpand(node); |
}else if(pt != "append"){ |
this.cancelExpand(); |
} |
var returnCls = this.dropNotAllowed; |
if(this.isValidDropPoint(n, pt, dd, e, data)){ |
if(pt){ |
var el = n.ddel; |
var cls; |
if(pt == "above"){ |
returnCls = n.node.isFirst() ? "x-tree-drop-ok-above" : "x-tree-drop-ok-between"; |
cls = "x-tree-drag-insert-above"; |
}else if(pt == "below"){ |
returnCls = n.node.isLast() ? "x-tree-drop-ok-below" : "x-tree-drop-ok-between"; |
cls = "x-tree-drag-insert-below"; |
}else{ |
returnCls = "x-tree-drop-ok-append"; |
cls = "x-tree-drag-append"; |
} |
if(this.lastInsertClass != cls){ |
Ext.fly(el).replaceClass(this.lastInsertClass, cls); |
this.lastInsertClass = cls; |
} |
} |
} |
return returnCls; |
}, |
onNodeOut : function(n, dd, e, data){ |
this.cancelExpand(); |
this.removeDropIndicators(n); |
}, |
onNodeDrop : function(n, dd, e, data){ |
var point = this.getDropPoint(e, n, dd); |
var targetNode = n.node; |
targetNode.ui.startDrop(); |
if(!this.isValidDropPoint(n, point, dd, e, data)){ |
targetNode.ui.endDrop(); |
return false; |
} |
var dropNode = data.node || (dd.getTreeNode ? dd.getTreeNode(data, targetNode, point, e) : null); |
var dropEvent = { |
tree : this.tree, |
target: targetNode, |
data: data, |
point: point, |
source: dd, |
rawEvent: e, |
dropNode: dropNode, |
cancel: !dropNode, |
dropStatus: false |
}; |
var retval = this.tree.fireEvent("beforenodedrop", dropEvent); |
if(retval === false || dropEvent.cancel === true || !dropEvent.dropNode){ |
targetNode.ui.endDrop(); |
return dropEvent.dropStatus; |
} |
targetNode = dropEvent.target; |
if(point == "append" && !targetNode.isExpanded()){ |
targetNode.expand(false, null, function(){ |
this.completeDrop(dropEvent); |
}.createDelegate(this)); |
}else{ |
this.completeDrop(dropEvent); |
} |
return true; |
}, |
completeDrop : function(de){ |
var ns = de.dropNode, p = de.point, t = de.target; |
if(!Ext.isArray(ns)){ |
ns = [ns]; |
} |
var n; |
for(var i = 0, len = ns.length; i < len; i++){ |
n = ns[i]; |
if(p == "above"){ |
t.parentNode.insertBefore(n, t); |
}else if(p == "below"){ |
t.parentNode.insertBefore(n, t.nextSibling); |
}else{ |
t.appendChild(n); |
} |
} |
n.ui.focus(); |
if(this.tree.hlDrop){ |
n.ui.highlight(); |
} |
t.ui.endDrop(); |
this.tree.fireEvent("nodedrop", de); |
}, |
afterNodeMoved : function(dd, data, e, targetNode, dropNode){ |
if(this.tree.hlDrop){ |
dropNode.ui.focus(); |
dropNode.ui.highlight(); |
} |
this.tree.fireEvent("nodedrop", this.tree, targetNode, data, dd, e); |
}, |
getTree : function(){ |
return this.tree; |
}, |
removeDropIndicators : function(n){ |
if(n && n.ddel){ |
var el = n.ddel; |
Ext.fly(el).removeClass([ |
"x-tree-drag-insert-above", |
"x-tree-drag-insert-below", |
"x-tree-drag-append"]); |
this.lastInsertClass = "_noclass"; |
} |
}, |
beforeDragDrop : function(target, e, id){ |
this.cancelExpand(); |
return true; |
}, |
afterRepair : function(data){ |
if(data && Ext.enableFx){ |
data.node.ui.highlight(); |
} |
this.hideProxy(); |
} |
}); |
} |
if(Ext.dd.DragZone){ |
Ext.tree.TreeDragZone = function(tree, config){ |
Ext.tree.TreeDragZone.superclass.constructor.call(this, tree.getTreeEl(), config); |
this.tree = tree; |
}; |
Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, { |
ddGroup : "TreeDD", |
onBeforeDrag : function(data, e){ |
var n = data.node; |
return n && n.draggable && !n.disabled; |
}, |
onInitDrag : function(e){ |
var data = this.dragData; |
this.tree.getSelectionModel().select(data.node); |
this.tree.eventModel.disable(); |
this.proxy.update(""); |
data.node.ui.appendDDGhost(this.proxy.ghost.dom); |
this.tree.fireEvent("startdrag", this.tree, data.node, e); |
}, |
getRepairXY : function(e, data){ |
return data.node.ui.getDDRepairXY(); |
}, |
onEndDrag : function(data, e){ |
this.tree.eventModel.enable.defer(100, this.tree.eventModel); |
this.tree.fireEvent("enddrag", this.tree, data.node, e); |
}, |
onValidDrop : function(dd, e, id){ |
this.tree.fireEvent("dragdrop", this.tree, this.dragData.node, dd, e); |
this.hideProxy(); |
}, |
beforeInvalidDrop : function(e, id){ |
var sm = this.tree.getSelectionModel(); |
sm.clearSelections(); |
sm.select(this.dragData.node); |
} |
}); |
} |
Ext.tree.TreeEditor = function(tree, config){ |
config = config || {}; |
var field = config.events ? config : new Ext.form.TextField(config); |
Ext.tree.TreeEditor.superclass.constructor.call(this, field); |
this.tree = tree; |
if(!tree.rendered){ |
tree.on('render', this.initEditor, this); |
}else{ |
this.initEditor(tree); |
} |
}; |
Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { |
alignment: "l-l", |
autoSize: false, |
hideEl : false, |
cls: "x-small-editor x-tree-editor", |
shim:false, |
shadow:"frame", |
maxWidth: 250, |
editDelay : 350, |
initEditor : function(tree){ |
tree.on('beforeclick', this.beforeNodeClick, this); |
tree.on('dblclick', this.onNodeDblClick, this); |
this.on('complete', this.updateNode, this); |
this.on('beforestartedit', this.fitToTree, this); |
this.on('startedit', this.bindScroll, this, {delay:10}); |
this.on('specialkey', this.onSpecialKey, this); |
}, |
fitToTree : function(ed, el){ |
var td = this.tree.getTreeEl().dom, nd = el.dom; |
if(td.scrollLeft > nd.offsetLeft){ td.scrollLeft = nd.offsetLeft; |
} |
var w = Math.min( |
this.maxWidth, |
(td.clientWidth > 20 ? td.clientWidth : td.offsetWidth) - Math.max(0, nd.offsetLeft-td.scrollLeft) - 5); |
this.setSize(w, ''); |
}, |
triggerEdit : function(node, defer){ |
this.completeEdit(); |
if(node.attributes.editable !== false){ |
this.editNode = node; |
this.autoEditTimer = this.startEdit.defer(this.editDelay, this, [node.ui.textNode, node.text]); |
return false; |
} |
}, |
bindScroll : function(){ |
this.tree.getTreeEl().on('scroll', this.cancelEdit, this); |
}, |
beforeNodeClick : function(node, e){ |
clearTimeout(this.autoEditTimer); |
if(this.tree.getSelectionModel().isSelected(node)){ |
e.stopEvent(); |
return this.triggerEdit(node); |
} |
}, |
onNodeDblClick : function(node, e){ |
clearTimeout(this.autoEditTimer); |
}, |
updateNode : function(ed, value){ |
this.tree.getTreeEl().un('scroll', this.cancelEdit, this); |
this.editNode.setText(value); |
}, |
onHide : function(){ |
Ext.tree.TreeEditor.superclass.onHide.call(this); |
if(this.editNode){ |
this.editNode.ui.focus.defer(50, this.editNode.ui); |
} |
}, |
onSpecialKey : function(field, e){ |
var k = e.getKey(); |
if(k == e.ESC){ |
e.stopEvent(); |
this.cancelEdit(); |
}else if(k == e.ENTER && !e.hasModifier()){ |
e.stopEvent(); |
this.completeEdit(); |
} |
} |
}); |
Ext.menu.Menu = function(config){ |
if(Ext.isArray(config)){ |
config = {items:config}; |
} |
Ext.apply(this, config); |
this.id = this.id || Ext.id(); |
this.addEvents( |
'beforeshow', |
'beforehide', |
'show', |
'hide', |
'click', |
'mouseover', |
'mouseout', |
'itemclick' |
); |
Ext.menu.MenuMgr.register(this); |
Ext.menu.Menu.superclass.constructor.call(this); |
var mis = this.items; |
this.items = new Ext.util.MixedCollection(); |
if(mis){ |
this.add.apply(this, mis); |
} |
}; |
Ext.extend(Ext.menu.Menu, Ext.util.Observable, { |
minWidth : 120, |
shadow : "sides", |
subMenuAlign : "tl-tr?", |
defaultAlign : "tl-bl?", |
allowOtherMenus : false, |
hidden:true, |
createEl : function(){ |
return new Ext.Layer({ |
cls: "x-menu", |
shadow:this.shadow, |
constrain: false, |
parentEl: this.parentEl || document.body, |
zindex:15000 |
}); |
}, |
render : function(){ |
if(this.el){ |
return; |
} |
var el = this.el = this.createEl(); |
if(!this.keyNav){ |
this.keyNav = new Ext.menu.MenuNav(this); |
} |
if(this.plain){ |
el.addClass("x-menu-plain"); |
} |
if(this.cls){ |
el.addClass(this.cls); |
} |
this.focusEl = el.createChild({ |
tag: "a", cls: "x-menu-focus", href: "#", onclick: "return false;", tabIndex:"-1" |
}); |
var ul = el.createChild({tag: "ul", cls: "x-menu-list"}); |
ul.on("click", this.onClick, this); |
ul.on("mouseover", this.onMouseOver, this); |
ul.on("mouseout", this.onMouseOut, this); |
this.items.each(function(item){ |
var li = document.createElement("li"); |
li.className = "x-menu-list-item"; |
ul.dom.appendChild(li); |
item.render(li, this); |
}, this); |
this.ul = ul; |
this.autoWidth(); |
}, |
autoWidth : function(){ |
var el = this.el, ul = this.ul; |
if(!el){ |
return; |
} |
var w = this.width; |
if(w){ |
el.setWidth(w); |
}else if(Ext.isIE){ |
el.setWidth(this.minWidth); |
var t = el.dom.offsetWidth; el.setWidth(ul.getWidth()+el.getFrameWidth("lr")); |
} |
}, |
delayAutoWidth : function(){ |
if(this.el){ |
if(!this.awTask){ |
this.awTask = new Ext.util.DelayedTask(this.autoWidth, this); |
} |
this.awTask.delay(20); |
} |
}, |
findTargetItem : function(e){ |
var t = e.getTarget(".x-menu-list-item", this.ul, true); |
if(t && t.menuItemId){ |
return this.items.get(t.menuItemId); |
} |
}, |
onClick : function(e){ |
var t; |
if(t = this.findTargetItem(e)){ |
t.onClick(e); |
this.fireEvent("click", this, t, e); |
} |
}, |
setActiveItem : function(item, autoExpand){ |
if(item != this.activeItem){ |
if(this.activeItem){ |
this.activeItem.deactivate(); |
} |
this.activeItem = item; |
item.activate(autoExpand); |
}else if(autoExpand){ |
item.expandMenu(); |
} |
}, |
tryActivate : function(start, step){ |
var items = this.items; |
for(var i = start, len = items.length; i >= 0 && i < len; i+= step){ |
var item = items.get(i); |
if(!item.disabled && item.canActivate){ |
this.setActiveItem(item, false); |
return item; |
} |
} |
return false; |
}, |
onMouseOver : function(e){ |
var t; |
if(t = this.findTargetItem(e)){ |
if(t.canActivate && !t.disabled){ |
this.setActiveItem(t, true); |
} |
} |
this.fireEvent("mouseover", this, e, t); |
}, |
onMouseOut : function(e){ |
var t; |
if(t = this.findTargetItem(e)){ |
if(t == this.activeItem && t.shouldDeactivate(e)){ |
this.activeItem.deactivate(); |
delete this.activeItem; |
} |
} |
this.fireEvent("mouseout", this, e, t); |
}, |
isVisible : function(){ |
return this.el && !this.hidden; |
}, |
show : function(el, pos, parentMenu){ |
this.parentMenu = parentMenu; |
if(!this.el){ |
this.render(); |
} |
this.fireEvent("beforeshow", this); |
this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign), parentMenu, false); |
}, |
showAt : function(xy, parentMenu, _e){ |
this.parentMenu = parentMenu; |
if(!this.el){ |
this.render(); |
} |
if(_e !== false){ |
this.fireEvent("beforeshow", this); |
xy = this.el.adjustForConstraints(xy); |
} |
this.el.setXY(xy); |
this.el.show(); |
this.hidden = false; |
this.focus(); |
this.fireEvent("show", this); |
}, |
focus : function(){ |
if(!this.hidden){ |
this.doFocus.defer(50, this); |
} |
}, |
doFocus : function(){ |
if(!this.hidden){ |
this.focusEl.focus(); |
} |
}, |
hide : function(deep){ |
if(this.el && this.isVisible()){ |
this.fireEvent("beforehide", this); |
if(this.activeItem){ |
this.activeItem.deactivate(); |
this.activeItem = null; |
} |
this.el.hide(); |
this.hidden = true; |
this.fireEvent("hide", this); |
} |
if(deep === true && this.parentMenu){ |
this.parentMenu.hide(true); |
} |
}, |
add : function(){ |
var a = arguments, l = a.length, item; |
for(var i = 0; i < l; i++){ |
var el = a[i]; |
if(el.render){ item = this.addItem(el); |
}else if(typeof el == "string"){ if(el == "separator" || el == "-"){ |
item = this.addSeparator(); |
}else{ |
item = this.addText(el); |
} |
}else if(el.tagName || el.el){ item = this.addElement(el); |
}else if(typeof el == "object"){ Ext.applyIf(el, this.defaults); |
item = this.addMenuItem(el); |
} |
} |
return item; |
}, |
getEl : function(){ |
if(!this.el){ |
this.render(); |
} |
return this.el; |
}, |
addSeparator : function(){ |
return this.addItem(new Ext.menu.Separator()); |
}, |
addElement : function(el){ |
return this.addItem(new Ext.menu.BaseItem(el)); |
}, |
addItem : function(item){ |
this.items.add(item); |
if(this.ul){ |
var li = document.createElement("li"); |
li.className = "x-menu-list-item"; |
this.ul.dom.appendChild(li); |
item.render(li, this); |
this.delayAutoWidth(); |
} |
return item; |
}, |
addMenuItem : function(config){ |
if(!(config instanceof Ext.menu.Item)){ |
if(typeof config.checked == "boolean"){ config = new Ext.menu.CheckItem(config); |
}else{ |
config = new Ext.menu.Item(config); |
} |
} |
return this.addItem(config); |
}, |
addText : function(text){ |
return this.addItem(new Ext.menu.TextItem(text)); |
}, |
insert : function(index, item){ |
this.items.insert(index, item); |
if(this.ul){ |
var li = document.createElement("li"); |
li.className = "x-menu-list-item"; |
this.ul.dom.insertBefore(li, this.ul.dom.childNodes[index]); |
item.render(li, this); |
this.delayAutoWidth(); |
} |
return item; |
}, |
remove : function(item){ |
this.items.removeKey(item.id); |
item.destroy(); |
}, |
removeAll : function(){ |
var f; |
while(f = this.items.first()){ |
this.remove(f); |
} |
}, |
destroy : function(){ |
this.beforeDestroy(); |
Ext.menu.MenuMgr.unregister(this); |
if (this.keyNav) { |
this.keyNav.disable(); |
} |
this.removeAll(); |
if (this.ul) { |
this.ul.removeAllListeners(); |
} |
if (this.el) { |
this.el.destroy(); |
} |
}, |
beforeDestroy : Ext.emptyFn |
}); |
Ext.menu.MenuNav = function(menu){ |
Ext.menu.MenuNav.superclass.constructor.call(this, menu.el); |
this.scope = this.menu = menu; |
}; |
Ext.extend(Ext.menu.MenuNav, Ext.KeyNav, { |
doRelay : function(e, h){ |
var k = e.getKey(); |
if(!this.menu.activeItem && e.isNavKeyPress() && k != e.SPACE && k != e.RETURN){ |
this.menu.tryActivate(0, 1); |
return false; |
} |
return h.call(this.scope || this, e, this.menu); |
}, |
up : function(e, m){ |
if(!m.tryActivate(m.items.indexOf(m.activeItem)-1, -1)){ |
m.tryActivate(m.items.length-1, -1); |
} |
}, |
down : function(e, m){ |
if(!m.tryActivate(m.items.indexOf(m.activeItem)+1, 1)){ |
m.tryActivate(0, 1); |
} |
}, |
right : function(e, m){ |
if(m.activeItem){ |
m.activeItem.expandMenu(true); |
} |
}, |
left : function(e, m){ |
m.hide(); |
if(m.parentMenu && m.parentMenu.activeItem){ |
m.parentMenu.activeItem.activate(); |
} |
}, |
enter : function(e, m){ |
if(m.activeItem){ |
e.stopPropagation(); |
m.activeItem.onClick(e); |
m.fireEvent("click", this, m.activeItem); |
return true; |
} |
} |
}); |
Ext.menu.MenuMgr = function(){ |
var menus, active, groups = {}, attached = false, lastShow = new Date(); |
function init(){ |
menus = {}; |
active = new Ext.util.MixedCollection(); |
Ext.getDoc().addKeyListener(27, function(){ |
if(active.length > 0){ |
hideAll(); |
} |
}); |
} |
function hideAll(){ |
if(active && active.length > 0){ |
var c = active.clone(); |
c.each(function(m){ |
m.hide(); |
}); |
} |
} |
function onHide(m){ |
active.remove(m); |
if(active.length < 1){ |
Ext.getDoc().un("mousedown", onMouseDown); |
attached = false; |
} |
} |
function onShow(m){ |
var last = active.last(); |
lastShow = new Date(); |
active.add(m); |
if(!attached){ |
Ext.getDoc().on("mousedown", onMouseDown); |
attached = true; |
} |
if(m.parentMenu){ |
m.getEl().setZIndex(parseInt(m.parentMenu.getEl().getStyle("z-index"), 10) + 3); |
m.parentMenu.activeChild = m; |
}else if(last && last.isVisible()){ |
m.getEl().setZIndex(parseInt(last.getEl().getStyle("z-index"), 10) + 3); |
} |
} |
function onBeforeHide(m){ |
if(m.activeChild){ |
m.activeChild.hide(); |
} |
if(m.autoHideTimer){ |
clearTimeout(m.autoHideTimer); |
delete m.autoHideTimer; |
} |
} |
function onBeforeShow(m){ |
var pm = m.parentMenu; |
if(!pm && !m.allowOtherMenus){ |
hideAll(); |
}else if(pm && pm.activeChild){ |
pm.activeChild.hide(); |
} |
} |
function onMouseDown(e){ |
if(lastShow.getElapsed() > 50 && active.length > 0 && !e.getTarget(".x-menu")){ |
hideAll(); |
} |
} |
function onBeforeCheck(mi, state){ |
if(state){ |
var g = groups[mi.group]; |
for(var i = 0, l = g.length; i < l; i++){ |
if(g[i] != mi){ |
g[i].setChecked(false); |
} |
} |
} |
} |
return { |
hideAll : function(){ |
hideAll(); |
}, |
register : function(menu){ |
if(!menus){ |
init(); |
} |
menus[menu.id] = menu; |
menu.on("beforehide", onBeforeHide); |
menu.on("hide", onHide); |
menu.on("beforeshow", onBeforeShow); |
menu.on("show", onShow); |
var g = menu.group; |
if(g && menu.events["checkchange"]){ |
if(!groups[g]){ |
groups[g] = []; |
} |
groups[g].push(menu); |
menu.on("checkchange", onCheck); |
} |
}, |
get : function(menu){ |
if(typeof menu == "string"){ if(!menus){ return null; |
} |
return menus[menu]; |
}else if(menu.events){ return menu; |
}else if(typeof menu.length == 'number'){ return new Ext.menu.Menu({items:menu}); |
}else{ return new Ext.menu.Menu(menu); |
} |
}, |
unregister : function(menu){ |
delete menus[menu.id]; |
menu.un("beforehide", onBeforeHide); |
menu.un("hide", onHide); |
menu.un("beforeshow", onBeforeShow); |
menu.un("show", onShow); |
var g = menu.group; |
if(g && menu.events["checkchange"]){ |
groups[g].remove(menu); |
menu.un("checkchange", onCheck); |
} |
}, |
registerCheckable : function(menuItem){ |
var g = menuItem.group; |
if(g){ |
if(!groups[g]){ |
groups[g] = []; |
} |
groups[g].push(menuItem); |
menuItem.on("beforecheckchange", onBeforeCheck); |
} |
}, |
unregisterCheckable : function(menuItem){ |
var g = menuItem.group; |
if(g){ |
groups[g].remove(menuItem); |
menuItem.un("beforecheckchange", onBeforeCheck); |
} |
}, |
getCheckedItem : function(groupId){ |
var g = groups[groupId]; |
if(g){ |
for(var i = 0, l = g.length; i < l; i++){ |
if(g[i].checked){ |
return g[i]; |
} |
} |
} |
return null; |
}, |
setCheckedItem : function(groupId, itemId){ |
var g = groups[groupId]; |
if(g){ |
for(var i = 0, l = g.length; i < l; i++){ |
if(g[i].id == itemId){ |
g[i].setChecked(true); |
} |
} |
} |
return null; |
} |
}; |
}(); |
Ext.menu.BaseItem = function(config){ |
Ext.menu.BaseItem.superclass.constructor.call(this, config); |
this.addEvents( |
'click', |
'activate', |
'deactivate' |
); |
if(this.handler){ |
this.on("click", this.handler, this.scope); |
} |
}; |
Ext.extend(Ext.menu.BaseItem, Ext.Component, { |
canActivate : false, |
activeClass : "x-menu-item-active", |
hideOnClick : true, |
hideDelay : 100, |
ctype: "Ext.menu.BaseItem", |
actionMode : "container", |
render : function(container, parentMenu){ |
this.parentMenu = parentMenu; |
Ext.menu.BaseItem.superclass.render.call(this, container); |
this.container.menuItemId = this.id; |
}, |
onRender : function(container, position){ |
this.el = Ext.get(this.el); |
container.dom.appendChild(this.el.dom); |
}, |
setHandler : function(handler, scope){ |
if(this.handler){ |
this.un("click", this.handler, this.scope); |
} |
this.on("click", this.handler = handler, this.scope = scope); |
}, |
onClick : function(e){ |
if(!this.disabled && this.fireEvent("click", this, e) !== false |
&& this.parentMenu.fireEvent("itemclick", this, e) !== false){ |
this.handleClick(e); |
}else{ |
e.stopEvent(); |
} |
}, |
activate : function(){ |
if(this.disabled){ |
return false; |
} |
var li = this.container; |
li.addClass(this.activeClass); |
this.region = li.getRegion().adjust(2, 2, -2, -2); |
this.fireEvent("activate", this); |
return true; |
}, |
deactivate : function(){ |
this.container.removeClass(this.activeClass); |
this.fireEvent("deactivate", this); |
}, |
shouldDeactivate : function(e){ |
return !this.region || !this.region.contains(e.getPoint()); |
}, |
handleClick : function(e){ |
if(this.hideOnClick){ |
this.parentMenu.hide.defer(this.hideDelay, this.parentMenu, [true]); |
} |
}, |
expandMenu : function(autoActivate){ |
}, |
hideMenu : function(){ |
} |
}); |
Ext.menu.TextItem = function(text){ |
this.text = text; |
Ext.menu.TextItem.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.menu.TextItem, Ext.menu.BaseItem, { |
hideOnClick : false, |
itemCls : "x-menu-text", |
onRender : function(){ |
var s = document.createElement("span"); |
s.className = this.itemCls; |
s.innerHTML = this.text; |
this.el = s; |
Ext.menu.TextItem.superclass.onRender.apply(this, arguments); |
} |
}); |
Ext.menu.Separator = function(config){ |
Ext.menu.Separator.superclass.constructor.call(this, config); |
}; |
Ext.extend(Ext.menu.Separator, Ext.menu.BaseItem, { |
itemCls : "x-menu-sep", |
hideOnClick : false, |
onRender : function(li){ |
var s = document.createElement("span"); |
s.className = this.itemCls; |
s.innerHTML = " "; |
this.el = s; |
li.addClass("x-menu-sep-li"); |
Ext.menu.Separator.superclass.onRender.apply(this, arguments); |
} |
}); |
Ext.menu.Item = function(config){ |
Ext.menu.Item.superclass.constructor.call(this, config); |
if(this.menu){ |
this.menu = Ext.menu.MenuMgr.get(this.menu); |
} |
}; |
Ext.extend(Ext.menu.Item, Ext.menu.BaseItem, { |
itemCls : "x-menu-item", |
canActivate : true, |
showDelay: 200, |
hideDelay: 200, |
ctype: "Ext.menu.Item", |
onRender : function(container, position){ |
var el = document.createElement("a"); |
el.hideFocus = true; |
el.unselectable = "on"; |
el.href = this.href || "#"; |
if(this.hrefTarget){ |
el.target = this.hrefTarget; |
} |
el.className = this.itemCls + (this.menu ? " x-menu-item-arrow" : "") + (this.cls ? " " + this.cls : ""); |
el.innerHTML = String.format( |
'<img src="{0}" class="x-menu-item-icon {2}" />{1}', |
this.icon || Ext.BLANK_IMAGE_URL, this.itemText||this.text, this.iconCls || ''); |
this.el = el; |
Ext.menu.Item.superclass.onRender.call(this, container, position); |
}, |
setText : function(text){ |
this.text = text; |
if(this.rendered){ |
this.el.update(String.format( |
'<img src="{0}" class="x-menu-item-icon {2}">{1}', |
this.icon || Ext.BLANK_IMAGE_URL, this.text, this.iconCls || '')); |
this.parentMenu.autoWidth(); |
} |
}, |
setIconClass : function(cls){ |
var oldCls = this.iconCls; |
this.iconCls = cls; |
if(this.rendered){ |
this.el.child('img.x-menu-item-icon').replaceClass(oldCls, this.iconCls); |
} |
}, |
handleClick : function(e){ |
if(!this.href){ e.stopEvent(); |
} |
Ext.menu.Item.superclass.handleClick.apply(this, arguments); |
}, |
activate : function(autoExpand){ |
if(Ext.menu.Item.superclass.activate.apply(this, arguments)){ |
this.focus(); |
if(autoExpand){ |
this.expandMenu(); |
} |
} |
return true; |
}, |
shouldDeactivate : function(e){ |
if(Ext.menu.Item.superclass.shouldDeactivate.call(this, e)){ |
if(this.menu && this.menu.isVisible()){ |
return !this.menu.getEl().getRegion().contains(e.getPoint()); |
} |
return true; |
} |
return false; |
}, |
deactivate : function(){ |
Ext.menu.Item.superclass.deactivate.apply(this, arguments); |
this.hideMenu(); |
}, |
expandMenu : function(autoActivate){ |
if(!this.disabled && this.menu){ |
clearTimeout(this.hideTimer); |
delete this.hideTimer; |
if(!this.menu.isVisible() && !this.showTimer){ |
this.showTimer = this.deferExpand.defer(this.showDelay, this, [autoActivate]); |
}else if (this.menu.isVisible() && autoActivate){ |
this.menu.tryActivate(0, 1); |
} |
} |
}, |
deferExpand : function(autoActivate){ |
delete this.showTimer; |
this.menu.show(this.container, this.parentMenu.subMenuAlign || "tl-tr?", this.parentMenu); |
if(autoActivate){ |
this.menu.tryActivate(0, 1); |
} |
}, |
hideMenu : function(){ |
clearTimeout(this.showTimer); |
delete this.showTimer; |
if(!this.hideTimer && this.menu && this.menu.isVisible()){ |
this.hideTimer = this.deferHide.defer(this.hideDelay, this); |
} |
}, |
deferHide : function(){ |
delete this.hideTimer; |
this.menu.hide(); |
} |
}); |
Ext.menu.CheckItem = function(config){ |
Ext.menu.CheckItem.superclass.constructor.call(this, config); |
this.addEvents( |
"beforecheckchange" , |
"checkchange" |
); |
if(this.checkHandler){ |
this.on('checkchange', this.checkHandler, this.scope); |
} |
Ext.menu.MenuMgr.registerCheckable(this); |
}; |
Ext.extend(Ext.menu.CheckItem, Ext.menu.Item, { |
itemCls : "x-menu-item x-menu-check-item", |
groupClass : "x-menu-group-item", |
checked: false, |
ctype: "Ext.menu.CheckItem", |
onRender : function(c){ |
Ext.menu.CheckItem.superclass.onRender.apply(this, arguments); |
if(this.group){ |
this.el.addClass(this.groupClass); |
} |
if(this.checked){ |
this.checked = false; |
this.setChecked(true, true); |
} |
}, |
destroy : function(){ |
Ext.menu.MenuMgr.unregisterCheckable(this); |
Ext.menu.CheckItem.superclass.destroy.apply(this, arguments); |
}, |
setChecked : function(state, suppressEvent){ |
if(this.checked != state && this.fireEvent("beforecheckchange", this, state) !== false){ |
if(this.container){ |
this.container[state ? "addClass" : "removeClass"]("x-menu-item-checked"); |
} |
this.checked = state; |
if(suppressEvent !== true){ |
this.fireEvent("checkchange", this, state); |
} |
} |
}, |
handleClick : function(e){ |
if(!this.disabled && !(this.checked && this.group)){ this.setChecked(!this.checked); |
} |
Ext.menu.CheckItem.superclass.handleClick.apply(this, arguments); |
} |
}); |
Ext.menu.Adapter = function(component, config){ |
Ext.menu.Adapter.superclass.constructor.call(this, config); |
this.component = component; |
}; |
Ext.extend(Ext.menu.Adapter, Ext.menu.BaseItem, { |
canActivate : true, |
onRender : function(container, position){ |
this.component.render(container); |
this.el = this.component.getEl(); |
}, |
activate : function(){ |
if(this.disabled){ |
return false; |
} |
this.component.focus(); |
this.fireEvent("activate", this); |
return true; |
}, |
deactivate : function(){ |
this.fireEvent("deactivate", this); |
}, |
disable : function(){ |
this.component.disable(); |
Ext.menu.Adapter.superclass.disable.call(this); |
}, |
enable : function(){ |
this.component.enable(); |
Ext.menu.Adapter.superclass.enable.call(this); |
} |
}); |
Ext.menu.DateItem = function(config){ |
Ext.menu.DateItem.superclass.constructor.call(this, new Ext.DatePicker(config), config); |
this.picker = this.component; |
this.addEvents('select'); |
this.picker.on("render", function(picker){ |
picker.getEl().swallowEvent("click"); |
picker.container.addClass("x-menu-date-item"); |
}); |
this.picker.on("select", this.onSelect, this); |
}; |
Ext.extend(Ext.menu.DateItem, Ext.menu.Adapter, { |
onSelect : function(picker, date){ |
this.fireEvent("select", this, date, picker); |
Ext.menu.DateItem.superclass.handleClick.call(this); |
} |
}); |
Ext.menu.ColorItem = function(config){ |
Ext.menu.ColorItem.superclass.constructor.call(this, new Ext.ColorPalette(config), config); |
this.palette = this.component; |
this.relayEvents(this.palette, ["select"]); |
if(this.selectHandler){ |
this.on('select', this.selectHandler, this.scope); |
} |
}; |
Ext.extend(Ext.menu.ColorItem, Ext.menu.Adapter); |
Ext.menu.DateMenu = function(config){ |
Ext.menu.DateMenu.superclass.constructor.call(this, config); |
this.plain = true; |
var di = new Ext.menu.DateItem(config); |
this.add(di); |
this.picker = di.picker; |
this.relayEvents(di, ["select"]); |
this.on('beforeshow', function(){ |
if(this.picker){ |
this.picker.hideMonthPicker(true); |
} |
}, this); |
}; |
Ext.extend(Ext.menu.DateMenu, Ext.menu.Menu, { |
cls:'x-date-menu', |
beforeDestroy : function() { |
this.picker.destroy(); |
} |
}); |
Ext.menu.ColorMenu = function(config){ |
Ext.menu.ColorMenu.superclass.constructor.call(this, config); |
this.plain = true; |
var ci = new Ext.menu.ColorItem(config); |
this.add(ci); |
this.palette = ci.palette; |
this.relayEvents(ci, ["select"]); |
}; |
Ext.extend(Ext.menu.ColorMenu, Ext.menu.Menu); |
Ext.form.Field = Ext.extend(Ext.BoxComponent, { |
invalidClass : "x-form-invalid", |
invalidText : "The value in this field is invalid", |
focusClass : "x-form-focus", |
validationEvent : "keyup", |
validateOnBlur : true, |
validationDelay : 250, |
defaultAutoCreate : {tag: "input", type: "text", size: "20", autocomplete: "off"}, |
fieldClass : "x-form-field", |
msgTarget : 'qtip', |
msgFx : 'normal', |
readOnly : false, |
disabled : false, |
isFormField : true, |
hasFocus : false, |
initComponent : function(){ |
Ext.form.Field.superclass.initComponent.call(this); |
this.addEvents( |
'focus', |
'blur', |
'specialkey', |
'change', |
'invalid', |
'valid' |
); |
}, |
getName: function(){ |
return this.rendered && this.el.dom.name ? this.el.dom.name : (this.hiddenName || ''); |
}, |
onRender : function(ct, position){ |
Ext.form.Field.superclass.onRender.call(this, ct, position); |
if(!this.el){ |
var cfg = this.getAutoCreate(); |
if(!cfg.name){ |
cfg.name = this.name || this.id; |
} |
if(this.inputType){ |
cfg.type = this.inputType; |
} |
this.el = ct.createChild(cfg, position); |
} |
var type = this.el.dom.type; |
if(type){ |
if(type == 'password'){ |
type = 'text'; |
} |
this.el.addClass('x-form-'+type); |
} |
if(this.readOnly){ |
this.el.dom.readOnly = true; |
} |
if(this.tabIndex !== undefined){ |
this.el.dom.setAttribute('tabIndex', this.tabIndex); |
} |
this.el.addClass([this.fieldClass, this.cls]); |
this.initValue(); |
}, |
initValue : function(){ |
if(this.value !== undefined){ |
this.setValue(this.value); |
}else if(this.el.dom.value.length > 0){ |
this.setValue(this.el.dom.value); |
} |
}, |
isDirty : function() { |
if(this.disabled) { |
return false; |
} |
return String(this.getValue()) !== String(this.originalValue); |
}, |
afterRender : function(){ |
Ext.form.Field.superclass.afterRender.call(this); |
this.initEvents(); |
}, |
fireKey : function(e){ |
if(e.isSpecialKey()){ |
this.fireEvent("specialkey", this, e); |
} |
}, |
reset : function(){ |
this.setValue(this.originalValue); |
this.clearInvalid(); |
}, |
initEvents : function(){ |
this.el.on(Ext.isIE ? "keydown" : "keypress", this.fireKey, this); |
this.el.on("focus", this.onFocus, this); |
this.el.on("blur", this.onBlur, this); |
this.originalValue = this.getValue(); |
}, |
onFocus : function(){ |
if(!Ext.isOpera && this.focusClass){ this.el.addClass(this.focusClass); |
} |
if(!this.hasFocus){ |
this.hasFocus = true; |
this.startValue = this.getValue(); |
this.fireEvent("focus", this); |
} |
}, |
beforeBlur : Ext.emptyFn, |
onBlur : function(){ |
this.beforeBlur(); |
if(!Ext.isOpera && this.focusClass){ this.el.removeClass(this.focusClass); |
} |
this.hasFocus = false; |
if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){ |
this.validate(); |
} |
var v = this.getValue(); |
if(String(v) !== String(this.startValue)){ |
this.fireEvent('change', this, v, this.startValue); |
} |
this.fireEvent("blur", this); |
}, |
isValid : function(preventMark){ |
if(this.disabled){ |
return true; |
} |
var restore = this.preventMark; |
this.preventMark = preventMark === true; |
var v = this.validateValue(this.processValue(this.getRawValue())); |
this.preventMark = restore; |
return v; |
}, |
validate : function(){ |
if(this.disabled || this.validateValue(this.processValue(this.getRawValue()))){ |
this.clearInvalid(); |
return true; |
} |
return false; |
}, |
processValue : function(value){ |
return value; |
}, |
validateValue : function(value){ |
return true; |
}, |
markInvalid : function(msg){ |
if(!this.rendered || this.preventMark){ return; |
} |
this.el.addClass(this.invalidClass); |
msg = msg || this.invalidText; |
switch(this.msgTarget){ |
case 'qtip': |
this.el.dom.qtip = msg; |
this.el.dom.qclass = 'x-form-invalid-tip'; |
if(Ext.QuickTips){ Ext.QuickTips.enable(); |
} |
break; |
case 'title': |
this.el.dom.title = msg; |
break; |
case 'under': |
if(!this.errorEl){ |
var elp = this.el.findParent('.x-form-element', 5, true); |
this.errorEl = elp.createChild({cls:'x-form-invalid-msg'}); |
this.errorEl.setWidth(elp.getWidth(true)-20); |
} |
this.errorEl.update(msg); |
Ext.form.Field.msgFx[this.msgFx].show(this.errorEl, this); |
break; |
case 'side': |
if(!this.errorIcon){ |
var elp = this.el.findParent('.x-form-element', 5, true); |
this.errorIcon = elp.createChild({cls:'x-form-invalid-icon'}); |
} |
this.alignErrorIcon(); |
this.errorIcon.dom.qtip = msg; |
this.errorIcon.dom.qclass = 'x-form-invalid-tip'; |
this.errorIcon.show(); |
this.on('resize', this.alignErrorIcon, this); |
break; |
default: |
var t = Ext.getDom(this.msgTarget); |
t.innerHTML = msg; |
t.style.display = this.msgDisplay; |
break; |
} |
this.fireEvent('invalid', this, msg); |
}, |
alignErrorIcon : function(){ |
this.errorIcon.alignTo(this.el, 'tl-tr', [2, 0]); |
}, |
clearInvalid : function(){ |
if(!this.rendered || this.preventMark){ return; |
} |
this.el.removeClass(this.invalidClass); |
switch(this.msgTarget){ |
case 'qtip': |
this.el.dom.qtip = ''; |
break; |
case 'title': |
this.el.dom.title = ''; |
break; |
case 'under': |
if(this.errorEl){ |
Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl, this); |
} |
break; |
case 'side': |
if(this.errorIcon){ |
this.errorIcon.dom.qtip = ''; |
this.errorIcon.hide(); |
this.un('resize', this.alignErrorIcon, this); |
} |
break; |
default: |
var t = Ext.getDom(this.msgTarget); |
t.innerHTML = ''; |
t.style.display = 'none'; |
break; |
} |
this.fireEvent('valid', this); |
}, |
getRawValue : function(){ |
var v = this.rendered ? this.el.getValue() : Ext.value(this.value, ''); |
if(v === this.emptyText){ |
v = ''; |
} |
return v; |
}, |
getValue : function(){ |
if(!this.rendered) { |
return this.value; |
} |
var v = this.el.getValue(); |
if(v === this.emptyText || v === undefined){ |
v = ''; |
} |
return v; |
}, |
setRawValue : function(v){ |
return this.el.dom.value = (v === null || v === undefined ? '' : v); |
}, |
setValue : function(v){ |
this.value = v; |
if(this.rendered){ |
this.el.dom.value = (v === null || v === undefined ? '' : v); |
this.validate(); |
} |
}, |
adjustSize : function(w, h){ |
var s = Ext.form.Field.superclass.adjustSize.call(this, w, h); |
s.width = this.adjustWidth(this.el.dom.tagName, s.width); |
return s; |
}, |
adjustWidth : function(tag, w){ |
tag = tag.toLowerCase(); |
if(typeof w == 'number' && !Ext.isSafari){ |
if(Ext.isIE && (tag == 'input' || tag == 'textarea')){ |
if(tag == 'input' && !Ext.isStrict){ |
return this.inEditor ? w : w - 3; |
} |
if(tag == 'input' && Ext.isStrict){ |
return w - (Ext.isIE6 ? 4 : 1); |
} |
if(tag = 'textarea' && Ext.isStrict){ |
return w-2; |
} |
}else if(Ext.isOpera && Ext.isStrict){ |
if(tag == 'input'){ |
return w + 2; |
} |
if(tag = 'textarea'){ |
return w-2; |
} |
} |
} |
return w; |
} |
}); |
Ext.form.Field.msgFx = { |
normal : { |
show: function(msgEl, f){ |
msgEl.setDisplayed('block'); |
}, |
hide : function(msgEl, f){ |
msgEl.setDisplayed(false).update(''); |
} |
}, |
slide : { |
show: function(msgEl, f){ |
msgEl.slideIn('t', {stopFx:true}); |
}, |
hide : function(msgEl, f){ |
msgEl.slideOut('t', {stopFx:true,useDisplay:true}); |
} |
}, |
slideRight : { |
show: function(msgEl, f){ |
msgEl.fixDisplay(); |
msgEl.alignTo(f.el, 'tl-tr'); |
msgEl.slideIn('l', {stopFx:true}); |
}, |
hide : function(msgEl, f){ |
msgEl.slideOut('l', {stopFx:true,useDisplay:true}); |
} |
} |
}; |
Ext.reg('field', Ext.form.Field); |
Ext.form.TextField = Ext.extend(Ext.form.Field, { |
grow : false, |
growMin : 30, |
growMax : 800, |
vtype : null, |
maskRe : null, |
disableKeyFilter : false, |
allowBlank : true, |
minLength : 0, |
maxLength : Number.MAX_VALUE, |
minLengthText : "The minimum length for this field is {0}", |
maxLengthText : "The maximum length for this field is {0}", |
selectOnFocus : false, |
blankText : "This field is required", |
validator : null, |
regex : null, |
regexText : "", |
emptyText : null, |
emptyClass : 'x-form-empty-field', |
initComponent : function(){ |
Ext.form.TextField.superclass.initComponent.call(this); |
this.addEvents( |
'autosize' |
); |
}, |
initEvents : function(){ |
Ext.form.TextField.superclass.initEvents.call(this); |
if(this.validationEvent == 'keyup'){ |
this.validationTask = new Ext.util.DelayedTask(this.validate, this); |
this.el.on('keyup', this.filterValidation, this); |
} |
else if(this.validationEvent !== false){ |
this.el.on(this.validationEvent, this.validate, this, {buffer: this.validationDelay}); |
} |
if(this.selectOnFocus || this.emptyText){ |
this.on("focus", this.preFocus, this); |
if(this.emptyText){ |
this.on('blur', this.postBlur, this); |
this.applyEmptyText(); |
} |
} |
if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Ext.form.VTypes[this.vtype+'Mask']))){ |
this.el.on("keypress", this.filterKeys, this); |
} |
if(this.grow){ |
this.el.on("keyup", this.onKeyUp, this, {buffer:50}); |
this.el.on("click", this.autoSize, this); |
} |
}, |
processValue : function(value){ |
if(this.stripCharsRe){ |
var newValue = value.replace(this.stripCharsRe, ''); |
if(newValue !== value){ |
this.setRawValue(newValue); |
return newValue; |
} |
} |
return value; |
}, |
filterValidation : function(e){ |
if(!e.isNavKeyPress()){ |
this.validationTask.delay(this.validationDelay); |
} |
}, |
onKeyUp : function(e){ |
if(!e.isNavKeyPress()){ |
this.autoSize(); |
} |
}, |
reset : function(){ |
Ext.form.TextField.superclass.reset.call(this); |
this.applyEmptyText(); |
}, |
applyEmptyText : function(){ |
if(this.rendered && this.emptyText && this.getRawValue().length < 1){ |
this.setRawValue(this.emptyText); |
this.el.addClass(this.emptyClass); |
} |
}, |
preFocus : function(){ |
if(this.emptyText){ |
if(this.el.dom.value == this.emptyText){ |
this.setRawValue(''); |
} |
this.el.removeClass(this.emptyClass); |
} |
if(this.selectOnFocus){ |
this.el.dom.select(); |
} |
}, |
postBlur : function(){ |
this.applyEmptyText(); |
}, |
filterKeys : function(e){ |
var k = e.getKey(); |
if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){ |
return; |
} |
var c = e.getCharCode(), cc = String.fromCharCode(c); |
if(Ext.isIE && (e.isSpecialKey() || !cc)){ |
return; |
} |
if(!this.maskRe.test(cc)){ |
e.stopEvent(); |
} |
}, |
setValue : function(v){ |
if(this.emptyText && this.el && v !== undefined && v !== null && v !== ''){ |
this.el.removeClass(this.emptyClass); |
} |
Ext.form.TextField.superclass.setValue.apply(this, arguments); |
this.applyEmptyText(); |
this.autoSize(); |
}, |
validateValue : function(value){ |
if(value.length < 1 || value === this.emptyText){ if(this.allowBlank){ |
this.clearInvalid(); |
return true; |
}else{ |
this.markInvalid(this.blankText); |
return false; |
} |
} |
if(value.length < this.minLength){ |
this.markInvalid(String.format(this.minLengthText, this.minLength)); |
return false; |
} |
if(value.length > this.maxLength){ |
this.markInvalid(String.format(this.maxLengthText, this.maxLength)); |
return false; |
} |
if(this.vtype){ |
var vt = Ext.form.VTypes; |
if(!vt[this.vtype](value, this)){ |
this.markInvalid(this.vtypeText || vt[this.vtype +'Text']); |
return false; |
} |
} |
if(typeof this.validator == "function"){ |
var msg = this.validator(value); |
if(msg !== true){ |
this.markInvalid(msg); |
return false; |
} |
} |
if(this.regex && !this.regex.test(value)){ |
this.markInvalid(this.regexText); |
return false; |
} |
return true; |
}, |
selectText : function(start, end){ |
var v = this.getRawValue(); |
if(v.length > 0){ |
start = start === undefined ? 0 : start; |
end = end === undefined ? v.length : end; |
var d = this.el.dom; |
if(d.setSelectionRange){ |
d.setSelectionRange(start, end); |
}else if(d.createTextRange){ |
var range = d.createTextRange(); |
range.moveStart("character", start); |
range.moveEnd("character", end-v.length); |
range.select(); |
} |
} |
}, |
autoSize : function(){ |
if(!this.grow || !this.rendered){ |
return; |
} |
if(!this.metrics){ |
this.metrics = Ext.util.TextMetrics.createInstance(this.el); |
} |
var el = this.el; |
var v = el.dom.value; |
var d = document.createElement('div'); |
d.appendChild(document.createTextNode(v)); |
v = d.innerHTML; |
d = null; |
v += " "; |
var w = Math.min(this.growMax, Math.max(this.metrics.getWidth(v) + 10, this.growMin)); |
this.el.setWidth(w); |
this.fireEvent("autosize", this, w); |
} |
}); |
Ext.reg('textfield', Ext.form.TextField); |
Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { |
defaultAutoCreate : {tag: "input", type: "text", size: "16", autocomplete: "off"}, |
hideTrigger:false, |
autoSize: Ext.emptyFn, |
monitorTab : true, |
deferHeight : true, |
mimicing : false, |
onResize : function(w, h){ |
Ext.form.TriggerField.superclass.onResize.call(this, w, h); |
if(typeof w == 'number'){ |
this.el.setWidth(this.adjustWidth('input', w - this.trigger.getWidth())); |
} |
this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth()); |
}, |
adjustSize : Ext.BoxComponent.prototype.adjustSize, |
getResizeEl : function(){ |
return this.wrap; |
}, |
getPositionEl : function(){ |
return this.wrap; |
}, |
alignErrorIcon : function(){ |
this.errorIcon.alignTo(this.wrap, 'tl-tr', [2, 0]); |
}, |
onRender : function(ct, position){ |
Ext.form.TriggerField.superclass.onRender.call(this, ct, position); |
this.wrap = this.el.wrap({cls: "x-form-field-wrap"}); |
this.trigger = this.wrap.createChild(this.triggerConfig || |
{tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.triggerClass}); |
if(this.hideTrigger){ |
this.trigger.setDisplayed(false); |
} |
this.initTrigger(); |
if(!this.width){ |
this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth()); |
} |
}, |
initTrigger : function(){ |
this.trigger.on("click", this.onTriggerClick, this, {preventDefault:true}); |
this.trigger.addClassOnOver('x-form-trigger-over'); |
this.trigger.addClassOnClick('x-form-trigger-click'); |
}, |
onDestroy : function(){ |
if(this.trigger){ |
this.trigger.removeAllListeners(); |
this.trigger.remove(); |
} |
if(this.wrap){ |
this.wrap.remove(); |
} |
Ext.form.TriggerField.superclass.onDestroy.call(this); |
}, |
onFocus : function(){ |
Ext.form.TriggerField.superclass.onFocus.call(this); |
if(!this.mimicing){ |
this.wrap.addClass('x-trigger-wrap-focus'); |
this.mimicing = true; |
Ext.get(Ext.isIE ? document.body : document).on("mousedown", this.mimicBlur, this, {delay: 10}); |
if(this.monitorTab){ |
this.el.on("keydown", this.checkTab, this); |
} |
} |
}, |
checkTab : function(e){ |
if(e.getKey() == e.TAB){ |
this.triggerBlur(); |
} |
}, |
onBlur : function(){ |
}, |
mimicBlur : function(e){ |
if(!this.wrap.contains(e.target) && this.validateBlur(e)){ |
this.triggerBlur(); |
} |
}, |
triggerBlur : function(){ |
this.mimicing = false; |
Ext.get(Ext.isIE ? document.body : document).un("mousedown", this.mimicBlur); |
if(this.monitorTab){ |
this.el.un("keydown", this.checkTab, this); |
} |
this.beforeBlur(); |
this.wrap.removeClass('x-trigger-wrap-focus'); |
Ext.form.TriggerField.superclass.onBlur.call(this); |
}, |
beforeBlur : Ext.emptyFn, |
validateBlur : function(e){ |
return true; |
}, |
onDisable : function(){ |
Ext.form.TriggerField.superclass.onDisable.call(this); |
if(this.wrap){ |
this.wrap.addClass('x-item-disabled'); |
} |
}, |
onEnable : function(){ |
Ext.form.TriggerField.superclass.onEnable.call(this); |
if(this.wrap){ |
this.wrap.removeClass('x-item-disabled'); |
} |
}, |
onShow : function(){ |
if(this.wrap){ |
this.wrap.dom.style.display = ''; |
this.wrap.dom.style.visibility = 'visible'; |
} |
}, |
onHide : function(){ |
this.wrap.dom.style.display = 'none'; |
}, |
onTriggerClick : Ext.emptyFn |
}); |
Ext.form.TwinTriggerField = Ext.extend(Ext.form.TriggerField, { |
initComponent : function(){ |
Ext.form.TwinTriggerField.superclass.initComponent.call(this); |
this.triggerConfig = { |
tag:'span', cls:'x-form-twin-triggers', cn:[ |
{tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger1Class}, |
{tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger2Class} |
]}; |
}, |
getTrigger : function(index){ |
return this.triggers[index]; |
}, |
initTrigger : function(){ |
var ts = this.trigger.select('.x-form-trigger', true); |
this.wrap.setStyle('overflow', 'hidden'); |
var triggerField = this; |
ts.each(function(t, all, index){ |
t.hide = function(){ |
var w = triggerField.wrap.getWidth(); |
this.dom.style.display = 'none'; |
triggerField.el.setWidth(w-triggerField.trigger.getWidth()); |
}; |
t.show = function(){ |
var w = triggerField.wrap.getWidth(); |
this.dom.style.display = ''; |
triggerField.el.setWidth(w-triggerField.trigger.getWidth()); |
}; |
var triggerIndex = 'Trigger'+(index+1); |
if(this['hide'+triggerIndex]){ |
t.dom.style.display = 'none'; |
} |
t.on("click", this['on'+triggerIndex+'Click'], this, {preventDefault:true}); |
t.addClassOnOver('x-form-trigger-over'); |
t.addClassOnClick('x-form-trigger-click'); |
}, this); |
this.triggers = ts.elements; |
}, |
onTrigger1Click : Ext.emptyFn, |
onTrigger2Click : Ext.emptyFn |
}); |
Ext.reg('trigger', Ext.form.TriggerField); |
Ext.form.TextArea = Ext.extend(Ext.form.TextField, { |
growMin : 60, |
growMax: 1000, |
growAppend : ' \n ', |
growPad : 0, |
enterIsSpecial : false, |
preventScrollbars: false, |
onRender : function(ct, position){ |
if(!this.el){ |
this.defaultAutoCreate = { |
tag: "textarea", |
style:"width:100px;height:60px;", |
autocomplete: "off" |
}; |
} |
Ext.form.TextArea.superclass.onRender.call(this, ct, position); |
if(this.grow){ |
this.textSizeEl = Ext.DomHelper.append(document.body, { |
tag: "pre", cls: "x-form-grow-sizer" |
}); |
if(this.preventScrollbars){ |
this.el.setStyle("overflow", "hidden"); |
} |
this.el.setHeight(this.growMin); |
} |
}, |
onDestroy : function(){ |
if(this.textSizeEl){ |
Ext.removeNode(this.textSizeEl); |
} |
Ext.form.TextArea.superclass.onDestroy.call(this); |
}, |
fireKey : function(e){ |
if(e.isSpecialKey() && (this.enterIsSpecial || (e.getKey() != e.ENTER || e.hasModifier()))){ |
this.fireEvent("specialkey", this, e); |
} |
}, |
onKeyUp : function(e){ |
if(!e.isNavKeyPress() || e.getKey() == e.ENTER){ |
this.autoSize(); |
} |
}, |
autoSize : function(){ |
if(!this.grow || !this.textSizeEl){ |
return; |
} |
var el = this.el; |
var v = el.dom.value; |
var ts = this.textSizeEl; |
ts.innerHTML = ''; |
ts.appendChild(document.createTextNode(v)); |
v = ts.innerHTML; |
Ext.fly(ts).setWidth(this.el.getWidth()); |
if(v.length < 1){ |
v = "  "; |
}else{ |
if(Ext.isIE){ |
v = v.replace(/\n/g, '<p> </p>'); |
} |
v += this.growAppend; |
} |
ts.innerHTML = v; |
var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin)+this.growPad); |
if(h != this.lastHeight){ |
this.lastHeight = h; |
this.el.setHeight(h); |
this.fireEvent("autosize", this, h); |
} |
} |
}); |
Ext.reg('textarea', Ext.form.TextArea); |
Ext.form.NumberField = Ext.extend(Ext.form.TextField, { |
fieldClass: "x-form-field x-form-num-field", |
allowDecimals : true, |
decimalSeparator : ".", |
decimalPrecision : 2, |
allowNegative : true, |
minValue : Number.NEGATIVE_INFINITY, |
maxValue : Number.MAX_VALUE, |
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", |
baseChars : "0123456789", |
initEvents : function(){ |
Ext.form.NumberField.superclass.initEvents.call(this); |
var allowed = this.baseChars+''; |
if(this.allowDecimals){ |
allowed += this.decimalSeparator; |
} |
if(this.allowNegative){ |
allowed += "-"; |
} |
this.stripCharsRe = new RegExp('[^'+allowed+']', 'gi'); |
var keyPress = function(e){ |
var k = e.getKey(); |
if(!Ext.isIE && (e.isSpecialKey() || k == e.BACKSPACE || k == e.DELETE)){ |
return; |
} |
var c = e.getCharCode(); |
if(allowed.indexOf(String.fromCharCode(c)) === -1){ |
e.stopEvent(); |
} |
}; |
this.el.on("keypress", keyPress, this); |
}, |
validateValue : function(value){ |
if(!Ext.form.NumberField.superclass.validateValue.call(this, value)){ |
return false; |
} |
if(value.length < 1){ return true; |
} |
value = String(value).replace(this.decimalSeparator, "."); |
if(isNaN(value)){ |
this.markInvalid(String.format(this.nanText, value)); |
return false; |
} |
var num = this.parseValue(value); |
if(num < this.minValue){ |
this.markInvalid(String.format(this.minText, this.minValue)); |
return false; |
} |
if(num > this.maxValue){ |
this.markInvalid(String.format(this.maxText, this.maxValue)); |
return false; |
} |
return true; |
}, |
getValue : function(){ |
return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this))); |
}, |
setValue : function(v){ |
v = parseFloat(v); |
v = isNaN(v) ? '' : String(v).replace(".", this.decimalSeparator); |
Ext.form.NumberField.superclass.setValue.call(this, v); |
}, |
parseValue : function(value){ |
value = parseFloat(String(value).replace(this.decimalSeparator, ".")); |
return isNaN(value) ? '' : value; |
}, |
fixPrecision : function(value){ |
var nan = isNaN(value); |
if(!this.allowDecimals || this.decimalPrecision == -1 || nan || !value){ |
return nan ? '' : value; |
} |
return parseFloat(parseFloat(value).toFixed(this.decimalPrecision)); |
}, |
beforeBlur : function(){ |
var v = this.parseValue(this.getRawValue()); |
if(v){ |
this.setValue(this.fixPrecision(v)); |
} |
} |
}); |
Ext.reg('numberfield', Ext.form.NumberField); |
Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { |
format : "m/d/y", |
altFormats : "m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d", |
disabledDays : null, |
disabledDaysText : "Disabled", |
disabledDates : null, |
disabledDatesText : "Disabled", |
minValue : null, |
maxValue : null, |
minText : "The date in this field must be equal to or after {0}", |
maxText : "The date in this field must be equal to or before {0}", |
invalidText : "{0} is not a valid date - it must be in the format {1}", |
triggerClass : 'x-form-date-trigger', |
defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"}, |
initComponent : function(){ |
Ext.form.DateField.superclass.initComponent.call(this); |
if(typeof this.minValue == "string"){ |
this.minValue = this.parseDate(this.minValue); |
} |
if(typeof this.maxValue == "string"){ |
this.maxValue = this.parseDate(this.maxValue); |
} |
this.ddMatch = null; |
if(this.disabledDates){ |
var dd = this.disabledDates; |
var re = "(?:"; |
for(var i = 0; i < dd.length; i++){ |
re += dd[i]; |
if(i != dd.length-1) re += "|"; |
} |
this.ddMatch = new RegExp(re + ")"); |
} |
}, |
validateValue : function(value){ |
value = this.formatDate(value); |
if(!Ext.form.DateField.superclass.validateValue.call(this, value)){ |
return false; |
} |
if(value.length < 1){ return true; |
} |
var svalue = value; |
value = this.parseDate(value); |
if(!value){ |
this.markInvalid(String.format(this.invalidText, svalue, this.format)); |
return false; |
} |
var time = value.getTime(); |
if(this.minValue && time < this.minValue.getTime()){ |
this.markInvalid(String.format(this.minText, this.formatDate(this.minValue))); |
return false; |
} |
if(this.maxValue && time > this.maxValue.getTime()){ |
this.markInvalid(String.format(this.maxText, this.formatDate(this.maxValue))); |
return false; |
} |
if(this.disabledDays){ |
var day = value.getDay(); |
for(var i = 0; i < this.disabledDays.length; i++) { |
if(day === this.disabledDays[i]){ |
this.markInvalid(this.disabledDaysText); |
return false; |
} |
} |
} |
var fvalue = this.formatDate(value); |
if(this.ddMatch && this.ddMatch.test(fvalue)){ |
this.markInvalid(String.format(this.disabledDatesText, fvalue)); |
return false; |
} |
return true; |
}, |
validateBlur : function(){ |
return !this.menu || !this.menu.isVisible(); |
}, |
getValue : function(){ |
return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || ""; |
}, |
setValue : function(date){ |
Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date))); |
}, |
parseDate : function(value){ |
if(!value || Ext.isDate(value)){ |
return value; |
} |
var v = Date.parseDate(value, this.format); |
if(!v && this.altFormats){ |
if(!this.altFormatsArray){ |
this.altFormatsArray = this.altFormats.split("|"); |
} |
for(var i = 0, len = this.altFormatsArray.length; i < len && !v; i++){ |
v = Date.parseDate(value, this.altFormatsArray[i]); |
} |
} |
return v; |
}, |
onDestroy : function(){ |
if(this.menu) { |
this.menu.destroy(); |
} |
if(this.wrap){ |
this.wrap.remove(); |
} |
Ext.form.DateField.superclass.onDestroy.call(this); |
}, |
formatDate : function(date){ |
return Ext.isDate(date) ? date.dateFormat(this.format) : date; |
}, |
menuListeners : { |
select: function(m, d){ |
this.setValue(d); |
}, |
show : function(){ this.onFocus(); |
}, |
hide : function(){ |
this.focus.defer(10, this); |
var ml = this.menuListeners; |
this.menu.un("select", ml.select, this); |
this.menu.un("show", ml.show, this); |
this.menu.un("hide", ml.hide, this); |
} |
}, |
onTriggerClick : function(){ |
if(this.disabled){ |
return; |
} |
if(this.menu == null){ |
this.menu = new Ext.menu.DateMenu(); |
} |
Ext.apply(this.menu.picker, { |
minDate : this.minValue, |
maxDate : this.maxValue, |
disabledDatesRE : this.ddMatch, |
disabledDatesText : this.disabledDatesText, |
disabledDays : this.disabledDays, |
disabledDaysText : this.disabledDaysText, |
format : this.format, |
minText : String.format(this.minText, this.formatDate(this.minValue)), |
maxText : String.format(this.maxText, this.formatDate(this.maxValue)) |
}); |
this.menu.on(Ext.apply({}, this.menuListeners, { |
scope:this |
})); |
this.menu.picker.setValue(this.getValue() || new Date()); |
this.menu.show(this.el, "tl-bl?"); |
}, |
beforeBlur : function(){ |
var v = this.parseDate(this.getRawValue()); |
if(v){ |
this.setValue(v); |
} |
} |
}); |
Ext.reg('datefield', Ext.form.DateField); |
Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { |
defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"}, |
listClass: '', |
selectedClass: 'x-combo-selected', |
triggerClass : 'x-form-arrow-trigger', |
shadow:'sides', |
listAlign: 'tl-bl?', |
maxHeight: 300, |
minHeight: 90, |
triggerAction: 'query', |
minChars : 4, |
typeAhead: false, |
queryDelay: 500, |
pageSize: 0, |
selectOnFocus:false, |
queryParam: 'query', |
loadingText: 'Loading...', |
resizable: false, |
handleHeight : 8, |
editable: true, |
allQuery: '', |
mode: 'remote', |
minListWidth : 70, |
forceSelection:false, |
typeAheadDelay : 250, |
lazyInit : true, |
initComponent : function(){ |
Ext.form.ComboBox.superclass.initComponent.call(this); |
this.addEvents( |
'expand', |
'collapse', |
'beforeselect', |
'select', |
'beforequery' |
); |
if(this.transform){ |
this.allowDomMove = false; |
var s = Ext.getDom(this.transform); |
if(!this.hiddenName){ |
this.hiddenName = s.name; |
} |
if(!this.store){ |
this.mode = 'local'; |
var d = [], opts = s.options; |
for(var i = 0, len = opts.length;i < len; i++){ |
var o = opts[i]; |
var value = (Ext.isIE ? o.getAttributeNode('value').specified : o.hasAttribute('value')) ? o.value : o.text; |
if(o.selected) { |
this.value = value; |
} |
d.push([value, o.text]); |
} |
this.store = new Ext.data.SimpleStore({ |
'id': 0, |
fields: ['value', 'text'], |
data : d |
}); |
this.valueField = 'value'; |
this.displayField = 'text'; |
} |
s.name = Ext.id(); if(!this.lazyRender){ |
this.target = true; |
this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate); |
Ext.removeNode(s); this.render(this.el.parentNode); |
}else{ |
Ext.removeNode(s); } |
} |
this.selectedIndex = -1; |
if(this.mode == 'local'){ |
if(this.initialConfig.queryDelay === undefined){ |
this.queryDelay = 10; |
} |
if(this.initialConfig.minChars === undefined){ |
this.minChars = 0; |
} |
} |
}, |
onRender : function(ct, position){ |
Ext.form.ComboBox.superclass.onRender.call(this, ct, position); |
if(this.hiddenName){ |
this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: (this.hiddenId||this.hiddenName)}, |
'before', true); |
this.hiddenField.value = |
this.hiddenValue !== undefined ? this.hiddenValue : |
this.value !== undefined ? this.value : ''; |
this.el.dom.removeAttribute('name'); |
} |
if(Ext.isGecko){ |
this.el.dom.setAttribute('autocomplete', 'off'); |
} |
if(!this.lazyInit){ |
this.initList(); |
}else{ |
this.on('focus', this.initList, this, {single: true}); |
} |
if(!this.editable){ |
this.editable = true; |
this.setEditable(false); |
} |
}, |
initList : function(){ |
if(!this.list){ |
var cls = 'x-combo-list'; |
this.list = new Ext.Layer({ |
shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false |
}); |
var lw = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth); |
this.list.setWidth(lw); |
this.list.swallowEvent('mousewheel'); |
this.assetHeight = 0; |
if(this.title){ |
this.header = this.list.createChild({cls:cls+'-hd', html: this.title}); |
this.assetHeight += this.header.getHeight(); |
} |
this.innerList = this.list.createChild({cls:cls+'-inner'}); |
this.innerList.on('mouseover', this.onViewOver, this); |
this.innerList.on('mousemove', this.onViewMove, this); |
this.innerList.setWidth(lw - this.list.getFrameWidth('lr')); |
if(this.pageSize){ |
this.footer = this.list.createChild({cls:cls+'-ft'}); |
this.pageTb = new Ext.PagingToolbar({ |
store:this.store, |
pageSize: this.pageSize, |
renderTo:this.footer |
}); |
this.assetHeight += this.footer.getHeight(); |
} |
if(!this.tpl){ |
this.tpl = '<tpl for="."><div class="'+cls+'-item">{' + this.displayField + '}</div></tpl>'; |
} |
this.view = new Ext.DataView({ |
applyTo: this.innerList, |
tpl: this.tpl, |
singleSelect: true, |
selectedClass: this.selectedClass, |
itemSelector: this.itemSelector || '.' + cls + '-item' |
}); |
this.view.on('click', this.onViewClick, this); |
this.bindStore(this.store, true); |
if(this.resizable){ |
this.resizer = new Ext.Resizable(this.list, { |
pinned:true, handles:'se' |
}); |
this.resizer.on('resize', function(r, w, h){ |
this.maxHeight = h-this.handleHeight-this.list.getFrameWidth('tb')-this.assetHeight; |
this.listWidth = w; |
this.innerList.setWidth(w - this.list.getFrameWidth('lr')); |
this.restrictHeight(); |
}, this); |
this[this.pageSize?'footer':'innerList'].setStyle('margin-bottom', this.handleHeight+'px'); |
} |
} |
}, |
bindStore : function(store, initial){ |
if(this.store && !initial){ |
this.store.un('beforeload', this.onBeforeLoad, this); |
this.store.un('load', this.onLoad, this); |
this.store.un('loadexception', this.collapse, this); |
if(!store){ |
this.store = null; |
if(this.view){ |
this.view.setStore(null); |
} |
} |
} |
if(store){ |
this.store = Ext.StoreMgr.lookup(store); |
this.store.on('beforeload', this.onBeforeLoad, this); |
this.store.on('load', this.onLoad, this); |
this.store.on('loadexception', this.collapse, this); |
if(this.view){ |
this.view.setStore(store); |
} |
} |
}, |
initEvents : function(){ |
Ext.form.ComboBox.superclass.initEvents.call(this); |
this.keyNav = new Ext.KeyNav(this.el, { |
"up" : function(e){ |
this.inKeyMode = true; |
this.selectPrev(); |
}, |
"down" : function(e){ |
if(!this.isExpanded()){ |
this.onTriggerClick(); |
}else{ |
this.inKeyMode = true; |
this.selectNext(); |
} |
}, |
"enter" : function(e){ |
this.onViewClick(); |
this.delayedCheck = true; |
this.unsetDelayCheck.defer(10, this); |
}, |
"esc" : function(e){ |
this.collapse(); |
}, |
"tab" : function(e){ |
this.onViewClick(false); |
return true; |
}, |
scope : this, |
doRelay : function(foo, bar, hname){ |
if(hname == 'down' || this.scope.isExpanded()){ |
return Ext.KeyNav.prototype.doRelay.apply(this, arguments); |
} |
return true; |
}, |
forceKeyDown : true |
}); |
this.queryDelay = Math.max(this.queryDelay || 10, |
this.mode == 'local' ? 10 : 250); |
this.dqTask = new Ext.util.DelayedTask(this.initQuery, this); |
if(this.typeAhead){ |
this.taTask = new Ext.util.DelayedTask(this.onTypeAhead, this); |
} |
if(this.editable !== false){ |
this.el.on("keyup", this.onKeyUp, this); |
} |
if(this.forceSelection){ |
this.on('blur', this.doForce, this); |
} |
}, |
onDestroy : function(){ |
if(this.view){ |
this.view.el.removeAllListeners(); |
this.view.el.remove(); |
this.view.purgeListeners(); |
} |
if(this.list){ |
this.list.destroy(); |
} |
this.bindStore(null); |
Ext.form.ComboBox.superclass.onDestroy.call(this); |
}, |
unsetDelayCheck : function(){ |
delete this.delayedCheck; |
}, |
fireKey : function(e){ |
if(e.isNavKeyPress() && !this.isExpanded() && !this.delayedCheck){ |
this.fireEvent("specialkey", this, e); |
} |
}, |
onResize: function(w, h){ |
Ext.form.ComboBox.superclass.onResize.apply(this, arguments); |
if(this.list && this.listWidth === undefined){ |
var lw = Math.max(w, this.minListWidth); |
this.list.setWidth(lw); |
this.innerList.setWidth(lw - this.list.getFrameWidth('lr')); |
} |
}, |
onEnable: function(){ |
Ext.form.ComboBox.superclass.onEnable.apply(this, arguments); |
if(this.hiddenField){ |
this.hiddenField.disabled = false; |
} |
}, |
onDisable: function(){ |
Ext.form.ComboBox.superclass.onDisable.apply(this, arguments); |
if(this.hiddenField){ |
this.hiddenField.disabled = true; |
} |
}, |
setEditable : function(value){ |
if(value == this.editable){ |
return; |
} |
this.editable = value; |
if(!value){ |
this.el.dom.setAttribute('readOnly', true); |
this.el.on('mousedown', this.onTriggerClick, this); |
this.el.addClass('x-combo-noedit'); |
}else{ |
this.el.dom.setAttribute('readOnly', false); |
this.el.un('mousedown', this.onTriggerClick, this); |
this.el.removeClass('x-combo-noedit'); |
} |
}, |
onBeforeLoad : function(){ |
if(!this.hasFocus){ |
return; |
} |
this.innerList.update(this.loadingText ? |
'<div class="loading-indicator">'+this.loadingText+'</div>' : ''); |
this.restrictHeight(); |
this.selectedIndex = -1; |
}, |
onLoad : function(){ |
if(!this.hasFocus){ |
return; |
} |
if(this.store.getCount() > 0){ |
this.expand(); |
this.restrictHeight(); |
if(this.lastQuery == this.allQuery){ |
if(this.editable){ |
this.el.dom.select(); |
} |
if(!this.selectByValue(this.value, true)){ |
this.select(0, true); |
} |
}else{ |
this.selectNext(); |
if(this.typeAhead && this.lastKey != Ext.EventObject.BACKSPACE && this.lastKey != Ext.EventObject.DELETE){ |
this.taTask.delay(this.typeAheadDelay); |
} |
} |
}else{ |
this.onEmptyResults(); |
} |
}, |
onTypeAhead : function(){ |
if(this.store.getCount() > 0){ |
var r = this.store.getAt(0); |
var newValue = r.data[this.displayField]; |
var len = newValue.length; |
var selStart = this.getRawValue().length; |
if(selStart != len){ |
this.setRawValue(newValue); |
this.selectText(selStart, newValue.length); |
} |
} |
}, |
onSelect : function(record, index){ |
if(this.fireEvent('beforeselect', this, record, index) !== false){ |
this.setValue(record.data[this.valueField || this.displayField]); |
this.collapse(); |
this.fireEvent('select', this, record, index); |
} |
}, |
getValue : function(){ |
if(this.valueField){ |
return typeof this.value != 'undefined' ? this.value : ''; |
}else{ |
return Ext.form.ComboBox.superclass.getValue.call(this); |
} |
}, |
clearValue : function(){ |
if(this.hiddenField){ |
this.hiddenField.value = ''; |
} |
this.setRawValue(''); |
this.lastSelectionText = ''; |
this.applyEmptyText(); |
this.value = ''; |
}, |
setValue : function(v){ |
var text = v; |
if(this.valueField){ |
var r = this.findRecord(this.valueField, v); |
if(r){ |
text = r.data[this.displayField]; |
}else if(this.valueNotFoundText !== undefined){ |
text = this.valueNotFoundText; |
} |
} |
this.lastSelectionText = text; |
if(this.hiddenField){ |
this.hiddenField.value = v; |
} |
Ext.form.ComboBox.superclass.setValue.call(this, text); |
this.value = v; |
}, |
findRecord : function(prop, value){ |
var record; |
if(this.store.getCount() > 0){ |
this.store.each(function(r){ |
if(r.data[prop] == value){ |
record = r; |
return false; |
} |
}); |
} |
return record; |
}, |
onViewMove : function(e, t){ |
this.inKeyMode = false; |
}, |
onViewOver : function(e, t){ |
if(this.inKeyMode){ return; |
} |
var item = this.view.findItemFromChild(t); |
if(item){ |
var index = this.view.indexOf(item); |
this.select(index, false); |
} |
}, |
onViewClick : function(doFocus){ |
var index = this.view.getSelectedIndexes()[0]; |
var r = this.store.getAt(index); |
if(r){ |
this.onSelect(r, index); |
} |
if(doFocus !== false){ |
this.el.focus(); |
} |
}, |
restrictHeight : function(){ |
this.innerList.dom.style.height = ''; |
var inner = this.innerList.dom; |
var pad = this.list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight; |
var h = Math.max(inner.clientHeight, inner.offsetHeight, inner.scrollHeight); |
var ha = this.getPosition()[1]-Ext.getBody().getScroll().top; |
var hb = Ext.lib.Dom.getViewHeight()-ha-this.getSize().height; |
var space = Math.max(ha, hb, this.minHeight || 0)-this.list.shadow.offset-pad-2; |
h = Math.min(h, space, this.maxHeight); |
this.innerList.setHeight(h); |
this.list.beginUpdate(); |
this.list.setHeight(h+pad); |
this.list.alignTo(this.el, this.listAlign); |
this.list.endUpdate(); |
}, |
onEmptyResults : function(){ |
this.collapse(); |
}, |
isExpanded : function(){ |
return this.list && this.list.isVisible(); |
}, |
selectByValue : function(v, scrollIntoView){ |
if(v !== undefined && v !== null){ |
var r = this.findRecord(this.valueField || this.displayField, v); |
if(r){ |
this.select(this.store.indexOf(r), scrollIntoView); |
return true; |
} |
} |
return false; |
}, |
select : function(index, scrollIntoView){ |
this.selectedIndex = index; |
this.view.select(index); |
if(scrollIntoView !== false){ |
var el = this.view.getNode(index); |
if(el){ |
this.innerList.scrollChildIntoView(el, false); |
} |
} |
}, |
selectNext : function(){ |
var ct = this.store.getCount(); |
if(ct > 0){ |
if(this.selectedIndex == -1){ |
this.select(0); |
}else if(this.selectedIndex < ct-1){ |
this.select(this.selectedIndex+1); |
} |
} |
}, |
selectPrev : function(){ |
var ct = this.store.getCount(); |
if(ct > 0){ |
if(this.selectedIndex == -1){ |
this.select(0); |
}else if(this.selectedIndex != 0){ |
this.select(this.selectedIndex-1); |
} |
} |
}, |
onKeyUp : function(e){ |
if(this.editable !== false && !e.isSpecialKey()){ |
this.lastKey = e.getKey(); |
this.dqTask.delay(this.queryDelay); |
} |
}, |
validateBlur : function(){ |
return !this.list || !this.list.isVisible(); |
}, |
initQuery : function(){ |
this.doQuery(this.getRawValue()); |
}, |
doForce : function(){ |
if(this.el.dom.value.length > 0){ |
this.el.dom.value = |
this.lastSelectionText === undefined ? '' : this.lastSelectionText; |
this.applyEmptyText(); |
} |
}, |
doQuery : function(q, forceAll){ |
if(q === undefined || q === null){ |
q = ''; |
} |
var qe = { |
query: q, |
forceAll: forceAll, |
combo: this, |
cancel:false |
}; |
if(this.fireEvent('beforequery', qe)===false || qe.cancel){ |
return false; |
} |
q = qe.query; |
forceAll = qe.forceAll; |
if(forceAll === true || (q.length >= this.minChars)){ |
if(this.lastQuery !== q){ |
this.lastQuery = q; |
if(this.mode == 'local'){ |
this.selectedIndex = -1; |
if(forceAll){ |
this.store.clearFilter(); |
}else{ |
this.store.filter(this.displayField, q); |
} |
this.onLoad(); |
}else{ |
this.store.baseParams[this.queryParam] = q; |
this.store.load({ |
params: this.getParams(q) |
}); |
this.expand(); |
} |
}else{ |
this.selectedIndex = -1; |
this.onLoad(); |
} |
} |
}, |
getParams : function(q){ |
var p = {}; |
if(this.pageSize){ |
p.start = 0; |
p.limit = this.pageSize; |
} |
return p; |
}, |
collapse : function(){ |
if(!this.isExpanded()){ |
return; |
} |
this.list.hide(); |
Ext.getDoc().un('mousewheel', this.collapseIf, this); |
Ext.getDoc().un('mousedown', this.collapseIf, this); |
this.fireEvent('collapse', this); |
}, |
collapseIf : function(e){ |
if(!e.within(this.wrap) && !e.within(this.list)){ |
this.collapse(); |
} |
}, |
expand : function(){ |
if(this.isExpanded() || !this.hasFocus){ |
return; |
} |
this.list.alignTo(this.wrap, this.listAlign); |
this.list.show(); |
this.innerList.setOverflow('auto'); Ext.getDoc().on('mousewheel', this.collapseIf, this); |
Ext.getDoc().on('mousedown', this.collapseIf, this); |
this.fireEvent('expand', this); |
}, |
onTriggerClick : function(){ |
if(this.disabled){ |
return; |
} |
if(this.isExpanded()){ |
this.collapse(); |
this.el.focus(); |
}else { |
this.onFocus({}); |
if(this.triggerAction == 'all') { |
this.doQuery(this.allQuery, true); |
} else { |
this.doQuery(this.getRawValue()); |
} |
this.el.focus(); |
} |
} |
}); |
Ext.reg('combo', Ext.form.ComboBox); |
Ext.form.Checkbox = Ext.extend(Ext.form.Field, { |
focusClass : undefined, |
fieldClass: "x-form-field", |
checked: false, |
defaultAutoCreate : { tag: "input", type: 'checkbox', autocomplete: "off"}, |
initComponent : function(){ |
Ext.form.Checkbox.superclass.initComponent.call(this); |
this.addEvents( |
'check' |
); |
}, |
onResize : function(){ |
Ext.form.Checkbox.superclass.onResize.apply(this, arguments); |
if(!this.boxLabel){ |
this.el.alignTo(this.wrap, 'c-c'); |
} |
}, |
initEvents : function(){ |
Ext.form.Checkbox.superclass.initEvents.call(this); |
this.el.on("click", this.onClick, this); |
this.el.on("change", this.onClick, this); |
}, |
getResizeEl : function(){ |
return this.wrap; |
}, |
getPositionEl : function(){ |
return this.wrap; |
}, |
markInvalid : Ext.emptyFn, |
clearInvalid : Ext.emptyFn, |
onRender : function(ct, position){ |
Ext.form.Checkbox.superclass.onRender.call(this, ct, position); |
if(this.inputValue !== undefined){ |
this.el.dom.value = this.inputValue; |
} |
this.wrap = this.el.wrap({cls: "x-form-check-wrap"}); |
if(this.boxLabel){ |
this.wrap.createChild({tag: 'label', htmlFor: this.el.id, cls: 'x-form-cb-label', html: this.boxLabel}); |
} |
if(this.checked){ |
this.setValue(true); |
}else{ |
this.checked = this.el.dom.checked; |
} |
}, |
onDestroy : function(){ |
if(this.wrap){ |
this.wrap.remove(); |
} |
Ext.form.Checkbox.superclass.onDestroy.call(this); |
}, |
initValue : Ext.emptyFn, |
getValue : function(){ |
if(this.rendered){ |
return this.el.dom.checked; |
} |
return false; |
}, |
onClick : function(){ |
if(this.el.dom.checked != this.checked){ |
this.setValue(this.el.dom.checked); |
} |
}, |
setValue : function(v){ |
this.checked = (v === true || v === 'true' || v == '1' || String(v).toLowerCase() == 'on'); |
if(this.el && this.el.dom){ |
this.el.dom.checked = this.checked; |
this.el.dom.defaultChecked = this.checked; |
} |
this.fireEvent("check", this, this.checked); |
} |
}); |
Ext.reg('checkbox', Ext.form.Checkbox); |
Ext.form.Radio = Ext.extend(Ext.form.Checkbox, { |
inputType: 'radio', |
markInvalid : Ext.emptyFn, |
clearInvalid : Ext.emptyFn, |
getGroupValue : function(){ |
var p = this.el.up('form') || Ext.getBody(); |
var c = p.child('input[name='+this.el.dom.name+']:checked', true); |
return c ? c.value : null; |
}, |
onClick : function(){ |
if(this.el.dom.checked != this.checked){ |
var p = this.el.up('form') || Ext.getBody(); |
var els = p.select('input[name='+this.el.dom.name+']'); |
els.each(function(el){ |
if(el.dom.id == this.id){ |
this.setValue(true); |
}else{ |
Ext.getCmp(el.dom.id).setValue(false); |
} |
}, this); |
} |
}, |
setValue : function(v){ |
if (typeof v == 'boolean') { |
Ext.form.Radio.superclass.setValue.call(this, v); |
} else { |
var r = this.el.up('form').child('input[name='+this.el.dom.name+'][value='+v+']', true); |
if (r){ |
r.checked = true; |
}; |
} |
} |
}); |
Ext.reg('radio', Ext.form.Radio); |
Ext.form.Hidden = Ext.extend(Ext.form.Field, { |
inputType : 'hidden', |
onRender : function(){ |
Ext.form.Hidden.superclass.onRender.apply(this, arguments); |
}, |
initEvents : function(){ |
this.originalValue = this.getValue(); |
}, |
setSize : Ext.emptyFn, |
setWidth : Ext.emptyFn, |
setHeight : Ext.emptyFn, |
setPosition : Ext.emptyFn, |
setPagePosition : Ext.emptyFn, |
markInvalid : Ext.emptyFn, |
clearInvalid : Ext.emptyFn |
}); |
Ext.reg('hidden', Ext.form.Hidden); |
Ext.form.BasicForm = function(el, config){ |
Ext.apply(this, config); |
this.items = new Ext.util.MixedCollection(false, function(o){ |
return o.id || (o.id = Ext.id()); |
}); |
this.addEvents( |
'beforeaction', |
'actionfailed', |
'actioncomplete' |
); |
if(el){ |
this.initEl(el); |
} |
Ext.form.BasicForm.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.form.BasicForm, Ext.util.Observable, { |
timeout: 30, |
activeAction : null, |
trackResetOnLoad : false, |
initEl : function(el){ |
this.el = Ext.get(el); |
this.id = this.el.id || Ext.id(); |
if(!this.standardSubmit){ |
this.el.on('submit', this.onSubmit, this); |
} |
this.el.addClass('x-form'); |
}, |
getEl: function(){ |
return this.el; |
}, |
onSubmit : function(e){ |
e.stopEvent(); |
}, |
destroy: function() { |
this.items.each(function(f){ |
Ext.destroy(f); |
}); |
if(this.el){ |
this.el.removeAllListeners(); |
this.el.remove(); |
} |
this.purgeListeners(); |
}, |
isValid : function(){ |
var valid = true; |
this.items.each(function(f){ |
if(!f.validate()){ |
valid = false; |
} |
}); |
return valid; |
}, |
isDirty : function(){ |
var dirty = false; |
this.items.each(function(f){ |
if(f.isDirty()){ |
dirty = true; |
return false; |
} |
}); |
return dirty; |
}, |
doAction : function(action, options){ |
if(typeof action == 'string'){ |
action = new Ext.form.Action.ACTION_TYPES[action](this, options); |
} |
if(this.fireEvent('beforeaction', this, action) !== false){ |
this.beforeAction(action); |
action.run.defer(100, action); |
} |
return this; |
}, |
submit : function(options){ |
if(this.standardSubmit){ |
var v = this.isValid(); |
if(v){ |
this.el.dom.submit(); |
} |
return v; |
} |
this.doAction('submit', options); |
return this; |
}, |
load : function(options){ |
this.doAction('load', options); |
return this; |
}, |
updateRecord : function(record){ |
record.beginEdit(); |
var fs = record.fields; |
fs.each(function(f){ |
var field = this.findField(f.name); |
if(field){ |
record.set(f.name, field.getValue()); |
} |
}, this); |
record.endEdit(); |
return this; |
}, |
loadRecord : function(record){ |
this.setValues(record.data); |
return this; |
}, |
beforeAction : function(action){ |
var o = action.options; |
if(o.waitMsg){ |
if(this.waitMsgTarget === true){ |
this.el.mask(o.waitMsg, 'x-mask-loading'); |
}else if(this.waitMsgTarget){ |
this.waitMsgTarget = Ext.get(this.waitMsgTarget); |
this.waitMsgTarget.mask(o.waitMsg, 'x-mask-loading'); |
}else{ |
Ext.MessageBox.wait(o.waitMsg, o.waitTitle || this.waitTitle || 'Please Wait...'); |
} |
} |
}, |
afterAction : function(action, success){ |
this.activeAction = null; |
var o = action.options; |
if(o.waitMsg){ |
if(this.waitMsgTarget === true){ |
this.el.unmask(); |
}else if(this.waitMsgTarget){ |
this.waitMsgTarget.unmask(); |
}else{ |
Ext.MessageBox.updateProgress(1); |
Ext.MessageBox.hide(); |
} |
} |
if(success){ |
if(o.reset){ |
this.reset(); |
} |
Ext.callback(o.success, o.scope, [this, action]); |
this.fireEvent('actioncomplete', this, action); |
}else{ |
Ext.callback(o.failure, o.scope, [this, action]); |
this.fireEvent('actionfailed', this, action); |
} |
}, |
findField : function(id){ |
var field = this.items.get(id); |
if(!field){ |
this.items.each(function(f){ |
if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){ |
field = f; |
return false; |
} |
}); |
} |
return field || null; |
}, |
markInvalid : function(errors){ |
if(Ext.isArray(errors)){ |
for(var i = 0, len = errors.length; i < len; i++){ |
var fieldError = errors[i]; |
var f = this.findField(fieldError.id); |
if(f){ |
f.markInvalid(fieldError.msg); |
} |
} |
}else{ |
var field, id; |
for(id in errors){ |
if(typeof errors[id] != 'function' && (field = this.findField(id))){ |
field.markInvalid(errors[id]); |
} |
} |
} |
return this; |
}, |
setValues : function(values){ |
if(Ext.isArray(values)){ for(var i = 0, len = values.length; i < len; i++){ |
var v = values[i]; |
var f = this.findField(v.id); |
if(f){ |
f.setValue(v.value); |
if(this.trackResetOnLoad){ |
f.originalValue = f.getValue(); |
} |
} |
} |
}else{ var field, id; |
for(id in values){ |
if(typeof values[id] != 'function' && (field = this.findField(id))){ |
field.setValue(values[id]); |
if(this.trackResetOnLoad){ |
field.originalValue = field.getValue(); |
} |
} |
} |
} |
return this; |
}, |
getValues : function(asString){ |
var fs = Ext.lib.Ajax.serializeForm(this.el.dom); |
if(asString === true){ |
return fs; |
} |
return Ext.urlDecode(fs); |
}, |
clearInvalid : function(){ |
this.items.each(function(f){ |
f.clearInvalid(); |
}); |
return this; |
}, |
reset : function(){ |
this.items.each(function(f){ |
f.reset(); |
}); |
return this; |
}, |
add : function(){ |
this.items.addAll(Array.prototype.slice.call(arguments, 0)); |
return this; |
}, |
remove : function(field){ |
this.items.remove(field); |
return this; |
}, |
render : function(){ |
this.items.each(function(f){ |
if(f.isFormField && !f.rendered && document.getElementById(f.id)){ f.applyToMarkup(f.id); |
} |
}); |
return this; |
}, |
applyToFields : function(o){ |
this.items.each(function(f){ |
Ext.apply(f, o); |
}); |
return this; |
}, |
applyIfToFields : function(o){ |
this.items.each(function(f){ |
Ext.applyIf(f, o); |
}); |
return this; |
} |
}); |
Ext.BasicForm = Ext.form.BasicForm; |
Ext.FormPanel = Ext.extend(Ext.Panel, { |
buttonAlign:'center', |
minButtonWidth:75, |
labelAlign:'left', |
monitorValid : false, |
monitorPoll : 200, |
layout: 'form', |
initComponent :function(){ |
this.form = this.createForm(); |
Ext.FormPanel.superclass.initComponent.call(this); |
this.addEvents( |
'clientvalidation' |
); |
this.relayEvents(this.form, ['beforeaction', 'actionfailed', 'actioncomplete']); |
}, |
createForm: function(){ |
delete this.initialConfig.listeners; |
return new Ext.form.BasicForm(null, this.initialConfig); |
}, |
initFields : function(){ |
var f = this.form; |
var formPanel = this; |
var fn = function(c){ |
if(c.doLayout && c != formPanel){ |
Ext.applyIf(c, { |
labelAlign: c.ownerCt.labelAlign, |
labelWidth: c.ownerCt.labelWidth, |
itemCls: c.ownerCt.itemCls |
}); |
if(c.items){ |
c.items.each(fn); |
} |
}else if(c.isFormField){ |
f.add(c); |
} |
} |
this.items.each(fn); |
}, |
getLayoutTarget : function(){ |
return this.form.el; |
}, |
getForm : function(){ |
return this.form; |
}, |
onRender : function(ct, position){ |
this.initFields(); |
Ext.FormPanel.superclass.onRender.call(this, ct, position); |
var o = { |
tag: 'form', |
method : this.method || 'POST', |
id : this.formId || Ext.id() |
}; |
if(this.fileUpload) { |
o.enctype = 'multipart/form-data'; |
} |
this.form.initEl(this.body.createChild(o)); |
}, |
beforeDestroy: function(){ |
Ext.FormPanel.superclass.beforeDestroy.call(this); |
Ext.destroy(this.form); |
}, |
initEvents : function(){ |
Ext.FormPanel.superclass.initEvents.call(this); |
this.items.on('remove', this.onRemove, this); |
this.items.on('add', this.onAdd, this); |
if(this.monitorValid){ this.startMonitoring(); |
} |
}, |
onAdd : function(ct, c) { |
if (c.isFormField) { |
this.form.add(c); |
} |
}, |
onRemove : function(c) { |
if (c.isFormField) { |
Ext.destroy(c.container.up('.x-form-item')); |
this.form.remove(c); |
} |
}, |
startMonitoring : function(){ |
if(!this.bound){ |
this.bound = true; |
Ext.TaskMgr.start({ |
run : this.bindHandler, |
interval : this.monitorPoll || 200, |
scope: this |
}); |
} |
}, |
stopMonitoring : function(){ |
this.bound = false; |
}, |
load : function(){ |
this.form.load.apply(this.form, arguments); |
}, |
onDisable : function(){ |
Ext.FormPanel.superclass.onDisable.call(this); |
if(this.form){ |
this.form.items.each(function(){ |
this.disable(); |
}); |
} |
}, |
onEnable : function(){ |
Ext.FormPanel.superclass.onEnable.call(this); |
if(this.form){ |
this.form.items.each(function(){ |
this.enable(); |
}); |
} |
}, |
bindHandler : function(){ |
if(!this.bound){ |
return false; } |
var valid = true; |
this.form.items.each(function(f){ |
if(!f.isValid(true)){ |
valid = false; |
return false; |
} |
}); |
if(this.buttons){ |
for(var i = 0, len = this.buttons.length; i < len; i++){ |
var btn = this.buttons[i]; |
if(btn.formBind === true && btn.disabled === valid){ |
btn.setDisabled(!valid); |
} |
} |
} |
this.fireEvent('clientvalidation', this, valid); |
} |
}); |
Ext.reg('form', Ext.FormPanel); |
Ext.form.FormPanel = Ext.FormPanel; |
Ext.form.FieldSet = Ext.extend(Ext.Panel, { |
baseCls:'x-fieldset', |
layout: 'form', |
onRender : function(ct, position){ |
if(!this.el){ |
this.el = document.createElement('fieldset'); |
this.el.id = this.id; |
if (this.title || this.header || this.checkboxToggle) { |
this.el.appendChild(document.createElement('legend')).className = 'x-fieldset-header'; |
} |
} |
Ext.form.FieldSet.superclass.onRender.call(this, ct, position); |
if(this.checkboxToggle){ |
var o = typeof this.checkboxToggle == 'object' ? |
this.checkboxToggle : |
{tag: 'input', type: 'checkbox', name: this.checkboxName || this.id+'-checkbox'}; |
this.checkbox = this.header.insertFirst(o); |
this.checkbox.dom.checked = !this.collapsed; |
this.checkbox.on('click', this.onCheckClick, this); |
} |
}, |
onCollapse : function(doAnim, animArg){ |
if(this.checkbox){ |
this.checkbox.dom.checked = false; |
} |
this.afterCollapse(); |
}, |
onExpand : function(doAnim, animArg){ |
if(this.checkbox){ |
this.checkbox.dom.checked = true; |
} |
this.afterExpand(); |
}, |
onCheckClick : function(){ |
this[this.checkbox.dom.checked ? 'expand' : 'collapse'](); |
} |
}); |
Ext.reg('fieldset', Ext.form.FieldSet); |
Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { |
enableFormat : true, |
enableFontSize : true, |
enableColors : true, |
enableAlignments : true, |
enableLists : true, |
enableSourceEdit : true, |
enableLinks : true, |
enableFont : true, |
createLinkText : 'Please enter the URL for the link:', |
defaultLinkValue : 'http:/'+'/', |
fontFamilies : [ |
'Arial', |
'Courier New', |
'Tahoma', |
'Times New Roman', |
'Verdana' |
], |
defaultFont: 'tahoma', |
validationEvent : false, |
deferHeight: true, |
initialized : false, |
activated : false, |
sourceEditMode : false, |
onFocus : Ext.emptyFn, |
iframePad:3, |
hideMode:'offsets', |
defaultAutoCreate : { |
tag: "textarea", |
style:"width:500px;height:300px;", |
autocomplete: "off" |
}, |
initComponent : function(){ |
this.addEvents( |
'initialize', |
'activate', |
'beforesync', |
'beforepush', |
'sync', |
'push', |
'editmodechange' |
) |
}, |
createFontOptions : function(){ |
var buf = [], fs = this.fontFamilies, ff, lc; |
for(var i = 0, len = fs.length; i< len; i++){ |
ff = fs[i]; |
lc = ff.toLowerCase(); |
buf.push( |
'<option value="',lc,'" style="font-family:',ff,';"', |
(this.defaultFont == lc ? ' selected="true">' : '>'), |
ff, |
'</option>' |
); |
} |
return buf.join(''); |
}, |
createToolbar : function(editor){ |
function btn(id, toggle, handler){ |
return { |
itemId : id, |
cls : 'x-btn-icon x-edit-'+id, |
enableToggle:toggle !== false, |
scope: editor, |
handler:handler||editor.relayBtnCmd, |
clickEvent:'mousedown', |
tooltip: editor.buttonTips[id] || undefined, |
tabIndex:-1 |
}; |
} |
var tb = new Ext.Toolbar({ |
renderTo:this.wrap.dom.firstChild |
}); |
tb.el.on('click', function(e){ |
e.preventDefault(); |
}); |
if(this.enableFont && !Ext.isSafari){ |
this.fontSelect = tb.el.createChild({ |
tag:'select', |
cls:'x-font-select', |
html: this.createFontOptions() |
}); |
this.fontSelect.on('change', function(){ |
var font = this.fontSelect.dom.value; |
this.relayCmd('fontname', font); |
this.deferFocus(); |
}, this); |
tb.add( |
this.fontSelect.dom, |
'-' |
); |
}; |
if(this.enableFormat){ |
tb.add( |
btn('bold'), |
btn('italic'), |
btn('underline') |
); |
}; |
if(this.enableFontSize){ |
tb.add( |
'-', |
btn('increasefontsize', false, this.adjustFont), |
btn('decreasefontsize', false, this.adjustFont) |
); |
}; |
if(this.enableColors){ |
tb.add( |
'-', { |
itemId:'forecolor', |
cls:'x-btn-icon x-edit-forecolor', |
clickEvent:'mousedown', |
tooltip: editor.buttonTips['forecolor'] || undefined, |
tabIndex:-1, |
menu : new Ext.menu.ColorMenu({ |
allowReselect: true, |
focus: Ext.emptyFn, |
value:'000000', |
plain:true, |
selectHandler: function(cp, color){ |
this.execCmd('forecolor', Ext.isSafari || Ext.isIE ? '#'+color : color); |
this.deferFocus(); |
}, |
scope: this, |
clickEvent:'mousedown' |
}) |
}, { |
itemId:'backcolor', |
cls:'x-btn-icon x-edit-backcolor', |
clickEvent:'mousedown', |
tooltip: editor.buttonTips['backcolor'] || undefined, |
tabIndex:-1, |
menu : new Ext.menu.ColorMenu({ |
focus: Ext.emptyFn, |
value:'FFFFFF', |
plain:true, |
allowReselect: true, |
selectHandler: function(cp, color){ |
if(Ext.isGecko){ |
this.execCmd('useCSS', false); |
this.execCmd('hilitecolor', color); |
this.execCmd('useCSS', true); |
this.deferFocus(); |
}else{ |
this.execCmd(Ext.isOpera ? 'hilitecolor' : 'backcolor', Ext.isSafari || Ext.isIE ? '#'+color : color); |
this.deferFocus(); |
} |
}, |
scope:this, |
clickEvent:'mousedown' |
}) |
} |
); |
}; |
if(this.enableAlignments){ |
tb.add( |
'-', |
btn('justifyleft'), |
btn('justifycenter'), |
btn('justifyright') |
); |
}; |
if(!Ext.isSafari){ |
if(this.enableLinks){ |
tb.add( |
'-', |
btn('createlink', false, this.createLink) |
); |
}; |
if(this.enableLists){ |
tb.add( |
'-', |
btn('insertorderedlist'), |
btn('insertunorderedlist') |
); |
} |
if(this.enableSourceEdit){ |
tb.add( |
'-', |
btn('sourceedit', true, function(btn){ |
this.toggleSourceEdit(btn.pressed); |
}) |
); |
} |
} |
this.tb = tb; |
}, |
getDocMarkup : function(){ |
return '<html><head><style type="text/css">body{border:0;margin:0;padding:3px;height:98%;cursor:text;}</style></head><body></body></html>'; |
}, |
getEditorBody : function(){ |
return this.doc.body || this.doc.documentElement; |
}, |
onRender : function(ct, position){ |
Ext.form.HtmlEditor.superclass.onRender.call(this, ct, position); |
this.el.dom.style.border = '0 none'; |
this.el.dom.setAttribute('tabIndex', -1); |
this.el.addClass('x-hidden'); |
if(Ext.isIE){ |
this.el.applyStyles('margin-top:-1px;margin-bottom:-1px;') |
} |
this.wrap = this.el.wrap({ |
cls:'x-html-editor-wrap', cn:{cls:'x-html-editor-tb'} |
}); |
this.createToolbar(this); |
this.tb.items.each(function(item){ |
if(item.itemId != 'sourceedit'){ |
item.disable(); |
} |
}); |
var iframe = document.createElement('iframe'); |
iframe.name = Ext.id(); |
iframe.frameBorder = 'no'; |
iframe.src=(Ext.SSL_SECURE_URL || "javascript:false"); |
this.wrap.dom.appendChild(iframe); |
this.iframe = iframe; |
if(Ext.isIE){ |
iframe.contentWindow.document.designMode = 'on'; |
this.doc = iframe.contentWindow.document; |
this.win = iframe.contentWindow; |
} else { |
this.doc = (iframe.contentDocument || window.frames[iframe.name].document); |
this.win = window.frames[iframe.name]; |
this.doc.designMode = 'on'; |
} |
this.doc.open(); |
this.doc.write(this.getDocMarkup()) |
this.doc.close(); |
var task = { |
run : function(){ |
if(this.doc.body || this.doc.readyState == 'complete'){ |
Ext.TaskMgr.stop(task); |
this.doc.designMode="on"; |
this.initEditor.defer(10, this); |
} |
}, |
interval : 10, |
duration:10000, |
scope: this |
}; |
Ext.TaskMgr.start(task); |
if(!this.width){ |
this.setSize(this.el.getSize()); |
} |
}, |
onResize : function(w, h){ |
Ext.form.HtmlEditor.superclass.onResize.apply(this, arguments); |
if(this.el && this.iframe){ |
if(typeof w == 'number'){ |
var aw = w - this.wrap.getFrameWidth('lr'); |
this.el.setWidth(this.adjustWidth('textarea', aw)); |
this.iframe.style.width = aw + 'px'; |
} |
if(typeof h == 'number'){ |
var ah = h - this.wrap.getFrameWidth('tb') - this.tb.el.getHeight(); |
this.el.setHeight(this.adjustWidth('textarea', ah)); |
this.iframe.style.height = ah + 'px'; |
if(this.doc){ |
this.getEditorBody().style.height = (ah - (this.iframePad*2)) + 'px'; |
} |
} |
} |
}, |
toggleSourceEdit : function(sourceEditMode){ |
if(sourceEditMode === undefined){ |
sourceEditMode = !this.sourceEditMode; |
} |
this.sourceEditMode = sourceEditMode === true; |
var btn = this.tb.items.get('sourceedit'); |
if(btn.pressed !== this.sourceEditMode){ |
btn.toggle(this.sourceEditMode); |
return; |
} |
if(this.sourceEditMode){ |
this.tb.items.each(function(item){ |
if(item.itemId != 'sourceedit'){ |
item.disable(); |
} |
}); |
this.syncValue(); |
this.iframe.className = 'x-hidden'; |
this.el.removeClass('x-hidden'); |
this.el.dom.removeAttribute('tabIndex'); |
this.el.focus(); |
}else{ |
if(this.initialized){ |
this.tb.items.each(function(item){ |
item.enable(); |
}); |
} |
this.pushValue(); |
this.iframe.className = ''; |
this.el.addClass('x-hidden'); |
this.el.dom.setAttribute('tabIndex', -1); |
this.deferFocus(); |
} |
var lastSize = this.lastSize; |
if(lastSize){ |
delete this.lastSize; |
this.setSize(lastSize); |
} |
this.fireEvent('editmodechange', this, this.sourceEditMode); |
}, |
createLink : function(){ |
var url = prompt(this.createLinkText, this.defaultLinkValue); |
if(url && url != 'http:/'+'/'){ |
this.relayCmd('createlink', url); |
} |
}, |
adjustSize : Ext.BoxComponent.prototype.adjustSize, |
getResizeEl : function(){ |
return this.wrap; |
}, |
getPositionEl : function(){ |
return this.wrap; |
}, |
initEvents : function(){ |
this.originalValue = this.getValue(); |
}, |
markInvalid : Ext.emptyFn, |
clearInvalid : Ext.emptyFn, |
setValue : function(v){ |
Ext.form.HtmlEditor.superclass.setValue.call(this, v); |
this.pushValue(); |
}, |
cleanHtml : function(html){ |
html = String(html); |
if(html.length > 5){ |
if(Ext.isSafari){ |
html = html.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi, ''); |
} |
} |
if(html == ' '){ |
html = ''; |
} |
return html; |
}, |
syncValue : function(){ |
if(this.initialized){ |
var bd = this.getEditorBody(); |
var html = bd.innerHTML; |
if(Ext.isSafari){ |
var bs = bd.getAttribute('style'); |
var m = bs.match(/text-align:(.*?);/i); |
if(m && m[1]){ |
html = '<div style="'+m[0]+'">' + html + '</div>'; |
} |
} |
html = this.cleanHtml(html); |
if(this.fireEvent('beforesync', this, html) !== false){ |
this.el.dom.value = html; |
this.fireEvent('sync', this, html); |
} |
} |
}, |
pushValue : function(){ |
if(this.initialized){ |
var v = this.el.dom.value; |
if(!this.activated && v.length < 1){ |
v = ' '; |
} |
if(this.fireEvent('beforepush', this, v) !== false){ |
this.getEditorBody().innerHTML = v; |
this.fireEvent('push', this, v); |
} |
} |
}, |
deferFocus : function(){ |
this.focus.defer(10, this); |
}, |
focus : function(){ |
if(this.win && !this.sourceEditMode){ |
this.win.focus(); |
}else{ |
this.el.focus(); |
} |
}, |
initEditor : function(){ |
var dbody = this.getEditorBody(); |
var ss = this.el.getStyles('font-size', 'font-family', 'background-image', 'background-repeat'); |
ss['background-attachment'] = 'fixed'; |
dbody.bgProperties = 'fixed'; |
Ext.DomHelper.applyStyles(dbody, ss); |
Ext.EventManager.on(this.doc, { |
'mousedown': this.onEditorEvent, |
'dblclick': this.onEditorEvent, |
'click': this.onEditorEvent, |
'keyup': this.onEditorEvent, |
buffer:100, |
scope: this |
}); |
if(Ext.isGecko){ |
Ext.EventManager.on(this.doc, 'keypress', this.applyCommand, this); |
} |
if(Ext.isIE || Ext.isSafari || Ext.isOpera){ |
Ext.EventManager.on(this.doc, 'keydown', this.fixKeys, this); |
} |
this.initialized = true; |
this.fireEvent('initialize', this); |
this.pushValue(); |
}, |
onDestroy : function(){ |
if(this.rendered){ |
this.tb.items.each(function(item){ |
if(item.menu){ |
item.menu.removeAll(); |
if(item.menu.el){ |
item.menu.el.destroy(); |
} |
} |
item.destroy(); |
}); |
this.wrap.dom.innerHTML = ''; |
this.wrap.remove(); |
} |
}, |
onFirstFocus : function(){ |
this.activated = true; |
this.tb.items.each(function(item){ |
item.enable(); |
}); |
if(Ext.isGecko){ |
this.win.focus(); |
var s = this.win.getSelection(); |
if(!s.focusNode || s.focusNode.nodeType != 3){ |
var r = s.getRangeAt(0); |
r.selectNodeContents(this.getEditorBody()); |
r.collapse(true); |
this.deferFocus(); |
} |
try{ |
this.execCmd('useCSS', true); |
this.execCmd('styleWithCSS', false); |
}catch(e){} |
} |
this.fireEvent('activate', this); |
}, |
adjustFont: function(btn){ |
var adjust = btn.itemId == 'increasefontsize' ? 1 : -1; |
var v = parseInt(this.doc.queryCommandValue('FontSize') || 2, 10); |
if(Ext.isSafari3 || Ext.isAir){ |
if(v <= 10){ |
v = 1 + adjust; |
}else if(v <= 13){ |
v = 2 + adjust; |
}else if(v <= 16){ |
v = 3 + adjust; |
}else if(v <= 18){ |
v = 4 + adjust; |
}else if(v <= 24){ |
v = 5 + adjust; |
}else { |
v = 6 + adjust; |
} |
v = v.constrain(1, 6); |
}else{ |
if(Ext.isSafari){ |
adjust *= 2; |
} |
v = Math.max(1, v+adjust) + (Ext.isSafari ? 'px' : 0); |
} |
this.execCmd('FontSize', v); |
}, |
onEditorEvent : function(e){ |
this.updateToolbar(); |
}, |
updateToolbar: function(){ |
if(!this.activated){ |
this.onFirstFocus(); |
return; |
} |
var btns = this.tb.items.map, doc = this.doc; |
if(this.enableFont && !Ext.isSafari){ |
var name = (this.doc.queryCommandValue('FontName')||this.defaultFont).toLowerCase(); |
if(name != this.fontSelect.dom.value){ |
this.fontSelect.dom.value = name; |
} |
} |
if(this.enableFormat){ |
btns.bold.toggle(doc.queryCommandState('bold')); |
btns.italic.toggle(doc.queryCommandState('italic')); |
btns.underline.toggle(doc.queryCommandState('underline')); |
} |
if(this.enableAlignments){ |
btns.justifyleft.toggle(doc.queryCommandState('justifyleft')); |
btns.justifycenter.toggle(doc.queryCommandState('justifycenter')); |
btns.justifyright.toggle(doc.queryCommandState('justifyright')); |
} |
if(!Ext.isSafari && this.enableLists){ |
btns.insertorderedlist.toggle(doc.queryCommandState('insertorderedlist')); |
btns.insertunorderedlist.toggle(doc.queryCommandState('insertunorderedlist')); |
} |
Ext.menu.MenuMgr.hideAll(); |
this.syncValue(); |
}, |
relayBtnCmd : function(btn){ |
this.relayCmd(btn.itemId); |
}, |
relayCmd : function(cmd, value){ |
this.win.focus(); |
this.execCmd(cmd, value); |
this.updateToolbar(); |
this.deferFocus(); |
}, |
execCmd : function(cmd, value){ |
this.doc.execCommand(cmd, false, value === undefined ? null : value); |
this.syncValue(); |
}, |
applyCommand : function(e){ |
if(e.ctrlKey){ |
var c = e.getCharCode(), cmd; |
if(c > 0){ |
c = String.fromCharCode(c); |
switch(c){ |
case 'b': |
cmd = 'bold'; |
break; |
case 'i': |
cmd = 'italic'; |
break; |
case 'u': |
cmd = 'underline'; |
break; |
} |
if(cmd){ |
this.win.focus(); |
this.execCmd(cmd); |
this.deferFocus(); |
e.preventDefault(); |
} |
} |
} |
}, |
insertAtCursor : function(text){ |
if(!this.activated){ |
return; |
} |
if(Ext.isIE){ |
this.win.focus(); |
var r = this.doc.selection.createRange(); |
if(r){ |
r.collapse(true); |
r.pasteHTML(text); |
this.syncValue(); |
this.deferFocus(); |
} |
}else if(Ext.isGecko || Ext.isOpera){ |
this.win.focus(); |
this.execCmd('InsertHTML', text); |
this.deferFocus(); |
}else if(Ext.isSafari){ |
this.execCmd('InsertText', text); |
this.deferFocus(); |
} |
}, |
fixKeys : function(){ |
if(Ext.isIE){ |
return function(e){ |
var k = e.getKey(), r; |
if(k == e.TAB){ |
e.stopEvent(); |
r = this.doc.selection.createRange(); |
if(r){ |
r.collapse(true); |
r.pasteHTML(' '); |
this.deferFocus(); |
} |
}else if(k == e.ENTER){ |
r = this.doc.selection.createRange(); |
if(r){ |
var target = r.parentElement(); |
if(!target || target.tagName.toLowerCase() != 'li'){ |
e.stopEvent(); |
r.pasteHTML('<br />'); |
r.collapse(false); |
r.select(); |
} |
} |
} |
}; |
}else if(Ext.isOpera){ |
return function(e){ |
var k = e.getKey(); |
if(k == e.TAB){ |
e.stopEvent(); |
this.win.focus(); |
this.execCmd('InsertHTML',' '); |
this.deferFocus(); |
} |
}; |
}else if(Ext.isSafari){ |
return function(e){ |
var k = e.getKey(); |
if(k == e.TAB){ |
e.stopEvent(); |
this.execCmd('InsertText','\t'); |
this.deferFocus(); |
} |
}; |
} |
}(), |
getToolbar : function(){ |
return this.tb; |
}, |
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' |
}, |
sourceedit : { |
title: 'Source Edit', |
text: 'Switch to source editing mode.', |
cls: 'x-html-editor-tip' |
} |
} |
}); |
Ext.reg('htmleditor', Ext.form.HtmlEditor); |
Ext.form.TimeField = Ext.extend(Ext.form.ComboBox, { |
minValue : null, |
maxValue : null, |
minText : "The time in this field must be equal to or after {0}", |
maxText : "The time in this field must be equal to or before {0}", |
invalidText : "{0} is not a valid time", |
format : "g:i A", |
altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H", |
increment: 15, |
mode: 'local', |
triggerAction: 'all', |
typeAhead: false, |
initComponent : function(){ |
Ext.form.TimeField.superclass.initComponent.call(this); |
if(typeof this.minValue == "string"){ |
this.minValue = this.parseDate(this.minValue); |
} |
if(typeof this.maxValue == "string"){ |
this.maxValue = this.parseDate(this.maxValue); |
} |
if(!this.store){ |
var min = this.parseDate(this.minValue); |
if(!min){ |
min = new Date().clearTime(); |
} |
var max = this.parseDate(this.maxValue); |
if(!max){ |
max = new Date().clearTime().add('mi', (24 * 60) - 1); |
} |
var times = []; |
while(min <= max){ |
times.push([min.dateFormat(this.format)]); |
min = min.add('mi', this.increment); |
} |
this.store = new Ext.data.SimpleStore({ |
fields: ['text'], |
data : times |
}); |
this.displayField = 'text'; |
} |
}, |
getValue : function(){ |
var v = Ext.form.TimeField.superclass.getValue.call(this); |
return this.formatDate(this.parseDate(v)) || ''; |
}, |
setValue : function(value){ |
Ext.form.TimeField.superclass.setValue.call(this, this.formatDate(this.parseDate(value))); |
}, |
validateValue : Ext.form.DateField.prototype.validateValue, |
parseDate : Ext.form.DateField.prototype.parseDate, |
formatDate : Ext.form.DateField.prototype.formatDate, |
beforeBlur : function(){ |
var v = this.parseDate(this.getRawValue()); |
if(v){ |
this.setValue(v.dateFormat(this.format)); |
} |
} |
}); |
Ext.reg('timefield', Ext.form.TimeField); |
Ext.form.Label = Ext.extend(Ext.BoxComponent, { |
onRender : function(ct, position){ |
if(!this.el){ |
this.el = document.createElement('label'); |
this.el.innerHTML = this.text ? Ext.util.Format.htmlEncode(this.text) : (this.html || ''); |
if(this.forId){ |
this.el.setAttribute('htmlFor', this.forId); |
} |
} |
Ext.form.Label.superclass.onRender.call(this, ct, position); |
} |
}); |
Ext.reg('label', Ext.form.Label); |
Ext.form.Action = function(form, options){ |
this.form = form; |
this.options = options || {}; |
}; |
Ext.form.Action.CLIENT_INVALID = 'client'; |
Ext.form.Action.SERVER_INVALID = 'server'; |
Ext.form.Action.CONNECT_FAILURE = 'connect'; |
Ext.form.Action.LOAD_FAILURE = 'load'; |
Ext.form.Action.prototype = { |
type : 'default', |
run : function(options){ |
}, |
success : function(response){ |
}, |
handleResponse : function(response){ |
}, |
failure : function(response){ |
this.response = response; |
this.failureType = Ext.form.Action.CONNECT_FAILURE; |
this.form.afterAction(this, false); |
}, |
processResponse : function(response){ |
this.response = response; |
if(!response.responseText){ |
return true; |
} |
this.result = this.handleResponse(response); |
return this.result; |
}, |
getUrl : function(appendParams){ |
var url = this.options.url || this.form.url || this.form.el.dom.action; |
if(appendParams){ |
var p = this.getParams(); |
if(p){ |
url += (url.indexOf('?') != -1 ? '&' : '?') + p; |
} |
} |
return url; |
}, |
getMethod : function(){ |
return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase(); |
}, |
getParams : function(){ |
var bp = this.form.baseParams; |
var p = this.options.params; |
if(p){ |
if(typeof p == "object"){ |
p = Ext.urlEncode(Ext.applyIf(p, bp)); |
}else if(typeof p == 'string' && bp){ |
p += '&' + Ext.urlEncode(bp); |
} |
}else if(bp){ |
p = Ext.urlEncode(bp); |
} |
return p; |
}, |
createCallback : function(opts){ |
var opts = opts || {}; |
return { |
success: this.success, |
failure: this.failure, |
scope: this, |
timeout: (opts.timeout*1000) || (this.form.timeout*1000), |
upload: this.form.fileUpload ? this.success : undefined |
}; |
} |
}; |
Ext.form.Action.Submit = function(form, options){ |
Ext.form.Action.Submit.superclass.constructor.call(this, form, options); |
}; |
Ext.extend(Ext.form.Action.Submit, Ext.form.Action, { |
type : 'submit', |
run : function(){ |
var o = this.options; |
var method = this.getMethod(); |
var isPost = method == 'POST'; |
if(o.clientValidation === false || this.form.isValid()){ |
Ext.Ajax.request(Ext.apply(this.createCallback(o), { |
form:this.form.el.dom, |
url:this.getUrl(!isPost), |
method: method, |
params:isPost ? this.getParams() : null, |
isUpload: this.form.fileUpload |
})); |
}else if (o.clientValidation !== false){ this.failureType = Ext.form.Action.CLIENT_INVALID; |
this.form.afterAction(this, false); |
} |
}, |
success : function(response){ |
var result = this.processResponse(response); |
if(result === true || result.success){ |
this.form.afterAction(this, true); |
return; |
} |
if(result.errors){ |
this.form.markInvalid(result.errors); |
this.failureType = Ext.form.Action.SERVER_INVALID; |
} |
this.form.afterAction(this, false); |
}, |
handleResponse : function(response){ |
if(this.form.errorReader){ |
var rs = this.form.errorReader.read(response); |
var errors = []; |
if(rs.records){ |
for(var i = 0, len = rs.records.length; i < len; i++) { |
var r = rs.records[i]; |
errors[i] = r.data; |
} |
} |
if(errors.length < 1){ |
errors = null; |
} |
return { |
success : rs.success, |
errors : errors |
}; |
} |
return Ext.decode(response.responseText); |
} |
}); |
Ext.form.Action.Load = function(form, options){ |
Ext.form.Action.Load.superclass.constructor.call(this, form, options); |
this.reader = this.form.reader; |
}; |
Ext.extend(Ext.form.Action.Load, Ext.form.Action, { |
type : 'load', |
run : function(){ |
Ext.Ajax.request(Ext.apply( |
this.createCallback(this.options), { |
method:this.getMethod(), |
url:this.getUrl(false), |
params:this.getParams() |
})); |
}, |
success : function(response){ |
var result = this.processResponse(response); |
if(result === true || !result.success || !result.data){ |
this.failureType = Ext.form.Action.LOAD_FAILURE; |
this.form.afterAction(this, false); |
return; |
} |
this.form.clearInvalid(); |
this.form.setValues(result.data); |
this.form.afterAction(this, true); |
}, |
handleResponse : function(response){ |
if(this.form.reader){ |
var rs = this.form.reader.read(response); |
var data = rs.records && rs.records[0] ? rs.records[0].data : null; |
return { |
success : rs.success, |
data : data |
}; |
} |
return Ext.decode(response.responseText); |
} |
}); |
Ext.form.Action.ACTION_TYPES = { |
'load' : Ext.form.Action.Load, |
'submit' : Ext.form.Action.Submit |
}; |
Ext.form.VTypes = function(){ |
var alpha = /^[a-zA-Z_]+$/; |
var alphanum = /^[a-zA-Z0-9_]+$/; |
var email = /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/; |
var url = /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i; |
return { |
'email' : function(v){ |
return email.test(v); |
}, |
'emailText' : 'This field should be an e-mail address in the format "user@domain.com"', |
'emailMask' : /[a-z0-9_\.\-@]/i, |
'url' : function(v){ |
return url.test(v); |
}, |
'urlText' : 'This field should be a URL in the format "http:/'+'/www.domain.com"', |
'alpha' : function(v){ |
return alpha.test(v); |
}, |
'alphaText' : 'This field should only contain letters and _', |
'alphaMask' : /[a-z_]/i, |
'alphanum' : function(v){ |
return alphanum.test(v); |
}, |
'alphanumText' : 'This field should only contain letters, numbers and _', |
'alphanumMask' : /[a-z0-9_]/i |
}; |
}(); |
Ext.grid.GridPanel = Ext.extend(Ext.Panel, { |
ddText : "{0} selected row{1}", |
minColumnWidth : 25, |
trackMouseOver : true, |
enableDragDrop : false, |
enableColumnMove : true, |
enableColumnHide : true, |
enableHdMenu : true, |
stripeRows : false, |
autoExpandColumn : false, |
autoExpandMin : 50, |
autoExpandMax : 1000, |
view : null, |
loadMask : false, |
rendered : false, |
viewReady: false, |
stateEvents: ["columnmove", "columnresize", "sortchange"], |
initComponent : function(){ |
Ext.grid.GridPanel.superclass.initComponent.call(this); |
this.autoScroll = false; |
this.autoWidth = false; |
if(Ext.isArray(this.columns)){ |
this.colModel = new Ext.grid.ColumnModel(this.columns); |
delete this.columns; |
} |
if(this.ds){ |
this.store = this.ds; |
delete this.ds; |
} |
if(this.cm){ |
this.colModel = this.cm; |
delete this.cm; |
} |
if(this.sm){ |
this.selModel = this.sm; |
delete this.sm; |
} |
this.store = Ext.StoreMgr.lookup(this.store); |
this.addEvents( |
"click", |
"dblclick", |
"contextmenu", |
"mousedown", |
"mouseup", |
"mouseover", |
"mouseout", |
"keypress", |
"keydown", |
"cellmousedown", |
"rowmousedown", |
"headermousedown", |
"cellclick", |
"celldblclick", |
"rowclick", |
"rowdblclick", |
"headerclick", |
"headerdblclick", |
"rowcontextmenu", |
"cellcontextmenu", |
"headercontextmenu", |
"bodyscroll", |
"columnresize", |
"columnmove", |
"sortchange" |
); |
}, |
onRender : function(ct, position){ |
Ext.grid.GridPanel.superclass.onRender.apply(this, arguments); |
var c = this.body; |
this.el.addClass('x-grid-panel'); |
var view = this.getView(); |
view.init(this); |
c.on("mousedown", this.onMouseDown, this); |
c.on("click", this.onClick, this); |
c.on("dblclick", this.onDblClick, this); |
c.on("contextmenu", this.onContextMenu, this); |
c.on("keydown", this.onKeyDown, this); |
this.relayEvents(c, ["mousedown","mouseup","mouseover","mouseout","keypress"]); |
this.getSelectionModel().init(this); |
this.view.render(); |
}, |
initEvents : function(){ |
Ext.grid.GridPanel.superclass.initEvents.call(this); |
if(this.loadMask){ |
this.loadMask = new Ext.LoadMask(this.bwrap, |
Ext.apply({store:this.store}, this.loadMask)); |
} |
}, |
initStateEvents : function(){ |
Ext.grid.GridPanel.superclass.initStateEvents.call(this); |
this.colModel.on('hiddenchange', this.saveState, this, {delay: 100}); |
}, |
applyState : function(state){ |
var cm = this.colModel; |
var cs = state.columns; |
if(cs){ |
for(var i = 0, len = cs.length; i < len; i++){ |
var s = cs[i]; |
var c = cm.getColumnById(s.id); |
if(c){ |
c.hidden = s.hidden; |
c.width = s.width; |
var oldIndex = cm.getIndexById(s.id); |
if(oldIndex != i){ |
cm.moveColumn(oldIndex, i); |
} |
} |
} |
} |
if(state.sort){ |
this.store[this.store.remoteSort ? 'setDefaultSort' : 'sort'](state.sort.field, state.sort.direction); |
} |
}, |
getState : function(){ |
var o = {columns: []}; |
for(var i = 0, c; c = this.colModel.config[i]; i++){ |
o.columns[i] = { |
id: c.id, |
width: c.width |
}; |
if(c.hidden){ |
o.columns[i].hidden = true; |
} |
} |
var ss = this.store.getSortState(); |
if(ss){ |
o.sort = ss; |
} |
return o; |
}, |
afterRender : function(){ |
Ext.grid.GridPanel.superclass.afterRender.call(this); |
this.view.layout(); |
this.viewReady = true; |
}, |
reconfigure : function(store, colModel){ |
if(this.loadMask){ |
this.loadMask.destroy(); |
this.loadMask = new Ext.LoadMask(this.bwrap, |
Ext.apply({store:store}, this.initialConfig.loadMask)); |
} |
this.view.bind(store, colModel); |
this.store = store; |
this.colModel = colModel; |
if(this.rendered){ |
this.view.refresh(true); |
} |
}, |
onKeyDown : function(e){ |
this.fireEvent("keydown", e); |
}, |
onDestroy : function(){ |
if(this.rendered){ |
if(this.loadMask){ |
this.loadMask.destroy(); |
} |
var c = this.body; |
c.removeAllListeners(); |
this.view.destroy(); |
c.update(""); |
} |
this.colModel.purgeListeners(); |
Ext.grid.GridPanel.superclass.onDestroy.call(this); |
}, |
processEvent : function(name, e){ |
this.fireEvent(name, e); |
var t = e.getTarget(); |
var v = this.view; |
var header = v.findHeaderIndex(t); |
if(header !== false){ |
this.fireEvent("header" + name, this, header, e); |
}else{ |
var row = v.findRowIndex(t); |
var cell = v.findCellIndex(t); |
if(row !== false){ |
this.fireEvent("row" + name, this, row, e); |
if(cell !== false){ |
this.fireEvent("cell" + name, this, row, cell, e); |
} |
} |
} |
}, |
onClick : function(e){ |
this.processEvent("click", e); |
}, |
onMouseDown : function(e){ |
this.processEvent("mousedown", e); |
}, |
onContextMenu : function(e, t){ |
this.processEvent("contextmenu", e); |
}, |
onDblClick : function(e){ |
this.processEvent("dblclick", e); |
}, |
walkCells : function(row, col, step, fn, scope){ |
var cm = this.colModel, clen = cm.getColumnCount(); |
var ds = this.store, rlen = ds.getCount(), first = true; |
if(step < 0){ |
if(col < 0){ |
row--; |
first = false; |
} |
while(row >= 0){ |
if(!first){ |
col = clen-1; |
} |
first = false; |
while(col >= 0){ |
if(fn.call(scope || this, row, col, cm) === true){ |
return [row, col]; |
} |
col--; |
} |
row--; |
} |
} else { |
if(col >= clen){ |
row++; |
first = false; |
} |
while(row < rlen){ |
if(!first){ |
col = 0; |
} |
first = false; |
while(col < clen){ |
if(fn.call(scope || this, row, col, cm) === true){ |
return [row, col]; |
} |
col++; |
} |
row++; |
} |
} |
return null; |
}, |
getSelections : function(){ |
return this.selModel.getSelections(); |
}, |
onResize : function(){ |
Ext.grid.GridPanel.superclass.onResize.apply(this, arguments); |
if(this.viewReady){ |
this.view.layout(); |
} |
}, |
getGridEl : function(){ |
return this.body; |
}, |
stopEditing : function(){}, |
getSelectionModel : function(){ |
if(!this.selModel){ |
this.selModel = new Ext.grid.RowSelectionModel( |
this.disableSelection ? {selectRow: Ext.emptyFn} : null); |
} |
return this.selModel; |
}, |
getStore : function(){ |
return this.store; |
}, |
getColumnModel : function(){ |
return this.colModel; |
}, |
getView : function(){ |
if(!this.view){ |
this.view = new Ext.grid.GridView(this.viewConfig); |
} |
return this.view; |
}, |
getDragDropText : function(){ |
var count = this.selModel.getCount(); |
return String.format(this.ddText, count, count == 1 ? '' : 's'); |
} |
}); |
Ext.reg('grid', Ext.grid.GridPanel); |
Ext.grid.GridView = function(config){ |
Ext.apply(this, config); |
this.addEvents( |
"beforerowremoved", |
"beforerowsinserted", |
"beforerefresh", |
"rowremoved", |
"rowsinserted", |
"rowupdated", |
"refresh" |
); |
Ext.grid.GridView.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.grid.GridView, Ext.util.Observable, { |
scrollOffset: 19, |
autoFill: false, |
forceFit: false, |
sortClasses : ["sort-asc", "sort-desc"], |
sortAscText : "Sort Ascending", |
sortDescText : "Sort Descending", |
columnsText : "Columns", |
borderWidth: 2, |
initTemplates : function(){ |
var ts = this.templates || {}; |
if(!ts.master){ |
ts.master = new Ext.Template( |
'<div class="x-grid3" hidefocus="true">', |
'<div class="x-grid3-viewport">', |
'<div class="x-grid3-header"><div class="x-grid3-header-inner"><div class="x-grid3-header-offset">{header}</div></div><div class="x-clear"></div></div>', |
'<div class="x-grid3-scroller"><div class="x-grid3-body">{body}</div><a href="#" class="x-grid3-focus" tabIndex="-1"></a></div>', |
"</div>", |
'<div class="x-grid3-resize-marker"> </div>', |
'<div class="x-grid3-resize-proxy"> </div>', |
"</div>" |
); |
} |
if(!ts.header){ |
ts.header = new Ext.Template( |
'<table border="0" cellspacing="0" cellpadding="0" style="{tstyle}">', |
'<thead><tr class="x-grid3-hd-row">{cells}</tr></thead>', |
"</table>" |
); |
} |
if(!ts.hcell){ |
ts.hcell = new Ext.Template( |
'<td class="x-grid3-hd x-grid3-cell x-grid3-td-{id}" style="{style}"><div {tooltip} {attr} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">', this.grid.enableHdMenu ? '<a class="x-grid3-hd-btn" href="#"></a>' : '', |
'{value}<img class="x-grid3-sort-icon" src="', Ext.BLANK_IMAGE_URL, '" />', |
"</div></td>" |
); |
} |
if(!ts.body){ |
ts.body = new Ext.Template('{rows}'); |
} |
if(!ts.row){ |
ts.row = new Ext.Template( |
'<div class="x-grid3-row {alt}" style="{tstyle}"><table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">', |
'<tbody><tr>{cells}</tr>', |
(this.enableRowBody ? '<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>' : ''), |
'</tbody></table></div>' |
); |
} |
if(!ts.cell){ |
ts.cell = new Ext.Template( |
'<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>', |
'<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on" {attr}>{value}</div>', |
"</td>" |
); |
} |
for(var k in ts){ |
var t = ts[k]; |
if(t && typeof t.compile == 'function' && !t.compiled){ |
t.disableFormats = true; |
t.compile(); |
} |
} |
this.templates = ts; |
this.tdClass = 'x-grid3-cell'; |
this.cellSelector = 'td.x-grid3-cell'; |
this.hdCls = 'x-grid3-hd'; |
this.rowSelector = 'div.x-grid3-row'; |
this.colRe = new RegExp("x-grid3-td-([^\\s]+)", ""); |
}, |
fly : function(el){ |
if(!this._flyweight){ |
this._flyweight = new Ext.Element.Flyweight(document.body); |
} |
this._flyweight.dom = el; |
return this._flyweight; |
}, |
getEditorParent : function(ed){ |
return this.scroller.dom; |
}, |
initElements : function(){ |
var E = Ext.Element; |
var el = this.grid.getGridEl().dom.firstChild; |
var cs = el.childNodes; |
this.el = new E(el); |
this.mainWrap = new E(cs[0]); |
this.mainHd = new E(this.mainWrap.dom.firstChild); |
if(this.grid.hideHeaders){ |
this.mainHd.setDisplayed(false); |
} |
this.innerHd = this.mainHd.dom.firstChild; |
this.scroller = new E(this.mainWrap.dom.childNodes[1]); |
if(this.forceFit){ |
this.scroller.setStyle('overflow-x', 'hidden'); |
} |
this.mainBody = new E(this.scroller.dom.firstChild); |
this.focusEl = new E(this.scroller.dom.childNodes[1]); |
this.focusEl.swallowEvent("click", true); |
this.resizeMarker = new E(cs[1]); |
this.resizeProxy = new E(cs[2]); |
}, |
getRows : function(){ |
return this.hasRows() ? this.mainBody.dom.childNodes : []; |
}, |
findCell : function(el){ |
if(!el){ |
return false; |
} |
return this.fly(el).findParent(this.cellSelector, 3); |
}, |
findCellIndex : function(el, requiredCls){ |
var cell = this.findCell(el); |
if(cell && (!requiredCls || this.fly(cell).hasClass(requiredCls))){ |
return this.getCellIndex(cell); |
} |
return false; |
}, |
getCellIndex : function(el){ |
if(el){ |
var m = el.className.match(this.colRe); |
if(m && m[1]){ |
return this.cm.getIndexById(m[1]); |
} |
} |
return false; |
}, |
findHeaderCell : function(el){ |
var cell = this.findCell(el); |
return cell && this.fly(cell).hasClass(this.hdCls) ? cell : null; |
}, |
findHeaderIndex : function(el){ |
return this.findCellIndex(el, this.hdCls); |
}, |
findRow : function(el){ |
if(!el){ |
return false; |
} |
return this.fly(el).findParent(this.rowSelector, 10); |
}, |
findRowIndex : function(el){ |
var r = this.findRow(el); |
return r ? r.rowIndex : false; |
}, |
getRow : function(row){ |
return this.getRows()[row]; |
}, |
getCell : function(row, col){ |
return this.getRow(row).getElementsByTagName('td')[col]; |
}, |
getHeaderCell : function(index){ |
return this.mainHd.dom.getElementsByTagName('td')[index]; |
}, |
addRowClass : function(row, cls){ |
var r = this.getRow(row); |
if(r){ |
this.fly(r).addClass(cls); |
} |
}, |
removeRowClass : function(row, cls){ |
var r = this.getRow(row); |
if(r){ |
this.fly(r).removeClass(cls); |
} |
}, |
removeRow : function(row){ |
Ext.removeNode(this.getRow(row)); |
}, |
removeRows : function(firstRow, lastRow){ |
var bd = this.mainBody.dom; |
for(var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++){ |
Ext.removeNode(bd.childNodes[firstRow]); |
} |
}, |
getScrollState : function(){ |
var sb = this.scroller.dom; |
return {left: sb.scrollLeft, top: sb.scrollTop}; |
}, |
restoreScroll : function(state){ |
var sb = this.scroller.dom; |
sb.scrollLeft = state.left; |
sb.scrollTop = state.top; |
}, |
scrollToTop : function(){ |
this.scroller.dom.scrollTop = 0; |
this.scroller.dom.scrollLeft = 0; |
}, |
syncScroll : function(){ |
this.syncHeaderScroll(); |
var mb = this.scroller.dom; |
this.grid.fireEvent("bodyscroll", mb.scrollLeft, mb.scrollTop); |
}, |
syncHeaderScroll : function(){ |
var mb = this.scroller.dom; |
this.innerHd.scrollLeft = mb.scrollLeft; |
this.innerHd.scrollLeft = mb.scrollLeft; }, |
updateSortIcon : function(col, dir){ |
var sc = this.sortClasses; |
var hds = this.mainHd.select('td').removeClass(sc); |
hds.item(col).addClass(sc[dir == "DESC" ? 1 : 0]); |
}, |
updateAllColumnWidths : function(){ |
var tw = this.getTotalWidth(); |
var clen = this.cm.getColumnCount(); |
var ws = []; |
for(var i = 0; i < clen; i++){ |
ws[i] = this.getColumnWidth(i); |
} |
this.innerHd.firstChild.firstChild.style.width = tw; |
for(var i = 0; i < clen; i++){ |
var hd = this.getHeaderCell(i); |
hd.style.width = ws[i]; |
} |
var ns = this.getRows(); |
for(var i = 0, len = ns.length; i < len; i++){ |
ns[i].style.width = tw; |
ns[i].firstChild.style.width = tw; |
var row = ns[i].firstChild.rows[0]; |
for(var j = 0; j < clen; j++){ |
row.childNodes[j].style.width = ws[j]; |
} |
} |
this.onAllColumnWidthsUpdated(ws, tw); |
}, |
updateColumnWidth : function(col, width){ |
var w = this.getColumnWidth(col); |
var tw = this.getTotalWidth(); |
this.innerHd.firstChild.firstChild.style.width = tw; |
var hd = this.getHeaderCell(col); |
hd.style.width = w; |
var ns = this.getRows(); |
for(var i = 0, len = ns.length; i < len; i++){ |
ns[i].style.width = tw; |
ns[i].firstChild.style.width = tw; |
ns[i].firstChild.rows[0].childNodes[col].style.width = w; |
} |
this.onColumnWidthUpdated(col, w, tw); |
}, |
updateColumnHidden : function(col, hidden){ |
var tw = this.getTotalWidth(); |
this.innerHd.firstChild.firstChild.style.width = tw; |
var display = hidden ? 'none' : ''; |
var hd = this.getHeaderCell(col); |
hd.style.display = display; |
var ns = this.getRows(); |
for(var i = 0, len = ns.length; i < len; i++){ |
ns[i].style.width = tw; |
ns[i].firstChild.style.width = tw; |
ns[i].firstChild.rows[0].childNodes[col].style.display = display; |
} |
this.onColumnHiddenUpdated(col, hidden, tw); |
delete this.lastViewWidth; this.layout(); |
}, |
doRender : function(cs, rs, ds, startRow, colCount, stripe){ |
var ts = this.templates, ct = ts.cell, rt = ts.row, last = colCount-1; |
var tstyle = 'width:'+this.getTotalWidth()+';'; |
var buf = [], cb, c, p = {}, rp = {tstyle: tstyle}, r; |
for(var j = 0, len = rs.length; j < len; j++){ |
r = rs[j]; cb = []; |
var rowIndex = (j+startRow); |
for(var i = 0; i < colCount; i++){ |
c = cs[i]; |
p.id = c.id; |
p.css = i == 0 ? 'x-grid3-cell-first ' : (i == last ? 'x-grid3-cell-last ' : ''); |
p.attr = p.cellAttr = ""; |
p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds); |
p.style = c.style; |
if(p.value == undefined || p.value === "") p.value = " "; |
if(r.dirty && typeof r.modified[c.name] !== 'undefined'){ |
p.css += ' x-grid3-dirty-cell'; |
} |
cb[cb.length] = ct.apply(p); |
} |
var alt = []; |
if(stripe && ((rowIndex+1) % 2 == 0)){ |
alt[0] = "x-grid3-row-alt"; |
} |
if(r.dirty){ |
alt[1] = " x-grid3-dirty-row"; |
} |
rp.cols = colCount; |
if(this.getRowClass){ |
alt[2] = this.getRowClass(r, rowIndex, rp, ds); |
} |
rp.alt = alt.join(" "); |
rp.cells = cb.join(""); |
buf[buf.length] = rt.apply(rp); |
} |
return buf.join(""); |
}, |
processRows : function(startRow, skipStripe){ |
if(this.ds.getCount() < 1){ |
return; |
} |
skipStripe = skipStripe || !this.grid.stripeRows; |
startRow = startRow || 0; |
var rows = this.getRows(); |
var cls = ' x-grid3-row-alt '; |
for(var i = startRow, len = rows.length; i < len; i++){ |
var row = rows[i]; |
row.rowIndex = i; |
if(!skipStripe){ |
var isAlt = ((i+1) % 2 == 0); |
var hasAlt = (' '+row.className + ' ').indexOf(cls) != -1; |
if(isAlt == hasAlt){ |
continue; |
} |
if(isAlt){ |
row.className += " x-grid3-row-alt"; |
}else{ |
row.className = row.className.replace("x-grid3-row-alt", ""); |
} |
} |
} |
}, |
renderUI : function(){ |
var header = this.renderHeaders(); |
var body = this.templates.body.apply({rows:''}); |
var html = this.templates.master.apply({ |
body: body, |
header: header |
}); |
var g = this.grid; |
g.getGridEl().dom.innerHTML = html; |
this.initElements(); |
this.mainBody.dom.innerHTML = this.renderRows(); |
this.processRows(0, true); |
Ext.fly(this.innerHd).on("click", this.handleHdDown, this); |
this.mainHd.on("mouseover", this.handleHdOver, this); |
this.mainHd.on("mouseout", this.handleHdOut, this); |
this.mainHd.on("mousemove", this.handleHdMove, this); |
this.scroller.on('scroll', this.syncScroll, this); |
if(g.enableColumnResize !== false){ |
this.splitone = new Ext.grid.GridView.SplitDragZone(g, this.mainHd.dom); |
} |
if(g.enableColumnMove){ |
this.columnDrag = new Ext.grid.GridView.ColumnDragZone(g, this.innerHd); |
this.columnDrop = new Ext.grid.HeaderDropZone(g, this.mainHd.dom); |
} |
if(g.enableHdMenu !== false){ |
if(g.enableColumnHide !== false){ |
this.colMenu = new Ext.menu.Menu({id:g.id + "-hcols-menu"}); |
this.colMenu.on("beforeshow", this.beforeColMenuShow, this); |
this.colMenu.on("itemclick", this.handleHdMenuClick, this); |
} |
this.hmenu = new Ext.menu.Menu({id: g.id + "-hctx"}); |
this.hmenu.add( |
{id:"asc", text: this.sortAscText, cls: "xg-hmenu-sort-asc"}, |
{id:"desc", text: this.sortDescText, cls: "xg-hmenu-sort-desc"} |
); |
if(g.enableColumnHide !== false){ |
this.hmenu.add('-', |
{id:"columns", text: this.columnsText, menu: this.colMenu, iconCls: 'x-cols-icon'} |
); |
} |
this.hmenu.on("itemclick", this.handleHdMenuClick, this); |
} |
if(g.enableDragDrop || g.enableDrag){ |
var dd = new Ext.grid.GridDragZone(g, { |
ddGroup : g.ddGroup || 'GridDD' |
}); |
} |
this.updateHeaderSortState(); |
}, |
layout : function(){ |
if(!this.mainBody){ |
return; } |
var g = this.grid; |
var c = g.getGridEl(), cm = this.cm, |
expandCol = g.autoExpandColumn, |
gv = this; |
var csize = c.getSize(true); |
var vw = csize.width; |
if(vw < 20 || csize.height < 20){ return; |
} |
if(g.autoHeight){ |
this.scroller.dom.style.overflow = 'visible'; |
}else{ |
this.el.setSize(csize.width, csize.height); |
var hdHeight = this.mainHd.getHeight(); |
var vh = csize.height - (hdHeight); |
this.scroller.setSize(vw, vh); |
if(this.innerHd){ |
this.innerHd.style.width = (vw)+'px'; |
} |
} |
if(this.forceFit){ |
if(this.lastViewWidth != vw){ |
this.fitColumns(false, false); |
this.lastViewWidth = vw; |
} |
}else { |
this.autoExpand(); |
this.syncHeaderScroll(); |
} |
this.onLayout(vw, vh); |
}, |
onLayout : function(vw, vh){ |
}, |
onColumnWidthUpdated : function(col, w, tw){ |
}, |
onAllColumnWidthsUpdated : function(ws, tw){ |
}, |
onColumnHiddenUpdated : function(col, hidden, tw){ |
}, |
updateColumnText : function(col, text){ |
}, |
afterMove : function(colIndex){ |
}, |
init: function(grid){ |
this.grid = grid; |
this.initTemplates(); |
this.initData(grid.store, grid.colModel); |
this.initUI(grid); |
}, |
getColumnId : function(index){ |
return this.cm.getColumnId(index); |
}, |
renderHeaders : function(){ |
var cm = this.cm, ts = this.templates; |
var ct = ts.hcell; |
var cb = [], sb = [], p = {}; |
for(var i = 0, len = cm.getColumnCount(); i < len; i++){ |
p.id = cm.getColumnId(i); |
p.value = cm.getColumnHeader(i) || ""; |
p.style = this.getColumnStyle(i, true); |
p.tooltip = this.getColumnTooltip(i); |
if(cm.config[i].align == 'right'){ |
p.istyle = 'padding-right:16px'; |
} else { |
delete p.istyle; |
} |
cb[cb.length] = ct.apply(p); |
} |
return ts.header.apply({cells: cb.join(""), tstyle:'width:'+this.getTotalWidth()+';'}); |
}, |
getColumnTooltip : function(i){ |
var tt = this.cm.getColumnTooltip(i); |
if(tt){ |
if(Ext.QuickTips.isEnabled()){ |
return 'ext:qtip="'+tt+'"'; |
}else{ |
return 'title="'+tt+'"'; |
} |
} |
return ""; |
}, |
beforeUpdate : function(){ |
this.grid.stopEditing(true); |
}, |
updateHeaders : function(){ |
this.innerHd.firstChild.innerHTML = this.renderHeaders(); |
}, |
focusRow : function(row){ |
this.focusCell(row, 0, false); |
}, |
focusCell : function(row, col, hscroll){ |
var xy = this.ensureVisible(row, col, hscroll); |
this.focusEl.setXY(xy); |
if(Ext.isGecko){ |
this.focusEl.focus(); |
}else{ |
this.focusEl.focus.defer(1, this.focusEl); |
} |
}, |
ensureVisible : function(row, col, hscroll){ |
if(typeof row != "number"){ |
row = row.rowIndex; |
} |
if(!this.ds){ |
return; |
} |
if(row < 0 || row >= this.ds.getCount()){ |
return; |
} |
col = (col !== undefined ? col : 0); |
var rowEl = this.getRow(row), cellEl; |
if(!(hscroll === false && col === 0)){ |
while(this.cm.isHidden(col)){ |
col++; |
} |
cellEl = this.getCell(row, col); |
} |
if(!rowEl){ |
return; |
} |
var c = this.scroller.dom; |
var ctop = 0; |
var p = rowEl, stop = this.el.dom; |
while(p && p != stop){ |
ctop += p.offsetTop; |
p = p.offsetParent; |
} |
ctop -= this.mainHd.dom.offsetHeight; |
var cbot = ctop + rowEl.offsetHeight; |
var ch = c.clientHeight; |
var stop = parseInt(c.scrollTop, 10); |
var sbot = stop + ch; |
if(ctop < stop){ |
c.scrollTop = ctop; |
}else if(cbot > sbot){ |
c.scrollTop = cbot-ch; |
} |
if(hscroll !== false){ |
var cleft = parseInt(cellEl.offsetLeft, 10); |
var cright = cleft + cellEl.offsetWidth; |
var sleft = parseInt(c.scrollLeft, 10); |
var sright = sleft + c.clientWidth; |
if(cleft < sleft){ |
c.scrollLeft = cleft; |
}else if(cright > sright){ |
c.scrollLeft = cright-c.clientWidth; |
} |
} |
return cellEl ? Ext.fly(cellEl).getXY() : [c.scrollLeft, Ext.fly(rowEl).getY()]; |
}, |
insertRows : function(dm, firstRow, lastRow, isUpdate){ |
if(!isUpdate && firstRow === 0 && lastRow == dm.getCount()-1){ |
this.refresh(); |
}else{ |
if(!isUpdate){ |
this.fireEvent("beforerowsinserted", this, firstRow, lastRow); |
} |
var html = this.renderRows(firstRow, lastRow); |
var before = this.getRow(firstRow); |
if(before){ |
Ext.DomHelper.insertHtml('beforeBegin', before, html); |
}else{ |
Ext.DomHelper.insertHtml('beforeEnd', this.mainBody.dom, html); |
} |
if(!isUpdate){ |
this.fireEvent("rowsinserted", this, firstRow, lastRow); |
this.processRows(firstRow); |
} |
} |
}, |
deleteRows : function(dm, firstRow, lastRow){ |
if(dm.getRowCount()<1){ |
this.refresh(); |
}else{ |
this.fireEvent("beforerowsdeleted", this, firstRow, lastRow); |
this.removeRows(firstRow, lastRow); |
this.processRows(firstRow); |
this.fireEvent("rowsdeleted", this, firstRow, lastRow); |
} |
}, |
getColumnStyle : function(col, isHeader){ |
var style = !isHeader ? (this.cm.config[col].css || '') : ''; |
style += 'width:'+this.getColumnWidth(col)+';'; |
if(this.cm.isHidden(col)){ |
style += 'display:none;'; |
} |
var align = this.cm.config[col].align; |
if(align){ |
style += 'text-align:'+align+';'; |
} |
return style; |
}, |
getColumnWidth : function(col){ |
var w = this.cm.getColumnWidth(col); |
if(typeof w == 'number'){ |
return (Ext.isBorderBox ? w : (w-this.borderWidth > 0 ? w-this.borderWidth:0)) + 'px'; |
} |
return w; |
}, |
getTotalWidth : function(){ |
return this.cm.getTotalWidth()+'px'; |
}, |
fitColumns : function(preventRefresh, onlyExpand, omitColumn){ |
var cm = this.cm, leftOver, dist, i; |
var tw = cm.getTotalWidth(false); |
var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset; |
if(aw < 20){ return; |
} |
var extra = aw - tw; |
if(extra === 0){ |
return false; |
} |
var vc = cm.getColumnCount(true); |
var ac = vc-(typeof omitColumn == 'number' ? 1 : 0); |
if(ac === 0){ |
ac = 1; |
omitColumn = undefined; |
} |
var colCount = cm.getColumnCount(); |
var cols = []; |
var extraCol = 0; |
var width = 0; |
var w; |
for (i = 0; i < colCount; i++){ |
if(!cm.isHidden(i) && !cm.isFixed(i) && i !== omitColumn){ |
w = cm.getColumnWidth(i); |
cols.push(i); |
extraCol = i; |
cols.push(w); |
width += w; |
} |
} |
var frac = (aw - cm.getTotalWidth())/width; |
while (cols.length){ |
w = cols.pop(); |
i = cols.pop(); |
cm.setColumnWidth(i, Math.max(this.grid.minColumnWidth, Math.floor(w + w*frac)), true); |
} |
if((tw = cm.getTotalWidth(false)) > aw){ |
var adjustCol = ac != vc ? omitColumn : extraCol; |
cm.setColumnWidth(adjustCol, Math.max(1, |
cm.getColumnWidth(adjustCol)- (tw-aw)), true); |
} |
if(preventRefresh !== true){ |
this.updateAllColumnWidths(); |
} |
return true; |
}, |
autoExpand : function(preventUpdate){ |
var g = this.grid, cm = this.cm; |
if(!this.userResized && g.autoExpandColumn){ |
var tw = cm.getTotalWidth(false); |
var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset; |
if(tw != aw){ |
var ci = cm.getIndexById(g.autoExpandColumn); |
var currentWidth = cm.getColumnWidth(ci); |
var cw = Math.min(Math.max(((aw-tw)+currentWidth), g.autoExpandMin), g.autoExpandMax); |
if(cw != currentWidth){ |
cm.setColumnWidth(ci, cw, true); |
if(preventUpdate !== true){ |
this.updateColumnWidth(ci, cw); |
} |
} |
} |
} |
}, |
getColumnData : function(){ |
var cs = [], cm = this.cm, colCount = cm.getColumnCount(); |
for(var i = 0; i < colCount; i++){ |
var name = cm.getDataIndex(i); |
cs[i] = { |
name : (typeof name == 'undefined' ? this.ds.fields.get(i).name : name), |
renderer : cm.getRenderer(i), |
id : cm.getColumnId(i), |
style : this.getColumnStyle(i) |
}; |
} |
return cs; |
}, |
renderRows : function(startRow, endRow){ |
var g = this.grid, cm = g.colModel, ds = g.store, stripe = g.stripeRows; |
var colCount = cm.getColumnCount(); |
if(ds.getCount() < 1){ |
return ""; |
} |
var cs = this.getColumnData(); |
startRow = startRow || 0; |
endRow = typeof endRow == "undefined"? ds.getCount()-1 : endRow; |
var rs = ds.getRange(startRow, endRow); |
return this.doRender(cs, rs, ds, startRow, colCount, stripe); |
}, |
renderBody : function(){ |
var markup = this.renderRows(); |
return this.templates.body.apply({rows: markup}); |
}, |
refreshRow : function(record){ |
var ds = this.ds, index; |
if(typeof record == 'number'){ |
index = record; |
record = ds.getAt(index); |
}else{ |
index = ds.indexOf(record); |
} |
var cls = []; |
this.insertRows(ds, index, index, true); |
this.getRow(index).rowIndex = index; |
this.onRemove(ds, record, index+1, true); |
this.fireEvent("rowupdated", this, index, record); |
}, |
refresh : function(headersToo){ |
this.fireEvent("beforerefresh", this); |
this.grid.stopEditing(true); |
var result = this.renderBody(); |
this.mainBody.update(result); |
if(headersToo === true){ |
this.updateHeaders(); |
this.updateHeaderSortState(); |
} |
this.processRows(0, true); |
this.layout(); |
this.applyEmptyText(); |
this.fireEvent("refresh", this); |
}, |
applyEmptyText : function(){ |
if(this.emptyText && !this.hasRows()){ |
this.mainBody.update('<div class="x-grid-empty">' + this.emptyText + '</div>'); |
} |
}, |
updateHeaderSortState : function(){ |
var state = this.ds.getSortState(); |
if(!state){ |
return; |
} |
if(!this.sortState || (this.sortState.field != state.field || this.sortState.direction != state.direction)){ |
this.grid.fireEvent('sortchange', this.grid, state); |
} |
this.sortState = state; |
var sortColumn = this.cm.findColumnIndex(state.field); |
if(sortColumn != -1){ |
var sortDir = state.direction; |
this.updateSortIcon(sortColumn, sortDir); |
} |
}, |
destroy : function(){ |
if(this.colMenu){ |
this.colMenu.removeAll(); |
Ext.menu.MenuMgr.unregister(this.colMenu); |
this.colMenu.getEl().remove(); |
delete this.colMenu; |
} |
if(this.hmenu){ |
this.hmenu.removeAll(); |
Ext.menu.MenuMgr.unregister(this.hmenu); |
this.hmenu.getEl().remove(); |
delete this.hmenu; |
} |
if(this.grid.enableColumnMove){ |
var dds = Ext.dd.DDM.ids['gridHeader' + this.grid.getGridEl().id]; |
if(dds){ |
for(var dd in dds){ |
if(!dds[dd].config.isTarget && dds[dd].dragElId){ |
var elid = dds[dd].dragElId; |
dds[dd].unreg(); |
Ext.get(elid).remove(); |
} else if(dds[dd].config.isTarget){ |
dds[dd].proxyTop.remove(); |
dds[dd].proxyBottom.remove(); |
dds[dd].unreg(); |
} |
if(Ext.dd.DDM.locationCache[dd]){ |
delete Ext.dd.DDM.locationCache[dd]; |
} |
} |
delete Ext.dd.DDM.ids['gridHeader' + this.grid.getGridEl().id]; |
} |
} |
Ext.destroy(this.resizeMarker, this.resizeProxy); |
this.initData(null, null); |
Ext.EventManager.removeResizeListener(this.onWindowResize, this); |
}, |
onDenyColumnHide : function(){ |
}, |
render : function(){ |
var cm = this.cm; |
var colCount = cm.getColumnCount(); |
if(this.autoFill){ |
this.fitColumns(true, true); |
}else if(this.forceFit){ |
this.fitColumns(true, false); |
}else if(this.grid.autoExpandColumn){ |
this.autoExpand(true); |
} |
this.renderUI(); |
}, |
initData : function(ds, cm){ |
if(this.ds){ |
this.ds.un("load", this.onLoad, this); |
this.ds.un("datachanged", this.onDataChange, this); |
this.ds.un("add", this.onAdd, this); |
this.ds.un("remove", this.onRemove, this); |
this.ds.un("update", this.onUpdate, this); |
this.ds.un("clear", this.onClear, this); |
} |
if(ds){ |
ds.on("load", this.onLoad, this); |
ds.on("datachanged", this.onDataChange, this); |
ds.on("add", this.onAdd, this); |
ds.on("remove", this.onRemove, this); |
ds.on("update", this.onUpdate, this); |
ds.on("clear", this.onClear, this); |
} |
this.ds = ds; |
if(this.cm){ |
this.cm.un("configchange", this.onColConfigChange, this); |
this.cm.un("widthchange", this.onColWidthChange, this); |
this.cm.un("headerchange", this.onHeaderChange, this); |
this.cm.un("hiddenchange", this.onHiddenChange, this); |
this.cm.un("columnmoved", this.onColumnMove, this); |
this.cm.un("columnlockchange", this.onColumnLock, this); |
} |
if(cm){ |
cm.on("configchange", this.onColConfigChange, this); |
cm.on("widthchange", this.onColWidthChange, this); |
cm.on("headerchange", this.onHeaderChange, this); |
cm.on("hiddenchange", this.onHiddenChange, this); |
cm.on("columnmoved", this.onColumnMove, this); |
cm.on("columnlockchange", this.onColumnLock, this); |
} |
this.cm = cm; |
}, |
onDataChange : function(){ |
this.refresh(); |
this.updateHeaderSortState(); |
}, |
onClear : function(){ |
this.refresh(); |
}, |
onUpdate : function(ds, record){ |
this.refreshRow(record); |
}, |
onAdd : function(ds, records, index){ |
this.insertRows(ds, index, index + (records.length-1)); |
}, |
onRemove : function(ds, record, index, isUpdate){ |
if(isUpdate !== true){ |
this.fireEvent("beforerowremoved", this, index, record); |
} |
this.removeRow(index); |
if(isUpdate !== true){ |
this.processRows(index); |
this.applyEmptyText(); |
this.fireEvent("rowremoved", this, index, record); |
} |
}, |
onLoad : function(){ |
this.scrollToTop(); |
}, |
onColWidthChange : function(cm, col, width){ |
this.updateColumnWidth(col, width); |
}, |
onHeaderChange : function(cm, col, text){ |
this.updateHeaders(); |
}, |
onHiddenChange : function(cm, col, hidden){ |
this.updateColumnHidden(col, hidden); |
}, |
onColumnMove : function(cm, oldIndex, newIndex){ |
this.indexMap = null; |
var s = this.getScrollState(); |
this.refresh(true); |
this.restoreScroll(s); |
this.afterMove(newIndex); |
}, |
onColConfigChange : function(){ |
delete this.lastViewWidth; |
this.indexMap = null; |
this.refresh(true); |
}, |
initUI : function(grid){ |
grid.on("headerclick", this.onHeaderClick, this); |
if(grid.trackMouseOver){ |
grid.on("mouseover", this.onRowOver, this); |
grid.on("mouseout", this.onRowOut, this); |
} |
}, |
initEvents : function(){ |
}, |
onHeaderClick : function(g, index){ |
if(this.headersDisabled || !this.cm.isSortable(index)){ |
return; |
} |
g.stopEditing(true); |
g.store.sort(this.cm.getDataIndex(index)); |
}, |
onRowOver : function(e, t){ |
var row; |
if((row = this.findRowIndex(t)) !== false){ |
this.addRowClass(row, "x-grid3-row-over"); |
} |
}, |
onRowOut : function(e, t){ |
var row; |
if((row = this.findRowIndex(t)) !== false && row !== this.findRowIndex(e.getRelatedTarget())){ |
this.removeRowClass(row, "x-grid3-row-over"); |
} |
}, |
handleWheel : function(e){ |
e.stopPropagation(); |
}, |
onRowSelect : function(row){ |
this.addRowClass(row, "x-grid3-row-selected"); |
}, |
onRowDeselect : function(row){ |
this.removeRowClass(row, "x-grid3-row-selected"); |
}, |
onCellSelect : function(row, col){ |
var cell = this.getCell(row, col); |
if(cell){ |
this.fly(cell).addClass("x-grid3-cell-selected"); |
} |
}, |
onCellDeselect : function(row, col){ |
var cell = this.getCell(row, col); |
if(cell){ |
this.fly(cell).removeClass("x-grid3-cell-selected"); |
} |
}, |
onColumnSplitterMoved : function(i, w){ |
this.userResized = true; |
var cm = this.grid.colModel; |
cm.setColumnWidth(i, w, true); |
if(this.forceFit){ |
this.fitColumns(true, false, i); |
this.updateAllColumnWidths(); |
}else{ |
this.updateColumnWidth(i, w); |
} |
this.grid.fireEvent("columnresize", i, w); |
}, |
handleHdMenuClick : function(item){ |
var index = this.hdCtxIndex; |
var cm = this.cm, ds = this.ds; |
switch(item.id){ |
case "asc": |
ds.sort(cm.getDataIndex(index), "ASC"); |
break; |
case "desc": |
ds.sort(cm.getDataIndex(index), "DESC"); |
break; |
default: |
index = cm.getIndexById(item.id.substr(4)); |
if(index != -1){ |
if(item.checked && cm.getColumnsBy(this.isHideableColumn, this).length <= 1){ |
this.onDenyColumnHide(); |
return false; |
} |
cm.setHidden(index, item.checked); |
} |
} |
return true; |
}, |
isHideableColumn : function(c){ |
return !c.hidden && !c.fixed; |
}, |
beforeColMenuShow : function(){ |
var cm = this.cm, colCount = cm.getColumnCount(); |
this.colMenu.removeAll(); |
for(var i = 0; i < colCount; i++){ |
if(cm.config[i].fixed !== true && cm.config[i].hideable !== false){ |
this.colMenu.add(new Ext.menu.CheckItem({ |
id: "col-"+cm.getColumnId(i), |
text: cm.getColumnHeader(i), |
checked: !cm.isHidden(i), |
hideOnClick:false, |
disabled: cm.config[i].hideable === false |
})); |
} |
} |
}, |
handleHdDown : function(e, t){ |
if(Ext.fly(t).hasClass('x-grid3-hd-btn')){ |
e.stopEvent(); |
var hd = this.findHeaderCell(t); |
Ext.fly(hd).addClass('x-grid3-hd-menu-open'); |
var index = this.getCellIndex(hd); |
this.hdCtxIndex = index; |
var ms = this.hmenu.items, cm = this.cm; |
ms.get("asc").setDisabled(!cm.isSortable(index)); |
ms.get("desc").setDisabled(!cm.isSortable(index)); |
this.hmenu.on("hide", function(){ |
Ext.fly(hd).removeClass('x-grid3-hd-menu-open'); |
}, this, {single:true}); |
this.hmenu.show(t, "tl-bl?"); |
} |
}, |
handleHdOver : function(e, t){ |
var hd = this.findHeaderCell(t); |
if(hd && !this.headersDisabled){ |
this.activeHd = hd; |
this.activeHdIndex = this.getCellIndex(hd); |
var fly = this.fly(hd); |
this.activeHdRegion = fly.getRegion(); |
if(!this.cm.isMenuDisabled(this.activeHdIndex)){ |
fly.addClass("x-grid3-hd-over"); |
this.activeHdBtn = fly.child('.x-grid3-hd-btn'); |
if(this.activeHdBtn){ |
this.activeHdBtn.dom.style.height = (hd.firstChild.offsetHeight-1)+'px'; |
} |
} |
} |
}, |
handleHdMove : function(e, t){ |
if(this.activeHd && !this.headersDisabled){ |
var hw = this.splitHandleWidth || 5; |
var r = this.activeHdRegion; |
var x = e.getPageX(); |
var ss = this.activeHd.style; |
if(x - r.left <= hw && this.cm.isResizable(this.activeHdIndex-1)){ |
ss.cursor = Ext.isAir ? 'move' : Ext.isSafari ? 'e-resize' : 'col-resize'; }else if(r.right - x <= (!this.activeHdBtn ? hw : 2) && this.cm.isResizable(this.activeHdIndex)){ |
ss.cursor = Ext.isAir ? 'move' : Ext.isSafari ? 'w-resize' : 'col-resize'; |
}else{ |
ss.cursor = ''; |
} |
} |
}, |
handleHdOut : function(e, t){ |
var hd = this.findHeaderCell(t); |
if(hd && (!Ext.isIE || !e.within(hd, true))){ |
this.activeHd = null; |
this.fly(hd).removeClass("x-grid3-hd-over"); |
hd.style.cursor = ''; |
} |
}, |
hasRows : function(){ |
var fc = this.mainBody.dom.firstChild; |
return fc && fc.className != 'x-grid-empty'; |
}, |
bind : function(d, c){ |
this.initData(d, c); |
} |
}); |
Ext.grid.GridView.SplitDragZone = function(grid, hd){ |
this.grid = grid; |
this.view = grid.getView(); |
this.marker = this.view.resizeMarker; |
this.proxy = this.view.resizeProxy; |
Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this, hd, |
"gridSplitters" + this.grid.getGridEl().id, { |
dragElId : Ext.id(this.proxy.dom), resizeFrame:false |
}); |
this.scroll = false; |
this.hw = this.view.splitHandleWidth || 5; |
}; |
Ext.extend(Ext.grid.GridView.SplitDragZone, Ext.dd.DDProxy, { |
b4StartDrag : function(x, y){ |
this.view.headersDisabled = true; |
var h = this.view.mainWrap.getHeight(); |
this.marker.setHeight(h); |
this.marker.show(); |
this.marker.alignTo(this.view.getHeaderCell(this.cellIndex), 'tl-tl', [-2, 0]); |
this.proxy.setHeight(h); |
var w = this.cm.getColumnWidth(this.cellIndex); |
var minw = Math.max(w-this.grid.minColumnWidth, 0); |
this.resetConstraints(); |
this.setXConstraint(minw, 1000); |
this.setYConstraint(0, 0); |
this.minX = x - minw; |
this.maxX = x + 1000; |
this.startPos = x; |
Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y); |
}, |
handleMouseDown : function(e){ |
var t = this.view.findHeaderCell(e.getTarget()); |
if(t){ |
var xy = this.view.fly(t).getXY(), x = xy[0], y = xy[1]; |
var exy = e.getXY(), ex = exy[0], ey = exy[1]; |
var w = t.offsetWidth, adjust = false; |
if((ex - x) <= this.hw){ |
adjust = -1; |
}else if((x+w) - ex <= this.hw){ |
adjust = 0; |
} |
if(adjust !== false){ |
this.cm = this.grid.colModel; |
var ci = this.view.getCellIndex(t); |
if(adjust == -1){ |
if (ci + adjust < 0) { |
return; |
} |
while(this.cm.isHidden(ci+adjust)){ |
--adjust; |
if(ci+adjust < 0){ |
return; |
} |
} |
} |
this.cellIndex = ci+adjust; |
this.split = t.dom; |
if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){ |
Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this, arguments); |
} |
}else if(this.view.columnDrag){ |
this.view.columnDrag.callHandleMouseDown(e); |
} |
} |
}, |
endDrag : function(e){ |
this.marker.hide(); |
var v = this.view; |
var endX = Math.max(this.minX, e.getPageX()); |
var diff = endX - this.startPos; |
v.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff); |
setTimeout(function(){ |
v.headersDisabled = false; |
}, 50); |
}, |
autoOffset : function(){ |
this.setDelta(0,0); |
} |
}); |
Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { |
hideGroupedColumn:false, |
showGroupName:true, |
startCollapsed:false, |
enableGrouping:true, |
enableGroupingMenu:true, |
enableNoGroups:true, |
emptyGroupText : '(None)', |
ignoreAdd: false, |
groupTextTpl : '{text}', |
gidSeed : 1000, |
initTemplates : function(){ |
Ext.grid.GroupingView.superclass.initTemplates.call(this); |
this.state = {}; |
var sm = this.grid.getSelectionModel(); |
sm.on(sm.selectRow ? 'beforerowselect' : 'beforecellselect', |
this.onBeforeRowSelect, this); |
if(!this.startGroup){ |
this.startGroup = new Ext.XTemplate( |
'<div id="{groupId}" class="x-grid-group {cls}">', |
'<div id="{groupId}-hd" class="x-grid-group-hd" style="{style}"><div>', this.groupTextTpl ,'</div></div>', |
'<div id="{groupId}-bd" class="x-grid-group-body">' |
); |
} |
this.startGroup.compile(); |
this.endGroup = '</div></div>'; |
}, |
findGroup : function(el){ |
return Ext.fly(el).up('.x-grid-group', this.mainBody.dom); |
}, |
getGroups : function(){ |
return this.hasRows() ? this.mainBody.dom.childNodes : []; |
}, |
onAdd : function(){ |
if(this.enableGrouping && !this.ignoreAdd){ |
var ss = this.getScrollState(); |
this.refresh(); |
this.restoreScroll(ss); |
}else if(!this.enableGrouping){ |
Ext.grid.GroupingView.superclass.onAdd.apply(this, arguments); |
} |
}, |
onRemove : function(ds, record, index, isUpdate){ |
Ext.grid.GroupingView.superclass.onRemove.apply(this, arguments); |
var g = document.getElementById(record._groupId); |
if(g && g.childNodes[1].childNodes.length < 1){ |
Ext.removeNode(g); |
} |
this.applyEmptyText(); |
}, |
refreshRow : function(record){ |
if(this.ds.getCount()==1){ |
this.refresh(); |
}else{ |
this.isUpdating = true; |
Ext.grid.GroupingView.superclass.refreshRow.apply(this, arguments); |
this.isUpdating = false; |
} |
}, |
beforeMenuShow : function(){ |
var field = this.getGroupField(); |
var g = this.hmenu.items.get('groupBy'); |
if(g){ |
g.setDisabled(this.cm.config[this.hdCtxIndex].groupable === false); |
} |
var s = this.hmenu.items.get('showGroups'); |
if(s){ |
if (!!field){ |
s.setDisabled(this.cm.config[this.hdCtxIndex].groupable === false) |
} |
s.setChecked(!!field); |
} |
}, |
renderUI : function(){ |
Ext.grid.GroupingView.superclass.renderUI.call(this); |
this.mainBody.on('mousedown', this.interceptMouse, this); |
if(this.enableGroupingMenu && this.hmenu){ |
this.hmenu.add('-',{ |
id:'groupBy', |
text: this.groupByText, |
handler: this.onGroupByClick, |
scope: this, |
iconCls:'x-group-by-icon' |
}); |
if(this.enableNoGroups){ |
this.hmenu.add({ |
id:'showGroups', |
text: this.showGroupsText, |
checked: true, |
checkHandler: this.onShowGroupsClick, |
scope: this |
}); |
} |
this.hmenu.on('beforeshow', this.beforeMenuShow, this); |
} |
}, |
onGroupByClick : function(){ |
this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex)); |
this.beforeMenuShow(); |
}, |
onShowGroupsClick : function(mi, checked){ |
if(checked){ |
this.onGroupByClick(); |
}else{ |
this.grid.store.clearGrouping(); |
} |
}, |
toggleGroup : function(group, expanded){ |
this.grid.stopEditing(true); |
group = Ext.getDom(group); |
var gel = Ext.fly(group); |
expanded = expanded !== undefined ? |
expanded : gel.hasClass('x-grid-group-collapsed'); |
this.state[gel.dom.id] = expanded; |
gel[expanded ? 'removeClass' : 'addClass']('x-grid-group-collapsed'); |
}, |
toggleAllGroups : function(expanded){ |
var groups = this.getGroups(); |
for(var i = 0, len = groups.length; i < len; i++){ |
this.toggleGroup(groups[i], expanded); |
} |
}, |
expandAllGroups : function(){ |
this.toggleAllGroups(true); |
}, |
collapseAllGroups : function(){ |
this.toggleAllGroups(false); |
}, |
interceptMouse : function(e){ |
var hd = e.getTarget('.x-grid-group-hd', this.mainBody); |
if(hd){ |
e.stopEvent(); |
this.toggleGroup(hd.parentNode); |
} |
}, |
getGroup : function(v, r, groupRenderer, rowIndex, colIndex, ds){ |
var g = groupRenderer ? groupRenderer(v, {}, r, rowIndex, colIndex, ds) : String(v); |
if(g === ''){ |
g = this.cm.config[colIndex].emptyGroupText || this.emptyGroupText; |
} |
return g; |
}, |
getGroupField : function(){ |
return this.grid.store.getGroupState(); |
}, |
renderRows : function(){ |
var groupField = this.getGroupField(); |
var eg = !!groupField; |
if(this.hideGroupedColumn) { |
var colIndex = this.cm.findColumnIndex(groupField); |
if(!eg && this.lastGroupField !== undefined) { |
this.mainBody.update(''); |
this.cm.setHidden(this.cm.findColumnIndex(this.lastGroupField), false); |
delete this.lastGroupField; |
}else if (eg && this.lastGroupField === undefined) { |
this.lastGroupField = groupField; |
this.cm.setHidden(colIndex, true); |
}else if (eg && this.lastGroupField !== undefined && groupField !== this.lastGroupField) { |
this.mainBody.update(''); |
var oldIndex = this.cm.findColumnIndex(this.lastGroupField); |
this.cm.setHidden(oldIndex, false); |
this.lastGroupField = groupField; |
this.cm.setHidden(colIndex, true); |
} |
} |
return Ext.grid.GroupingView.superclass.renderRows.apply( |
this, arguments); |
}, |
doRender : function(cs, rs, ds, startRow, colCount, stripe){ |
if(rs.length < 1){ |
return ''; |
} |
var groupField = this.getGroupField(); |
var colIndex = this.cm.findColumnIndex(groupField); |
this.enableGrouping = !!groupField; |
if(!this.enableGrouping || this.isUpdating){ |
return Ext.grid.GroupingView.superclass.doRender.apply( |
this, arguments); |
} |
var gstyle = 'width:'+this.getTotalWidth()+';'; |
var gidPrefix = this.grid.getGridEl().id; |
var cfg = this.cm.config[colIndex]; |
var groupRenderer = cfg.groupRenderer || cfg.renderer; |
var prefix = this.showGroupName ? |
(cfg.groupName || cfg.header)+': ' : ''; |
var groups = [], curGroup, i, len, gid; |
for(i = 0, len = rs.length; i < len; i++){ |
var rowIndex = startRow + i; |
var r = rs[i], |
gvalue = r.data[groupField], |
g = this.getGroup(gvalue, r, groupRenderer, rowIndex, colIndex, ds); |
if(!curGroup || curGroup.group != g){ |
gid = gidPrefix + '-gp-' + groupField + '-' + Ext.util.Format.htmlEncode(g); |
var isCollapsed = typeof this.state[gid] !== 'undefined' ? !this.state[gid] : this.startCollapsed; |
var gcls = isCollapsed ? 'x-grid-group-collapsed' : ''; |
curGroup = { |
group: g, |
gvalue: gvalue, |
text: prefix + g, |
groupId: gid, |
startRow: rowIndex, |
rs: [r], |
cls: gcls, |
style: gstyle |
}; |
groups.push(curGroup); |
}else{ |
curGroup.rs.push(r); |
} |
r._groupId = gid; |
} |
var buf = []; |
for(i = 0, len = groups.length; i < len; i++){ |
var g = groups[i]; |
this.doGroupStart(buf, g, cs, ds, colCount); |
buf[buf.length] = Ext.grid.GroupingView.superclass.doRender.call( |
this, cs, g.rs, ds, g.startRow, colCount, stripe); |
this.doGroupEnd(buf, g, cs, ds, colCount); |
} |
return buf.join(''); |
}, |
getGroupId : function(value){ |
var gidPrefix = this.grid.getGridEl().id; |
var groupField = this.getGroupField(); |
var colIndex = this.cm.findColumnIndex(groupField); |
var cfg = this.cm.config[colIndex]; |
var groupRenderer = cfg.groupRenderer || cfg.renderer; |
var gtext = this.getGroup(value, {data:{}}, groupRenderer, 0, colIndex, this.ds); |
return gidPrefix + '-gp-' + groupField + '-' + Ext.util.Format.htmlEncode(value); |
}, |
doGroupStart : function(buf, g, cs, ds, colCount){ |
buf[buf.length] = this.startGroup.apply(g); |
}, |
doGroupEnd : function(buf, g, cs, ds, colCount){ |
buf[buf.length] = this.endGroup; |
}, |
getRows : function(){ |
if(!this.enableGrouping){ |
return Ext.grid.GroupingView.superclass.getRows.call(this); |
} |
var r = []; |
var g, gs = this.getGroups(); |
for(var i = 0, len = gs.length; i < len; i++){ |
g = gs[i].childNodes[1].childNodes; |
for(var j = 0, jlen = g.length; j < jlen; j++){ |
r[r.length] = g[j]; |
} |
} |
return r; |
}, |
updateGroupWidths : function(){ |
if(!this.enableGrouping || !this.hasRows()){ |
return; |
} |
var tw = Math.max(this.cm.getTotalWidth(), this.el.dom.offsetWidth-this.scrollOffset) +'px'; |
var gs = this.getGroups(); |
for(var i = 0, len = gs.length; i < len; i++){ |
gs[i].firstChild.style.width = tw; |
} |
}, |
onColumnWidthUpdated : function(col, w, tw){ |
this.updateGroupWidths(); |
}, |
onAllColumnWidthsUpdated : function(ws, tw){ |
this.updateGroupWidths(); |
}, |
onColumnHiddenUpdated : function(col, hidden, tw){ |
this.updateGroupWidths(); |
}, |
onLayout : function(){ |
this.updateGroupWidths(); |
}, |
onBeforeRowSelect : function(sm, rowIndex){ |
if(!this.enableGrouping){ |
return; |
} |
var row = this.getRow(rowIndex); |
if(row && !row.offsetParent){ |
var g = this.findGroup(row); |
this.toggleGroup(g, true); |
} |
}, |
groupByText: 'Group By This Field', |
showGroupsText: 'Show in Groups' |
}); |
Ext.grid.GroupingView.GROUP_ID = 1000; |
Ext.grid.HeaderDragZone = function(grid, hd, hd2){ |
this.grid = grid; |
this.view = grid.getView(); |
this.ddGroup = "gridHeader" + this.grid.getGridEl().id; |
Ext.grid.HeaderDragZone.superclass.constructor.call(this, hd); |
if(hd2){ |
this.setHandleElId(Ext.id(hd)); |
this.setOuterHandleElId(Ext.id(hd2)); |
} |
this.scroll = false; |
}; |
Ext.extend(Ext.grid.HeaderDragZone, Ext.dd.DragZone, { |
maxDragWidth: 120, |
getDragData : function(e){ |
var t = Ext.lib.Event.getTarget(e); |
var h = this.view.findHeaderCell(t); |
if(h){ |
return {ddel: h.firstChild, header:h}; |
} |
return false; |
}, |
onInitDrag : function(e){ |
this.view.headersDisabled = true; |
var clone = this.dragData.ddel.cloneNode(true); |
clone.id = Ext.id(); |
clone.style.width = Math.min(this.dragData.header.offsetWidth,this.maxDragWidth) + "px"; |
this.proxy.update(clone); |
return true; |
}, |
afterValidDrop : function(){ |
var v = this.view; |
setTimeout(function(){ |
v.headersDisabled = false; |
}, 50); |
}, |
afterInvalidDrop : function(){ |
var v = this.view; |
setTimeout(function(){ |
v.headersDisabled = false; |
}, 50); |
} |
}); |
Ext.grid.HeaderDropZone = function(grid, hd, hd2){ |
this.grid = grid; |
this.view = grid.getView(); |
this.proxyTop = Ext.DomHelper.append(document.body, { |
cls:"col-move-top", html:" " |
}, true); |
this.proxyBottom = Ext.DomHelper.append(document.body, { |
cls:"col-move-bottom", html:" " |
}, true); |
this.proxyTop.hide = this.proxyBottom.hide = function(){ |
this.setLeftTop(-100,-100); |
this.setStyle("visibility", "hidden"); |
}; |
this.ddGroup = "gridHeader" + this.grid.getGridEl().id; |
Ext.grid.HeaderDropZone.superclass.constructor.call(this, grid.getGridEl().dom); |
}; |
Ext.extend(Ext.grid.HeaderDropZone, Ext.dd.DropZone, { |
proxyOffsets : [-4, -9], |
fly: Ext.Element.fly, |
getTargetFromEvent : function(e){ |
var t = Ext.lib.Event.getTarget(e); |
var cindex = this.view.findCellIndex(t); |
if(cindex !== false){ |
return this.view.getHeaderCell(cindex); |
} |
}, |
nextVisible : function(h){ |
var v = this.view, cm = this.grid.colModel; |
h = h.nextSibling; |
while(h){ |
if(!cm.isHidden(v.getCellIndex(h))){ |
return h; |
} |
h = h.nextSibling; |
} |
return null; |
}, |
prevVisible : function(h){ |
var v = this.view, cm = this.grid.colModel; |
h = h.prevSibling; |
while(h){ |
if(!cm.isHidden(v.getCellIndex(h))){ |
return h; |
} |
h = h.prevSibling; |
} |
return null; |
}, |
positionIndicator : function(h, n, e){ |
var x = Ext.lib.Event.getPageX(e); |
var r = Ext.lib.Dom.getRegion(n.firstChild); |
var px, pt, py = r.top + this.proxyOffsets[1]; |
if((r.right - x) <= (r.right-r.left)/2){ |
px = r.right+this.view.borderWidth; |
pt = "after"; |
}else{ |
px = r.left; |
pt = "before"; |
} |
var oldIndex = this.view.getCellIndex(h); |
var newIndex = this.view.getCellIndex(n); |
if(this.grid.colModel.isFixed(newIndex)){ |
return false; |
} |
var locked = this.grid.colModel.isLocked(newIndex); |
if(pt == "after"){ |
newIndex++; |
} |
if(oldIndex < newIndex){ |
newIndex--; |
} |
if(oldIndex == newIndex && (locked == this.grid.colModel.isLocked(oldIndex))){ |
return false; |
} |
px += this.proxyOffsets[0]; |
this.proxyTop.setLeftTop(px, py); |
this.proxyTop.show(); |
if(!this.bottomOffset){ |
this.bottomOffset = this.view.mainHd.getHeight(); |
} |
this.proxyBottom.setLeftTop(px, py+this.proxyTop.dom.offsetHeight+this.bottomOffset); |
this.proxyBottom.show(); |
return pt; |
}, |
onNodeEnter : function(n, dd, e, data){ |
if(data.header != n){ |
this.positionIndicator(data.header, n, e); |
} |
}, |
onNodeOver : function(n, dd, e, data){ |
var result = false; |
if(data.header != n){ |
result = this.positionIndicator(data.header, n, e); |
} |
if(!result){ |
this.proxyTop.hide(); |
this.proxyBottom.hide(); |
} |
return result ? this.dropAllowed : this.dropNotAllowed; |
}, |
onNodeOut : function(n, dd, e, data){ |
this.proxyTop.hide(); |
this.proxyBottom.hide(); |
}, |
onNodeDrop : function(n, dd, e, data){ |
var h = data.header; |
if(h != n){ |
var cm = this.grid.colModel; |
var x = Ext.lib.Event.getPageX(e); |
var r = Ext.lib.Dom.getRegion(n.firstChild); |
var pt = (r.right - x) <= ((r.right-r.left)/2) ? "after" : "before"; |
var oldIndex = this.view.getCellIndex(h); |
var newIndex = this.view.getCellIndex(n); |
var locked = cm.isLocked(newIndex); |
if(pt == "after"){ |
newIndex++; |
} |
if(oldIndex < newIndex){ |
newIndex--; |
} |
if(oldIndex == newIndex && (locked == cm.isLocked(oldIndex))){ |
return false; |
} |
cm.setLocked(oldIndex, locked, true); |
cm.moveColumn(oldIndex, newIndex); |
this.grid.fireEvent("columnmove", oldIndex, newIndex); |
return true; |
} |
return false; |
} |
}); |
Ext.grid.GridView.ColumnDragZone = function(grid, hd){ |
Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this, grid, hd, null); |
this.proxy.el.addClass('x-grid3-col-dd'); |
}; |
Ext.extend(Ext.grid.GridView.ColumnDragZone, Ext.grid.HeaderDragZone, { |
handleMouseDown : function(e){ |
}, |
callHandleMouseDown : function(e){ |
Ext.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call(this, e); |
} |
}); |
Ext.grid.SplitDragZone = function(grid, hd, hd2){ |
this.grid = grid; |
this.view = grid.getView(); |
this.proxy = this.view.resizeProxy; |
Ext.grid.SplitDragZone.superclass.constructor.call(this, hd, |
"gridSplitters" + this.grid.getGridEl().id, { |
dragElId : Ext.id(this.proxy.dom), resizeFrame:false |
}); |
this.setHandleElId(Ext.id(hd)); |
this.setOuterHandleElId(Ext.id(hd2)); |
this.scroll = false; |
}; |
Ext.extend(Ext.grid.SplitDragZone, Ext.dd.DDProxy, { |
fly: Ext.Element.fly, |
b4StartDrag : function(x, y){ |
this.view.headersDisabled = true; |
this.proxy.setHeight(this.view.mainWrap.getHeight()); |
var w = this.cm.getColumnWidth(this.cellIndex); |
var minw = Math.max(w-this.grid.minColumnWidth, 0); |
this.resetConstraints(); |
this.setXConstraint(minw, 1000); |
this.setYConstraint(0, 0); |
this.minX = x - minw; |
this.maxX = x + 1000; |
this.startPos = x; |
Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y); |
}, |
handleMouseDown : function(e){ |
ev = Ext.EventObject.setEvent(e); |
var t = this.fly(ev.getTarget()); |
if(t.hasClass("x-grid-split")){ |
this.cellIndex = this.view.getCellIndex(t.dom); |
this.split = t.dom; |
this.cm = this.grid.colModel; |
if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){ |
Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this, arguments); |
} |
} |
}, |
endDrag : function(e){ |
this.view.headersDisabled = false; |
var endX = Math.max(this.minX, Ext.lib.Event.getPageX(e)); |
var diff = endX - this.startPos; |
this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff); |
}, |
autoOffset : function(){ |
this.setDelta(0,0); |
} |
}); |
Ext.grid.GridDragZone = function(grid, config){ |
this.view = grid.getView(); |
Ext.grid.GridDragZone.superclass.constructor.call(this, this.view.mainBody.dom, config); |
if(this.view.lockedBody){ |
this.setHandleElId(Ext.id(this.view.mainBody.dom)); |
this.setOuterHandleElId(Ext.id(this.view.lockedBody.dom)); |
} |
this.scroll = false; |
this.grid = grid; |
this.ddel = document.createElement('div'); |
this.ddel.className = 'x-grid-dd-wrap'; |
}; |
Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, { |
ddGroup : "GridDD", |
getDragData : function(e){ |
var t = Ext.lib.Event.getTarget(e); |
var rowIndex = this.view.findRowIndex(t); |
if(rowIndex !== false){ |
var sm = this.grid.selModel; |
if(!sm.isSelected(rowIndex) || e.hasModifier()){ |
sm.handleMouseDown(this.grid, rowIndex, e); |
} |
return {grid: this.grid, ddel: this.ddel, rowIndex: rowIndex, selections:sm.getSelections()}; |
} |
return false; |
}, |
onInitDrag : function(e){ |
var data = this.dragData; |
this.ddel.innerHTML = this.grid.getDragDropText(); |
this.proxy.update(this.ddel); |
}, |
afterRepair : function(){ |
this.dragging = false; |
}, |
getRepairXY : function(e, data){ |
return false; |
}, |
onEndDrag : function(data, e){ |
}, |
onValidDrop : function(dd, e, id){ |
this.hideProxy(); |
}, |
beforeInvalidDrop : function(e, id){ |
} |
}); |
Ext.grid.ColumnModel = function(config){ |
this.defaultWidth = 100; |
this.defaultSortable = false; |
if(config.columns){ |
Ext.apply(this, config); |
this.setConfig(config.columns, true); |
}else{ |
this.setConfig(config, true); |
} |
this.addEvents( |
"widthchange", |
"headerchange", |
"hiddenchange", |
"columnmoved", |
"columnlockchange", |
"configchange" |
); |
Ext.grid.ColumnModel.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.grid.ColumnModel, Ext.util.Observable, { |
getColumnId : function(index){ |
return this.config[index].id; |
}, |
setConfig : function(config, initial){ |
if(!initial){ |
delete this.totalWidth; |
for(var i = 0, len = this.config.length; i < len; i++){ |
var c = this.config[i]; |
if(c.editor){ |
c.editor.destroy(); |
} |
} |
} |
this.config = config; |
this.lookup = {}; |
for(var i = 0, len = config.length; i < len; i++){ |
var c = config[i]; |
if(typeof c.renderer == "string"){ |
c.renderer = Ext.util.Format[c.renderer]; |
} |
if(typeof c.id == "undefined"){ |
c.id = i; |
} |
if(c.editor && c.editor.isFormField){ |
c.editor = new Ext.grid.GridEditor(c.editor); |
} |
this.lookup[c.id] = c; |
} |
if(!initial){ |
this.fireEvent('configchange', this); |
} |
}, |
getColumnById : function(id){ |
return this.lookup[id]; |
}, |
getIndexById : function(id){ |
for(var i = 0, len = this.config.length; i < len; i++){ |
if(this.config[i].id == id){ |
return i; |
} |
} |
return -1; |
}, |
moveColumn : function(oldIndex, newIndex){ |
var c = this.config[oldIndex]; |
this.config.splice(oldIndex, 1); |
this.config.splice(newIndex, 0, c); |
this.dataMap = null; |
this.fireEvent("columnmoved", this, oldIndex, newIndex); |
}, |
isLocked : function(colIndex){ |
return this.config[colIndex].locked === true; |
}, |
setLocked : function(colIndex, value, suppressEvent){ |
if(this.isLocked(colIndex) == value){ |
return; |
} |
this.config[colIndex].locked = value; |
if(!suppressEvent){ |
this.fireEvent("columnlockchange", this, colIndex, value); |
} |
}, |
getTotalLockedWidth : function(){ |
var totalWidth = 0; |
for(var i = 0; i < this.config.length; i++){ |
if(this.isLocked(i) && !this.isHidden(i)){ |
this.totalWidth += this.getColumnWidth(i); |
} |
} |
return totalWidth; |
}, |
getLockedCount : function(){ |
for(var i = 0, len = this.config.length; i < len; i++){ |
if(!this.isLocked(i)){ |
return i; |
} |
} |
}, |
getColumnCount : function(visibleOnly){ |
if(visibleOnly === true){ |
var c = 0; |
for(var i = 0, len = this.config.length; i < len; i++){ |
if(!this.isHidden(i)){ |
c++; |
} |
} |
return c; |
} |
return this.config.length; |
}, |
getColumnsBy : function(fn, scope){ |
var r = []; |
for(var i = 0, len = this.config.length; i < len; i++){ |
var c = this.config[i]; |
if(fn.call(scope||this, c, i) === true){ |
r[r.length] = c; |
} |
} |
return r; |
}, |
isSortable : function(col){ |
if(typeof this.config[col].sortable == "undefined"){ |
return this.defaultSortable; |
} |
return this.config[col].sortable; |
}, |
isMenuDisabled : function(col){ |
return !!this.config[col].menuDisabled; |
}, |
getRenderer : function(col){ |
if(!this.config[col].renderer){ |
return Ext.grid.ColumnModel.defaultRenderer; |
} |
return this.config[col].renderer; |
}, |
setRenderer : function(col, fn){ |
this.config[col].renderer = fn; |
}, |
getColumnWidth : function(col){ |
return this.config[col].width || this.defaultWidth; |
}, |
setColumnWidth : function(col, width, suppressEvent){ |
this.config[col].width = width; |
this.totalWidth = null; |
if(!suppressEvent){ |
this.fireEvent("widthchange", this, col, width); |
} |
}, |
getTotalWidth : function(includeHidden){ |
if(!this.totalWidth){ |
this.totalWidth = 0; |
for(var i = 0, len = this.config.length; i < len; i++){ |
if(includeHidden || !this.isHidden(i)){ |
this.totalWidth += this.getColumnWidth(i); |
} |
} |
} |
return this.totalWidth; |
}, |
getColumnHeader : function(col){ |
return this.config[col].header; |
}, |
setColumnHeader : function(col, header){ |
this.config[col].header = header; |
this.fireEvent("headerchange", this, col, header); |
}, |
getColumnTooltip : function(col){ |
return this.config[col].tooltip; |
}, |
setColumnTooltip : function(col, tooltip){ |
this.config[col].tooltip = tooltip; |
}, |
getDataIndex : function(col){ |
return this.config[col].dataIndex; |
}, |
setDataIndex : function(col, dataIndex){ |
this.config[col].dataIndex = dataIndex; |
}, |
findColumnIndex : function(dataIndex){ |
var c = this.config; |
for(var i = 0, len = c.length; i < len; i++){ |
if(c[i].dataIndex == dataIndex){ |
return i; |
} |
} |
return -1; |
}, |
isCellEditable : function(colIndex, rowIndex){ |
return (this.config[colIndex].editable || (typeof this.config[colIndex].editable == "undefined" && this.config[colIndex].editor)) ? true : false; |
}, |
getCellEditor : function(colIndex, rowIndex){ |
return this.config[colIndex].editor; |
}, |
setEditable : function(col, editable){ |
this.config[col].editable = editable; |
}, |
isHidden : function(colIndex){ |
return this.config[colIndex].hidden; |
}, |
isFixed : function(colIndex){ |
return this.config[colIndex].fixed; |
}, |
isResizable : function(colIndex){ |
return colIndex >= 0 && this.config[colIndex].resizable !== false && this.config[colIndex].fixed !== true; |
}, |
setHidden : function(colIndex, hidden){ |
var c = this.config[colIndex]; |
if(c.hidden !== hidden){ |
c.hidden = hidden; |
this.totalWidth = null; |
this.fireEvent("hiddenchange", this, colIndex, hidden); |
} |
}, |
setEditor : function(col, editor){ |
this.config[col].editor = editor; |
} |
}); |
Ext.grid.ColumnModel.defaultRenderer = function(value){ |
if(typeof value == "string" && value.length < 1){ |
return " "; |
} |
return value; |
}; |
Ext.grid.DefaultColumnModel = Ext.grid.ColumnModel; |
Ext.grid.AbstractSelectionModel = function(){ |
this.locked = false; |
Ext.grid.AbstractSelectionModel.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.grid.AbstractSelectionModel, Ext.util.Observable, { |
init : function(grid){ |
this.grid = grid; |
this.initEvents(); |
}, |
lock : function(){ |
this.locked = true; |
}, |
unlock : function(){ |
this.locked = false; |
}, |
isLocked : function(){ |
return this.locked; |
} |
}); |
Ext.grid.RowSelectionModel = function(config){ |
Ext.apply(this, config); |
this.selections = new Ext.util.MixedCollection(false, function(o){ |
return o.id; |
}); |
this.last = false; |
this.lastActive = false; |
this.addEvents( |
"selectionchange", |
"beforerowselect", |
"rowselect", |
"rowdeselect" |
); |
Ext.grid.RowSelectionModel.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.grid.RowSelectionModel, Ext.grid.AbstractSelectionModel, { |
singleSelect : false, |
initEvents : function(){ |
if(!this.grid.enableDragDrop && !this.grid.enableDrag){ |
this.grid.on("rowmousedown", this.handleMouseDown, this); |
}else{ this.grid.on("rowclick", function(grid, rowIndex, e) { |
if(e.button === 0 && !e.shiftKey && !e.ctrlKey) { |
this.selectRow(rowIndex, false); |
grid.view.focusRow(rowIndex); |
} |
}, this); |
} |
this.rowNav = new Ext.KeyNav(this.grid.getGridEl(), { |
"up" : function(e){ |
if(!e.shiftKey){ |
this.selectPrevious(e.shiftKey); |
}else if(this.last !== false && this.lastActive !== false){ |
var last = this.last; |
this.selectRange(this.last, this.lastActive-1); |
this.grid.getView().focusRow(this.lastActive); |
if(last !== false){ |
this.last = last; |
} |
}else{ |
this.selectFirstRow(); |
} |
}, |
"down" : function(e){ |
if(!e.shiftKey){ |
this.selectNext(e.shiftKey); |
}else if(this.last !== false && this.lastActive !== false){ |
var last = this.last; |
this.selectRange(this.last, this.lastActive+1); |
this.grid.getView().focusRow(this.lastActive); |
if(last !== false){ |
this.last = last; |
} |
}else{ |
this.selectFirstRow(); |
} |
}, |
scope: this |
}); |
var view = this.grid.view; |
view.on("refresh", this.onRefresh, this); |
view.on("rowupdated", this.onRowUpdated, this); |
view.on("rowremoved", this.onRemove, this); |
}, |
onRefresh : function(){ |
var ds = this.grid.store, index; |
var s = this.getSelections(); |
this.clearSelections(true); |
for(var i = 0, len = s.length; i < len; i++){ |
var r = s[i]; |
if((index = ds.indexOfId(r.id)) != -1){ |
this.selectRow(index, true); |
} |
} |
if(s.length != this.selections.getCount()){ |
this.fireEvent("selectionchange", this); |
} |
}, |
onRemove : function(v, index, r){ |
if(this.selections.remove(r) !== false){ |
this.fireEvent('selectionchange', this); |
} |
}, |
onRowUpdated : function(v, index, r){ |
if(this.isSelected(r)){ |
v.onRowSelect(index); |
} |
}, |
selectRecords : function(records, keepExisting){ |
if(!keepExisting){ |
this.clearSelections(); |
} |
var ds = this.grid.store; |
for(var i = 0, len = records.length; i < len; i++){ |
this.selectRow(ds.indexOf(records[i]), true); |
} |
}, |
getCount : function(){ |
return this.selections.length; |
}, |
selectFirstRow : function(){ |
this.selectRow(0); |
}, |
selectLastRow : function(keepExisting){ |
this.selectRow(this.grid.store.getCount() - 1, keepExisting); |
}, |
selectNext : function(keepExisting){ |
if(this.hasNext()){ |
this.selectRow(this.last+1, keepExisting); |
this.grid.getView().focusRow(this.last); |
return true; |
} |
return false; |
}, |
selectPrevious : function(keepExisting){ |
if(this.hasPrevious()){ |
this.selectRow(this.last-1, keepExisting); |
this.grid.getView().focusRow(this.last); |
return true; |
} |
return false; |
}, |
hasNext : function(){ |
return this.last !== false && (this.last+1) < this.grid.store.getCount(); |
}, |
hasPrevious : function(){ |
return !!this.last; |
}, |
getSelections : function(){ |
return [].concat(this.selections.items); |
}, |
getSelected : function(){ |
return this.selections.itemAt(0); |
}, |
each : function(fn, scope){ |
var s = this.getSelections(); |
for(var i = 0, len = s.length; i < len; i++){ |
if(fn.call(scope || this, s[i], i) === false){ |
return false; |
} |
} |
return true; |
}, |
clearSelections : function(fast){ |
if(this.locked) return; |
if(fast !== true){ |
var ds = this.grid.store; |
var s = this.selections; |
s.each(function(r){ |
this.deselectRow(ds.indexOfId(r.id)); |
}, this); |
s.clear(); |
}else{ |
this.selections.clear(); |
} |
this.last = false; |
}, |
selectAll : function(){ |
if(this.locked) return; |
this.selections.clear(); |
for(var i = 0, len = this.grid.store.getCount(); i < len; i++){ |
this.selectRow(i, true); |
} |
}, |
hasSelection : function(){ |
return this.selections.length > 0; |
}, |
isSelected : function(index){ |
var r = typeof index == "number" ? this.grid.store.getAt(index) : index; |
return (r && this.selections.key(r.id) ? true : false); |
}, |
isIdSelected : function(id){ |
return (this.selections.key(id) ? true : false); |
}, |
handleMouseDown : function(g, rowIndex, e){ |
if(e.button !== 0 || this.isLocked()){ |
return; |
}; |
var view = this.grid.getView(); |
if(e.shiftKey && this.last !== false){ |
var last = this.last; |
this.selectRange(last, rowIndex, e.ctrlKey); |
this.last = last; view.focusRow(rowIndex); |
}else{ |
var isSelected = this.isSelected(rowIndex); |
if(e.ctrlKey && isSelected){ |
this.deselectRow(rowIndex); |
}else if(!isSelected || this.getCount() > 1){ |
this.selectRow(rowIndex, e.ctrlKey || e.shiftKey); |
view.focusRow(rowIndex); |
} |
} |
}, |
selectRows : function(rows, keepExisting){ |
if(!keepExisting){ |
this.clearSelections(); |
} |
for(var i = 0, len = rows.length; i < len; i++){ |
this.selectRow(rows[i], true); |
} |
}, |
selectRange : function(startRow, endRow, keepExisting){ |
if(this.locked) return; |
if(!keepExisting){ |
this.clearSelections(); |
} |
if(startRow <= endRow){ |
for(var i = startRow; i <= endRow; i++){ |
this.selectRow(i, true); |
} |
}else{ |
for(var i = startRow; i >= endRow; i--){ |
this.selectRow(i, true); |
} |
} |
}, |
deselectRange : function(startRow, endRow, preventViewNotify){ |
if(this.locked) return; |
for(var i = startRow; i <= endRow; i++){ |
this.deselectRow(i, preventViewNotify); |
} |
}, |
selectRow : function(index, keepExisting, preventViewNotify){ |
if(this.locked || (index < 0 || index >= this.grid.store.getCount())) return; |
var r = this.grid.store.getAt(index); |
if(r && this.fireEvent("beforerowselect", this, index, keepExisting, r) !== false){ |
if(!keepExisting || this.singleSelect){ |
this.clearSelections(); |
} |
this.selections.add(r); |
this.last = this.lastActive = index; |
if(!preventViewNotify){ |
this.grid.getView().onRowSelect(index); |
} |
this.fireEvent("rowselect", this, index, r); |
this.fireEvent("selectionchange", this); |
} |
}, |
deselectRow : function(index, preventViewNotify){ |
if(this.locked) return; |
if(this.last == index){ |
this.last = false; |
} |
if(this.lastActive == index){ |
this.lastActive = false; |
} |
var r = this.grid.store.getAt(index); |
if(r){ |
this.selections.remove(r); |
if(!preventViewNotify){ |
this.grid.getView().onRowDeselect(index); |
} |
this.fireEvent("rowdeselect", this, index, r); |
this.fireEvent("selectionchange", this); |
} |
}, |
restoreLast : function(){ |
if(this._last){ |
this.last = this._last; |
} |
}, |
acceptsNav : function(row, col, cm){ |
return !cm.isHidden(col) && cm.isCellEditable(col, row); |
}, |
onEditorKey : function(field, e){ |
var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor; |
var shift = e.shiftKey; |
if(k == e.TAB){ |
e.stopEvent(); |
ed.completeEdit(); |
if(shift){ |
newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this); |
}else{ |
newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this); |
} |
}else if(k == e.ENTER){ |
e.stopEvent(); |
ed.completeEdit(); |
if(this.moveEditorOnEnter !== false){ |
if(shift){ |
newCell = g.walkCells(ed.row - 1, ed.col, -1, this.acceptsNav, this); |
}else{ |
newCell = g.walkCells(ed.row + 1, ed.col, 1, this.acceptsNav, this); |
} |
} |
}else if(k == e.ESC){ |
ed.cancelEdit(); |
} |
if(newCell){ |
g.startEditing(newCell[0], newCell[1]); |
} |
} |
}); |
Ext.grid.CellSelectionModel = function(config){ |
Ext.apply(this, config); |
this.selection = null; |
this.addEvents( |
"beforecellselect", |
"cellselect", |
"selectionchange" |
); |
Ext.grid.CellSelectionModel.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.grid.CellSelectionModel, Ext.grid.AbstractSelectionModel, { |
initEvents : function(){ |
this.grid.on("cellmousedown", this.handleMouseDown, this); |
this.grid.getGridEl().on(Ext.isIE ? "keydown" : "keypress", this.handleKeyDown, this); |
var view = this.grid.view; |
view.on("refresh", this.onViewChange, this); |
view.on("rowupdated", this.onRowUpdated, this); |
view.on("beforerowremoved", this.clearSelections, this); |
view.on("beforerowsinserted", this.clearSelections, this); |
if(this.grid.isEditor){ |
this.grid.on("beforeedit", this.beforeEdit, this); |
} |
}, |
beforeEdit : function(e){ |
this.select(e.row, e.column, false, true, e.record); |
}, |
onRowUpdated : function(v, index, r){ |
if(this.selection && this.selection.record == r){ |
v.onCellSelect(index, this.selection.cell[1]); |
} |
}, |
onViewChange : function(){ |
this.clearSelections(true); |
}, |
getSelectedCell : function(){ |
return this.selection ? this.selection.cell : null; |
}, |
clearSelections : function(preventNotify){ |
var s = this.selection; |
if(s){ |
if(preventNotify !== true){ |
this.grid.view.onCellDeselect(s.cell[0], s.cell[1]); |
} |
this.selection = null; |
this.fireEvent("selectionchange", this, null); |
} |
}, |
hasSelection : function(){ |
return this.selection ? true : false; |
}, |
handleMouseDown : function(g, row, cell, e){ |
if(e.button !== 0 || this.isLocked()){ |
return; |
}; |
this.select(row, cell); |
}, |
select : function(rowIndex, colIndex, preventViewNotify, preventFocus, r){ |
if(this.fireEvent("beforecellselect", this, rowIndex, colIndex) !== false){ |
this.clearSelections(); |
r = r || this.grid.store.getAt(rowIndex); |
this.selection = { |
record : r, |
cell : [rowIndex, colIndex] |
}; |
if(!preventViewNotify){ |
var v = this.grid.getView(); |
v.onCellSelect(rowIndex, colIndex); |
if(preventFocus !== true){ |
v.focusCell(rowIndex, colIndex); |
} |
} |
this.fireEvent("cellselect", this, rowIndex, colIndex); |
this.fireEvent("selectionchange", this, this.selection); |
} |
}, |
isSelectable : function(rowIndex, colIndex, cm){ |
return !cm.isHidden(colIndex); |
}, |
handleKeyDown : function(e){ |
if(!e.isNavKeyPress()){ |
return; |
} |
var g = this.grid, s = this.selection; |
if(!s){ |
e.stopEvent(); |
var cell = g.walkCells(0, 0, 1, this.isSelectable, this); |
if(cell){ |
this.select(cell[0], cell[1]); |
} |
return; |
} |
var sm = this; |
var walk = function(row, col, step){ |
return g.walkCells(row, col, step, sm.isSelectable, sm); |
}; |
var k = e.getKey(), r = s.cell[0], c = s.cell[1]; |
var newCell; |
switch(k){ |
case e.TAB: |
if(e.shiftKey){ |
newCell = walk(r, c-1, -1); |
}else{ |
newCell = walk(r, c+1, 1); |
} |
break; |
case e.DOWN: |
newCell = walk(r+1, c, 1); |
break; |
case e.UP: |
newCell = walk(r-1, c, -1); |
break; |
case e.RIGHT: |
newCell = walk(r, c+1, 1); |
break; |
case e.LEFT: |
newCell = walk(r, c-1, -1); |
break; |
case e.ENTER: |
if(g.isEditor && !g.editing){ |
g.startEditing(r, c); |
e.stopEvent(); |
return; |
} |
break; |
}; |
if(newCell){ |
this.select(newCell[0], newCell[1]); |
e.stopEvent(); |
} |
}, |
acceptsNav : function(row, col, cm){ |
return !cm.isHidden(col) && cm.isCellEditable(col, row); |
}, |
onEditorKey : function(field, e){ |
var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor; |
if(k == e.TAB){ |
if(e.shiftKey){ |
newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this); |
}else{ |
newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this); |
} |
e.stopEvent(); |
}else if(k == e.ENTER){ |
ed.completeEdit(); |
e.stopEvent(); |
}else if(k == e.ESC){ |
e.stopEvent(); |
ed.cancelEdit(); |
} |
if(newCell){ |
g.startEditing(newCell[0], newCell[1]); |
} |
} |
}); |
Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, { |
clicksToEdit: 2, |
isEditor : true, |
detectEdit: false, |
autoEncode : false, |
trackMouseOver: false, |
initComponent : function(){ |
Ext.grid.EditorGridPanel.superclass.initComponent.call(this); |
if(!this.selModel){ |
this.selModel = new Ext.grid.CellSelectionModel(); |
} |
this.activeEditor = null; |
this.addEvents( |
"beforeedit", |
"afteredit", |
"validateedit" |
); |
}, |
initEvents : function(){ |
Ext.grid.EditorGridPanel.superclass.initEvents.call(this); |
this.on("bodyscroll", this.stopEditing, this, [true]); |
if(this.clicksToEdit == 1){ |
this.on("cellclick", this.onCellDblClick, this); |
}else { |
if(this.clicksToEdit == 'auto' && this.view.mainBody){ |
this.view.mainBody.on("mousedown", this.onAutoEditClick, this); |
} |
this.on("celldblclick", this.onCellDblClick, this); |
} |
this.getGridEl().addClass("xedit-grid"); |
}, |
onCellDblClick : function(g, row, col){ |
this.startEditing(row, col); |
}, |
onAutoEditClick : function(e, t){ |
if(e.button !== 0){ |
return; |
} |
var row = this.view.findRowIndex(t); |
var col = this.view.findCellIndex(t); |
if(row !== false && col !== false){ |
this.stopEditing(); |
if(this.selModel.getSelectedCell){ |
var sc = this.selModel.getSelectedCell(); |
if(sc && sc.cell[0] === row && sc.cell[1] === col){ |
this.startEditing(row, col); |
} |
}else{ |
if(this.selModel.isSelected(row)){ |
this.startEditing(row, col); |
} |
} |
} |
}, |
onEditComplete : function(ed, value, startValue){ |
this.editing = false; |
this.activeEditor = null; |
ed.un("specialkey", this.selModel.onEditorKey, this.selModel); |
var r = ed.record; |
var field = this.colModel.getDataIndex(ed.col); |
value = this.postEditValue(value, startValue, r, field); |
if(String(value) !== String(startValue)){ |
var e = { |
grid: this, |
record: r, |
field: field, |
originalValue: startValue, |
value: value, |
row: ed.row, |
column: ed.col, |
cancel:false |
}; |
if(this.fireEvent("validateedit", e) !== false && !e.cancel){ |
r.set(field, e.value); |
delete e.cancel; |
this.fireEvent("afteredit", e); |
} |
} |
this.view.focusCell(ed.row, ed.col); |
}, |
startEditing : function(row, col){ |
this.stopEditing(); |
if(this.colModel.isCellEditable(col, row)){ |
this.view.ensureVisible(row, col, true); |
var r = this.store.getAt(row); |
var field = this.colModel.getDataIndex(col); |
var e = { |
grid: this, |
record: r, |
field: field, |
value: r.data[field], |
row: row, |
column: col, |
cancel:false |
}; |
if(this.fireEvent("beforeedit", e) !== false && !e.cancel){ |
this.editing = true; |
var ed = this.colModel.getCellEditor(col, row); |
if(!ed.rendered){ |
ed.render(this.view.getEditorParent(ed)); |
} |
(function(){ |
ed.row = row; |
ed.col = col; |
ed.record = r; |
ed.on("complete", this.onEditComplete, this, {single: true}); |
ed.on("specialkey", this.selModel.onEditorKey, this.selModel); |
this.activeEditor = ed; |
var v = this.preEditValue(r, field); |
ed.startEdit(this.view.getCell(row, col), v); |
}).defer(50, this); |
} |
} |
}, |
preEditValue : function(r, field){ |
return this.autoEncode && typeof value == 'string' ? Ext.util.Format.htmlDecode(r.data[field]) : r.data[field]; |
}, |
postEditValue : function(value, originalValue, r, field){ |
return this.autoEncode && typeof value == 'string' ? Ext.util.Format.htmlEncode(value) : value; |
}, |
stopEditing : function(cancel){ |
if(this.activeEditor){ |
this.activeEditor[cancel === true ? 'cancelEdit' : 'completeEdit'](); |
} |
this.activeEditor = null; |
} |
}); |
Ext.reg('editorgrid', Ext.grid.EditorGridPanel); |
Ext.grid.GridEditor = function(field, config){ |
Ext.grid.GridEditor.superclass.constructor.call(this, field, config); |
field.monitorTab = false; |
}; |
Ext.extend(Ext.grid.GridEditor, Ext.Editor, { |
alignment: "tl-tl", |
autoSize: "width", |
hideEl : false, |
cls: "x-small-editor x-grid-editor", |
shim:false, |
shadow:false |
}); |
Ext.grid.PropertyRecord = Ext.data.Record.create([ |
{name:'name',type:'string'}, 'value' |
]); |
Ext.grid.PropertyStore = function(grid, source){ |
this.grid = grid; |
this.store = new Ext.data.Store({ |
recordType : Ext.grid.PropertyRecord |
}); |
this.store.on('update', this.onUpdate, this); |
if(source){ |
this.setSource(source); |
} |
Ext.grid.PropertyStore.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.grid.PropertyStore, Ext.util.Observable, { |
setSource : function(o){ |
this.source = o; |
this.store.removeAll(); |
var data = []; |
for(var k in o){ |
if(this.isEditableValue(o[k])){ |
data.push(new Ext.grid.PropertyRecord({name: k, value: o[k]}, k)); |
} |
} |
this.store.loadRecords({records: data}, {}, true); |
}, |
onUpdate : function(ds, record, type){ |
if(type == Ext.data.Record.EDIT){ |
var v = record.data['value']; |
var oldValue = record.modified['value']; |
if(this.grid.fireEvent('beforepropertychange', this.source, record.id, v, oldValue) !== false){ |
this.source[record.id] = v; |
record.commit(); |
this.grid.fireEvent('propertychange', this.source, record.id, v, oldValue); |
}else{ |
record.reject(); |
} |
} |
}, |
getProperty : function(row){ |
return this.store.getAt(row); |
}, |
isEditableValue: function(val){ |
if(Ext.isDate(val)){ |
return true; |
}else if(typeof val == 'object' || typeof val == 'function'){ |
return false; |
} |
return true; |
}, |
setValue : function(prop, value){ |
this.source[prop] = value; |
this.store.getById(prop).set('value', value); |
}, |
getSource : function(){ |
return this.source; |
} |
}); |
Ext.grid.PropertyColumnModel = function(grid, store){ |
this.grid = grid; |
var g = Ext.grid; |
g.PropertyColumnModel.superclass.constructor.call(this, [ |
{header: this.nameText, width:50, sortable: true, dataIndex:'name', id: 'name', menuDisabled:true}, |
{header: this.valueText, width:50, resizable:false, dataIndex: 'value', id: 'value', menuDisabled:true} |
]); |
this.store = store; |
this.bselect = Ext.DomHelper.append(document.body, { |
tag: 'select', cls: 'x-grid-editor x-hide-display', children: [ |
{tag: 'option', value: 'true', html: 'true'}, |
{tag: 'option', value: 'false', html: 'false'} |
] |
}); |
var f = Ext.form; |
var bfield = new f.Field({ |
el:this.bselect, |
bselect : this.bselect, |
autoShow: true, |
getValue : function(){ |
return this.bselect.value == 'true'; |
} |
}); |
this.editors = { |
'date' : new g.GridEditor(new f.DateField({selectOnFocus:true})), |
'string' : new g.GridEditor(new f.TextField({selectOnFocus:true})), |
'number' : new g.GridEditor(new f.NumberField({selectOnFocus:true, style:'text-align:left;'})), |
'boolean' : new g.GridEditor(bfield) |
}; |
this.renderCellDelegate = this.renderCell.createDelegate(this); |
this.renderPropDelegate = this.renderProp.createDelegate(this); |
}; |
Ext.extend(Ext.grid.PropertyColumnModel, Ext.grid.ColumnModel, { |
nameText : 'Name', |
valueText : 'Value', |
dateFormat : 'm/j/Y', |
renderDate : function(dateVal){ |
return dateVal.dateFormat(this.dateFormat); |
}, |
renderBool : function(bVal){ |
return bVal ? 'true' : 'false'; |
}, |
isCellEditable : function(colIndex, rowIndex){ |
return colIndex == 1; |
}, |
getRenderer : function(col){ |
return col == 1 ? |
this.renderCellDelegate : this.renderPropDelegate; |
}, |
renderProp : function(v){ |
return this.getPropertyName(v); |
}, |
renderCell : function(val){ |
var rv = val; |
if(Ext.isDate(val)){ |
rv = this.renderDate(val); |
}else if(typeof val == 'boolean'){ |
rv = this.renderBool(val); |
} |
return Ext.util.Format.htmlEncode(rv); |
}, |
getPropertyName : function(name){ |
var pn = this.grid.propertyNames; |
return pn && pn[name] ? pn[name] : name; |
}, |
getCellEditor : function(colIndex, rowIndex){ |
var p = this.store.getProperty(rowIndex); |
var n = p.data['name'], val = p.data['value']; |
if(this.grid.customEditors[n]){ |
return this.grid.customEditors[n]; |
} |
if(Ext.isDate(val)){ |
return this.editors['date']; |
}else if(typeof val == 'number'){ |
return this.editors['number']; |
}else if(typeof val == 'boolean'){ |
return this.editors['boolean']; |
}else{ |
return this.editors['string']; |
} |
} |
}); |
Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, { |
enableColumnMove:false, |
stripeRows:false, |
trackMouseOver: false, |
clicksToEdit:1, |
enableHdMenu : false, |
viewConfig : { |
forceFit:true |
}, |
initComponent : function(){ |
this.customEditors = this.customEditors || {}; |
this.lastEditRow = null; |
var store = new Ext.grid.PropertyStore(this); |
this.propStore = store; |
var cm = new Ext.grid.PropertyColumnModel(this, store); |
store.store.sort('name', 'ASC'); |
this.addEvents( |
'beforepropertychange', |
'propertychange' |
); |
this.cm = cm; |
this.ds = store.store; |
Ext.grid.PropertyGrid.superclass.initComponent.call(this); |
this.selModel.on('beforecellselect', function(sm, rowIndex, colIndex){ |
if(colIndex === 0){ |
this.startEditing.defer(200, this, [rowIndex, 1]); |
return false; |
} |
}, this); |
}, |
onRender : function(){ |
Ext.grid.PropertyGrid.superclass.onRender.apply(this, arguments); |
this.getGridEl().addClass('x-props-grid'); |
}, |
afterRender: function(){ |
Ext.grid.PropertyGrid.superclass.afterRender.apply(this, arguments); |
if(this.source){ |
this.setSource(this.source); |
} |
}, |
setSource : function(source){ |
this.propStore.setSource(source); |
}, |
getSource : function(){ |
return this.propStore.getSource(); |
} |
}); |
Ext.grid.RowNumberer = function(config){ |
Ext.apply(this, config); |
if(this.rowspan){ |
this.renderer = this.renderer.createDelegate(this); |
} |
}; |
Ext.grid.RowNumberer.prototype = { |
header: "", |
width: 23, |
sortable: false, |
fixed:true, |
menuDisabled:true, |
dataIndex: '', |
id: 'numberer', |
rowspan: undefined, |
renderer : function(v, p, record, rowIndex){ |
if(this.rowspan){ |
p.cellAttr = 'rowspan="'+this.rowspan+'"'; |
} |
return rowIndex+1; |
} |
}; |
Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { |
header: '<div class="x-grid3-hd-checker"> </div>', |
width: 20, |
sortable: false, |
menuDisabled:true, |
fixed:true, |
dataIndex: '', |
id: 'checker', |
initEvents : function(){ |
Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this); |
this.grid.on('render', function(){ |
var view = this.grid.getView(); |
view.mainBody.on('mousedown', this.onMouseDown, this); |
Ext.fly(view.innerHd).on('mousedown', this.onHdMouseDown, this); |
}, this); |
}, |
onMouseDown : function(e, t){ |
if(e.button === 0 && t.className == 'x-grid3-row-checker'){ |
e.stopEvent(); |
var row = e.getTarget('.x-grid3-row'); |
if(row){ |
var index = row.rowIndex; |
if(this.isSelected(index)){ |
this.deselectRow(index); |
}else{ |
this.selectRow(index, true); |
} |
} |
} |
}, |
onHdMouseDown : function(e, t){ |
if(t.className == 'x-grid3-hd-checker'){ |
e.stopEvent(); |
var hd = Ext.fly(t.parentNode); |
var isChecked = hd.hasClass('x-grid3-hd-checker-on'); |
if(isChecked){ |
hd.removeClass('x-grid3-hd-checker-on'); |
this.clearSelections(); |
}else{ |
hd.addClass('x-grid3-hd-checker-on'); |
this.selectAll(); |
} |
} |
}, |
renderer : function(v, p, record){ |
return '<div class="x-grid3-row-checker"> </div>'; |
} |
}); |
Ext.LoadMask = function(el, config){ |
this.el = Ext.get(el); |
Ext.apply(this, config); |
if(this.store){ |
this.store.on('beforeload', this.onBeforeLoad, this); |
this.store.on('load', this.onLoad, this); |
this.store.on('loadexception', this.onLoad, this); |
this.removeMask = Ext.value(this.removeMask, false); |
}else{ |
var um = this.el.getUpdater(); |
um.showLoadIndicator = false; um.on('beforeupdate', this.onBeforeLoad, this); |
um.on('update', this.onLoad, this); |
um.on('failure', this.onLoad, this); |
this.removeMask = Ext.value(this.removeMask, true); |
} |
}; |
Ext.LoadMask.prototype = { |
msg : 'Loading...', |
msgCls : 'x-mask-loading', |
disabled: false, |
disable : function(){ |
this.disabled = true; |
}, |
enable : function(){ |
this.disabled = false; |
}, |
onLoad : function(){ |
this.el.unmask(this.removeMask); |
}, |
onBeforeLoad : function(){ |
if(!this.disabled){ |
this.el.mask(this.msg, this.msgCls); |
} |
}, |
show: function(){ |
this.onBeforeLoad(); |
}, |
hide: function(){ |
this.onLoad(); |
}, |
destroy : function(){ |
if(this.store){ |
this.store.un('beforeload', this.onBeforeLoad, this); |
this.store.un('load', this.onLoad, this); |
this.store.un('loadexception', this.onLoad, this); |
}else{ |
var um = this.el.getUpdater(); |
um.un('beforeupdate', this.onBeforeLoad, this); |
um.un('update', this.onLoad, this); |
um.un('failure', this.onLoad, this); |
} |
} |
}; |
Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { |
baseCls : 'x-progress', |
waitTimer : null, |
initComponent : function(){ |
Ext.ProgressBar.superclass.initComponent.call(this); |
this.addEvents( |
"update" |
); |
}, |
onRender : function(ct, position){ |
Ext.ProgressBar.superclass.onRender.call(this, ct, position); |
var tpl = new Ext.Template( |
'<div class="{cls}-wrap">', |
'<div class="{cls}-inner">', |
'<div class="{cls}-bar">', |
'<div class="{cls}-text">', |
'<div> </div>', |
'</div>', |
'</div>', |
'<div class="{cls}-text {cls}-text-back">', |
'<div> </div>', |
'</div>', |
'</div>', |
'</div>' |
); |
if(position){ |
this.el = tpl.insertBefore(position, {cls: this.baseCls}, true); |
}else{ |
this.el = tpl.append(ct, {cls: this.baseCls}, true); |
} |
if(this.id){ |
this.el.dom.id = this.id; |
} |
var inner = this.el.dom.firstChild; |
this.progressBar = Ext.get(inner.firstChild); |
if(this.textEl){ |
this.textEl = Ext.get(this.textEl); |
delete this.textTopEl; |
}else{ |
this.textTopEl = Ext.get(this.progressBar.dom.firstChild); |
var textBackEl = Ext.get(inner.childNodes[1]); |
this.textTopEl.setStyle("z-index", 99).addClass('x-hidden'); |
this.textEl = new Ext.CompositeElement([this.textTopEl.dom.firstChild, textBackEl.dom.firstChild]); |
this.textEl.setWidth(inner.offsetWidth); |
} |
if(this.value){ |
this.updateProgress(this.value, this.text); |
}else{ |
this.updateText(this.text); |
} |
this.setSize(this.width || 'auto', 'auto'); |
this.progressBar.setHeight(inner.offsetHeight); |
}, |
updateProgress : function(value, text){ |
this.value = value || 0; |
if(text){ |
this.updateText(text); |
} |
var w = Math.floor(value*this.el.dom.firstChild.offsetWidth); |
this.progressBar.setWidth(w); |
if(this.textTopEl){ |
this.textTopEl.removeClass('x-hidden').setWidth(w); |
} |
this.fireEvent('update', this, value, text); |
return this; |
}, |
wait : function(o){ |
if(!this.waitTimer){ |
var scope = this; |
o = o || {}; |
this.waitTimer = Ext.TaskMgr.start({ |
run: function(i){ |
var inc = o.increment || 10; |
this.updateProgress(((((i+inc)%inc)+1)*(100/inc))*.01); |
}, |
interval: o.interval || 1000, |
duration: o.duration, |
onStop: function(){ |
if(o.fn){ |
o.fn.apply(o.scope || this); |
} |
this.reset(); |
}, |
scope: scope |
}); |
} |
return this; |
}, |
isWaiting : function(){ |
return this.waitTimer != null; |
}, |
updateText : function(text){ |
this.text = text || ' '; |
this.textEl.update(this.text); |
return this; |
}, |
setSize : function(w, h){ |
Ext.ProgressBar.superclass.setSize.call(this, w, h); |
if(this.textTopEl){ |
var inner = this.el.dom.firstChild; |
this.textEl.setSize(inner.offsetWidth, inner.offsetHeight); |
} |
return this; |
}, |
reset : function(hide){ |
this.updateProgress(0); |
if(this.textTopEl){ |
this.textTopEl.addClass('x-hidden'); |
} |
if(this.waitTimer){ |
this.waitTimer.onStop = null; |
Ext.TaskMgr.stop(this.waitTimer); |
this.waitTimer = null; |
} |
if(hide === true){ |
this.hide(); |
} |
return this; |
} |
}); |
Ext.reg('progress', Ext.ProgressBar); |
Ext.debug = {}; |
(function(){ |
var cp; |
function createConsole(){ |
var scriptPanel = new Ext.debug.ScriptsPanel(); |
var logView = new Ext.debug.LogPanel(); |
var tree = new Ext.debug.DomTree(); |
var tabs = new Ext.TabPanel({ |
activeTab: 0, |
border: false, |
tabPosition: 'bottom', |
items: [{ |
title: 'Debug Console', |
layout:'border', |
items: [logView, scriptPanel] |
},{ |
title: 'DOM Inspector', |
layout:'border', |
items: [tree] |
}] |
}); |
cp = new Ext.Panel({ |
id: 'x-debug-browser', |
title: 'Console', |
collapsible: true, |
animCollapse: false, |
style: 'position:absolute;left:0;bottom:0;', |
height:200, |
logView: logView, |
layout: 'fit', |
tools:[{ |
id: 'close', |
handler: function(){ |
cp.destroy(); |
cp = null; |
Ext.EventManager.removeResizeListener(handleResize); |
} |
}], |
items: tabs |
}); |
cp.render(document.body); |
cp.resizer = new Ext.Resizable(cp.el, { |
minHeight:50, |
handles: "n", |
pinned: true, |
transparent:true, |
resizeElement : function(){ |
var box = this.proxy.getBox(); |
this.proxy.hide(); |
cp.setHeight(box.height); |
return box; |
} |
}); |
function handleResize(){ |
cp.setWidth(Ext.getBody().getViewSize().width); |
} |
Ext.EventManager.onWindowResize(handleResize); |
handleResize(); |
} |
Ext.apply(Ext, { |
log : function(){ |
if(!cp){ |
createConsole(); |
} |
cp.logView.log.apply(cp.logView, arguments); |
}, |
logf : function(format, arg1, arg2, etc){ |
Ext.log(String.format.apply(String, arguments)); |
}, |
dump : function(o){ |
if(typeof o == 'string' || typeof o == 'number' || typeof o == 'undefined' || Ext.isDate(o)){ |
Ext.log(o); |
}else if(!o){ |
Ext.log("null"); |
}else if(typeof o != "object"){ |
Ext.log('Unknown return type'); |
}else if(Ext.isArray(o)){ |
Ext.log('['+o.join(',')+']'); |
}else{ |
var b = ["{\n"]; |
for(var key in o){ |
var to = typeof o[key]; |
if(to != "function" && to != "object"){ |
b.push(String.format(" {0}: {1},\n", key, o[key])); |
} |
} |
var s = b.join(""); |
if(s.length > 3){ |
s = s.substr(0, s.length-2); |
} |
Ext.log(s + "\n}"); |
} |
}, |
_timers : {}, |
time : function(name){ |
name = name || "def"; |
Ext._timers[name] = new Date().getTime(); |
}, |
timeEnd : function(name, printResults){ |
var t = new Date().getTime(); |
name = name || "def"; |
var v = String.format("{0} ms", t-Ext._timers[name]); |
Ext._timers[name] = new Date().getTime(); |
if(printResults !== false){ |
Ext.log('Timer ' + (name == "def" ? v : name + ": " + v)); |
} |
return v; |
} |
}); |
})(); |
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 markup = [ '<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, ' '), |
'</div>'].join(''); |
this.body.insertHtml('beforeend', markup); |
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 styles = false, hnode; |
var nonSpace = /^\s*$/; |
var html = Ext.util.Format.htmlEncode; |
var ellipsis = Ext.util.Format.ellipsis; |
var styleRe = /\s?([a-z\-]*)\:([^;]*)(?:[;\s\n\r]*)/gi; |
function findNode(n){ |
if(!n || n.nodeType != 1 || n == document.body || n == document){ |
return false; |
} |
var pn = [n], p = n; |
while((p = p.parentNode) && p.nodeType == 1 && p.tagName.toUpperCase() != 'HTML'){ |
pn.unshift(p); |
} |
var cn = hnode; |
for(var i = 0, len = pn.length; i < len; i++){ |
cn.expand(); |
cn = cn.findChild('htmlNode', pn[i]); |
if(!cn){ return false; |
} |
} |
cn.select(); |
var a = cn.ui.anchor; |
treeEl.dom.scrollTop = Math.max(0 ,a.offsetTop-10); |
cn.highlight(); |
return true; |
} |
function nodeTitle(n){ |
var s = n.tagName; |
if(n.id){ |
s += '#'+n.id; |
}else if(n.className){ |
s += '.'+n.className; |
} |
return s; |
} |
function onNodeSelect(t, n, last){ |
return; |
if(last && last.unframe){ |
last.unframe(); |
} |
var props = {}; |
if(n && n.htmlNode){ |
if(frameEl.pressed){ |
n.frame(); |
} |
if(inspecting){ |
return; |
} |
addStyle.enable(); |
reload.setDisabled(n.leaf); |
var dom = n.htmlNode; |
stylePanel.setTitle(nodeTitle(dom)); |
if(styles && !showAll.pressed){ |
var s = dom.style ? dom.style.cssText : ''; |
if(s){ |
var m; |
while ((m = styleRe.exec(s)) != null){ |
props[m[1].toLowerCase()] = m[2]; |
} |
} |
}else if(styles){ |
var cl = Ext.debug.cssList; |
var s = dom.style, fly = Ext.fly(dom); |
if(s){ |
for(var i = 0, len = cl.length; i<len; i++){ |
var st = cl[i]; |
var v = s[st] || fly.getStyle(st); |
if(v != undefined && v !== null && v !== ''){ |
props[st] = v; |
} |
} |
} |
}else{ |
for(var a in dom){ |
var v = dom[a]; |
if((isNaN(a+10)) && v != undefined && v !== null && v !== '' && !(Ext.isGecko && a[0] == a[0].toUpperCase())){ |
props[a] = v; |
} |
} |
} |
}else{ |
if(inspecting){ |
return; |
} |
addStyle.disable(); |
reload.disabled(); |
} |
stylesGrid.setSource(props); |
stylesGrid.treeNode = n; |
stylesGrid.view.fitColumns(); |
} |
this.loader = new Ext.tree.TreeLoader(); |
this.loader.load = function(n, cb){ |
var isBody = n.htmlNode == document.body; |
var cn = n.htmlNode.childNodes; |
for(var i = 0, c; c = cn[i]; i++){ |
if(isBody && c.id == 'x-debug-browser'){ |
continue; |
} |
if(c.nodeType == 1){ |
n.appendChild(new Ext.debug.HtmlNode(c)); |
}else if(c.nodeType == 3 && !nonSpace.test(c.nodeValue)){ |
n.appendChild(new Ext.tree.TreeNode({ |
text:'<em>' + ellipsis(html(String(c.nodeValue)), 35) + '</em>', |
cls: 'x-tree-noicon' |
})); |
} |
} |
cb(); |
}; |
this.root = this.setRootNode(new Ext.tree.TreeNode('Ext')); |
hnode = this.root.appendChild(new Ext.debug.HtmlNode( |
document.getElementsByTagName('html')[0] |
)); |
} |
}); |
Ext.debug.HtmlNode = function(){ |
var html = Ext.util.Format.htmlEncode; |
var ellipsis = Ext.util.Format.ellipsis; |
var nonSpace = /^\s*$/; |
var attrs = [ |
{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 hasChild(n){ |
for(var i = 0, c; c = n.childNodes[i]; i++){ |
if(c.nodeType == 1){ |
return true; |
} |
} |
return false; |
} |
function renderNode(n, leaf){ |
var tag = n.tagName.toLowerCase(); |
var s = '<' + tag; |
for(var i = 0, len = attrs.length; i < len; i++){ |
var a = attrs[i]; |
var v = n[a.n]; |
if(v && !nonSpace.test(v)){ |
s += ' ' + a.v + '="<i>' + html(v) +'</i>"'; |
} |
} |
var style = n.style ? n.style.cssText : ''; |
if(style){ |
s += ' style="<i>' + html(style.toLowerCase()) +'</i>"'; |
} |
if(leaf && n.childNodes.length > 0){ |
s+='><em>' + ellipsis(html(String(n.innerHTML)), 35) + '</em></'+tag+'>'; |
}else if(leaf){ |
s += ' />'; |
}else{ |
s += '>'; |
} |
return s; |
} |
var HtmlNode = function(n){ |
var leaf = !hasChild(n); |
this.htmlNode = n; |
this.tagName = n.tagName.toLowerCase(); |
var attr = { |
text : renderNode(n, leaf), |
leaf : leaf, |
cls: 'x-tree-noicon' |
}; |
HtmlNode.superclass.constructor.call(this, attr); |
this.attributes.htmlNode = n; if(!leaf){ |
this.on('expand', this.onExpand, this); |
this.on('collapse', this.onCollapse, this); |
} |
}; |
Ext.extend(HtmlNode, Ext.tree.AsyncTreeNode, { |
cls: 'x-tree-noicon', |
preventHScroll: true, |
refresh : function(highlight){ |
var leaf = !hasChild(this.htmlNode); |
this.setText(renderNode(this.htmlNode, leaf)); |
if(highlight){ |
Ext.fly(this.ui.textNode).highlight(); |
} |
}, |
onExpand : function(){ |
if(!this.closeNode && this.parentNode){ |
this.closeNode = this.parentNode.insertBefore(new Ext.tree.TreeNode({ |
text:'</' + this.tagName + '>', |
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(bulkRender){ |
HtmlNode.superclass.render.call(this, bulkRender); |
}, |
highlightNode : function(){ |
}, |
highlight : function(){ |
}, |
frame : function(){ |
this.htmlNode.style.border = '1px solid #0000ff'; |
}, |
unframe : function(){ |
this.htmlNode.style.border = ''; |
} |
}); |
return HtmlNode; |
}(); |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/ext-core-debug.js |
---|
New file |
0,0 → 1,5592 |
/* |
* Ext JS Library 2.0.2 |
* Copyright(c) 2006-2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
Ext.DomHelper = function(){ |
var tempTableEl = null; |
var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i; |
var tableRe = /^table|tbody|tr|td$/i; |
var createHtml = function(o){ |
if(typeof o == 'string'){ |
return o; |
} |
var b = ""; |
if (Ext.isArray(o)) { |
for (var i = 0, l = o.length; i < l; i++) { |
b += createHtml(o[i]); |
} |
return b; |
} |
if(!o.tag){ |
o.tag = "div"; |
} |
b += "<" + o.tag; |
for(var attr in o){ |
if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || typeof o[attr] == "function") continue; |
if(attr == "style"){ |
var s = o["style"]; |
if(typeof s == "function"){ |
s = s.call(); |
} |
if(typeof s == "string"){ |
b += ' style="' + s + '"'; |
}else if(typeof s == "object"){ |
b += ' style="'; |
for(var key in s){ |
if(typeof s[key] != "function"){ |
b += key + ":" + s[key] + ";"; |
} |
} |
b += '"'; |
} |
}else{ |
if(attr == "cls"){ |
b += ' class="' + o["cls"] + '"'; |
}else if(attr == "htmlFor"){ |
b += ' for="' + o["htmlFor"] + '"'; |
}else{ |
b += " " + attr + '="' + o[attr] + '"'; |
} |
} |
} |
if(emptyTags.test(o.tag)){ |
b += "/>"; |
}else{ |
b += ">"; |
var cn = o.children || o.cn; |
if(cn){ |
b += createHtml(cn); |
} else if(o.html){ |
b += o.html; |
} |
b += "</" + o.tag + ">"; |
} |
return b; |
}; |
var createDom = function(o, parentNode){ |
var el; |
if (Ext.isArray(o)) { |
el = document.createDocumentFragment(); |
for(var i = 0, l = o.length; i < l; i++) { |
createDom(o[i], el); |
} |
} else if (typeof o == "string)") { |
el = document.createTextNode(o); |
} else { |
el = document.createElement(o.tag||'div'); |
var useSet = !!el.setAttribute; |
for(var attr in o){ |
if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || attr == "style" || typeof o[attr] == "function") continue; |
if(attr=="cls"){ |
el.className = o["cls"]; |
}else{ |
if(useSet) el.setAttribute(attr, o[attr]); |
else el[attr] = o[attr]; |
} |
} |
Ext.DomHelper.applyStyles(el, o.style); |
var cn = o.children || o.cn; |
if(cn){ |
createDom(cn, el); |
} else if(o.html){ |
el.innerHTML = o.html; |
} |
} |
if(parentNode){ |
parentNode.appendChild(el); |
} |
return el; |
}; |
var ieTable = function(depth, s, h, e){ |
tempTableEl.innerHTML = [s, h, e].join(''); |
var i = -1, el = tempTableEl; |
while(++i < depth){ |
el = el.firstChild; |
} |
return el; |
}; |
var ts = '<table>', |
te = '</table>', |
tbs = ts+'<tbody>', |
tbe = '</tbody>'+te, |
trs = tbs + '<tr>', |
tre = '</tr>'+tbe; |
var insertIntoTable = function(tag, where, el, html){ |
if(!tempTableEl){ |
tempTableEl = document.createElement('div'); |
} |
var node; |
var before = null; |
if(tag == 'td'){ |
if(where == 'afterbegin' || where == 'beforeend'){ |
return; |
} |
if(where == 'beforebegin'){ |
before = el; |
el = el.parentNode; |
} else{ |
before = el.nextSibling; |
el = el.parentNode; |
} |
node = ieTable(4, trs, html, tre); |
} |
else if(tag == 'tr'){ |
if(where == 'beforebegin'){ |
before = el; |
el = el.parentNode; |
node = ieTable(3, tbs, html, tbe); |
} else if(where == 'afterend'){ |
before = el.nextSibling; |
el = el.parentNode; |
node = ieTable(3, tbs, html, tbe); |
} else{ |
if(where == 'afterbegin'){ |
before = el.firstChild; |
} |
node = ieTable(4, trs, html, tre); |
} |
} else if(tag == 'tbody'){ |
if(where == 'beforebegin'){ |
before = el; |
el = el.parentNode; |
node = ieTable(2, ts, html, te); |
} else if(where == 'afterend'){ |
before = el.nextSibling; |
el = el.parentNode; |
node = ieTable(2, ts, html, te); |
} else{ |
if(where == 'afterbegin'){ |
before = el.firstChild; |
} |
node = ieTable(3, tbs, html, tbe); |
} |
} else{ |
if(where == 'beforebegin' || where == 'afterend'){ |
return; |
} |
if(where == 'afterbegin'){ |
before = el.firstChild; |
} |
node = ieTable(2, ts, html, te); |
} |
el.insertBefore(node, before); |
return node; |
}; |
return { |
useDom : false, |
markup : function(o){ |
return createHtml(o); |
}, |
applyStyles : function(el, styles){ |
if(styles){ |
el = Ext.fly(el); |
if(typeof styles == "string"){ |
var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi; |
var matches; |
while ((matches = re.exec(styles)) != null){ |
el.setStyle(matches[1], matches[2]); |
} |
}else if (typeof styles == "object"){ |
for (var style in styles){ |
el.setStyle(style, styles[style]); |
} |
}else if (typeof styles == "function"){ |
Ext.DomHelper.applyStyles(el, styles.call()); |
} |
} |
}, |
insertHtml : function(where, el, html){ |
where = where.toLowerCase(); |
if(el.insertAdjacentHTML){ |
if(tableRe.test(el.tagName)){ |
var rs; |
if(rs = insertIntoTable(el.tagName.toLowerCase(), where, el, html)){ |
return rs; |
} |
} |
switch(where){ |
case "beforebegin": |
el.insertAdjacentHTML('BeforeBegin', html); |
return el.previousSibling; |
case "afterbegin": |
el.insertAdjacentHTML('AfterBegin', html); |
return el.firstChild; |
case "beforeend": |
el.insertAdjacentHTML('BeforeEnd', html); |
return el.lastChild; |
case "afterend": |
el.insertAdjacentHTML('AfterEnd', html); |
return el.nextSibling; |
} |
throw 'Illegal insertion point -> "' + where + '"'; |
} |
var range = el.ownerDocument.createRange(); |
var frag; |
switch(where){ |
case "beforebegin": |
range.setStartBefore(el); |
frag = range.createContextualFragment(html); |
el.parentNode.insertBefore(frag, el); |
return el.previousSibling; |
case "afterbegin": |
if(el.firstChild){ |
range.setStartBefore(el.firstChild); |
frag = range.createContextualFragment(html); |
el.insertBefore(frag, el.firstChild); |
return el.firstChild; |
}else{ |
el.innerHTML = html; |
return el.firstChild; |
} |
case "beforeend": |
if(el.lastChild){ |
range.setStartAfter(el.lastChild); |
frag = range.createContextualFragment(html); |
el.appendChild(frag); |
return el.lastChild; |
}else{ |
el.innerHTML = html; |
return el.lastChild; |
} |
case "afterend": |
range.setStartAfter(el); |
frag = range.createContextualFragment(html); |
el.parentNode.insertBefore(frag, el.nextSibling); |
return el.nextSibling; |
} |
throw 'Illegal insertion point -> "' + where + '"'; |
}, |
insertBefore : function(el, o, returnElement){ |
return this.doInsert(el, o, returnElement, "beforeBegin"); |
}, |
insertAfter : function(el, o, returnElement){ |
return this.doInsert(el, o, returnElement, "afterEnd", "nextSibling"); |
}, |
insertFirst : function(el, o, returnElement){ |
return this.doInsert(el, o, returnElement, "afterBegin", "firstChild"); |
}, |
doInsert : function(el, o, returnElement, pos, sibling){ |
el = Ext.getDom(el); |
var newNode; |
if(this.useDom){ |
newNode = createDom(o, null); |
(sibling === "firstChild" ? el : el.parentNode).insertBefore(newNode, sibling ? el[sibling] : el); |
}else{ |
var html = createHtml(o); |
newNode = this.insertHtml(pos, el, html); |
} |
return returnElement ? Ext.get(newNode, true) : newNode; |
}, |
append : function(el, o, returnElement){ |
el = Ext.getDom(el); |
var newNode; |
if(this.useDom){ |
newNode = createDom(o, null); |
el.appendChild(newNode); |
}else{ |
var html = createHtml(o); |
newNode = this.insertHtml("beforeEnd", el, html); |
} |
return returnElement ? Ext.get(newNode, true) : newNode; |
}, |
overwrite : function(el, o, returnElement){ |
el = Ext.getDom(el); |
el.innerHTML = createHtml(o); |
return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; |
}, |
createTemplate : function(o){ |
var html = createHtml(o); |
return new Ext.Template(html); |
} |
}; |
}(); |
Ext.Template = function(html){ |
var a = arguments; |
if(Ext.isArray(html)){ |
html = html.join(""); |
}else if(a.length > 1){ |
var buf = []; |
for(var i = 0, len = a.length; i < len; i++){ |
if(typeof a[i] == 'object'){ |
Ext.apply(this, a[i]); |
}else{ |
buf[buf.length] = a[i]; |
} |
} |
html = buf.join(''); |
} |
this.html = html; |
if(this.compiled){ |
this.compile(); |
} |
}; |
Ext.Template.prototype = { |
applyTemplate : function(values){ |
if(this.compiled){ |
return this.compiled(values); |
} |
var useF = this.disableFormats !== true; |
var fm = Ext.util.Format, tpl = this; |
var fn = function(m, name, format, args){ |
if(format && useF){ |
if(format.substr(0, 5) == "this."){ |
return tpl.call(format.substr(5), values[name], values); |
}else{ |
if(args){ |
var re = /^\s*['"](.*)["']\s*$/; |
args = args.split(','); |
for(var i = 0, len = args.length; i < len; i++){ |
args[i] = args[i].replace(re, "$1"); |
} |
args = [values[name]].concat(args); |
}else{ |
args = [values[name]]; |
} |
return fm[format].apply(fm, args); |
} |
}else{ |
return values[name] !== undefined ? values[name] : ""; |
} |
}; |
return this.html.replace(this.re, fn); |
}, |
set : function(html, compile){ |
this.html = html; |
this.compiled = null; |
if(compile){ |
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(fnName, value, allValues){ |
return this[fnName](value, allValues); |
}, |
insertFirst: function(el, values, returnElement){ |
return this.doInsert('afterBegin', el, values, returnElement); |
}, |
insertBefore: function(el, values, returnElement){ |
return this.doInsert('beforeBegin', el, values, returnElement); |
}, |
insertAfter : function(el, values, returnElement){ |
return this.doInsert('afterEnd', el, values, returnElement); |
}, |
append : function(el, values, returnElement){ |
return this.doInsert('beforeEnd', el, values, returnElement); |
}, |
doInsert : function(where, el, values, returnEl){ |
el = Ext.getDom(el); |
var newNode = Ext.DomHelper.insertHtml(where, el, this.applyTemplate(values)); |
return returnEl ? Ext.get(newNode, true) : newNode; |
}, |
overwrite : function(el, values, returnElement){ |
el = Ext.getDom(el); |
el.innerHTML = this.applyTemplate(values); |
return returnElement ? Ext.get(el.firstChild, true) : el.firstChild; |
} |
}; |
Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate; |
Ext.DomHelper.Template = Ext.Template; |
Ext.Template.from = function(el, config){ |
el = Ext.getDom(el); |
return new Ext.Template(el.value || el.innerHTML, config || ''); |
}; |
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; |
Ext.util.Observable = function(){ |
if(this.listeners){ |
this.on(this.listeners); |
delete this.listeners; |
} |
}; |
Ext.util.Observable.prototype = { |
fireEvent : function(){ |
if(this.eventsSuspended !== true){ |
var ce = this.events[arguments[0].toLowerCase()]; |
if(typeof ce == "object"){ |
return ce.fire.apply(ce, Array.prototype.slice.call(arguments, 1)); |
} |
} |
return true; |
}, |
filterOptRe : /^(?:scope|delay|buffer|single)$/, |
addListener : function(eventName, fn, scope, o){ |
if(typeof eventName == "object"){ |
o = eventName; |
for(var e in o){ |
if(this.filterOptRe.test(e)){ |
continue; |
} |
if(typeof o[e] == "function"){ |
this.addListener(e, o[e], o.scope, o); |
}else{ |
this.addListener(e, o[e].fn, o[e].scope, o[e]); |
} |
} |
return; |
} |
o = (!o || typeof o == "boolean") ? {} : o; |
eventName = eventName.toLowerCase(); |
var ce = this.events[eventName] || true; |
if(typeof ce == "boolean"){ |
ce = new Ext.util.Event(this, eventName); |
this.events[eventName] = ce; |
} |
ce.addListener(fn, scope, o); |
}, |
removeListener : function(eventName, fn, scope){ |
var ce = this.events[eventName.toLowerCase()]; |
if(typeof ce == "object"){ |
ce.removeListener(fn, scope); |
} |
}, |
purgeListeners : function(){ |
for(var evt in this.events){ |
if(typeof this.events[evt] == "object"){ |
this.events[evt].clearListeners(); |
} |
} |
}, |
relayEvents : function(o, events){ |
var createHandler = function(ename){ |
return function(){ |
return this.fireEvent.apply(this, Ext.combine(ename, Array.prototype.slice.call(arguments, 0))); |
}; |
}; |
for(var i = 0, len = events.length; i < len; i++){ |
var ename = events[i]; |
if(!this.events[ename]){ this.events[ename] = true; }; |
o.on(ename, createHandler(ename), this); |
} |
}, |
addEvents : function(o){ |
if(!this.events){ |
this.events = {}; |
} |
if(typeof o == 'string'){ |
for(var i = 0, a = arguments, v; v = a[i]; i++){ |
if(!this.events[a[i]]){ |
o[a[i]] = true; |
} |
} |
}else{ |
Ext.applyIf(this.events, o); |
} |
}, |
hasListener : function(eventName){ |
var e = this.events[eventName]; |
return typeof e == "object" && e.listeners.length > 0; |
}, |
suspendEvents : function(){ |
this.eventsSuspended = true; |
}, |
resumeEvents : function(){ |
this.eventsSuspended = false; |
}, |
getMethodEvent : function(method){ |
if(!this.methodEvents){ |
this.methodEvents = {}; |
} |
var e = this.methodEvents[method]; |
if(!e){ |
e = {}; |
this.methodEvents[method] = e; |
e.originalFn = this[method]; |
e.methodName = method; |
e.before = []; |
e.after = []; |
var returnValue, v, cancel; |
var obj = this; |
var makeCall = function(fn, scope, args){ |
if((v = fn.apply(scope || obj, args)) !== undefined){ |
if(typeof v === 'object'){ |
if(v.returnValue !== undefined){ |
returnValue = v.returnValue; |
}else{ |
returnValue = v; |
} |
if(v.cancel === true){ |
cancel = true; |
} |
}else if(v === false){ |
cancel = true; |
}else { |
returnValue = v; |
} |
} |
} |
this[method] = function(){ |
returnValue = v = undefined; cancel = false; |
var args = Array.prototype.slice.call(arguments, 0); |
for(var i = 0, len = e.before.length; i < len; i++){ |
makeCall(e.before[i].fn, e.before[i].scope, args); |
if(cancel){ |
return returnValue; |
} |
} |
if((v = e.originalFn.apply(obj, args)) !== undefined){ |
returnValue = v; |
} |
for(var i = 0, len = e.after.length; i < len; i++){ |
makeCall(e.after[i].fn, e.after[i].scope, args); |
if(cancel){ |
return returnValue; |
} |
} |
return returnValue; |
}; |
} |
return e; |
}, |
beforeMethod : function(method, fn, scope){ |
var e = this.getMethodEvent(method); |
e.before.push({fn: fn, scope: scope}); |
}, |
afterMethod : function(method, fn, scope){ |
var e = this.getMethodEvent(method); |
e.after.push({fn: fn, scope: scope}); |
}, |
removeMethodListener : function(method, fn, scope){ |
var e = this.getMethodEvent(method); |
for(var i = 0, len = e.before.length; i < len; i++){ |
if(e.before[i].fn == fn && e.before[i].scope == scope){ |
e.before.splice(i, 1); |
return; |
} |
} |
for(var i = 0, len = e.after.length; i < len; i++){ |
if(e.after[i].fn == fn && e.after[i].scope == scope){ |
e.after.splice(i, 1); |
return; |
} |
} |
} |
}; |
Ext.util.Observable.prototype.on = Ext.util.Observable.prototype.addListener; |
Ext.util.Observable.prototype.un = Ext.util.Observable.prototype.removeListener; |
Ext.util.Observable.capture = function(o, fn, scope){ |
o.fireEvent = o.fireEvent.createInterceptor(fn, scope); |
}; |
Ext.util.Observable.releaseCapture = function(o){ |
o.fireEvent = Ext.util.Observable.prototype.fireEvent; |
}; |
(function(){ |
var createBuffered = function(h, o, scope){ |
var task = new Ext.util.DelayedTask(); |
return function(){ |
task.delay(o.buffer, h, scope, Array.prototype.slice.call(arguments, 0)); |
}; |
}; |
var createSingle = function(h, e, fn, scope){ |
return function(){ |
e.removeListener(fn, scope); |
return h.apply(scope, arguments); |
}; |
}; |
var createDelayed = function(h, o, scope){ |
return function(){ |
var args = Array.prototype.slice.call(arguments, 0); |
setTimeout(function(){ |
h.apply(scope, args); |
}, o.delay || 10); |
}; |
}; |
Ext.util.Event = function(obj, name){ |
this.name = name; |
this.obj = obj; |
this.listeners = []; |
}; |
Ext.util.Event.prototype = { |
addListener : function(fn, scope, options){ |
scope = scope || this.obj; |
if(!this.isListening(fn, scope)){ |
var l = this.createListener(fn, scope, options); |
if(!this.firing){ |
this.listeners.push(l); |
}else{ this.listeners = this.listeners.slice(0); |
this.listeners.push(l); |
} |
} |
}, |
createListener : function(fn, scope, o){ |
o = o || {}; |
scope = scope || this.obj; |
var l = {fn: fn, scope: scope, options: o}; |
var h = fn; |
if(o.delay){ |
h = createDelayed(h, o, scope); |
} |
if(o.single){ |
h = createSingle(h, this, fn, scope); |
} |
if(o.buffer){ |
h = createBuffered(h, o, scope); |
} |
l.fireFn = h; |
return l; |
}, |
findListener : function(fn, scope){ |
scope = scope || this.obj; |
var ls = this.listeners; |
for(var i = 0, len = ls.length; i < len; i++){ |
var l = ls[i]; |
if(l.fn == fn && l.scope == scope){ |
return i; |
} |
} |
return -1; |
}, |
isListening : function(fn, scope){ |
return this.findListener(fn, scope) != -1; |
}, |
removeListener : function(fn, scope){ |
var index; |
if((index = this.findListener(fn, scope)) != -1){ |
if(!this.firing){ |
this.listeners.splice(index, 1); |
}else{ |
this.listeners = this.listeners.slice(0); |
this.listeners.splice(index, 1); |
} |
return true; |
} |
return false; |
}, |
clearListeners : function(){ |
this.listeners = []; |
}, |
fire : function(){ |
var ls = this.listeners, scope, len = ls.length; |
if(len > 0){ |
this.firing = true; |
var args = Array.prototype.slice.call(arguments, 0); |
for(var i = 0; i < len; i++){ |
var l = ls[i]; |
if(l.fireFn.apply(l.scope||this.obj||window, arguments) === false){ |
this.firing = false; |
return false; |
} |
} |
this.firing = false; |
} |
return true; |
} |
}; |
})(); |
Ext.EventManager = function(){ |
var docReadyEvent, docReadyProcId, docReadyState = false; |
var resizeEvent, resizeTask, textEvent, textSize; |
var E = Ext.lib.Event; |
var D = Ext.lib.Dom; |
var fireDocReady = function(){ |
if(!docReadyState){ |
docReadyState = true; |
Ext.isReady = true; |
if(docReadyProcId){ |
clearInterval(docReadyProcId); |
} |
if(Ext.isGecko || Ext.isOpera) { |
document.removeEventListener("DOMContentLoaded", fireDocReady, false); |
} |
if(Ext.isIE){ |
var defer = document.getElementById("ie-deferred-loader"); |
if(defer){ |
defer.onreadystatechange = null; |
defer.parentNode.removeChild(defer); |
} |
} |
if(docReadyEvent){ |
docReadyEvent.fire(); |
docReadyEvent.clearListeners(); |
} |
} |
}; |
var initDocReady = function(){ |
docReadyEvent = new Ext.util.Event(); |
if(Ext.isGecko || Ext.isOpera) { |
document.addEventListener("DOMContentLoaded", fireDocReady, false); |
}else if(Ext.isIE){ |
document.write("<s"+'cript id="ie-deferred-loader" defer="defer" src="/'+'/:"></s'+"cript>"); |
var defer = document.getElementById("ie-deferred-loader"); |
defer.onreadystatechange = function(){ |
if(this.readyState == "complete"){ |
fireDocReady(); |
} |
}; |
}else if(Ext.isSafari){ |
docReadyProcId = setInterval(function(){ |
var rs = document.readyState; |
if(rs == "complete") { |
fireDocReady(); |
} |
}, 10); |
} |
E.on(window, "load", fireDocReady); |
}; |
var createBuffered = function(h, o){ |
var task = new Ext.util.DelayedTask(h); |
return function(e){ |
e = new Ext.EventObjectImpl(e); |
task.delay(o.buffer, h, null, [e]); |
}; |
}; |
var createSingle = function(h, el, ename, fn){ |
return function(e){ |
Ext.EventManager.removeListener(el, ename, fn); |
h(e); |
}; |
}; |
var createDelayed = function(h, o){ |
return function(e){ |
e = new Ext.EventObjectImpl(e); |
setTimeout(function(){ |
h(e); |
}, o.delay || 10); |
}; |
}; |
var listen = function(element, ename, opt, fn, scope){ |
var o = (!opt || typeof opt == "boolean") ? {} : opt; |
fn = fn || o.fn; scope = scope || o.scope; |
var el = Ext.getDom(element); |
if(!el){ |
throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.'; |
} |
var h = function(e){ |
e = Ext.EventObject.setEvent(e); |
var t; |
if(o.delegate){ |
t = e.getTarget(o.delegate, el); |
if(!t){ |
return; |
} |
}else{ |
t = e.target; |
} |
if(o.stopEvent === true){ |
e.stopEvent(); |
} |
if(o.preventDefault === true){ |
e.preventDefault(); |
} |
if(o.stopPropagation === true){ |
e.stopPropagation(); |
} |
if(o.normalized === false){ |
e = e.browserEvent; |
} |
fn.call(scope || el, e, t, o); |
}; |
if(o.delay){ |
h = createDelayed(h, o); |
} |
if(o.single){ |
h = createSingle(h, el, ename, fn); |
} |
if(o.buffer){ |
h = createBuffered(h, o); |
} |
fn._handlers = fn._handlers || []; |
fn._handlers.push([Ext.id(el), ename, h]); |
E.on(el, ename, h); |
if(ename == "mousewheel" && el.addEventListener){ |
el.addEventListener("DOMMouseScroll", h, false); |
E.on(window, 'unload', function(){ |
el.removeEventListener("DOMMouseScroll", h, false); |
}); |
} |
if(ename == "mousedown" && el == document){ |
Ext.EventManager.stoppedMouseDownEvent.addListener(h); |
} |
return h; |
}; |
var stopListening = function(el, ename, fn){ |
var id = Ext.id(el), hds = fn._handlers, hd = fn; |
if(hds){ |
for(var i = 0, len = hds.length; i < len; i++){ |
var h = hds[i]; |
if(h[0] == id && h[1] == ename){ |
hd = h[2]; |
hds.splice(i, 1); |
break; |
} |
} |
} |
E.un(el, ename, hd); |
el = Ext.getDom(el); |
if(ename == "mousewheel" && el.addEventListener){ |
el.removeEventListener("DOMMouseScroll", hd, false); |
} |
if(ename == "mousedown" && el == document){ |
Ext.EventManager.stoppedMouseDownEvent.removeListener(hd); |
} |
}; |
var propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/; |
var pub = { |
addListener : function(element, eventName, fn, scope, options){ |
if(typeof eventName == "object"){ |
var o = eventName; |
for(var e in o){ |
if(propRe.test(e)){ |
continue; |
} |
if(typeof o[e] == "function"){ |
listen(element, e, o, o[e], o.scope); |
}else{ |
listen(element, e, o[e]); |
} |
} |
return; |
} |
return listen(element, eventName, options, fn, scope); |
}, |
removeListener : function(element, eventName, fn){ |
return stopListening(element, eventName, fn); |
}, |
onDocumentReady : function(fn, scope, options){ |
if(docReadyState){ |
docReadyEvent.addListener(fn, scope, options); |
docReadyEvent.fire(); |
docReadyEvent.clearListeners(); |
return; |
} |
if(!docReadyEvent){ |
initDocReady(); |
} |
docReadyEvent.addListener(fn, scope, options); |
}, |
onWindowResize : function(fn, scope, options){ |
if(!resizeEvent){ |
resizeEvent = new Ext.util.Event(); |
resizeTask = new Ext.util.DelayedTask(function(){ |
resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); |
}); |
E.on(window, "resize", this.fireWindowResize, this); |
} |
resizeEvent.addListener(fn, scope, options); |
}, |
fireWindowResize : function(){ |
if(resizeEvent){ |
if((Ext.isIE||Ext.isAir) && resizeTask){ |
resizeTask.delay(50); |
}else{ |
resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); |
} |
} |
}, |
onTextResize : function(fn, scope, options){ |
if(!textEvent){ |
textEvent = new Ext.util.Event(); |
var textEl = new Ext.Element(document.createElement('div')); |
textEl.dom.className = 'x-text-resize'; |
textEl.dom.innerHTML = 'X'; |
textEl.appendTo(document.body); |
textSize = textEl.dom.offsetHeight; |
setInterval(function(){ |
if(textEl.dom.offsetHeight != textSize){ |
textEvent.fire(textSize, textSize = textEl.dom.offsetHeight); |
} |
}, this.textResizeInterval); |
} |
textEvent.addListener(fn, scope, options); |
}, |
removeResizeListener : function(fn, scope){ |
if(resizeEvent){ |
resizeEvent.removeListener(fn, scope); |
} |
}, |
fireResize : function(){ |
if(resizeEvent){ |
resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); |
} |
}, |
ieDeferSrc : false, |
textResizeInterval : 50 |
}; |
pub.on = pub.addListener; |
pub.un = pub.removeListener; |
pub.stoppedMouseDownEvent = new Ext.util.Event(); |
return pub; |
}(); |
Ext.onReady = Ext.EventManager.onDocumentReady; |
Ext.onReady(function(){ |
var bd = Ext.getBody(); |
if(!bd){ return; } |
var cls = [ |
Ext.isIE ? "ext-ie " + (Ext.isIE6 ? 'ext-ie6' : 'ext-ie7') |
: Ext.isGecko ? "ext-gecko" |
: Ext.isOpera ? "ext-opera" |
: Ext.isSafari ? "ext-safari" : ""]; |
if(Ext.isMac){ |
cls.push("ext-mac"); |
} |
if(Ext.isLinux){ |
cls.push("ext-linux"); |
} |
if(Ext.isBorderBox){ |
cls.push('ext-border-box'); |
} |
if(Ext.isStrict){ |
var p = bd.dom.parentNode; |
if(p){ |
p.className += ' ext-strict'; |
} |
} |
bd.addClass(cls.join(' ')); |
}); |
Ext.EventObject = function(){ |
var E = Ext.lib.Event; |
var safariKeys = { |
63234 : 37, |
63235 : 39, |
63232 : 38, |
63233 : 40, |
63276 : 33, |
63277 : 34, |
63272 : 46, |
63273 : 36, |
63275 : 35 |
}; |
var btnMap = 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(e){ |
if(e){ |
this.setEvent(e.browserEvent || e); |
} |
}; |
Ext.EventObjectImpl.prototype = { |
browserEvent : null, |
button : -1, |
shiftKey : false, |
ctrlKey : false, |
altKey : false, |
BACKSPACE : 8, |
TAB : 9, |
RETURN : 13, |
ENTER : 13, |
SHIFT : 16, |
CONTROL : 17, |
ESC : 27, |
SPACE : 32, |
PAGEUP : 33, |
PAGEDOWN : 34, |
END : 35, |
HOME : 36, |
LEFT : 37, |
UP : 38, |
RIGHT : 39, |
DOWN : 40, |
DELETE : 46, |
F5 : 116, |
setEvent : function(e){ |
if(e == this || (e && e.browserEvent)){ |
return e; |
} |
this.browserEvent = e; |
if(e){ |
this.button = e.button ? btnMap[e.button] : (e.which ? e.which-1 : -1); |
if(e.type == 'click' && this.button == -1){ |
this.button = 0; |
} |
this.type = e.type; |
this.shiftKey = e.shiftKey; |
this.ctrlKey = e.ctrlKey || e.metaKey; |
this.altKey = e.altKey; |
this.keyCode = e.keyCode; |
this.charCode = e.charCode; |
this.target = E.getTarget(e); |
this.xy = E.getXY(e); |
}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); |
} |
E.stopEvent(this.browserEvent); |
} |
}, |
preventDefault : function(){ |
if(this.browserEvent){ |
E.preventDefault(this.browserEvent); |
} |
}, |
isNavKeyPress : function(){ |
var k = this.keyCode; |
k = Ext.isSafari ? (safariKeys[k] || k) : k; |
return (k >= 33 && k <= 40) || k == this.RETURN || k == this.TAB || k == this.ESC; |
}, |
isSpecialKey : function(){ |
var k = this.keyCode; |
return (this.type == 'keypress' && this.ctrlKey) || k == 9 || k == 13 || k == 40 || k == 27 || |
(k == 16) || (k == 17) || |
(k >= 18 && k <= 20) || |
(k >= 33 && k <= 35) || |
(k >= 36 && k <= 39) || |
(k >= 44 && k <= 45); |
}, |
stopPropagation : function(){ |
if(this.browserEvent){ |
if(this.browserEvent.type == 'mousedown'){ |
Ext.EventManager.stoppedMouseDownEvent.fire(this); |
} |
E.stopPropagation(this.browserEvent); |
} |
}, |
getCharCode : function(){ |
return this.charCode || this.keyCode; |
}, |
getKey : function(){ |
var k = this.keyCode || this.charCode; |
return Ext.isSafari ? (safariKeys[k] || k) : k; |
}, |
getPageX : function(){ |
return this.xy[0]; |
}, |
getPageY : function(){ |
return this.xy[1]; |
}, |
getTime : function(){ |
if(this.browserEvent){ |
return E.getTime(this.browserEvent); |
} |
return null; |
}, |
getXY : function(){ |
return this.xy; |
}, |
getTarget : function(selector, maxDepth, returnEl){ |
var t = Ext.get(this.target); |
return selector ? t.findParent(selector, maxDepth, returnEl) : (returnEl ? t : this.target); |
}, |
getRelatedTarget : function(){ |
if(this.browserEvent){ |
return E.getRelatedTarget(this.browserEvent); |
} |
return null; |
}, |
getWheelDelta : function(){ |
var e = this.browserEvent; |
var delta = 0; |
if(e.wheelDelta){ |
delta = e.wheelDelta/120; |
}else if(e.detail){ |
delta = -e.detail/3; |
} |
return delta; |
}, |
hasModifier : function(){ |
return ((this.ctrlKey || this.altKey) || this.shiftKey) ? true : false; |
}, |
within : function(el, related){ |
var t = this[related ? "getRelatedTarget" : "getTarget"](); |
return t && Ext.fly(el).contains(t); |
}, |
getPoint : function(){ |
return new Ext.lib.Point(this.xy[0], this.xy[1]); |
} |
}; |
return new Ext.EventObjectImpl(); |
}(); |
(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) || .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, unique){ |
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(.01); |
this.setVisible(true); |
} |
this.anim({opacity: { to: (visible?1:0) }}, |
this.preanim(arguments, 1), |
null, .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){ |
Ext.EventManager.removeListener(this.dom, eventName, fn); |
return this; |
}, |
removeAllListeners : function(){ |
E.purgeElement(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, .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.isGecko){ 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*.5); |
y = r(h*.5); |
break; |
case "t": |
x = r(w*.5); |
y = 0; |
break; |
case "l": |
x = 0; |
y = r(h*.5); |
break; |
case "r": |
x = w; |
y = r(h*.5); |
break; |
case "b": |
x = r(w*.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 = 'no'; |
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, preventFlicker){ |
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){ |
E.purgeElement(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; |
}); |
})(); |
Ext.enableFx = true; |
Ext.Fx = { |
slideIn : function(anchor, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
anchor = anchor || "t"; |
this.fixDisplay(); |
var r = this.getFxRestore(); |
var b = this.getBox(); |
this.setSize(b); |
var wrap = this.fxWrap(r.pos, o, "hidden"); |
var st = this.dom.style; |
st.visibility = "visible"; |
st.position = "absolute"; |
var after = function(){ |
el.fxUnwrap(wrap, r.pos, o); |
st.width = r.width; |
st.height = r.height; |
el.afterFx(o); |
}; |
var a, pt = {to: [b.x, b.y]}, bw = {to: b.width}, bh = {to: b.height}; |
switch(anchor.toLowerCase()){ |
case "t": |
wrap.setSize(b.width, 0); |
st.left = st.bottom = "0"; |
a = {height: bh}; |
break; |
case "l": |
wrap.setSize(0, b.height); |
st.right = st.top = "0"; |
a = {width: bw}; |
break; |
case "r": |
wrap.setSize(0, b.height); |
wrap.setX(b.right); |
st.left = st.top = "0"; |
a = {width: bw, points: pt}; |
break; |
case "b": |
wrap.setSize(b.width, 0); |
wrap.setY(b.bottom); |
st.left = st.top = "0"; |
a = {height: bh, points: pt}; |
break; |
case "tl": |
wrap.setSize(0, 0); |
st.right = st.bottom = "0"; |
a = {width: bw, height: bh}; |
break; |
case "bl": |
wrap.setSize(0, 0); |
wrap.setY(b.y+b.height); |
st.right = st.top = "0"; |
a = {width: bw, height: bh, points: pt}; |
break; |
case "br": |
wrap.setSize(0, 0); |
wrap.setXY([b.right, b.bottom]); |
st.left = st.top = "0"; |
a = {width: bw, height: bh, points: pt}; |
break; |
case "tr": |
wrap.setSize(0, 0); |
wrap.setX(b.x+b.width); |
st.left = st.bottom = "0"; |
a = {width: bw, height: bh, points: pt}; |
break; |
} |
this.dom.style.visibility = "visible"; |
wrap.show(); |
arguments.callee.anim = wrap.fxanim(a, |
o, |
'motion', |
.5, |
'easeOut', after); |
}); |
return this; |
}, |
slideOut : function(anchor, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
anchor = anchor || "t"; |
var r = this.getFxRestore(); |
var b = this.getBox(); |
this.setSize(b); |
var wrap = this.fxWrap(r.pos, o, "visible"); |
var st = this.dom.style; |
st.visibility = "visible"; |
st.position = "absolute"; |
wrap.setSize(b); |
var after = function(){ |
if(o.useDisplay){ |
el.setDisplayed(false); |
}else{ |
el.hide(); |
} |
el.fxUnwrap(wrap, r.pos, o); |
st.width = r.width; |
st.height = r.height; |
el.afterFx(o); |
}; |
var a, zero = {to: 0}; |
switch(anchor.toLowerCase()){ |
case "t": |
st.left = st.bottom = "0"; |
a = {height: zero}; |
break; |
case "l": |
st.right = st.top = "0"; |
a = {width: zero}; |
break; |
case "r": |
st.left = st.top = "0"; |
a = {width: zero, points: {to:[b.right, b.y]}}; |
break; |
case "b": |
st.left = st.top = "0"; |
a = {height: zero, points: {to:[b.x, b.bottom]}}; |
break; |
case "tl": |
st.right = st.bottom = "0"; |
a = {width: zero, height: zero}; |
break; |
case "bl": |
st.right = st.top = "0"; |
a = {width: zero, height: zero, points: {to:[b.x, b.bottom]}}; |
break; |
case "br": |
st.left = st.top = "0"; |
a = {width: zero, height: zero, points: {to:[b.x+b.width, b.bottom]}}; |
break; |
case "tr": |
st.left = st.bottom = "0"; |
a = {width: zero, height: zero, points: {to:[b.right, b.y]}}; |
break; |
} |
arguments.callee.anim = wrap.fxanim(a, |
o, |
'motion', |
.5, |
"easeOut", after); |
}); |
return this; |
}, |
puff : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
this.clearOpacity(); |
this.show(); |
var r = this.getFxRestore(); |
var st = this.dom.style; |
var after = function(){ |
if(o.useDisplay){ |
el.setDisplayed(false); |
}else{ |
el.hide(); |
} |
el.clearOpacity(); |
el.setPositioning(r.pos); |
st.width = r.width; |
st.height = r.height; |
st.fontSize = ''; |
el.afterFx(o); |
}; |
var width = this.getWidth(); |
var height = this.getHeight(); |
arguments.callee.anim = this.fxanim({ |
width : {to: this.adjustWidth(width * 2)}, |
height : {to: this.adjustHeight(height * 2)}, |
points : {by: [-(width * .5), -(height * .5)]}, |
opacity : {to: 0}, |
fontSize: {to:200, unit: "%"} |
}, |
o, |
'motion', |
.5, |
"easeOut", after); |
}); |
return this; |
}, |
switchOff : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
this.clearOpacity(); |
this.clip(); |
var r = this.getFxRestore(); |
var st = this.dom.style; |
var after = function(){ |
if(o.useDisplay){ |
el.setDisplayed(false); |
}else{ |
el.hide(); |
} |
el.clearOpacity(); |
el.setPositioning(r.pos); |
st.width = r.width; |
st.height = r.height; |
el.afterFx(o); |
}; |
this.fxanim({opacity:{to:0.3}}, null, null, .1, null, function(){ |
this.clearOpacity(); |
(function(){ |
this.fxanim({ |
height:{to:1}, |
points:{by:[0, this.getHeight() * .5]} |
}, o, 'motion', 0.3, 'easeIn', after); |
}).defer(100, this); |
}); |
}); |
return this; |
}, |
highlight : function(color, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
color = color || "ffff9c"; |
var attr = o.attr || "backgroundColor"; |
this.clearOpacity(); |
this.show(); |
var origColor = this.getColor(attr); |
var restoreColor = this.dom.style[attr]; |
var endColor = (o.endColor || origColor) || "ffffff"; |
var after = function(){ |
el.dom.style[attr] = restoreColor; |
el.afterFx(o); |
}; |
var a = {}; |
a[attr] = {from: color, to: endColor}; |
arguments.callee.anim = this.fxanim(a, |
o, |
'color', |
1, |
'easeIn', after); |
}); |
return this; |
}, |
frame : function(color, count, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
color = color || "#C3DAF9"; |
if(color.length == 6){ |
color = "#" + color; |
} |
count = count || 1; |
var duration = o.duration || 1; |
this.show(); |
var b = this.getBox(); |
var animFn = function(){ |
var proxy = Ext.getBody().createChild({ |
style:{ |
visbility:"hidden", |
position:"absolute", |
"z-index":"35000", border:"0px solid " + color |
} |
}); |
var scale = Ext.isBorderBox ? 2 : 1; |
proxy.animate({ |
top:{from:b.y, to:b.y - 20}, |
left:{from:b.x, to:b.x - 20}, |
borderWidth:{from:0, to:10}, |
opacity:{from:1, to:0}, |
height:{from:b.height, to:(b.height + (20*scale))}, |
width:{from:b.width, to:(b.width + (20*scale))} |
}, duration, function(){ |
proxy.remove(); |
if(--count > 0){ |
animFn(); |
}else{ |
el.afterFx(o); |
} |
}); |
}; |
animFn.call(this); |
}); |
return this; |
}, |
pause : function(seconds){ |
var el = this.getFxEl(); |
var o = {}; |
el.queueFx(o, function(){ |
setTimeout(function(){ |
el.afterFx(o); |
}, seconds * 1000); |
}); |
return this; |
}, |
fadeIn : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
this.setOpacity(0); |
this.fixDisplay(); |
this.dom.style.visibility = 'visible'; |
var to = o.endOpacity || 1; |
arguments.callee.anim = this.fxanim({opacity:{to:to}}, |
o, null, .5, "easeOut", function(){ |
if(to == 1){ |
this.clearOpacity(); |
} |
el.afterFx(o); |
}); |
}); |
return this; |
}, |
fadeOut : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
arguments.callee.anim = this.fxanim({opacity:{to:o.endOpacity || 0}}, |
o, null, .5, "easeOut", function(){ |
if(this.visibilityMode == Ext.Element.DISPLAY || o.useDisplay){ |
this.dom.style.display = "none"; |
}else{ |
this.dom.style.visibility = "hidden"; |
} |
this.clearOpacity(); |
el.afterFx(o); |
}); |
}); |
return this; |
}, |
scale : function(w, h, o){ |
this.shift(Ext.apply({}, o, { |
width: w, |
height: h |
})); |
return this; |
}, |
shift : function(o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
var a = {}, w = o.width, h = o.height, x = o.x, y = o.y, op = o.opacity; |
if(w !== undefined){ |
a.width = {to: this.adjustWidth(w)}; |
} |
if(h !== undefined){ |
a.height = {to: this.adjustHeight(h)}; |
} |
if(x !== undefined || y !== undefined){ |
a.points = {to: [ |
x !== undefined ? x : this.getX(), |
y !== undefined ? y : this.getY() |
]}; |
} |
if(op !== undefined){ |
a.opacity = {to: op}; |
} |
if(o.xy !== undefined){ |
a.points = {to: o.xy}; |
} |
arguments.callee.anim = this.fxanim(a, |
o, 'motion', .35, "easeOut", function(){ |
el.afterFx(o); |
}); |
}); |
return this; |
}, |
ghost : function(anchor, o){ |
var el = this.getFxEl(); |
o = o || {}; |
el.queueFx(o, function(){ |
anchor = anchor || "b"; |
var r = this.getFxRestore(); |
var w = this.getWidth(), |
h = this.getHeight(); |
var st = this.dom.style; |
var after = function(){ |
if(o.useDisplay){ |
el.setDisplayed(false); |
}else{ |
el.hide(); |
} |
el.clearOpacity(); |
el.setPositioning(r.pos); |
st.width = r.width; |
st.height = r.height; |
el.afterFx(o); |
}; |
var a = {opacity: {to: 0}, points: {}}, pt = a.points; |
switch(anchor.toLowerCase()){ |
case "t": |
pt.by = [0, -h]; |
break; |
case "l": |
pt.by = [-w, 0]; |
break; |
case "r": |
pt.by = [w, 0]; |
break; |
case "b": |
pt.by = [0, h]; |
break; |
case "tl": |
pt.by = [-w, -h]; |
break; |
case "bl": |
pt.by = [-w, h]; |
break; |
case "br": |
pt.by = [w, h]; |
break; |
case "tr": |
pt.by = [w, -h]; |
break; |
} |
arguments.callee.anim = this.fxanim(a, |
o, |
'motion', |
.5, |
"easeOut", after); |
}); |
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 ef = this.fxQueue[0]; |
if(ef){ |
ef.call(this); |
} |
}, |
hasActiveFx : function(){ |
return this.fxQueue && this.fxQueue[0]; |
}, |
stopFx : function(){ |
if(this.hasActiveFx()){ |
var cur = this.fxQueue[0]; |
if(cur && cur.anim && cur.anim.isAnimated()){ |
this.fxQueue = [cur]; cur.anim.stop(true); |
} |
} |
return this; |
}, |
beforeFx : function(o){ |
if(this.hasActiveFx() && !o.concurrent){ |
if(o.stopFx){ |
this.stopFx(); |
return true; |
} |
return false; |
} |
return true; |
}, |
hasFxBlock : function(){ |
var q = this.fxQueue; |
return q && q[0] && q[0].block; |
}, |
queueFx : function(o, fn){ |
if(!this.fxQueue){ |
this.fxQueue = []; |
} |
if(!this.hasFxBlock()){ |
Ext.applyIf(o, this.fxDefaults); |
if(!o.concurrent){ |
var run = this.beforeFx(o); |
fn.block = o.block; |
this.fxQueue.push(fn); |
if(run){ |
this.nextFx(); |
} |
}else{ |
fn.call(this); |
} |
} |
return this; |
}, |
fxWrap : function(pos, o, vis){ |
var wrap; |
if(!o.wrap || !(wrap = Ext.get(o.wrap))){ |
var wrapXY; |
if(o.fixPosition){ |
wrapXY = this.getXY(); |
} |
var div = document.createElement("div"); |
div.style.visibility = vis; |
wrap = Ext.get(this.dom.parentNode.insertBefore(div, this.dom)); |
wrap.setPositioning(pos); |
if(wrap.getStyle("position") == "static"){ |
wrap.position("relative"); |
} |
this.clearPositioning('auto'); |
wrap.clip(); |
wrap.dom.appendChild(this.dom); |
if(wrapXY){ |
wrap.setXY(wrapXY); |
} |
} |
return wrap; |
}, |
fxUnwrap : function(wrap, pos, o){ |
this.clearPositioning(); |
this.setPositioning(pos); |
if(!o.wrap){ |
wrap.dom.parentNode.insertBefore(this.dom, wrap.dom); |
wrap.remove(); |
} |
}, |
getFxRestore : function(){ |
var st = this.dom.style; |
return {pos: this.getPositioning(), width: st.width, height : st.height}; |
}, |
afterFx : function(o){ |
if(o.afterStyle){ |
this.applyStyles(o.afterStyle); |
} |
if(o.afterCls){ |
this.addClass(o.afterCls); |
} |
if(o.remove === true){ |
this.remove(); |
} |
Ext.callback(o.callback, o.scope, [this]); |
if(!o.concurrent){ |
this.fxQueue.shift(); |
this.nextFx(); |
} |
}, |
getFxEl : function(){ return Ext.get(this.dom); |
}, |
fxanim : function(args, opt, animType, defaultDur, defaultEase, cb){ |
animType = animType || 'run'; |
opt = opt || {}; |
var anim = Ext.lib.Anim[animType]( |
this.dom, args, |
(opt.duration || defaultDur) || .35, |
(opt.easing || defaultEase) || 'easeOut', |
function(){ |
Ext.callback(cb, this); |
}, |
this |
); |
opt.anim = anim; |
return anim; |
} |
}; |
Ext.Fx.resize = Ext.Fx.scale; |
Ext.apply(Ext.Element.prototype, Ext.Fx); |
Ext.CompositeElement = function(els){ |
this.elements = []; |
this.addElements(els); |
}; |
Ext.CompositeElement.prototype = { |
isComposite: true, |
addElements : function(els){ |
if(!els) return this; |
if(typeof els == "string"){ |
els = Ext.Element.selectorFunction(els); |
} |
var yels = this.elements; |
var index = yels.length-1; |
for(var i = 0, len = els.length; i < len; i++) { |
yels[++index] = Ext.get(els[i]); |
} |
return this; |
}, |
fill : function(els){ |
this.elements = []; |
this.add(els); |
return this; |
}, |
filter : function(selector){ |
var els = []; |
this.each(function(el){ |
if(el.is(selector)){ |
els[els.length] = el.dom; |
} |
}); |
this.fill(els); |
return this; |
}, |
invoke : function(fn, args){ |
var els = this.elements; |
for(var i = 0, len = els.length; i < len; i++) { |
Ext.Element.prototype[fn].apply(els[i], args); |
} |
return this; |
}, |
add : function(els){ |
if(typeof els == "string"){ |
this.addElements(Ext.Element.selectorFunction(els)); |
}else if(els.length !== undefined){ |
this.addElements(els); |
}else{ |
this.addElements([els]); |
} |
return this; |
}, |
each : function(fn, scope){ |
var els = this.elements; |
for(var i = 0, len = els.length; i < len; i++){ |
if(fn.call(scope || els[i], els[i], this, i) === false) { |
break; |
} |
} |
return this; |
}, |
item : function(index){ |
return this.elements[index] || null; |
}, |
first : function(){ |
return this.item(0); |
}, |
last : function(){ |
return this.item(this.elements.length-1); |
}, |
getCount : function(){ |
return this.elements.length; |
}, |
contains : function(el){ |
return this.indexOf(el) !== -1; |
}, |
indexOf : function(el){ |
return this.elements.indexOf(Ext.get(el)); |
}, |
removeElement : function(el, removeDom){ |
if(Ext.isArray(el)){ |
for(var i = 0, len = el.length; i < len; i++){ |
this.removeElement(el[i]); |
} |
return this; |
} |
var index = typeof el == 'number' ? el : this.indexOf(el); |
if(index !== -1 && this.elements[index]){ |
if(removeDom){ |
var d = this.elements[index]; |
if(d.dom){ |
d.remove(); |
}else{ |
Ext.removeNode(d); |
} |
} |
this.elements.splice(index, 1); |
} |
return this; |
}, |
replaceElement : function(el, replacement, domReplace){ |
var index = typeof el == 'number' ? el : this.indexOf(el); |
if(index !== -1){ |
if(domReplace){ |
this.elements[index].replaceWith(replacement); |
}else{ |
this.elements.splice(index, 1, Ext.get(replacement)) |
} |
} |
return this; |
}, |
clear : function(){ |
this.elements = []; |
} |
}; |
(function(){ |
Ext.CompositeElement.createCall = function(proto, fnName){ |
if(!proto[fnName]){ |
proto[fnName] = function(){ |
return this.invoke(fnName, arguments); |
}; |
} |
}; |
for(var fnName in Ext.Element.prototype){ |
if(typeof Ext.Element.prototype[fnName] == "function"){ |
Ext.CompositeElement.createCall(Ext.CompositeElement.prototype, fnName); |
} |
}; |
})(); |
Ext.CompositeElementLite = function(els){ |
Ext.CompositeElementLite.superclass.constructor.call(this, els); |
this.el = new Ext.Element.Flyweight(); |
}; |
Ext.extend(Ext.CompositeElementLite, Ext.CompositeElement, { |
addElements : function(els){ |
if(els){ |
if(Ext.isArray(els)){ |
this.elements = this.elements.concat(els); |
}else{ |
var yels = this.elements; |
var index = yels.length-1; |
for(var i = 0, len = els.length; i < len; i++) { |
yels[++index] = els[i]; |
} |
} |
} |
return this; |
}, |
invoke : function(fn, args){ |
var els = this.elements; |
var el = this.el; |
for(var i = 0, len = els.length; i < len; i++) { |
el.dom = els[i]; |
Ext.Element.prototype[fn].apply(el, args); |
} |
return this; |
}, |
item : function(index){ |
if(!this.elements[index]){ |
return null; |
} |
this.el.dom = this.elements[index]; |
return this.el; |
}, |
addListener : function(eventName, handler, scope, opt){ |
var els = this.elements; |
for(var i = 0, len = els.length; i < len; i++) { |
Ext.EventManager.on(els[i], eventName, handler, scope || els[i], opt); |
} |
return this; |
}, |
each : function(fn, scope){ |
var els = this.elements; |
var el = this.el; |
for(var i = 0, len = els.length; i < len; i++){ |
el.dom = els[i]; |
if(fn.call(scope || el, el, this, i) === false){ |
break; |
} |
} |
return this; |
}, |
indexOf : function(el){ |
return this.elements.indexOf(Ext.getDom(el)); |
}, |
replaceElement : function(el, replacement, domReplace){ |
var index = typeof el == 'number' ? el : this.indexOf(el); |
if(index !== -1){ |
replacement = Ext.getDom(replacement); |
if(domReplace){ |
var d = this.elements[index]; |
d.parentNode.insertBefore(replacement, d); |
Ext.removeNode(d); |
} |
this.elements.splice(index, 1, replacement); |
} |
return this; |
} |
}); |
Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener; |
if(Ext.DomQuery){ |
Ext.Element.selectorFunction = Ext.DomQuery.select; |
} |
Ext.Element.select = function(selector, unique, root){ |
var els; |
if(typeof selector == "string"){ |
els = Ext.Element.selectorFunction(selector, root); |
}else if(selector.length !== undefined){ |
els = selector; |
}else{ |
throw "Invalid selector"; |
} |
if(unique === true){ |
return new Ext.CompositeElement(els); |
}else{ |
return new Ext.CompositeElementLite(els); |
} |
}; |
Ext.select = Ext.Element.select; |
Ext.data.Connection = function(config){ |
Ext.apply(this, config); |
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, |
request : function(o){ |
if(this.fireEvent("beforerequest", this, o) !== false){ |
var p = o.params; |
if(typeof p == "function"){ |
p = p.call(o.scope||window, o); |
} |
if(typeof p == "object"){ |
p = Ext.urlEncode(p); |
} |
if(this.extraParams){ |
var extras = Ext.urlEncode(this.extraParams); |
p = p ? (p + '&' + extras) : extras; |
} |
var url = o.url || this.url; |
if(typeof url == 'function'){ |
url = url.call(o.scope||window, o); |
} |
if(o.form){ |
var form = Ext.getDom(o.form); |
url = url || form.action; |
var enctype = form.getAttribute("enctype"); |
if(o.isUpload || (enctype && enctype.toLowerCase() == 'multipart/form-data')){ |
return this.doFormUpload(o, p, url); |
} |
var f = Ext.lib.Ajax.serializeForm(form); |
p = p ? (p + '&' + f) : f; |
} |
var hs = o.headers; |
if(this.defaultHeaders){ |
hs = Ext.apply(hs || {}, this.defaultHeaders); |
if(!o.headers){ |
o.headers = hs; |
} |
} |
var cb = { |
success: this.handleResponse, |
failure: this.handleFailure, |
scope: this, |
argument: {options: o}, |
timeout : o.timeout || this.timeout |
}; |
var method = o.method||this.method||(p ? "POST" : "GET"); |
if(method == 'GET' && (this.disableCaching && o.disableCaching !== false) || o.disableCaching === true){ |
url += (url.indexOf('?') != -1 ? '&' : '?') + '_dc=' + (new Date().getTime()); |
} |
if(typeof o.autoAbort == 'boolean'){ |
if(o.autoAbort){ |
this.abort(); |
} |
}else if(this.autoAbort !== false){ |
this.abort(); |
} |
if((method == 'GET' && p) || o.xmlData || o.jsonData){ |
url += (url.indexOf('?') != -1 ? '&' : '?') + p; |
p = ''; |
} |
this.transId = Ext.lib.Ajax.request(method, url, cb, p, o); |
return this.transId; |
}else{ |
Ext.callback(o.callback, o.scope, [o, null, null]); |
return null; |
} |
}, |
isLoading : function(transId){ |
if(transId){ |
return Ext.lib.Ajax.isCallInProgress(transId); |
}else{ |
return this.transId ? true : false; |
} |
}, |
abort : function(transId){ |
if(transId || this.isLoading()){ |
Ext.lib.Ajax.abort(transId || this.transId); |
} |
}, |
handleResponse : function(response){ |
this.transId = false; |
var options = response.argument.options; |
response.argument = options ? options.argument : null; |
this.fireEvent("requestcomplete", this, response, options); |
Ext.callback(options.success, options.scope, [response, options]); |
Ext.callback(options.callback, options.scope, [options, true, response]); |
}, |
handleFailure : function(response, e){ |
this.transId = false; |
var options = response.argument.options; |
response.argument = options ? options.argument : null; |
this.fireEvent("requestexception", this, response, options, e); |
Ext.callback(options.failure, options.scope, [response, options]); |
Ext.callback(options.callback, options.scope, [options, false, response]); |
}, |
doFormUpload : function(o, ps, url){ |
var id = Ext.id(); |
var frame = document.createElement('iframe'); |
frame.id = id; |
frame.name = id; |
frame.className = 'x-hidden'; |
if(Ext.isIE){ |
frame.src = Ext.SSL_SECURE_URL; |
} |
document.body.appendChild(frame); |
if(Ext.isIE){ |
document.frames[id].name = id; |
} |
var form = Ext.getDom(o.form); |
form.target = id; |
form.method = 'POST'; |
form.enctype = form.encoding = 'multipart/form-data'; |
if(url){ |
form.action = url; |
} |
var hiddens, hd; |
if(ps){ |
hiddens = []; |
ps = Ext.urlDecode(ps, false); |
for(var k in ps){ |
if(ps.hasOwnProperty(k)){ |
hd = document.createElement('input'); |
hd.type = 'hidden'; |
hd.name = k; |
hd.value = ps[k]; |
form.appendChild(hd); |
hiddens.push(hd); |
} |
} |
} |
function cb(){ |
var r = { |
responseText : '', |
responseXML : null |
}; |
r.argument = o ? o.argument : null; |
try { |
var doc; |
if(Ext.isIE){ |
doc = frame.contentWindow.document; |
}else { |
doc = (frame.contentDocument || window.frames[id].document); |
} |
if(doc && doc.body){ |
r.responseText = doc.body.innerHTML; |
} |
if(doc && doc.XMLDocument){ |
r.responseXML = doc.XMLDocument; |
}else { |
r.responseXML = doc; |
} |
} |
catch(e) { |
} |
Ext.EventManager.removeListener(frame, 'load', cb, this); |
this.fireEvent("requestcomplete", this, r, o); |
Ext.callback(o.success, o.scope, [r, o]); |
Ext.callback(o.callback, o.scope, [o, true, r]); |
setTimeout(function(){Ext.removeNode(frame);}, 100); |
} |
Ext.EventManager.on(frame, 'load', cb, this); |
form.submit(); |
if(hiddens){ |
for(var i = 0, len = hiddens.length; i < len; i++){ |
Ext.removeNode(hiddens[i]); |
} |
} |
} |
}); |
Ext.Ajax = new Ext.data.Connection({ |
autoAbort : false, |
serializeForm : function(form){ |
return Ext.lib.Ajax.serializeForm(form); |
} |
}); |
Ext.Updater = function(el, forceNew){ |
el = Ext.get(el); |
if(!forceNew && el.updateManager){ |
return el.updateManager; |
} |
this.el = el; |
this.defaultUrl = null; |
this.addEvents( |
"beforeupdate", |
"update", |
"failure" |
); |
var d = Ext.Updater.defaults; |
this.sslBlankUrl = d.sslBlankUrl; |
this.disableCaching = d.disableCaching; |
this.indicatorText = d.indicatorText; |
this.showLoadIndicator = d.showLoadIndicator; |
this.timeout = d.timeout; |
this.loadScripts = d.loadScripts; |
this.transaction = null; |
this.autoRefreshProcId = null; |
this.refreshDelegate = this.refresh.createDelegate(this); |
this.updateDelegate = this.update.createDelegate(this); |
this.formUpdateDelegate = this.formUpdate.createDelegate(this); |
if(!this.renderer){ |
this.renderer = new Ext.Updater.BasicRenderer(); |
} |
Ext.Updater.superclass.constructor.call(this); |
}; |
Ext.extend(Ext.Updater, Ext.util.Observable, { |
getEl : function(){ |
return this.el; |
}, |
update : function(url, params, callback, discardUrl){ |
if(this.fireEvent("beforeupdate", this.el, url, params) !== false){ |
var method = this.method, cfg, callerScope; |
if(typeof url == "object"){ |
cfg = url; |
url = cfg.url; |
params = params || cfg.params; |
callback = callback || cfg.callback; |
discardUrl = discardUrl || cfg.discardUrl; |
callerScope = cfg.scope; |
if(typeof cfg.method != "undefined"){method = cfg.method;}; |
if(typeof cfg.nocache != "undefined"){this.disableCaching = cfg.nocache;}; |
if(typeof cfg.text != "undefined"){this.indicatorText = '<div class="loading-indicator">'+cfg.text+"</div>";}; |
if(typeof cfg.scripts != "undefined"){this.loadScripts = cfg.scripts;}; |
if(typeof cfg.timeout != "undefined"){this.timeout = cfg.timeout;}; |
} |
this.showLoading(); |
if(!discardUrl){ |
this.defaultUrl = url; |
} |
if(typeof url == "function"){ |
url = url.call(this); |
} |
method = method || (params ? "POST" : "GET"); |
if(method == "GET"){ |
url = this.prepareUrl(url); |
} |
var o = Ext.apply(cfg ||{}, { |
url : url, |
params: (typeof params == "function" && callerScope) ? params.createDelegate(callerScope) : params, |
success: this.processSuccess, |
failure: this.processFailure, |
scope: this, |
callback: undefined, |
timeout: (this.timeout*1000), |
argument: { |
"options": cfg, |
"url": url, |
"form": null, |
"callback": callback, |
"scope": callerScope || window, |
"params": params |
} |
}); |
this.transaction = Ext.Ajax.request(o); |
} |
}, |
formUpdate : function(form, url, reset, callback){ |
if(this.fireEvent("beforeupdate", this.el, form, url) !== false){ |
if(typeof url == "function"){ |
url = url.call(this); |
} |
form = Ext.getDom(form) |
this.transaction = Ext.Ajax.request({ |
form: form, |
url:url, |
success: this.processSuccess, |
failure: this.processFailure, |
scope: this, |
timeout: (this.timeout*1000), |
argument: { |
"url": url, |
"form": form, |
"callback": callback, |
"reset": reset |
} |
}); |
this.showLoading.defer(1, this); |
} |
}, |
refresh : function(callback){ |
if(this.defaultUrl == null){ |
return; |
} |
this.update(this.defaultUrl, null, callback, true); |
}, |
startAutoRefresh : function(interval, url, params, callback, refreshNow){ |
if(refreshNow){ |
this.update(url || this.defaultUrl, params, callback, true); |
} |
if(this.autoRefreshProcId){ |
clearInterval(this.autoRefreshProcId); |
} |
this.autoRefreshProcId = setInterval(this.update.createDelegate(this, [url || this.defaultUrl, params, callback, true]), interval*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); |
} |
}, |
prepareUrl : function(url){ |
if(this.disableCaching){ |
var append = "_dc=" + (new Date().getTime()); |
if(url.indexOf("?") !== -1){ |
url += "&" + append; |
}else{ |
url += "?" + append; |
} |
} |
return url; |
}, |
processSuccess : function(response){ |
this.transaction = null; |
if(response.argument.form && response.argument.reset){ |
try{ |
response.argument.form.reset(); |
}catch(e){} |
} |
if(this.loadScripts){ |
this.renderer.render(this.el, response, this, |
this.updateComplete.createDelegate(this, [response])); |
}else{ |
this.renderer.render(this.el, response, this); |
this.updateComplete(response); |
} |
}, |
updateComplete : function(response){ |
this.fireEvent("update", this.el, response); |
if(typeof response.argument.callback == "function"){ |
response.argument.callback.call(response.argument.scope, this.el, true, response, response.argument.options); |
} |
}, |
processFailure : function(response){ |
this.transaction = null; |
this.fireEvent("failure", this.el, response); |
if(typeof response.argument.callback == "function"){ |
response.argument.callback.call(response.argument.scope, this.el, false, response, response.argument.options); |
} |
}, |
setRenderer : function(renderer){ |
this.renderer = renderer; |
}, |
getRenderer : function(){ |
return this.renderer; |
}, |
setDefaultUrl : function(defaultUrl){ |
this.defaultUrl = defaultUrl; |
}, |
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(el, url, params, options){ |
var um = Ext.get(el).getUpdater(); |
Ext.apply(um, options); |
um.update(url, params, options ? options.callback : null); |
}; |
Ext.Updater.update = Ext.Updater.updateElement; |
Ext.Updater.BasicRenderer = function(){}; |
Ext.Updater.BasicRenderer.prototype = { |
render : function(el, response, updateManager, callback){ |
el.update(response.responseText, updateManager.loadScripts, callback); |
} |
}; |
Ext.UpdateManager = Ext.Updater; |
Ext.util.DelayedTask = function(fn, scope, args){ |
var id = null, d, t; |
var call = function(){ |
var now = new Date().getTime(); |
if(now - t >= d){ |
clearInterval(id); |
id = null; |
fn.apply(scope, args || []); |
} |
}; |
this.delay = function(delay, newFn, newScope, newArgs){ |
if(id && delay != d){ |
this.cancel(); |
} |
d = delay; |
t = new Date().getTime(); |
fn = newFn || fn; |
scope = newScope || scope; |
args = newArgs || args; |
if(!id){ |
id = setInterval(call, d); |
} |
}; |
this.cancel = function(){ |
if(id){ |
clearInterval(id); |
id = null; |
} |
}; |
}; |
/branches/v2.24-sarcloir/vendors/extjs-2.0.1/CHANGES.txt |
---|
New file |
0,0 → 1,300 |
//========================================== |
// Ext JS Release Notes |
//========================================== |
// Release Date: February 24, 2008 |
// Current Version: 2.0.1 (rev 1688) |
// Previous Version: 2.0.1 (rev 1589) |
//========================================== |
NOTE: This is primarily a release of the new Ext AIR support, along with other minor bug fixes. Everything under the 'air' folder in SVN is new in this release. |
===== Added ===== |
src/widgets/form/ |
Label |
- New simple form label class for adding labels manually |
===== Removed ===== |
none |
===== Modified ===== |
src/adapter/ |
ext-base.js |
jquery-bridge.js |
prototype-bridge.js |
- Changed instanceOf Array check to Ext.isArray |
src/core |
CompositeElement |
- Changed instanceOf Array check to Ext.isArray |
DomHelper |
- Internal refactoring and doc updates to support efficient creation of document fragments based on an array of specification objects |
Element |
- Changed instanceOf Array check to Ext.isArray |
- Doc updates |
Ext |
- Added isSafari2, isSafari3 and isAir properties |
- Changed the extend function to support supplying a custom constructor when extending a class via the constructor config |
- Added isArray and isDate functions |
- Changed instanceOf Array check to Ext.isArray |
- Changes in destroy to call destroy recursively before removing the listeners and element |
- Fix in removeNode to not remove the body node (e.g., when destroying a Viewport) |
Template |
- Changed instanceOf Array check to Ext.isArray |
src/data/ |
ArrayReader |
- Fix in readRecords to pass second param of full data to convert() function |
DataField |
- Changed instanceOf Date check to Ext.isDate |
DataReader |
- Changed instanceOf Array check to Ext.isArray |
JsonReader |
- Fix in readRecords to pass second param of full data to convert() function |
Record |
- Added isModified function |
- Doc updates |
SortTypes |
- Changed instanceOf Date check to Ext.isDate |
Tree |
- Changed instanceOf Array check to Ext.isArray |
XmlReader |
- Fix in readRecords to pass second param of full data to convert() function |
src/dd/ |
ScrollManager |
- Changed instanceOf Array check to Ext.isArray |
src/locale/ |
Czech (-cs) |
German (-de) |
Hungarian (-hu) |
Portuguese/Brazil (-pt_BR) |
Portuguese/European (-pt) |
Spanish/Latin American (-es) |
Turkish (-tr) |
- Various updates |
Norwegian (-no) |
- Split into 2 files, Bokmål (-no-NB) and Nynorsk (-no-NN) |
src/state/ |
Provider |
- Changed instanceOf Date/Array check to Ext.isDate/isArray |
src/util/ |
CSS |
- Changed instanceOf Array check to Ext.isArray |
Date |
- Internal fixes |
Format |
- Changed instanceOf Date check to Ext.isDate |
JSON |
- Changed instanceOf Date/Array check to Ext.isDate/isArray |
KeyMap |
- Changed instanceOf Array check to Ext.isArray |
MixedCollection |
- Changed instanceOf Array check to Ext.isArray |
Observable |
- Doc updates only |
XTemplate |
- Changed instanceOf Array check to Ext.isArray |
src/widgets/ |
Action |
- Added an execute function to execute the action manually using the default handler |
BoxComponent |
- Doc updates |
Button |
- Added ownerCt property |
- Hid autoEl config since it does not apply |
ColorPalette |
- Changed render logic to use the existing template (this.tpl) if specified |
- Hid autoEl config since it does not apply |
Component |
- Changed instanceOf Array check to Ext.isArray |
- Added autoEl docs |
- Fix to apply the component id to the rendered element if needed when autoEl is used |
- Added findParentBy and findParentByType functions |
Container |
- Changed instanceOf Array check to Ext.isArray |
- Changed doLayout to support an optional shallow argument to support recalculating layout only for the current container, not all subcontainers |
CycleButton |
- Internal refactoring |
- Added forceIcon config |
DataView |
- Changed instanceOf Array check to Ext.isArray |
DatePicker |
- Hid autoEl config since it does not apply |
DomQuery |
- Changed instanceOf Array check to Ext.isArray |
Editor |
- Added logic to set inEditor=true (internal property) on bound fields |
- Internal refactoring |
LoadMask |
- Added docs to show and hide so they will show as public |
- Other doc updates |
MessageBox |
- Fixed issue of window adding a new internal 'show' handler to manage its keymap each time the window is shown (added single:true) |
Panel |
- Added print tool |
- Changed instanceOf Array check to Ext.isArray |
- Change to set ownerCt property on buttons added to the panel |
- Hid autoEl config since it does not apply |
TabPanel |
- Added support for item.tabCls to apply a custom class to tabs |
- Internal Air-specific fixes in autoScrollTabs |
- Added additional @hides for configs that do not apply |
Toolbar |
- Changed instanceOf Array check to Ext.isArray |
- Hid autoEl config since it does not apply |
- Doc updates |
src/widgets/form/ |
BasicForm |
- Added standardSubmit config to support standard (non-Ajax) form submissions |
- Changed instanceOf Array check to Ext.isArray |
Combo |
- Changed logic to restrict the combo height to the viewport based on the optimal available space above or below the combo, also taking scroll position into account |
- Added minHeight config to control minimum height based on new height restriction logic |
DateField |
- Added non-0-padded formats to the default altFormats config |
- Changed instanceOf Date check to Ext.isDate |
Field |
- Fix to adjust width properly when fields are in an editor |
- Added additional @hides for configs that do not apply |
FieldSet |
- Changed render logic to only output the legend element if a title, header or checkbox is specified |
FormPanel |
- Doc updates only |
HtmlEditor |
- Added Air/Safari3 support for font sizing |
- Added additional @hides for configs that do not apply |
Radio |
- Added setValue override to support checking a sibling Radio of the same name whose value is the value specified (if a string value is passed) |
src/widgets/grid/ |
ColumnModel |
- Added support for passing the standard cm config as a 'columns' property on the config object to support additional config properties that will get applied to the column model |
- Added menuDisabled config and isMenuDisabled property function |
CheckboxSelectionModel |
- Added menuDisabled:true to disable the header menu by default |
EditorGrid |
- Change to not enter edit mode on right-click |
- Fixes to pre/postEditValue to encode only if the value is a string type |
GridPanel |
- Added docs to clarify that autoWidth is not supported |
- Changed instanceOf Array check to Ext.isArray |
- Added config hideHeaders (used in GridView) |
- Doc updates |
GridView |
- Added support for GridPanel hideHeaders config |
- Added column resize cursor for Air |
- Internal bug fixes |
GroupingView |
- Change to getGroupId to encode the value when generating the groupd id |
PropertyGrid |
- Changed instanceOf Date check to Ext.isDate |
- Added menuDisabled:true to disable the header menus by default |
RowNumberer |
- Added menuDisabled:true to disable the header menu by default |
RowSelectionModel |
- Added config moveEditorOnEnter to control moving the editor to the next cell on enter |
- Changed selectNext and selectPrevious to return boolean instead of void |
src/widgets/layout/ |
AbsoluteLayout |
- Added AnchorLayout overrides for absolute positioing form elements when specifying position:'absolute' on a FormPanel |
BorderLayout |
- Changed this.collapsedEl so that it now gets an id of the panel's id + '-xcollapsed' |
- Changed this.splitEl so that it now gets an id of the panel's id + '-xsplit' |
FormLayout |
- Added check to adjust anchor width for labels only if the anchored component is a form field |
TableLayout |
- Refactored layout logic to reduce code and fix cell spanning bugs |
src/widgets/menu/ |
Item |
- Menu item will now use itemText if available, or text by default |
Menu |
- Changed instanceOf Array check to Ext.isArray |
- Added check to use an existing keyNav on render if specified |
src/widgets/tips/ |
QuickTip |
- Changed instanceOf Array check to Ext.isArray |
src/widgets/tree/ |
TreeDropZone |
- Changed onNodeDrop to return a status value instead of false after a canceled drop to allow passing custom status |
- Changed instanceOf Array check to Ext.isArray |
TreeEditor |
- Changes to avoid entering auto-edit mode on node double-click |
TreeEventModel |
- Changes to only monitor mouseover and mouseout if trackMouseOver=true |
- Added support for tracking mouseover and mouseout on the tree node icon separately from the rest of the node |
TreePanel |
- Added config useArrows for Vista-style arrow support |
- Doc updates |
TreeSorter |
- Added logic to re-sort automatically on text change |