Roo.form.DayPicker - final tweaks and documentation rebuild
[roojs1] / docs / symbols / src / Roo_BasicDialog.js.html
1 <html><head><title>../roojs1/Roo/BasicDialog.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11  
12 /**
13  * @class Roo.BasicDialog
14  * @extends Roo.util.Observable
15  * Lightweight Dialog Class.  The code below shows the creation of a typical dialog using existing HTML markup:
16  * &lt;pre&gt;&lt;code&gt;
17 var dlg = new Roo.BasicDialog(&quot;my-dlg&quot;, {
18     height: 200,
19     width: 300,
20     minHeight: 100,
21     minWidth: 150,
22     modal: true,
23     proxyDrag: true,
24     shadow: true
25 });
26 dlg.addKeyListener(27, dlg.hide, dlg); // ESC can also close the dialog
27 dlg.addButton('OK', dlg.hide, dlg);    // Could call a save function instead of hiding
28 dlg.addButton('Cancel', dlg.hide, dlg);
29 dlg.show();
30 &lt;/code&gt;&lt;/pre&gt;
31   &lt;b&gt;A Dialog should always be a direct child of the body element.&lt;/b&gt;
32  * @cfg {Boolean/DomHelper} autoCreate True to auto create from scratch, or using a DomHelper Object (defaults to false)
33  * @cfg {String} title Default text to display in the title bar (defaults to null)
34  * @cfg {Number} width Width of the dialog in pixels (can also be set via CSS).  Determined by browser if unspecified.
35  * @cfg {Number} height Height of the dialog in pixels (can also be set via CSS).  Determined by browser if unspecified.
36  * @cfg {Number} x The default left page coordinate of the dialog (defaults to center screen)
37  * @cfg {Number} y The default top page coordinate of the dialog (defaults to center screen)
38  * @cfg {String/Element} animateTarget Id or element from which the dialog should animate while opening
39  * (defaults to null with no animation)
40  * @cfg {Boolean} resizable False to disable manual dialog resizing (defaults to true)
41  * @cfg {String} resizeHandles Which resize handles to display - see the {@link Roo.Resizable} handles config
42  * property for valid values (defaults to 'all')
43  * @cfg {Number} minHeight The minimum allowable height for a resizable dialog (defaults to 80)
44  * @cfg {Number} minWidth The minimum allowable width for a resizable dialog (defaults to 200)
45  * @cfg {Boolean} modal True to show the dialog modally, preventing user interaction with the rest of the page (defaults to false)
46  * @cfg {Boolean} autoScroll True to allow the dialog body contents to overflow and display scrollbars (defaults to false)
47  * @cfg {Boolean} closable False to remove the built-in top-right corner close button (defaults to true)
48  * @cfg {Boolean} collapsible False to remove the built-in top-right corner collapse button (defaults to true)
49  * @cfg {Boolean} constraintoviewport True to keep the dialog constrained within the visible viewport boundaries (defaults to true)
50  * @cfg {Boolean} syncHeightBeforeShow True to cause the dimensions to be recalculated before the dialog is shown (defaults to false)
51  * @cfg {Boolean} draggable False to disable dragging of the dialog within the viewport (defaults to true)
52  * @cfg {Boolean} autoTabs If true, all elements with class 'x-dlg-tab' will get automatically converted to tabs (defaults to false)
53  * @cfg {String} tabTag The tag name of tab elements, used when autoTabs = true (defaults to 'div')
54  * @cfg {Boolean} proxyDrag True to drag a lightweight proxy element rather than the dialog itself, used when
55  * draggable = true (defaults to false)
56  * @cfg {Boolean} fixedcenter True to ensure that anytime the dialog is shown or resized it gets centered (defaults to false)
57  * @cfg {Boolean/String} shadow True or &quot;sides&quot; for the default effect, &quot;frame&quot; for 4-way shadow, and &quot;drop&quot; for bottom-right
58  * shadow (defaults to false)
59  * @cfg {Number} shadowOffset The number of pixels to offset the shadow if displayed (defaults to 5)
60  * @cfg {String} buttonAlign Valid values are &quot;left,&quot; &quot;center&quot; and &quot;right&quot; (defaults to &quot;right&quot;)
61  * @cfg {Number} minButtonWidth Minimum width of all dialog buttons (defaults to 75)
62  * @cfg {Array} buttons Array of buttons
63  * @cfg {Boolean} shim True to create an iframe shim that prevents selects from showing through (defaults to false)
64  * @constructor
65  * Create a new BasicDialog.
66  * @param {String/HTMLElement/Roo.Element} el The container element or DOM node, or its id
67  * @param {Object} config Configuration options
68  */
69 </span><span class="jsdoc-var">Roo.BasicDialog </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
70     </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
71     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.DomHelper</span><span class="jsdoc-syntax">;
72     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">config.autoCreate</span><span class="jsdoc-syntax">){
73         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">config.autoCreate </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;object&quot;</span><span class="jsdoc-syntax">){
74             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">config.autoCreate.id</span><span class="jsdoc-syntax">){
75                 </span><span class="jsdoc-var">config.autoCreate.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">;
76             }
77             </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dh.append</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">,
78                         </span><span class="jsdoc-var">config.autoCreate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
79         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
80             </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dh.append</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">,
81                         {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;div&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'visibility:hidden;'</span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
82         }
83     }
84     </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">;
85     </span><span class="jsdoc-var">el.setDisplayed</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
86     </span><span class="jsdoc-var">el.hide </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hideAction</span><span class="jsdoc-syntax">;
87     </span><span class="jsdoc-var">this.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.id</span><span class="jsdoc-syntax">;
88     </span><span class="jsdoc-var">el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg&quot;</span><span class="jsdoc-syntax">);
89
90     </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
91
92     </span><span class="jsdoc-var">this.proxy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.createProxy</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-proxy&quot;</span><span class="jsdoc-syntax">);
93     </span><span class="jsdoc-var">this.proxy.hide </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hideAction</span><span class="jsdoc-syntax">;
94     </span><span class="jsdoc-var">this.proxy.setOpacity</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">5);
95     </span><span class="jsdoc-var">this.proxy.hide</span><span class="jsdoc-syntax">();
96
97     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.width</span><span class="jsdoc-syntax">){
98         </span><span class="jsdoc-var">el.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.width</span><span class="jsdoc-syntax">);
99     }
100     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.height</span><span class="jsdoc-syntax">){
101         </span><span class="jsdoc-var">el.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.height</span><span class="jsdoc-syntax">);
102     }
103     </span><span class="jsdoc-var">this.size </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.getSize</span><span class="jsdoc-syntax">();
104     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">config.x </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">&quot;undefined&quot; </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">config.y </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">&quot;undefined&quot;</span><span class="jsdoc-syntax">){
105         </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">config.x</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">config.y</span><span class="jsdoc-syntax">];
106     }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
107         </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.getCenterXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
108     }
109     </span><span class="jsdoc-comment">/** The header element @type Roo.Element */
110     </span><span class="jsdoc-var">this.header </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&gt; .x-dlg-hd&quot;</span><span class="jsdoc-syntax">);
111     </span><span class="jsdoc-comment">/** The body element @type Roo.Element */
112     </span><span class="jsdoc-var">this.body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&gt; .x-dlg-bd&quot;</span><span class="jsdoc-syntax">);
113     </span><span class="jsdoc-comment">/** The footer element @type Roo.Element */
114     </span><span class="jsdoc-var">this.footer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&gt; .x-dlg-ft&quot;</span><span class="jsdoc-syntax">);
115
116     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.header</span><span class="jsdoc-syntax">){
117         </span><span class="jsdoc-var">this.header </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;div&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-hd&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&amp;#160;&quot;</span><span class="jsdoc-syntax">}, </span><span class="jsdoc-var">this.body </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.body.dom </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">);
118     }
119     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.body</span><span class="jsdoc-syntax">){
120         </span><span class="jsdoc-var">this.body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;div&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-bd&quot;</span><span class="jsdoc-syntax">});
121     }
122
123     </span><span class="jsdoc-var">this.header.unselectable</span><span class="jsdoc-syntax">();
124     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.title</span><span class="jsdoc-syntax">){
125         </span><span class="jsdoc-var">this.header.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.title</span><span class="jsdoc-syntax">);
126     }
127     </span><span class="jsdoc-comment">// this element allows the dialog to be focused for keyboard event
128     </span><span class="jsdoc-var">this.focusEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;a&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;#&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-focus&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tabIndex</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;-1&quot;</span><span class="jsdoc-syntax">});
129     </span><span class="jsdoc-var">this.focusEl.swallowEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;click&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
130
131     </span><span class="jsdoc-var">this.header.wrap</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-hd-right&quot;</span><span class="jsdoc-syntax">})</span><span class="jsdoc-var">.wrap</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-hd-left&quot;</span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
132
133     </span><span class="jsdoc-comment">// wrap the body and footer for special rendering
134     </span><span class="jsdoc-var">this.bwrap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.body.wrap</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;div&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-dlg-body&quot;</span><span class="jsdoc-syntax">});
135     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.footer</span><span class="jsdoc-syntax">){
136         </span><span class="jsdoc-var">this.bwrap.dom.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.footer.dom</span><span class="jsdoc-syntax">);
137     }
138
139     </span><span class="jsdoc-var">this.bg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.createChild</span><span class="jsdoc-syntax">({
140         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;div&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-bg&quot;</span><span class="jsdoc-syntax">,
141         </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&lt;div class=&quot;x-dlg-bg-left&quot;&gt;&lt;div class=&quot;x-dlg-bg-right&quot;&gt;&lt;div class=&quot;x-dlg-bg-center&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;'
142     </span><span class="jsdoc-syntax">});
143     </span><span class="jsdoc-var">this.centerBg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.bg.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;div.x-dlg-bg-center&quot;</span><span class="jsdoc-syntax">);
144
145
146     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.autoScroll </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.autoTabs</span><span class="jsdoc-syntax">){
147         </span><span class="jsdoc-var">this.body.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;overflow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;auto&quot;</span><span class="jsdoc-syntax">);
148     }
149
150     </span><span class="jsdoc-var">this.toolbox </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-dlg-toolbox&quot;</span><span class="jsdoc-syntax">});
151
152     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.closable </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
153         </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-closable&quot;</span><span class="jsdoc-syntax">);
154         </span><span class="jsdoc-var">this.close </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toolbox.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-close&quot;</span><span class="jsdoc-syntax">});
155         </span><span class="jsdoc-var">this.close.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;click&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.closeClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
156         </span><span class="jsdoc-var">this.close.addClassOnOver</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-close-over&quot;</span><span class="jsdoc-syntax">);
157     }
158     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.collapsible </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
159         </span><span class="jsdoc-var">this.collapseBtn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toolbox.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-collapse&quot;</span><span class="jsdoc-syntax">});
160         </span><span class="jsdoc-var">this.collapseBtn.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;click&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.collapseClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
161         </span><span class="jsdoc-var">this.collapseBtn.addClassOnOver</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-collapse-over&quot;</span><span class="jsdoc-syntax">);
162         </span><span class="jsdoc-var">this.header.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;dblclick&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.collapseClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
163     }
164     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.resizable </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
165         </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-resizable&quot;</span><span class="jsdoc-syntax">);
166         </span><span class="jsdoc-var">this.resizer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Resizable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, {
167             </span><span class="jsdoc-var">minWidth</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.minWidth </span><span class="jsdoc-syntax">|| 80,
168             </span><span class="jsdoc-var">minHeight</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this.minHeight </span><span class="jsdoc-syntax">|| 80,
169             </span><span class="jsdoc-var">handles</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.resizeHandles </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">&quot;all&quot;</span><span class="jsdoc-syntax">,
170             </span><span class="jsdoc-var">pinned</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
171         </span><span class="jsdoc-syntax">});
172         </span><span class="jsdoc-var">this.resizer.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforeresize&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.beforeResize</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
173         </span><span class="jsdoc-var">this.resizer.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;resize&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onResize</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
174     }
175     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.draggable </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
176         </span><span class="jsdoc-var">el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-draggable&quot;</span><span class="jsdoc-syntax">);
177         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.proxyDrag</span><span class="jsdoc-syntax">) {
178             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.dd.DD</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.dom.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;WindowDrag&quot;</span><span class="jsdoc-syntax">);
179         }
180         </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
181             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.dd.DDProxy</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.dom.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;WindowDrag&quot;</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">dragElId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.proxy.id</span><span class="jsdoc-syntax">});
182         }
183         </span><span class="jsdoc-var">dd.setHandleElId</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.header.id</span><span class="jsdoc-syntax">);
184         </span><span class="jsdoc-var">dd.endDrag </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.endMove.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
185         </span><span class="jsdoc-var">dd.startDrag </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.startMove.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
186         </span><span class="jsdoc-var">dd.onDrag </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.onDrag.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
187         </span><span class="jsdoc-var">dd.scroll </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
188         </span><span class="jsdoc-var">this.dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">;
189     }
190     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.modal</span><span class="jsdoc-syntax">){
191         </span><span class="jsdoc-var">this.mask </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dh.append</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;div&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-mask&quot;</span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
192         </span><span class="jsdoc-var">this.mask.enableDisplayMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;block&quot;</span><span class="jsdoc-syntax">);
193         </span><span class="jsdoc-var">this.mask.hide</span><span class="jsdoc-syntax">();
194         </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-modal&quot;</span><span class="jsdoc-syntax">);
195     }
196     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.shadow</span><span class="jsdoc-syntax">){
197         </span><span class="jsdoc-var">this.shadow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Shadow</span><span class="jsdoc-syntax">({
198             </span><span class="jsdoc-var">mode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">this.shadow </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;string&quot; </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.shadow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;sides&quot;</span><span class="jsdoc-syntax">,
199             </span><span class="jsdoc-var">offset </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.shadowOffset
200         </span><span class="jsdoc-syntax">});
201     }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
202         </span><span class="jsdoc-var">this.shadowOffset </span><span class="jsdoc-syntax">= 0;
203     }
204     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.useShims </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.shim </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
205         </span><span class="jsdoc-var">this.shim </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.createShim</span><span class="jsdoc-syntax">();
206         </span><span class="jsdoc-var">this.shim.hide </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hideAction</span><span class="jsdoc-syntax">;
207         </span><span class="jsdoc-var">this.shim.hide</span><span class="jsdoc-syntax">();
208     }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
209         </span><span class="jsdoc-var">this.shim </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
210     }
211     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.autoTabs</span><span class="jsdoc-syntax">){
212         </span><span class="jsdoc-var">this.initTabs</span><span class="jsdoc-syntax">();
213     }
214     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.buttons</span><span class="jsdoc-syntax">) { 
215         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bts</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.buttons</span><span class="jsdoc-syntax">;
216         </span><span class="jsdoc-var">this.buttons </span><span class="jsdoc-syntax">= [];
217         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bts</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">) {
218             </span><span class="jsdoc-var">this.addButton</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">);
219         }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
220     }
221     
222     
223     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
224         </span><span class="jsdoc-comment">/**
225          * @event keydown
226          * Fires when a key is pressed
227          * @param {Roo.BasicDialog} this
228          * @param {Roo.EventObject} e
229          */
230         </span><span class="jsdoc-string">&quot;keydown&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
231         </span><span class="jsdoc-comment">/**
232          * @event move
233          * Fires when this dialog is moved by the user.
234          * @param {Roo.BasicDialog} this
235          * @param {Number} x The new page X
236          * @param {Number} y The new page Y
237          */
238         </span><span class="jsdoc-string">&quot;move&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
239         </span><span class="jsdoc-comment">/**
240          * @event resize
241          * Fires when this dialog is resized by the user.
242          * @param {Roo.BasicDialog} this
243          * @param {Number} width The new width
244          * @param {Number} height The new height
245          */
246         </span><span class="jsdoc-string">&quot;resize&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
247         </span><span class="jsdoc-comment">/**
248          * @event beforehide
249          * Fires before this dialog is hidden.
250          * @param {Roo.BasicDialog} this
251          */
252         </span><span class="jsdoc-string">&quot;beforehide&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
253         </span><span class="jsdoc-comment">/**
254          * @event hide
255          * Fires when this dialog is hidden.
256          * @param {Roo.BasicDialog} this
257          */
258         </span><span class="jsdoc-string">&quot;hide&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
259         </span><span class="jsdoc-comment">/**
260          * @event beforeshow
261          * Fires before this dialog is shown.
262          * @param {Roo.BasicDialog} this
263          */
264         </span><span class="jsdoc-string">&quot;beforeshow&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
265         </span><span class="jsdoc-comment">/**
266          * @event show
267          * Fires when this dialog is shown.
268          * @param {Roo.BasicDialog} this
269          */
270         </span><span class="jsdoc-string">&quot;show&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
271     </span><span class="jsdoc-syntax">});
272     </span><span class="jsdoc-var">el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;keydown&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onKeyDown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
273     </span><span class="jsdoc-var">el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mousedown&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.toFront</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
274     </span><span class="jsdoc-var">Roo.EventManager.onWindowResize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.adjustViewport</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
275     </span><span class="jsdoc-var">this.el.hide</span><span class="jsdoc-syntax">();
276     </span><span class="jsdoc-var">Roo.DialogManager.register</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
277     </span><span class="jsdoc-var">Roo.BasicDialog.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
278 };
279
280 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.BasicDialog</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.util.Observable</span><span class="jsdoc-syntax">, {
281     </span><span class="jsdoc-var">shadowOffset</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isIE </span><span class="jsdoc-syntax">? 6 : 5,
282     </span><span class="jsdoc-var">minHeight</span><span class="jsdoc-syntax">: 80,
283     </span><span class="jsdoc-var">minWidth</span><span class="jsdoc-syntax">: 200,
284     </span><span class="jsdoc-var">minButtonWidth</span><span class="jsdoc-syntax">: 75,
285     </span><span class="jsdoc-var">defaultButton</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
286     </span><span class="jsdoc-var">buttonAlign</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;right&quot;</span><span class="jsdoc-syntax">,
287     </span><span class="jsdoc-var">tabTag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
288     </span><span class="jsdoc-var">firstShow</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
289
290     </span><span class="jsdoc-comment">/**
291      * Sets the dialog title text
292      * @param {String} text The title text to display
293      * @return {Roo.BasicDialog} this
294      */
295     </span><span class="jsdoc-var">setTitle </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">){
296         </span><span class="jsdoc-var">this.header.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">);
297         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
298     },
299
300     </span><span class="jsdoc-comment">// private
301     </span><span class="jsdoc-var">closeClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
302         </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
303     },
304
305     </span><span class="jsdoc-comment">// private
306     </span><span class="jsdoc-var">collapseClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
307         </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.collapsed </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;expand&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;collapse&quot;</span><span class="jsdoc-syntax">]();
308     },
309
310     </span><span class="jsdoc-comment">/**
311      * Collapses the dialog to its minimized state (only the title bar is visible).
312      * Equivalent to the user clicking the collapse dialog button.
313      */
314     </span><span class="jsdoc-var">collapse </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
315         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.collapsed</span><span class="jsdoc-syntax">){
316             </span><span class="jsdoc-var">this.collapsed </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
317             </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-collapsed&quot;</span><span class="jsdoc-syntax">);
318             </span><span class="jsdoc-var">this.restoreHeight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getHeight</span><span class="jsdoc-syntax">();
319             </span><span class="jsdoc-var">this.resizeTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.getWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">this.header.getHeight</span><span class="jsdoc-syntax">());
320         }
321     },
322
323     </span><span class="jsdoc-comment">/**
324      * Expands a collapsed dialog back to its normal state.  Equivalent to the user
325      * clicking the expand dialog button.
326      */
327     </span><span class="jsdoc-var">expand </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
328         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.collapsed</span><span class="jsdoc-syntax">){
329             </span><span class="jsdoc-var">this.collapsed </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
330             </span><span class="jsdoc-var">this.el.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-collapsed&quot;</span><span class="jsdoc-syntax">);
331             </span><span class="jsdoc-var">this.resizeTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.getWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">this.restoreHeight</span><span class="jsdoc-syntax">);
332         }
333     },
334
335     </span><span class="jsdoc-comment">/**
336      * Reinitializes the tabs component, clearing out old tabs and finding new ones.
337      * @return {Roo.TabPanel} The tabs component
338      */
339     </span><span class="jsdoc-var">initTabs </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
340         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tabs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getTabs</span><span class="jsdoc-syntax">();
341         </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tabs.getTab</span><span class="jsdoc-syntax">(0)){
342             </span><span class="jsdoc-var">tabs.removeTab</span><span class="jsdoc-syntax">(0);
343         }
344         </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tabTag</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'.x-dlg-tab'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">){
345             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dom </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.dom</span><span class="jsdoc-syntax">;
346             </span><span class="jsdoc-var">tabs.addTab</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dom</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">dom.title</span><span class="jsdoc-syntax">);
347             </span><span class="jsdoc-var">dom.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
348         });
349         </span><span class="jsdoc-var">tabs.activate</span><span class="jsdoc-syntax">(0);
350         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">tabs</span><span class="jsdoc-syntax">;
351     },
352
353     </span><span class="jsdoc-comment">// private
354     </span><span class="jsdoc-var">beforeResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
355         </span><span class="jsdoc-var">this.resizer.minHeight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minHeight</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.getHeaderFooterHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)+40);
356     },
357
358     </span><span class="jsdoc-comment">// private
359     </span><span class="jsdoc-var">onResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
360         </span><span class="jsdoc-var">this.refreshSize</span><span class="jsdoc-syntax">();
361         </span><span class="jsdoc-var">this.syncBodyHeight</span><span class="jsdoc-syntax">();
362         </span><span class="jsdoc-var">this.adjustAssets</span><span class="jsdoc-syntax">();
363         </span><span class="jsdoc-var">this.focus</span><span class="jsdoc-syntax">();
364         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;resize&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.size.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.size.height</span><span class="jsdoc-syntax">);
365     },
366
367     </span><span class="jsdoc-comment">// private
368     </span><span class="jsdoc-var">onKeyDown </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
369         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()){
370             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;keydown&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
371         }
372     },
373
374     </span><span class="jsdoc-comment">/**
375      * Resizes the dialog.
376      * @param {Number} width
377      * @param {Number} height
378      * @return {Roo.BasicDialog} this
379      */
380     </span><span class="jsdoc-var">resizeTo </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">){
381         </span><span class="jsdoc-var">this.el.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">);
382         </span><span class="jsdoc-var">this.size </span><span class="jsdoc-syntax">= {</span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">};
383         </span><span class="jsdoc-var">this.syncBodyHeight</span><span class="jsdoc-syntax">();
384         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fixedcenter</span><span class="jsdoc-syntax">){
385             </span><span class="jsdoc-var">this.center</span><span class="jsdoc-syntax">();
386         }
387         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()){
388             </span><span class="jsdoc-var">this.constrainXY</span><span class="jsdoc-syntax">();
389             </span><span class="jsdoc-var">this.adjustAssets</span><span class="jsdoc-syntax">();
390         }
391         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;resize&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">);
392         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
393     },
394
395
396     </span><span class="jsdoc-comment">/**
397      * Resizes the dialog to fit the specified content size.
398      * @param {Number} width
399      * @param {Number} height
400      * @return {Roo.BasicDialog} this
401      */
402     </span><span class="jsdoc-var">setContentSize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">){
403         </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.getHeaderFooterHeight</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">this.body.getMargins</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">);
404         </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.body.getMargins</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.bwrap.getMargins</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.centerBg.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">);
405         </span><span class="jsdoc-comment">//if(!this.el.isBorderBox()){
406             </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">+=  </span><span class="jsdoc-var">this.body.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.bwrap.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.body.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.el.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">);
407             </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.body.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.bwrap.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.body.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.bwrap.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.el.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">);
408         </span><span class="jsdoc-comment">//}
409         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tabs</span><span class="jsdoc-syntax">){
410             </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.tabs.stripWrap.getHeight</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">this.tabs.bodyEl.getMargins</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.tabs.bodyEl.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">);
411             </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.tabs.bodyEl.getMargins</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">this.tabs.bodyEl.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">);
412         }
413         </span><span class="jsdoc-var">this.resizeTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">);
414         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
415     },
416
417     </span><span class="jsdoc-comment">/**
418      * Adds a key listener for when this dialog is displayed.  This allows you to hook in a function that will be
419      * executed in response to a particular key being pressed while the dialog is active.
420      * @param {Number/Array/Object} key Either the numeric key code, array of key codes or an object with the following options:
421      *                                  {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}
422      * @param {Function} fn The function to call
423      * @param {Object} scope (optional) The scope of the function
424      * @return {Roo.BasicDialog} this
425      */
426     </span><span class="jsdoc-var">addKeyListener </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">){
427         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">keyCode</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">shift</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ctrl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">alt</span><span class="jsdoc-syntax">;
428         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">key </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;object&quot; </span><span class="jsdoc-syntax">&amp;&amp; !(</span><span class="jsdoc-var">key </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Array</span><span class="jsdoc-syntax">)){
429             </span><span class="jsdoc-var">keyCode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">&quot;key&quot;</span><span class="jsdoc-syntax">];
430             </span><span class="jsdoc-var">shift </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">&quot;shift&quot;</span><span class="jsdoc-syntax">];
431             </span><span class="jsdoc-var">ctrl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">&quot;ctrl&quot;</span><span class="jsdoc-syntax">];
432             </span><span class="jsdoc-var">alt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">&quot;alt&quot;</span><span class="jsdoc-syntax">];
433         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
434             </span><span class="jsdoc-var">keyCode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">;
435         }
436         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">handler </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
437             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((!</span><span class="jsdoc-var">shift </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">) &amp;&amp; (!</span><span class="jsdoc-var">ctrl </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">e.ctrlKey</span><span class="jsdoc-syntax">) &amp;&amp;  (!</span><span class="jsdoc-var">alt </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">e.altKey</span><span class="jsdoc-syntax">)){
438                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getKey</span><span class="jsdoc-syntax">();
439                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">keyCode </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Array</span><span class="jsdoc-syntax">){
440                     </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">keyCode.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
441                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">keyCode</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">){
442                           </span><span class="jsdoc-var">fn.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
443                           </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
444                         }
445                     }
446                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
447                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">keyCode</span><span class="jsdoc-syntax">){
448                         </span><span class="jsdoc-var">fn.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
449                     }
450                 }
451             }
452         };
453         </span><span class="jsdoc-var">this.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;keydown&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">);
454         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
455     },
456
457     </span><span class="jsdoc-comment">/**
458      * Returns the TabPanel component (creates it if it doesn't exist).
459      * Note: If you wish to simply check for the existence of tabs without creating them,
460      * check for a null 'tabs' property.
461      * @return {Roo.TabPanel} The tabs component
462      */
463     </span><span class="jsdoc-var">getTabs </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
464         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.tabs</span><span class="jsdoc-syntax">){
465             </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-auto-tabs&quot;</span><span class="jsdoc-syntax">);
466             </span><span class="jsdoc-var">this.body.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tabPosition </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;bottom&quot; </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;x-tabs-bottom&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-tabs-top&quot;</span><span class="jsdoc-syntax">);
467             </span><span class="jsdoc-var">this.tabs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.TabPanel</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.body.dom</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.tabPosition </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;bottom&quot;</span><span class="jsdoc-syntax">);
468         }
469         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.tabs</span><span class="jsdoc-syntax">;
470     },
471
472     </span><span class="jsdoc-comment">/**
473      * Adds a button to the footer section of the dialog.
474      * @param {String/Object} config A string becomes the button text, an object can either be a Button config
475      * object or a valid Roo.DomHelper element config
476      * @param {Function} handler The function called when the button is clicked
477      * @param {Object} scope (optional) The scope of the handler function (accepts position as a property)
478      * @return {Roo.Button} The new button
479      */
480     </span><span class="jsdoc-var">addButton </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">){
481         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.DomHelper</span><span class="jsdoc-syntax">;
482         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.footer</span><span class="jsdoc-syntax">){
483             </span><span class="jsdoc-var">this.footer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dh.append</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.bwrap</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;div&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-ft&quot;</span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
484         }
485         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.btnContainer</span><span class="jsdoc-syntax">){
486             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.footer.createChild</span><span class="jsdoc-syntax">({
487
488                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;x-dlg-btns x-dlg-btns-&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.buttonAlign</span><span class="jsdoc-syntax">,
489                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'&lt;table cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;x-clear&quot;&gt;&lt;/div&gt;'
490             </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
491             </span><span class="jsdoc-var">this.btnContainer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tb.firstChild.firstChild.firstChild</span><span class="jsdoc-syntax">;
492         }
493         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bconfig </span><span class="jsdoc-syntax">= {
494             </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">,
495             </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">,
496             </span><span class="jsdoc-var">minWidth</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.minButtonWidth</span><span class="jsdoc-syntax">,
497             </span><span class="jsdoc-var">hideParent</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true
498         </span><span class="jsdoc-syntax">};
499         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;string&quot;</span><span class="jsdoc-syntax">){
500             </span><span class="jsdoc-var">bconfig.text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">;
501         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
502             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.tag</span><span class="jsdoc-syntax">){
503                 </span><span class="jsdoc-var">bconfig.dhconfig </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">;
504             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
505                 </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bconfig</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
506             }
507         }
508         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
509         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bconfig.position</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) &amp;&amp; </span><span class="jsdoc-var">bconfig.position </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">this.btnContainer.childNodes.length</span><span class="jsdoc-syntax">-1) {
510             </span><span class="jsdoc-var">bconfig.position </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">bconfig.position</span><span class="jsdoc-syntax">);
511             </span><span class="jsdoc-var">fc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.btnContainer.childNodes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">bconfig.position</span><span class="jsdoc-syntax">];
512         }
513          
514         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">btn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Button</span><span class="jsdoc-syntax">(
515             </span><span class="jsdoc-var">fc </span><span class="jsdoc-syntax">? 
516                 </span><span class="jsdoc-var">this.btnContainer.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;td&quot;</span><span class="jsdoc-syntax">),</span><span class="jsdoc-var">fc</span><span class="jsdoc-syntax">)
517                 : </span><span class="jsdoc-var">this.btnContainer.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;td&quot;</span><span class="jsdoc-syntax">)),
518             </span><span class="jsdoc-comment">//Roo.get(this.btnContainer).createChild( { tag: 'td'},  fc ),
519             </span><span class="jsdoc-var">bconfig
520         </span><span class="jsdoc-syntax">);
521         </span><span class="jsdoc-var">this.syncBodyHeight</span><span class="jsdoc-syntax">();
522         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.buttons</span><span class="jsdoc-syntax">){
523             </span><span class="jsdoc-comment">/**
524              * Array of all the buttons that have been added to this dialog via addButton
525              * @type Array
526              */
527             </span><span class="jsdoc-var">this.buttons </span><span class="jsdoc-syntax">= [];
528         }
529         </span><span class="jsdoc-var">this.buttons.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">btn</span><span class="jsdoc-syntax">);
530         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">btn</span><span class="jsdoc-syntax">;
531     },
532
533     </span><span class="jsdoc-comment">/**
534      * Sets the default button to be focused when the dialog is displayed.
535      * @param {Roo.BasicDialog.Button} btn The button object returned by {@link #addButton}
536      * @return {Roo.BasicDialog} this
537      */
538     </span><span class="jsdoc-var">setDefaultButton </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">btn</span><span class="jsdoc-syntax">){
539         </span><span class="jsdoc-var">this.defaultButton </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">btn</span><span class="jsdoc-syntax">;
540         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
541     },
542
543     </span><span class="jsdoc-comment">// private
544     </span><span class="jsdoc-var">getHeaderFooterHeight </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">safe</span><span class="jsdoc-syntax">){
545         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">height </span><span class="jsdoc-syntax">= 0;
546         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.header</span><span class="jsdoc-syntax">){
547            </span><span class="jsdoc-var">height </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.header.getHeight</span><span class="jsdoc-syntax">();
548         }
549         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.footer</span><span class="jsdoc-syntax">){
550            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.footer.getMargins</span><span class="jsdoc-syntax">();
551             </span><span class="jsdoc-var">height </span><span class="jsdoc-syntax">+= (</span><span class="jsdoc-var">this.footer.getHeight</span><span class="jsdoc-syntax">()+</span><span class="jsdoc-var">fm.top</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">fm.bottom</span><span class="jsdoc-syntax">);
552         }
553         </span><span class="jsdoc-var">height </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.bwrap.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">)+</span><span class="jsdoc-var">this.bwrap.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">);
554         </span><span class="jsdoc-var">height </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.centerBg.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">);
555         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">;
556     },
557
558     </span><span class="jsdoc-comment">// private
559     </span><span class="jsdoc-var">syncBodyHeight </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
560         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.body</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.centerBg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">bw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.bwrap</span><span class="jsdoc-syntax">;
561         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">height </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.size.height </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.getHeaderFooterHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
562         </span><span class="jsdoc-var">bd.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">bd.getMargins</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">));
563         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.header.getHeight</span><span class="jsdoc-syntax">();
564         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.size.height</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">hh</span><span class="jsdoc-syntax">;
565         </span><span class="jsdoc-var">cb.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">);
566         </span><span class="jsdoc-var">bw.setLeftTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cb.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;l&quot;</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">hh</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">cb.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;t&quot;</span><span class="jsdoc-syntax">));
567         </span><span class="jsdoc-var">bw.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">-</span><span class="jsdoc-var">cb.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;tb&quot;</span><span class="jsdoc-syntax">));
568         </span><span class="jsdoc-var">bw.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.getWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)-</span><span class="jsdoc-var">cb.getPadding</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">));
569         </span><span class="jsdoc-var">bd.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bw.getWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">));
570         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tabs</span><span class="jsdoc-syntax">){
571             </span><span class="jsdoc-var">this.tabs.syncHeight</span><span class="jsdoc-syntax">();
572             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
573                 </span><span class="jsdoc-var">this.tabs.el.repaint</span><span class="jsdoc-syntax">();
574             }
575         }
576     },
577
578     </span><span class="jsdoc-comment">/**
579      * Restores the previous state of the dialog if Roo.state is configured.
580      * @return {Roo.BasicDialog} this
581      */
582     </span><span class="jsdoc-var">restoreState </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
583         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">box </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.state.Manager.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.stateId </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">this.el.id </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;-state&quot;</span><span class="jsdoc-syntax">));
584         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">box </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">box.width</span><span class="jsdoc-syntax">){
585             </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">box.x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">box.y</span><span class="jsdoc-syntax">];
586             </span><span class="jsdoc-var">this.resizeTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">box.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">box.height</span><span class="jsdoc-syntax">);
587         }
588         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
589     },
590
591     </span><span class="jsdoc-comment">// private
592     </span><span class="jsdoc-var">beforeShow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
593         </span><span class="jsdoc-var">this.expand</span><span class="jsdoc-syntax">();
594         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fixedcenter</span><span class="jsdoc-syntax">){
595             </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getCenterXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
596         }
597         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.modal</span><span class="jsdoc-syntax">){
598             </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-body-masked&quot;</span><span class="jsdoc-syntax">);
599             </span><span class="jsdoc-var">this.mask.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.Dom.getViewWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">Roo.lib.Dom.getViewHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">));
600             </span><span class="jsdoc-var">this.mask.show</span><span class="jsdoc-syntax">();
601         }
602         </span><span class="jsdoc-var">this.constrainXY</span><span class="jsdoc-syntax">();
603     },
604
605     </span><span class="jsdoc-comment">// private
606     </span><span class="jsdoc-var">animShow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
607         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.animateTarget</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getBox</span><span class="jsdoc-syntax">();
608         </span><span class="jsdoc-var">this.proxy.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b.height</span><span class="jsdoc-syntax">);
609         </span><span class="jsdoc-var">this.proxy.setLocation</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b.x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b.y</span><span class="jsdoc-syntax">);
610         </span><span class="jsdoc-var">this.proxy.show</span><span class="jsdoc-syntax">();
611         </span><span class="jsdoc-var">this.proxy.setBounds</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[1], </span><span class="jsdoc-var">this.size.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.size.height</span><span class="jsdoc-syntax">,
612                     </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">35, </span><span class="jsdoc-var">this.showEl.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">));
613     },
614
615     </span><span class="jsdoc-comment">/**
616      * Shows the dialog.
617      * @param {String/HTMLElement/Roo.Element} animateTarget (optional) Reset the animation target
618      * @return {Roo.BasicDialog} this
619      */
620     </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">animateTarget</span><span class="jsdoc-syntax">){
621         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforeshow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
622             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
623         }
624         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.syncHeightBeforeShow</span><span class="jsdoc-syntax">){
625             </span><span class="jsdoc-var">this.syncBodyHeight</span><span class="jsdoc-syntax">();
626         }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.firstShow</span><span class="jsdoc-syntax">){
627             </span><span class="jsdoc-var">this.firstShow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
628             </span><span class="jsdoc-var">this.syncBodyHeight</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-comment">// sync the height on the first show instead of in the constructor
629         </span><span class="jsdoc-syntax">}
630         </span><span class="jsdoc-var">this.animateTarget </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">animateTarget </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.animateTarget</span><span class="jsdoc-syntax">;
631         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.el.isVisible</span><span class="jsdoc-syntax">()){
632             </span><span class="jsdoc-var">this.beforeShow</span><span class="jsdoc-syntax">();
633             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.animateTarget </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.animateTarget</span><span class="jsdoc-syntax">)){
634                 </span><span class="jsdoc-var">this.animShow</span><span class="jsdoc-syntax">();
635             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
636                 </span><span class="jsdoc-var">this.showEl</span><span class="jsdoc-syntax">();
637             }
638         }
639         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
640     },
641
642     </span><span class="jsdoc-comment">// private
643     </span><span class="jsdoc-var">showEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
644         </span><span class="jsdoc-var">this.proxy.hide</span><span class="jsdoc-syntax">();
645         </span><span class="jsdoc-var">this.el.setXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">);
646         </span><span class="jsdoc-var">this.el.show</span><span class="jsdoc-syntax">();
647         </span><span class="jsdoc-var">this.adjustAssets</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
648         </span><span class="jsdoc-var">this.toFront</span><span class="jsdoc-syntax">();
649         </span><span class="jsdoc-var">this.focus</span><span class="jsdoc-syntax">();
650         </span><span class="jsdoc-comment">// IE peekaboo bug - fix found by Dave Fenwick
651         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
652             </span><span class="jsdoc-var">this.el.repaint</span><span class="jsdoc-syntax">();
653         }
654         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;show&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
655     },
656
657     </span><span class="jsdoc-comment">/**
658      * Focuses the dialog.  If a defaultButton is set, it will receive focus, otherwise the
659      * dialog itself will receive focus.
660      */
661     </span><span class="jsdoc-var">focus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
662         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.defaultButton</span><span class="jsdoc-syntax">){
663             </span><span class="jsdoc-var">this.defaultButton.focus</span><span class="jsdoc-syntax">();
664         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
665             </span><span class="jsdoc-var">this.focusEl.focus</span><span class="jsdoc-syntax">();
666         }
667     },
668
669     </span><span class="jsdoc-comment">// private
670     </span><span class="jsdoc-var">constrainXY </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
671         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.constraintoviewport </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
672             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.viewSize</span><span class="jsdoc-syntax">){
673                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.container</span><span class="jsdoc-syntax">){
674                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.container.getSize</span><span class="jsdoc-syntax">();
675                     </span><span class="jsdoc-var">this.viewSize </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">s.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">s.height</span><span class="jsdoc-syntax">];
676                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
677                     </span><span class="jsdoc-var">this.viewSize </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">Roo.lib.Dom.getViewWidth</span><span class="jsdoc-syntax">(),</span><span class="jsdoc-var">Roo.lib.Dom.getViewHeight</span><span class="jsdoc-syntax">()];
678                 }
679             }
680             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.container</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getScroll</span><span class="jsdoc-syntax">();
681
682             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[1];
683             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.size.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.size.height</span><span class="jsdoc-syntax">;
684             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.viewSize</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">vh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.viewSize</span><span class="jsdoc-syntax">[1];
685             </span><span class="jsdoc-comment">// only move it if it needs it
686             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">moved </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
687             </span><span class="jsdoc-comment">// first validate right/bottom
688             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">vw</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">s.left</span><span class="jsdoc-syntax">){
689                 </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">vw </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">;
690                 </span><span class="jsdoc-var">moved </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
691             }
692             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">vh</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">s.top</span><span class="jsdoc-syntax">){
693                 </span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">vh </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">;
694                 </span><span class="jsdoc-var">moved </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
695             }
696             </span><span class="jsdoc-comment">// then make sure top/left isn't negative
697             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">s.left</span><span class="jsdoc-syntax">){
698                 </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.left</span><span class="jsdoc-syntax">;
699                 </span><span class="jsdoc-var">moved </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
700             }
701             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">s.top</span><span class="jsdoc-syntax">){
702                 </span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.top</span><span class="jsdoc-syntax">;
703                 </span><span class="jsdoc-var">moved </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
704             }
705             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">moved</span><span class="jsdoc-syntax">){
706                 </span><span class="jsdoc-comment">// cache xy
707                 </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">];
708                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()){
709                     </span><span class="jsdoc-var">this.el.setLocation</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">);
710                     </span><span class="jsdoc-var">this.adjustAssets</span><span class="jsdoc-syntax">();
711                 }
712             }
713         }
714     },
715
716     </span><span class="jsdoc-comment">// private
717     </span><span class="jsdoc-var">onDrag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
718         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.proxyDrag</span><span class="jsdoc-syntax">){
719             </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getXY</span><span class="jsdoc-syntax">();
720             </span><span class="jsdoc-var">this.adjustAssets</span><span class="jsdoc-syntax">();
721         }
722     },
723
724     </span><span class="jsdoc-comment">// private
725     </span><span class="jsdoc-var">adjustAssets </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doShow</span><span class="jsdoc-syntax">){
726         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[1];
727         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.size.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.size.height</span><span class="jsdoc-syntax">;
728         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doShow </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
729             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.shadow</span><span class="jsdoc-syntax">){
730                 </span><span class="jsdoc-var">this.shadow.show</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">);
731             }
732             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.shim</span><span class="jsdoc-syntax">){
733                 </span><span class="jsdoc-var">this.shim.show</span><span class="jsdoc-syntax">();
734             }
735         }
736         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.shadow </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.shadow.isVisible</span><span class="jsdoc-syntax">()){
737             </span><span class="jsdoc-var">this.shadow.show</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">);
738         }
739         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.shim </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.shim.isVisible</span><span class="jsdoc-syntax">()){
740             </span><span class="jsdoc-var">this.shim.setBounds</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">);
741         }
742     },
743
744     </span><span class="jsdoc-comment">// private
745     </span><span class="jsdoc-var">adjustViewport </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">){
746         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">){
747             </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Dom.getViewWidth</span><span class="jsdoc-syntax">();
748             </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Dom.getViewHeight</span><span class="jsdoc-syntax">();
749         }
750         </span><span class="jsdoc-comment">// cache the size
751         </span><span class="jsdoc-var">this.viewSize </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">];
752         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.modal </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.mask.isVisible</span><span class="jsdoc-syntax">()){
753             </span><span class="jsdoc-var">this.mask.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// first make sure the mask isn't causing overflow
754             </span><span class="jsdoc-var">this.mask.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.Dom.getViewWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">Roo.lib.Dom.getViewHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">));
755         }
756         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()){
757             </span><span class="jsdoc-var">this.constrainXY</span><span class="jsdoc-syntax">();
758         }
759     },
760
761     </span><span class="jsdoc-comment">/**
762      * Destroys this dialog and all its supporting elements (including any tabs, shim,
763      * shadow, proxy, mask, etc.)  Also removes all event listeners.
764      * @param {Boolean} removeEl (optional) true to remove the element from the DOM
765      */
766     </span><span class="jsdoc-var">destroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">removeEl</span><span class="jsdoc-syntax">){
767         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()){
768             </span><span class="jsdoc-var">this.animateTarget </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
769             </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
770         }
771         </span><span class="jsdoc-var">Roo.EventManager.removeResizeListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.adjustViewport</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
772         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tabs</span><span class="jsdoc-syntax">){
773             </span><span class="jsdoc-var">this.tabs.destroy</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">removeEl</span><span class="jsdoc-syntax">);
774         }
775         </span><span class="jsdoc-var">Roo.destroy</span><span class="jsdoc-syntax">(
776              </span><span class="jsdoc-var">this.shim</span><span class="jsdoc-syntax">,
777              </span><span class="jsdoc-var">this.proxy</span><span class="jsdoc-syntax">,
778              </span><span class="jsdoc-var">this.resizer</span><span class="jsdoc-syntax">,
779              </span><span class="jsdoc-var">this.close</span><span class="jsdoc-syntax">,
780              </span><span class="jsdoc-var">this.mask
781         </span><span class="jsdoc-syntax">);
782         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dd</span><span class="jsdoc-syntax">){
783             </span><span class="jsdoc-var">this.dd.unreg</span><span class="jsdoc-syntax">();
784         }
785         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.buttons</span><span class="jsdoc-syntax">){
786            </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.buttons.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
787                </span><span class="jsdoc-var">this.buttons</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.destroy</span><span class="jsdoc-syntax">();
788            }
789         }
790         </span><span class="jsdoc-var">this.el.removeAllListeners</span><span class="jsdoc-syntax">();
791         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">removeEl </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
792             </span><span class="jsdoc-var">this.el.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
793             </span><span class="jsdoc-var">this.el.remove</span><span class="jsdoc-syntax">();
794         }
795         </span><span class="jsdoc-var">Roo.DialogManager.unregister</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
796     },
797
798     </span><span class="jsdoc-comment">// private
799     </span><span class="jsdoc-var">startMove </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
800         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.proxyDrag</span><span class="jsdoc-syntax">){
801             </span><span class="jsdoc-var">this.proxy.show</span><span class="jsdoc-syntax">();
802         }
803         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.constraintoviewport </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
804             </span><span class="jsdoc-var">this.dd.constrainTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">right</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.shadowOffset</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">bottom</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.shadowOffset</span><span class="jsdoc-syntax">});
805         }
806     },
807
808     </span><span class="jsdoc-comment">// private
809     </span><span class="jsdoc-var">endMove </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
810         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.proxyDrag</span><span class="jsdoc-syntax">){
811             </span><span class="jsdoc-var">Roo.dd.DD.prototype.endDrag.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
812         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
813             </span><span class="jsdoc-var">Roo.dd.DDProxy.prototype.endDrag.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
814             </span><span class="jsdoc-var">this.proxy.hide</span><span class="jsdoc-syntax">();
815         }
816         </span><span class="jsdoc-var">this.refreshSize</span><span class="jsdoc-syntax">();
817         </span><span class="jsdoc-var">this.adjustAssets</span><span class="jsdoc-syntax">();
818         </span><span class="jsdoc-var">this.focus</span><span class="jsdoc-syntax">();
819         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;move&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[1]);
820     },
821
822     </span><span class="jsdoc-comment">/**
823      * Brings this dialog to the front of any other visible dialogs
824      * @return {Roo.BasicDialog} this
825      */
826     </span><span class="jsdoc-var">toFront </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
827         </span><span class="jsdoc-var">Roo.DialogManager.bringToFront</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
828         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
829     },
830
831     </span><span class="jsdoc-comment">/**
832      * Sends this dialog to the back (under) of any other visible dialogs
833      * @return {Roo.BasicDialog} this
834      */
835     </span><span class="jsdoc-var">toBack </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
836         </span><span class="jsdoc-var">Roo.DialogManager.sendToBack</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
837         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
838     },
839
840     </span><span class="jsdoc-comment">/**
841      * Centers this dialog in the viewport
842      * @return {Roo.BasicDialog} this
843      */
844     </span><span class="jsdoc-var">center </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
845         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getCenterXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
846         </span><span class="jsdoc-var">this.moveTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">[1]);
847         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
848     },
849
850     </span><span class="jsdoc-comment">/**
851      * Moves the dialog's top-left corner to the specified point
852      * @param {Number} x
853      * @param {Number} y
854      * @return {Roo.BasicDialog} this
855      */
856     </span><span class="jsdoc-var">moveTo </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">){
857         </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">];
858         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()){
859             </span><span class="jsdoc-var">this.el.setXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">);
860             </span><span class="jsdoc-var">this.adjustAssets</span><span class="jsdoc-syntax">();
861         }
862         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
863     },
864
865     </span><span class="jsdoc-comment">/**
866      * Aligns the dialog to the specified element
867      * @param {String/HTMLElement/Roo.Element} element The element to align to.
868      * @param {String} position The position to align to (see {@link Roo.Element#alignTo} for more details).
869      * @param {Array} offsets (optional) Offset the positioning by [x, y]
870      * @return {Roo.BasicDialog} this
871      */
872     </span><span class="jsdoc-var">alignTo </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">offsets</span><span class="jsdoc-syntax">){
873         </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getAlignToXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">element</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">offsets</span><span class="jsdoc-syntax">);
874         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()){
875             </span><span class="jsdoc-var">this.el.setXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">);
876             </span><span class="jsdoc-var">this.adjustAssets</span><span class="jsdoc-syntax">();
877         }
878         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
879     },
880
881     </span><span class="jsdoc-comment">/**
882      * Anchors an element to another element and realigns it when the window is resized.
883      * @param {String/HTMLElement/Roo.Element} element The element to align to.
884      * @param {String} position The position to align to (see {@link Roo.Element#alignTo} for more details)
885      * @param {Array} offsets (optional) Offset the positioning by [x, y]
886      * @param {Boolean/Number} monitorScroll (optional) true to monitor body scroll and reposition. If this parameter
887      * is a number, it is used as the buffer delay (defaults to 50ms).
888      * @return {Roo.BasicDialog} this
889      */
890     </span><span class="jsdoc-var">anchorTo </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">alignment</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">offsets</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">monitorScroll</span><span class="jsdoc-syntax">){
891         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">action </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
892             </span><span class="jsdoc-var">this.alignTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">alignment</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">offsets</span><span class="jsdoc-syntax">);
893         };
894         </span><span class="jsdoc-var">Roo.EventManager.onWindowResize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
895         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">monitorScroll</span><span class="jsdoc-syntax">;
896         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tm </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">){
897             </span><span class="jsdoc-var">Roo.EventManager.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'scroll'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
898                 {</span><span class="jsdoc-var">buffer</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">tm </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'number' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">monitorScroll </span><span class="jsdoc-syntax">: 50});
899         }
900         </span><span class="jsdoc-var">action.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
901         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
902     },
903
904     </span><span class="jsdoc-comment">/**
905      * Returns true if the dialog is visible
906      * @return {Boolean}
907      */
908     </span><span class="jsdoc-var">isVisible </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
909         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el.isVisible</span><span class="jsdoc-syntax">();
910     },
911
912     </span><span class="jsdoc-comment">// private
913     </span><span class="jsdoc-var">animHide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">){
914         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.animateTarget</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getBox</span><span class="jsdoc-syntax">();
915         </span><span class="jsdoc-var">this.proxy.show</span><span class="jsdoc-syntax">();
916         </span><span class="jsdoc-var">this.proxy.setBounds</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[0], </span><span class="jsdoc-var">this.xy</span><span class="jsdoc-syntax">[1], </span><span class="jsdoc-var">this.size.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.size.height</span><span class="jsdoc-syntax">);
917         </span><span class="jsdoc-var">this.el.hide</span><span class="jsdoc-syntax">();
918         </span><span class="jsdoc-var">this.proxy.setBounds</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b.x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b.y</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b.height</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">35,
919                     </span><span class="jsdoc-var">this.hideEl.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">]));
920     },
921
922     </span><span class="jsdoc-comment">/**
923      * Hides the dialog.
924      * @param {Function} callback (optional) Function to call when the dialog is hidden
925      * @return {Roo.BasicDialog} this
926      */
927     </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">){
928         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforehide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
929             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
930         }
931         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.shadow</span><span class="jsdoc-syntax">){
932             </span><span class="jsdoc-var">this.shadow.hide</span><span class="jsdoc-syntax">();
933         }
934         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.shim</span><span class="jsdoc-syntax">) {
935           </span><span class="jsdoc-var">this.shim.hide</span><span class="jsdoc-syntax">();
936         }
937         </span><span class="jsdoc-comment">// sometimes animateTarget seems to get set.. causing problems...
938         // this just double checks..
939         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.animateTarget </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.animateTarget</span><span class="jsdoc-syntax">)) {
940            </span><span class="jsdoc-var">this.animHide</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">);
941         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
942             </span><span class="jsdoc-var">this.el.hide</span><span class="jsdoc-syntax">();
943             </span><span class="jsdoc-var">this.hideEl</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">);
944         }
945         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
946     },
947
948     </span><span class="jsdoc-comment">// private
949     </span><span class="jsdoc-var">hideEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">){
950         </span><span class="jsdoc-var">this.proxy.hide</span><span class="jsdoc-syntax">();
951         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.modal</span><span class="jsdoc-syntax">){
952             </span><span class="jsdoc-var">this.mask.hide</span><span class="jsdoc-syntax">();
953             </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-body-masked&quot;</span><span class="jsdoc-syntax">);
954         }
955         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
956         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;function&quot;</span><span class="jsdoc-syntax">){
957             </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">();
958         }
959     },
960
961     </span><span class="jsdoc-comment">// private
962     </span><span class="jsdoc-var">hideAction </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
963         </span><span class="jsdoc-var">this.setLeft</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;-10000px&quot;</span><span class="jsdoc-syntax">);
964         </span><span class="jsdoc-var">this.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;-10000px&quot;</span><span class="jsdoc-syntax">);
965         </span><span class="jsdoc-var">this.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;visibility&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;hidden&quot;</span><span class="jsdoc-syntax">);
966     },
967
968     </span><span class="jsdoc-comment">// private
969     </span><span class="jsdoc-var">refreshSize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
970         </span><span class="jsdoc-var">this.size </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getSize</span><span class="jsdoc-syntax">();
971         </span><span class="jsdoc-var">this.xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getXY</span><span class="jsdoc-syntax">();
972         </span><span class="jsdoc-var">Roo.state.Manager.set</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.stateId </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.el.id </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;-state&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.el.getBox</span><span class="jsdoc-syntax">());
973     },
974
975     </span><span class="jsdoc-comment">// private
976     // z-index is managed by the DialogManager and may be overwritten at any time
977     </span><span class="jsdoc-var">setZIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
978         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.modal</span><span class="jsdoc-syntax">){
979             </span><span class="jsdoc-var">this.mask.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;z-index&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
980         }
981         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.shim</span><span class="jsdoc-syntax">){
982             </span><span class="jsdoc-var">this.shim.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;z-index&quot;</span><span class="jsdoc-syntax">, ++</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
983         }
984         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.shadow</span><span class="jsdoc-syntax">){
985             </span><span class="jsdoc-var">this.shadow.setZIndex</span><span class="jsdoc-syntax">(++</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
986         }
987         </span><span class="jsdoc-var">this.el.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;z-index&quot;</span><span class="jsdoc-syntax">, ++</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
988         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.proxy</span><span class="jsdoc-syntax">){
989             </span><span class="jsdoc-var">this.proxy.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;z-index&quot;</span><span class="jsdoc-syntax">, ++</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
990         }
991         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.resizer</span><span class="jsdoc-syntax">){
992             </span><span class="jsdoc-var">this.resizer.proxy.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;z-index&quot;</span><span class="jsdoc-syntax">, ++</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
993         }
994
995         </span><span class="jsdoc-var">this.lastZIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">;
996     },
997
998     </span><span class="jsdoc-comment">/**
999      * Returns the element for this dialog
1000      * @return {Roo.Element} The underlying dialog Element
1001      */
1002     </span><span class="jsdoc-var">getEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1003         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">;
1004     }
1005 });
1006
1007 </span><span class="jsdoc-comment">/**
1008  * @class Roo.DialogManager
1009  * Provides global access to BasicDialogs that have been created and
1010  * support for z-indexing (layering) multiple open dialogs.
1011  */
1012 </span><span class="jsdoc-var">Roo.DialogManager </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1013     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">list </span><span class="jsdoc-syntax">= {};
1014     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">accessList </span><span class="jsdoc-syntax">= [];
1015     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">front </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
1016
1017     </span><span class="jsdoc-comment">// private
1018     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sortDialogs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d1</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">d2</span><span class="jsdoc-syntax">){
1019         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">d1._lastAccess </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">d1._lastAccess </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">d2._lastAccess</span><span class="jsdoc-syntax">) ? -1 : 1;
1020     };
1021
1022     </span><span class="jsdoc-comment">// private
1023     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">orderDialogs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1024         </span><span class="jsdoc-var">accessList.sort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sortDialogs</span><span class="jsdoc-syntax">);
1025         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">seed </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.DialogManager.zseed</span><span class="jsdoc-syntax">;
1026         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">accessList.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
1027             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dlg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">accessList</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
1028             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">){
1029                 </span><span class="jsdoc-var">dlg.setZIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">seed </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">*10));
1030             }
1031         }
1032     };
1033
1034     </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
1035         </span><span class="jsdoc-comment">/**
1036          * The starting z-index for BasicDialogs (defaults to 9000)
1037          * @type Number The z-index value
1038          */
1039         </span><span class="jsdoc-var">zseed </span><span class="jsdoc-syntax">: 9000,
1040
1041         </span><span class="jsdoc-comment">// private
1042         </span><span class="jsdoc-var">register </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">){
1043             </span><span class="jsdoc-var">list</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dlg.id</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">;
1044             </span><span class="jsdoc-var">accessList.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">);
1045         },
1046
1047         </span><span class="jsdoc-comment">// private
1048         </span><span class="jsdoc-var">unregister </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">){
1049             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">list</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dlg.id</span><span class="jsdoc-syntax">];
1050             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0;
1051             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">=0;
1052             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">accessList.indexOf</span><span class="jsdoc-syntax">){
1053                 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(  </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">accessList.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
1054                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">accessList</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">){
1055                         </span><span class="jsdoc-var">accessList.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, 1);
1056                         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1057                     }
1058                 }
1059             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
1060                  </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">accessList.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">);
1061                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">!= -1){
1062                     </span><span class="jsdoc-var">accessList.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, 1);
1063                 }
1064             }
1065         },
1066
1067         </span><span class="jsdoc-comment">/**
1068          * Gets a registered dialog by id
1069          * @param {String/Object} id The id of the dialog or a dialog
1070          * @return {Roo.BasicDialog} this
1071          */
1072         </span><span class="jsdoc-var">get </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">){
1073             </span><span class="jsdoc-keyword">return typeof </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;object&quot; </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">list</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">];
1074         },
1075
1076         </span><span class="jsdoc-comment">/**
1077          * Brings the specified dialog to the front
1078          * @param {String/Object} dlg The id of the dialog or a dialog
1079          * @return {Roo.BasicDialog} this
1080          */
1081         </span><span class="jsdoc-var">bringToFront </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">){
1082             </span><span class="jsdoc-var">dlg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">);
1083             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">front</span><span class="jsdoc-syntax">){
1084                 </span><span class="jsdoc-var">front </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">;
1085                 </span><span class="jsdoc-var">dlg._lastAccess </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">();
1086                 </span><span class="jsdoc-var">orderDialogs</span><span class="jsdoc-syntax">();
1087             }
1088             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">;
1089         },
1090
1091         </span><span class="jsdoc-comment">/**
1092          * Sends the specified dialog to the back
1093          * @param {String/Object} dlg The id of the dialog or a dialog
1094          * @return {Roo.BasicDialog} this
1095          */
1096         </span><span class="jsdoc-var">sendToBack </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">){
1097             </span><span class="jsdoc-var">dlg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">);
1098             </span><span class="jsdoc-var">dlg._lastAccess </span><span class="jsdoc-syntax">= -(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">());
1099             </span><span class="jsdoc-var">orderDialogs</span><span class="jsdoc-syntax">();
1100             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">dlg</span><span class="jsdoc-syntax">;
1101         },
1102
1103         </span><span class="jsdoc-comment">/**
1104          * Hides all dialogs
1105          */
1106         </span><span class="jsdoc-var">hideAll </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1107             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">id </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">list</span><span class="jsdoc-syntax">){
1108                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">list</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">] &amp;&amp; </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">list</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">] != </span><span class="jsdoc-string">&quot;function&quot; </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">list</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.isVisible</span><span class="jsdoc-syntax">()){
1109                     </span><span class="jsdoc-var">list</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.hide</span><span class="jsdoc-syntax">();
1110                 }
1111             }
1112         }
1113     };
1114 }();
1115
1116 </span><span class="jsdoc-comment">/**
1117  * @class Roo.LayoutDialog
1118  * @extends Roo.BasicDialog
1119  * Dialog which provides adjustments for working with a layout in a Dialog.
1120  * Add your necessary layout config options to the dialog's config.&lt;br&gt;
1121  * Example usage (including a nested layout):
1122  * &lt;pre&gt;&lt;code&gt;
1123 if(!dialog){
1124     dialog = new Roo.LayoutDialog(&quot;download-dlg&quot;, {
1125         modal: true,
1126         width:600,
1127         height:450,
1128         shadow:true,
1129         minWidth:500,
1130         minHeight:350,
1131         autoTabs:true,
1132         proxyDrag:true,
1133         // layout config merges with the dialog config
1134         center:{
1135             tabPosition: &quot;top&quot;,
1136             alwaysShowTabs: true
1137         }
1138     });
1139     dialog.addKeyListener(27, dialog.hide, dialog);
1140     dialog.setDefaultButton(dialog.addButton(&quot;Close&quot;, dialog.hide, dialog));
1141     dialog.addButton(&quot;Build It!&quot;, this.getDownload, this);
1142
1143     // we can even add nested layouts
1144     var innerLayout = new Roo.BorderLayout(&quot;dl-inner&quot;, {
1145         east: {
1146             initialSize: 200,
1147             autoScroll:true,
1148             split:true
1149         },
1150         center: {
1151             autoScroll:true
1152         }
1153     });
1154     innerLayout.beginUpdate();
1155     innerLayout.add(&quot;east&quot;, new Roo.ContentPanel(&quot;dl-details&quot;));
1156     innerLayout.add(&quot;center&quot;, new Roo.ContentPanel(&quot;selection-panel&quot;));
1157     innerLayout.endUpdate(true);
1158
1159     var layout = dialog.getLayout();
1160     layout.beginUpdate();
1161     layout.add(&quot;center&quot;, new Roo.ContentPanel(&quot;standard-panel&quot;,
1162                         {title: &quot;Download the Source&quot;, fitToFrame:true}));
1163     layout.add(&quot;center&quot;, new Roo.NestedLayoutPanel(innerLayout,
1164                {title: &quot;Build your own roo.js&quot;}));
1165     layout.getRegion(&quot;center&quot;).showPanel(sp);
1166     layout.endUpdate();
1167 }
1168 &lt;/code&gt;&lt;/pre&gt;
1169     * @constructor
1170     * @param {String/HTMLElement/Roo.Element} el The id of or container element, or config
1171     * @param {Object} config configuration options
1172   */
1173 </span><span class="jsdoc-var">Roo.LayoutDialog </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">){
1174     
1175     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">=  </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">;
1176     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
1177         </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
1178         </span><span class="jsdoc-comment">// not sure why we use documentElement here.. - it should always be body.
1179         // IE7 borks horribly if we use documentElement.
1180         // webkit also does not like documentElement - it creates a body element...
1181         </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">document.body </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">document.documentElement </span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.createChild</span><span class="jsdoc-syntax">();
1182         </span><span class="jsdoc-comment">//config.autoCreate = true;
1183     </span><span class="jsdoc-syntax">}
1184     
1185     
1186     </span><span class="jsdoc-var">config.autoTabs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
1187     </span><span class="jsdoc-var">Roo.LayoutDialog.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
1188     </span><span class="jsdoc-var">this.body.setStyle</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">overflow</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;hidden&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">&quot;relative&quot;</span><span class="jsdoc-syntax">});
1189     </span><span class="jsdoc-var">this.layout </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.BorderLayout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.body.dom</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
1190     </span><span class="jsdoc-var">this.layout.monitorWindowResize </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
1191     </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-dlg-auto-layout&quot;</span><span class="jsdoc-syntax">);
1192     </span><span class="jsdoc-comment">// fix case when center region overwrites center function
1193     </span><span class="jsdoc-var">this.center </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.BasicDialog.prototype.center</span><span class="jsdoc-syntax">;
1194     </span><span class="jsdoc-var">this.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;show&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.layout.layout</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
1195     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.items</span><span class="jsdoc-syntax">) {
1196         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">xitems </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config.items</span><span class="jsdoc-syntax">;
1197         </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">config.items</span><span class="jsdoc-syntax">;
1198         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">xitems</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.addxtype</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1199     }
1200     
1201     
1202 };
1203 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.LayoutDialog</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.BasicDialog</span><span class="jsdoc-syntax">, {
1204     </span><span class="jsdoc-comment">/**
1205      * Ends update of the layout &lt;strike&gt;and resets display to none&lt;/strike&gt;. Use standard beginUpdate/endUpdate on the layout.
1206      * @deprecated
1207      */
1208     </span><span class="jsdoc-var">endUpdate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1209         </span><span class="jsdoc-var">this.layout.endUpdate</span><span class="jsdoc-syntax">();
1210     },
1211
1212     </span><span class="jsdoc-comment">/**
1213      * Begins an update of the layout &lt;strike&gt;and sets display to block and visibility to hidden&lt;/strike&gt;. Use standard beginUpdate/endUpdate on the layout.
1214      *  @deprecated
1215      */
1216     </span><span class="jsdoc-var">beginUpdate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1217         </span><span class="jsdoc-var">this.layout.beginUpdate</span><span class="jsdoc-syntax">();
1218     },
1219
1220     </span><span class="jsdoc-comment">/**
1221      * Get the BorderLayout for this dialog
1222      * @return {Roo.BorderLayout}
1223      */
1224     </span><span class="jsdoc-var">getLayout </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1225         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">;
1226     },
1227
1228     </span><span class="jsdoc-var">showEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1229         </span><span class="jsdoc-var">Roo.LayoutDialog.superclass.showEl.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
1230         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE7</span><span class="jsdoc-syntax">){
1231             </span><span class="jsdoc-var">this.layout.layout</span><span class="jsdoc-syntax">();
1232         }
1233     },
1234
1235     </span><span class="jsdoc-comment">// private
1236     // Use the syncHeightBeforeShow config option to control this automatically
1237     </span><span class="jsdoc-var">syncBodyHeight </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
1238         </span><span class="jsdoc-var">Roo.LayoutDialog.superclass.syncBodyHeight.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
1239         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.layout</span><span class="jsdoc-syntax">){</span><span class="jsdoc-var">this.layout.layout</span><span class="jsdoc-syntax">();}
1240     },
1241     
1242       </span><span class="jsdoc-comment">/**
1243      * Add an xtype element (actually adds to the layout.)
1244      * @return {Object} xdata xtype object data.
1245      */
1246     
1247     </span><span class="jsdoc-var">addxtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">) {
1248         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.layout.addxtype</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">);
1249     }
1250 });</span></code></body></html>