Fix #6201 - Category select
authorAlan Knowles <alan@roojs.com>
Fri, 6 Mar 2020 05:59:08 +0000 (13:59 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 6 Mar 2020 05:59:08 +0000 (13:59 +0800)
328 files changed:
Roo/Markdown.js
Roo/Template.js
Roo/data/ArrayReader.js
Roo/data/DataReader.js
Roo/data/JsonReader.js
Roo/data/SimpleStore.js
Roo/data/Store.js
Roo/data/XmlReader.js
Roo/form/ComboBox.js
Roo/form/ComboNested.js [new file with mode: 0644]
Roo/util/Observable.js
buildSDK/dependancy_ui.txt
css/combo.css
css/roojs.css
docs/json/roodata.json
docs/src/Array.js.html
docs/src/Date.js.html
docs/src/Function.js.html
docs/src/Number.js.html
docs/src/Roo.js.html
docs/src/Roo_Ajax.js.html
docs/src/Roo_BasicDialog.js.html
docs/src/Roo_BasicLayoutRegion.js.html
docs/src/Roo_BorderLayout.js.html
docs/src/Roo_BoxComponent.js.html
docs/src/Roo_Button.js.html
docs/src/Roo_CalendarPanel.js.html
docs/src/Roo_CenterLayoutRegion.js.html
docs/src/Roo_ColorPalette.js.html
docs/src/Roo_Component.js.html
docs/src/Roo_ComponentMgr.js.html
docs/src/Roo_CompositeElement.js.html
docs/src/Roo_CompositeElementLite.js.html
docs/src/Roo_ContentPanel.js.html
docs/src/Roo_DDView.js.html
docs/src/Roo_DatePicker.js.html
docs/src/Roo_Document.js.html
docs/src/Roo_DomHelper.js.html
docs/src/Roo_DomQuery.js.html
docs/src/Roo_DomTemplate.js.html
docs/src/Roo_Editor.js.html
docs/src/Roo_Element.js.html
docs/src/Roo_EventManager.js.html
docs/src/Roo_Fx.js.html
docs/src/Roo_HtmlEditorCore.js.html
docs/src/Roo_JsonView.js.html
docs/src/Roo_KeyMap.js.html
docs/src/Roo_KeyNav.js.html
docs/src/Roo_Layer.js.html
docs/src/Roo_LayoutManager.js.html
docs/src/Roo_LayoutRegion.js.html
docs/src/Roo_LayoutStateManager.js.html
docs/src/Roo_LoadMask.js.html
docs/src/Roo_Markdown.js.html
docs/src/Roo_MasterTemplate.js.html
docs/src/Roo_MessageBox.js.html
docs/src/Roo_PagingToolbar.js.html
docs/src/Roo_QuickTips.js.html
docs/src/Roo_ReaderLayout.js.html
docs/src/Roo_Resizable.js.html
docs/src/Roo_Shadow.js.html
docs/src/Roo_SplitBar.js.html
docs/src/Roo_SplitButton.js.html
docs/src/Roo_SplitLayoutRegion.js.html
docs/src/Roo_TabPanel.js.html
docs/src/Roo_Template.js.html
docs/src/Roo_Toolbar.js.html
docs/src/Roo_UpdateManager.js.html
docs/src/Roo_View.js.html
docs/src/Roo_XComponent.js.html
docs/src/Roo_XTemplate.js.html
docs/src/Roo_bootstrap_Alert.js.html
docs/src/Roo_bootstrap_BezierSignature.js.html
docs/src/Roo_bootstrap_Body.js.html
docs/src/Roo_bootstrap_Brick.js.html
docs/src/Roo_bootstrap_Button.js.html
docs/src/Roo_bootstrap_ButtonGroup.js.html
docs/src/Roo_bootstrap_Calendar.js.html
docs/src/Roo_bootstrap_CheckBox.js.html
docs/src/Roo_bootstrap_Column.js.html
docs/src/Roo_bootstrap_ComboBox.js.html
docs/src/Roo_bootstrap_Component.js.html
docs/src/Roo_bootstrap_Container.js.html
docs/src/Roo_bootstrap_DateField.js.html
docs/src/Roo_bootstrap_DateSplitField.js.html
docs/src/Roo_bootstrap_DocumentManager.js.html
docs/src/Roo_bootstrap_DocumentSlider.js.html
docs/src/Roo_bootstrap_DocumentViewer.js.html
docs/src/Roo_bootstrap_Element.js.html
docs/src/Roo_bootstrap_FieldLabel.js.html
docs/src/Roo_bootstrap_Form.js.html
docs/src/Roo_bootstrap_Graph.js.html
docs/src/Roo_bootstrap_Header.js.html
docs/src/Roo_bootstrap_HtmlEditor.js.html
docs/src/Roo_bootstrap_Img.js.html
docs/src/Roo_bootstrap_Input.js.html
docs/src/Roo_bootstrap_LayoutMasonry.js.html
docs/src/Roo_bootstrap_LayoutMasonryAuto.js.html
docs/src/Roo_bootstrap_Link.js.html
docs/src/Roo_bootstrap_LocationPicker.js.html
docs/src/Roo_bootstrap_MasonryBrick.js.html
docs/src/Roo_bootstrap_Menu.js.html
docs/src/Roo_bootstrap_MenuItem.js.html
docs/src/Roo_bootstrap_MenuMgr.js.html
docs/src/Roo_bootstrap_MenuSeparator.js.html
docs/src/Roo_bootstrap_MessageBar.js.html
docs/src/Roo_bootstrap_MessageBox.js.html
docs/src/Roo_bootstrap_Modal.js.html
docs/src/Roo_bootstrap_MoneyField.js.html
docs/src/Roo_bootstrap_MonthField.js.html
docs/src/Roo_bootstrap_NavGroup.js.html
docs/src/Roo_bootstrap_NavHeaderbar.js.html
docs/src/Roo_bootstrap_NavItem.js.html
docs/src/Roo_bootstrap_NavProgressBar.js.html
docs/src/Roo_bootstrap_NavProgressItem.js.html
docs/src/Roo_bootstrap_NavSidebar.js.html
docs/src/Roo_bootstrap_NavSidebarItem.js.html
docs/src/Roo_bootstrap_NavSimplebar.js.html
docs/src/Roo_bootstrap_Navbar.js.html
docs/src/Roo_bootstrap_NumberField.js.html
docs/src/Roo_bootstrap_Pagination.js.html
docs/src/Roo_bootstrap_PaginationItem.js.html
docs/src/Roo_bootstrap_PagingToolbar.js.html
docs/src/Roo_bootstrap_PhoneInput.js.html
docs/src/Roo_bootstrap_PhoneInputData.js.html
docs/src/Roo_bootstrap_Popover.js.html
docs/src/Roo_bootstrap_Progress.js.html
docs/src/Roo_bootstrap_ProgressBar.js.html
docs/src/Roo_bootstrap_Radio.js.html
docs/src/Roo_bootstrap_RadioSet.js.html
docs/src/Roo_bootstrap_Row.js.html
docs/src/Roo_bootstrap_SecurePass.js.html
docs/src/Roo_bootstrap_Slider.js.html
docs/src/Roo_bootstrap_SplitBar.js.html
docs/src/Roo_bootstrap_TabGroup.js.html
docs/src/Roo_bootstrap_TabPanel.js.html
docs/src/Roo_bootstrap_Table.js.html
docs/src/Roo_bootstrap_TableBody.js.html
docs/src/Roo_bootstrap_TableCell.js.html
docs/src/Roo_bootstrap_TableRow.js.html
docs/src/Roo_bootstrap_Table_AbstractSelectionModel.js.html
docs/src/Roo_bootstrap_Table_RowSelectionModel.js.html
docs/src/Roo_bootstrap_TextArea.js.html
docs/src/Roo_bootstrap_TimeField.js.html
docs/src/Roo_bootstrap_Tooltip.js.html
docs/src/Roo_bootstrap_TriggerField.js.html
docs/src/Roo_bootstrap_UploadCropbox.js.html
docs/src/Roo_bootstrap_dash_NumberBox.js.html
docs/src/Roo_bootstrap_dash_TabBox.js.html
docs/src/Roo_bootstrap_dash_TabPane.js.html
docs/src/Roo_bootstrap_htmleditor_ToolbarStandard.js.html
docs/src/Roo_bootstrap_layout_Basic.js.html
docs/src/Roo_bootstrap_layout_Border.js.html
docs/src/Roo_bootstrap_layout_Center.js.html
docs/src/Roo_bootstrap_layout_East.js.html
docs/src/Roo_bootstrap_layout_Manager.js.html
docs/src/Roo_bootstrap_layout_North.js.html
docs/src/Roo_bootstrap_layout_Region.js.html
docs/src/Roo_bootstrap_layout_South.js.html
docs/src/Roo_bootstrap_layout_Split.js.html
docs/src/Roo_bootstrap_layout_West.js.html
docs/src/Roo_bootstrap_layout_layout-ns.js.html
docs/src/Roo_bootstrap_menu_Item.js.html
docs/src/Roo_bootstrap_menu_Menu.js.html
docs/src/Roo_bootstrap_menu_Separator.js.html
docs/src/Roo_bootstrap_panel_Content.js.html
docs/src/Roo_bootstrap_panel_Grid.js.html
docs/src/Roo_bootstrap_panel_Nest.js.html
docs/src/Roo_bootstrap_panel_TabItem.js.html
docs/src/Roo_bootstrap_panel_Tabs.js.html
docs/src/Roo_bootstrap_panel_panel-ns.js.html
docs/src/Roo_bootstrap_version.js.html
docs/src/Roo_data_ArrayReader.js.html
docs/src/Roo_data_Connection.js.html
docs/src/Roo_data_DataProxy.js.html
docs/src/Roo_data_DataReader.js.html
docs/src/Roo_data_Field.js.html
docs/src/Roo_data_HttpProxy.js.html
docs/src/Roo_data_JsonReader.js.html
docs/src/Roo_data_JsonStore.js.html
docs/src/Roo_data_MemoryProxy.js.html
docs/src/Roo_data_Record.js.html
docs/src/Roo_data_ScriptTagProxy.js.html
docs/src/Roo_data_SimpleStore.js.html
docs/src/Roo_data_SortTypes.js.html
docs/src/Roo_data_Store.js.html
docs/src/Roo_data_Tree.js.html
docs/src/Roo_data_XmlReader.js.html
docs/src/Roo_dd_DD.js.html
docs/src/Roo_dd_DDProxy.js.html
docs/src/Roo_dd_DDTarget.js.html
docs/src/Roo_dd_DragDrop.js.html
docs/src/Roo_dd_DragDropMgr.js.html
docs/src/Roo_dd_DragSource.js.html
docs/src/Roo_dd_DragZone.js.html
docs/src/Roo_dd_DropTarget.js.html
docs/src/Roo_dd_DropZone.js.html
docs/src/Roo_dd_Registry.js.html
docs/src/Roo_dd_ScrollManager.js.html
docs/src/Roo_dd_StatusProxy.js.html
docs/src/Roo_form_Action.js.html
docs/src/Roo_form_BasicForm.js.html
docs/src/Roo_form_Checkbox.js.html
docs/src/Roo_form_ComboBox.js.html
docs/src/Roo_form_ComboBoxArray.js.html
docs/src/Roo_form_ComboCheck.js.html
docs/src/Roo_form_DateField.js.html
docs/src/Roo_form_DayPicker.js.html
docs/src/Roo_form_DisplayField.js.html
docs/src/Roo_form_FCKeditor.js.html
docs/src/Roo_form_Field.js.html
docs/src/Roo_form_Form.js.html
docs/src/Roo_form_GridField.js.html
docs/src/Roo_form_Hidden.js.html
docs/src/Roo_form_HtmlEditor.js.html
docs/src/Roo_form_HtmlEditor_ToolbarContext.js.html
docs/src/Roo_form_HtmlEditor_ToolbarStandard.js.html
docs/src/Roo_form_Layout.js.html
docs/src/Roo_form_MonthField.js.html
docs/src/Roo_form_NumberField.js.html
docs/src/Roo_form_Radio.js.html
docs/src/Roo_form_Select.js.html
docs/src/Roo_form_Signature.js.html
docs/src/Roo_form_TextArea.js.html
docs/src/Roo_form_TextField.js.html
docs/src/Roo_form_TextItem.js.html
docs/src/Roo_form_TriggerField.js.html
docs/src/Roo_form_VTypes.js.html
docs/src/Roo_grid_AbstractGridView.js.html
docs/src/Roo_grid_AbstractSelectionModel.js.html
docs/src/Roo_grid_Calendar.js.html
docs/src/Roo_grid_CellSelectionModel.js.html
docs/src/Roo_grid_ColumnModel.js.html
docs/src/Roo_grid_EditorGrid.js.html
docs/src/Roo_grid_Grid.js.html
docs/src/Roo_grid_GridDragZone.js.html
docs/src/Roo_grid_GridEditor.js.html
docs/src/Roo_grid_GridView.js.html
docs/src/Roo_grid_HeaderDragZone.js.html
docs/src/Roo_grid_HeaderDropZone.js.html
docs/src/Roo_grid_PropertyGrid.js.html
docs/src/Roo_grid_RowSelectionModel.js.html
docs/src/Roo_grid_SplitDragZone.js.html
docs/src/Roo_lib_Ajax.js.html
docs/src/Roo_lib_Anim.js.html
docs/src/Roo_lib_AnimBase.js.html
docs/src/Roo_lib_AnimMgr.js.html
docs/src/Roo_lib_Beizer.js.html
docs/src/Roo_lib_ColorAnim.js.html
docs/src/Roo_lib_Dom.js.html
docs/src/Roo_lib_Easing.js.html
docs/src/Roo_lib_Event.js.html
docs/src/Roo_lib_Motion.js.html
docs/src/Roo_lib_Point.js.html
docs/src/Roo_lib_Region.js.html
docs/src/Roo_lib_Scroll.js.html
docs/src/Roo_menu_Adapter.js.html
docs/src/Roo_menu_BaseItem.js.html
docs/src/Roo_menu_CheckItem.js.html
docs/src/Roo_menu_ColorItem.js.html
docs/src/Roo_menu_ColorMenu.js.html
docs/src/Roo_menu_DateItem.js.html
docs/src/Roo_menu_DateMenu.js.html
docs/src/Roo_menu_Item.js.html
docs/src/Roo_menu_Menu.js.html
docs/src/Roo_menu_MenuMgr.js.html
docs/src/Roo_menu_Separator.js.html
docs/src/Roo_menu_TextItem.js.html
docs/src/Roo_state_CookieProvider.js.html
docs/src/Roo_state_Manager.js.html
docs/src/Roo_state_Provider.js.html
docs/src/Roo_tree_AsyncTreeNode.js.html
docs/src/Roo_tree_ColumnNodeUI.js.html
docs/src/Roo_tree_ColumnTree.js.html
docs/src/Roo_tree_TreeDragZone.js.html
docs/src/Roo_tree_TreeDropZone.js.html
docs/src/Roo_tree_TreeEditor.js.html
docs/src/Roo_tree_TreeFilter.js.html
docs/src/Roo_tree_TreeLoader.js.html
docs/src/Roo_tree_TreeNode.js.html
docs/src/Roo_tree_TreeNodeUI.js.html
docs/src/Roo_tree_TreePanel.js.html
docs/src/Roo_tree_TreeSelectionModel.js.html
docs/src/Roo_tree_TreeSorter.js.html
docs/src/Roo_util_CSS.js.html
docs/src/Roo_util_ClickRepeater.js.html
docs/src/Roo_util_DelayedTask.js.html
docs/src/Roo_util_Format.js.html
docs/src/Roo_util_JSON.js.html
docs/src/Roo_util_MixedCollection.js.html
docs/src/Roo_util_Observable.js.html
docs/src/Roo_util_TaskRunner.js.html
docs/src/Roo_util_TextMetrics.js.html
docs/src/String.js.html
docs/symbols/Roo.bootstrap.Modal.json
docs/symbols/Roo.data.JsonStore.json
docs/symbols/Roo.data.SimpleStore.json
docs/symbols/Roo.data.Store.json
docs/symbols/Roo.form.BasicForm.json
docs/symbols/Roo.form.ComboBox.json
docs/symbols/Roo.form.ComboBoxArray.json
docs/symbols/Roo.form.ComboCheck.json
docs/symbols/Roo.form.DateField.json
docs/symbols/Roo.form.FCKeditor.json
docs/symbols/Roo.form.Form.json
docs/symbols/Roo.form.Hidden.json
docs/symbols/Roo.form.MonthField.json
docs/symbols/Roo.form.NumberField.json
docs/symbols/Roo.form.Select.json
docs/symbols/Roo.form.TextArea.json
docs/symbols/Roo.form.TextField.json
docs/symbols/Roo.form.TextItem.json
docs/symbols/Roo.form.TriggerField.json
docs/symbols/Roo.tree.TreePanel.json
docs/symbols/_global_.json
docs/tree.json
examples/form/combocheck.html
examples/form/combocheck.js
examples/form/nestedcombo.html [new file with mode: 0644]
examples/form/nestedcombo.js [new file with mode: 0644]
roojs-all.js
roojs-bootstrap-debug.js
roojs-bootstrap.js
roojs-core-debug.js
roojs-core.js
roojs-debug.js
roojs-ui-debug.js
roojs-ui.js

index 6ffe6e0..dff793e 100644 (file)
@@ -45,10 +45,86 @@ Roo.Markdown.toHtml = function(text) {
 //
 (function() {
     
+     /**
+         * eval:var:escape
+         * eval:var:unescape
+         * eval:var:replace
+         */
+      
+    /**
+     * Helpers
+     */
+    
+    var escape = function (html, encode) {
+      return html
+        .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
+        .replace(/</g, '&lt;')
+        .replace(/>/g, '&gt;')
+        .replace(/"/g, '&quot;')
+        .replace(/'/g, '&#39;');
+    }
+    
+    var unescape = function (html) {
+        // explicitly match decimal, hex, and named HTML entities 
+      return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, function(_, n) {
+        n = n.toLowerCase();
+        if (n === 'colon') { return ':'; }
+        if (n.charAt(0) === '#') {
+          return n.charAt(1) === 'x'
+            ? String.fromCharCode(parseInt(n.substring(2), 16))
+            : String.fromCharCode(+n.substring(1));
+        }
+        return '';
+      });
+    }
+    
+    var replace = function (regex, opt) {
+      regex = regex.source;
+      opt = opt || '';
+      return function self(name, val) {
+        if (!name) { return new RegExp(regex, opt); }
+        val = val.source || val;
+        val = val.replace(/(^|[^\[])\^/g, '$1');
+        regex = regex.replace(name, val);
+        return self;
+      };
+    }
+
+
+         /**
+         * eval:var:noop
+    */
+    var noop = function () {}
+    noop.exec = noop;
+    
+         /**
+         * eval:var:merge
+    */
+    var merge = function (obj) {
+      var i = 1
+        , target
+        , key;
+    
+      for (; i < arguments.length; i++) {
+        target = arguments[i];
+        for (key in target) {
+          if (Object.prototype.hasOwnProperty.call(target, key)) {
+            obj[key] = target[key];
+          }
+        }
+      }
+    
+      return obj;
+    }
+    
+    
     /**
      * Block-Level Grammar
      */
     
+    
+    
+    
     var block = {
       newline: /^\n+/,
       code: /^( {4}[^\n]+\n*)+/,
@@ -138,7 +214,7 @@ Roo.Markdown.toHtml = function(text) {
      * Block Lexer
      */
     
-    function Lexer(options) {
+    var Lexer = function (options) {
       this.tokens = [];
       this.tokens.links = {};
       this.options = options || marked.defaults;
@@ -556,7 +632,7 @@ Roo.Markdown.toHtml = function(text) {
      * Inline Lexer & Compiler
      */
     
-    function InlineLexer(links, options) {
+    var InlineLexer  = function (links, options) {
       this.options = options || marked.defaults;
       this.links = links;
       this.rules = inline.normal;
@@ -796,7 +872,11 @@ Roo.Markdown.toHtml = function(text) {
      * Renderer
      */
     
-    function Renderer(options) {
+     /**
+         * eval:var:Renderer
+    */
+    
+    var Renderer   = function (options) {
       this.options = options || {};
     }
     
@@ -945,8 +1025,11 @@ Roo.Markdown.toHtml = function(text) {
     /**
      * Parsing & Compiling
      */
+         /**
+         * eval:var:Parser
+    */
     
-    function Parser(options) {
+    var Parser= function (options) {
       this.tokens = [];
       this.token = null;
       this.options = options || marked.defaults;
@@ -1121,72 +1204,15 @@ Roo.Markdown.toHtml = function(text) {
         }
       }
     };
-    
-    /**
-     * Helpers
-     */
-    
-    function escape(html, encode) {
-      return html
-        .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
-        .replace(/</g, '&lt;')
-        .replace(/>/g, '&gt;')
-        .replace(/"/g, '&quot;')
-        .replace(/'/g, '&#39;');
-    }
-    
-    function unescape(html) {
-        // explicitly match decimal, hex, and named HTML entities 
-      return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, function(_, n) {
-        n = n.toLowerCase();
-        if (n === 'colon') { return ':'; }
-        if (n.charAt(0) === '#') {
-          return n.charAt(1) === 'x'
-            ? String.fromCharCode(parseInt(n.substring(2), 16))
-            : String.fromCharCode(+n.substring(1));
-        }
-        return '';
-      });
-    }
-    
-    function replace(regex, opt) {
-      regex = regex.source;
-      opt = opt || '';
-      return function self(name, val) {
-        if (!name) { return new RegExp(regex, opt); }
-        val = val.source || val;
-        val = val.replace(/(^|[^\[])\^/g, '$1');
-        regex = regex.replace(name, val);
-        return self;
-      };
-    }
-    
-    function noop() {}
-    noop.exec = noop;
-    
-    function merge(obj) {
-      var i = 1
-        , target
-        , key;
-    
-      for (; i < arguments.length; i++) {
-        target = arguments[i];
-        for (key in target) {
-          if (Object.prototype.hasOwnProperty.call(target, key)) {
-            obj[key] = target[key];
-          }
-        }
-      }
-    
-      return obj;
-    }
-    
+  
     
     /**
      * Marked
      */
-    
-    function marked(src, opt, callback) {
+         /**
+         * eval:var:marked
+    */
+    var marked = function (src, opt, callback) {
       if (callback || typeof opt === 'function') {
         if (!callback) {
           callback = opt;
@@ -1207,7 +1233,9 @@ Roo.Markdown.toHtml = function(text) {
         }
     
         pending = tokens.length;
-    
+         /**
+         * eval:var:done
+    */
         var done = function(err) {
           if (err) {
             opt.highlight = highlight;
index 5c67206..bd5e045 100644 (file)
@@ -68,6 +68,7 @@ Roo.Template.prototype = {
      * @return {String} The HTML fragment
      */
     applyTemplate : function(values){
+        Roo.log(["applyTemplate", values]);
         try {
            
             if(this.compiled){
index 46e7603..07c0e5d 100644 (file)
@@ -46,42 +46,52 @@ var myReader = new Roo.data.ArrayReader({
  * 
  * created using {@link Roo.data.Record#create}.
  */
-Roo.data.ArrayReader = function(meta, recordType){
-    
-     
+Roo.data.ArrayReader = function(meta, recordType)
+{    
     Roo.data.ArrayReader.superclass.constructor.call(this, meta, recordType||meta.fields);
 };
 
 Roo.extend(Roo.data.ArrayReader, Roo.data.JsonReader, {
-    /**
+    
+      /**
      * Create a data block containing Roo.data.Records from an XML document.
      * @param {Object} o An Array of row objects which represents the dataset.
      * @return {Object} A data block which is used by an {@link Roo.data.Store} object as
      * a cache of Roo.data.Records.
      */
-    readRecords : function(o){
+    readRecords : function(o)
+    {
         var sid = this.meta ? this.meta.id : null;
        var recordType = this.recordType, fields = recordType.prototype.fields;
        var records = [];
        var root = o;
-           for(var i = 0; i < root.length; i++){
-                   var n = root[i];
-               var values = {};
-               var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
-               for(var j = 0, jlen = fields.length; j < jlen; j++){
-                var f = fields.items[j];
-                var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
-                var v = n[k] !== undefined ? n[k] : f.defaultValue;
-                v = f.convert(v);
-                values[f.name] = v;
-            }
-               var record = new recordType(values, id);
-               record.json = n;
-               records[records.length] = record;
+       for(var i = 0; i < root.length; i++){
+               var n = root[i];
+           var values = {};
+           var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
+           for(var j = 0, jlen = fields.length; j < jlen; j++){
+               var f = fields.items[j];
+               var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
+               var v = n[k] !== undefined ? n[k] : f.defaultValue;
+               v = f.convert(v);
+               values[f.name] = v;
            }
-           return {
-               records : records,
-               totalRecords : records.length
-           };
+           var record = new recordType(values, id);
+           record.json = n;
+           records[records.length] = record;
+       }
+       return {
+           records : records,
+           totalRecords : records.length
+       };
+    },
+    // used when loading children.. @see loadDataFromChildren
+    toLoadData: function(rec)
+    {
+       // expect rec just to be an array.. eg [a,b,c, [...] << cn ]
+       return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn;
+       
     }
+    
+    
 });
\ No newline at end of file
index 31cd14d..042796b 100644 (file)
@@ -27,6 +27,9 @@ Roo.data.DataReader = function(meta, recordType){
 };
 
 Roo.data.DataReader.prototype = {
+    
+    
+    readerType : 'Data',
      /**
      * Create an empty record
      * @param {Object} data (optional) - overlay some values
@@ -47,4 +50,5 @@ Roo.data.DataReader.prototype = {
         return new this.recordType(Roo.apply(da, d));
     }
     
+    
 };
\ No newline at end of file
index 361b361..98c8ce8 100644 (file)
@@ -67,6 +67,8 @@ Roo.data.JsonReader = function(meta, recordType){
 };
 Roo.extend(Roo.data.JsonReader, Roo.data.DataReader, {
     
+    readerType : 'Json',
+    
     /**
      * @prop {Boolean} metaFromRemote  - if the meta data was loaded from the remote source.
      * Used by Store query builder to append _requestMeta to params.
@@ -208,5 +210,13 @@ Roo.extend(Roo.data.JsonReader, Roo.data.DataReader, {
             records : records,
             totalRecords : totalRecords
         };
+    },
+    // used when loading children.. @see loadDataFromChildren
+    toLoadData: function(rec)
+    {
+       // expect rec just to be an array.. eg [a,b,c, [...] << cn ]
+       var data = typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn;
+       return { data : data, total : data.length };
+       
     }
 });
\ No newline at end of file
index adbe6f2..9c39abf 100644 (file)
  * Small helper class to make creating Stores from Array data easier.
  * @cfg {Number} id The array index of the record id. Leave blank to auto generate ids.
  * @cfg {Array} fields An array of field definition objects, or field name strings.
+ * @cfg {Object} an existing reader (eg. copied from another store)
  * @cfg {Array} data The multi-dimensional array of data
  * @constructor
  * @param {Object} config
  */
-Roo.data.SimpleStore = function(config){
+Roo.data.SimpleStore = function(config)
+{
     Roo.data.SimpleStore.superclass.constructor.call(this, {
         isLocal : true,
-        reader: new Roo.data.ArrayReader({
+        reader: typeof(config.reader) != 'undefined' ? config.reader : new Roo.data.ArrayReader({
                 id: config.id
             },
             Roo.data.Record.create(config.fields)
index f27e2d6..7cc3272 100644 (file)
@@ -450,6 +450,16 @@ Roo.extend(Roo.data.Store, Roo.util.Observable, {
         var r = this.reader.readRecords(o);
         this.loadRecords(r, {add: append}, true);
     },
+    
+     /**
+     * using 'cn' the nested child reader read the child array into it's child stores.
+     * @param {Object} rec The record with a 'children array
+     */
+    loadDataFromChildren : function(rec)
+    {
+        this.loadData(this.reader.toLoadData(rec));
+    },
+    
 
     /**
      * Gets the number of cached records.
index 3dda634..2849348 100644 (file)
@@ -67,6 +67,9 @@ Roo.data.XmlReader = function(meta, recordType){
     Roo.data.XmlReader.superclass.constructor.call(this, meta, recordType||meta.fields);
 };
 Roo.extend(Roo.data.XmlReader, Roo.data.DataReader, {
+    
+    readerType : 'Xml',
+    
     /**
      * This method is only used by a DataProxy which has retrieved data from a remote server.
         * @param {Object} response The XHR object which contains the parsed XML document.  The response is expected
index 0117cc2..80e956e 100644 (file)
@@ -304,9 +304,11 @@ Roo.extend(Roo.form.ComboBox, Roo.form.TriggerField, {
     // element that contains real text value.. (when hidden is used..)
      
     // private
-    onRender : function(ct, position){
+    onRender : function(ct, position)
+    {
         Roo.form.ComboBox.superclass.onRender.call(this, ct, position);
-        if(this.hiddenName){
+        
+       if(this.hiddenName){
             this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id:  (this.hiddenId||this.hiddenName)},
                     'before', true);
             this.hiddenField.value =
@@ -318,6 +320,7 @@ Roo.extend(Roo.form.ComboBox, Roo.form.TriggerField, {
              
              
         }
+       
         if(Roo.isGecko){
             this.el.dom.setAttribute('autocomplete', 'off');
         }
@@ -378,7 +381,9 @@ Roo.extend(Roo.form.ComboBox, Roo.form.TriggerField, {
         }
 
         this.view = new Roo.View(this.innerList, this.tpl, {
-            singleSelect:true, store: this.store, selectedClass: this.selectedClass
+            singleSelect:true,
+           store: this.store,
+           selectedClass: this.selectedClass
         });
 
         this.view.on('click', this.onViewClick, this);
diff --git a/Roo/form/ComboNested.js b/Roo/form/ComboNested.js
new file mode 100644 (file)
index 0000000..67a9203
--- /dev/null
@@ -0,0 +1,429 @@
+/*
+ * RooJS Library 1.1.1
+ * Copyright(c) 2008-2011  Alan Knowles
+ *
+ * License - LGPL
+ */
+
+/**
+ * @class Roo.form.ComboNested
+ * @extends Roo.form.ComboBox
+ * A combobox for that allows selection of nested items in a list,
+ * eg.
+ *
+ *  Book
+ *    -> red
+ *    -> green
+ *  Table
+ *    -> square
+ *      ->red
+ *      ->green
+ *    -> rectangle
+ *      ->green
+ *      
+ * 
+ * @constructor
+ * Create a new ComboNested
+ * @param {Object} config Configuration options
+ */
+Roo.form.ComboNested = function(config){
+    Roo.form.ComboCheck.superclass.constructor.call(this, config);
+    // should verify some data...
+    // like
+    // hiddenName = required..
+    // displayField = required
+    // valudField == required
+    var req= [ 'hiddenName', 'displayField', 'valueField' ];
+    var _t = this;
+    Roo.each(req, function(e) {
+        if ((typeof(_t[e]) == 'undefined' ) || !_t[e].length) {
+            throw "Roo.form.ComboNested : missing value for: " + e;
+        }
+    });
+     
+    
+};
+
+Roo.extend(Roo.form.ComboNested, Roo.form.ComboBox, {
+   
+    /*
+     * @config {Number} max Number of columns to show
+     */
+    
+    maxColumns : 3,
+   
+    list : null, // the outermost div..
+    innerLists : null, // the
+    views : null,
+    stores : null,
+    // private
+    loadingChildren : false,
+    
+    onRender : function(ct, position)
+    {
+        Roo.form.ComboBox.superclass.onRender.call(this, ct, position); // skip parent call - got to above..
+        
+        if(this.hiddenName){
+            this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id:  (this.hiddenId||this.hiddenName)},
+                    'before', true);
+            this.hiddenField.value =
+                this.hiddenValue !== undefined ? this.hiddenValue :
+                this.value !== undefined ? this.value : '';
+
+            // prevent input submission
+            this.el.dom.removeAttribute('name');
+             
+             
+        }
+       
+        if(Roo.isGecko){
+            this.el.dom.setAttribute('autocomplete', 'off');
+        }
+
+        var cls = 'x-combo-list';
+
+        this.list = new Roo.Layer({
+            shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false
+        });
+
+        var lw = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth);
+        this.list.setWidth(lw);
+        this.list.swallowEvent('mousewheel');
+        this.assetHeight = 0;
+
+        if(this.title){
+            this.header = this.list.createChild({cls:cls+'-hd', html: this.title});
+            this.assetHeight += this.header.getHeight();
+        }
+        this.innerLists = [];
+        this.views = [];
+        this.stores = [];
+        for (var i =0 ; i < this.maxColumns; i++) {
+            this.onRenderList( cls, i);
+        }
+        
+        // always needs footer, as we are going to have an 'OK' button.
+        this.footer = this.list.createChild({cls:cls+'-ft'});
+        this.pageTb = new Roo.Toolbar(this.footer);  
+        var _this = this;
+        this.pageTb.add(  {
+            
+            text: 'Done',
+            handler: function()
+            {
+                _this.collapse();
+            }
+        });
+        
+        if ( this.allowBlank && !this.disableClear) {
+            
+            this.pageTb.add(new Roo.Toolbar.Fill(), {
+                cls: 'x-btn-icon x-btn-clear',
+                text: '&#160;',
+                handler: function()
+                {
+                    _this.collapse();
+                    _this.clearValue();
+                    _this.onSelect(false, -1);
+                }
+            });
+        }
+        if (this.footer) {
+            this.assetHeight += this.footer.getHeight();
+        }
+        
+    },
+    onRenderList : function (  cls, i)
+    {
+        
+        var lw = Math.floor(
+                ((this.listWidth * this.maxColumns || Math.max(this.wrap.getWidth(), this.minListWidth)) - this.list.getFrameWidth('lr')) / this.maxColumns
+        );
+        
+        this.list.setWidth(lw); // default to '1'
+
+        var il = this.innerLists[i] = this.list.createChild({cls:cls+'-inner'});
+        //il.on('mouseover', this.onViewOver, this, { list:  i });
+        //il.on('mousemove', this.onViewMove, this, { list:  i });
+        il.setWidth(lw);
+        il.setStyle({ 'overflow-x' : 'hidden'});
+
+        if(!this.tpl){
+            this.tpl = new Roo.Template({
+                html :  '<div class="'+cls+'-item '+cls+'-item-{cn:this.isEmpty}">{' + this.displayField + '}</div>',
+                isEmpty: function (value, allValues) {
+                    //Roo.log(value);
+                    var dl = typeof(value.data) != 'undefined' ? value.data.length : value.length; ///json is a nested response..
+                    return dl ? 'has-children' : 'no-children'
+                }
+            });
+        }
+        
+        var store  = this.store;
+        if (i > 0) {
+            store  = new Roo.data.SimpleStore({
+                //fields : this.store.reader.meta.fields,
+                reader : this.store.reader,
+                data : [ ]
+            });
+        }
+        this.stores[i]  = store;
+                  
+        var view = this.views[i] = new Roo.View(
+            il,
+            this.tpl,
+            {
+                singleSelect:true,
+                store: store,
+                selectedClass: this.selectedClass
+            }
+        );
+        view.getEl().setWidth(lw);
+        view.getEl().setStyle({
+            position: i < 1 ? 'relative' : 'absolute',
+            top: 0,
+            left: (i * lw ) + 'px',
+            display : i > 0 ? 'none' : 'block'
+        });
+        view.on('selectionchange', this.onSelectChange, this, {list : i });
+        view.on('dblclick', this.onDoubleClick, this, {list : i });
+        //view.on('click', this.onViewClick, this, { list : i });
+
+        store.on('beforeload', this.onBeforeLoad, this);
+        store.on('load',  this.onLoad, this, { list  : i});
+        store.on('loadexception', this.onLoadException, this);
+
+        // hide the other vies..
+        
+        
+        
+    },
+      
+    restrictHeight : function()
+    {
+        var mh = 0;
+        Roo.each(this.innerLists, function(il,i) {
+            var el = this.views[i].getEl();
+            el.dom.style.height = '';
+            var inner = el.dom;
+            var h = Math.max(il.clientHeight, il.offsetHeight, il.scrollHeight);
+            // only adjust heights on other ones..
+            mh = Math.max(h, mh);
+            if (i < 1) {
+                
+                el.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight);
+                il.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight);
+               
+            }
+            
+            
+        }, this);
+        
+        this.list.beginUpdate();
+        this.list.setHeight(mh+this.list.getFrameWidth('tb')+this.assetHeight);
+        this.list.alignTo(this.el, this.listAlign);
+        this.list.endUpdate();
+        
+    },
+     
+    
+    // -- store handlers..
+    // private
+    onBeforeLoad : function()
+    {
+        if(!this.hasFocus){
+            return;
+        }
+        this.innerLists[0].update(this.loadingText ?
+               '<div class="loading-indicator">'+this.loadingText+'</div>' : '');
+        this.restrictHeight();
+        this.selectedIndex = -1;
+    },
+    // private
+    onLoad : function(a,b,c,d)
+    {
+        if (!this.loadingChildren) {
+            // then we are loading the top level. - hide the children
+            for (var i = 1;i < this.views.length; i++) {
+                this.views[i].getEl().setStyle({ display : 'none' });
+            }
+            var lw = Math.floor(
+                ((this.listWidth * this.maxColumns || Math.max(this.wrap.getWidth(), this.minListWidth)) - this.list.getFrameWidth('lr')) / this.maxColumns
+            );
+        
+             this.list.setWidth(lw); // default to '1'
+
+            
+        }
+        if(!this.hasFocus){
+            return;
+        }
+        
+        if(this.store.getCount() > 0) {
+            this.expand();
+            this.restrictHeight();   
+        } else {
+            this.onEmptyResults();
+        }
+        
+        if (!this.loadingChildren) {
+            this.selectActive();
+        }
+        /*
+        this.stores[1].loadData([]);
+        this.stores[2].loadData([]);
+        this.views
+        */    
+    
+        //this.el.focus();
+    },
+    
+    
+    // private
+    onLoadException : function()
+    {
+        this.collapse();
+        Roo.log(this.store.reader.jsonData);
+        if (this.store && typeof(this.store.reader.jsonData.errorMsg) != 'undefined') {
+            Roo.MessageBox.alert("Error loading",this.store.reader.jsonData.errorMsg);
+        }
+        
+        
+    },
+    // no cleaning of leading spaces on blur here.
+    cleanLeadingSpace : function(e) { },
+    
+
+    onSelectChange : function (view, sels, opts )
+    {
+        var ix = view.getSelectedIndexes();
+         
+        if (opts.list > this.maxColumns - 2) {
+            if (view.store.getCount()<  1) {
+                this.views[opts.list ].getEl().setStyle({ display :   'none' });
+
+            } else  {
+                if (ix.length) {
+                    // used to clear ?? but if we are loading unselected 
+                    this.setFromData(view.store.getAt(ix[0]).data);
+                }
+                
+            }
+            
+            return;
+        }
+        
+        if (!ix.length) {
+            // this get's fired when trigger opens..
+           // this.setFromData({});
+            var str = this.stores[opts.list+1];
+            str.data.clear(); // removeall wihtout the fire events..
+            return;
+        }
+        
+        var rec = view.store.getAt(ix[0]);
+         
+        this.setFromData(rec.data);
+        this.fireEvent('select', this, rec, ix[0]);
+        
+        var lw = Math.floor(
+             (
+                (this.listWidth * this.maxColumns || Math.max(this.wrap.getWidth(), this.minListWidth)) - this.list.getFrameWidth('lr')
+             ) / this.maxColumns
+        );
+        this.loadingChildren = true;
+        this.stores[opts.list+1].loadDataFromChildren( rec );
+        this.loadingChildren = false;
+        var dl = this.stores[opts.list+1]. getTotalCount();
+        
+        this.views[opts.list+1].getEl().setHeight( this.innerLists[0].getHeight());
+        
+        this.views[opts.list+1].getEl().setStyle({ display : dl ? 'block' : 'none' });
+        for (var i = opts.list+2; i < this.views.length;i++) {
+            this.views[i].getEl().setStyle({ display : 'none' });
+        }
+        
+        this.innerLists[opts.list+1].setHeight( this.innerLists[0].getHeight());
+        this.list.setWidth(lw * (opts.list + (dl ? 2 : 1)));
+        
+        if (this.isLoading) {
+           // this.selectActive(opts.list);
+        }
+         
+    },
+    
+    
+    
+    
+    onDoubleClick : function()
+    {
+        this.collapse(); //??
+    },
+    
+     
+    
+    
+    
+    // private
+    recordToStack : function(store, prop, value, stack)
+    {
+        var cstore = new Roo.data.SimpleStore({
+            //fields : this.store.reader.meta.fields, // we need array reader.. for
+            reader : this.store.reader,
+            data : [ ]
+        });
+        var _this = this;
+        var record  = false;
+        var srec = false;
+        if(store.getCount() < 1){
+            return false;
+        }
+        store.each(function(r){
+            if(r.data[prop] == value){
+                record = r;
+            srec = r;
+                return false;
+            }
+            if (r.data.cn && r.data.cn.length) {
+                cstore.loadDataFromChildren( r);
+                var cret = _this.recordToStack(cstore, prop, value, stack);
+                if (cret !== false) {
+                    record = cret;
+                    srec = r;
+                    return false;
+                }
+            }
+             
+            return true;
+        });
+        if (record == false) {
+            return false
+        }
+        stack.unshift(srec);
+        return record;
+    },
+    
+    /*
+     * find the stack of stores that match our value.
+     *
+     * 
+     */
+    
+    selectActive : function ()
+    {
+       // if store is not loaded, then we will need to wait for that to happen first.
+        var stack = [];
+        this.recordToStack(this.store, this.valueField, this.getValue(), stack);
+        for (var i = 0; i < stack.length; i++ ) {
+            this.views[i].select(stack[i].store.indexOf(stack[i]), false, false );
+        }
+       
+    }
+       
+        
+    
+    
+    
+    
+});
\ No newline at end of file
index 19eb731..5343a4d 100644 (file)
@@ -356,10 +356,12 @@ Roo.util.Observable.releaseCapture = function(o){
             var ls = this.listeners, scope, len = ls.length;
             if(len > 0){
                 this.firing = true;
-                var args = Array.prototype.slice.call(arguments, 0);
+                
                 for(var i = 0; i < len; i++){
-                    var l = ls[i];
-                    if(l.fireFn.apply(l.scope||this.obj||window, arguments) === false){
+                   var args = Array.prototype.slice.call(arguments, 0);
+                   var l = ls[i];
+                   args.push(l.options);
+                    if(l.fireFn.apply(l.scope||this.obj||window, args) === false){
                         this.firing = false;
                         return false;
                     }
index fb8a534..6824712 100644 (file)
@@ -91,6 +91,7 @@ Roo.form.DateField
 Roo.form.MonthField
 Roo.form.ComboBox
 Roo.form.ComboBoxArray
+Roo.form.ComboNested
 Roo.form.Checkbox
 Roo.form.Radio
 Roo.HtmlEditorCore
@@ -110,6 +111,7 @@ Roo.form.ComboCheck
 Roo.form.Signature
 Roo.form.Select
 
+
 // Must be after view and form.field as it uses both.
 Roo.DDView
 
index e540f5d..932c8bc 100644 (file)
 {
     float: left;
 }
-
+/* needed for nested combo */
+.x-combo-list-item.x-combo-list-item-has-children:after {
+    content: '>';
+    float: right;
+    margin-right: 2px;
+}
index f7faf0d..ecc5a7f 100644 (file)
@@ -7,11 +7,11 @@ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquot
 .x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;background:white;filter:alpha(opacity=0);opacity:0;zoom:1;}.x-resizable-handle-east{width:6px;cursor:e-resize;right:0;top:0;height:100%;margin-right:-1px;}.x-resizable-handle-south{width:100%;cursor:s-resize;left:0;bottom:0;height:6px;margin-bottom:-1px;}.x-resizable-handle-west{width:6px;cursor:w-resize;left:0;top:0;height:100%;}.x-resizable-handle-north{width:100%;cursor:n-resize;left:0;top:0;height:6px;}.x-resizable-handle-southeast{width:6px;cursor:se-resize;right:0;bottom:0;height:6px;z-index:101;}.x-resizable-handle-northwest{width:6px;cursor:nw-resize;left:0;top:0;height:6px;z-index:101;}.x-resizable-handle-northeast{width:6px;cursor:ne-resize;right:0;top:0;height:6px;z-index:101;}.x-resizable-handle-southwest{width:6px;cursor:sw-resize;left:0;bottom:0;height:6px;z-index:101;}.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1;}.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{background:url("../images/default/sizer/e-handle.gif");background-position:left;}.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{background:url("../images/default/sizer/e-handle.gif");background-position:left;}.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{background:url("../images/default/sizer/s-handle.gif");background-position:top;}.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background:url("../images/default/sizer/s-handle.gif");background-position:top;}.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background:url("../images/default/sizer/corners-sprite.gif");background-position:top left;}.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background:url("../images/default/sizer/corners-sprite.gif");background-position:bottom right;}.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background:url("../images/default/sizer/corners-sprite.gif");background-position:bottom left;}.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background:url("../images/default/sizer/corners-sprite.gif");background-position:top right;}.x-resizable-proxy{border:1px dashed #6593cf;position:absolute;overflow:hidden;visibility:hidden;left:0;top:0;z-index:1001;}.x-resizable-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background:white;z-index:20000;-moz-opacity:0;opacity:0;filter:alpha(opacity=0);border:1px solid red;}
 .x-grid{background-color:#FFF;position:relative;overflow:hidden;}.x-grid-locked,.x-grid-viewport{position:absolute;display:block;z-index:2;top:0;left:0;overflow:hidden;}.x-grid-scroller{overflow:auto;}.x-grid-hd-text{font-size:8pt;padding-left:6px;}.x-grid-hd-text,.x-grid-cell-text{display:block;overflow:hidden;padding:3px 5px;-moz-user-select:none;}.x-grid-col{cursor:default;height:16px!important;box-sizing:border-box;-moz-box-sizing:border-box;-moz-outline:none;-moz-user-focus:normal;overflow:hidden;border-left:1px solid #f1efe2;}.x-edit-grid .x-grid-col{-moz-outline:normal;}.x-grid-col,.x-grid-header{-o-text-overflow:ellipsis;text-overflow:ellipsis;}.x-grid-col-0{border-left:0;}.x-grid-col-last{border-right:1px solid #f1efe2;}.x-grid-editor{box-sizing:border-box;-moz-box-sizing:border-box;font:normal 8pt arial;border:1px solid #afbdc9;z-index:10;}.x-grid-editor input{font:normal 8pt arial;border:0;padding-top:2px;padding-left:3px;height:18px;}.x-grid-editor-container{overflow:hidden;display:block;background-color:white;}.x-grid-editor .pick-button{width:15px;height:20px;position:absolute;display:block;right:0;top:0;z-index:2;background-image:url(../images/default/grid/pick-button.gif);background-repeat:no-repeat;}.x-grid-editor-invalid{background-image:url(../images/default/grid/invalid_line.gif);background-repeat:repeat-x;background-position:bottom;border:1px solid #afbdc9;}.x-grid-checkbox-editor{text-align:center;overflow:hidden;display:block;background-color:white;}.x-grid-checkbox-editor input{margin-top:3px;height:13px;width:13px;}select.x-grid-editor{padding:0;-moz-outline:none;border:1px solid #afbdc9;}.x-grid-num-editor{text-align:right;padding-top:2px;padding-left:3px;}.x-grid-text-editor{padding-top:2px;padding-left:3px;}.x-grid-header{font:normal 8pt arial;background-color:#ebeadb;box-sizing:border-box;-moz-box-sizing:border-box;display:block;position:absolute;overflow:hidden;width:100%;height:22px;border-bottom:1px solid #333;cursor:pointer;}.x-grid-column-sizer{width:1px;border-right:1px dashed #6593cf;background:none;cursor:col-resize;}.x-grid-drag-proxy{width:150px;height:24px;background-color:#36c;border:1px solid #026;position:absolute;visibility:hidden;z-index:10000;}.x-grid-drag-text{font:normal 8pt arial;color:white;position:absolute;top:0;left:26px;padding:3px;display:block;}.x-grid-drop-icon{position:absolute;top:0;left:0;display:block;width:24px;height:100%;background-position:center;background-repeat:no-repeat;}.x-grid-drop-nodrop{background-image:url(../images/default/grid/drop-no.gif);}.x-grid-drop-ok{background-image:url(../images/default/grid/drop-yes.gif);}.x-grid-hd-row img.x-grid-sort-icon{height:4px;width:13px;border:0;margin-left:4px;vertical-align:middle;}.x-grid-hd-row .sort-asc img.x-grid-sort-icon{background-image:url(../images/default/grid/sort_asc.gif);background-position:right;background-repeat:no-repeat;}.x-grid-hd-row .sort-desc img.x-grid-sort-icon{background-image:url(../images/default/grid/sort_desc.gif);background-position:right;background-repeat:no-repeat;}.x-grid-hd-body{cursor:default;display:block;font:normal 8pt arial;left:0;overflow:hidden;padding:3px 5px;position:relative;top:0;white-space:nowrap;}.x-grid-hd-body span{font:normal 8pt arial;white-space:nowrap;}.x-grid-hd-over{border-bottom:2px solid #fcc247;}.x-grid-hd-over .x-grid-hd-body{background-color:#faf9f4;border-bottom:1px solid #f9a900;}.x-grid-split{background-image:url(../images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;cursor:e-resize;display:block;font-size:1px;height:16px;overflow:hidden;position:absolute;top:2px;width:6px;z-index:3;}.x-grid-hrow{background:#ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x;display:block;height:22px;left:0;position:relative;top:0;width:10000px;overflow:hidden;z-index:2;}.x-grid-hrow-frame{height:22px;left:0;display:block;position:absolute;top:0;width:10000px;z-index:1;}.x-grid-footer .x-toolbar{border:0;}.x-grid-page-number{width:24px;height:14px;}.x-grid-page-first button{background:url(../images/default/grid/page-first.gif) no-repeat;width:16px;}.x-grid-loading button{background:url(../images/default/grid/done.gif) no-repeat;width:16px;}.x-grid-page-last button{background:url(../images/default/grid/page-last.gif) no-repeat;width:16px;}.x-date-mp-next,.x-grid-page-next button{background:url(../images/default/grid/page-next.gif) no-repeat;width:16px;}.x-date-mp-prev,.x-grid-page-prev button{background:url(../images/default/grid/page-prev.gif) no-repeat;width:16px;}.x-date-mp-prev,.x-date-mp-next{display:block;width:16px;height:16px;}.x-item-disabled .x-grid-loading button{background:url(../images/default/grid/loading.gif) no-repeat;}.x-item-disabled .x-grid-page-first button{background:url(../images/default/grid/page-first-disabled.gif) no-repeat;}.x-item-disabled .x-grid-page-last button{background:url(../images/default/grid/page-last-disabled.gif) no-repeat;}.x-item-disabled .x-grid-page-next button{background:url(../images/default/grid/page-next-disabled.gif) no-repeat;}.x-item-disabled .x-grid-page-prev button{background:url(../images/default/grid/page-prev-disabled.gif) no-repeat;}.x-grid-mso .x-grid-header{background:none;border-bottom:0;}.x-grid-mso .x-grid-footer{border-top:1px solid #6593cf;}.x-grid-mso .x-grid-footer .x-grid-fbutton{border:0;}.x-grid-mso .x-grid-hd-body{border-bottom:0;}.x-grid-mso .x-grid-hd-over{border-bottom:0;}.x-grid-mso .x-grid-hd-over .x-grid-hd-body{background-color:transparent;}.x-grid-mso .x-grid-split{background-image:url(../images/default/grid/grid-blue-split.gif);}.x-grid-mso .x-toolbar .x-tb-sep{background-image:url(../images/default/grid/grid-blue-split.gif);}.x-grid-mso .x-grid-hrow{background:url(../images/default/grid/mso-hd.gif);border-bottom:1px solid #6593cf;height:21px;}.x-grid-mso .x-grid-row{color:black;border-bottom:1px solid #ddecfe;}.x-grid-mso .x-grid-row-alt{background-color:#f5f5f5;}.x-grid-mso .x-grid-row-selected{background-color:#b3c8e8!important;color:black;}.x-grid-mso .x-grid-row-selected span{color:black!important;}.x-props-grid .x-grid-col-1{background-color:#f1efe2;}.x-props-grid .x-grid-col-1 .x-grid-cell-text{background-color:white;}.x-props-grid .x-grid-col-0{background-color:#f1efe2;}.x-props-grid .x-grid-col-0 .x-grid-cell-text{background-color:white;margin-left:10px;}.x-props-grid .x-grid-prop-edting .x-grid-col-0 .x-grid-cell-text{background-color:#316ac5;color:white;}.x-props-grid .x-grid-prop-edting .x-grid-col-0{color:white;}.x-props-grid .x-grid-num-editor{text-align:left;}.x-grid-row td,.x-grid-hd-row td{font:normal 8pt tahoma,arial,helvetica;border-bottom:1px solid #f1efe2;border-left:1px solid #f1efe2;overflow:visible;white-space:nowrap;}.x-grid-row-alt{background-color:#fcfaf6;}.x-grid-row-over{background-color:#f1f1f1;color:black;}.x-grid-cell-selected,.x-grid-row-selected{background-color:#316ac5!important;color:white;}.x-grid-body{height:100%;left:0;overflow:hidden;position:relative;top:22px;}.x-grid-footer{display:block;padding:0;border-top:1px solid #cbc7b8;}.x-grid-wrap-footer{display:block;overflow:hidden;width:100%;height:25px;box-sizing:border-box;-moz-box-sizing:border-box;background-color:#ebeadb;position:absolute;bottom:0;}.x-grid-wrap-body{left:0;overflow:hidden;position:absolute;top:0;display:block;}.x-grid-wrap-headers{left:0;overflow:hidden;position:absolute;top:0;z-index:12;}.x-grid-simple-view .x-grid-col{height:100%!important;position:static;display:table-cell;display:inline-block;}.x-grid-simple-view .x-grid-row{position:static;display:table-row;}.x-paging-info{position:absolute;right:7px;top:7px;}.x-grid-topbar,.x-grid-bottombar{line-height:0;display:none;position:relative;height:24px;top:0;}.x-grid-editor .x-form-check-wrap{background-color:#FFF;padding:2px 0;}.x-grid-row-selected .x-grid-check-icon-toggle,.x-grid-check-icon-checked{background:transparent url(../../roojs1/images/default/menu/chk-sprite.gif) no-repeat scroll 0 -16px;height:16px;width:16px;}.x-grid-check-icon-toggle,.x-grid-check-icon{background:transparent url(../../roojs1/images/default/menu/chk-sprite.gif) no-repeat scroll 0 0;height:16px;width:16px;}.x-grid-dd-above td{border-top:20px solid #fcfcfc;}.x-grid-dd-below td{border-bottom:20px solid #fcfcfc;}.x-grid-row-fadeout{visibility:hidden;opacity:0;transition:visibility 0s 1s,opacity 1s linear;}
 .x-layout-container{width:100%;height:100%;overflow:hidden;background-color:#c3daf9;}.x-layout-collapsed{position:absolute;left:-10000px;top:-10000px;visibility:hidden;background-color:#c3daf9;width:20px;height:20px;overflow:hidden;border:1px solid #98c0f4;z-index:20;}.x-layout-collapsed-over{cursor:pointer;background-color:#d9e8fb;}.x-layout-collapsed-west .x-layout-tools-button{float:right;}.x-layout-collapsed-east .x-layout-tools-button{float:left;}.x-layout-collapsed-north,.x-layout-collapsed-south{text-align:right;}.x-layout-collapsed .x-layout-tools-button{margin:2px;width:12px;text-align:center;}.x-layout-inactive-content{position:absolute;left:-10000px;top:-10000px;visibility:hidden;}.x-layout-active-content{visibility:visible;}.x-layout-panel{position:absolute;border:1px solid #98c0f4;overflow:hidden;background-color:white;}.x-layout-panel-east,.x-layout-panel-west{z-index:10;}.x-layout-panel-north,.x-layout-panel-south{z-index:11;}.x-layout-collapsed-north,.x-layout-collapsed-south,.x-layout-collapsed-east,.x-layout-collapsed-west{z-index:12;}.x-layout-panel-body{overflow:hidden;}.x-layout-split{position:absolute;height:5px;width:5px;line-height:1px;font-size:1px;z-index:3;background-color:#c3daf9;}.x-layout-panel-hd{background-image:url(../images/default/layout/panel-title-light-bg.gif);color:black;border-bottom:1px solid #98c0f4;position:relative;}.x-layout-panel-hd-text{font:normal 11px tahoma,verdana,helvetica;padding:4px;padding-left:4px;display:block;white-space:nowrap;}.x-layout-panel-hd-tools{position:absolute;right:0;top:0;text-align:right;padding-top:2px;padding-right:2px;width:40px;}.x-layout-tools-button{z-index:6;padding:2px;float:right;cursor:pointer;}.x-layout-tools-button-over{padding:1px;border:1px solid #98c0f4;background-color:white;}.x-layout-tools-button-inner{height:12px;width:12px;line-height:1px;font-size:1px;background-repeat:no-repeat;background-position:center;}.x-layout-close{background-image:url(../images/default/layout/layout-sprite.gif);background-repeat:no-repeat;background-position:50% -48px;}.x-layout-collapse-west,.x-layout-expand-east{background-image:url(../images/default/layout/layout-sprite.gif);background-repeat:no-repeat;background-position:50% 0;}.x-layout-expand-west,.x-layout-collapse-east{background-image:url(../images/default/layout/layout-sprite.gif);background-repeat:no-repeat;background-position:50% -12px;}.x-layout-collapse-north,.x-layout-expand-south{background-image:url(../images/default/layout/layout-sprite.gif);background-repeat:no-repeat;background-position:50% -24px;}.x-layout-expand-north,.x-layout-collapse-south{background-image:url(../images/default/layout/layout-sprite.gif);background-repeat:no-repeat;background-position:50% -36px;}.x-layout-split-h{background-image:url(../images/default/sizer/e-handle.gif);background-position:left;cursor:col-resize;}.x-layout-split-v{background-image:url(../images/default/sizer/s-handle.gif);background-position:top;cursor:row-resize;}.x-layout-panel .x-tabs-wrap{background:url(../images/default/layout/gradient-bg.gif);}.x-layout-panel .roo-tabbody{background-color:white;overflow:auto;height:100%;}.x-layout-component-panel,.x-layout-nested-layout{position:relative;padding:0;overflow:hidden;width:200px;height:200px;}.x-layout-nested-layout .x-layout-panel{border:0 none;}.x-layout-nested-layout .x-layout-panel-north{border-bottom:1px solid #98c0f4;}.x-layout-nested-layout .x-layout-panel-south{border-top:1px solid #98c0f4;}.x-layout-nested-layout .x-layout-panel-east{border-left:1px solid #98c0f4;}.x-layout-nested-layout .x-layout-panel-west{border-right:1px solid #98c0f4;}.roo-repaint{zoom:1;background-color:transparent;}.x-layout-panel-dragover{border:2px solid #6593cf;}.x-layout-panel-proxy{background-image:url(../images/default/layout/gradient-bg.gif);background-color:#c3daf9;border:1px dashed #6593cf;z-index:10001;overflow:hidden;position:absolute;left:0;top:0;}.x-layout-slider{z-index:15;overflow:hidden;position:absolute;}.x-unselectable{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;cursor:default;}.x-splitbar-proxy{z-index:40009;visibility:hidden;position:absolute;background:#666;border:1px solid #000;overflow:hidden;}.x-splitbar-h,.x-splitbar-proxy-h{cursor:col-resize;}.x-splitbar-v,.x-splitbar-proxy-v{cursor:row-resize;}.x-grid-resize-proxy{z-index:40009;visibility:hidden;position:absolute;background:#666;border:1px solid #000;overflow:hidden;cursor:col-resize;overflow:hidden;width:2px;}
-.x-dlg-proxy{background-image:url(../images/default/gradient-bg.gif);background-color:#c3daf9;border:1px solid #6593cf;z-index:10001;overflow:hidden;position:absolute;left:0;top:0;}.x-dlg-shadow{background:#aaa;position:absolute;left:0;top:0;}.x-dlg-focus{-moz-outline:0 none;outline:0 none;width:0;height:0;overflow:hidden;position:absolute;top:0;left:0;}.x-dlg-mask{z-index:10000;display:none;position:absolute;top:0;left:0;-moz-opacity:.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;}body.masked select{visibility:hidden;}body.masked .x-dlg select{visibility:visible;}.x-dlg{z-index:10001;overflow:hidden;position:absolute;left:300;top:0;}.x-resizable-proxy{z-index:10002;}.x-dlg .x-dlg-hd{background:url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px;background-color:navy;color:#fff;font:bold 12px "sans serif",tahoma,verdana,helvetica;overflow:hidden;padding:5px;}.x-dlg .x-dlg-hd-left{background:url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px;padding-left:3px;margin:0;}.x-dlg .x-dlg-hd-right{background:url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0;padding-right:3px;}.x-dlg .x-dlg-dlg-body{background:url(../images/default/layout/gradient-bg.gif);border:1px solid #6593cf;border-top:0 none;padding:10px;overflow:hidden;position:absolute;}.x-dlg .x-dlg-bd{overflow:hidden;}.x-dlg .x-dlg-ft{overflow:hidden;padding:5px;padding-bottom:0;}.x-dlg .roo-tabbody{background:white;overflow:auto;}.x-dlg .x-tabs-top .roo-tabbody{border:1px solid #6593cf;border-top:0 none;}.x-dlg .x-tabs-bottom .roo-tabbody{border:1px solid #6593cf;border-bottom:0 none;}.x-dlg .x-layout-container .roo-tabbody{border:0 none;}.x-dlg .inner-tab{margin:5px;}.x-dlg .x-dlg-ft .x-btn{margin-right:5px;float:right;clear:none;}.x-dlg .x-dlg-ft .x-dlg-btns td{border:0;padding:0;}.x-dlg .x-dlg-ft .x-dlg-btns-right table{float:right;clear:none;}.x-dlg .x-dlg-ft .x-dlg-btns-left table{float:left;clear:none;}.x-dlg .x-dlg-ft .x-dlg-btns-center{text-align:center;}.x-dlg .x-dlg-ft .x-dlg-btns-center table{margin:0 auto;}.x-dlg-draggable .x-dlg-hd{cursor:move;}.x-dlg-closable .x-dlg-hd{padding-right:22px;}.x-dlg .x-dlg-close{position:absolute;top:4px;right:4px;z-index:6;height:15px;width:15px;margin:0;padding:0;line-height:1px;font-size:1px;background-repeat:no-repeat;cursor:pointer;visibility:inherit;background-image:url(../images/default/basic-dialog/close.gif);}.x-dlg div.x-resizable-handle-east{background-image:url(../images/default/sizer/e-handle-dark.gif);border:0;background-position:left;margin-right:0;}.x-dlg div.x-resizable-handle-south{background-image:url(../images/default/sizer/s-handle-dark.gif);border:0;height:6px;}.x-dlg div.x-resizable-handle-west{background-image:url(../images/default/sizer/e-handle-dark.gif);border:0;background-position:1px;}.x-dlg div.x-resizable-handle-north{background-image:url(../images/default/s.gif);border:0;}.x-dlg div.x-resizable-handle-northeast,.x-theme-gray .x-dlg div.x-resizable-handle-northeast{background-image:url(../images/default/s.gif);border:0;}.x-dlg div.x-resizable-handle-northwest,.x-theme-gray .x-dlg div.x-resizable-handle-northwest{background-image:url(../images/default/s.gif);border:0;}.x-dlg div.x-resizable-handle-southeast{background-image:url(../images/default/sizer/corners-sprite.gif);background-position:top left;width:8px;height:8px;border:0;}.x-dlg div.x-resizable-handle-southwest{background-image:url(../images/default/sizer/corners-sprite.gif);background-position:top right;margin-left:1px;margin-bottom:1px;border:0;}#x-msg-box .x-dlg-ft .x-btn{float:none;clear:none;margin:0 3px;}#x-msg-box .x-dlg-bd{padding:5px;overflow:hidden!important;}#x-msg-box .roo-mb-input{margin-top:4px;width:95%;}#x-msg-box .roo-mb-textarea,#x-msg-box .roo-mb-text{margin-top:4px;font:normal 13px "sans serif",tahoma,verdana,helvetica;display:inline;}#x-msg-box .roo-mb-progress-wrap{margin-top:4px;border:1px solid #6593cf;}#x-msg-box .roo-mb-progress{height:18px;background:transparent url(../images/default/basic-dialog/progress2.gif) repeat-x 1px 1px;}#x-msg-box .roo-mb-progress-bar{height:18px;overflow:hidden;width:0;background:#8bb8f3;}
+.x-dlg-proxy{background-image:url(../images/default/gradient-bg.gif);background-color:#c3daf9;border:1px solid #6593cf;z-index:10001;overflow:hidden;position:absolute;left:0;top:0;}.x-dlg-shadow{background:#aaa;position:absolute;left:0;top:0;}.x-dlg-focus{-moz-outline:0 none;outline:0 none;width:0;height:0;overflow:hidden;position:absolute;top:0;left:0;}.x-dlg-mask{z-index:10000;display:none;position:absolute;top:0;left:0;-moz-opacity:.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;}.x-dlg-mask.roo-form-top-mask,.x-dlg-mask.roo-form-left-mask,.x-dlg-mask.roo-form-bottom-mask,.x-dlg-mask.roo-form-right-mask{background-color:gray;}body.masked select{visibility:hidden;}body.masked .x-dlg select{visibility:visible;}.x-dlg{z-index:10001;overflow:hidden;position:absolute;left:300;top:0;}.x-resizable-proxy{z-index:10002;}.x-dlg .x-dlg-hd{background:url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px;background-color:navy;color:#fff;font:bold 12px "sans serif",tahoma,verdana,helvetica;overflow:hidden;padding:5px;}.x-dlg .x-dlg-hd-left{background:url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px;padding-left:3px;margin:0;}.x-dlg .x-dlg-hd-right{background:url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0;padding-right:3px;}.x-dlg .x-dlg-dlg-body{background:url(../images/default/layout/gradient-bg.gif);border:1px solid #6593cf;border-top:0 none;padding:10px;overflow:hidden;position:absolute;}.x-dlg .x-dlg-bd{overflow:hidden;}.x-dlg .x-dlg-ft{overflow:hidden;padding:5px;padding-bottom:0;}.x-dlg .roo-tabbody{background:white;overflow:auto;}.x-dlg .x-tabs-top .roo-tabbody{border:1px solid #6593cf;border-top:0 none;}.x-dlg .x-tabs-bottom .roo-tabbody{border:1px solid #6593cf;border-bottom:0 none;}.x-dlg .x-layout-container .roo-tabbody{border:0 none;}.x-dlg .inner-tab{margin:5px;}.x-dlg .x-dlg-ft .x-btn{margin-right:5px;float:right;clear:none;}.x-dlg .x-dlg-ft .x-dlg-btns td{border:0;padding:0;}.x-dlg .x-dlg-ft .x-dlg-btns-right table{float:right;clear:none;}.x-dlg .x-dlg-ft .x-dlg-btns-left table{float:left;clear:none;}.x-dlg .x-dlg-ft .x-dlg-btns-center{text-align:center;}.x-dlg .x-dlg-ft .x-dlg-btns-center table{margin:0 auto;}.x-dlg-draggable .x-dlg-hd{cursor:move;}.x-dlg-closable .x-dlg-hd{padding-right:22px;}.x-dlg .x-dlg-close{position:absolute;top:4px;right:4px;z-index:6;height:15px;width:15px;margin:0;padding:0;line-height:1px;font-size:1px;background-repeat:no-repeat;cursor:pointer;visibility:inherit;background-image:url(../images/default/basic-dialog/close.gif);}.x-dlg div.x-resizable-handle-east{background-image:url(../images/default/sizer/e-handle-dark.gif);border:0;background-position:left;margin-right:0;}.x-dlg div.x-resizable-handle-south{background-image:url(../images/default/sizer/s-handle-dark.gif);border:0;height:6px;}.x-dlg div.x-resizable-handle-west{background-image:url(../images/default/sizer/e-handle-dark.gif);border:0;background-position:1px;}.x-dlg div.x-resizable-handle-north{background-image:url(../images/default/s.gif);border:0;}.x-dlg div.x-resizable-handle-northeast,.x-theme-gray .x-dlg div.x-resizable-handle-northeast{background-image:url(../images/default/s.gif);border:0;}.x-dlg div.x-resizable-handle-northwest,.x-theme-gray .x-dlg div.x-resizable-handle-northwest{background-image:url(../images/default/s.gif);border:0;}.x-dlg div.x-resizable-handle-southeast{background-image:url(../images/default/sizer/corners-sprite.gif);background-position:top left;width:8px;height:8px;border:0;}.x-dlg div.x-resizable-handle-southwest{background-image:url(../images/default/sizer/corners-sprite.gif);background-position:top right;margin-left:1px;margin-bottom:1px;border:0;}#x-msg-box .x-dlg-ft .x-btn{float:none;clear:none;margin:0 3px;}#x-msg-box .x-dlg-bd{padding:5px;overflow:hidden!important;}#x-msg-box .roo-mb-input{margin-top:4px;width:95%;}#x-msg-box .roo-mb-textarea,#x-msg-box .roo-mb-text{margin-top:4px;font:normal 13px "sans serif",tahoma,verdana,helvetica;display:inline;}#x-msg-box .roo-mb-progress-wrap{margin-top:4px;border:1px solid #6593cf;}#x-msg-box .roo-mb-progress{height:18px;background:transparent url(../images/default/basic-dialog/progress2.gif) repeat-x 1px 1px;}#x-msg-box .roo-mb-progress-bar{height:18px;overflow:hidden;width:0;background:#8bb8f3;}
 .x-dd-drag-proxy{position:absolute;left:0;top:0;visibility:hidden;z-index:15000;}.x-dd-drag-ghost{color:black;font:normal 11px arial,helvetica,sans-serif;-moz-opacity:.85;opacity:.85;filter:alpha(opacity=85);border-top:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:3px;padding-left:20px;background-color:white;white-space:nowrap;}.x-dd-drag-repair .x-dd-drag-ghost{-moz-opacity:.4;opacity:.4;filter:alpha(opacity=40);border:0 none;padding:0;background-color:transparent;}.x-dd-drag-repair .x-dd-drop-icon{visibility:hidden;}.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1;}.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../images/default/dd/drop-no.gif);}.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../images/default/dd/drop-yes.gif);}.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../images/default/dd/drop-add.gif);}.x-dd-drop-ok-sub .x-dd-drop-icon{background-image:url(../images/default/dd/drop-sub.gif);}.x-dd-drop-above .x-dd-drop-icon{background-image:url(../images/default/tree/drop-over.gif);}.x-dd-drop-below .x-dd-drop-icon{background-image:url(../images/default/tree/drop-under.gif);}.col-move-bottom{display:none;}.col-move-top{display:none;}
 .x-tree-icon,.x-tree-ec-icon,.x-tree-elbow-line,.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{border:0 none;height:18px;margin:0;padding:0;vertical-align:middle;width:16px;}.x-tree-node-collapsed .x-tree-node-icon,.x-tree-node-expanded .x-tree-node-icon,.x-tree-node-leaf .x-tree-node-icon{border:0 none;height:16px;margin:0;padding:0;vertical-align:middle;width:16px;background-position:center;}.x-tree-node-collapsed .x-tree-node-icon{background:transparent url(../images/default/tree/folder.gif);}.x-tree-node-expanded .x-tree-node-icon{background:transparent url(../images/default/tree/folder-open.gif);}.x-tree-node-leaf .x-tree-node-icon{background:transparent url(../images/default/tree/leaf.gif);}.x-tree-node-loading .x-tree-node-icon{background:transparent url(../images/default/tree/loading.gif)!important;}.x-tree-node-loading a span{font-style:italic;color:#444;}.x-tree-lines .x-tree-elbow{background:transparent url(../images/default/tree/elbow.gif);}.x-tree-lines .x-tree-elbow-plus{background:transparent url(../images/default/tree/elbow-plus.gif);}.x-tree-lines .x-tree-elbow-minus{background:transparent url(../images/default/tree/elbow-minus.gif);}.x-tree-lines .x-tree-elbow-end{background:transparent url(../images/default/tree/elbow-end.gif);}.x-tree-lines .x-tree-elbow-end-plus{background:transparent url(../images/default/tree/elbow-end-plus.gif);}.x-tree-lines .x-tree-elbow-end-minus{background:transparent url(../images/default/tree/elbow-end-minus.gif);}.x-tree-lines .x-tree-elbow-line{background:transparent url(../images/default/tree/elbow-line.gif);}.x-tree-no-lines .x-tree-elbow{background:transparent;}.x-tree-no-lines .x-tree-elbow-plus{background:transparent url(../images/default/tree/elbow-plus-nl.gif);}.x-tree-no-lines .x-tree-elbow-minus{background:transparent url(../images/default/tree/elbow-minus-nl.gif);}.x-tree-no-lines .x-tree-elbow-end{background:transparent;}.x-tree-no-lines .x-tree-elbow-end-plus{background:transparent url(../images/default/tree/elbow-end-plus-nl.gif);}.x-tree-no-lines .x-tree-elbow-end-minus{background:transparent url(../images/default/tree/elbow-end-minus-nl.gif);}.x-tree-no-lines .x-tree-elbow-line{background:transparent;}.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer;}.x-tree-node{color:black;font:normal 11px arial,helvetica,sans-serif;white-space:nowrap;}.x-tree-node a,.x-dd-drag-ghost a{text-decoration:none;color:black;-khtml-user-select:normal;-moz-user-select:normal;}.x-tree-node a span,.x-dd-drag-ghost a span{text-decoration:none;color:black;padding:1px 3px 1px 2px;}.x-tree-node .x-tree-node-disabled a span{color:gray!important;}.x-tree-node .x-tree-node-disabled .x-tree-node-icon{-moz-opacity:.5;opacity:.5;filter:alpha(opacity=50);}.x-tree-node .x-tree-node-inline-icon{background:transparent;}.x-tree-node a:hover,.x-dd-drag-ghost a:hover{text-decoration:none;}.x-tree-node div.x-tree-drag-insert-below{border-bottom:1px dotted #36c;}.x-tree-node div.x-tree-drag-insert-above{border-top:1px dotted #36c;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{border-bottom:0 none;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{border-top:0 none;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #36c;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #36c;}.x-tree-node .x-tree-drag-append a span{background:#ddd;border:1px dotted gray;}.x-tree-node .x-tree-selected a span{background:#36c;color:white;}.x-dd-drag-ghost .x-tree-node-indent,.x-dd-drag-ghost .x-tree-ec-icon{display:none!important;}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/default/tree/drop-add.gif);}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/default/tree/drop-over.gif);}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/default/tree/drop-under.gif);}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/default/tree/drop-between.gif);}.x-layer-shadow{background:#ccc;opacity:.3;-moz-opacity:.3;filter:alpha(opacity=30);}.x-column-tree .x-tree-node{zoom:1;}.x-column-tree .x-tree-node-el{border-bottom:1px solid #eee;border-right:1px solid #ccc;zoom:1;}.x-column-tree .x-tree-selected{background:#d9e8fb;}.x-column-tree .x-tree-node a{line-height:18px;vertical-align:middle;}.x-column-tree .x-tree-node .x-tree-selected a span{background:transparent;color:#000;}.x-column-tree .x-tree-col{float:left;overflow:hidden;padding:0;border-left:1px solid #ccc;height:18px;zoom:1;}.x-column-tree .x-tree-col-text,.x-column-tree .x-tree-hd-text{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:3px 3px 3px 5px;white-space:nowrap;font:normal 11px arial,tahoma,helvetica,sans-serif;}.x-column-tree .x-tree-headers{background:#EBEADB url(../images/gray/grid/grid-hrow.gif) repeat-x scroll 0 0;cursor:default;zoom:1;}.x-column-tree .x-tree-hd{float:left;overflow:hidden;border-left:1px solid #eee;border-right:1px solid #d0d0d0;}
 .x-tip{position:absolute;top:0;visibility:hidden;z-index:11000;}.x-tip .x-tip-bd{background:#e0e8f3 url(../images/default/qtip/bg.gif) repeat-x;border:1px solid #a3bad9;font:normal 11px arial,helvetica,sans-serif;padding:5px;}.x-tip .x-tip-close{background-image:url(../images/default/basic-dialog/close.gif);height:15px;position:absolute;right:3px;top:3px;width:15px;}.x-tip .x-tip-hd{background:url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px;background-color:navy;color:#FFF;display:block;font:bold 11px tahoma,arial,verdana,helvetica;padding:4px;}.x-tip .x-tip-hd-left{background:url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px;display:block;margin:0;padding-left:3px;}.x-tip .x-tip-hd-right{background:url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0;display:block;padding-right:3px;}x\:qtip,qtip{display:none;}
 x-date{background:white;padding:2px;border:1px solid gray;z-index:12001;-moz-outline:none;position:absolute;display:none;top:0;left:0;}.x-date-shadow{background:#ddd;filter:progid:DXImageTransform.Microsoft.Blur(MakeShadow=true,pixelradius=1) Alpha(opacity=35,style=1,startX=0,finishX=200,FinishOpacity=35);padding:0;position:absolute;z-index:12000;display:none;top:0;left:0;}.x-date-head{width:150px;background:#93b5e4;}.x-date-head td{padding:1px;}.x-date-month{color:white;font:bold 7pt verdana;text-decoration:none;text-align:center;}.x-date-head .x-date-arrow{width:16px;text-align:center;cursor:pointer;-moz-user-select:none;}.x-date-picker{background:#ccc;width:190px;}.x-date-picker td{color:#aaa;cursor:pointer;font:normal 8pt arial;}td.x-date-middle{background:url(../images/default/basic-dialog/hd-sprite.gif);}td.x-date-middle td{background:none;color:#000;font-weight:bold;}td.x-date-right,td.x-date-left{background:url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 0;text-align:center;width:18px;}td.x-date-right a{background:url(../images/default/grid/arrow-right-white.gif) no-repeat right center;cursor:pointer;text-decoration:none;width:18px;height:18px;}td.x-date-left a{background:url(../images/default/grid/arrow-left-white.gif) no-repeat 0 center;cursor:pointer;text-decoration:none;width:18px;height:18px;}.x-date-inner{background-color:white;position:relative;text-align:center;display:block;overflow:hidden;border-collapse:separate;}table.x-date-inner{table-layout:fixed;width:100%;}.x-date-inner td a{width:26px;height:26px;border-collapse:separate;display:block;}.x-date-mp a,.x-date-inner a{text-decoration:none;font-weight:bold;color:#000;}.x-date-picker td.x-date-today{border:1px solid darkred;}.x-date-picker .x-date-inner th{text-align:center!important;border:0;border-bottom:1px solid #ccc;font-size:8pt;font-weight:normal;text-align:right;color:black;cursor:default;}.x-date-picker td.active{cursor:pointer;color:black;}.x-date-picker td.x-date-disabled{cursor:default;background:#eee;border:1px solid #eee;color:#bbb;}.x-date-mp td.x-date-mp-sel,.x-date-picker td.x-date-selected{background:#ddecfe;border:1px solid #c3daf9;}.x-date-today{color:black;cursor:hand;font:normal 8pt arial;text-decoration:none;}.x-date-prevday,.x-date-nextday{background-color:#eee;}.x-date-mp{background-color:#ccc;display:none;position:absolute;top:0;left:0;}.x-date-mp table{text-align:center;background-color:#fff;}.x-date-picker td.x-date-middle td.x-btn-center button{color:white;}.x-date-bottom .ytb-spacer{display:none;}.x-menu-plain .x-color-palette,.x-menu-plain .x-date-picker{border:none;margin:0;}.x-menu .x-color-palette,.x-menu .x-date-picker{margin-left:32px;margin-right:4px;}.x-color-palette{pointer:pointer;width:150px;height:92px;}.x-color-palette a{border:1px solid white;pointer:pointer;float:left;padding:2px;text-decoration:none;outline:white none 0;}.x-color-palette em span{pointer:pointer;display:block;width:10px;height:10px;line-height:10px;}.x-color-palette em{display:block;border:1pt solid black;}
-.x-combo-list{background-color:white;border:1px solid #afafaf;cursor:default;}.x-combo-list-inner{overflow:auto;}.x-combo-list-item{padding-left:2px;padding-top:0;margin:0;padding-bottom:2px;white-space:nowrap;}.x-combo-selected{background-color:#ABC9C2;color:black;border:1px solid #5e8a7f;}.x-form-date-trigger,.x-form-arrow-trigger{width:17px;height:19px;background:url(../images/default/combo/arrow.gif);background-repeat:no-repeat;background-position:center;}.roo-ie .x-form-field-wrap .x-form-trigger,.roo-ie .x-toolbar .x-form-arrow-trigger{margin:0;}.roo-ie .x-form-arrow-trigger,.roo-ie .x-form-date-trigger{height:18px;}.x-form .x-form-combo-add,.x-form .x-form-combo-edit{background:transparent url(../images/default/dd/drop-add.gif) no-repeat scroll 0 0;border-style:none none solid;cursor:pointer;height:21px;position:absolute;top:2;width:17px;margin-left:20px;}.x-form .x-form-combo-edit{background:transparent url(../images/default/tree/leaf.gif) no-repeat scroll 0 0;}.x-combo-list-inner .x-btn{text-align:left;font:12px arial,tahoma,verdana,helvetica;}.x-cbarray-item{display:inline-block;background:#e0ecff none no-repeat scroll 0 0;float:left;height:18px;-moz-border-radius:2px;margin:2px;float:left font-family:arial,tahoma,helvetica,sans-serif;font-size:11px;font-size-adjust:none;font-style:normal;font-variant:normal;font-weight:normal;}.x-cbarray-item div{display:inline-block;float:left;margin:2px;margin-left:5px;}.x-cbarray-item img{margin-left:5px;background:transparent url(../images/default/dd/drop-sub.gif) no-repeat scroll 0 0;cursor:pointer;}.x-cbarray-cb{float:left;}.x-cbarray-grp{padding:2px;border:1px solid #e0ecff;display:inline-block;}.x-cbarray-grp input.x-form-text,.x-cbarray-grp img.x-form-trigger{float:left;}
+.x-combo-list{background-color:white;border:1px solid #afafaf;cursor:default;}.x-combo-list-inner{overflow:auto;}.x-combo-list-item{padding-left:2px;padding-top:0;margin:0;padding-bottom:2px;white-space:nowrap;}.x-combo-selected{background-color:#ABC9C2;color:black;border:1px solid #5e8a7f;}.x-form-date-trigger,.x-form-arrow-trigger{width:17px;height:19px;background:url(../images/default/combo/arrow.gif);background-repeat:no-repeat;background-position:center;}.roo-ie .x-form-field-wrap .x-form-trigger,.roo-ie .x-toolbar .x-form-arrow-trigger{margin:0;}.roo-ie .x-form-arrow-trigger,.roo-ie .x-form-date-trigger{height:18px;}.x-form .x-form-combo-add,.x-form .x-form-combo-edit{background:transparent url(../images/default/dd/drop-add.gif) no-repeat scroll 0 0;border-style:none none solid;cursor:pointer;height:21px;position:absolute;top:2;width:17px;margin-left:20px;}.x-form .x-form-combo-edit{background:transparent url(../images/default/tree/leaf.gif) no-repeat scroll 0 0;}.x-combo-list-inner .x-btn{text-align:left;font:12px arial,tahoma,verdana,helvetica;}.x-cbarray-item{display:inline-block;background:#e0ecff none no-repeat scroll 0 0;float:left;height:18px;-moz-border-radius:2px;margin:2px;float:left font-family:arial,tahoma,helvetica,sans-serif;font-size:11px;font-size-adjust:none;font-style:normal;font-variant:normal;font-weight:normal;}.x-cbarray-item div{display:inline-block;float:left;margin:2px;margin-left:5px;}.x-cbarray-item img{margin-left:5px;background:transparent url(../images/default/dd/drop-sub.gif) no-repeat scroll 0 0;cursor:pointer;}.x-cbarray-cb{float:left;}.x-cbarray-grp{padding:2px;border:1px solid #e0ecff;display:inline-block;}.x-cbarray-grp input.x-form-text,.x-cbarray-grp img.x-form-trigger{float:left;}.x-combo-list-item.x-combo-list-item-has-children:after{content:'>';float:right;margin-right:2px;}
 .x-form-daypick-item td div{width:30px;text-align:center;}.x-form-daypick-icons td img{background:url(../images/default/menu/chk-sprite.gif) no-repeat 0 0;width:16px;height:16px;margin:0;margin-left:5px;cursor:pointer;}.x-form-daypick-icons td img.x-menu-item-checked{background-position:0 -16px;}
 .x-html-editor-wrap{background-color:#fff;border:1px solid #a3bac9;}.x-html-editor-tb{height:24px;}.x-html-editor-tb .x-toolbar{height:24px;}.x-html-editor-tb .x-toolbar>table{position:absolute;}.x-html-editor-tb .x-btn-text{background:transparent url(../images/default/form/htmleditor.gif) no-repeat scroll 0 0;}.x-html-editor-tb .x-btn-text{min-width:18px;}.x-html-editor-tb .x-edit-bold .x-btn-text{background-position:0 0;}.x-html-editor-tb .x-edit-italic .x-btn-text{background-position:0 -16px;}.x-html-editor-tb .x-edit-underline .x-btn-text{background-position:0 -32px;}.x-html-editor-tb .x-edit-strikethrough .x-btn-text{background-position:0 -223px;}.x-html-editor-tb .x-edit-increasefontsize .x-btn-text{background-position:0 -48px;}.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text{background-position:0 -64px;}.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text{background-position:0 -80px;}.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text{background-position:0 -96px;}.x-html-editor-tb .x-edit-justifyleft .x-btn-text{background-position:0 -112px;}.x-html-editor-tb .x-edit-justifycenter .x-btn-text{background-position:0 -128px;}.x-html-editor-tb .x-edit-justifyright .x-btn-text{background-position:0 -144px;}.x-html-editor-tb .x-edit-forecolor .x-btn-text{background-position:0 -160px;}.x-html-editor-tb .x-edit-backcolor .x-btn-text{background-position:0 -176px;}.x-html-editor-tb .x-edit-sourceedit .x-btn-text{background-position:0 -192px;}.x-html-editor-tb .x-edit-createlink .x-btn-text{background-position:0 -208px;}.x-html-editor-tb .x-edit-none .x-btn-text{background:transparent none 0 0;}.x-html-editor-tb .x-toolbar .x-btn{margin-left:0;margin-right:0;}.x-html-editor-wrap .x-toolbar{height:20px;}.x-html-editor-wrap .x-editor-context span{cursor:pointer;}.x-html-editor-wrap .x-editor-context span:hover{text-decoration:underline;}.roo-htmleditor-body ol li{list-style:decimal outside;}.roo-htmleditor-body ul li{list-style:disc outside;}.roo-htmleditor-body ol,.roo-htmleditor-body ul,.roo-htmleditor-body dl{margin-left:2em;}
index 2bd8b2c..53046b8 100644 (file)
         "desc" : "default false",
         "memberOf" : ""
       },
+      {
+        "name" : "height",
+        "type" : "Number",
+        "desc" : "fixed height - usefull for chrome extension only really.",
+        "memberOf" : ""
+      },
       {
         "name" : "hideMode",
         "type" : "String",
         ],
         "memberOf" : "Roo.bootstrap.Component"
       },
+      {
+        "name" : "width",
+        "type" : "Number",
+        "desc" : "fixed width - usefull for chrome extension only really.",
+        "memberOf" : ""
+      },
       {
         "name" : "xattr",
         "type" : "Object",
         "static" : false,
         "memberOf" : "Roo.data.Store"
       },
+      {
+        "name" : "loadDataFromChildren",
+        "type" : "function",
+        "desc" : "using 'cn' the nested child reader read the child array into it's child stores.",
+        "sig" : "(rec)",
+        "static" : false,
+        "memberOf" : "Roo.data.Store"
+      },
       {
         "name" : "on",
         "type" : "function",
   },
   "Roo.data.SimpleStore" : {
     "props" : [
+      {
+        "name" : "an",
+        "type" : "Object",
+        "desc" : "existing reader (eg. copied from another store)",
+        "memberOf" : ""
+      },
       {
         "name" : "baseParams",
         "type" : "Object",
         "static" : false,
         "memberOf" : "Roo.data.Store"
       },
+      {
+        "name" : "loadDataFromChildren",
+        "type" : "function",
+        "desc" : "using 'cn' the nested child reader read the child array into it's child stores.",
+        "sig" : "(rec)",
+        "static" : false,
+        "memberOf" : "Roo.data.Store"
+      },
       {
         "name" : "on",
         "type" : "function",
         "static" : false,
         "memberOf" : ""
       },
+      {
+        "name" : "loadDataFromChildren",
+        "type" : "function",
+        "desc" : "using 'cn' the nested child reader read the child array into it's child stores.",
+        "sig" : "(rec)",
+        "static" : false,
+        "memberOf" : ""
+      },
       {
         "name" : "on",
         "type" : "function",
         "desc" : "Parameters to pass with all requests. e.g. baseParams: {id: '123', foo: 'bar'}.",
         "memberOf" : ""
       },
+      {
+        "name" : "errorMask",
+        "type" : "Boolean",
+        "desc" : [
+          "(true",
+          "false)"
+        ],
+        "memberOf" : ""
+      },
       {
         "name" : "errorReader",
         "type" : "DataReader",
         "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
         "memberOf" : "Roo.util.Observable"
       },
+      {
+        "name" : "maskOffset",
+        "type" : "Number",
+        "desc" : "Default 100",
+        "memberOf" : ""
+      },
       {
         "name" : "method",
         "type" : "String",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "alwaysQuery",
         "type" : "Boolean",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "autoCreate",
         "type" : "String/Object",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "alwaysQuery",
         "type" : "Boolean",
       }
     ]
   },
-  "Roo.form.DateField" : {
+  "Roo.form.ComboNested" : {
     "props" : [
       {
         "name" : "actionMode",
         "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el'",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allQuery",
+        "type" : "String",
+        "desc" : "The text query to send to the server to return all records for the list with no filtering (defaults to '')",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "allowBlank",
         "type" : "Boolean",
         "memberOf" : "Roo.Component"
       },
       {
-        "name" : "altFormats",
-        "type" : "String",
-        "desc" : "Multiple date formats separated by \"|\" to try when parsing a user input value and it doesn't match the defined\nformat (defaults to 'm/d/Y|m-d-y|m-d-Y|m/d|m-d|d').",
-        "memberOf" : ""
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "alwaysQuery",
+        "type" : "Boolean",
+        "desc" : "Disable caching of results, and always send query",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "autoCreate",
-        "type" : "String/Object",
-        "desc" : "A DomHelper element spec, or true for a default element spec (defaults to\n{tag: \"input\", type: \"text\", size: \"10\", autocomplete: \"off\"})",
-        "memberOf" : ""
+        "type" : "Boolean/Object",
+        "desc" : "A DomHelper element spec, or true for a default element spec (defaults to:\n{tag: \"input\", type: \"text\", size: \"24\", autocomplete: \"off\"})",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "blankText",
         "desc" : "Error text to display if the allow blank validation fails (defaults to \"This field is required\")",
         "memberOf" : "Roo.form.TextField"
       },
+      {
+        "name" : "blockFocus",
+        "type" : "Boolean",
+        "desc" : "Prevents all focus calls, so it can work with things like HTML edtor bar",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "cls",
         "type" : "String",
         "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "disableClear",
+        "type" : "Boolean",
+        "desc" : "Disable showing of clear button.",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "disableKeyFilter",
         "type" : "Boolean",
         "memberOf" : "Roo.form.Field"
       },
       {
-        "name" : "disabledDates",
-        "type" : "Array",
-        "desc" : "An array of \"dates\" to disable, as strings. These strings will be used to build a dynamic regular\nexpression so they are very powerful. Some examples:\n<ul>\n<li>[\"03/08/2003\", \"09/16/2003\"] would disable those exact dates</li>\n<li>[\"03/08\", \"09/16\"] would disable those days for every year</li>\n<li>[\"^03/08\"] would only match the beginning (useful if you are using short years)</li>\n<li>[\"03/../2006\"] would disable every day in March 2006</li>\n<li>[\"^03\"] would disable every day in every March</li>\n</ul>\nIn order to support regular expressions, if you are using a date format that has \".\" in it, you will have to\nescape the dot when restricting dates. For example: [\"03\\\\.08\\\\.03\"].",
-        "memberOf" : ""
-      },
-      {
-        "name" : "disabledDatesText",
+        "name" : "displayField",
         "type" : "String",
-        "desc" : "The tooltip text to display when the date falls on a disabled date (defaults to 'Disabled')",
-        "memberOf" : ""
-      },
-      {
-        "name" : "disabledDays",
-        "type" : "Array",
-        "desc" : "An array of days to disable, 0 based. For example, [0, 6] disables Sunday and Saturday (defaults to null).",
-        "memberOf" : ""
+        "desc" : "The underlying data field name to bind to this CombBox (defaults to undefined if\nmode = 'remote' or 'text' if mode = 'local')",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
-        "name" : "disabledDaysText",
-        "type" : "String",
-        "desc" : "The tooltip to display when the date falls on a disabled day (defaults to 'Disabled')",
-        "memberOf" : ""
+        "name" : "editable",
+        "type" : "Boolean",
+        "desc" : "False to prevent the user from typing text directly into the field, just like a\ntraditional select (defaults to true)",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "emptyText",
         "memberOf" : "Roo.form.Field"
       },
       {
-        "name" : "format",
-        "type" : "String",
-        "desc" : "The default date format string which can be overriden for localization support.  The format must be\nvalid according to {@link Date#parseDate} (defaults to 'm/d/y').",
-        "memberOf" : ""
+        "name" : "forceSelection",
+        "type" : "Boolean",
+        "desc" : "True to restrict the selected value to one of the values in the list, false to\nallow the user to set arbitrary text into the field (defaults to false)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "grow",
+        "type" : "Boolean",
+        "desc" : "",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "growMax",
+        "type" : "Number",
+        "desc" : "",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "growMin",
+        "type" : "Number",
+        "desc" : "",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "handleHeight",
+        "type" : "Number",
+        "desc" : "The height in pixels of the dropdown list resize handle if resizable = true (defaults to 8)",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "height",
         "desc" : "height (optional) size of component",
         "memberOf" : "Roo.BoxComponent"
       },
+      {
+        "name" : "hiddenName",
+        "type" : "String",
+        "desc" : "If specified, a hidden form field with this name is dynamically generated to store the\nfield's data value (defaults to the underlying DOM element's name)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "hideMode",
         "type" : "String",
       {
         "name" : "invalidText",
         "type" : "String",
-        "desc" : "The error text to display when the date in the field is invalid (defaults to\n'{value} is not a valid date - it must be in the format {format}').",
-        "memberOf" : ""
+        "desc" : "The error text to use when marking a field invalid and no message is provided (defaults to \"The value in this field is invalid\")",
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "lazyRender",
+        "type" : "Boolean",
+        "desc" : "True to prevent the ComboBox from rendering until requested (should always be used when\nrendering into an Roo.Editor, defaults to false)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "listAlign",
+        "type" : "String",
+        "desc" : "A valid anchor position value. See {@link Roo.Element#alignTo} for details on supported\nanchor positions (defaults to 'tl-bl')",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "listClass",
+        "type" : "String",
+        "desc" : "CSS class to apply to the dropdown list element (defaults to '')",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "listWidth",
+        "type" : "Number",
+        "desc" : "The width in pixels of the dropdown list (defaults to the width of the ComboBox field)",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "listeners",
         "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
         "memberOf" : "Roo.util.Observable"
       },
+      {
+        "name" : "loadingText",
+        "type" : "String",
+        "desc" : "The text to display in the dropdown list while data is loading.  Only applies\nwhen mode = 'remote' (defaults to 'Loading...')",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "maskRe",
         "type" : "String",
         "desc" : "An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)",
         "memberOf" : "Roo.form.TextField"
       },
+      {
+        "name" : "maxHeight",
+        "type" : "Number",
+        "desc" : "The maximum height in pixels of the dropdown list before scrollbars are shown (defaults to 300)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "maxLength",
         "type" : "Number",
         "memberOf" : "Roo.form.TextField"
       },
       {
-        "name" : "maxText",
-        "type" : "String",
-        "desc" : "The error text to display when the date in the cell is after maxValue (defaults to\n'The date in this field must be before {maxValue}').",
-        "memberOf" : ""
-      },
-      {
-        "name" : "maxValue",
-        "type" : "Date/String",
-        "desc" : "The maximum allowed date. Can be either a Javascript date object or a string date in a\nvalid format (defaults to null).",
-        "memberOf" : ""
+        "name" : "minChars",
+        "type" : "Number",
+        "desc" : "The minimum number of characters the user must type before autocomplete and typeahead activate\n(defaults to 4, does not apply if editable = false)",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "minLength",
         "memberOf" : "Roo.form.TextField"
       },
       {
-        "name" : "minText",
-        "type" : "String",
-        "desc" : "The error text to display when the date in the cell is before minValue (defaults to\n'The date in this field must be after {minValue}').",
-        "memberOf" : ""
+        "name" : "minListWidth",
+        "type" : "Number",
+        "desc" : "The minimum width of the dropdown list in pixels (defaults to 70, will be ignored if\nlistWidth has a higher value)",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
-        "name" : "minValue",
-        "type" : "Date/String",
-        "desc" : "The minimum allowed date. Can be either a Javascript date object or a string date in a\nvalid format (defaults to null).",
-        "memberOf" : ""
+        "name" : "mode",
+        "type" : "String",
+        "desc" : "Set to 'local' if the ComboBox loads local data (defaults to 'remote' which loads from the server)",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "msgFx",
         "desc" : "The field's HTML name attribute.",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "pageSize",
+        "type" : "Number",
+        "desc" : "If greater than 0, a paging toolbar is displayed in the footer of the dropdown list and the\nfilter queries will execute with page start and limit parameters.  Only applies when mode = 'remote' (defaults to 0)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "qtip",
         "type" : "String",
         "desc" : "Mouse over tip",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "queryDelay",
+        "type" : "Number",
+        "desc" : "The length of time in milliseconds to delay between the start of typing and sending the\nquery to filter the dropdown list (defaults to 500 if mode = 'remote' or 10 if mode = 'local')",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "queryParam",
+        "type" : "String",
+        "desc" : "Name of the query as it will be passed on the querystring (defaults to 'query')",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "readOnly",
         "type" : "Boolean",
         "desc" : "The error text to display if {@link #regex} is used and the test fails during validation (defaults to \"\")",
         "memberOf" : "Roo.form.TextField"
       },
+      {
+        "name" : "resizable",
+        "type" : "Boolean",
+        "desc" : "True to add a resize handle to the bottom of the dropdown list (defaults to false)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "selectOnFocus",
         "type" : "Boolean",
-        "desc" : "True to automatically select any existing field text when the field receives input focus (defaults to false)",
-        "memberOf" : "Roo.form.TextField"
+        "desc" : "True to select any existing text in the field immediately on focus.  Only applies\nwhen editable = true (defaults to false)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "selectedClass",
+        "type" : "String",
+        "desc" : "CSS class to apply to the selected item in the dropdown list (defaults to 'x-combo-selected')",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "shadow",
+        "type" : "Boolean/String",
+        "desc" : "True or \"sides\" for the default effect, \"frame\" for 4-way shadow, and \"drop\" for bottom-right",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "store",
+        "type" : "Roo.data.Store",
+        "desc" : "The data store to which this combo is bound (defaults to undefined)",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "tabIndex",
         "desc" : "The tabIndex for this field. Note this only applies to fields that are rendered, not those which are built via applyTo (defaults to undefined).",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "title",
+        "type" : "String",
+        "desc" : "If supplied, a header element is created containing this text and added into the top of\nthe dropdown list (defaults to undefined, with no header element)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "tpl",
+        "type" : "String/Roo.Template",
+        "desc" : "The template to use to render the output",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "transform",
+        "type" : "String/HTMLElement/Element",
+        "desc" : "The id, DOM node or element of an existing select to convert to a ComboBox",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "triggerAction",
+        "type" : "String",
+        "desc" : "The action to execute when the trigger field is activated.  Use 'all' to run the\nquery specified by the allQuery config option (defaults to 'query')",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "triggerClass",
         "type" : "String",
-        "desc" : "An additional CSS class used to style the trigger button.  The trigger will always get the\nclass 'x-form-trigger' and triggerClass will be <b>appended</b> if specified (defaults to 'x-form-date-trigger'\nwhich displays a calendar icon).",
-        "memberOf" : ""
+        "desc" : "An additional CSS class used to style the trigger button.  The trigger will always get the\nclass 'x-form-trigger' and triggerClass will be <b>appended</b> if specified (defaults to 'x-form-arrow-trigger'\nwhich displays a downward arrow icon).",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
-        "name" : "useIso",
+        "name" : "typeAhead",
         "type" : "Boolean",
-        "desc" : "if enabled, then the date field will use a hidden field to store the \nreal value as iso formated date. default (false)",
-        "memberOf" : ""
+        "desc" : "True to populate and autoselect the remainder of the text being typed after a configurable\ndelay (typeAheadDelay) if it matches a known value (defaults to false)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "typeAheadDelay",
+        "type" : "Number",
+        "desc" : "The length of time in milliseconds to wait until the typeahead text is displayed\nif typeAhead = true (defaults to 250)",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "validateOnBlur",
         "desc" : "A value to initialize this field with.",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "valueField",
+        "type" : "String",
+        "desc" : "The underlying data value name to bind to this CombBox (defaults to undefined if\nmode = 'remote' or 'value' if mode = 'local'). \nNote: use of a valueField requires the user make a selection\nin order for a value to be mapped.",
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "valueNotFoundText",
+        "type" : "String",
+        "desc" : "When using a name/value combo, if the value passed to setValue is not found in\nthe store, valueNotFoundText will be displayed as the field text if defined (defaults to undefined)",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "vtype",
         "type" : "String",
       }
     ],
     "events" : [
+      {
+        "name" : "add",
+        "type" : "function",
+        "desc" : "Fires when the 'add' icon is pressed (add a listener to enable add button)",
+        "sig" : "function (combo)\n{\n\n}",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "autosize",
         "type" : "function",
         "sig" : "function (_self)\n{\n\n}",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "beforequery",
+        "type" : "function",
+        "desc" : "Fires before all queries are processed. Return false to cancel the query or set cancel to true.\nThe event object passed has these properties:",
+        "sig" : "function (combo, query, forceAll, cancel, e)\n{\n\n}",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "beforerender",
         "type" : "function",
         "sig" : "function (_self)\n{\n\n}",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "beforeselect",
+        "type" : "function",
+        "desc" : "Fires before a list item is selected. Return false to cancel the selection.",
+        "sig" : "function (combo, record, index)\n{\n\n}",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "beforeshow",
         "type" : "function",
         "sig" : "function (_self, newValue, oldValue)\n{\n\n}",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "collapse",
+        "type" : "function",
+        "desc" : "Fires when the dropdown list is collapsed",
+        "sig" : "function (combo)\n{\n\n}",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "destroy",
         "type" : "function",
         "sig" : "function (_self)\n{\n\n}",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "edit",
+        "type" : "function",
+        "desc" : "Fires when the 'edit' icon is pressed (add a listener to enable add button)",
+        "sig" : "function (combo, record)\n{\n\n}",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "enable",
         "type" : "function",
         "sig" : "function (_self)\n{\n\n}",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "expand",
+        "type" : "function",
+        "desc" : "Fires when the dropdown list is expanded",
+        "sig" : "function (combo)\n{\n\n}",
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "focus",
         "type" : "function",
       {
         "name" : "select",
         "type" : "function",
-        "desc" : "Fires when a date is selected",
-        "sig" : "function (combo, date)\n{\n\n}",
-        "memberOf" : ""
+        "desc" : "Fires when a list item is selected",
+        "sig" : "function (combo, record, index)\n{\n\n}",
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "show",
         "static" : false,
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "clearValue",
+        "type" : "function",
+        "desc" : "Clears any text/value currently set in the field",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "collapse",
+        "type" : "function",
+        "desc" : "Hides the dropdown list if it is currently expanded. Fires the 'collapse' event on completion.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "destroy",
         "type" : "function",
         "static" : false,
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "doQuery",
+        "type" : "function",
+        "desc" : "Execute a query to filter the dropdown list.  Fires the beforequery event prior to performing the\nquery allowing the query action to be canceled if needed.",
+        "sig" : "(query, forceAll)",
+        "static" : false,
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "enable",
         "type" : "function",
         "static" : false,
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "expand",
+        "type" : "function",
+        "desc" : "Expands the dropdown list if it is currently hidden. Fires the 'expand' event on completion.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "fireEvent",
         "type" : "function",
       {
         "name" : "getValue",
         "type" : "function",
-        "desc" : "Returns the current date value of the date field.",
+        "desc" : "Returns the currently selected field value or empty string if no value is set.",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "hasChanged",
         "static" : false,
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "isExpanded",
+        "type" : "function",
+        "desc" : "Returns true if the dropdown list is expanded, else false.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "isValid",
         "type" : "function",
         "static" : false,
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "select",
+        "type" : "function",
+        "desc" : "Select an item in the dropdown list by its numeric index in the list. This function does NOT cause the select event to fire.\nThe store must be loaded and the list expanded for this function to work, otherwise use setValue.",
+        "sig" : "(index, scrollIntoView)",
+        "static" : false,
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "selectByValue",
+        "type" : "function",
+        "desc" : "Select an item in the dropdown list by its data value. This function does NOT cause the select event to fire.\nThe store must be loaded and the list expanded for this function to work, otherwise use setValue.",
+        "sig" : "(value, scrollIntoView)",
+        "static" : false,
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "selectText",
         "type" : "function",
         "static" : false,
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "setEditable",
+        "type" : "function",
+        "desc" : "Allow or prevent the user from directly editing the field text.  If false is passed,\nthe user will only be able to select from the items defined in the dropdown list.  This method\nis the runtime equivalent of setting the 'editable' config option at config time.",
+        "sig" : "(value)",
+        "static" : false,
+        "memberOf" : "Roo.form.ComboBox"
+      },
+      {
+        "name" : "setFromData",
+        "type" : "function",
+        "desc" : "Sets the value of the field based on a object which is related to the record format for the store.",
+        "sig" : "(value)",
+        "static" : false,
+        "memberOf" : "Roo.form.ComboBox"
+      },
       {
         "name" : "setPagePosition",
         "type" : "function",
       {
         "name" : "setValue",
         "type" : "function",
-        "desc" : "Sets the value of the date field.  You can pass a date object or any string that can be parsed into a valid\ndate, using DateField.format as the date format, according to the same rules as {@link Date#parseDate}\n(the default format used is \"m/d/y\").\n<br />Usage:\n<pre><code>\n//All of these calls set the same date value (May 4, 2006)\n\n//Pass a date object:\nvar dt = new Date('5/4/06');\ndateField.setValue(dt);\n\n//Pass a date string (default format):\ndateField.setValue('5/4/06');\n\n//Pass a date string (custom format):\ndateField.format = 'Y-m-d';\ndateField.setValue('2006-5-4');\n</code></pre>",
-        "sig" : "(date)",
+        "desc" : "Sets the specified value into the field.  If the value finds a match, the corresponding record text\nwill be displayed in the field.  If the value does not match the data value of an existing item,\nand the valueNotFoundText config option is defined, it will be displayed as the default field text.\nOtherwise the field will be blank (although the value will still be set).",
+        "sig" : "(value)",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.ComboBox"
       },
       {
         "name" : "setVisible",
       }
     ]
   },
-  "Roo.form.DayPicker" : {
+  "Roo.form.DateField" : {
     "props" : [
       {
         "name" : "actionMode",
         "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el'",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowBlank",
+        "type" : "Boolean",
+        "desc" : "False to validate that the value length > 0 (defaults to true)",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "allowDomMove",
         "type" : "Boolean",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "altFormats",
+        "type" : "String",
+        "desc" : "Multiple date formats separated by \"|\" to try when parsing a user input value and it doesn't match the defined\nformat (defaults to 'm/d/Y|m-d-y|m-d-Y|m/d|m-d|d').",
+        "memberOf" : ""
+      },
       {
         "name" : "autoCreate",
         "type" : "String/Object",
-        "desc" : "A DomHelper element spec, or true for a default element spec (defaults to\n{tag: \"input\", type: \"checkbox\", autocomplete: \"off\"})",
+        "desc" : "A DomHelper element spec, or true for a default element spec (defaults to\n{tag: \"input\", type: \"text\", size: \"10\", autocomplete: \"off\"})",
         "memberOf" : ""
       },
+      {
+        "name" : "blankText",
+        "type" : "String",
+        "desc" : "Error text to display if the allow blank validation fails (defaults to \"This field is required\")",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "cls",
         "type" : "String",
         "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "disableKeyFilter",
+        "type" : "Boolean",
+        "desc" : "True to disable input keystroke filtering (defaults to false)",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "disabled",
         "type" : "Boolean",
         "memberOf" : "Roo.form.Field"
       },
       {
-        "name" : "fieldClass",
+        "name" : "disabledDates",
+        "type" : "Array",
+        "desc" : "An array of \"dates\" to disable, as strings. These strings will be used to build a dynamic regular\nexpression so they are very powerful. Some examples:\n<ul>\n<li>[\"03/08/2003\", \"09/16/2003\"] would disable those exact dates</li>\n<li>[\"03/08\", \"09/16\"] would disable those days for every year</li>\n<li>[\"^03/08\"] would only match the beginning (useful if you are using short years)</li>\n<li>[\"03/../2006\"] would disable every day in March 2006</li>\n<li>[\"^03\"] would disable every day in every March</li>\n</ul>\nIn order to support regular expressions, if you are using a date format that has \".\" in it, you will have to\nescape the dot when restricting dates. For example: [\"03\\\\.08\\\\.03\"].",
+        "memberOf" : ""
+      },
+      {
+        "name" : "disabledDatesText",
         "type" : "String",
-        "desc" : "The default CSS class for the checkbox (defaults to \"x-form-field\")",
+        "desc" : "The tooltip text to display when the date falls on a disabled date (defaults to 'Disabled')",
         "memberOf" : ""
       },
+      {
+        "name" : "disabledDays",
+        "type" : "Array",
+        "desc" : "An array of days to disable, 0 based. For example, [0, 6] disables Sunday and Saturday (defaults to null).",
+        "memberOf" : ""
+      },
+      {
+        "name" : "disabledDaysText",
+        "type" : "String",
+        "desc" : "The tooltip to display when the date falls on a disabled day (defaults to 'Disabled')",
+        "memberOf" : ""
+      },
+      {
+        "name" : "emptyText",
+        "type" : "String",
+        "desc" : "The default text to display in an empty field - placeholder... (defaults to null).",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "fieldClass",
+        "type" : "String",
+        "desc" : "The default CSS class for the field (defaults to \"x-form-field\")",
+        "memberOf" : "Roo.form.Field"
+      },
       {
         "name" : "fieldLabel",
         "type" : "String",
       {
         "name" : "focusClass",
         "type" : "String",
-        "desc" : "The CSS class to use when the checkbox receives focus (defaults to undefined)",
+        "desc" : "The CSS class to use when the field receives focus (defaults to \"x-form-focus\")",
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "format",
+        "type" : "String",
+        "desc" : "The default date format string which can be overriden for localization support.  The format must be\nvalid according to {@link Date#parseDate} (defaults to 'm/d/y').",
         "memberOf" : ""
       },
       {
         ],
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "hideTrigger",
+        "type" : "Boolean",
+        "desc" : "True to hide the trigger element and display only the base text field (defaults to false)",
+        "memberOf" : "Roo.form.TriggerField"
+      },
       {
         "name" : "inputType",
         "type" : "String",
       {
         "name" : "invalidText",
         "type" : "String",
-        "desc" : "The error text to use when marking a field invalid and no message is provided (defaults to \"The value in this field is invalid\")",
-        "memberOf" : "Roo.form.Field"
+        "desc" : "The error text to display when the date in the field is invalid (defaults to\n'{value} is not a valid date - it must be in the format {format}').",
+        "memberOf" : ""
       },
       {
         "name" : "listeners",
         "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
         "memberOf" : "Roo.util.Observable"
       },
+      {
+        "name" : "maskRe",
+        "type" : "String",
+        "desc" : "An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "maxLength",
+        "type" : "Number",
+        "desc" : "Maximum input field length allowed (defaults to Number.MAX_VALUE)",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "maxLengthText",
+        "type" : "String",
+        "desc" : "Error text to display if the maximum length validation fails (defaults to \"The maximum length for this field is {maxLength}\")",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "maxText",
+        "type" : "String",
+        "desc" : "The error text to display when the date in the cell is after maxValue (defaults to\n'The date in this field must be before {maxValue}').",
+        "memberOf" : ""
+      },
+      {
+        "name" : "maxValue",
+        "type" : "Date/String",
+        "desc" : "The maximum allowed date. Can be either a Javascript date object or a string date in a\nvalid format (defaults to null).",
+        "memberOf" : ""
+      },
+      {
+        "name" : "minLength",
+        "type" : "Number",
+        "desc" : "Minimum input field length required (defaults to 0)",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "minLengthText",
+        "type" : "String",
+        "desc" : "Error text to display if the minimum length validation fails (defaults to \"The minimum length for this field is {minLength}\")",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "minText",
+        "type" : "String",
+        "desc" : "The error text to display when the date in the cell is before minValue (defaults to\n'The date in this field must be after {minValue}').",
+        "memberOf" : ""
+      },
+      {
+        "name" : "minValue",
+        "type" : "Date/String",
+        "desc" : "The minimum allowed date. Can be either a Javascript date object or a string date in a\nvalid format (defaults to null).",
+        "memberOf" : ""
+      },
       {
         "name" : "msgFx",
         "type" : "String",
         "desc" : "True to mark the field as readOnly in HTML (defaults to false) -- Note: this only sets the element's readOnly DOM attribute.",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "regex",
+        "type" : "RegExp",
+        "desc" : "A JavaScript RegExp object to be tested against the field value during validation (defaults to null).\nIf available, this regex will be evaluated only after the basic validators all return true, and will be passed the\ncurrent field value.  If the test fails, the field will be marked invalid using {@link #regexText}.",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "regexText",
+        "type" : "String",
+        "desc" : "The error text to display if {@link #regex} is used and the test fails during validation (defaults to \"\")",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "selectOnFocus",
+        "type" : "Boolean",
+        "desc" : "True to automatically select any existing field text when the field receives input focus (defaults to false)",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "tabIndex",
         "type" : "Number",
         "desc" : "The tabIndex for this field. Note this only applies to fields that are rendered, not those which are built via applyTo (defaults to undefined).",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "triggerClass",
+        "type" : "String",
+        "desc" : "An additional CSS class used to style the trigger button.  The trigger will always get the\nclass 'x-form-trigger' and triggerClass will be <b>appended</b> if specified (defaults to 'x-form-date-trigger'\nwhich displays a calendar icon).",
+        "memberOf" : ""
+      },
+      {
+        "name" : "useIso",
+        "type" : "Boolean",
+        "desc" : "if enabled, then the date field will use a hidden field to store the \nreal value as iso formated date. default (false)",
+        "memberOf" : ""
+      },
       {
         "name" : "validateOnBlur",
         "type" : "Boolean",
         "desc" : "The event that should initiate field validation. Set to false to disable\n      automatic validation (defaults to \"keyup\").",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "validator",
+        "type" : "Function",
+        "desc" : "A custom validation function to be called during field validation (defaults to null).\nIf available, this function will be called only after the basic validators all return true, and will be passed the\ncurrent field value and expected to return boolean true if the value is valid or a string error message if invalid.",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "value",
         "type" : "Mixed",
         "desc" : "A value to initialize this field with.",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "vtype",
+        "type" : "String",
+        "desc" : "A validation type name as defined in {@link Roo.form.VTypes} (defaults to null)",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "width",
         "type" : "Number",
       }
     ],
     "events" : [
+      {
+        "name" : "autosize",
+        "type" : "function",
+        "desc" : "Fires when the autosize function is triggered.  The field may or may not have actually changed size\naccording to the default logic, but this event provides a hook for the developer to apply additional\nlogic at runtime to resize the field if needed.",
+        "sig" : "function (_self, width)\n{\n\n}",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "beforedestroy",
         "type" : "function",
         "sig" : "function (_self, adjWidth, adjHeight, rawWidth, rawHeight)\n{\n\n}",
         "memberOf" : "Roo.BoxComponent"
       },
+      {
+        "name" : "select",
+        "type" : "function",
+        "desc" : "Fires when a date is selected",
+        "sig" : "function (combo, date)\n{\n\n}",
+        "memberOf" : ""
+      },
       {
         "name" : "show",
         "type" : "function",
         "static" : false,
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "autoSize",
+        "type" : "function",
+        "desc" : "",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.form.TriggerField"
+      },
       {
         "name" : "capture",
         "type" : "function",
       {
         "name" : "getValue",
         "type" : "function",
-        "desc" : "Returns the checked state of the checkbox.",
+        "desc" : "Returns the current date value of the date field.",
         "sig" : "()\n{\n\n}",
         "static" : false,
         "memberOf" : ""
         "static" : false,
         "memberOf" : "Roo.BoxComponent"
       },
+      {
+        "name" : "onTriggerClick",
+        "type" : "function",
+        "desc" : "The function that should handle the trigger's click event.  This method does nothing by default until overridden\nby an implementing function.",
+        "sig" : "(e)",
+        "static" : false,
+        "memberOf" : "Roo.form.TriggerField"
+      },
       {
         "name" : "purgeListeners",
         "type" : "function",
       {
         "name" : "reset",
         "type" : "function",
-        "desc" : "Resets the current field value to the originally loaded value and clears any validation messages",
+        "desc" : "Resets the current field value to the originally-loaded value and clears any validation messages.",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : "Roo.form.Field"
+        "memberOf" : "Roo.form.TextField"
       },
       {
         "name" : "resetHasChanged",
         "static" : false,
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "selectText",
+        "type" : "function",
+        "desc" : "Selects text in this field",
+        "sig" : "(start, end)",
+        "static" : false,
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "setDisabled",
         "type" : "function",
       {
         "name" : "setValue",
         "type" : "function",
-        "desc" : "Sets the checked state of the checkbox.\nOn is always based on a string comparison between inputValue and the param.",
-        "sig" : "(value, suppressEvent)",
+        "desc" : "Sets the value of the date field.  You can pass a date object or any string that can be parsed into a valid\ndate, using DateField.format as the date format, according to the same rules as {@link Date#parseDate}\n(the default format used is \"m/d/y\").\n<br />Usage:\n<pre><code>\n//All of these calls set the same date value (May 4, 2006)\n\n//Pass a date object:\nvar dt = new Date('5/4/06');\ndateField.setValue(dt);\n\n//Pass a date string (default format):\ndateField.setValue('5/4/06');\n\n//Pass a date string (custom format):\ndateField.format = 'Y-m-d';\ndateField.setValue('2006-5-4');\n</code></pre>",
+        "sig" : "(date)",
         "static" : false,
         "memberOf" : ""
       },
         "sig" : "()\n{\n\n}",
         "static" : false,
         "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "validateValue",
+        "type" : "function",
+        "desc" : "Validates a value according to the field's validation rules and marks the field as invalid\nif the validation fails",
+        "sig" : "(value)",
+        "static" : false,
+        "memberOf" : "Roo.form.TextField"
       }
     ]
   },
-  "Roo.form.DisplayField" : {
+  "Roo.form.DayPicker" : {
     "props" : [
       {
         "name" : "actionMode",
         "desc" : "A DomHelper element spec, or true for a default element spec (defaults to\n{tag: \"input\", type: \"checkbox\", autocomplete: \"off\"})",
         "memberOf" : ""
       },
-      {
-        "name" : "closable",
-        "type" : "Boolean",
-        "desc" : [
-          "(true",
-          "false)"
-        ],
-        "memberOf" : ""
-      },
       {
         "name" : "cls",
         "type" : "String",
         "desc" : "A value to initialize this field with.",
         "memberOf" : "Roo.form.Field"
       },
-      {
-        "name" : "valueRenderer",
-        "type" : "Function",
-        "desc" : "The renderer for the field (so you can reformat output). should return raw HTML",
-        "memberOf" : ""
-      },
       {
         "name" : "width",
         "type" : "Number",
         "sig" : "function (_self, newValue, oldValue)\n{\n\n}",
         "memberOf" : "Roo.form.Field"
       },
-      {
-        "name" : "close",
-        "type" : "function",
-        "desc" : "Fires after the click the close btn",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : ""
-      },
       {
         "name" : "destroy",
         "type" : "function",
       {
         "name" : "getValue",
         "type" : "function",
-        "desc" : "Returns the normalized data value (undefined or emptyText will be returned as '').  To return the raw value see {@link #getRawValue}.",
+        "desc" : "Returns the checked state of the checkbox.",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : "Roo.form.Field"
+        "memberOf" : ""
       },
       {
         "name" : "hasChanged",
       {
         "name" : "setValue",
         "type" : "function",
-        "desc" : "Sets the checked state of the checkbox.",
-        "sig" : "(checked)",
+        "desc" : "Sets the checked state of the checkbox.\nOn is always based on a string comparison between inputValue and the param.",
+        "sig" : "(value, suppressEvent)",
         "static" : false,
         "memberOf" : ""
       },
       }
     ]
   },
-  "Roo.form.FCKeditor" : {
+  "Roo.form.DisplayField" : {
     "props" : [
       {
         "name" : "actionMode",
         "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el'",
         "memberOf" : "Roo.Component"
       },
-      {
-        "name" : "allowBlank",
-        "type" : "Boolean",
-        "desc" : "False to validate that the value length > 0 (defaults to true)",
-        "memberOf" : "Roo.form.TextField"
-      },
       {
         "name" : "allowDomMove",
         "type" : "Boolean",
       {
         "name" : "autoCreate",
         "type" : "String/Object",
-        "desc" : "A DomHelper element spec, or true for a default element spec (defaults to\n{tag: \"textarea\", style: \"width:300px;height:60px;\", autocomplete: \"off\"})",
-        "memberOf" : "Roo.form.TextArea"
+        "desc" : "A DomHelper element spec, or true for a default element spec (defaults to\n{tag: \"input\", type: \"checkbox\", autocomplete: \"off\"})",
+        "memberOf" : ""
       },
       {
-        "name" : "blankText",
-        "type" : "String",
-        "desc" : "Error text to display if the allow blank validation fails (defaults to \"This field is required\")",
-        "memberOf" : "Roo.form.TextField"
+        "name" : "closable",
+        "type" : "Boolean",
+        "desc" : [
+          "(true",
+          "false)"
+        ],
+        "memberOf" : ""
       },
       {
         "name" : "cls",
         "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
         "memberOf" : "Roo.Component"
       },
-      {
-        "name" : "disableKeyFilter",
-        "type" : "Boolean",
-        "desc" : "True to disable input keystroke filtering (defaults to false)",
-        "memberOf" : "Roo.form.TextField"
-      },
       {
         "name" : "disabled",
         "type" : "Boolean",
         "desc" : "True to disable the field (defaults to false).",
         "memberOf" : "Roo.form.Field"
       },
-      {
-        "name" : "emptyText",
-        "type" : "String",
-        "desc" : "The default text to display in an empty field - placeholder... (defaults to null).",
-        "memberOf" : "Roo.form.TextField"
-      },
-      {
-        "name" : "fck",
-        "type" : "Object",
-        "desc" : "BasePath",
-        "memberOf" : ""
-      },
       {
         "name" : "fieldClass",
         "type" : "String",
-        "desc" : "The default CSS class for the field (defaults to \"x-form-field\")",
-        "memberOf" : "Roo.form.Field"
+        "desc" : "The default CSS class for the checkbox (defaults to \"x-form-field\")",
+        "memberOf" : ""
       },
       {
         "name" : "fieldLabel",
       {
         "name" : "focusClass",
         "type" : "String",
-        "desc" : "The CSS class to use when the field receives focus (defaults to \"x-form-focus\")",
-        "memberOf" : "Roo.form.Field"
-      },
-      {
-        "name" : "grow",
-        "type" : "Boolean",
-        "desc" : "True if this field should automatically grow and shrink to its content",
-        "memberOf" : "Roo.form.TextField"
-      },
-      {
-        "name" : "growMax",
-        "type" : "Number",
-        "desc" : "The maximum height to allow when grow = true (defaults to 1000)",
-        "memberOf" : "Roo.form.TextArea"
-      },
-      {
-        "name" : "growMin",
-        "type" : "Number",
-        "desc" : "The minimum height to allow when grow = true (defaults to 60)",
-        "memberOf" : "Roo.form.TextArea"
+        "desc" : "The CSS class to use when the checkbox receives focus (defaults to undefined)",
+        "memberOf" : ""
       },
       {
         "name" : "height",
         "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
         "memberOf" : "Roo.util.Observable"
       },
-      {
-        "name" : "maskRe",
-        "type" : "String",
-        "desc" : "An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)",
-        "memberOf" : "Roo.form.TextField"
-      },
-      {
-        "name" : "maxLength",
-        "type" : "Number",
-        "desc" : "Maximum input field length allowed (defaults to Number.MAX_VALUE)",
-        "memberOf" : "Roo.form.TextField"
-      },
-      {
-        "name" : "maxLengthText",
-        "type" : "String",
-        "desc" : "Error text to display if the maximum length validation fails (defaults to \"The maximum length for this field is {maxLength}\")",
-        "memberOf" : "Roo.form.TextField"
-      },
-      {
-        "name" : "minLength",
-        "type" : "Number",
-        "desc" : "Minimum input field length required (defaults to 0)",
-        "memberOf" : "Roo.form.TextField"
-      },
-      {
-        "name" : "minLengthText",
-        "type" : "String",
-        "desc" : "Error text to display if the minimum length validation fails (defaults to \"The minimum length for this field is {minLength}\")",
-        "memberOf" : "Roo.form.TextField"
-      },
       {
         "name" : "msgFx",
         "type" : "String",
         "desc" : "The field's HTML name attribute.",
         "memberOf" : "Roo.form.Field"
       },
-      {
-        "name" : "preventScrollbars",
-        "type" : "Boolean",
-        "desc" : "True to prevent scrollbars from appearing regardless of how much text is\nin the field (equivalent to setting overflow: hidden, defaults to false)",
-        "memberOf" : "Roo.form.TextArea"
-      },
       {
         "name" : "qtip",
         "type" : "String",
         "desc" : "True to mark the field as readOnly in HTML (defaults to false) -- Note: this only sets the element's readOnly DOM attribute.",
         "memberOf" : "Roo.form.Field"
       },
-      {
-        "name" : "regex",
-        "type" : "RegExp",
-        "desc" : "A JavaScript RegExp object to be tested against the field value during validation (defaults to null).\nIf available, this regex will be evaluated only after the basic validators all return true, and will be passed the\ncurrent field value.  If the test fails, the field will be marked invalid using {@link #regexText}.",
-        "memberOf" : "Roo.form.TextField"
-      },
-      {
-        "name" : "regexText",
-        "type" : "String",
-        "desc" : "The error text to display if {@link #regex} is used and the test fails during validation (defaults to \"\")",
-        "memberOf" : "Roo.form.TextField"
-      },
-      {
-        "name" : "selectOnFocus",
-        "type" : "Boolean",
-        "desc" : "True to automatically select any existing field text when the field receives input focus (defaults to false)",
-        "memberOf" : "Roo.form.TextField"
-      },
       {
         "name" : "tabIndex",
         "type" : "Number",
         "desc" : "The event that should initiate field validation. Set to false to disable\n      automatic validation (defaults to \"keyup\").",
         "memberOf" : "Roo.form.Field"
       },
-      {
-        "name" : "validator",
-        "type" : "Function",
-        "desc" : "A custom validation function to be called during field validation (defaults to null).\nIf available, this function will be called only after the basic validators all return true, and will be passed the\ncurrent field value and expected to return boolean true if the value is valid or a string error message if invalid.",
-        "memberOf" : "Roo.form.TextField"
-      },
       {
         "name" : "value",
         "type" : "Mixed",
         "memberOf" : "Roo.form.Field"
       },
       {
-        "name" : "vtype",
-        "type" : "String",
-        "desc" : "A validation type name as defined in {@link Roo.form.VTypes} (defaults to null)",
-        "memberOf" : "Roo.form.TextField"
+        "name" : "valueRenderer",
+        "type" : "Function",
+        "desc" : "The renderer for the field (so you can reformat output). should return raw HTML",
+        "memberOf" : ""
       },
       {
         "name" : "width",
       }
     ],
     "events" : [
-      {
-        "name" : "autosize",
-        "type" : "function",
-        "desc" : "Fires when the autosize function is triggered.  The field may or may not have actually changed size\naccording to the default logic, but this event provides a hook for the developer to apply additional\nlogic at runtime to resize the field if needed.",
-        "sig" : "function (_self, width)\n{\n\n}",
-        "memberOf" : "Roo.form.TextField"
-      },
       {
         "name" : "beforedestroy",
         "type" : "function",
         "sig" : "function (_self, newValue, oldValue)\n{\n\n}",
         "memberOf" : "Roo.form.Field"
       },
+      {
+        "name" : "close",
+        "type" : "function",
+        "desc" : "Fires after the click the close btn",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : ""
+      },
       {
         "name" : "destroy",
         "type" : "function",
         "sig" : "function (_self)\n{\n\n}",
         "memberOf" : "Roo.Component"
       },
-      {
-        "name" : "editorinit",
-        "type" : "function",
-        "desc" : "Fired when the editor is initialized - you can add extra handlers here..",
-        "sig" : "function (_self, the)\n{\n\n}",
-        "memberOf" : ""
-      },
       {
         "name" : "enable",
         "type" : "function",
         "static" : false,
         "memberOf" : "Roo.form.Field"
       },
-      {
-        "name" : "autoSize",
-        "type" : "function",
-        "desc" : "Automatically grows the field to accomodate the height of the text up to the maximum field height allowed.\nThis only takes effect if grow = true, and fires the autosize event if the height changes.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.form.TextArea"
-      },
       {
         "name" : "capture",
         "type" : "function",
         "desc" : "Returns the raw data value which may or may not be a valid, defined value.  To return a normalized value see {@link #getValue}.",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "getSize",
         "desc" : "Returns the normalized data value (undefined or emptyText will be returned as '').  To return the raw value see {@link #getRawValue}.",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "hasChanged",
       {
         "name" : "reset",
         "type" : "function",
-        "desc" : "Resets the current field value to the originally-loaded value and clears any validation messages.",
+        "desc" : "Resets the current field value to the originally loaded value and clears any validation messages",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : "Roo.form.TextField"
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "resetHasChanged",
         "static" : false,
         "memberOf" : "Roo.form.Field"
       },
-      {
-        "name" : "selectText",
-        "type" : "function",
-        "desc" : "Selects text in this field",
-        "sig" : "(start, end)",
-        "static" : false,
-        "memberOf" : "Roo.form.TextField"
-      },
       {
         "name" : "setDisabled",
         "type" : "function",
       {
         "name" : "setValue",
         "type" : "function",
-        "desc" : "Sets a data value into the field and validates it.  To set the value directly without validation see {@link #setRawValue}.",
-        "sig" : "(value)",
+        "desc" : "Sets the checked state of the checkbox.",
+        "sig" : "(checked)",
         "static" : false,
         "memberOf" : ""
       },
         "sig" : "()\n{\n\n}",
         "static" : false,
         "memberOf" : "Roo.form.Field"
-      },
-      {
-        "name" : "validateValue",
-        "type" : "function",
-        "desc" : "Validates a value according to the field's validation rules and marks the field as invalid\nif the validation fails",
-        "sig" : "(value)",
-        "static" : false,
-        "memberOf" : "Roo.form.TextField"
       }
     ]
   },
-  "Roo.form.Field" : {
+  "Roo.form.FCKeditor" : {
     "props" : [
       {
         "name" : "actionMode",
         "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el'",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowBlank",
+        "type" : "Boolean",
+        "desc" : "False to validate that the value length > 0 (defaults to true)",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "allowDomMove",
         "type" : "Boolean",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "autoCreate",
         "type" : "String/Object",
-        "desc" : "A DomHelper element spec, or true for a default element spec (defaults to\n{tag: \"input\", type: \"text\", size: \"20\", autocomplete: \"off\"})",
-        "memberOf" : ""
+        "desc" : "A DomHelper element spec, or true for a default element spec (defaults to\n{tag: \"textarea\", style: \"width:300px;height:60px;\", autocomplete: \"off\"})",
+        "memberOf" : "Roo.form.TextArea"
+      },
+      {
+        "name" : "blankText",
+        "type" : "String",
+        "desc" : "Error text to display if the allow blank validation fails (defaults to \"This field is required\")",
+        "memberOf" : "Roo.form.TextField"
       },
       {
         "name" : "cls",
         "type" : "String",
         "desc" : "A CSS class to apply to the field's underlying element.",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "disableClass",
         "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "disableKeyFilter",
+        "type" : "Boolean",
+        "desc" : "True to disable input keystroke filtering (defaults to false)",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "disabled",
         "type" : "Boolean",
         "desc" : "True to disable the field (defaults to false).",
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "emptyText",
+        "type" : "String",
+        "desc" : "The default text to display in an empty field - placeholder... (defaults to null).",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "fck",
+        "type" : "Object",
+        "desc" : "BasePath",
         "memberOf" : ""
       },
       {
         "name" : "fieldClass",
         "type" : "String",
         "desc" : "The default CSS class for the field (defaults to \"x-form-field\")",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "fieldLabel",
         "type" : "String",
         "desc" : "Label to use when rendering a form.",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "focusClass",
         "type" : "String",
         "desc" : "The CSS class to use when the field receives focus (defaults to \"x-form-focus\")",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "grow",
+        "type" : "Boolean",
+        "desc" : "True if this field should automatically grow and shrink to its content",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "growMax",
+        "type" : "Number",
+        "desc" : "The maximum height to allow when grow = true (defaults to 1000)",
+        "memberOf" : "Roo.form.TextArea"
+      },
+      {
+        "name" : "growMin",
+        "type" : "Number",
+        "desc" : "The minimum height to allow when grow = true (defaults to 60)",
+        "memberOf" : "Roo.form.TextArea"
       },
       {
         "name" : "height",
         "name" : "inputType",
         "type" : "String",
         "desc" : "The type attribute for input fields -- e.g. radio, text, password (defaults to \"text\").",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "invalidClass",
         "type" : "String",
         "desc" : "The CSS class to use when marking a field invalid (defaults to \"x-form-invalid\")",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "invalidText",
         "type" : "String",
         "desc" : "The error text to use when marking a field invalid and no message is provided (defaults to \"The value in this field is invalid\")",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "listeners",
         "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
         "memberOf" : "Roo.util.Observable"
       },
+      {
+        "name" : "maskRe",
+        "type" : "String",
+        "desc" : "An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "maxLength",
+        "type" : "Number",
+        "desc" : "Maximum input field length allowed (defaults to Number.MAX_VALUE)",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "maxLengthText",
+        "type" : "String",
+        "desc" : "Error text to display if the maximum length validation fails (defaults to \"The maximum length for this field is {maxLength}\")",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "minLength",
+        "type" : "Number",
+        "desc" : "Minimum input field length required (defaults to 0)",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "minLengthText",
+        "type" : "String",
+        "desc" : "Error text to display if the minimum length validation fails (defaults to \"The minimum length for this field is {minLength}\")",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "msgFx",
         "type" : "String",
         "desc" : "<b>Experimental</b> The effect used when displaying a validation message under the field (defaults to 'normal').",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "msgTarget",
         "type" : "String",
         "desc" : "The location where error text should display.  Should be one of the following values (defaults to 'qtip'):\n<pre>\nValue         Description\n-----------   ----------------------------------------------------------------------\nqtip          Display a quick tip when the user hovers over the field\ntitle         Display a default browser title attribute popup\nunder         Add a block div beneath the field containing the error text\nside          Add an error icon to the right of the field with a popup on hover\n[element id]  Add the error text directly to the innerHTML of the specified element\n</pre>",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "name",
         "type" : "String",
         "desc" : "The field's HTML name attribute.",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "preventScrollbars",
+        "type" : "Boolean",
+        "desc" : "True to prevent scrollbars from appearing regardless of how much text is\nin the field (equivalent to setting overflow: hidden, defaults to false)",
+        "memberOf" : "Roo.form.TextArea"
       },
       {
         "name" : "qtip",
         "type" : "String",
         "desc" : "Mouse over tip",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "readOnly",
         "type" : "Boolean",
         "desc" : "True to mark the field as readOnly in HTML (defaults to false) -- Note: this only sets the element's readOnly DOM attribute.",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "regex",
+        "type" : "RegExp",
+        "desc" : "A JavaScript RegExp object to be tested against the field value during validation (defaults to null).\nIf available, this regex will be evaluated only after the basic validators all return true, and will be passed the\ncurrent field value.  If the test fails, the field will be marked invalid using {@link #regexText}.",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "regexText",
+        "type" : "String",
+        "desc" : "The error text to display if {@link #regex} is used and the test fails during validation (defaults to \"\")",
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "selectOnFocus",
+        "type" : "Boolean",
+        "desc" : "True to automatically select any existing field text when the field receives input focus (defaults to false)",
+        "memberOf" : "Roo.form.TextField"
       },
       {
         "name" : "tabIndex",
         "type" : "Number",
         "desc" : "The tabIndex for this field. Note this only applies to fields that are rendered, not those which are built via applyTo (defaults to undefined).",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "validateOnBlur",
         "type" : "Boolean",
         "desc" : "Whether the field should validate when it loses focus (defaults to true).",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "validationDelay",
         "type" : "Number",
         "desc" : "The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "validationEvent",
         "type" : "String/Boolean",
         "desc" : "The event that should initiate field validation. Set to false to disable\n      automatic validation (defaults to \"keyup\").",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "validator",
+        "type" : "Function",
+        "desc" : "A custom validation function to be called during field validation (defaults to null).\nIf available, this function will be called only after the basic validators all return true, and will be passed the\ncurrent field value and expected to return boolean true if the value is valid or a string error message if invalid.",
+        "memberOf" : "Roo.form.TextField"
       },
       {
         "name" : "value",
         "type" : "Mixed",
         "desc" : "A value to initialize this field with.",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "vtype",
+        "type" : "String",
+        "desc" : "A validation type name as defined in {@link Roo.form.VTypes} (defaults to null)",
+        "memberOf" : "Roo.form.TextField"
       },
       {
         "name" : "width",
       }
     ],
     "events" : [
+      {
+        "name" : "autosize",
+        "type" : "function",
+        "desc" : "Fires when the autosize function is triggered.  The field may or may not have actually changed size\naccording to the default logic, but this event provides a hook for the developer to apply additional\nlogic at runtime to resize the field if needed.",
+        "sig" : "function (_self, width)\n{\n\n}",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "beforedestroy",
         "type" : "function",
         "type" : "function",
         "desc" : "Fires when this field loses input focus.",
         "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "change",
         "type" : "function",
         "desc" : "Fires just before the field blurs if the field value has changed.",
         "sig" : "function (_self, newValue, oldValue)\n{\n\n}",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "destroy",
         "sig" : "function (_self)\n{\n\n}",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "editorinit",
+        "type" : "function",
+        "desc" : "Fired when the editor is initialized - you can add extra handlers here..",
+        "sig" : "function (_self, the)\n{\n\n}",
+        "memberOf" : ""
+      },
       {
         "name" : "enable",
         "type" : "function",
         "type" : "function",
         "desc" : "Fires when this field receives input focus.",
         "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "hide",
         "type" : "function",
         "desc" : "Fires after the field has been marked as invalid.",
         "sig" : "function (_self, msg)\n{\n\n}",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "keyup",
         "type" : "function",
         "desc" : "Fires after the key up",
         "sig" : "function (_self, e)\n{\n\n}",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "move",
         "type" : "function",
         "desc" : "Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed.  You can check\n{@link Roo.EventObject#getKey} to determine which key was pressed.",
         "sig" : "function (_self, e)\n{\n\n}",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "valid",
         "type" : "function",
         "desc" : "Fires after the field has been validated with no errors.",
         "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       }
     ],
     "methods" : [
         "desc" : "Apply the behaviors of this component to an existing element. <b>This is used instead of render().</b>",
         "sig" : "(el)",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "autoSize",
+        "type" : "function",
+        "desc" : "Automatically grows the field to accomodate the height of the text up to the maximum field height allowed.\nThis only takes effect if grow = true, and fires the autosize event if the height changes.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.form.TextArea"
       },
       {
         "name" : "capture",
         "desc" : "Clear any invalid styles/messages for this field",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "destroy",
         "desc" : "Returns the name attribute of the field if available",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "getPosition",
         "desc" : "checks the current value against the 'loaded' value.\nNote - will return false if 'resetHasChanged' has not been called first.",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "hasListener",
         "desc" : "Returns true if this field has been changed since it was originally loaded and is not disabled.\nDEPRICATED  - it never worked well - use hasChanged/resetHasChanged.",
         "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "isValid",
         "desc" : "Returns whether or not the field value is currently valid",
         "sig" : "(preventMark)",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
       },
       {
         "name" : "isVisible",
         "desc" : "Mark this field as invalid",
         "sig" : "(msg)",
         "static" : false,
-        "memberOf" : ""
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "on",
+        "type" : "function",
+        "desc" : "Appends an event handler to this element (shorthand for addListener)",
+        "sig" : "(eventName, handler, scope, options)",
+        "static" : false,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "onPosition",
+        "type" : "function",
+        "desc" : "Called after the component is moved, this method is empty by default but can be implemented by any\nsubclass that needs to perform custom logic after a move occurs.",
+        "sig" : "(x, y)",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "onResize",
+        "type" : "function",
+        "desc" : "Called after the component is resized, this method is empty by default but can be implemented by any\nsubclass that needs to perform custom logic after a resize occurs.",
+        "sig" : "(adjWidth, adjHeight, rawWidth, rawHeight)",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "purgeListeners",
+        "type" : "function",
+        "desc" : "Removes all listeners for this object",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "releaseCapture",
+        "type" : "function",
+        "desc" : "Removes <b>all</b> added captures from the Observable.",
+        "sig" : "(o)",
+        "static" : true,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "removeListener",
+        "type" : "function",
+        "desc" : "Removes a listener",
+        "sig" : "(eventName, handler, scope)",
+        "static" : false,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "render",
+        "type" : "function",
+        "desc" : "If this is a lazy rendering component, render it to its container element.",
+        "sig" : "(container)",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "reset",
+        "type" : "function",
+        "desc" : "Resets the current field value to the originally-loaded value and clears any validation messages.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "resetHasChanged",
+        "type" : "function",
+        "desc" : "stores the current value in loadedValue",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "selectText",
+        "type" : "function",
+        "desc" : "Selects text in this field",
+        "sig" : "(start, end)",
+        "static" : false,
+        "memberOf" : "Roo.form.TextField"
+      },
+      {
+        "name" : "setDisabled",
+        "type" : "function",
+        "desc" : "Convenience function for setting disabled/enabled by boolean.",
+        "sig" : "(disabled)",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "setPagePosition",
+        "type" : "function",
+        "desc" : "Sets the page XY position of the component.  To set the left and top instead, use {@link #setPosition}.\nThis method fires the move event.",
+        "sig" : "(x, y)",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "setPosition",
+        "type" : "function",
+        "desc" : "Sets the left and top of the component.  To set the page XY position instead, use {@link #setPagePosition}.\nThis method fires the move event.",
+        "sig" : "(left, top)",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "setRawValue",
+        "type" : "function",
+        "desc" : "Sets the underlying DOM field's value directly, bypassing validation.  To set the value with validation see {@link #setValue}.",
+        "sig" : "(value)",
+        "static" : false,
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "setSize",
+        "type" : "function",
+        "desc" : "Sets the width and height of the component.  This method fires the resize event.  This method can accept\neither width and height as separate numeric arguments, or you can pass a size object like {width:10, height:20}.",
+        "sig" : "(width, height)",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "setValue",
+        "type" : "function",
+        "desc" : "Sets a data value into the field and validates it.  To set the value directly without validation see {@link #setRawValue}.",
+        "sig" : "(value)",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "setVisible",
+        "type" : "function",
+        "desc" : "Convenience function to hide or show this component by boolean.",
+        "sig" : "(visible)",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "show",
+        "type" : "function",
+        "desc" : "Show this component.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "syncSize",
+        "type" : "function",
+        "desc" : "Force the component's size to recalculate based on the underlying element's current height and width.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "un",
+        "type" : "function",
+        "desc" : "Removes a listener (shorthand for removeListener)",
+        "sig" : "(eventName, handler, scope)",
+        "static" : false,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "updateBox",
+        "type" : "function",
+        "desc" : "Sets the current box measurements of the component's underlying element.",
+        "sig" : "(box)",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "validate",
+        "type" : "function",
+        "desc" : "Validates the field value",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.form.Field"
+      },
+      {
+        "name" : "validateValue",
+        "type" : "function",
+        "desc" : "Validates a value according to the field's validation rules and marks the field as invalid\nif the validation fails",
+        "sig" : "(value)",
+        "static" : false,
+        "memberOf" : "Roo.form.TextField"
+      }
+    ]
+  },
+  "Roo.form.Field" : {
+    "props" : [
+      {
+        "name" : "actionMode",
+        "type" : "String",
+        "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el'",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "allowDomMove",
+        "type" : "Boolean",
+        "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "autoCreate",
+        "type" : "String/Object",
+        "desc" : "A DomHelper element spec, or true for a default element spec (defaults to\n{tag: \"input\", type: \"text\", size: \"20\", autocomplete: \"off\"})",
+        "memberOf" : ""
+      },
+      {
+        "name" : "cls",
+        "type" : "String",
+        "desc" : "A CSS class to apply to the field's underlying element.",
+        "memberOf" : ""
+      },
+      {
+        "name" : "disableClass",
+        "type" : "String",
+        "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "disabled",
+        "type" : "Boolean",
+        "desc" : "True to disable the field (defaults to false).",
+        "memberOf" : ""
+      },
+      {
+        "name" : "fieldClass",
+        "type" : "String",
+        "desc" : "The default CSS class for the field (defaults to \"x-form-field\")",
+        "memberOf" : ""
+      },
+      {
+        "name" : "fieldLabel",
+        "type" : "String",
+        "desc" : "Label to use when rendering a form.",
+        "memberOf" : ""
+      },
+      {
+        "name" : "focusClass",
+        "type" : "String",
+        "desc" : "The CSS class to use when the field receives focus (defaults to \"x-form-focus\")",
+        "memberOf" : ""
+      },
+      {
+        "name" : "height",
+        "type" : "Number",
+        "desc" : "height (optional) size of component",
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "hideMode",
+        "type" : "String",
+        "desc" : [
+          "(display",
+          "visibility)"
+        ],
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "inputType",
+        "type" : "String",
+        "desc" : "The type attribute for input fields -- e.g. radio, text, password (defaults to \"text\").",
+        "memberOf" : ""
+      },
+      {
+        "name" : "invalidClass",
+        "type" : "String",
+        "desc" : "The CSS class to use when marking a field invalid (defaults to \"x-form-invalid\")",
+        "memberOf" : ""
+      },
+      {
+        "name" : "invalidText",
+        "type" : "String",
+        "desc" : "The error text to use when marking a field invalid and no message is provided (defaults to \"The value in this field is invalid\")",
+        "memberOf" : ""
+      },
+      {
+        "name" : "listeners",
+        "type" : "Object",
+        "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "msgFx",
+        "type" : "String",
+        "desc" : "<b>Experimental</b> The effect used when displaying a validation message under the field (defaults to 'normal').",
+        "memberOf" : ""
+      },
+      {
+        "name" : "msgTarget",
+        "type" : "String",
+        "desc" : "The location where error text should display.  Should be one of the following values (defaults to 'qtip'):\n<pre>\nValue         Description\n-----------   ----------------------------------------------------------------------\nqtip          Display a quick tip when the user hovers over the field\ntitle         Display a default browser title attribute popup\nunder         Add a block div beneath the field containing the error text\nside          Add an error icon to the right of the field with a popup on hover\n[element id]  Add the error text directly to the innerHTML of the specified element\n</pre>",
+        "memberOf" : ""
+      },
+      {
+        "name" : "name",
+        "type" : "String",
+        "desc" : "The field's HTML name attribute.",
+        "memberOf" : ""
+      },
+      {
+        "name" : "qtip",
+        "type" : "String",
+        "desc" : "Mouse over tip",
+        "memberOf" : ""
+      },
+      {
+        "name" : "readOnly",
+        "type" : "Boolean",
+        "desc" : "True to mark the field as readOnly in HTML (defaults to false) -- Note: this only sets the element's readOnly DOM attribute.",
+        "memberOf" : ""
+      },
+      {
+        "name" : "tabIndex",
+        "type" : "Number",
+        "desc" : "The tabIndex for this field. Note this only applies to fields that are rendered, not those which are built via applyTo (defaults to undefined).",
+        "memberOf" : ""
+      },
+      {
+        "name" : "validateOnBlur",
+        "type" : "Boolean",
+        "desc" : "Whether the field should validate when it loses focus (defaults to true).",
+        "memberOf" : ""
+      },
+      {
+        "name" : "validationDelay",
+        "type" : "Number",
+        "desc" : "The length of time in milliseconds after user input begins until validation is initiated (defaults to 250)",
+        "memberOf" : ""
+      },
+      {
+        "name" : "validationEvent",
+        "type" : "String/Boolean",
+        "desc" : "The event that should initiate field validation. Set to false to disable\n      automatic validation (defaults to \"keyup\").",
+        "memberOf" : ""
+      },
+      {
+        "name" : "value",
+        "type" : "Mixed",
+        "desc" : "A value to initialize this field with.",
+        "memberOf" : ""
+      },
+      {
+        "name" : "width",
+        "type" : "Number",
+        "desc" : "width (optional) size of component",
+        "memberOf" : "Roo.BoxComponent"
+      }
+    ],
+    "events" : [
+      {
+        "name" : "beforedestroy",
+        "type" : "function",
+        "desc" : "Fires before the component is destroyed. Return false to stop the destroy.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "beforehide",
+        "type" : "function",
+        "desc" : "Fires before the component is hidden. Return false to stop the hide.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "beforerender",
+        "type" : "function",
+        "desc" : "Fires before the component is rendered. Return false to stop the render.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "beforeshow",
+        "type" : "function",
+        "desc" : "Fires before the component is shown.  Return false to stop the show.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "blur",
+        "type" : "function",
+        "desc" : "Fires when this field loses input focus.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : ""
+      },
+      {
+        "name" : "change",
+        "type" : "function",
+        "desc" : "Fires just before the field blurs if the field value has changed.",
+        "sig" : "function (_self, newValue, oldValue)\n{\n\n}",
+        "memberOf" : ""
+      },
+      {
+        "name" : "destroy",
+        "type" : "function",
+        "desc" : "Fires after the component is destroyed.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "disable",
+        "type" : "function",
+        "desc" : "Fires after the component is disabled.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "enable",
+        "type" : "function",
+        "desc" : "Fires after the component is enabled.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "focus",
+        "type" : "function",
+        "desc" : "Fires when this field receives input focus.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : ""
+      },
+      {
+        "name" : "hide",
+        "type" : "function",
+        "desc" : "Fires after the component is hidden.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "invalid",
+        "type" : "function",
+        "desc" : "Fires after the field has been marked as invalid.",
+        "sig" : "function (_self, msg)\n{\n\n}",
+        "memberOf" : ""
+      },
+      {
+        "name" : "keyup",
+        "type" : "function",
+        "desc" : "Fires after the key up",
+        "sig" : "function (_self, e)\n{\n\n}",
+        "memberOf" : ""
+      },
+      {
+        "name" : "move",
+        "type" : "function",
+        "desc" : "Fires after the component is moved.",
+        "sig" : "function (_self, x, y)\n{\n\n}",
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "render",
+        "type" : "function",
+        "desc" : "Fires after the component is rendered.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "resize",
+        "type" : "function",
+        "desc" : "Fires after the component is resized.",
+        "sig" : "function (_self, adjWidth, adjHeight, rawWidth, rawHeight)\n{\n\n}",
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "show",
+        "type" : "function",
+        "desc" : "Fires after the component is shown.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "specialkey",
+        "type" : "function",
+        "desc" : "Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed.  You can check\n{@link Roo.EventObject#getKey} to determine which key was pressed.",
+        "sig" : "function (_self, e)\n{\n\n}",
+        "memberOf" : ""
+      },
+      {
+        "name" : "valid",
+        "type" : "function",
+        "desc" : "Fires after the field has been validated with no errors.",
+        "sig" : "function (_self)\n{\n\n}",
+        "memberOf" : ""
+      }
+    ],
+    "methods" : [
+      {
+        "name" : "addEvents",
+        "type" : "function",
+        "desc" : "Used to define events on this Observable",
+        "sig" : "(object)",
+        "static" : false,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "addListener",
+        "type" : "function",
+        "desc" : "Appends an event handler to this component",
+        "sig" : "(eventName, handler, scope, options)",
+        "static" : false,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "applyTo",
+        "type" : "function",
+        "desc" : "Apply the behaviors of this component to an existing element. <b>This is used instead of render().</b>",
+        "sig" : "(el)",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "capture",
+        "type" : "function",
+        "desc" : "Starts capture on the specified Observable. All events will be passed\nto the supplied function with the event name + standard signature of the event\n<b>before</b> the event is fired. If the supplied function returns false,\nthe event will not fire.",
+        "sig" : "(o, fn, scope)",
+        "static" : true,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "clearInvalid",
+        "type" : "function",
+        "desc" : "Clear any invalid styles/messages for this field",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "destroy",
+        "type" : "function",
+        "desc" : "Destroys this component by purging any event listeners, removing the component's element from the DOM,\nremoving the component from its {@link Roo.Container} (if applicable) and unregistering it from {@link Roo.ComponentMgr}.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "disable",
+        "type" : "function",
+        "desc" : "Disable this component.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "enable",
+        "type" : "function",
+        "desc" : "Enable this component.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "fireEvent",
+        "type" : "function",
+        "desc" : "Fires the specified event with the passed parameters (minus the event name).",
+        "sig" : "(eventName, args)",
+        "static" : false,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "focus",
+        "type" : "function",
+        "desc" : "Try to focus this component.",
+        "sig" : "(selectText)",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "getBox",
+        "type" : "function",
+        "desc" : "Gets the current box measurements of the component's underlying element.",
+        "sig" : "(local)",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "getEl",
+        "type" : "function",
+        "desc" : "Returns the underlying {@link Roo.Element}.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "getId",
+        "type" : "function",
+        "desc" : "Returns the id of this component.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "getName",
+        "type" : "function",
+        "desc" : "Returns the name attribute of the field if available",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "getPosition",
+        "type" : "function",
+        "desc" : "Gets the current XY position of the component's underlying element.",
+        "sig" : "(local)",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "getRawValue",
+        "type" : "function",
+        "desc" : "Returns the raw data value which may or may not be a valid, defined value.  To return a normalized value see {@link #getValue}.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "getSize",
+        "type" : "function",
+        "desc" : "Gets the current size of the component's underlying element.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.BoxComponent"
+      },
+      {
+        "name" : "getValue",
+        "type" : "function",
+        "desc" : "Returns the normalized data value (undefined or emptyText will be returned as '').  To return the raw value see {@link #getRawValue}.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "hasChanged",
+        "type" : "function",
+        "desc" : "checks the current value against the 'loaded' value.\nNote - will return false if 'resetHasChanged' has not been called first.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "hasListener",
+        "type" : "function",
+        "desc" : "Checks to see if this object has any listeners for a specified event",
+        "sig" : "(eventName)",
+        "static" : false,
+        "memberOf" : "Roo.util.Observable"
+      },
+      {
+        "name" : "hide",
+        "type" : "function",
+        "desc" : "Hide this component.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "isDirty",
+        "type" : "function",
+        "desc" : "Returns true if this field has been changed since it was originally loaded and is not disabled.\nDEPRICATED  - it never worked well - use hasChanged/resetHasChanged.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "isValid",
+        "type" : "function",
+        "desc" : "Returns whether or not the field value is currently valid",
+        "sig" : "(preventMark)",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "isVisible",
+        "type" : "function",
+        "desc" : "Returns true if this component is visible.",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "markInvalid",
+        "type" : "function",
+        "desc" : "Mark this field as invalid",
+        "sig" : "(msg)",
+        "static" : false,
+        "memberOf" : ""
       },
       {
         "name" : "on",
         "desc" : "Valid values are \"left,\" \"center\" and \"right\" (defaults to \"center\")",
         "memberOf" : ""
       },
+      {
+        "name" : "errorMask",
+        "type" : "Boolean",
+        "desc" : [
+          "(true",
+          "false)"
+        ],
+        "memberOf" : "Roo.form.BasicForm"
+      },
       {
         "name" : "errorReader",
         "type" : "DataReader",
         "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
         "memberOf" : "Roo.util.Observable"
       },
+      {
+        "name" : "maskOffset",
+        "type" : "Number",
+        "desc" : "Default 100",
+        "memberOf" : "Roo.form.BasicForm"
+      },
       {
         "name" : "method",
         "type" : "String",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "autoCreate",
         "type" : "String/Object",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "altFormats",
         "type" : "String",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "allowNegative",
         "type" : "Boolean",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "alwaysQuery",
         "type" : "Boolean",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "autoCreate",
         "type" : "String/Object",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : ""
+      },
       {
         "name" : "autoCreate",
         "type" : "String/Object",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
-      {
-        "name" : "cls",
-        "type" : "String",
-        "desc" : "the class for this item",
-        "memberOf" : ""
-      },
       {
         "name" : "disableClass",
         "type" : "String",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "allowLeadingSpace",
+        "type" : "Boolean",
+        "desc" : "True to prevent the stripping of leading white space",
+        "memberOf" : "Roo.form.TextField"
+      },
       {
         "name" : "autoCreate",
         "type" : "String/Object",
         "sig" : "function (tree, parent, node, index)\n{\n\n}",
         "memberOf" : "Roo.data.Tree"
       },
+      {
+        "name" : "appendnode",
+        "type" : "function",
+        "desc" : "Fires when append node to the tree",
+        "sig" : "function (_self, node, index)\n{\n\n}",
+        "memberOf" : ""
+      },
       {
         "name" : "beforeappend",
         "type" : "function",
       {
         "name" : "Parser",
         "type" : "function",
-        "desc" : "Parsing & Compiling",
+        "desc" : "eval:var:Parser",
         "sig" : "()\n{\n\n}",
         "static" : false,
         "memberOf" : ""
       {
         "name" : "Renderer",
         "type" : "function",
-        "desc" : "Renderer",
+        "desc" : "eval:var:Renderer",
         "sig" : "()\n{\n\n}",
         "static" : false,
         "memberOf" : ""
       {
         "name" : "marked",
         "type" : "function",
-        "desc" : "Marked",
+        "desc" : "eval:var:marked",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "merge",
+        "type" : "function",
+        "desc" : "eval:var:merge",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : ""
+      },
+      {
+        "name" : "noop",
+        "type" : "function",
+        "desc" : "eval:var:noop",
         "sig" : "()\n{\n\n}",
         "static" : false,
         "memberOf" : ""
index 48adab4..a184a18 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Array.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">/*
+<html><head><title>Array.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index caeddb1..e90aa3d 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Date.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">/*
+<html><head><title>Date.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 2af5950..451d016 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Function.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">/*
+<html><head><title>Function.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 173d290..bfcce92 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Number.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">/*
+<html><head><title>Number.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index cb2d7dc..886427c 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo.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">/*
+<html><head><title>Roo.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 71bc3d5..caf9767 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Ajax.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">/*
+<html><head><title>Roo/Ajax.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index ecb7984..cd435b4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/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">/*
+<html><head><title>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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index a9e6650..bea5f23 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/BasicLayoutRegion.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">/*
+<html><head><title>Roo/BasicLayoutRegion.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 98cdb3b..c3acf51 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/BorderLayout.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">/*
+<html><head><title>Roo/BorderLayout.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index f36d87a..4394819 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/BoxComponent.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">/*
+<html><head><title>Roo/BoxComponent.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index bf40340..6bd21f4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Button.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">/*
+<html><head><title>Roo/Button.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 647a708..1f49c9b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/CalendarPanel.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">/*
+<html><head><title>Roo/CalendarPanel.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">/*
  * - LGPL
  *
  * based on jquery fullcalendar
index f991669..0d40428 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/CenterLayoutRegion.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">/*
+<html><head><title>Roo/CenterLayoutRegion.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 8c85f20..a5cb0d3 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/ColorPalette.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">/*
+<html><head><title>Roo/ColorPalette.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index f3818d8..3550669 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Component.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">/*
+<html><head><title>Roo/Component.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index bbea9d1..13cadad 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/ComponentMgr.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">/*
+<html><head><title>Roo/ComponentMgr.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 94112ef..53e16c4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/CompositeElement.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">/*
+<html><head><title>Roo/CompositeElement.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 37dc1c9..dc971ba 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/CompositeElementLite.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">/*
+<html><head><title>Roo/CompositeElementLite.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 4a2eaf8..fbab698 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/ContentPanel.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">/*
+<html><head><title>Roo/ContentPanel.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 5332c88..fa3f954 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/DDView.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">//&lt;script type=&quot;text/javasscript&quot;&gt;
+<html><head><title>Roo/DDView.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">//&lt;script type=&quot;text/javasscript&quot;&gt;
 
 
 /**
index 60e0d4c..215904a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/DatePicker.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">/*
+<html><head><title>Roo/DatePicker.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 60da82e..b85dbf5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Document.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">/*
+<html><head><title>Roo/Document.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">/*
  * RooJS Library 
  * Copyright(c) 2007-2017, Roo J Solutions Ltd
  *
index eadcc40..ebe5ae2 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/DomHelper.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">/*
+<html><head><title>Roo/DomHelper.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index b4747a4..b3cfbb9 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/DomQuery.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">/*
+<html><head><title>Roo/DomQuery.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 6d1368e..c9ea4d9 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/DomTemplate.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">/*
+<html><head><title>Roo/DomTemplate.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">/*
  * Based on:
  * Roo JS
  * (c)) Alan Knowles
index 3952495..7583b89 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Editor.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">/*
+<html><head><title>Roo/Editor.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index e967f41..6fdb5d3 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Element.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">/*
+<html><head><title>Roo/Element.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index dc14a5b..01b2244 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/EventManager.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">/*
+<html><head><title>Roo/EventManager.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 9b169f5..2381009 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Fx.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">/*
+<html><head><title>Roo/Fx.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index e475c0a..b1ecbcc 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/HtmlEditorCore.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">//&lt;script type=&quot;text/javascript&quot;&gt;
+<html><head><title>Roo/HtmlEditorCore.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">//&lt;script type=&quot;text/javascript&quot;&gt;
 
 /*
  * Based  Ext JS Library 1.1.1
             </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cleanHtml</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">);
             </span><span class="jsdoc-comment">// fix up the special chars.. normaly like back quotes in word...
             // however we do not want to do this with chinese..
-            </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">html.replace</span><span class="jsdoc-syntax">(/([\x80-\uffff])/g, </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b.charCodeAt</span><span class="jsdoc-syntax">();
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(
+            </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">html.replace</span><span class="jsdoc-syntax">(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[\u0080-\uFFFF]/g, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">match</span><span class="jsdoc-syntax">) {
+
+                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">match.charCodeAt</span><span class="jsdoc-syntax">();
+
+                </span><span class="jsdoc-comment">// Get the character value, handling surrogate pairs
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">match.length </span><span class="jsdoc-syntax">== 2) {
+                    </span><span class="jsdoc-comment">// It's a surrogate pair, calculate the Unicode code point
+                    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">high </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">match.charCodeAt</span><span class="jsdoc-syntax">(0) - 0xD800;
+                    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">low  </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">match.charCodeAt</span><span class="jsdoc-syntax">(1) - 0xDC00;
+                    </span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">high </span><span class="jsdoc-syntax">* 0x400) + </span><span class="jsdoc-var">low </span><span class="jsdoc-syntax">+ 0x10000;
+                }  </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(
                     (</span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">&gt;= 0x4E00 &amp;&amp; </span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">&lt; 0xA000 ) ||
                     (</span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">&gt;= 0x3400 &amp;&amp; </span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">&lt; 0x4E00 ) ||
                     (</span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">&gt;= 0xf900 &amp;&amp; </span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">&lt; 0xfb00 )
                 ) {
-                        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">;
+                        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">match</span><span class="jsdoc-syntax">;
                 }
-                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">&quot;&amp;#&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">cc</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">&quot;;&quot;
-            </span><span class="jsdoc-syntax">});
+
+                </span><span class="jsdoc-comment">// No, use a numeric entity. Here we brazenly (and possibly mistakenly)
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">&quot;&amp;#&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">cc </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;;&quot;</span><span class="jsdoc-syntax">;
+
+
+            });
+
+
+
             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.owner.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'beforesync'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">) !== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
                 </span><span class="jsdoc-var">this.el.dom.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">;
                 </span><span class="jsdoc-var">this.owner.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'sync'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">);
     </span><span class="jsdoc-var">insertTag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tg</span><span class="jsdoc-syntax">)
     {
         </span><span class="jsdoc-comment">// could be a bit smarter... -&gt; wrap the current selected tRoo..
-        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tg.toLowerCase</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-string">'span' </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">tg.toLowerCase</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-string">'code'</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tg.toLowerCase</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-string">'span' </span><span class="jsdoc-syntax">||
+            </span><span class="jsdoc-var">tg.toLowerCase</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-string">'code' </span><span class="jsdoc-syntax">||
+            </span><span class="jsdoc-var">tg.toLowerCase</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-string">'sup' </span><span class="jsdoc-syntax">||
+            </span><span class="jsdoc-var">tg.toLowerCase</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-string">'sub'
+            </span><span class="jsdoc-syntax">) {
 
             </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.createRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getSelection</span><span class="jsdoc-syntax">());
             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">wrappingNode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.doc.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tg.toLowerCase</span><span class="jsdoc-syntax">());
 
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">remove_keep_children</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.HtmlEditorCore.remove.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.tagName.toLowerCase</span><span class="jsdoc-syntax">()) &gt; -1;
 
+        </span><span class="jsdoc-comment">// spans with no attributes - just remove them..
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((!</span><span class="jsdoc-var">node.attributes </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">node.attributes.length</span><span class="jsdoc-syntax">) &amp;&amp; </span><span class="jsdoc-var">lcname </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">remove_keep_children </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
+        }
+
         </span><span class="jsdoc-comment">// remove &lt;a name=....&gt; as rendering on yahoo mailer is borked with this.
         // this will have to be flaged elsewhere - perhaps ablack=name... on the mailer..
 
         }
 
         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">node.attributes </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">node.attributes.length</span><span class="jsdoc-syntax">) {
+
+
+
+
             </span><span class="jsdoc-var">this.cleanUpChildren</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
         }
 
             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a.name </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'class'</span><span class="jsdoc-syntax">) {
                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a.value.match</span><span class="jsdoc-syntax">(/^Mso/)) {
-                    </span><span class="jsdoc-var">node.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+                    </span><span class="jsdoc-var">node.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'class'</span><span class="jsdoc-syntax">);
                 }
 
                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a.value.match</span><span class="jsdoc-syntax">(/^body$/)) {
-                    </span><span class="jsdoc-var">node.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+                    </span><span class="jsdoc-var">node.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'class'</span><span class="jsdoc-syntax">);
                 }
                 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
             }
      */
     </span><span class="jsdoc-var">cleanWord </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
     {
-
-
         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
             </span><span class="jsdoc-var">this.cleanWord</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.doc.body</span><span class="jsdoc-syntax">);
             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
         }
+
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(
+                </span><span class="jsdoc-var">node.nodeName </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'SPAN' </span><span class="jsdoc-syntax">&amp;&amp;
+                !</span><span class="jsdoc-var">node.hasAttributes</span><span class="jsdoc-syntax">() &amp;&amp;
+                </span><span class="jsdoc-var">node.childNodes.length </span><span class="jsdoc-syntax">== 1 &amp;&amp;
+                </span><span class="jsdoc-var">node.firstChild.nodeName </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;#text&quot;
+        </span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">textNode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.firstChild</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-var">node.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">textNode</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.getAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'lang'</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'zh-CN'</span><span class="jsdoc-syntax">) {   </span><span class="jsdoc-comment">// do not space pad on chinese characters..
+                </span><span class="jsdoc-var">node.parentNode.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.ownerDocument.createTextNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot; &quot;</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+            }
+            </span><span class="jsdoc-var">node.parentNode.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">textNode</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.getAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'lang'</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'zh-CN'</span><span class="jsdoc-syntax">) {   </span><span class="jsdoc-comment">// do not space pad on chinese characters..
+                </span><span class="jsdoc-var">node.parentNode.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.ownerDocument.createTextNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot; &quot;</span><span class="jsdoc-syntax">) , </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+            }
+            </span><span class="jsdoc-var">node.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+        }
+
         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nodeName </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;#text&quot;</span><span class="jsdoc-syntax">) {
             </span><span class="jsdoc-comment">// clean up silly Windows -- stuff?
             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
             </span><span class="jsdoc-var">node.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
         }
-
-        </span><span class="jsdoc-comment">// remove - but keep children..
-        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.tagName.toLowerCase</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.match</span><span class="jsdoc-syntax">(/^(meta|link|\\?xml:|st1:|o:|font)/)) {
+        </span><span class="jsdoc-comment">//Roo.log(node.tagName);
+        // remove - but keep children..
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.tagName.toLowerCase</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.match</span><span class="jsdoc-syntax">(/^(meta|link|\\?xml:|st1:|o:|v:|font)/)) {
+            </span><span class="jsdoc-comment">//Roo.log('-- removed');
             </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.childNodes.length</span><span class="jsdoc-syntax">) {
                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.childNodes</span><span class="jsdoc-syntax">[0];
                 </span><span class="jsdoc-var">node.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">);
                 </span><span class="jsdoc-var">node.parentNode.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+                </span><span class="jsdoc-comment">// move node to parent - and clean it..
+                </span><span class="jsdoc-var">this.cleanWord</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">);
             }
             </span><span class="jsdoc-var">node.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
-            </span><span class="jsdoc-var">this.iterateChildren</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.cleanWord</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-comment">/// no need to iterate chidlren = it's got none..
+            //this.iterateChildren(node, this.cleanWord);
             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
         }
         </span><span class="jsdoc-comment">// clean styles
index e44d9ed..20adcff 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/JsonView.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">/*
+<html><head><title>Roo/JsonView.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index e83b486..100ab44 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/KeyMap.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">/*
+<html><head><title>Roo/KeyMap.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 0a1a6e3..05c53b5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/KeyNav.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">/*
+<html><head><title>Roo/KeyNav.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 98d4287..433dca7 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Layer.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">/*
+<html><head><title>Roo/Layer.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 09506ad..7031ac2 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/LayoutManager.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">/*
+<html><head><title>Roo/LayoutManager.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 33569c2..72e4e2c 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/LayoutRegion.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">/*
+<html><head><title>Roo/LayoutRegion.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
      * Collapses this region.
      * @param {Boolean} skipAnim (optional) true to collapse the element without animation (if animate is true)
      */
-    </span><span class="jsdoc-var">collapse </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">skipAnim</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">skipCheck </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
+    </span><span class="jsdoc-var">collapse </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">skipAnim</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">skipCheck</span><span class="jsdoc-syntax">){
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.collapsed</span><span class="jsdoc-syntax">) {
             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
         }
index 753b88e..bee6df1 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/LayoutStateManager.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">/*
+<html><head><title>Roo/LayoutStateManager.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 8811330..b466f7b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/LoadMask.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">/*
+<html><head><title>Roo/LoadMask.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 99753c2..140b1ad 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Markdown.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">//
+<html><head><title>Roo/Markdown.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">//
  /**
  * marked - a markdown parser
  * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed)
 //
 </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
 
+     </span><span class="jsdoc-comment">/**
+         * eval:var:escape
+         * eval:var:unescape
+         * eval:var:replace
+         */
+
+    /**
+     * Helpers
+     */
+
+    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">escape </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">encode</span><span class="jsdoc-syntax">) {
+      </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">html
+        .replace</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">encode </span><span class="jsdoc-syntax">? /&amp;(?!#?\w+;)/g : /&amp;/g, </span><span class="jsdoc-string">'&amp;amp;'</span><span class="jsdoc-syntax">)
+        </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&lt;/g, </span><span class="jsdoc-string">'&amp;lt;'</span><span class="jsdoc-syntax">)
+        </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&gt;/g, </span><span class="jsdoc-string">'&amp;gt;'</span><span class="jsdoc-syntax">)
+        </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&quot;/g, </span><span class="jsdoc-string">'&amp;quot;'</span><span class="jsdoc-syntax">)
+        </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/'/g, </span><span class="jsdoc-string">'&amp;#39;'</span><span class="jsdoc-syntax">);
+    }
+
+    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">unescape </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-comment">// explicitly match decimal, hex, and named HTML entities 
+      </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">html.replace</span><span class="jsdoc-syntax">(/&amp;(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.toLowerCase</span><span class="jsdoc-syntax">();
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'colon'</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">':'</span><span class="jsdoc-syntax">; }
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.charAt</span><span class="jsdoc-syntax">(0) === </span><span class="jsdoc-string">'#'</span><span class="jsdoc-syntax">) {
+          </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n.charAt</span><span class="jsdoc-syntax">(1) === </span><span class="jsdoc-string">'x'
+            </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">String.fromCharCode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.substring</span><span class="jsdoc-syntax">(2), 16))
+            : </span><span class="jsdoc-var">String.fromCharCode</span><span class="jsdoc-syntax">(+</span><span class="jsdoc-var">n.substring</span><span class="jsdoc-syntax">(1));
+        }
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+      });
+    }
+
+    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">replace </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">regex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">) {
+      </span><span class="jsdoc-var">regex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">regex.source</span><span class="jsdoc-syntax">;
+      </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+      </span><span class="jsdoc-keyword">return function </span><span class="jsdoc-var">self</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">RegExp</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">regex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">); }
+        </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val.source </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val.replace</span><span class="jsdoc-syntax">(/(^|[^\[])\^/g, </span><span class="jsdoc-string">'$1'</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">regex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">regex.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">self</span><span class="jsdoc-syntax">;
+      };
+    }
+
+
+         </span><span class="jsdoc-comment">/**
+         * eval:var:noop
+    */
+    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">noop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {}
+    </span><span class="jsdoc-var">noop.exec </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">noop</span><span class="jsdoc-syntax">;
+
+         </span><span class="jsdoc-comment">/**
+         * eval:var:merge
+    */
+    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">merge </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">) {
+      </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 1
+        , </span><span class="jsdoc-var">target
+        </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">;
+
+      </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">arguments.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
+        </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
+        </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">key </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">) {
+          </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Object.prototype.hasOwnProperty.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">)) {
+            </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">];
+          }
+        }
+      }
+
+      </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
+    }
+
+
     </span><span class="jsdoc-comment">/**
      * Block-Level Grammar
      */
 
+
+
+
     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">block </span><span class="jsdoc-syntax">= {
       </span><span class="jsdoc-var">newline</span><span class="jsdoc-syntax">: /^\n+/,
       </span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">: /^( {4}[^\n]+\n*)+/,
      * Inline Lexer &amp; Compiler
      */
 
-    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">InlineLexer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">links</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
+    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">InlineLexer  </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">links</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
       </span><span class="jsdoc-var">this.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">marked.defaults</span><span class="jsdoc-syntax">;
       </span><span class="jsdoc-var">this.links </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">links</span><span class="jsdoc-syntax">;
       </span><span class="jsdoc-var">this.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">inline.normal</span><span class="jsdoc-syntax">;
      * Renderer
      */
 
-    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Renderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
+     /**
+         * eval:var:Renderer
+    */
+
+    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Renderer   </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
       </span><span class="jsdoc-var">this.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">|| {};
     }
 
     </span><span class="jsdoc-comment">/**
      * Parsing &amp; Compiling
      */
+         /**
+         * eval:var:Parser
+    */
 
-    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Parser </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
+    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Parser</span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
       </span><span class="jsdoc-var">this.tokens </span><span class="jsdoc-syntax">= [];
       </span><span class="jsdoc-var">this.token </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
       </span><span class="jsdoc-var">this.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">marked.defaults</span><span class="jsdoc-syntax">;
       }
     };
 
-    </span><span class="jsdoc-comment">/**
-     * Helpers
-     */
-
-    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">escape </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">encode</span><span class="jsdoc-syntax">) {
-      </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">html
-        .replace</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">encode </span><span class="jsdoc-syntax">? /&amp;(?!#?\w+;)/g : /&amp;/g, </span><span class="jsdoc-string">'&amp;amp;'</span><span class="jsdoc-syntax">)
-        </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&lt;/g, </span><span class="jsdoc-string">'&amp;lt;'</span><span class="jsdoc-syntax">)
-        </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&gt;/g, </span><span class="jsdoc-string">'&amp;gt;'</span><span class="jsdoc-syntax">)
-        </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&quot;/g, </span><span class="jsdoc-string">'&amp;quot;'</span><span class="jsdoc-syntax">)
-        </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/'/g, </span><span class="jsdoc-string">'&amp;#39;'</span><span class="jsdoc-syntax">);
-    }
-
-    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">unescape </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">) {
-        </span><span class="jsdoc-comment">// explicitly match decimal, hex, and named HTML entities 
-      </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">html.replace</span><span class="jsdoc-syntax">(/&amp;(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">) {
-        </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.toLowerCase</span><span class="jsdoc-syntax">();
-        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'colon'</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">':'</span><span class="jsdoc-syntax">; }
-        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.charAt</span><span class="jsdoc-syntax">(0) === </span><span class="jsdoc-string">'#'</span><span class="jsdoc-syntax">) {
-          </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n.charAt</span><span class="jsdoc-syntax">(1) === </span><span class="jsdoc-string">'x'
-            </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">String.fromCharCode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.substring</span><span class="jsdoc-syntax">(2), 16))
-            : </span><span class="jsdoc-var">String.fromCharCode</span><span class="jsdoc-syntax">(+</span><span class="jsdoc-var">n.substring</span><span class="jsdoc-syntax">(1));
-        }
-        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
-      });
-    }
-
-    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">replace </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">regex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">) {
-      </span><span class="jsdoc-var">regex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">regex.source</span><span class="jsdoc-syntax">;
-      </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
-      </span><span class="jsdoc-keyword">return function </span><span class="jsdoc-var">self</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) {
-        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">RegExp</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">regex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">); }
-        </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val.source </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">;
-        </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val.replace</span><span class="jsdoc-syntax">(/(^|[^\[])\^/g, </span><span class="jsdoc-string">'$1'</span><span class="jsdoc-syntax">);
-        </span><span class="jsdoc-var">regex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">regex.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">);
-        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">self</span><span class="jsdoc-syntax">;
-      };
-    }
-
-    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">noop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {}
-    </span><span class="jsdoc-var">noop.exec </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">noop</span><span class="jsdoc-syntax">;
-
-    </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">) {
-      </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 1
-        , </span><span class="jsdoc-var">target
-        </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">;
-
-      </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">arguments.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
-        </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
-        </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">key </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">) {
-          </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Object.prototype.hasOwnProperty.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">)) {
-            </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">];
-          }
-        }
-      }
-
-      </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
-    }
-
 
     </span><span class="jsdoc-comment">/**
      * Marked
      */
-
+         /**
+         * eval:var:marked
+    */
     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">marked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">) {
       </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'function'</span><span class="jsdoc-syntax">) {
         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">) {
         }
 
         </span><span class="jsdoc-var">pending </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tokens.length</span><span class="jsdoc-syntax">;
-
+         </span><span class="jsdoc-comment">/**
+         * eval:var:done
+    */
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">done </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">err</span><span class="jsdoc-syntax">) {
           </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">err</span><span class="jsdoc-syntax">) {
             </span><span class="jsdoc-var">opt.highlight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">highlight</span><span class="jsdoc-syntax">;
index ece45ff..bb72bfe 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/MasterTemplate.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">/*
+<html><head><title>Roo/MasterTemplate.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 0e89fb0..9a815ac 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/MessageBox.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">/*
+<html><head><title>Roo/MessageBox.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 6e5e355..ad87006 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/PagingToolbar.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">/*
+<html><head><title>Roo/PagingToolbar.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 7501823..bfbe5dd 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/QuickTips.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">/*
+<html><head><title>Roo/QuickTips.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index ca95991..154afb0 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/ReaderLayout.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">/*
+<html><head><title>Roo/ReaderLayout.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 7a066e2..e9f6f65 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Resizable.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">/*
+<html><head><title>Roo/Resizable.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index ff5146a..b156e4e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Shadow.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">/*
+<html><head><title>Roo/Shadow.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 4d9168e..9250f1b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/SplitBar.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">/*
+<html><head><title>Roo/SplitBar.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 1fb9c72..a6bd1cc 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/SplitButton.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">/*
+<html><head><title>Roo/SplitButton.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 988544e..4b22ab7 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/SplitLayoutRegion.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">/*
+<html><head><title>Roo/SplitLayoutRegion.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 73b6a78..f1d87de 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/TabPanel.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">/*
+<html><head><title>Roo/TabPanel.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 553e5a6..556eda8 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Template.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">/*
+<html><head><title>Roo/Template.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -68,6 +68,7 @@ t.append('some-element', {id: 'myid', cls: 'myclass', name: 'foo', value: 'bar'}
      * @return {String} The HTML fragment
      */
     </span><span class="jsdoc-var">applyTemplate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">){
+        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">([</span><span class="jsdoc-string">&quot;applyTemplate&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">]);
         </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
 
             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.compiled</span><span class="jsdoc-syntax">){
index 4b389ad..4c83034 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/Toolbar.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">/*
+<html><head><title>Roo/Toolbar.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 4d4df01..ef63c3e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/UpdateManager.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">/*
+<html><head><title>Roo/UpdateManager.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 0f9d9df..9d2e43e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/View.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">/*
+<html><head><title>Roo/View.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 7fe406d..b294cfd 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/XComponent.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">/*
+<html><head><title>Roo/XComponent.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">/*
  * Original code for Roojs - LGPL
  * &lt;script type=&quot;text/javascript&quot;&gt;
  */
index 26eb5e0..85df96c 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/XTemplate.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">/*
+<html><head><title>Roo/XTemplate.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 63b4f86..898babf 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Alert.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">/**
+<html><head><title>Roo/bootstrap/Alert.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">/**
  * @class Roo.bootstrap.Alert
  * @extends Roo.bootstrap.Component
  * Bootstrap Alert class - shows an alert area box
index 0f8051d..41fc11b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/BezierSignature.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">/**
+<html><head><title>Roo/bootstrap/BezierSignature.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">/**
  * @class Roo.bootstrap.BezierSignature
  * @extends Roo.bootstrap.Component
  * Bootstrap BezierSignature class
index 2a4c0be..895a55f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Body.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">/*
+<html><head><title>Roo/bootstrap/Body.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">/*
  * - LGPL
  *
  * Body
index 058fb02..641de3e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Brick.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">/*
+<html><head><title>Roo/bootstrap/Brick.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">/*
  * - LGPL
  *
  * element
index b4f367e..e40a2aa 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Button.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">/*
+<html><head><title>Roo/bootstrap/Button.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">/*
  * - LGPL
  *
  * button
index 1f7e174..6993d35 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/ButtonGroup.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">/*
+<html><head><title>Roo/bootstrap/ButtonGroup.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">/*
  * - LGPL
  *
  * button group
index 3e2c994..e622508 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Calendar.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">/*
+<html><head><title>Roo/bootstrap/Calendar.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">/*
  * - LGPL
  *
  * based on jquery fullcalendar
index 0de75f7..1864c90 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/CheckBox.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">/*
+<html><head><title>Roo/bootstrap/CheckBox.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">/*
  * - LGPL
  *
  * CheckBox
     </span><span class="jsdoc-var">inline</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
     </span><span class="jsdoc-var">tooltip </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
 
+    </span><span class="jsdoc-comment">// checkbox success does not make any sense really.. 
+    </span><span class="jsdoc-var">invalidClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-var">validClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">,
+
+
     </span><span class="jsdoc-var">getAutoCreate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
     {
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">align </span><span class="jsdoc-syntax">= (!</span><span class="jsdoc-var">this.labelAlign</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">this.parentLabelAlign</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-var">this.labelAlign</span><span class="jsdoc-syntax">;
             }
 
         }
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">boxLabelCfg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
+
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.boxLabel</span><span class="jsdoc-syntax">){
+
+            </span><span class="jsdoc-var">boxLabelCfg </span><span class="jsdoc-syntax">= {
+                </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'label'</span><span class="jsdoc-syntax">,
+                </span><span class="jsdoc-comment">//'for': id, // box label is handled by onclick - so no for...
+                </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'box-label'</span><span class="jsdoc-syntax">,
+                </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.boxLabel
+            </span><span class="jsdoc-syntax">};
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tooltip</span><span class="jsdoc-syntax">){
+                </span><span class="jsdoc-var">boxLabelCfg.tooltip </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.tooltip</span><span class="jsdoc-syntax">;
+            }
+
+        }
+
 
         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">align </span><span class="jsdoc-syntax">===</span><span class="jsdoc-string">'left' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.fieldLabel.length</span><span class="jsdoc-syntax">) {
 </span><span class="jsdoc-comment">//                Roo.log(&quot;left and has label&quot;);
                 }
             ];
 
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">boxLabelCfg</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">cfg.cn</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.cn.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">boxLabelCfg</span><span class="jsdoc-syntax">);
+            }
+
             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.labelWidth </span><span class="jsdoc-syntax">&gt; 12){
                 </span><span class="jsdoc-var">cfg.cn</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.style </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;width: &quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.labelWidth </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'px'</span><span class="jsdoc-syntax">;
             }
                     </span><span class="jsdoc-var">inputblock
 
                 </span><span class="jsdoc-syntax">];
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">boxLabelCfg</span><span class="jsdoc-syntax">) {
+                    </span><span class="jsdoc-var">cfg.cn.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">boxLabelCfg</span><span class="jsdoc-syntax">);
+                }
 
         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
 
 </span><span class="jsdoc-comment">//                Roo.log(&quot; no label &amp;&amp; no align&quot;);
                 </span><span class="jsdoc-var">cfg.cn </span><span class="jsdoc-syntax">= [  </span><span class="jsdoc-var">inputblock </span><span class="jsdoc-syntax">] ;
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">boxLabelCfg</span><span class="jsdoc-syntax">) {
+                    </span><span class="jsdoc-var">cfg.cn.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">boxLabelCfg</span><span class="jsdoc-syntax">);
+                }
 
 
         }
 
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.boxLabel</span><span class="jsdoc-syntax">){
-             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">boxLabelCfg </span><span class="jsdoc-syntax">= {
-                </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'label'</span><span class="jsdoc-syntax">,
-                </span><span class="jsdoc-comment">//'for': id, // box label is handled by onclick - so no for...
-                </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'box-label'</span><span class="jsdoc-syntax">,
-                </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.boxLabel
-            </span><span class="jsdoc-syntax">};
 
-            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tooltip</span><span class="jsdoc-syntax">){
-                </span><span class="jsdoc-var">boxLabelCfg.tooltip </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.tooltip</span><span class="jsdoc-syntax">;
-            }
-
-            </span><span class="jsdoc-var">cfg.cn.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">boxLabelCfg</span><span class="jsdoc-syntax">);
-        }
 
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inputType </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'radio'</span><span class="jsdoc-syntax">){
             </span><span class="jsdoc-var">cfg.cn.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">);
index 9044180..530bbb7 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Column.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">/*
+<html><head><title>Roo/bootstrap/Column.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">/*
  * - LGPL
  *
  * column
index 94dacc8..1fa84d6 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/ComboBox.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">/*
+<html><head><title>Roo/bootstrap/ComboBox.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">/*
  * - LGPL
  * * 
  */
index 8afb8a8..3c77cea 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Component.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">/*
+<html><head><title>Roo/bootstrap/Component.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">/*
  * - LGPL
  *
  * base class for bootstrap elements.
index 9aca306..5b21a94 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Container.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">/*
+<html><head><title>Roo/bootstrap/Container.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">/*
  * - LGPL
  *
  * page container.
index a81f415..72b2e90 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/DateField.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">/*
+<html><head><title>Roo/bootstrap/DateField.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">/*
  * - LGPL
  *
  * DateField
index ed160f7..01b27c4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/DateSplitField.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">/*
+<html><head><title>Roo/bootstrap/DateSplitField.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">/*
  * - LGPL
  *
  * page DateSplitField.
index 6b1f6f5..f8429ae 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/DocumentManager.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/DocumentManager.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">/*
 * Licence: LGPL
 */
index 794b031..4e7379d 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/DocumentSlider.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/DocumentSlider.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">/*
 * Licence: LGPL
 */
index 3c6b53d..fae8bc4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/DocumentViewer.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/DocumentViewer.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">/*
 * Licence: LGPL
 */
index 514d75a..b77877f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Element.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">/*
+<html><head><title>Roo/bootstrap/Element.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">/*
  * - LGPL
  *
  * element
index fdbffce..375cec9 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/FieldLabel.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">/*
+<html><head><title>Roo/bootstrap/FieldLabel.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">/*
  * - LGPL
  *
  * FieldLabel
index 990c1b3..2d224ea 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Form.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">/*
+<html><head><title>Roo/bootstrap/Form.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">/*
  * - LGPL
  *
  * form
index e0c7a3b..99e31f5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Graph.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">/*
+<html><head><title>Roo/bootstrap/Graph.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">/*
  * - LGPL
  *
  * Graph
index b4db671..b545d27 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Header.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">/*
+<html><head><title>Roo/bootstrap/Header.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">/*
  * - LGPL
  *
  * header
index 38e319e..cf4330f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/HtmlEditor.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">/*
+<html><head><title>Roo/bootstrap/HtmlEditor.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">/*
  * - LGPL
  *
  * HtmlEditor
index 1b2eaaa..370369b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Img.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">/*
+<html><head><title>Roo/bootstrap/Img.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">/*
  * - LGPL
  *
  * image
index e4c7c73..4131443 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Input.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">/*
+<html><head><title>Roo/bootstrap/Input.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">/*
  * - LGPL
  *
  * Input
index 33f8331..db8c9c9 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/LayoutMasonry.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">/**
+<html><head><title>Roo/bootstrap/LayoutMasonry.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">/**
  *
  * This is based on 
  * http://masonry.desandro.com
index 080adf0..2291a37 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/LayoutMasonryAuto.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">/**
+<html><head><title>Roo/bootstrap/LayoutMasonryAuto.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">/**
  *
  * This is based on 
  * http://masonry.desandro.com
index 4bcc472..80e58b2 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Link.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">/*
+<html><head><title>Roo/bootstrap/Link.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">/*
  * - LGPL
  *
  * image
index a4412eb..5d54140 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/LocationPicker.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">/*
+<html><head><title>Roo/bootstrap/LocationPicker.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">/*
  * - LGPL
  *
  * Location Picker
index 0727835..70d7a36 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/MasonryBrick.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">/*
+<html><head><title>Roo/bootstrap/MasonryBrick.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">/*
  * - LGPL
  *
  * element
index 0593fb8..37c319e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Menu.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">/*
+<html><head><title>Roo/bootstrap/Menu.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">/*
  * - LGPL
  *
  * menu
index 0a2570f..79d1335 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/MenuItem.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">/*
+<html><head><title>Roo/bootstrap/MenuItem.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">/*
  * - LGPL
  *
  * menu item
index 2c99edf..b78814a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/MenuMgr.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">/*
+<html><head><title>Roo/bootstrap/MenuMgr.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index b9b88ce..4348957 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/MenuSeparator.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">/*
+<html><head><title>Roo/bootstrap/MenuSeparator.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">/*
  * - LGPL
  *
  * menu separator
index d47ba9c..4173af2 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/MessageBar.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">/*
+<html><head><title>Roo/bootstrap/MessageBar.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">/*
  * - LGPL
  *
  * element
index 0dd2666..99599d5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/MessageBox.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">/*
+<html><head><title>Roo/bootstrap/MessageBox.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">/*
  * - LGPL
  *
  * messagebox - can be used as a replace
index ea2b3d4..2f36942 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Modal.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/Modal.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">/*
 * Licence: LGPL
 */
@@ -16,6 +16,8 @@
  * @cfg {Boolean} animate default true
  * @cfg {Boolean} allow_close default true
  * @cfg {Boolean} fitwindow default false
+ * @cfg {Number} width fixed width - usefull for chrome extension only really.
+ * @cfg {Number} height fixed height - usefull for chrome extension only really.
  * @cfg {String} size (sm|lg) default empty
  * @cfg {Number} max_width set the max width of modal
  *
 
     </span><span class="jsdoc-var">getAutoCreate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
     {
+        </span><span class="jsdoc-comment">// we will default to modal-body-overflow - might need to remove or make optional later.
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bdy </span><span class="jsdoc-syntax">= {
-                </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'modal-body'</span><span class="jsdoc-syntax">,
+                </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'modal-body enable-modal-body-overflow '</span><span class="jsdoc-syntax">,
                 </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.html </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">''
         </span><span class="jsdoc-syntax">};
 
index 1b74dbf..839e924 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/MoneyField.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/MoneyField.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">/**
  * @class Roo.bootstrap.MoneyField
  * @extends Roo.bootstrap.ComboBox
index 38e96db..5f26385 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/MonthField.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">/*
+<html><head><title>Roo/bootstrap/MonthField.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">/*
  * - LGPL
  *
  * MonthField
index 2292ab4..2cc98c0 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/NavGroup.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">/*
+<html><head><title>Roo/bootstrap/NavGroup.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">/*
  * - LGPL
  *
  * nav group
index 7a5b06e..91f48db 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/NavHeaderbar.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">/*
+<html><head><title>Roo/bootstrap/NavHeaderbar.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">/*
  * - LGPL
  *
  * navbar
index 29e4f99..8626881 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/NavItem.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">/*
+<html><head><title>Roo/bootstrap/NavItem.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">/*
  * - LGPL
  *
  * row
index 94c5341..5b3e3de 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/NavProgressBar.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">/*
+<html><head><title>Roo/bootstrap/NavProgressBar.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">/*
  * - LGPL
  *
  * nav progress bar
index 92a1e6f..9604ad2 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/NavProgressItem.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">/*
+<html><head><title>Roo/bootstrap/NavProgressItem.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">/*
  * - LGPL
  *
  * Nav Progress Item
index 4b52a53..eba6db8 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/NavSidebar.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">/*
+<html><head><title>Roo/bootstrap/NavSidebar.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">/*
  * - LGPL
  *
  * navbar
index 90a2228..0a39d4b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/NavSidebarItem.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">/*
+<html><head><title>Roo/bootstrap/NavSidebarItem.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">/*
  * - LGPL
  *
  * sidebar item
index 7292e59..a5d7bf4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/NavSimplebar.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">/*
+<html><head><title>Roo/bootstrap/NavSimplebar.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">/*
  * - LGPL
  *
  * navbar
index e9d2496..45ed0c1 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Navbar.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">/*
+<html><head><title>Roo/bootstrap/Navbar.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">/*
  * - LGPL
  *
  * navbar
index 31fb6df..35b93b1 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/NumberField.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">/*
+<html><head><title>Roo/bootstrap/NumberField.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">/*
  * - LGPL
  *
  * Number field 
index fcc5b4a..21662b1 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Pagination.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">/*
+<html><head><title>Roo/bootstrap/Pagination.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">/*
  * - LGPL
  *
  * pagination
index 195879b..eba9b30 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/PaginationItem.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">/*
+<html><head><title>Roo/bootstrap/PaginationItem.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">/*
  * - LGPL
  *
  * Pagination item
index 1597173..7b2a5e6 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/PagingToolbar.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">/*
+<html><head><title>Roo/bootstrap/PagingToolbar.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index a6c77e2..c679cac 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/PhoneInput.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">/**
+<html><head><title>Roo/bootstrap/PhoneInput.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">/**
 *    This script refer to:
 *    Title: International Telephone Input
 *    Author: Jack O'Connor
index 7a6e7b2..5981d62 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/PhoneInputData.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">/**
+<html><head><title>Roo/bootstrap/PhoneInputData.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">/**
 *    This script refer to:
 *    Title: International Telephone Input
 *    Author: Jack O'Connor
index 1f6df19..6e95977 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Popover.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">/*
+<html><head><title>Roo/bootstrap/Popover.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">/*
  * - LGPL
  *
  * element
index 7e55812..5d3ee07 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Progress.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">/*
+<html><head><title>Roo/bootstrap/Progress.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">/*
  * - LGPL
  *
  * Progress
index e119802..386c7e2 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/ProgressBar.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">/*
+<html><head><title>Roo/bootstrap/ProgressBar.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">/*
  * - LGPL
  *
  * ProgressBar
index 1cf3ca6..a18871e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Radio.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">/*
+<html><head><title>Roo/bootstrap/Radio.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">/*
  * - LGPL
  *
  * RadioItem
index 4ba58e9..00906fb 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/RadioSet.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">/*
+<html><head><title>Roo/bootstrap/RadioSet.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">/*
  * - LGPL
  *
  * RadioSet
index d19b1d9..d486712 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Row.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">/*
+<html><head><title>Roo/bootstrap/Row.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">/*
  * - LGPL
  *
  * row
index 6744b93..7103506 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/SecurePass.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">/*
+<html><head><title>Roo/bootstrap/SecurePass.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">/*
  * - LGPL
  *
  * Input
index 34688f5..d2b0ced 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Slider.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">/*
+<html><head><title>Roo/bootstrap/Slider.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">/*
  * - LGPL
  *
  * slider
index b5d9d66..da57a62 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/SplitBar.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">/*
+<html><head><title>Roo/bootstrap/SplitBar.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 6802496..7fe4849 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/TabGroup.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">/*
+<html><head><title>Roo/bootstrap/TabGroup.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">/*
  * - LGPL
  *
  * column
index 9745331..86af5ee 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/TabPanel.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">/*
+<html><head><title>Roo/bootstrap/TabPanel.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">/*
  * - LGPL
  *
  * TabPanel
index 022cc2e..3aa9798 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Table.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">/*
+<html><head><title>Roo/bootstrap/Table.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">/*
  * - LGPL
  *
  * table
index 653e43c..67e6281 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/TableBody.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">/*
+<html><head><title>Roo/bootstrap/TableBody.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">/*
  * - LGPL
  *
  * table body
index 59c22c6..1c70573 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/TableCell.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">/*
+<html><head><title>Roo/bootstrap/TableCell.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">/*
  * - LGPL
  *
  * table cell
index def3b0d..eb02f60 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/TableRow.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">/*
+<html><head><title>Roo/bootstrap/TableRow.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">/*
  * - LGPL
  *
  * table row
index 1526dcf..f961c07 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Table/AbstractSelectionModel.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/Table/AbstractSelectionModel.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">/**
  * @class Roo.bootstrap.Table.AbstractSelectionModel
  * @extends Roo.util.Observable
index 1ed2978..26696a8 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Table/RowSelectionModel.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/Table/RowSelectionModel.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">/**
  * @extends Roo.bootstrap.Table.AbstractSelectionModel
  * @class Roo.bootstrap.Table.RowSelectionModel
index 27d22b7..6320c3f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/TextArea.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">/*
+<html><head><title>Roo/bootstrap/TextArea.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">/*
  * - LGPL
  *
  * Input
index 197b30f..33a1d42 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/TimeField.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">/*
+<html><head><title>Roo/bootstrap/TimeField.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">/*
  * - LGPL
  *
  * TimeField
index 80c4cab..fcbaaa5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/Tooltip.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">/*
+<html><head><title>Roo/bootstrap/Tooltip.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">/*
  * - LGPL
  *
  * Tooltip
index 3d54f6d..1a7506f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/TriggerField.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">/*
+<html><head><title>Roo/bootstrap/TriggerField.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">/*
  * - LGPL
  *
  * trigger field - base class for combo..
index d9f495f..31c3acb 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/UploadCropbox.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/UploadCropbox.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">/*
 * Licence: LGPL
 */
index a36e468..ceed68c 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/dash/NumberBox.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">/*
+<html><head><title>Roo/bootstrap/dash/NumberBox.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">/*
  * - LGPL
  *
  * numberBox
index 623decd..1980d56 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/dash/TabBox.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">/*
+<html><head><title>Roo/bootstrap/dash/TabBox.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">/*
  * - LGPL
  *
  * TabBox
index 91a1f4b..abd4bbc 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/dash/TabPane.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">/*
+<html><head><title>Roo/bootstrap/dash/TabPane.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">/*
  * - LGPL
  *
  * Tab pane
index 815a943..d60c6e3 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/htmleditor/ToolbarStandard.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/htmleditor/ToolbarStandard.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
 <span class="jsdoc-var">Roo.namespace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Roo.bootstrap.htmleditor'</span><span class="jsdoc-syntax">);
 </span><span class="jsdoc-comment">/**
  * @class Roo.bootstrap.HtmlEditorToolbar1
index 11934e9..bd49681 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/Basic.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">/*
+<html><head><title>Roo/bootstrap/layout/Basic.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 6f711c4..cb15bb0 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/Border.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">/*
+<html><head><title>Roo/bootstrap/layout/Border.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index e3ae23d..6f84e57 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/Center.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">/*
+<html><head><title>Roo/bootstrap/layout/Center.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 8c48b39..66b881e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/East.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/layout/East.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
 <span class="jsdoc-var">Roo.bootstrap.layout.East </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">config.region </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;east&quot;</span><span class="jsdoc-syntax">;
     </span><span class="jsdoc-var">config.cursor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;e-resize&quot;</span><span class="jsdoc-syntax">;
index 16f4499..6901f8e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/Manager.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">/*
+<html><head><title>Roo/bootstrap/layout/Manager.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index e81f172..0825b1f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/North.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/layout/North.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
 
 
 
index 06aeb52..b57eab3 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/Region.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">/*
+<html><head><title>Roo/bootstrap/layout/Region.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index a815dd0..1fc7bfa 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/South.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/layout/South.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
 
 
 
index 08506c2..15285e1 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/Split.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">/*
+<html><head><title>Roo/bootstrap/layout/Split.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 9ae028a..4e0689c 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/West.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/layout/West.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
 <span class="jsdoc-var">Roo.bootstrap.layout.West </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">config.region </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;west&quot;</span><span class="jsdoc-syntax">;
     </span><span class="jsdoc-var">config.cursor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;w-resize&quot;</span><span class="jsdoc-syntax">;
index 4c7182d..2a3a4c7 100644 (file)
@@ -1 +1 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/layout/layout-ns.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-var">Roo.namespace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Roo.bootstrap.layout&quot;</span><span class="jsdoc-syntax">);</span></code></body></html>
\ No newline at end of file
+<html><head><title>Roo/bootstrap/layout/layout-ns.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-var">Roo.namespace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Roo.bootstrap.layout&quot;</span><span class="jsdoc-syntax">);</span></code></body></html>
\ No newline at end of file
index 6a047c6..6186557 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/menu/Item.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">/*
+<html><head><title>Roo/bootstrap/menu/Item.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">/*
  * - LGPL
  *
  * menu item
index 0add425..36e4762 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/menu/Menu.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">/*
+<html><head><title>Roo/bootstrap/menu/Menu.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">/*
  * - LGPL
  *
  * menu
index a2e90db..bc70cae 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/menu/Separator.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">/*
+<html><head><title>Roo/bootstrap/menu/Separator.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">/*
  * - LGPL
  *
  * menu separator
index f543835..eb42103 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/panel/Content.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">/*
+<html><head><title>Roo/bootstrap/panel/Content.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 2669594..452e3fd 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/panel/Grid.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/panel/Grid.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">/**
  * @class Roo.bootstrap.panel.Grid
  * @extends Roo.bootstrap.panel.Content
index c9dc573..de7dc80 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/panel/Nest.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/panel/Nest.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">/**
  * @class Roo.bootstrap.panel.Nest
  * @extends Roo.bootstrap.panel.Content
index 51631b3..c57610f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/panel/TabItem.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/bootstrap/panel/TabItem.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">/**
  * @class Roo.TabPanelItem
  * @extends Roo.util.Observable
index b664d48..d08e296 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/panel/Tabs.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">/*
+<html><head><title>Roo/bootstrap/panel/Tabs.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 8fbd2ff..aa6e6b3 100644 (file)
@@ -1 +1 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/panel/panel-ns.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-var">Roo.namespace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Roo.bootstrap.panel&quot;</span><span class="jsdoc-syntax">);</span></code></body></html>
\ No newline at end of file
+<html><head><title>Roo/bootstrap/panel/panel-ns.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-var">Roo.namespace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Roo.bootstrap.panel&quot;</span><span class="jsdoc-syntax">);</span></code></body></html>
\ No newline at end of file
index 68d8c25..ebac424 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/bootstrap/version.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">/**
+<html><head><title>Roo/bootstrap/version.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">/**
  * set the version of bootstrap based on the stylesheet...
  *
  */
@@ -7,7 +7,7 @@
         </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">=3;
                 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.styleSheets</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s.href.match</span><span class="jsdoc-syntax">(/css-bootstrap4/)) {
+                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">s.href  </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">s.href.match</span><span class="jsdoc-syntax">(/css-bootstrap4/)) {
                         </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">=4;
                     }
                 });
index ec5a2f7..7966ceb 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/ArrayReader.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">/*
+<html><head><title>Roo/data/ArrayReader.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -46,42 +46,52 @@ var myReader = new Roo.data.ArrayReader({
  * 
  * created using {@link Roo.data.Record#create}.
  */
-</span><span class="jsdoc-var">Roo.data.ArrayReader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">meta</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">recordType</span><span class="jsdoc-syntax">){
-
-
+</span><span class="jsdoc-var">Roo.data.ArrayReader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">meta</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">recordType</span><span class="jsdoc-syntax">)
+{
     </span><span class="jsdoc-var">Roo.data.ArrayReader.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">meta</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">recordType</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">meta.fields</span><span class="jsdoc-syntax">);
 };
 
 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.data.ArrayReader</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.data.JsonReader</span><span class="jsdoc-syntax">, {
-    </span><span class="jsdoc-comment">/**
+
+      </span><span class="jsdoc-comment">/**
      * Create a data block containing Roo.data.Records from an XML document.
      * @param {Object} o An Array of row objects which represents the dataset.
      * @return {Object} A data block which is used by an {@link Roo.data.Store} object as
      * a cache of Roo.data.Records.
      */
-    </span><span class="jsdoc-var">readRecords </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">){
+    </span><span class="jsdoc-var">readRecords </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)
+    {
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.meta </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.meta.id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">recordType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.recordType</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fields </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">recordType.prototype.fields</span><span class="jsdoc-syntax">;
        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">records </span><span class="jsdoc-syntax">= [];
        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">root </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
-           </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">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">root.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
-                   </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">root</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
-               </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">values </span><span class="jsdoc-syntax">= {};
-               </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= ((</span><span class="jsdoc-var">sid </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">sid </span><span class="jsdoc-syntax">=== 0) &amp;&amp; </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sid</span><span class="jsdoc-syntax">] !== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sid</span><span class="jsdoc-syntax">] !== </span><span class="jsdoc-string">&quot;&quot; </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sid</span><span class="jsdoc-syntax">] : </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">);
-               </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">jlen </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fields.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">jlen</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">++){
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fields.items</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">];
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.mapping </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">f.mapping </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">null </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">f.mapping </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">] !== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">] : </span><span class="jsdoc-var">f.defaultValue</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.convert</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
-                </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f.name</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
-            }
-               </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">recordType</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
-               </span><span class="jsdoc-var">record.json </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">;
-               </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">records.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">;
+       </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">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">root.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
+               </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">root</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
+           </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">values </span><span class="jsdoc-syntax">= {};
+           </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= ((</span><span class="jsdoc-var">sid </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">sid </span><span class="jsdoc-syntax">=== 0) &amp;&amp; </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sid</span><span class="jsdoc-syntax">] !== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sid</span><span class="jsdoc-syntax">] !== </span><span class="jsdoc-string">&quot;&quot; </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sid</span><span class="jsdoc-syntax">] : </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">);
+           </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">jlen </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fields.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">jlen</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">++){
+               </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fields.items</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">];
+               </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.mapping </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">f.mapping </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">null </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">f.mapping </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">;
+               </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">] !== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">] : </span><span class="jsdoc-var">f.defaultValue</span><span class="jsdoc-syntax">;
+               </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.convert</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
+               </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f.name</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
            }
-           </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
-               </span><span class="jsdoc-var">records </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">,
-               </span><span class="jsdoc-var">totalRecords </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">records.length
-           </span><span class="jsdoc-syntax">};
+           </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">recordType</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
+           </span><span class="jsdoc-var">record.json </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">;
+           </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">records.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">;
+       }
+       </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
+           </span><span class="jsdoc-var">records </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">,
+           </span><span class="jsdoc-var">totalRecords </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">records.length
+       </span><span class="jsdoc-syntax">};
+    },
+    </span><span class="jsdoc-comment">// used when loading children.. @see loadDataFromChildren
+    </span><span class="jsdoc-var">toLoadData</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec</span><span class="jsdoc-syntax">)
+    {
+       </span><span class="jsdoc-comment">// expect rec just to be an array.. eg [a,b,c, [...] &lt;&lt; cn ]
+       </span><span class="jsdoc-keyword">return typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec.data.cn</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? [] : </span><span class="jsdoc-var">rec.data.cn</span><span class="jsdoc-syntax">;
+
     }
+
+
 });</span></code></body></html>
\ No newline at end of file
index e6a4057..4119910 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/Connection.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">/*
+<html><head><title>Roo/data/Connection.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
                 </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">+= (</span><span class="jsdoc-var">url.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'?'</span><span class="jsdoc-syntax">) != -1 ? </span><span class="jsdoc-string">'&amp;' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'?'</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">;
                 </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
             }
+            </span><span class="jsdoc-var">Roo.lib.Ajax.useDefaultHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.headers</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.headers</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'Content-Type'</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">;
             </span><span class="jsdoc-var">this.transId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Ajax.request</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">Roo.lib.Ajax.useDefaultHeader </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.transId</span><span class="jsdoc-syntax">;
         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
             </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">]);
index a396e87..e0d1aa1 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/DataProxy.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">/*
+<html><head><title>Roo/data/DataProxy.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index f89c703..c1e6247 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/DataReader.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">/*
+<html><head><title>Roo/data/DataReader.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -27,6 +27,9 @@
 };
 
 </span><span class="jsdoc-var">Roo.data.DataReader.prototype </span><span class="jsdoc-syntax">= {
+
+
+    </span><span class="jsdoc-var">readerType </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Data'</span><span class="jsdoc-syntax">,
      </span><span class="jsdoc-comment">/**
      * Create an empty record
      * @param {Object} data (optional) - overlay some values
@@ -47,4 +50,5 @@
         </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">this.recordType</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">da</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">));
     }
 
+
 };</span></code></body></html>
\ No newline at end of file
index 242dd68..a22420e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/Field.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">/*
+<html><head><title>Roo/data/Field.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 178e625..55557c9 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/HttpProxy.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">/*
+<html><head><title>Roo/data/HttpProxy.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index d15d3b7..34bf3b4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/JsonReader.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">/*
+<html><head><title>Roo/data/JsonReader.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -67,6 +67,8 @@ var myReader = new Roo.data.JsonReader({
 };
 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.data.JsonReader</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.data.DataReader</span><span class="jsdoc-syntax">, {
 
+    </span><span class="jsdoc-var">readerType </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Json'</span><span class="jsdoc-syntax">,
+
     </span><span class="jsdoc-comment">/**
      * @prop {Boolean} metaFromRemote  - if the meta data was loaded from the remote source.
      * Used by Store query builder to append _requestMeta to params.
@@ -208,5 +210,13 @@ var myReader = new Roo.data.JsonReader({
             </span><span class="jsdoc-var">records </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">,
             </span><span class="jsdoc-var">totalRecords </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">totalRecords
         </span><span class="jsdoc-syntax">};
+    },
+    </span><span class="jsdoc-comment">// used when loading children.. @see loadDataFromChildren
+    </span><span class="jsdoc-var">toLoadData</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec</span><span class="jsdoc-syntax">)
+    {
+       </span><span class="jsdoc-comment">// expect rec just to be an array.. eg [a,b,c, [...] &lt;&lt; cn ]
+       </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec.data.cn</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? [] : </span><span class="jsdoc-var">rec.data.cn</span><span class="jsdoc-syntax">;
+       </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{ </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">total </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">data.length </span><span class="jsdoc-syntax">};
+
     }
 });</span></code></body></html>
\ No newline at end of file
index ed35181..cb8bc5a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/JsonStore.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">/*
+<html><head><title>Roo/data/JsonStore.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 57f2587..c3da147 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/MemoryProxy.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">/*
+<html><head><title>Roo/data/MemoryProxy.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 039524b..e566c1a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/Record.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">/*
+<html><head><title>Roo/data/Record.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index cd07aee..790c279 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/ScriptTagProxy.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">/*
+<html><head><title>Roo/data/ScriptTagProxy.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 0d0a36b..6cb65f6 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/SimpleStore.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">/*
+<html><head><title>Roo/data/SimpleStore.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
  * Small helper class to make creating Stores from Array data easier.
  * @cfg {Number} id The array index of the record id. Leave blank to auto generate ids.
  * @cfg {Array} fields An array of field definition objects, or field name strings.
+ * @cfg {Object} an existing reader (eg. copied from another store)
  * @cfg {Array} data The multi-dimensional array of data
  * @constructor
  * @param {Object} config
  */
-</span><span class="jsdoc-var">Roo.data.SimpleStore </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">Roo.data.SimpleStore </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">Roo.data.SimpleStore.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, {
         </span><span class="jsdoc-var">isLocal </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
-        </span><span class="jsdoc-var">reader</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.ArrayReader</span><span class="jsdoc-syntax">({
+        </span><span class="jsdoc-var">reader</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.reader</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">config.reader </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.ArrayReader</span><span class="jsdoc-syntax">({
                 </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">config.id
             </span><span class="jsdoc-syntax">},
             </span><span class="jsdoc-var">Roo.data.Record.create</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.fields</span><span class="jsdoc-syntax">)
index 354979d..db70b8b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/SortTypes.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">/*
+<html><head><title>Roo/data/SortTypes.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 08e5223..87793a7 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/Store.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">/*
+<html><head><title>Roo/data/Store.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
         </span><span class="jsdoc-var">this.loadRecords</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">add</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">append</span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
     },
 
+     </span><span class="jsdoc-comment">/**
+     * using 'cn' the nested child reader read the child array into it's child stores.
+     * @param {Object} rec The record with a 'children array
+     */
+    </span><span class="jsdoc-var">loadDataFromChildren </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-var">this.loadData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.reader.toLoadData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec</span><span class="jsdoc-syntax">));
+    },
+
+
     </span><span class="jsdoc-comment">/**
      * Gets the number of cached records.
      * &lt;p&gt;
index 30c9ead..e714d14 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/Tree.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">/*
+<html><head><title>Roo/data/Tree.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
         }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">arguments.length </span><span class="jsdoc-syntax">&gt; 1){
             </span><span class="jsdoc-var">multi </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">;
         }
+
         </span><span class="jsdoc-comment">// if passed an array or multiple args do them one by one
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">multi</span><span class="jsdoc-syntax">){
             </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">multi.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">++) {
                 }
                 </span><span class="jsdoc-var">oldParent.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
             }
+
             </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.childNodes.length</span><span class="jsdoc-syntax">;
             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">== 0){
                 </span><span class="jsdoc-var">this.setFirstChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
             </span><span class="jsdoc-var">this.setLastChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
             </span><span class="jsdoc-var">node.setOwnerTree</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">());
             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;append&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.ownerTree</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ownerTree</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">this.ownerTree.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;appendnode&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
+            }
             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oldParent</span><span class="jsdoc-syntax">){
                 </span><span class="jsdoc-var">node.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.ownerTree</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oldParent</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
             }
index a93709b..4e63046 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/data/XmlReader.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">/*
+<html><head><title>Roo/data/XmlReader.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -67,6 +67,9 @@ var myReader = new Roo.data.XmlReader({
     </span><span class="jsdoc-var">Roo.data.XmlReader.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">meta</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">recordType</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">meta.fields</span><span class="jsdoc-syntax">);
 };
 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.data.XmlReader</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.data.DataReader</span><span class="jsdoc-syntax">, {
+
+    </span><span class="jsdoc-var">readerType </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Xml'</span><span class="jsdoc-syntax">,
+
     </span><span class="jsdoc-comment">/**
      * This method is only used by a DataProxy which has retrieved data from a remote server.
         * @param {Object} response The XHR object which contains the parsed XML document.  The response is expected
index 4e9a8c1..a562d59 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/DD.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">/*
+<html><head><title>Roo/dd/DD.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 9ae3340..015cbc4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/DDProxy.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">/*
+<html><head><title>Roo/dd/DDProxy.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 84e7dfa..1d67588 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/DDTarget.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">/*
+<html><head><title>Roo/dd/DDTarget.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -28,8 +28,8 @@
     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
         </span><span class="jsdoc-var">this.initTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
     }
-    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.listeners </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">config.events</span><span class="jsdoc-syntax">) {
-       </span><span class="jsdoc-var">Roo.dd.DragDrop.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,  {
+    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">config.listeners </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">config.events</span><span class="jsdoc-syntax">)) {
+        </span><span class="jsdoc-var">Roo.dd.DragDrop.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,  {
             </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">config.listeners </span><span class="jsdoc-syntax">|| {},
             </span><span class="jsdoc-var">events </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">config.events </span><span class="jsdoc-syntax">|| {}
         });
index cadf4ca..22410dc 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/DragDrop.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">/*
+<html><head><title>Roo/dd/DragDrop.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 379d495..9c382fe 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/DragDropMgr.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">/*
+<html><head><title>Roo/dd/DragDropMgr.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index ef9e74f..e3110e5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/DragSource.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">/*
+<html><head><title>Roo/dd/DragSource.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 8c97b0d..eff2bef 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/DragZone.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">/*
+<html><head><title>Roo/dd/DragZone.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 14a6827..a4a1ba4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/DropTarget.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">/*
+<html><head><title>Roo/dd/DropTarget.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 55974fa..8c7363e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/DropZone.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">/*
+<html><head><title>Roo/dd/DropZone.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 5aa85c3..c44b32e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/Registry.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">/*
+<html><head><title>Roo/dd/Registry.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index da59d3a..a52f460 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/ScrollManager.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">/*
+<html><head><title>Roo/dd/ScrollManager.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index d32ac23..53bc8a5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/dd/StatusProxy.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">/*
+<html><head><title>Roo/dd/StatusProxy.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 4ea4d38..1a9f3cb 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/Action.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">/*
+<html><head><title>Roo/form/Action.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 72e2aa2..fb6e443 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/BasicForm.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">/*
+<html><head><title>Roo/form/BasicForm.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -57,6 +57,8 @@
         </span><span class="jsdoc-var">this.initEl</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
     }
     </span><span class="jsdoc-var">Roo.form.BasicForm.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+
+    </span><span class="jsdoc-var">Roo.form.BasicForm.popover.apply</span><span class="jsdoc-syntax">();
 };
 
 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.BasicForm</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.util.Observable</span><span class="jsdoc-syntax">, {
      */
     </span><span class="jsdoc-var">disableMask </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
 
+    </span><span class="jsdoc-comment">/**
+     * @cfg {Boolean} errorMask (true|false) default false
+     */
+    </span><span class="jsdoc-var">errorMask </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-comment">/**
+     * @cfg {Number} maskOffset Default 100
+     */
+    </span><span class="jsdoc-var">maskOffset </span><span class="jsdoc-syntax">: 100,
+
     </span><span class="jsdoc-comment">// private
     </span><span class="jsdoc-var">initEl </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">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">);
      */
     </span><span class="jsdoc-var">isValid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
         </span><span class="jsdoc-var">this.items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
-           </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">f.validate</span><span class="jsdoc-syntax">()){
-               </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
-           }
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.validate</span><span class="jsdoc-syntax">()){
+                </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+            }
+
+            </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
+
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">f.el.isVisible</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)){
+                </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">;
+            }
         });
+
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.errorMask </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">valid</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">Roo.form.BasicForm.popover.mask</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">);
+        }
+
         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">valid</span><span class="jsdoc-syntax">;
     },
 
@@ -514,6 +538,17 @@ clientValidation  Boolean          Applies to submit only.  Pass true to call fo
             }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
         }
 
+        </span><span class="jsdoc-comment">// use formdata
+        </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">FormData</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">asString </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fd </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">FormData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">.entries</span><span class="jsdoc-syntax">();
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= {};
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fd.next</span><span class="jsdoc-syntax">();
+            </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ent.done</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">ent.value</span><span class="jsdoc-syntax">[0]] = </span><span class="jsdoc-var">ent.value</span><span class="jsdoc-syntax">[1]; </span><span class="jsdoc-comment">// not sure how this will handle duplicates..
+                </span><span class="jsdoc-var">ent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fd.next</span><span class="jsdoc-syntax">();
+            };
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
+        }
 
 
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Ajax.serializeForm</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">);
@@ -669,4 +704,150 @@ clientValidation  Boolean          Applies to submit only.  Pass true to call fo
 });
 
 </span><span class="jsdoc-comment">// back compat
-</span><span class="jsdoc-var">Roo.BasicForm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.BasicForm</span><span class="jsdoc-syntax">;</span></code></body></html>
\ No newline at end of file
+</span><span class="jsdoc-var">Roo.BasicForm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.BasicForm</span><span class="jsdoc-syntax">;
+
+</span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.BasicForm</span><span class="jsdoc-syntax">, {
+
+    </span><span class="jsdoc-var">popover </span><span class="jsdoc-syntax">: {
+
+        </span><span class="jsdoc-var">padding </span><span class="jsdoc-syntax">: 5,
+
+        </span><span class="jsdoc-var">isApplied </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+        </span><span class="jsdoc-var">isMasked </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+        </span><span class="jsdoc-var">form </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+        </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+        </span><span class="jsdoc-var">intervalID </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+        </span><span class="jsdoc-var">maskEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+        </span><span class="jsdoc-var">apply </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+        {
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isApplied</span><span class="jsdoc-syntax">){
+                </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+            }
+
+            </span><span class="jsdoc-var">this.maskEl </span><span class="jsdoc-syntax">= {
+                </span><span class="jsdoc-var">top </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.DomHelper.append</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">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 roo-form-top-mask&quot; </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">),
+                </span><span class="jsdoc-var">left </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.DomHelper.append</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">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 roo-form-left-mask&quot; </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">),
+                </span><span class="jsdoc-var">bottom </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.DomHelper.append</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">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 roo-form-bottom-mask&quot; </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">),
+                </span><span class="jsdoc-var">right </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.DomHelper.append</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">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 roo-form-right-mask&quot; </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)
+            };
+
+            </span><span class="jsdoc-var">this.maskEl.top.enableDisplayMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;block&quot;</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.left.enableDisplayMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;block&quot;</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.bottom.enableDisplayMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;block&quot;</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.right.enableDisplayMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;block&quot;</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">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+                </span><span class="jsdoc-var">this.unmask</span><span class="jsdoc-syntax">();
+            }, </span><span class="jsdoc-var">this</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">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'touchstart'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+                </span><span class="jsdoc-var">this.unmask</span><span class="jsdoc-syntax">();
+            }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+
+            </span><span class="jsdoc-var">this.isApplied </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true
+        </span><span class="jsdoc-syntax">},
+
+        </span><span class="jsdoc-var">mask </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">)
+        {
+            </span><span class="jsdoc-var">this.form </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">;
+
+            </span><span class="jsdoc-var">this.target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">;
+
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.form.errorMask </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">target.el</span><span class="jsdoc-syntax">){
+                </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+            }
+
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">scrollable </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.target.el.findScrollableParent</span><span class="jsdoc-syntax">() || </span><span class="jsdoc-var">this.target.el.findParent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'div.x-layout-active-content'</span><span class="jsdoc-syntax">, 100, </span><span class="jsdoc-keyword">true</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-keyword">var </span><span class="jsdoc-var">ot </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.target.el.calcOffsetsTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scrollable</span><span class="jsdoc-syntax">);
+
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">scrollTo </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ot</span><span class="jsdoc-syntax">[1] - </span><span class="jsdoc-var">this.form.maskOffset</span><span class="jsdoc-syntax">;
+
+            </span><span class="jsdoc-var">scrollTo </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scrollTo</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scrollable.dom.scrollHeight</span><span class="jsdoc-syntax">);
+
+            </span><span class="jsdoc-var">scrollable.scrollTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scrollTo</span><span class="jsdoc-syntax">);
+
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.target.wrap </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.target.el</span><span class="jsdoc-syntax">;
+
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">box </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.getBox</span><span class="jsdoc-syntax">();
+
+            </span><span class="jsdoc-var">this.maskEl.top.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'position'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'absolute'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.top.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'z-index'</span><span class="jsdoc-syntax">, 10000);
+            </span><span class="jsdoc-var">this.maskEl.top.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.Dom.getDocumentWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">box.y </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.padding</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.top.setLeft</span><span class="jsdoc-syntax">(0);
+            </span><span class="jsdoc-var">this.maskEl.top.setTop</span><span class="jsdoc-syntax">(0);
+            </span><span class="jsdoc-var">this.maskEl.top.show</span><span class="jsdoc-syntax">();
+
+            </span><span class="jsdoc-var">this.maskEl.left.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'position'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'absolute'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.left.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'z-index'</span><span class="jsdoc-syntax">, 10000);
+            </span><span class="jsdoc-var">this.maskEl.left.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">box.x </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.padding</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">box.height </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.padding </span><span class="jsdoc-syntax">* 2);
+            </span><span class="jsdoc-var">this.maskEl.left.setLeft</span><span class="jsdoc-syntax">(0);
+            </span><span class="jsdoc-var">this.maskEl.left.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">box.y </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.padding</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.left.show</span><span class="jsdoc-syntax">();
+
+            </span><span class="jsdoc-var">this.maskEl.bottom.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'position'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'absolute'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.bottom.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'z-index'</span><span class="jsdoc-syntax">, 10000);
+            </span><span class="jsdoc-var">this.maskEl.bottom.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.Dom.getDocumentWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">Roo.lib.Dom.getDocumentHeight</span><span class="jsdoc-syntax">() - </span><span class="jsdoc-var">box.bottom </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.padding</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.bottom.setLeft</span><span class="jsdoc-syntax">(0);
+            </span><span class="jsdoc-var">this.maskEl.bottom.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">box.bottom </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.padding</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.bottom.show</span><span class="jsdoc-syntax">();
+
+            </span><span class="jsdoc-var">this.maskEl.right.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'position'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'absolute'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.right.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'z-index'</span><span class="jsdoc-syntax">, 10000);
+            </span><span class="jsdoc-var">this.maskEl.right.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.Dom.getDocumentWidth</span><span class="jsdoc-syntax">() - </span><span class="jsdoc-var">box.right </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.padding</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">box.height </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.padding </span><span class="jsdoc-syntax">* 2);
+            </span><span class="jsdoc-var">this.maskEl.right.setLeft</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">box.right </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.padding</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.right.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">box.y </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.padding</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.right.show</span><span class="jsdoc-syntax">();
+
+            </span><span class="jsdoc-var">this.intervalID </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">window.setInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
+                </span><span class="jsdoc-var">Roo.form.BasicForm.popover.unmask</span><span class="jsdoc-syntax">();
+            }, 10000);
+
+            </span><span class="jsdoc-var">window.onwheel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){ </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;};
+
+            (</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){ </span><span class="jsdoc-var">this.isMasked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">; })</span><span class="jsdoc-var">.defer</span><span class="jsdoc-syntax">(500, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+
+        },
+
+        </span><span class="jsdoc-var">unmask </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+        {
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.isApplied </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">this.isMasked </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">this.form </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">this.target </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">this.form.errorMask</span><span class="jsdoc-syntax">){
+                </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+            }
+
+            </span><span class="jsdoc-var">this.maskEl.top.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'position'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'absolute'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.top.setSize</span><span class="jsdoc-syntax">(0, 0)</span><span class="jsdoc-var">.setXY</span><span class="jsdoc-syntax">([0, 0]);
+            </span><span class="jsdoc-var">this.maskEl.top.hide</span><span class="jsdoc-syntax">();
+
+            </span><span class="jsdoc-var">this.maskEl.left.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'position'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'absolute'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.left.setSize</span><span class="jsdoc-syntax">(0, 0)</span><span class="jsdoc-var">.setXY</span><span class="jsdoc-syntax">([0, 0]);
+            </span><span class="jsdoc-var">this.maskEl.left.hide</span><span class="jsdoc-syntax">();
+
+            </span><span class="jsdoc-var">this.maskEl.bottom.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'position'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'absolute'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.bottom.setSize</span><span class="jsdoc-syntax">(0, 0)</span><span class="jsdoc-var">.setXY</span><span class="jsdoc-syntax">([0, 0]);
+            </span><span class="jsdoc-var">this.maskEl.bottom.hide</span><span class="jsdoc-syntax">();
+
+            </span><span class="jsdoc-var">this.maskEl.right.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'position'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'absolute'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.maskEl.right.setSize</span><span class="jsdoc-syntax">(0, 0)</span><span class="jsdoc-var">.setXY</span><span class="jsdoc-syntax">([0, 0]);
+            </span><span class="jsdoc-var">this.maskEl.right.hide</span><span class="jsdoc-syntax">();
+
+            </span><span class="jsdoc-var">window.onwheel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){ </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;};
+
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.intervalID</span><span class="jsdoc-syntax">){
+                </span><span class="jsdoc-var">window.clearInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.intervalID</span><span class="jsdoc-syntax">);
+                </span><span class="jsdoc-var">this.intervalID </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
+            }
+
+            </span><span class="jsdoc-var">this.isMasked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
+
+        }
+
+    }
+
+});</span></code></body></html>
\ No newline at end of file
index 98c52b3..39096f0 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/Checkbox.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">/*
+<html><head><title>Roo/form/Checkbox.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index ed50917..0d2ee18 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/ComboBox.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">/*
+<html><head><title>Roo/form/ComboBox.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
     </span><span class="jsdoc-comment">// element that contains real text value.. (when hidden is used..)
 
     // private
-    </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
+    </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">)
+    {
         </span><span class="jsdoc-var">Roo.form.ComboBox.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hiddenName</span><span class="jsdoc-syntax">){
+
+       </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hiddenName</span><span class="jsdoc-syntax">){
             </span><span class="jsdoc-var">this.hiddenField </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.insertSibling</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'input'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'hidden'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hiddenName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:  (</span><span class="jsdoc-var">this.hiddenId</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this.hiddenName</span><span class="jsdoc-syntax">)},
                     </span><span class="jsdoc-string">'before'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
             </span><span class="jsdoc-var">this.hiddenField.value </span><span class="jsdoc-syntax">=
 
 
         }
+
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isGecko</span><span class="jsdoc-syntax">){
             </span><span class="jsdoc-var">this.el.dom.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'autocomplete'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'off'</span><span class="jsdoc-syntax">);
         }
         }
 
         </span><span class="jsdoc-var">this.view </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.View</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.innerList</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.tpl</span><span class="jsdoc-syntax">, {
-            </span><span class="jsdoc-var">singleSelect</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">store</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.store</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">selectedClass</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.selectedClass
+            </span><span class="jsdoc-var">singleSelect</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
+           </span><span class="jsdoc-var">store</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.store</span><span class="jsdoc-syntax">,
+           </span><span class="jsdoc-var">selectedClass</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.selectedClass
         </span><span class="jsdoc-syntax">});
 
         </span><span class="jsdoc-var">this.view.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onViewClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
index 0d46893..e1a6c1d 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/ComboBoxArray.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">/*
+<html><head><title>Roo/form/ComboBoxArray.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">/*
  * Copyright(c) 2010-2012, Roo J Solutions Limited
  *
  * Licence LGPL
 
         // give fake names to child combo;
         </span><span class="jsdoc-var">this.combo.hiddenName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hiddenName </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">this.hiddenName</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'-subcombo'</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">this.hiddenName</span><span class="jsdoc-syntax">;
-        </span><span class="jsdoc-var">this.combo.name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.name</span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">this.name</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'-subcombo'</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">this.name</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">this.combo.name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.name </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">this.name</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'-subcombo'</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">this.name</span><span class="jsdoc-syntax">;
 
         </span><span class="jsdoc-var">this.combo </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.factory</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.combo</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form</span><span class="jsdoc-syntax">);
         </span><span class="jsdoc-var">this.combo.onRender</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
     {
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">valueField </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.combo.valueField</span><span class="jsdoc-syntax">;
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">displayField </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.combo.displayField</span><span class="jsdoc-syntax">;
+
         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.items.indexOfKey</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">valueField</span><span class="jsdoc-syntax">]) &gt; -1) {
             </span><span class="jsdoc-comment">//console.log(&quot;GOT &quot; + rec.data.id);
             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
 
         </span><span class="jsdoc-var">this.items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">) {
             </span><span class="jsdoc-var">ar.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.data</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">idField</span><span class="jsdoc-syntax">]);
-
         });
         </span><span class="jsdoc-var">this.hiddenEl.dom.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ar.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">','</span><span class="jsdoc-syntax">);
         </span><span class="jsdoc-var">this.validate</span><span class="jsdoc-syntax">();
 
         </span><span class="jsdoc-var">this.reset</span><span class="jsdoc-syntax">();
 
-
-
         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store.isLocal </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">)) {
             </span><span class="jsdoc-comment">// then we can use the store to find the values..
             // comma seperated at present.. this needs to allow JSON based encoding..
index f2bf1c6..7044165 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/ComboCheck.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">/*
+<html><head><title>Roo/form/ComboCheck.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">/*
  * RooJS Library 1.1.1
  * Copyright(c) 2008-2011  Alan Knowles
  *
index 93c1093..21968c6 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/DateField.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">/*
+<html><head><title>Roo/form/DateField.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -17,7 +17,8 @@
 * Create a new DateField
 * @param {Object} config
  */
-</span><span class="jsdoc-var">Roo.form.DateField </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">Roo.form.DateField </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">Roo.form.DateField.superclass.constructor.call</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">);
 
       </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
@@ -365,5 +366,11 @@ dateField.setValue('2006-5-4');
 
         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">()) !== </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startValue</span><span class="jsdoc-syntax">);
 
+    },
+    </span><span class="jsdoc-comment">// @overide
+    </span><span class="jsdoc-var">cleanLeadingSpace </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">)
+    {
+       </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
     }
+
 });</span></code></body></html>
\ No newline at end of file
index ed7f509..6835f90 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/DayPicker.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">/*
+<html><head><title>Roo/form/DayPicker.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">/*
  * 
  * Licence- LGPL
  * 
index 4742b6e..60db413 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/DisplayField.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">/*
+<html><head><title>Roo/form/DisplayField.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 5be8e2f..8902e67 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/FCKeditor.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">//&lt;script type=&quot;text/javascript&quot;&gt;
+<html><head><title>Roo/form/FCKeditor.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">//&lt;script type=&quot;text/javascript&quot;&gt;
 
 /**
  * @class Roo.form.FCKeditor
index f570a8c..5826f20 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/Field.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">/*
+<html><head><title>Roo/form/Field.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 668e147..4d21004 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/Form.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">/*
+<html><head><title>Roo/form/Form.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -66,8 +66,6 @@
 
     </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">);
 
-
-
 };
 
 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.Form</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.BasicForm</span><span class="jsdoc-syntax">, {
index 54955f9..4a50b2b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/GridField.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">//&lt;script type=&quot;text/javascript&quot;&gt;
+<html><head><title>Roo/form/GridField.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">//&lt;script type=&quot;text/javascript&quot;&gt;
 /**
  * @class Roo.form.GridField
  * @extends Roo.form.Field
index bb7b163..9654dcd 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/Hidden.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">/*
+<html><head><title>Roo/form/Hidden.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 9f5f174..c78be38 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/HtmlEditor.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">//&lt;script type=&quot;text/javascript&quot;&gt;
+<html><head><title>Roo/form/HtmlEditor.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">//&lt;script type=&quot;text/javascript&quot;&gt;
 
 /*
  * Ext JS Library 1.1.1
index 2396223..5a474b5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/HtmlEditor/ToolbarContext.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">// &lt;script type=&quot;text/javascript&quot;&gt;
+<html><head><title>Roo/form/HtmlEditor/ToolbarContext.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">// &lt;script type=&quot;text/javascript&quot;&gt;
 /*
  * Based on
  * Ext JS Library 1.1.1
index 6627790..990f3f2 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/HtmlEditor/ToolbarStandard.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">// &lt;script type=&quot;text/javascript&quot;&gt;
+<html><head><title>Roo/form/HtmlEditor/ToolbarStandard.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">// &lt;script type=&quot;text/javascript&quot;&gt;
 /*
  * Based on
  * Ext JS Library 1.1.1
         [</span><span class="jsdoc-string">&quot;h1&quot;</span><span class="jsdoc-syntax">],[</span><span class="jsdoc-string">&quot;h2&quot;</span><span class="jsdoc-syntax">],[</span><span class="jsdoc-string">&quot;h3&quot;</span><span class="jsdoc-syntax">],[</span><span class="jsdoc-string">&quot;h4&quot;</span><span class="jsdoc-syntax">],[</span><span class="jsdoc-string">&quot;h5&quot;</span><span class="jsdoc-syntax">],[</span><span class="jsdoc-string">&quot;h6&quot;</span><span class="jsdoc-syntax">],
         [</span><span class="jsdoc-string">&quot;pre&quot;</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">&quot;code&quot;</span><span class="jsdoc-syntax">],
         [</span><span class="jsdoc-string">&quot;abbr&quot;</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">&quot;acronym&quot;</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">&quot;address&quot;</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">&quot;cite&quot;</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">&quot;samp&quot;</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">&quot;var&quot;</span><span class="jsdoc-syntax">],
-        [</span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">],[</span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">]
+        [</span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">],[</span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">],
+        [</span><span class="jsdoc-string">'sup'</span><span class="jsdoc-syntax">],[</span><span class="jsdoc-string">'sub'</span><span class="jsdoc-syntax">]
     ],
 
     </span><span class="jsdoc-var">cleanStyles </span><span class="jsdoc-syntax">: [
 
                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">editorcore.doc.body</span><span class="jsdoc-syntax">);
                     </span><span class="jsdoc-var">c.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'[class]'</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">s</span><span class="jsdoc-syntax">) {
-                        </span><span class="jsdoc-var">s.dom.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+                        </span><span class="jsdoc-var">s.dom.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'class'</span><span class="jsdoc-syntax">);
                     });
+                    </span><span class="jsdoc-var">editorcore.cleanWord</span><span class="jsdoc-syntax">();
                     </span><span class="jsdoc-var">editorcore.syncValue</span><span class="jsdoc-syntax">();
                 },
                 </span><span class="jsdoc-var">tabIndex</span><span class="jsdoc-syntax">:-1
index da16430..322a13b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/Layout.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">/*
+<html><head><title>Roo/form/Layout.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 248df3b..39679f4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/MonthField.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">/*
+<html><head><title>Roo/form/MonthField.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 5cae8c1..c13cc3d 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/NumberField.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">/*
+<html><head><title>Roo/form/NumberField.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 9bc9609..31049d3 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/Radio.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">/*
+<html><head><title>Roo/form/Radio.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index df27bcc..b26502a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/Select.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">/*
+<html><head><title>Roo/form/Select.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 5bccf37..4455edc 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/Signature.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">/*
+<html><head><title>Roo/form/Signature.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index c383021..76848d8 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/TextArea.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">/*
+<html><head><title>Roo/form/TextArea.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 4aad789..a2d24d1 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/TextField.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">/*
+<html><head><title>Roo/form/TextField.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
      * @cfg {Boolean} selectOnFocus True to automatically select any existing field text when the field receives input focus (defaults to false)
      */
     </span><span class="jsdoc-var">selectOnFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-comment">/**
+     * @cfg {Boolean} allowLeadingSpace True to prevent the stripping of leading white space 
+     */
+    </span><span class="jsdoc-var">allowLeadingSpace </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
     </span><span class="jsdoc-comment">/**
      * @cfg {String} blankText Error text to display if the allow blank validation fails (defaults to &quot;This field is required&quot;)
      */
 
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.selectOnFocus</span><span class="jsdoc-syntax">){
             </span><span class="jsdoc-var">this.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;focus&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.preFocus</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
-
         }
+       </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.allowLeadingSpace</span><span class="jsdoc-syntax">) {
+           </span><span class="jsdoc-var">this.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'blur'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.cleanLeadingSpace</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+       }
+
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.maskRe </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">this.vtype </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.disableKeyFilter </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">this.maskRe </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.VTypes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.vtype</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'Mask'</span><span class="jsdoc-syntax">]))){
             </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;keypress&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.filterKeys</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
         }
             </span><span class="jsdoc-var">this.autoSize</span><span class="jsdoc-syntax">();
         }
     },
+    </span><span class="jsdoc-comment">// private - clean the leading white space
+    </span><span class="jsdoc-var">cleanLeadingSpace </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">)
+    {
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.inputType </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'file'</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
 
+        </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/^\s+/,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">));
+    },
     </span><span class="jsdoc-comment">/**
      * Resets the current field value to the originally-loaded value and clears any validation messages.
      *  
         </span><span class="jsdoc-var">Roo.form.TextField.superclass.reset.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
 
     },
-
-
     </span><span class="jsdoc-comment">// private
     </span><span class="jsdoc-var">preFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
 
index a608f48..fe5e5d5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/TextItem.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">/*
+<html><head><title>Roo/form/TextItem.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
      * @cfg {String} html the content for this item
      */
     </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
-    </span><span class="jsdoc-comment">/**
-     * @cfg {String} cls the class for this item
-     */
-    </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
 
     </span><span class="jsdoc-var">getAutoCreate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
     {
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= {
             </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">,
             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.tag</span><span class="jsdoc-syntax">,
-            </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.html
+            </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-form-item'
         </span><span class="jsdoc-syntax">};
 
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cls</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cls</span><span class="jsdoc-syntax">;
-        }
-
         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">;
 
+    },
+
+    </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-var">Roo.form.TextItem.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getAutoCreate</span><span class="jsdoc-syntax">();
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cfg.name</span><span class="jsdoc-syntax">){
+                </span><span class="jsdoc-var">cfg.name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.name</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.name</span><span class="jsdoc-syntax">;
+            }
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cfg.name.length</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">cfg.name</span><span class="jsdoc-syntax">;
+            }
+            </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ct.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
+        }
     }
 
 });</span></code></body></html>
\ No newline at end of file
index 9a35ff5..680438d 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/TriggerField.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">/*
+<html><head><title>Roo/form/TriggerField.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index dab3352..093c88d 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/form/VTypes.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">/*
+<html><head><title>Roo/form/VTypes.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 11cccae..1be166d 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/AbstractGridView.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">/*
+<html><head><title>Roo/grid/AbstractGridView.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 95c9d13..a83f1bb 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/AbstractSelectionModel.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">/*
+<html><head><title>Roo/grid/AbstractSelectionModel.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 8c5fb83..9c070d3 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/Calendar.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">/*
+<html><head><title>Roo/grid/Calendar.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">/*
   
  * Licence LGPL
  
index 99c025c..9452a34 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/CellSelectionModel.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">/*
+<html><head><title>Roo/grid/CellSelectionModel.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 12e3b05..6c3575a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/ColumnModel.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">/*
+<html><head><title>Roo/grid/ColumnModel.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index b77f8e1..0b893e4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/EditorGrid.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">/*
+<html><head><title>Roo/grid/EditorGrid.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 7a349cf..1bcdd67 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/Grid.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">/*
+<html><head><title>Roo/grid/Grid.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 577459f..bc8fbd4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/GridDragZone.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">/*
+<html><head><title>Roo/grid/GridDragZone.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 83ad6d8..5392978 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/GridEditor.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">/*
+<html><head><title>Roo/grid/GridEditor.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 0398c41..ab57721 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/GridView.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">/*
+<html><head><title>Roo/grid/GridView.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 2eecbe1..b4955e3 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/HeaderDragZone.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">/*
+<html><head><title>Roo/grid/HeaderDragZone.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index d6011cd..8a445cc 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/HeaderDropZone.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">/*
+<html><head><title>Roo/grid/HeaderDropZone.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index e08a18d..fc823d5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/PropertyGrid.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">/*
+<html><head><title>Roo/grid/PropertyGrid.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index dcd860a..8cce844 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/RowSelectionModel.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">/*
+<html><head><title>Roo/grid/RowSelectionModel.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index b832630..9166076 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/grid/SplitDragZone.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">/*
+<html><head><title>Roo/grid/SplitDragZone.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 7314735..f27256f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Ajax.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">/*
+<html><head><title>Roo/lib/Ajax.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index f6e9001..7e85a0b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Anim.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">/*
+<html><head><title>Roo/lib/Anim.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index edc6f9b..8960080 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/AnimBase.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">/*
+<html><head><title>Roo/lib/AnimBase.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index 7e560ba..ef3b80e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/AnimMgr.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<html><head><title>Roo/lib/AnimMgr.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
index dd0705d..5057b88 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Beizer.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">/*
+<html><head><title>Roo/lib/Beizer.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index 29ead05..3fbea6d 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/ColorAnim.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">/*
+<html><head><title>Roo/lib/ColorAnim.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index fbc3b42..b470ca7 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Dom.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">/*
+<html><head><title>Roo/lib/Dom.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index a6c7971..0ba9a7e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Easing.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">/*
+<html><head><title>Roo/lib/Easing.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index ecf3824..2d403fb 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Event.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">/*
+<html><head><title>Roo/lib/Event.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index 11faad5..0b8674a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Motion.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">/*
+<html><head><title>Roo/lib/Motion.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index b09e673..4f10304 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Point.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">/*
+<html><head><title>Roo/lib/Point.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index a709716..639119f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Region.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">/*
+<html><head><title>Roo/lib/Region.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index 02a8563..5903208 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/lib/Scroll.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">/*
+<html><head><title>Roo/lib/Scroll.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">/*
  * Portions of this file are based on pieces of Yahoo User Interface Library
  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  * YUI licensed under the BSD License:
index a3b0d24..e47a6ee 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/Adapter.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">/*
+<html><head><title>Roo/menu/Adapter.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 8990127..85c3b44 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/BaseItem.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">/*
+<html><head><title>Roo/menu/BaseItem.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 8f499c3..150cc3c 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/CheckItem.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">/*
+<html><head><title>Roo/menu/CheckItem.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 3ed7cc1..e30c4fb 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/ColorItem.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">/*
+<html><head><title>Roo/menu/ColorItem.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index baf77ea..2da12e5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/ColorMenu.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">/*
+<html><head><title>Roo/menu/ColorMenu.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 4ca1f84..5cd3171 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/DateItem.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">/*
+<html><head><title>Roo/menu/DateItem.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 34958a2..ed4d3af 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/DateMenu.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">/*
+<html><head><title>Roo/menu/DateMenu.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 7e0cb8e..569c7e7 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/Item.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">/*
+<html><head><title>Roo/menu/Item.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index f2d7a30..3d684b1 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/Menu.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">/*
+<html><head><title>Roo/menu/Menu.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
@@ -19,7 +19,9 @@
  * @param {Object} config Configuration options
  */
 </span><span class="jsdoc-var">Roo.menu.Menu </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">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">);
+
+    </span><span class="jsdoc-var">Roo.menu.Menu.superclass.constructor.call</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">);
+
     </span><span class="jsdoc-var">this.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.id </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">();
     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
         </span><span class="jsdoc-comment">/**
index dfbf455..a3bc336 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/MenuMgr.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">/*
+<html><head><title>Roo/menu/MenuMgr.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 1304a3e..031a337 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/Separator.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">/*
+<html><head><title>Roo/menu/Separator.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index f400e97..9188b24 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/menu/TextItem.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">/*
+<html><head><title>Roo/menu/TextItem.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 07e06d5..5a51b42 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/state/CookieProvider.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">/*
+<html><head><title>Roo/state/CookieProvider.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 6da3651..4c2d1a7 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/state/Manager.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">/*
+<html><head><title>Roo/state/Manager.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 33db0e3..7c06fb4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/state/Provider.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">/*
+<html><head><title>Roo/state/Provider.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 006ecbb..e8243a5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/AsyncTreeNode.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">/*
+<html><head><title>Roo/tree/AsyncTreeNode.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 0bd5589..6e42ace 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/ColumnNodeUI.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">//&lt;Script type=&quot;text/javascript&quot;&gt;
+<html><head><title>Roo/tree/ColumnNodeUI.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">//&lt;Script type=&quot;text/javascript&quot;&gt;
 /*
  * Based on:
  * Ext JS Library 1.1.1
index 17af666..82ef1d1 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/ColumnTree.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">//&lt;Script type=&quot;text/javascript&quot;&gt;
+<html><head><title>Roo/tree/ColumnTree.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">//&lt;Script type=&quot;text/javascript&quot;&gt;
 
 /*
  * Based on:
index c133799..6656cd0 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreeDragZone.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">/*
+<html><head><title>Roo/tree/TreeDragZone.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 243d340..5f4d948 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreeDropZone.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">/*
+<html><head><title>Roo/tree/TreeDropZone.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index ae6435c..69fd919 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreeEditor.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">/*
+<html><head><title>Roo/tree/TreeEditor.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 3faf733..774344e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreeFilter.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">/*
+<html><head><title>Roo/tree/TreeFilter.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index c719604..0c7adc6 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreeLoader.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">/*
+<html><head><title>Roo/tree/TreeLoader.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 2c575c1..41106f5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreeNode.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">/*
+<html><head><title>Roo/tree/TreeNode.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
                 </span><span class="jsdoc-var">this.renderChildren</span><span class="jsdoc-syntax">();
             }
             </span><span class="jsdoc-var">this.expanded </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
-            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.isHiddenRoot</span><span class="jsdoc-syntax">() &amp;&amp; (</span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.animate </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">anim </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">anim</span><span class="jsdoc-syntax">){
+
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.isHiddenRoot</span><span class="jsdoc-syntax">() &amp;&amp; (</span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">() &amp;&amp; </span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.animate </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">anim </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">anim</span><span class="jsdoc-syntax">){
                 </span><span class="jsdoc-var">this.ui.animExpand</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
                     </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;expand&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
                     </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">){
index 875ae61..da8d688 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreeNodeUI.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">/*
+<html><head><title>Roo/tree/TreeNodeUI.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
             </span><span class="jsdoc-var">this.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-tree-node-disabled&quot;</span><span class="jsdoc-syntax">);
         }
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ot </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.node.getOwnerTree</span><span class="jsdoc-syntax">();
-        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ot.enableDD </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ot.enableDrag </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ot.enableDrop</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ot </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">ot.enableDD </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ot.enableDrag </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ot.enableDrop</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">&amp;&amp; (!</span><span class="jsdoc-var">this.node.isRoot </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ot.rootVisible</span><span class="jsdoc-syntax">)){
             </span><span class="jsdoc-var">Roo.dd.Registry.register</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.elNode</span><span class="jsdoc-syntax">, {
                 </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.node</span><span class="jsdoc-syntax">,
         </span><span class="jsdoc-comment">// add some indent caching, this helps performance when rendering a large tree
         </span><span class="jsdoc-var">this.indentMarkup </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.parentNode </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">n.parentNode.ui.getChildIndent</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.getOwnerTree</span><span class="jsdoc-syntax">();
-        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">txt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t.renderer </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">t.renderer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.attributes</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">Roo.util.Format.htmlEncode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.text</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">txt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">t.renderer </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">t.renderer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.attributes</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">Roo.util.Format.htmlEncode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.text</span><span class="jsdoc-syntax">);
         </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">n.attributes.html</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
             </span><span class="jsdoc-var">txt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.attributes.html</span><span class="jsdoc-syntax">;
         }
-        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tip </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t.rendererTip </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">t.rendererTip</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.attributes</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">txt</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tip </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">t.rendererTip </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">t.rendererTip</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.attributes</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">txt</span><span class="jsdoc-syntax">;
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">a.checked </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'boolean'</span><span class="jsdoc-syntax">;
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">href </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a.href </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">a.href </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.isGecko </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;#&quot;</span><span class="jsdoc-syntax">;
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">buf </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-string">'&lt;li class=&quot;x-tree-node&quot;&gt;&lt;div class=&quot;x-tree-node-el '</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">a.cls</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'&quot;&gt;'</span><span class="jsdoc-syntax">,
index 0d62ae5..5fee487 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreePanel.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">/*
+<html><head><title>Roo/tree/TreePanel.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
         * &lt;/ul&gt;
         * @param {Object} dragOverEvent
         */
-       </span><span class="jsdoc-string">&quot;nodedragover&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
+       </span><span class="jsdoc-string">&quot;nodedragover&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
+       </span><span class="jsdoc-comment">/**
+        * @event appendnode
+        * Fires when append node to the tree
+        * @param {Roo.tree.TreePanel} this
+        * @param {Roo.tree.TreeNode} node
+        * @param {Number} index The index of the newly appended node
+        */
+       </span><span class="jsdoc-string">&quot;appendnode&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
 
     </span><span class="jsdoc-syntax">});
     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.singleExpand</span><span class="jsdoc-syntax">){
index 5e9aa15..e744199 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreeSelectionModel.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">/*
+<html><head><title>Roo/tree/TreeSelectionModel.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 0d7ed22..da27e90 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/tree/TreeSorter.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">/*
+<html><head><title>Roo/tree/TreeSorter.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index f95d95d..e5639a7 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/util/CSS.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">/*
+<html><head><title>Roo/util/CSS.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index ceb320c..76bc750 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/util/ClickRepeater.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">/*
+<html><head><title>Roo/util/ClickRepeater.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index f8a4210..97a9d4c 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/util/DelayedTask.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">/*
+<html><head><title>Roo/util/DelayedTask.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index f780395..26e8e5b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/util/Format.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">/*
+<html><head><title>Roo/util/Format.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 3bdf4ea..b4c8a76 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/util/JSON.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">/*
+<html><head><title>Roo/util/JSON.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 24d9f3e..49ef892 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/util/MixedCollection.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">/*
+<html><head><title>Roo/util/MixedCollection.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 0cea47c..d1e823c 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/util/Observable.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">/*
+<html><head><title>Roo/util/Observable.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.listeners</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ls.length</span><span class="jsdoc-syntax">;
             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">&gt; 0){
                 </span><span class="jsdoc-var">this.firing </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Array.prototype.slice.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">, 0);
+
                 </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">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">++){
-                    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ls</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
-                    </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l.fireFn.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l.scope</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this.obj</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
+                   </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Array.prototype.slice.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">, 0);
+                   </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ls</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
+                   </span><span class="jsdoc-var">args.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l.options</span><span class="jsdoc-syntax">);
+                    </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l.fireFn.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l.scope</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this.obj</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">args</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
                         </span><span class="jsdoc-var">this.firing </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
                         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
                     }
index dfe2fd5..2f8751f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/util/TaskRunner.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">/*
+<html><head><title>Roo/util/TaskRunner.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 5ed4e4d..2120d21 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/Roo/util/TextMetrics.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">/*
+<html><head><title>Roo/util/TextMetrics.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index ebc37c1..565b067 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>/home/edward/gitlive/roojs1/String.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">/*
+<html><head><title>String.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">/*
  * Based on:
  * Ext JS Library 1.1.1
  * Copyright(c) 2006-2007, Ext JS, LLC.
index 0a57c12..aa66e11 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "width",
+      "type" : "Number",
+      "desc" : "fixed width - usefull for chrome extension only really.",
+      "memberOf" : "Roo.bootstrap.Modal",
+      "values" : [
+      ]
+    },
     {
       "name" : "dataId",
       "type" : "string",
       "values" : [
       ]
     },
+    {
+      "name" : "height",
+      "type" : "Number",
+      "desc" : "fixed height - usefull for chrome extension only really.",
+      "memberOf" : "Roo.bootstrap.Modal",
+      "values" : [
+      ]
+    },
     {
       "name" : "size",
       "type" : "String",
index 6164eca..b3d98dc 100644 (file)
         }
       ]
     },
+    {
+      "name" : "loadDataFromChildren",
+      "desc" : "using 'cn' the nested child reader read the child array into it's child stores.",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "memberOf" : "Roo.data.Store",
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "params" : [
+        {
+          "name" : "rec",
+          "type" : "Object",
+          "desc" : "The record with a 'children array",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+      ]
+    },
     {
       "name" : "clearFilter",
       "desc" : "Revert to a view of the Record cache with no filtering applied.",
index 32ef82f..b1e41b7 100644 (file)
   "returns" : [
   ],
   "config" : [
+    {
+      "name" : "an",
+      "type" : "Object",
+      "desc" : "existing reader (eg. copied from another store)",
+      "memberOf" : "Roo.data.SimpleStore",
+      "values" : [
+      ]
+    },
     {
       "name" : "listeners",
       "type" : "Object",
         }
       ]
     },
+    {
+      "name" : "loadDataFromChildren",
+      "desc" : "using 'cn' the nested child reader read the child array into it's child stores.",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "memberOf" : "Roo.data.Store",
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "params" : [
+        {
+          "name" : "rec",
+          "type" : "Object",
+          "desc" : "The record with a 'children array",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+      ]
+    },
     {
       "name" : "clearFilter",
       "desc" : "Revert to a view of the Record cache with no filtering applied.",
index 61d213d..384e854 100644 (file)
         }
       ]
     },
+    {
+      "name" : "loadDataFromChildren",
+      "desc" : "using 'cn' the nested child reader read the child array into it's child stores.",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "memberOf" : "Roo.data.Store",
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "params" : [
+        {
+          "name" : "rec",
+          "type" : "Object",
+          "desc" : "The record with a 'children array",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+      ]
+    },
     {
       "name" : "clearFilter",
       "desc" : "Revert to a view of the Record cache with no filtering applied.",
index 90f2d95..1dabc71 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "errorMask",
+      "type" : "Boolean",
+      "desc" : "default false",
+      "memberOf" : "Roo.form.BasicForm",
+      "values" : [
+        "(true",
+        "false)"
+      ]
+    },
     {
       "name" : "timeout",
       "type" : "Number",
       "memberOf" : "Roo.form.BasicForm",
       "values" : [
       ]
+    },
+    {
+      "name" : "maskOffset",
+      "type" : "Number",
+      "desc" : "Default 100",
+      "memberOf" : "Roo.form.BasicForm",
+      "values" : [
+      ]
     }
   ],
   "methods" : [
index d386b48..7fbca6d 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "invalidClass",
       "type" : "String",
index 7f9cfe8..356d8a7 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "validationEvent",
       "type" : "String/Boolean",
index 31b2733..fa0a7e3 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "invalidClass",
       "type" : "String",
index d220215..30dd451 100644 (file)
       "values" : [
       ]
     },
-    {
-      "name" : "validateOnBlur",
-      "type" : "Boolean",
-      "desc" : "Whether the field should validate when it loses focus (defaults to true).",
-      "memberOf" : "Roo.form.Field",
-      "values" : [
-      ]
-    },
     {
       "name" : "hideTrigger",
       "type" : "Boolean",
       "values" : [
       ]
     },
+    {
+      "name" : "validateOnBlur",
+      "type" : "Boolean",
+      "desc" : "Whether the field should validate when it loses focus (defaults to true).",
+      "memberOf" : "Roo.form.Field",
+      "values" : [
+      ]
+    },
     {
       "name" : "inputType",
       "type" : "String",
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "invalidClass",
       "type" : "String",
index c3013d6..2c46b99 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "validationEvent",
       "type" : "String/Boolean",
index 34920db..5cd9534 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "errorMask",
+      "type" : "Boolean",
+      "desc" : "default false",
+      "memberOf" : "Roo.form.BasicForm",
+      "values" : [
+        "(true",
+        "false)"
+      ]
+    },
     {
       "name" : "labelWidth",
       "type" : "Number",
       "memberOf" : "Roo.form.BasicForm",
       "values" : [
       ]
+    },
+    {
+      "name" : "maskOffset",
+      "type" : "Number",
+      "desc" : "Default 100",
+      "memberOf" : "Roo.form.BasicForm",
+      "values" : [
+      ]
     }
   ],
   "methods" : [
index c851919..9621263 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "autoCreate",
       "type" : "String/Object",
index 7f21407..7e8203b 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "autoCreate",
       "type" : "String/Object",
index 3bd3f14..5a65fe2 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "autoCreate",
       "type" : "String/Object",
index 2f9a3ec..3adc5ea 100644 (file)
       "values" : [
       ]
     },
-    {
-      "name" : "validateOnBlur",
-      "type" : "Boolean",
-      "desc" : "Whether the field should validate when it loses focus (defaults to true).",
-      "memberOf" : "Roo.form.Field",
-      "values" : [
-      ]
-    },
     {
       "name" : "hideTrigger",
       "type" : "Boolean",
       "values" : [
       ]
     },
+    {
+      "name" : "validateOnBlur",
+      "type" : "Boolean",
+      "desc" : "Whether the field should validate when it loses focus (defaults to true).",
+      "memberOf" : "Roo.form.Field",
+      "values" : [
+      ]
+    },
     {
       "name" : "listAlign",
       "type" : "String",
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "invalidClass",
       "type" : "String",
index 21dde5b..293ab4e 100644 (file)
       ]
     },
     {
-      "name" : "validationEvent",
-      "type" : "String/Boolean",
-      "desc" : "The event that should initiate field validation. Set to false to disable\n      automatic validation (defaults to \"keyup\").",
-      "memberOf" : "Roo.form.Field",
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
       "values" : [
       ]
     },
       "values" : [
       ]
     },
+    {
+      "name" : "validationEvent",
+      "type" : "String/Boolean",
+      "desc" : "The event that should initiate field validation. Set to false to disable\n      automatic validation (defaults to \"keyup\").",
+      "memberOf" : "Roo.form.Field",
+      "values" : [
+      ]
+    },
     {
       "name" : "fieldLabel",
       "type" : "String",
index 41fe461..9c4dfe8 100644 (file)
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "autoCreate",
       "type" : "String/Object",
index cd18d7d..b4fd630 100644 (file)
       "values" : [
       ]
     },
-    {
-      "name" : "cls",
-      "type" : "String",
-      "desc" : "the class for this item",
-      "memberOf" : "Roo.form.TextItem",
-      "values" : [
-      ]
-    },
     {
       "name" : "html",
       "type" : "String",
index f543d70..c3d3848 100644 (file)
       "values" : [
       ]
     },
-    {
-      "name" : "validateOnBlur",
-      "type" : "Boolean",
-      "desc" : "Whether the field should validate when it loses focus (defaults to true).",
-      "memberOf" : "Roo.form.Field",
-      "values" : [
-      ]
-    },
     {
       "name" : "hideTrigger",
       "type" : "Boolean",
       "values" : [
       ]
     },
+    {
+      "name" : "validateOnBlur",
+      "type" : "Boolean",
+      "desc" : "Whether the field should validate when it loses focus (defaults to true).",
+      "memberOf" : "Roo.form.Field",
+      "values" : [
+      ]
+    },
     {
       "name" : "inputType",
       "type" : "String",
       "values" : [
       ]
     },
+    {
+      "name" : "allowLeadingSpace",
+      "type" : "Boolean",
+      "desc" : "True to prevent the stripping of leading white space",
+      "memberOf" : "Roo.form.TextField",
+      "values" : [
+      ]
+    },
     {
       "name" : "autoCreate",
       "type" : "String/Object",
index 441a34d..58e52ea 100644 (file)
       "returns" : [
       ]
     },
+    {
+      "name" : "appendnode",
+      "desc" : "Fires when append node to the tree",
+      "memberOf" : "Roo.tree.TreePanel",
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "params" : [
+        {
+          "name" : "this",
+          "type" : "Roo.tree.TreePanel",
+          "desc" : "",
+          "isOptional" : false
+        },
+        {
+          "name" : "node",
+          "type" : "Roo.tree.TreeNode",
+          "desc" : "",
+          "isOptional" : false
+        },
+        {
+          "name" : "index",
+          "type" : "Number",
+          "desc" : "The index of the newly appended node",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+      ]
+    },
     {
       "name" : "startdrag",
       "desc" : "Fires when a node starts being dragged",
index 56071ee..914027d 100644 (file)
       "returns" : [
       ]
     },
+    {
+      "name" : "merge",
+      "desc" : "eval:var:merge",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "memberOf" : "_global_",
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "params" : [
+      ],
+      "returns" : [
+      ]
+    },
     {
       "name" : "Renderer",
-      "desc" : "Renderer",
+      "desc" : "eval:var:Renderer",
       "isStatic" : false,
       "isConstructor" : false,
       "isPrivate" : false,
     },
     {
       "name" : "marked",
-      "desc" : "Marked",
+      "desc" : "eval:var:marked",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "memberOf" : "_global_",
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "params" : [
+      ],
+      "returns" : [
+      ]
+    },
+    {
+      "name" : "noop",
+      "desc" : "eval:var:noop",
       "isStatic" : false,
       "isConstructor" : false,
       "isPrivate" : false,
     },
     {
       "name" : "Parser",
-      "desc" : "Parsing & Compiling",
+      "desc" : "eval:var:Parser",
       "isStatic" : false,
       "isConstructor" : false,
       "isPrivate" : false,
index 6f6784c..42390be 100644 (file)
             ],
             "is_class" : true
           },
+          {
+            "name" : "Roo.form.ComboNested",
+            "cn" : [
+            ],
+            "is_class" : true
+          },
           {
             "name" : "Roo.form.DateField",
             "cn" : [
index 7a7c3e0..122c3db 100644 (file)
@@ -28,8 +28,8 @@
         </p>
 
         <p>The js is not minified so it is readable. See 
-        <button type="button" onclick="RooDocs.viewSource.show('/combocheck.js')">htmledit.js</button> and 
-        <button type="button" onclick="RooDocs.viewSource.show('/combocheck.html')">htmledit.html</button>
+        <button type="button" onclick="RooDocs.viewSource.show('/combocheck.js')">combocheck.js</button> and 
+        <button type="button" onclick="RooDocs.viewSource.show('/combocheck.html')">combocheck.html</button>
         .</p>
 
 
index 4b7c05c..2767519 100644 (file)
@@ -11,6 +11,10 @@ Roo.onReady(function(){
     Roo.QuickTips.init();
 
  
+    var sampleData = 
     /*
      * ================  Form 2  =======================
      */
diff --git a/examples/form/nestedcombo.html b/examples/form/nestedcombo.html
new file mode 100644 (file)
index 0000000..9bea49b
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+        <title>Forms</title>
+        
+        <link rel="stylesheet" type="text/css" href="../../css/roojs-debug.css"/>
+        <link rel="stylesheet" type="text/css" href="../../css/xtheme-slate.css"/>
+        <link rel="stylesheet" type="text/css" href="../../css/inline-editor.css"/>
+       
+        <style>
+         
+        .roodocs-formblock
+        {
+            border:4px solid #CCCCCC;
+            padding:5px 0pt 5px 10px;
+        }
+        
+         
+        </style>
+    </head>
+    <body>
+            
+        <h1>Nested Combo example</h1>
+        <p>
+            Demostration of nested multicolumned combo
+        </p>
+
+        <p>The js is not minified so it is readable. See 
+        <button type="button" onclick="RooDocs.viewSource.show('/nestedcombo.js')">nestedcombo.js</button> and 
+        <button type="button" onclick="RooDocs.viewSource.show('/nestedcombo.html')">nestedcombo.html</button>
+        .</p>
+
+
+
+
+        <div style="width:900px;"  class="roodocs-formblock">
+            <h3>Display Form</h3>
+            <div id="form-ct5"></div>
+        </div>
+
+         
+
+        <div class="x-form-clear"></div>
+<PRE>
+    
+    
+</PRE>
+
+        <script type="text/javascript" src="../../roojs-debug.js"></script>
+        <script type="text/javascript" src="../../Roo/Template.js"></script>   
+        
+        <script type="text/javascript" src="../../Roo/form/ComboNested.js"></script>   
+   
+        <script type="text/javascript" src="states.js"></script>
+
+        <script type="text/javascript" src="../examples.js"></script>        
+        <script type="text/javascript" src="nestedcombo.js"></script>        
+    </body>
+</html>
diff --git a/examples/form/nestedcombo.js b/examples/form/nestedcombo.js
new file mode 100644 (file)
index 0000000..8f968a3
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * 
+ * (C) Alan Knowles 2011
+ * Licence : Roojs - LGPL
+ */
+var mform;
+var combo, cats;
+Roo.onReady(function(){
+
+    Roo.QuickTips.init();
+
+      sampledata  = [
+        ['A', 'A states', [
+            ['AK', 'Alaska'],
+            ['AZ', 'Arizona', [
+                ['AK', 'Alaska'],
+                ['AZ', 'Arizona'],
+                ['AR', 'Arkansas']
+            ]],
+            ['AR', 'Arkansas']
+                           
+        ]],
+        ['C', 'C states', [        
+          ['CA', 'California'],
+            ['CO', 'Colorado'],
+            ['CT', 'Connecticut']
+        ]],
+        ['D', 'D states', [
+            ['DE', 'Delaware'],
+            ['DC', 'District of Columbia']
+        ]],
+        ['I', 'I states', [
+        
+            ['ID', 'Idaho'],
+            ['IL', 'Illinois'],
+            ['IN', 'Indiana'],
+            ['IA', 'Iowa'],
+            ['IDA', 'Idaho'],
+            ['ILA', 'Illinois'],
+            ['INA', 'Indiana'],
+            ['IAA', 'Iowa']
+        ]],
+        ['E', 'Empty states', []],
+    ];
+    /*
+     * ================  Form 2  =======================
+     */
+    mform = Roo.factory({
+        xns : Roo.form,
+        xtype : 'Form',
+        labelAlign: 'top',
+        items : [
+            {
+                xtype : 'ComboNested',
+                xns: Roo.form,
+                
+                fieldLabel: 'State',
+                
+                name : 'states_list',
+                hiddenName:'states',
+                
+                
+                valueField : 'abbr',
+                displayField:'state',
+                
+             
+                store: {
+                    xns : Roo.data,
+                    xtype : 'SimpleStore',
+                    fields: ['abbr', 'state' , 'cn'],
+                    data : sampledata// from states.js
+                   
+                },
+                listWidth: 250,
+                typeAhead: true,
+                mode: 'local',
+                triggerAction: 'all',
+                emptyText:'Select a state...',
+                selectOnFocus:true,
+                width:190,
+                listeners : {
+                    change: function() {
+                        Roo.log("changed to " + this.getValue());
+                        
+                    }
+                }
+          },
+          
+           {
+            xtype : 'ComboNested',
+            allowBlank : true,
+            alwaysQuery : true,
+            displayField : 'name',
+            editable : false,
+            emptyText : 'Category',
+            fieldLabel : 'Category',
+            forceSelection : true,
+            hiddenName : 'supplier_category_id',
+            listWidth : 200,
+            maxColumns : 4,
+            maxHeight: 400,
+            loadingText : 'Searching',
+            minChars : 2,
+            name : 'supplier_category_id_name',
+            pageSize : 999,
+            qtip : 'Category',
+            queryParam : 'query[fullpath]',
+            selectOnFocus : true,
+            triggerAction : 'all',
+            typeAhead : true,
+            valueField : 'id',
+            width : 300,
+            listeners : {
+             select : function (combo, record, index)
+              {
+                 // _this.grid.footer.onClick('first');
+              }
+            },
+            xns : Roo.form,
+            '|xns' : 'Roo.form',
+            store : {
+             xtype : 'Store',
+             remoteSort : true,
+             sortInfo : { direction : 'ASC', field: 'fullpath' },
+             listeners : {
+              beforeload : function (_self, o){
+                   o.params = o.params || {};
+                   o.params._as_tree = 1;
+                   // set more here
+               }
+             },
+             xns : Roo.data,
+             '|xns' : 'Roo.data',
+             proxy : {
+              xtype : 'HttpProxy',
+              method : 'GET',
+              url : '/web.Texon/admin.php/Roo/category.php',
+              xns : Roo.data,
+              '|xns' : 'Roo.data'
+             },
+             reader : {
+              xtype : 'JsonReader',
+              fields : [{"name":"id","type":"int"},{"name":"fullpath","type":"string"},'name',   'cn' ],
+              id : 'id',
+              root : 'data',
+              totalProperty : 'total',
+              xns : Roo.data,
+              '|xns' : 'Roo.data'
+             }
+            }
+           },
+          
+
+            
+        ]
+        
+    });
+
+    mform.render('form-ct5');
+    combo = mform.findField('states');
+    cats = mform.findField('supplier_category_id');
+   /* mform.setValues({
+        states : '["AK","AZ"]',
+        states_list : "Alaska, Arizona"
+        
+    });
+    */
+    
+    
+});
\ No newline at end of file
index 0eb4c2a..004a9c5 100644 (file)
@@ -212,11 +212,11 @@ return el.nextSibling;}throw 'Illegal insertion point -> "'+M+'"';},insertBefore
 el.appendChild(N);}else{var O=E(o);N=this.insertHtml("beforeEnd",el,O);}return M?Roo.get(N,true):N;},overwrite:function(el,o,M){el=Roo.getDom(el);if(o.ns){while(el.childNodes.length){el.removeChild(el.firstChild);}F(o,el);}else{el.innerHTML=E(o);}return M?Roo.get(el.firstChild,true):el.firstChild;
 },createTemplate:function(o){var M=E(o);return new Roo.Template(M);}};}();
 // Roo/Template.js
-Roo.Template=function(A){if(A instanceof Array){A=A.join("");}else if(arguments.length>1){A=Array.prototype.join.call(arguments,"");}if(typeof(A)=='object'){Roo.apply(this,A)}else{this.html=A;}if(this.url){this.load();}};Roo.Template.prototype={url:false,html:'',applyTemplate:function(A){try{if(this.compiled){return this.compiled(A);
-}var B=this.disableFormats!==true;var fm=Roo.util.Format,C=this;var fn=function(m,D,E,F){if(E&&B){if(E.substr(0,5)=="this."){return C.call(E.substr(5),A[D],A);}else{if(F){var re=/^\s*['"](.*)["']\s*$/;F=F.split(',');for(var i=0,G=F.length;i<G;i++){F[i]=F[i].replace(re,"$1");
-}F=[A[D]].concat(F);}else{F=[A[D]];}return fm[E].apply(fm,F);}}else{return A[D]!==undefined?A[D]:"";}};return this.html.replace(this.re,fn);}catch(e){Roo.log(e);throw e;}},loading:false,load:function(){if(this.loading){return;}var _t=this;this.loading=true;
-this.compiled=false;var cx=new Roo.data.Connection();cx.request({url:this.url,method:'GET',success:function(A){_t.loading=false;_t.html=A.responseText;_t.url=false;_t.compile();},failure:function(A){Roo.log("Template failed to load from "+_t.url);_t.loading=false;
-}});},set:function(A,B){this.html=A;this.compiled=null;if(B){this.compile();}return this;},disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var fm=Roo.util.Format;var A=this.disableFormats!==true;var B=Roo.isGecko?"+":",";
+Roo.Template=function(A){if(A instanceof Array){A=A.join("");}else if(arguments.length>1){A=Array.prototype.join.call(arguments,"");}if(typeof(A)=='object'){Roo.apply(this,A)}else{this.html=A;}if(this.url){this.load();}};Roo.Template.prototype={url:false,html:'',applyTemplate:function(A){Roo.log(["applyTemplate",A]);
+try{if(this.compiled){return this.compiled(A);}var B=this.disableFormats!==true;var fm=Roo.util.Format,C=this;var fn=function(m,D,E,F){if(E&&B){if(E.substr(0,5)=="this."){return C.call(E.substr(5),A[D],A);}else{if(F){var re=/^\s*['"](.*)["']\s*$/;F=F.split(',');
+for(var i=0,G=F.length;i<G;i++){F[i]=F[i].replace(re,"$1");}F=[A[D]].concat(F);}else{F=[A[D]];}return fm[E].apply(fm,F);}}else{return A[D]!==undefined?A[D]:"";}};return this.html.replace(this.re,fn);}catch(e){Roo.log(e);throw e;}},loading:false,load:function(){if(this.loading){return;
+}var _t=this;this.loading=true;this.compiled=false;var cx=new Roo.data.Connection();cx.request({url:this.url,method:'GET',success:function(A){_t.loading=false;_t.html=A.responseText;_t.url=false;_t.compile();},failure:function(A){Roo.log("Template failed to load from "+_t.url);
+_t.loading=false;}});},set:function(A,B){this.html=A;this.compiled=null;if(B){this.compile();}return this;},disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var fm=Roo.util.Format;var A=this.disableFormats!==true;var B=Roo.isGecko?"+":",";
 var fn=function(m,D,E,F){if(E&&A){F=F?','+F:"";if(E.substr(0,5)!="this."){E="fm."+E+'(';}else{E='this.call("'+E.substr(5)+'", ';F=", values";}}else{F='';E="(values['"+D+"'] == undefined ? '' : ";}return "'"+B+E+"values['"+D+"']"+F+")"+B+"'";};var C;if(Roo.isGecko){C="this.compiled = function(values){ return '"+this.html.replace(/\\/g,'\\\\').replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn)+"';};";
 }else{C=["this.compiled = function(values){ return ['"];C.push(this.html.replace(/\\/g,'\\\\').replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn));C.push("'].join('');};");C=C.join('');}eval(C);return this;},call:function(A,B,C){return this[A](B,C);
 },insertFirst:function(el,A,B){return this.doInsert('afterBegin',el,A,B);},insertBefore:function(el,A,B){return this.doInsert('beforeBegin',el,A,B);},insertAfter:function(el,A,B){return this.doInsert('afterEnd',el,A,B);},append:function(el,A,B){return this.doInsert('beforeEnd',el,A,B);
@@ -270,8 +270,8 @@ Roo.util.Observable.prototype.un=Roo.util.Observable.prototype.removeListener;Ro
 setTimeout(function(){h.apply(D,E);},o.delay||10);};};Roo.util.Event=function(D,E){this.name=E;this.obj=D;this.listeners=[];};Roo.util.Event.prototype={addListener:function(fn,D,E){var o=E||{};D=D||this.obj;if(!this.isListening(fn,D)){var l={fn:fn,scope:D,options:o}
 ;var h=fn;if(o.delay){h=C(h,o,D);}if(o.single){h=B(h,this,fn,D);}if(o.buffer){h=A(h,o,D);}l.fireFn=h;if(!this.firing){this.listeners.push(l);}else{this.listeners=this.listeners.slice(0);this.listeners.push(l);}}},findListener:function(fn,D){D=D||this.obj;
 var ls=this.listeners;for(var i=0,E=ls.length;i<E;i++){var l=ls[i];if(l.fn==fn&&l.scope==D){return i;}}return -1;},isListening:function(fn,D){return this.findListener(fn,D)!=-1;},removeListener:function(fn,D){var E;if((E=this.findListener(fn,D))!=-1){if(!this.firing){this.listeners.splice(E,1);
-}else{this.listeners=this.listeners.slice(0);this.listeners.splice(E,1);}return true;}return false;},clearListeners:function(){this.listeners=[];},fire:function(){var ls=this.listeners,D,E=ls.length;if(E>0){this.firing=true;var F=Array.prototype.slice.call(arguments,0);
-for(var i=0;i<E;i++){var l=ls[i];if(l.fireFn.apply(l.scope||this.obj||window,arguments)===false){this.firing=false;return false;}}this.firing=false;}return true;}};})();
+}else{this.listeners=this.listeners.slice(0);this.listeners.splice(E,1);}return true;}return false;},clearListeners:function(){this.listeners=[];},fire:function(){var ls=this.listeners,D,E=ls.length;if(E>0){this.firing=true;for(var i=0;i<E;i++){var F=Array.prototype.slice.call(arguments,0);
+var l=ls[i];F.push(l.options);if(l.fireFn.apply(l.scope||this.obj||window,F)===false){this.firing=false;return false;}}this.firing=false;}return true;}};})();
 // Roo/Document.js
 Roo.Document=function(A){this.addEvents({'ready':true});Roo.util.Observable.call(this,A);var B=this;Roo.onReady(function(){B.fireEvent('ready');},null,false);};Roo.extend(Roo.Document,Roo.util.Observable,{});
 // Roo/EventManager.js
@@ -683,62 +683,62 @@ Roo.debug&&Roo.log(C);if(!E.hideProgress&&Roo.MessageBox){Roo.MessageBox.updateP
 
 // Roo/Markdown.js
 Roo.Markdown={};Roo.Markdown.toHtml=function(A){var c=new Roo.Markdown.marked.setOptions({renderer:new Roo.Markdown.marked.Renderer(),gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:true,smartypants:false});A=A.replace(/\\\n/g,' ');
-return Roo.Markdown.marked(A);};(function(){var A={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/}
-;A.bullet=/(?:[*+-]|\d+\.)/;A.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;A.item=replace(A.item,'gm')(/bull/g,A.bullet)();A.list=replace(A.list)(/bull/g,A.bullet)('hr','\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))')('def','\\n+(?='+A.def.source+')')();A.blockquote=replace(A.blockquote)('def',A.def)();
-A._tag='(?!(?:'+'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'+'|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'+'|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';A.html=replace(A.html)('comment',/<!--[\s\S]*?-->/)('closed',/<(tag)[\s\S]+?<\/\1>/)('closing',/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,A._tag)();
-A.paragraph=replace(A.paragraph)('hr',A.hr)('heading',A.heading)('lheading',A.lheading)('blockquote',A.blockquote)('tag','<'+A._tag)('def',A.def)();A.normal=merge({},A);A.gfm=merge({},A.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}
-);A.gfm.paragraph=replace(A.paragraph)('(?!','(?!'+A.gfm.fences.source.replace('\\1','\\2')+'|'+A.list.source.replace('\\1','\\3')+'|')();A.tables=merge({},A.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}
-);function Lexer(C){this.tokens=[];this.tokens.links={};this.options=C||marked.defaults;this.rules=A.normal;if(this.options.gfm){if(this.options.tables){this.rules=A.tables;}else{this.rules=A.gfm;}}}Lexer.rules=A;Lexer.lex=function(C,D){var E=new Lexer(D);
-return E.lex(C);};Lexer.prototype.lex=function(C){C=C.replace(/\r\n|\r/g,'\n').replace(/\t/g,'    ').replace(/\u00a0/g,' ').replace(/\u2424/g,'\n');return this.token(C,true);};Lexer.prototype.token=function(C,D,bq){var C=C.replace(/^ +$/gm,''),E,F,G,H,b,I,J,i,l;
-while(C){if(G=this.rules.newline.exec(C)){C=C.substring(G[0].length);if(G[0].length>1){this.tokens.push({type:'space'});}}if(G=this.rules.code.exec(C)){C=C.substring(G[0].length);G=G[0].replace(/^ {4}/gm,'');this.tokens.push({type:'code',text:!this.options.pedantic?G.replace(/\n+$/,''):G}
-);continue;}if(G=this.rules.fences.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'code',lang:G[2],text:G[3]||''});continue;}if(G=this.rules.heading.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'heading',depth:G[1].length,text:G[2]}
-);continue;}if(D&&(G=this.rules.nptable.exec(C))){C=C.substring(G[0].length);I={type:'table',header:G[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:G[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:G[3].replace(/\n$/,'').split('\n')};for(i=0;i<I.align.length;
-i++){if(/^ *-+: *$/.test(I.align[i])){I.align[i]='right';}else if(/^ *:-+: *$/.test(I.align[i])){I.align[i]='center';}else if(/^ *:-+ *$/.test(I.align[i])){I.align[i]='left';}else{I.align[i]=null;}}for(i=0;i<I.cells.length;i++){I.cells[i]=I.cells[i].split(/ *\| */);
-}this.tokens.push(I);continue;}if(G=this.rules.lheading.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'heading',depth:G[2]==='='?1:2,text:G[1]});continue;}if(G=this.rules.hr.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'hr'});continue;
-}if(G=this.rules.blockquote.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'blockquote_start'});G=G[0].replace(/^ *> ?/gm,'');this.token(G,D,true);this.tokens.push({type:'blockquote_end'});continue;}if(G=this.rules.list.exec(C)){C=C.substring(G[0].length);
-H=G[2];this.tokens.push({type:'list_start',ordered:H.length>1});G=G[0].match(this.rules.item);E=false;l=G.length;i=0;for(;i<l;i++){I=G[i];J=I.length;I=I.replace(/^ *([*+-]|\d+\.) +/,'');if(~I.indexOf('\n ')){J-=I.length;I=!this.options.pedantic?I.replace(new RegExp('^ {1,'+J+'}','gm'),''):I.replace(/^ {1,4}/gm,'');
-}if(this.options.smartLists&&i!==l-1){b=A.bullet.exec(G[i+1])[0];if(H!==b&&!(H.length>1&&b.length>1)){C=G.slice(i+1).join('\n')+C;i=l-1;}}F=E||/\n\n(?!\s*$)/.test(I);if(i!==l-1){E=I.charAt(I.length-1)==='\n';if(!F){F=E;}}this.tokens.push({type:F?'loose_item_start':'list_item_start'}
-);this.token(I,false,bq);this.tokens.push({type:'list_item_end'});}this.tokens.push({type:'list_end'});continue;}if(G=this.rules.html.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:this.options.sanitize?'paragraph':'html',pre:!this.options.sanitizer&&(G[1]==='pre'||G[1]==='script'||G[1]==='style'),text:G[0]}
-);continue;}if((!bq&&D)&&(G=this.rules.def.exec(C))){C=C.substring(G[0].length);this.tokens.links[G[1].toLowerCase()]={href:G[2],title:G[3]};continue;}if(D&&(G=this.rules.table.exec(C))){C=C.substring(G[0].length);I={type:'table',header:G[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:G[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:G[3].replace(/(?: *\| *)?\n$/,'').split('\n')}
-;for(i=0;i<I.align.length;i++){if(/^ *-+: *$/.test(I.align[i])){I.align[i]='right';}else if(/^ *:-+: *$/.test(I.align[i])){I.align[i]='center';}else if(/^ *:-+ *$/.test(I.align[i])){I.align[i]='left';}else{I.align[i]=null;}}for(i=0;i<I.cells.length;i++){I.cells[i]=I.cells[i].replace(/^ *\| *| *\| *$/g,'').split(/ *\| */);
-}this.tokens.push(I);continue;}if(D&&(G=this.rules.paragraph.exec(C))){C=C.substring(G[0].length);this.tokens.push({type:'paragraph',text:G[1].charAt(G[1].length-1)==='\n'?G[1].slice(0,-1):G[1]});continue;}if(G=this.rules.text.exec(C)){C=C.substring(G[0].length);
-this.tokens.push({type:'text',text:G[0]});continue;}if(C){throw new Error('Infinite loop on byte: '+C.charCodeAt(0));}}return this.tokens;};var B={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/}
-;B._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;B._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;B.link=replace(B.link)('inside',B._inside)('href',B._href)();B.reflink=replace(B.reflink)('inside',B._inside)();B.normal=merge({},B);B.pedantic=merge({}
-,B.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});B.gfm=merge({},B.normal,{escape:replace(B.escape)('])','~|])')(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(B.text)(']|','~]|')('|','|https?://|')()}
-);B.breaks=merge({},B.gfm,{br:replace(B.br)('{2,}','*')(),text:replace(B.gfm.text)('{2,}','*')()});function InlineLexer(C,D){this.options=D||marked.defaults;this.links=C;this.rules=B.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;
-if(!this.links){throw new Error('Tokens array requires a `links` property.');}if(this.options.gfm){if(this.options.breaks){this.rules=B.breaks;}else{this.rules=B.gfm;}}else if(this.options.pedantic){this.rules=B.pedantic;}}InlineLexer.rules=B;InlineLexer.output=function(C,D,E){var F=new InlineLexer(D,E);
-return F.output(C);};InlineLexer.prototype.output=function(C){var D='',E,F,G,H;while(C){if(H=this.rules.escape.exec(C)){C=C.substring(H[0].length);D+=H[1];continue;}if(H=this.rules.autolink.exec(C)){C=C.substring(H[0].length);if(H[2]==='@'){F=H[1].charAt(6)===':'?this.mangle(H[1].substring(7)):this.mangle(H[1]);
-G=this.mangle('mailto:')+F;}else{F=escape(H[1]);G=F;}D+=this.renderer.link(G,null,F);continue;}if(!this.inLink&&(H=this.rules.url.exec(C))){C=C.substring(H[0].length);F=escape(H[1]);G=F;D+=this.renderer.link(G,null,F);continue;}if(H=this.rules.tag.exec(C)){if(!this.inLink&&/^<a /i.test(H[0])){this.inLink=true;
-}else if(this.inLink&&/^<\/a>/i.test(H[0])){this.inLink=false;}C=C.substring(H[0].length);D+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(H[0]):escape(H[0]):H[0];continue;}if(H=this.rules.link.exec(C)){C=C.substring(H[0].length);this.inLink=true;
-D+=this.outputLink(H,{href:H[2],title:H[3]});this.inLink=false;continue;}if((H=this.rules.reflink.exec(C))||(H=this.rules.nolink.exec(C))){C=C.substring(H[0].length);E=(H[2]||H[1]).replace(/\s+/g,' ');E=this.links[E.toLowerCase()];if(!E||!E.href){D+=H[0].charAt(0);
-C=H[0].substring(1)+C;continue;}this.inLink=true;D+=this.outputLink(H,E);this.inLink=false;continue;}if(H=this.rules.strong.exec(C)){C=C.substring(H[0].length);D+=this.renderer.strong(this.output(H[2]||H[1]));continue;}if(H=this.rules.em.exec(C)){C=C.substring(H[0].length);
-D+=this.renderer.em(this.output(H[2]||H[1]));continue;}if(H=this.rules.code.exec(C)){C=C.substring(H[0].length);D+=this.renderer.codespan(escape(H[2],true));continue;}if(H=this.rules.br.exec(C)){C=C.substring(H[0].length);D+=this.renderer.br();continue;}if(H=this.rules.del.exec(C)){C=C.substring(H[0].length);
-D+=this.renderer.del(this.output(H[1]));continue;}if(H=this.rules.text.exec(C)){C=C.substring(H[0].length);D+=this.renderer.text(escape(this.smartypants(H[0])));continue;}if(C){throw new Error('Infinite loop on byte: '+C.charCodeAt(0));}}return D;};InlineLexer.prototype.outputLink=function(C,D){var E=escape(D.href),F=D.title?escape(D.title):null;
-return C[0].charAt(0)!=='!'?this.renderer.link(E,F,this.output(C[1])):this.renderer.image(E,F,escape(C[1]));};InlineLexer.prototype.smartypants=function(C){if(!this.options.smartypants){return C;}return C.replace(/---/g,'\u2014').replace(/--/g,'\u2013').replace(/(^|[-\u2014/(\[{"\s])'/g,'$1\u2018').replace(/'/g,'\u2019').replace(/(^|[-\u2014/(\[{\u2018\s])"/g,'$1\u201c').replace(/"/g,'\u201d').replace(/\.{3}/g,'\u2026');
-};InlineLexer.prototype.mangle=function(C){if(!this.options.mangle){return C;}var D='',l=C.length,i=0,ch;for(;i<l;i++){ch=C.charCodeAt(i);if(Math.random()>0.5){ch='x'+ch.toString(16);}D+='&#'+ch+';';}return D;};function Renderer(C){this.options=C||{};}Renderer.prototype.code=function(C,D,E){if(this.options.highlight){var F=this.options.highlight(C,D);
-if(F!=null&&F!==C){E=true;C=F;}}else{E=true;}if(!D){return '<pre><code>'+(E?C:escape(C,true))+'\n</code></pre>';}return '<pre><code class="'+this.options.langPrefix+escape(D,true)+'">'+(E?C:escape(C,true))+'\n</code></pre>\n';};Renderer.prototype.blockquote=function(C){return '<blockquote>\n'+C+'</blockquote>\n';
-};Renderer.prototype.html=function(C){return C;};Renderer.prototype.heading=function(C,D,E){return '<h'+D+' id="'+this.options.headerPrefix+E.toLowerCase().replace(/[^\w]+/g,'-')+'">'+C+'</h'+D+'>\n';};Renderer.prototype.hr=function(){return this.options.xhtml?'<hr/>\n':'<hr>\n';
-};Renderer.prototype.list=function(C,D){var E=D?'ol':'ul';return '<'+E+'>\n'+C+'</'+E+'>\n';};Renderer.prototype.listitem=function(C){return '<li>'+C+'</li>\n';};Renderer.prototype.paragraph=function(C){return '<p>'+C+'</p>\n';};Renderer.prototype.table=function(C,D){return '<table class="table table-striped">\n'+'<thead>\n'+C+'</thead>\n'+'<tbody>\n'+D+'</tbody>\n'+'</table>\n';
-};Renderer.prototype.tablerow=function(C){return '<tr>\n'+C+'</tr>\n';};Renderer.prototype.tablecell=function(C,D){var E=D.header?'th':'td';var F=D.align?'<'+E+' style="text-align:'+D.align+'">':'<'+E+'>';return F+C+'</'+E+'>\n';};Renderer.prototype.strong=function(C){return '<strong>'+C+'</strong>';
-};Renderer.prototype.em=function(C){return '<em>'+C+'</em>';};Renderer.prototype.codespan=function(C){return '<code>'+C+'</code>';};Renderer.prototype.br=function(){return this.options.xhtml?'<br/>':'<br>';};Renderer.prototype.del=function(C){return '<del>'+C+'</del>';
-};Renderer.prototype.link=function(C,D,E){if(this.options.sanitize){try{var F=decodeURIComponent(unescape(C)).replace(/[^\w:]/g,'').toLowerCase();}catch(e){return '';}if(F.indexOf('javascript:')===0||F.indexOf('vbscript:')===0){return '';}}var G='<a href="'+C+'"';
-if(D){G+=' title="'+D+'"';}G+='>'+E+'</a>';return G;};Renderer.prototype.image=function(C,D,E){var F='<img src="'+C+'" alt="'+E+'"';if(D){F+=' title="'+D+'"';}F+=this.options.xhtml?'/>':'>';return F;};Renderer.prototype.text=function(C){return C;};function Parser(C){this.tokens=[];
-this.token=null;this.options=C||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options;}Parser.parse=function(C,D,E){var F=new Parser(D,E);return F.parse(C);};Parser.prototype.parse=function(C){this.inline=new InlineLexer(C.links,this.options,this.renderer);
-this.tokens=C.reverse();var D='';while(this.next()){D+=this.tok();}return D;};Parser.prototype.next=function(){return this.token=this.tokens.pop();};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0;};Parser.prototype.parseText=function(){var C=this.token.text;
-while(this.peek().type==='text'){C+='\n'+this.next().text;}return this.inline.output(C);};Parser.prototype.tok=function(){switch(this.token.type){case 'space':{return '';}case 'hr':{return this.renderer.hr();}case 'heading':{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);
-}case 'code':{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);}case 'table':{var C='',D='',i,E,F,G,j;F='';for(i=0;i<this.token.header.length;i++){G={header:true,align:this.token.align[i]};F+=this.renderer.tablecell(this.inline.output(this.token.header[i]),{header:true,align:this.token.align[i]}
-);}C+=this.renderer.tablerow(F);for(i=0;i<this.token.cells.length;i++){E=this.token.cells[i];F='';for(j=0;j<E.length;j++){F+=this.renderer.tablecell(this.inline.output(E[j]),{header:false,align:this.token.align[j]});}D+=this.renderer.tablerow(F);}return this.renderer.table(C,D);
-}case 'blockquote_start':{var D='';while(this.next().type!=='blockquote_end'){D+=this.tok();}return this.renderer.blockquote(D);}case 'list_start':{var D='',H=this.token.ordered;while(this.next().type!=='list_end'){D+=this.tok();}return this.renderer.list(D,H);
-}case 'list_item_start':{var D='';while(this.next().type!=='list_item_end'){D+=this.token.type==='text'?this.parseText():this.tok();}return this.renderer.listitem(D);}case 'loose_item_start':{var D='';while(this.next().type!=='list_item_end'){D+=this.tok();
-}return this.renderer.listitem(D);}case 'html':{var I=!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;return this.renderer.html(I);}case 'paragraph':{return this.renderer.paragraph(this.inline.output(this.token.text));
-}case 'text':{return this.renderer.paragraph(this.parseText());}}};function escape(C,D){return C.replace(!D?/&(?!#?\w+;)/g:/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');}function unescape(C){return C.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g,function(_,n){n=n.toLowerCase();
-if(n==='colon'){return ':';}if(n.charAt(0)==='#'){return n.charAt(1)==='x'?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1));}return '';});}function replace(C,D){C=C.source;D=D||'';return function E(F,G){if(!F){return new RegExp(C,D);
-}G=G.source||G;G=G.replace(/(^|[^\[])\^/g,'$1');C=C.replace(F,G);return E;};}function noop(){}noop.exec=noop;function merge(C){var i=1,D,E;for(;i<arguments.length;i++){D=arguments[i];for(E in D){if(Object.prototype.hasOwnProperty.call(D,E)){C[E]=D[E];}}}return C;
-}function marked(C,D,E){if(E||typeof D==='function'){if(!E){E=D;D=null;}D=merge({},marked.defaults,D||{});var F=D.highlight,G,H,i=0;try{G=Lexer.lex(C,D)}catch(e){return E(e);}H=G.length;var I=function(J){if(J){D.highlight=F;return E(J);}var K;try{K=Parser.parse(G,D);
-}catch(e){J=e;}D.highlight=F;return J?E(J):E(null,K);};if(!F||F.length<3){return I();}delete D.highlight;if(!H){return I();}for(;i<G.length;i++){(function(J){if(J.type!=='code'){return --H||I();}return F(J.text,J.lang,function(K,L){if(K){return I(K);}if(L==null||L===J.text){return --H||I();
-}J.text=L;J.escaped=true;--H||I();});})(G[i]);}return;}try{if(D){D=merge({},marked.defaults,D);}return Parser.parse(Lexer.lex(C,D),D);}catch(e){e.message+='\nPlease report this to https://github.com/chjj/marked.';if((D||marked.defaults).silent){return '<p>An error occured:</p><pre>'+escape(e.message+'',true)+'</pre>';
-}throw e;}}marked.options=marked.setOptions=function(C){merge(marked.defaults,C);return marked;};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:'lang-',smartypants:false,headerPrefix:'',renderer:new Renderer,xhtml:false}
-;marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;Roo.Markdown.marked=marked;})();
+return Roo.Markdown.marked(A);};(function(){var A=function(I,J){return I.replace(!J?/&(?!#?\w+;)/g:/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');};var unescape=function(I){return I.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g,function(_,n){n=n.toLowerCase();
+if(n==='colon'){return ':';}if(n.charAt(0)==='#'){return n.charAt(1)==='x'?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1));}return '';});};var replace=function(I,J){I=I.source;J=J||'';return function K(L,M){if(!L){return new RegExp(I,J);
+}M=M.source||M;M=M.replace(/(^|[^\[])\^/g,'$1');I=I.replace(L,M);return K;};};var noop=function(){};noop.exec=noop;var B=function(I){var i=1,J,K;for(;i<arguments.length;i++){J=arguments[i];for(K in J){if(Object.prototype.hasOwnProperty.call(J,K)){I[K]=J[K];
+}}}return I;};var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/}
+;block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,'gm')(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)('hr','\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))')('def','\\n+(?='+block.def.source+')')();
+block.blockquote=replace(block.blockquote)('def',block.def)();block._tag='(?!(?:'+'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'+'|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'+'|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';block.html=replace(block.html)('comment',/<!--[\s\S]*?-->/)('closed',/<(tag)[\s\S]+?<\/\1>/)('closing',/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)();
+block.paragraph=replace(block.paragraph)('hr',block.hr)('heading',block.heading)('lheading',block.lheading)('blockquote',block.blockquote)('tag','<'+block._tag)('def',block.def)();block.normal=B({},block);block.gfm=B({},block.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}
+);block.gfm.paragraph=replace(block.paragraph)('(?!','(?!'+block.gfm.fences.source.replace('\\1','\\2')+'|'+block.list.source.replace('\\1','\\3')+'|')();block.tables=B({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}
+);var C=function(I){this.tokens=[];this.tokens.links={};this.options=I||H.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables;}else{this.rules=block.gfm;}}};C.rules=block;C.lex=function(I,J){var K=new C(J);
+return K.lex(I);};C.prototype.lex=function(I){I=I.replace(/\r\n|\r/g,'\n').replace(/\t/g,'    ').replace(/\u00a0/g,' ').replace(/\u2424/g,'\n');return this.token(I,true);};C.prototype.token=function(I,J,bq){var I=I.replace(/^ +$/gm,''),K,L,M,N,b,O,P,i,l;while(I){if(M=this.rules.newline.exec(I)){I=I.substring(M[0].length);
+if(M[0].length>1){this.tokens.push({type:'space'});}}if(M=this.rules.code.exec(I)){I=I.substring(M[0].length);M=M[0].replace(/^ {4}/gm,'');this.tokens.push({type:'code',text:!this.options.pedantic?M.replace(/\n+$/,''):M});continue;}if(M=this.rules.fences.exec(I)){I=I.substring(M[0].length);
+this.tokens.push({type:'code',lang:M[2],text:M[3]||''});continue;}if(M=this.rules.heading.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:'heading',depth:M[1].length,text:M[2]});continue;}if(J&&(M=this.rules.nptable.exec(I))){I=I.substring(M[0].length);
+O={type:'table',header:M[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:M[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:M[3].replace(/\n$/,'').split('\n')};for(i=0;i<O.align.length;i++){if(/^ *-+: *$/.test(O.align[i])){O.align[i]='right';}else if(/^ *:-+: *$/.test(O.align[i])){O.align[i]='center';
+}else if(/^ *:-+ *$/.test(O.align[i])){O.align[i]='left';}else{O.align[i]=null;}}for(i=0;i<O.cells.length;i++){O.cells[i]=O.cells[i].split(/ *\| */);}this.tokens.push(O);continue;}if(M=this.rules.lheading.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:'heading',depth:M[2]==='='?1:2,text:M[1]}
+);continue;}if(M=this.rules.hr.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:'hr'});continue;}if(M=this.rules.blockquote.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:'blockquote_start'});M=M[0].replace(/^ *> ?/gm,'');this.token(M,J,true);
+this.tokens.push({type:'blockquote_end'});continue;}if(M=this.rules.list.exec(I)){I=I.substring(M[0].length);N=M[2];this.tokens.push({type:'list_start',ordered:N.length>1});M=M[0].match(this.rules.item);K=false;l=M.length;i=0;for(;i<l;i++){O=M[i];P=O.length;
+O=O.replace(/^ *([*+-]|\d+\.) +/,'');if(~O.indexOf('\n ')){P-=O.length;O=!this.options.pedantic?O.replace(new RegExp('^ {1,'+P+'}','gm'),''):O.replace(/^ {1,4}/gm,'');}if(this.options.smartLists&&i!==l-1){b=block.bullet.exec(M[i+1])[0];if(N!==b&&!(N.length>1&&b.length>1)){I=M.slice(i+1).join('\n')+I;
+i=l-1;}}L=K||/\n\n(?!\s*$)/.test(O);if(i!==l-1){K=O.charAt(O.length-1)==='\n';if(!L){L=K;}}this.tokens.push({type:L?'loose_item_start':'list_item_start'});this.token(O,false,bq);this.tokens.push({type:'list_item_end'});}this.tokens.push({type:'list_end'});
+continue;}if(M=this.rules.html.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:this.options.sanitize?'paragraph':'html',pre:!this.options.sanitizer&&(M[1]==='pre'||M[1]==='script'||M[1]==='style'),text:M[0]});continue;}if((!bq&&J)&&(M=this.rules.def.exec(I))){I=I.substring(M[0].length);
+this.tokens.links[M[1].toLowerCase()]={href:M[2],title:M[3]};continue;}if(J&&(M=this.rules.table.exec(I))){I=I.substring(M[0].length);O={type:'table',header:M[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:M[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:M[3].replace(/(?: *\| *)?\n$/,'').split('\n')}
+;for(i=0;i<O.align.length;i++){if(/^ *-+: *$/.test(O.align[i])){O.align[i]='right';}else if(/^ *:-+: *$/.test(O.align[i])){O.align[i]='center';}else if(/^ *:-+ *$/.test(O.align[i])){O.align[i]='left';}else{O.align[i]=null;}}for(i=0;i<O.cells.length;i++){O.cells[i]=O.cells[i].replace(/^ *\| *| *\| *$/g,'').split(/ *\| */);
+}this.tokens.push(O);continue;}if(J&&(M=this.rules.paragraph.exec(I))){I=I.substring(M[0].length);this.tokens.push({type:'paragraph',text:M[1].charAt(M[1].length-1)==='\n'?M[1].slice(0,-1):M[1]});continue;}if(M=this.rules.text.exec(I)){I=I.substring(M[0].length);
+this.tokens.push({type:'text',text:M[0]});continue;}if(I){throw new Error('Infinite loop on byte: '+I.charCodeAt(0));}}return this.tokens;};var D={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/}
+;D._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;D._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;D.link=replace(D.link)('inside',D._inside)('href',D._href)();D.reflink=replace(D.reflink)('inside',D._inside)();D.normal=B({},D);D.pedantic=B({},D.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}
+);D.gfm=B({},D.normal,{escape:replace(D.escape)('])','~|])')(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(D.text)(']|','~]|')('|','|https?://|')()});D.breaks=B({},D.gfm,{br:replace(D.br)('{2,}','*')(),text:replace(D.gfm.text)('{2,}','*')()}
+);var E=function(I,J){this.options=J||H.defaults;this.links=I;this.rules=D.normal;this.renderer=this.options.renderer||new F;this.renderer.options=this.options;if(!this.links){throw new Error('Tokens array requires a `links` property.');}if(this.options.gfm){if(this.options.breaks){this.rules=D.breaks;
+}else{this.rules=D.gfm;}}else if(this.options.pedantic){this.rules=D.pedantic;}};E.rules=D;E.output=function(I,J,K){var L=new E(J,K);return L.output(I);};E.prototype.output=function(I){var J='',K,L,M,N;while(I){if(N=this.rules.escape.exec(I)){I=I.substring(N[0].length);
+J+=N[1];continue;}if(N=this.rules.autolink.exec(I)){I=I.substring(N[0].length);if(N[2]==='@'){L=N[1].charAt(6)===':'?this.mangle(N[1].substring(7)):this.mangle(N[1]);M=this.mangle('mailto:')+L;}else{L=A(N[1]);M=L;}J+=this.renderer.link(M,null,L);continue;
+}if(!this.inLink&&(N=this.rules.url.exec(I))){I=I.substring(N[0].length);L=A(N[1]);M=L;J+=this.renderer.link(M,null,L);continue;}if(N=this.rules.tag.exec(I)){if(!this.inLink&&/^<a /i.test(N[0])){this.inLink=true;}else if(this.inLink&&/^<\/a>/i.test(N[0])){this.inLink=false;
+}I=I.substring(N[0].length);J+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(N[0]):A(N[0]):N[0];continue;}if(N=this.rules.link.exec(I)){I=I.substring(N[0].length);this.inLink=true;J+=this.outputLink(N,{href:N[2],title:N[3]});this.inLink=false;
+continue;}if((N=this.rules.reflink.exec(I))||(N=this.rules.nolink.exec(I))){I=I.substring(N[0].length);K=(N[2]||N[1]).replace(/\s+/g,' ');K=this.links[K.toLowerCase()];if(!K||!K.href){J+=N[0].charAt(0);I=N[0].substring(1)+I;continue;}this.inLink=true;J+=this.outputLink(N,K);
+this.inLink=false;continue;}if(N=this.rules.strong.exec(I)){I=I.substring(N[0].length);J+=this.renderer.strong(this.output(N[2]||N[1]));continue;}if(N=this.rules.em.exec(I)){I=I.substring(N[0].length);J+=this.renderer.em(this.output(N[2]||N[1]));continue;
+}if(N=this.rules.code.exec(I)){I=I.substring(N[0].length);J+=this.renderer.codespan(A(N[2],true));continue;}if(N=this.rules.br.exec(I)){I=I.substring(N[0].length);J+=this.renderer.br();continue;}if(N=this.rules.del.exec(I)){I=I.substring(N[0].length);J+=this.renderer.del(this.output(N[1]));
+continue;}if(N=this.rules.text.exec(I)){I=I.substring(N[0].length);J+=this.renderer.text(A(this.smartypants(N[0])));continue;}if(I){throw new Error('Infinite loop on byte: '+I.charCodeAt(0));}}return J;};E.prototype.outputLink=function(I,J){var K=A(J.href),L=J.title?A(J.title):null;
+return I[0].charAt(0)!=='!'?this.renderer.link(K,L,this.output(I[1])):this.renderer.image(K,L,A(I[1]));};E.prototype.smartypants=function(I){if(!this.options.smartypants){return I;}return I.replace(/---/g,'\u2014').replace(/--/g,'\u2013').replace(/(^|[-\u2014/(\[{"\s])'/g,'$1\u2018').replace(/'/g,'\u2019').replace(/(^|[-\u2014/(\[{\u2018\s])"/g,'$1\u201c').replace(/"/g,'\u201d').replace(/\.{3}/g,'\u2026');
+};E.prototype.mangle=function(I){if(!this.options.mangle){return I;}var J='',l=I.length,i=0,ch;for(;i<l;i++){ch=I.charCodeAt(i);if(Math.random()>0.5){ch='x'+ch.toString(16);}J+='&#'+ch+';';}return J;};var F=function(I){this.options=I||{};};F.prototype.code=function(I,J,K){if(this.options.highlight){var L=this.options.highlight(I,J);
+if(L!=null&&L!==I){K=true;I=L;}}else{K=true;}if(!J){return '<pre><code>'+(K?I:A(I,true))+'\n</code></pre>';}return '<pre><code class="'+this.options.langPrefix+A(J,true)+'">'+(K?I:A(I,true))+'\n</code></pre>\n';};F.prototype.blockquote=function(I){return '<blockquote>\n'+I+'</blockquote>\n';
+};F.prototype.html=function(I){return I;};F.prototype.heading=function(I,J,K){return '<h'+J+' id="'+this.options.headerPrefix+K.toLowerCase().replace(/[^\w]+/g,'-')+'">'+I+'</h'+J+'>\n';};F.prototype.hr=function(){return this.options.xhtml?'<hr/>\n':'<hr>\n';
+};F.prototype.list=function(I,J){var K=J?'ol':'ul';return '<'+K+'>\n'+I+'</'+K+'>\n';};F.prototype.listitem=function(I){return '<li>'+I+'</li>\n';};F.prototype.paragraph=function(I){return '<p>'+I+'</p>\n';};F.prototype.table=function(I,J){return '<table class="table table-striped">\n'+'<thead>\n'+I+'</thead>\n'+'<tbody>\n'+J+'</tbody>\n'+'</table>\n';
+};F.prototype.tablerow=function(I){return '<tr>\n'+I+'</tr>\n';};F.prototype.tablecell=function(I,J){var K=J.header?'th':'td';var L=J.align?'<'+K+' style="text-align:'+J.align+'">':'<'+K+'>';return L+I+'</'+K+'>\n';};F.prototype.strong=function(I){return '<strong>'+I+'</strong>';
+};F.prototype.em=function(I){return '<em>'+I+'</em>';};F.prototype.codespan=function(I){return '<code>'+I+'</code>';};F.prototype.br=function(){return this.options.xhtml?'<br/>':'<br>';};F.prototype.del=function(I){return '<del>'+I+'</del>';};F.prototype.link=function(I,J,K){if(this.options.sanitize){try{var L=decodeURIComponent(unescape(I)).replace(/[^\w:]/g,'').toLowerCase();
+}catch(e){return '';}if(L.indexOf('javascript:')===0||L.indexOf('vbscript:')===0){return '';}}var M='<a href="'+I+'"';if(J){M+=' title="'+J+'"';}M+='>'+K+'</a>';return M;};F.prototype.image=function(I,J,K){var L='<img src="'+I+'" alt="'+K+'"';if(J){L+=' title="'+J+'"';
+}L+=this.options.xhtml?'/>':'>';return L;};F.prototype.text=function(I){return I;};var G=function(I){this.tokens=[];this.token=null;this.options=I||H.defaults;this.options.renderer=this.options.renderer||new F;this.renderer=this.options.renderer;this.renderer.options=this.options;
+};G.parse=function(I,J,K){var L=new G(J,K);return L.parse(I);};G.prototype.parse=function(I){this.inline=new E(I.links,this.options,this.renderer);this.tokens=I.reverse();var J='';while(this.next()){J+=this.tok();}return J;};G.prototype.next=function(){return this.token=this.tokens.pop();
+};G.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0;};G.prototype.parseText=function(){var I=this.token.text;while(this.peek().type==='text'){I+='\n'+this.next().text;}return this.inline.output(I);};G.prototype.tok=function(){switch(this.token.type){case 'space':{return '';
+}case 'hr':{return this.renderer.hr();}case 'heading':{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);}case 'code':{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);}case 'table':{var I='',J='',i,K,L,M,j;
+L='';for(i=0;i<this.token.header.length;i++){M={header:true,align:this.token.align[i]};L+=this.renderer.tablecell(this.inline.output(this.token.header[i]),{header:true,align:this.token.align[i]});}I+=this.renderer.tablerow(L);for(i=0;i<this.token.cells.length;
+i++){K=this.token.cells[i];L='';for(j=0;j<K.length;j++){L+=this.renderer.tablecell(this.inline.output(K[j]),{header:false,align:this.token.align[j]});}J+=this.renderer.tablerow(L);}return this.renderer.table(I,J);}case 'blockquote_start':{var J='';while(this.next().type!=='blockquote_end'){J+=this.tok();
+}return this.renderer.blockquote(J);}case 'list_start':{var J='',N=this.token.ordered;while(this.next().type!=='list_end'){J+=this.tok();}return this.renderer.list(J,N);}case 'list_item_start':{var J='';while(this.next().type!=='list_item_end'){J+=this.token.type==='text'?this.parseText():this.tok();
+}return this.renderer.listitem(J);}case 'loose_item_start':{var J='';while(this.next().type!=='list_item_end'){J+=this.tok();}return this.renderer.listitem(J);}case 'html':{var O=!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;
+return this.renderer.html(O);}case 'paragraph':{return this.renderer.paragraph(this.inline.output(this.token.text));}case 'text':{return this.renderer.paragraph(this.parseText());}}};var H=function(I,J,K){if(K||typeof J==='function'){if(!K){K=J;J=null;}J=B({}
+,H.defaults,J||{});var L=J.highlight,M,N,i=0;try{M=C.lex(I,J)}catch(e){return K(e);}N=M.length;var O=function(P){if(P){J.highlight=L;return K(P);}var Q;try{Q=G.parse(M,J);}catch(e){P=e;}J.highlight=L;return P?K(P):K(null,Q);};if(!L||L.length<3){return O();
+}delete J.highlight;if(!N){return O();}for(;i<M.length;i++){(function(P){if(P.type!=='code'){return --N||O();}return L(P.text,P.lang,function(Q,R){if(Q){return O(Q);}if(R==null||R===P.text){return --N||O();}P.text=R;P.escaped=true;--N||O();});})(M[i]);}return;
+}try{if(J){J=B({},H.defaults,J);}return G.parse(C.lex(I,J),J);}catch(e){e.message+='\nPlease report this to https://github.com/chjj/marked.';if((J||H.defaults).silent){return '<p>An error occured:</p><pre>'+A(e.message+'',true)+'</pre>';}throw e;}};H.options=H.setOptions=function(I){B(H.defaults,I);
+return H;};H.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:'lang-',smartypants:false,headerPrefix:'',renderer:new F,xhtml:false};H.Parser=G;H.parser=G.parse;
+H.Renderer=F;H.Lexer=C;H.lexer=C.lex;H.InlineLexer=E;H.inlineLexer=E.output;H.parse=H;Roo.Markdown.marked=H;})();
 // Roo/dd/DragDrop.js
 (function(){var A=Roo.EventManager;var B=Roo.lib.Dom;Roo.dd.DragDrop=function(id,C,D){if(id){this.init(id,C,D);}};Roo.extend(Roo.dd.DragDrop,Roo.util.Observable,{id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;
 },unlock:function(){this.locked=false;},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(x,y){}
@@ -816,7 +816,7 @@ Roo.fly(this.getDragEl()).setSize(el.offsetWidth,el.offsetHeight);}},b4MouseDown
 },endDrag:function(e){var A=this.getEl();var B=this.getDragEl();B.style.visibility="";this.beforeMove();A.style.visibility="hidden";Roo.dd.DDM.moveToEl(A,B);B.style.visibility="hidden";A.style.visibility="";this.afterDrag();},beforeMove:function(){},afterDrag:function(){}
 ,toString:function(){return ("DDProxy "+this.id);}});
 // Roo/dd/DDTarget.js
-Roo.dd.DDTarget=function(id,A,B){if(id){this.initTarget(id,A,B);}if(B.listeners||B.events){Roo.dd.DragDrop.superclass.constructor.call(this,{listeners:B.listeners||{},events:B.events||{}});}};Roo.extend(Roo.dd.DDTarget,Roo.dd.DragDrop,{toString:function(){return ("DDTarget "+this.id);
+Roo.dd.DDTarget=function(id,A,B){if(id){this.initTarget(id,A,B);}if(B&&(B.listeners||B.events)){Roo.dd.DragDrop.superclass.constructor.call(this,{listeners:B.listeners||{},events:B.events||{}});}};Roo.extend(Roo.dd.DDTarget,Roo.dd.DragDrop,{toString:function(){return ("DDTarget "+this.id);
 }});
 // Roo/dd/ScrollManager.js
 Roo.dd.ScrollManager=function(){var A=Roo.dd.DragDropMgr;var B={};var C=null;var D={};var E=function(e){C=null;H();};var F=function(){if(A.dragCurrent){A.refreshCache(A.dragCurrent.groups);}};var G=function(){if(A.dragCurrent){var K=Roo.dd.ScrollManager;if(!K.animate){if(D.el.scroll(D.dir,K.increment)){F();
@@ -894,21 +894,21 @@ for(var i=0,B=A.length;i<B;i++){A[i].join(this);}var C=this.data.length;this.dat
 }this.fireEvent("loadexception",this,o,A,o.raw.errorMsg);return;}var r=o.records,t=o.totalRecords||r.length;this.fireEvent("beforeloadadd",this,r,A,o);if(!A||A.add!==true){if(this.pruneModifiedRecords){this.modified=[];}for(var i=0,C=r.length;i<C;i++){r[i].join(this);
 }if(this.snapshot){this.data=this.snapshot;delete this.snapshot;}this.data.clear();this.data.addAll(r);this.totalLength=t;this.applySort();this.fireEvent("datachanged",this);}else{this.totalLength=Math.max(t,this.data.length+r.length);this.add(r);}if(this.parent&&!Roo.isIOS&&!this.useNativeIOS&&this.parent.emptyTitle.length){var e=new Roo.data.Record({}
 );e.set(this.parent.displayField,this.parent.emptyTitle);e.set(this.parent.valueField,'');this.insert(0,e);}this.fireEvent("load",this,r,A,o);if(A.callback){A.callback.call(A.scope||this,r,A,true);}},loadData:function(o,A){var r=this.reader.readRecords(o);
-this.loadRecords(r,{add:A},true);},getCount:function(){return this.data.length||0;},getTotalCount:function(){return this.totalLength||0;},getSortState:function(){return this.sortInfo;},applySort:function(){if(this.sortInfo&&!this.remoteSort){var s=this.sortInfo,f=s.field;
-var st=this.fields.get(f).sortType;var fn=function(r1,r2){var v1=st(r1.data[f]),v2=st(r2.data[f]);return v1>v2?1:(v1<v2?-1:0);};this.data.sort(s.direction,fn);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(s.direction,fn);}}},setDefaultSort:function(A,B){this.sortInfo={field:A,direction:B?B.toUpperCase():"ASC"}
-;},sort:function(A,B){var f=this.fields.get(A);if(!B){this.sortToggle[f.name]=this.sortToggle[f.name]||f.sortDir;if(this.multiSort||(this.sortInfo&&this.sortInfo.field==f.name)){B=(this.sortToggle[f.name]||"ASC").toggle("ASC","DESC");}else{B=f.sortDir;}}this.sortToggle[f.name]=B;
-this.sortInfo={field:f.name,direction:B};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged",this);}else{this.load(this.lastOptions);}},each:function(fn,A){this.data.each(fn,A);},getModifiedRecords:function(){return this.modified;},createFilterFn:function(A,B,C){if(!B.exec){B=String(B);
-if(B.length==0){return false;}B=new RegExp((C===true?'':'^')+Roo.escapeRe(B),"i");}return function(r){return B.test(r.data[A]);};},sum:function(A,B,C){var rs=this.data.items,v=0;B=B||0;C=(C||C===0)?C:rs.length-1;for(var i=B;i<=C;i++){v+=(rs[i].data[A]||0);
-}return v;},filter:function(A,B,C){var fn=this.createFilterFn(A,B,C);return fn?this.filterBy(fn):this.clearFilter();},filterBy:function(fn,A){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(fn,A||this);this.fireEvent("datachanged",this);},query:function(A,B,C){var fn=this.createFilterFn(A,B,C);
-return fn?this.queryBy(fn):this.data.clone();},queryBy:function(fn,A){var B=this.snapshot||this.data;return B.filterBy(fn,A||this);},collect:function(A,B,C){var d=(C===true&&this.snapshot)?this.snapshot.items:this.data.items;var v,sv,r=[],l={};for(var i=0,D=d.length;
-i<D;i++){v=d[i].data[A];sv=String(v);if((B||!Roo.isEmpty(v))&&!l[sv]){l[sv]=true;r[r.length]=v;}}return r;},clearFilter:function(A){if(this.snapshot&&this.snapshot!=this.data){this.data=this.snapshot;delete this.snapshot;if(A!==true){this.fireEvent("datachanged",this);
-}}},afterEdit:function(A){if(this.modified.indexOf(A)==-1){this.modified.push(A);}this.fireEvent("update",this,A,Roo.data.Record.EDIT);},afterReject:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Roo.data.Record.REJECT);},afterCommit:function(A){this.modified.remove(A);
-this.fireEvent("update",this,A,Roo.data.Record.COMMIT);},commitChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,A=m.length;i<A;i++){m[i].commit();}},rejectChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,A=m.length;
-i<A;i++){m[i].reject();}},onMetaChange:function(A,B,o){this.recordType=B;this.fields=B.prototype.fields;delete this.snapshot;this.sortInfo=A.sortInfo||this.sortInfo;this.modified=[];this.fireEvent('metachange',this,this.reader.meta);},moveIndex:function(A,B){var C=this.indexOf(A);
-var D=C+B;this.remove(A);this.insert(D,A);}});
+this.loadRecords(r,{add:A},true);},loadDataFromChildren:function(A){this.loadData(this.reader.toLoadData(A));},getCount:function(){return this.data.length||0;},getTotalCount:function(){return this.totalLength||0;},getSortState:function(){return this.sortInfo;
+},applySort:function(){if(this.sortInfo&&!this.remoteSort){var s=this.sortInfo,f=s.field;var st=this.fields.get(f).sortType;var fn=function(r1,r2){var v1=st(r1.data[f]),v2=st(r2.data[f]);return v1>v2?1:(v1<v2?-1:0);};this.data.sort(s.direction,fn);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(s.direction,fn);
+}}},setDefaultSort:function(A,B){this.sortInfo={field:A,direction:B?B.toUpperCase():"ASC"};},sort:function(A,B){var f=this.fields.get(A);if(!B){this.sortToggle[f.name]=this.sortToggle[f.name]||f.sortDir;if(this.multiSort||(this.sortInfo&&this.sortInfo.field==f.name)){B=(this.sortToggle[f.name]||"ASC").toggle("ASC","DESC");
+}else{B=f.sortDir;}}this.sortToggle[f.name]=B;this.sortInfo={field:f.name,direction:B};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged",this);}else{this.load(this.lastOptions);}},each:function(fn,A){this.data.each(fn,A);},getModifiedRecords:function(){return this.modified;
+},createFilterFn:function(A,B,C){if(!B.exec){B=String(B);if(B.length==0){return false;}B=new RegExp((C===true?'':'^')+Roo.escapeRe(B),"i");}return function(r){return B.test(r.data[A]);};},sum:function(A,B,C){var rs=this.data.items,v=0;B=B||0;C=(C||C===0)?C:rs.length-1;
+for(var i=B;i<=C;i++){v+=(rs[i].data[A]||0);}return v;},filter:function(A,B,C){var fn=this.createFilterFn(A,B,C);return fn?this.filterBy(fn):this.clearFilter();},filterBy:function(fn,A){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(fn,A||this);
+this.fireEvent("datachanged",this);},query:function(A,B,C){var fn=this.createFilterFn(A,B,C);return fn?this.queryBy(fn):this.data.clone();},queryBy:function(fn,A){var B=this.snapshot||this.data;return B.filterBy(fn,A||this);},collect:function(A,B,C){var d=(C===true&&this.snapshot)?this.snapshot.items:this.data.items;
+var v,sv,r=[],l={};for(var i=0,D=d.length;i<D;i++){v=d[i].data[A];sv=String(v);if((B||!Roo.isEmpty(v))&&!l[sv]){l[sv]=true;r[r.length]=v;}}return r;},clearFilter:function(A){if(this.snapshot&&this.snapshot!=this.data){this.data=this.snapshot;delete this.snapshot;
+if(A!==true){this.fireEvent("datachanged",this);}}},afterEdit:function(A){if(this.modified.indexOf(A)==-1){this.modified.push(A);}this.fireEvent("update",this,A,Roo.data.Record.EDIT);},afterReject:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Roo.data.Record.REJECT);
+},afterCommit:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Roo.data.Record.COMMIT);},commitChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,A=m.length;i<A;i++){m[i].commit();}},rejectChanges:function(){var m=this.modified.slice(0);
+this.modified=[];for(var i=0,A=m.length;i<A;i++){m[i].reject();}},onMetaChange:function(A,B,o){this.recordType=B;this.fields=B.prototype.fields;delete this.snapshot;this.sortInfo=A.sortInfo||this.sortInfo;this.modified=[];this.fireEvent('metachange',this,this.reader.meta);
+},moveIndex:function(A,B){var C=this.indexOf(A);var D=C+B;this.remove(A);this.insert(D,A);}});
 // Roo/data/SimpleStore.js
-Roo.data.SimpleStore=function(A){Roo.data.SimpleStore.superclass.constructor.call(this,{isLocal:true,reader:new Roo.data.ArrayReader({id:A.id},Roo.data.Record.create(A.fields)),proxy:new Roo.data.MemoryProxy(A.data)});this.load();};Roo.extend(Roo.data.SimpleStore,Roo.data.Store);
-
+Roo.data.SimpleStore=function(A){Roo.data.SimpleStore.superclass.constructor.call(this,{isLocal:true,reader:typeof(A.reader)!='undefined'?A.reader:new Roo.data.ArrayReader({id:A.id},Roo.data.Record.create(A.fields)),proxy:new Roo.data.MemoryProxy(A.data)});
+this.load();};Roo.extend(Roo.data.SimpleStore,Roo.data.Store);
 // Roo/data/JsonStore.js
 Roo.data.JsonStore=function(c){Roo.data.JsonStore.superclass.constructor.call(this,Roo.apply(c,{proxy:!c.data?new Roo.data.HttpProxy({url:c.url}):undefined,reader:new Roo.data.JsonReader(c,c.fields)}));};Roo.extend(Roo.data.JsonStore,Roo.data.Store);
 // Roo/data/Field.js
@@ -918,7 +918,7 @@ break;case "date":this.sortType=st.asDate;break;default:this.sortType=st.none;}}
 };break;case "date":cv=function(v){if(!v){return '';}if(v instanceof Date){return v;}if(C){if(C=="timestamp"){return new Date(v*1000);}return Date.parseDate(v,C);}var D=Date.parse(v);return D?new Date(D):null;};break;}this.convert=cv;}};Roo.data.Field.prototype={dateFormat:null,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC"}
 ;
 // Roo/data/DataReader.js
-Roo.data.DataReader=function(A,B){this.meta=A;this.recordType=B instanceof Array?Roo.data.Record.create(B):B;};Roo.data.DataReader.prototype={newRow:function(d){var da={};this.recordType.prototype.fields.each(function(c){switch(c.type){case 'int':da[c.name]=0;
+Roo.data.DataReader=function(A,B){this.meta=A;this.recordType=B instanceof Array?Roo.data.Record.create(B):B;};Roo.data.DataReader.prototype={readerType:'Data',newRow:function(d){var da={};this.recordType.prototype.fields.each(function(c){switch(c.type){case 'int':da[c.name]=0;
 break;case 'date':da[c.name]=new Date();break;case 'float':da[c.name]=0.0;break;case 'boolean':da[c.name]=false;break;default:da[c.name]="";break;}});return new this.recordType(Roo.apply(da,d));}};
 // Roo/data/DataProxy.js
 Roo.data.DataProxy=function(){this.addEvents({beforeload:true,load:true,loadexception:true});Roo.data.DataProxy.superclass.constructor.call(this);};Roo.extend(Roo.data.DataProxy,Roo.util.Observable);
@@ -939,23 +939,23 @@ J.setAttribute("type","text/javascript");J.setAttribute("id",H.scriptId);this.he
 }catch(e){}};}},handleResponse:function(o,A){this.trans=false;this.destroyTrans(A,true);var B;try{B=A.reader.readRecords(o);}catch(e){this.fireEvent("loadexception",this,o,A.arg,e);A.callback.call(A.scope||window,null,A.arg,false);return;}this.fireEvent("load",this,o,A.arg);
 A.callback.call(A.scope||window,B,A.arg,true);},handleFailure:function(A){this.trans=false;this.destroyTrans(A,false);this.fireEvent("loadexception",this,null,A.arg);A.callback.call(A.scope||window,null,A.arg,false);}});
 // Roo/data/JsonReader.js
-Roo.data.JsonReader=function(A,B){A=A||{};Roo.applyIf(A,{totalProperty:'total',successProperty:'success',root:'data',id:'id'});Roo.data.JsonReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.JsonReader,Roo.data.DataReader,{metaFromRemote:false,read:function(A){var B=A.responseText;
+Roo.data.JsonReader=function(A,B){A=A||{};Roo.applyIf(A,{totalProperty:'total',successProperty:'success',root:'data',id:'id'});Roo.data.JsonReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.JsonReader,Roo.data.DataReader,{readerType:'Json',metaFromRemote:false,read:function(A){var B=A.responseText;
 var o=eval("("+B+")");if(!o){throw {message:"JsonReader.read: Json object not found"};}if(o.metaData){delete this.ef;this.metaFromRemote=true;this.meta=o.metaData;this.recordType=Roo.data.Record.create(o.metaData.fields);this.onMetaChange(this.meta,this.recordType,o);
 }return this.readRecords(o);},onMetaChange:function(A,B,o){},simpleAccess:function(A,B){return A[B];},getJsonAccessor:function(){var re=/[\[\.]/;return function(A){try{return (re.test(A))?new Function("obj","return obj."+A):function(B){return B[A];};}catch(e){}
 return Roo.emptyFn;};}(),readRecords:function(o){this.o=o;var s=this.meta,A=this.recordType,f=A?A.prototype.fields:null,fi=f?f.items:[],fl=f?f.length:0;if(!this.ef){if(s.totalProperty){this.getTotal=this.getJsonAccessor(s.totalProperty);}if(s.successProperty){this.getSuccess=this.getJsonAccessor(s.successProperty);
 }this.getRoot=s.root?this.getJsonAccessor(s.root):function(p){return p;};if(s.id){var g=this.getJsonAccessor(s.id);this.getId=function(I){var r=g(I);return (r===undefined||r==="")?null:r;};}else{this.getId=function(){return null;};}this.ef=[];for(var jj=0;
 jj<fl;jj++){f=fi[jj];var B=(f.mapping!==undefined&&f.mapping!==null)?f.mapping:f.name;this.ef[jj]=this.getJsonAccessor(B);}}var C=this.getRoot(o),c=C.length,D=c,E=true;if(s.totalProperty){var vt=parseInt(this.getTotal(o),10);if(!isNaN(vt)){D=vt;}}if(s.successProperty){var vs=this.getSuccess(o);
 if(vs===false||vs==='false'){E=false;}}var F=[];for(var i=0;i<c;i++){var n=C[i];var G={};var id=this.getId(n);for(var j=0;j<fl;j++){f=fi[j];var v=this.ef[j](n);if(!f.convert){Roo.log('missing convert for '+f.name);Roo.log(f);continue;}G[f.name]=f.convert((v!==undefined)?v:f.defaultValue);
-}var H=new A(G,id);H.json=n;F[i]=H;}return {raw:o,success:E,records:F,totalRecords:D};}});
+}var H=new A(G,id);H.json=n;F[i]=H;}return {raw:o,success:E,records:F,totalRecords:D};},toLoadData:function(A){var B=typeof(A.data.cn)=='undefined'?[]:A.data.cn;return {data:B,total:B.length};}});
 // Roo/data/XmlReader.js
-Roo.data.XmlReader=function(A,B){A=A||{};Roo.data.XmlReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.XmlReader,Roo.data.DataReader,{read:function(A){var B=A.responseXML;if(!B){throw {message:"XmlReader.read: XML Document not available"}
+Roo.data.XmlReader=function(A,B){A=A||{};Roo.data.XmlReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.XmlReader,Roo.data.DataReader,{readerType:'Xml',read:function(A){var B=A.responseXML;if(!B){throw {message:"XmlReader.read: XML Document not available"}
 ;}return this.readRecords(B);},readRecords:function(A){this.xmlData=A;var B=A.documentElement||A;var q=Roo.DomQuery;var C=this.recordType,D=C.prototype.fields;var E=this.meta.id;var F=0,G=true;if(this.meta.totalRecords){F=q.selectNumber(this.meta.totalRecords,B,0);
 }if(this.meta.success){var sv=q.selectValue(this.meta.success,B,true);G=sv!==false&&sv!=='false';}var H=[];var ns=q.select(this.meta.record,B);for(var i=0,I=ns.length;i<I;i++){var n=ns[i];var J={};var id=E?q.selectValue(E,n):undefined;for(var j=0,K=D.length;
 j<K;j++){var f=D.items[j];var v=q.selectValue(f.mapping||f.name,n,f.defaultValue);v=f.convert(v);J[f.name]=v;}var L=new C(J,id);L.node=n;H[H.length]=L;}return {success:G,records:H,totalRecords:F||H.length};}});
 // Roo/data/ArrayReader.js
 Roo.data.ArrayReader=function(A,B){Roo.data.ArrayReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.ArrayReader,Roo.data.JsonReader,{readRecords:function(o){var A=this.meta?this.meta.id:null;var B=this.recordType,C=B.prototype.fields;
 var D=[];var E=o;for(var i=0;i<E.length;i++){var n=E[i];var F={};var id=((A||A===0)&&n[A]!==undefined&&n[A]!==""?n[A]:null);for(var j=0,G=C.length;j<G;j++){var f=C.items[j];var k=f.mapping!==undefined&&f.mapping!==null?f.mapping:j;var v=n[k]!==undefined?n[k]:f.defaultValue;
-v=f.convert(v);F[f.name]=v;}var H=new B(F,id);H.json=n;D[D.length]=H;}return {records:D,totalRecords:D.length};}});
+v=f.convert(v);F[f.name]=v;}var H=new B(F,id);H.json=n;D[D.length]=H;}return {records:D,totalRecords:D.length};},toLoadData:function(A){return typeof(A.data.cn)=='undefined'?[]:A.data.cn;}});
 // Roo/data/Tree.js
 Roo.data.Tree=function(A){this.nodeHash={};this.root=null;if(A){this.setRootNode(A);}this.addEvents({"append":true,"remove":true,"move":true,"insert":true,"beforeappend":true,"beforeremove":true,"beforemove":true,"beforeinsert":true});Roo.data.Tree.superclass.constructor.call(this);
 };Roo.extend(Roo.data.Tree,Roo.util.Observable,{pathSeparator:"/",proxyNodeEvent:function(){return this.fireEvent.apply(this,arguments);},getRootNode:function(){return this.root;},setRootNode:function(A){this.root=A;A.ownerTree=this;A.isRoot=true;this.registerNode(A);
@@ -1756,6 +1756,29 @@ return true;}return false;},validateValue:function(A){return Roo.form.ComboBoxAr
 if(!this.el){var B=this.getAutoCreate();this.el=ct.createChild(B,A);}this.el.child('img').dom.setAttribute('src',Roo.BLANK_IMAGE_URL);this.el.child('div').dom.innerHTML=this.cb.renderer?this.cb.renderer(this.data):String.format('{0}',this.data[this.displayField]);
 this.el.child('div').dom.setAttribute('qtip',String.format('{0}',this.data[this.tipField]));this.el.child('img').on('click',this.remove,this);},remove:function(){if(this.cb.disabled){return;}if(false!==this.cb.fireEvent('beforeremove',this.cb,this)){this.cb.items.remove(this);
 this.el.child('img').un('click',this.remove,this);this.el.remove();this.cb.updateHiddenEl();this.cb.fireEvent('remove',this.cb,this);}}});
+// Roo/form/ComboNested.js
+Roo.form.ComboNested=function(A){Roo.form.ComboCheck.superclass.constructor.call(this,A);var B=['hiddenName','displayField','valueField'];var _t=this;Roo.each(B,function(e){if((typeof(_t[e])=='undefined')||!_t[e].length){throw "Roo.form.ComboNested : missing value for: "+e;
+}});};Roo.extend(Roo.form.ComboNested,Roo.form.ComboBox,{maxColumns:3,list:null,innerLists:null,views:null,stores:null,loadingChildren:false,onRender:function(ct,A){Roo.form.ComboBox.superclass.onRender.call(this,ct,A);if(this.hiddenName){this.hiddenField=this.el.insertSibling({tag:'input',type:'hidden',name:this.hiddenName,id:(this.hiddenId||this.hiddenName)}
+,'before',true);this.hiddenField.value=this.hiddenValue!==undefined?this.hiddenValue:this.value!==undefined?this.value:'';this.el.dom.removeAttribute('name');}if(Roo.isGecko){this.el.dom.setAttribute('autocomplete','off');}var B='x-combo-list';this.list=new Roo.Layer({shadow:this.shadow,cls:[B,this.listClass].join(' '),constrain:false}
+);var lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setWidth(lw);this.list.swallowEvent('mousewheel');this.assetHeight=0;if(this.title){this.header=this.list.createChild({cls:B+'-hd',html:this.title});this.assetHeight+=this.header.getHeight();
+}this.innerLists=[];this.views=[];this.stores=[];for(var i=0;i<this.maxColumns;i++){this.onRenderList(B,i);}this.footer=this.list.createChild({cls:B+'-ft'});this.pageTb=new Roo.Toolbar(this.footer);var C=this;this.pageTb.add({text:'Done',handler:function(){C.collapse();
+}});if(this.allowBlank&&!this.disableClear){this.pageTb.add(new Roo.Toolbar.Fill(),{cls:'x-btn-icon x-btn-clear',text:'&#160;',handler:function(){C.collapse();C.clearValue();C.onSelect(false,-1);}});}if(this.footer){this.assetHeight+=this.footer.getHeight();
+}},onRenderList:function(A,i){var lw=Math.floor(((this.listWidth*this.maxColumns||Math.max(this.wrap.getWidth(),this.minListWidth))-this.list.getFrameWidth('lr'))/this.maxColumns);this.list.setWidth(lw);var il=this.innerLists[i]=this.list.createChild({cls:A+'-inner'}
+);il.setWidth(lw);il.setStyle({'overflow-x':'hidden'});if(!this.tpl){this.tpl=new Roo.Template({html:'<div class="'+A+'-item '+A+'-item-{cn:this.isEmpty}">{'+this.displayField+'}</div>',isEmpty:function(D,E){var dl=typeof(D.data)!='undefined'?D.data.length:D.length;
+return dl?'has-children':'no-children'}});}var B=this.store;if(i>0){B=new Roo.data.SimpleStore({reader:this.store.reader,data:[]});}this.stores[i]=B;var C=this.views[i]=new Roo.View(il,this.tpl,{singleSelect:true,store:B,selectedClass:this.selectedClass});
+C.getEl().setWidth(lw);C.getEl().setStyle({position:i<1?'relative':'absolute',top:0,left:(i*lw)+'px',display:i>0?'none':'block'});C.on('selectionchange',this.onSelectChange,this,{list:i});C.on('dblclick',this.onDoubleClick,this,{list:i});B.on('beforeload',this.onBeforeLoad,this);
+B.on('load',this.onLoad,this,{list:i});B.on('loadexception',this.onLoadException,this);},restrictHeight:function(){var mh=0;Roo.each(this.innerLists,function(il,i){var el=this.views[i].getEl();el.dom.style.height='';var A=el.dom;var h=Math.max(il.clientHeight,il.offsetHeight,il.scrollHeight);
+mh=Math.max(h,mh);if(i<1){el.setHeight(h<this.maxHeight?'auto':this.maxHeight);il.setHeight(h<this.maxHeight?'auto':this.maxHeight);}},this);this.list.beginUpdate();this.list.setHeight(mh+this.list.getFrameWidth('tb')+this.assetHeight);this.list.alignTo(this.el,this.listAlign);
+this.list.endUpdate();},onBeforeLoad:function(){if(!this.hasFocus){return;}this.innerLists[0].update(this.loadingText?'<div class="loading-indicator">'+this.loadingText+'</div>':'');this.restrictHeight();this.selectedIndex=-1;},onLoad:function(a,b,c,d){if(!this.loadingChildren){for(var i=1;
+i<this.views.length;i++){this.views[i].getEl().setStyle({display:'none'});}var lw=Math.floor(((this.listWidth*this.maxColumns||Math.max(this.wrap.getWidth(),this.minListWidth))-this.list.getFrameWidth('lr'))/this.maxColumns);this.list.setWidth(lw);}if(!this.hasFocus){return;
+}if(this.store.getCount()>0){this.expand();this.restrictHeight();}else{this.onEmptyResults();}if(!this.loadingChildren){this.selectActive();}},onLoadException:function(){this.collapse();Roo.log(this.store.reader.jsonData);if(this.store&&typeof(this.store.reader.jsonData.errorMsg)!='undefined'){Roo.MessageBox.alert("Error loading",this.store.reader.jsonData.errorMsg);
+}},cleanLeadingSpace:function(e){},onSelectChange:function(A,B,C){var ix=A.getSelectedIndexes();if(C.list>this.maxColumns-2){if(A.store.getCount()<1){this.views[C.list].getEl().setStyle({display:'none'});}else{if(ix.length){this.setFromData(A.store.getAt(ix[0]).data);
+}}return;}if(!ix.length){var D=this.stores[C.list+1];D.data.clear();return;}var E=A.store.getAt(ix[0]);this.setFromData(E.data);this.fireEvent('select',this,E,ix[0]);var lw=Math.floor(((this.listWidth*this.maxColumns||Math.max(this.wrap.getWidth(),this.minListWidth))-this.list.getFrameWidth('lr'))/this.maxColumns);
+this.loadingChildren=true;this.stores[C.list+1].loadDataFromChildren(E);this.loadingChildren=false;var dl=this.stores[C.list+1].getTotalCount();this.views[C.list+1].getEl().setHeight(this.innerLists[0].getHeight());this.views[C.list+1].getEl().setStyle({display:dl?'block':'none'}
+);for(var i=C.list+2;i<this.views.length;i++){this.views[i].getEl().setStyle({display:'none'});}this.innerLists[C.list+1].setHeight(this.innerLists[0].getHeight());this.list.setWidth(lw*(C.list+(dl?2:1)));if(this.isLoading){}},onDoubleClick:function(){this.collapse();
+},recordToStack:function(A,B,C,D){var E=new Roo.data.SimpleStore({reader:this.store.reader,data:[]});var F=this;var G=false;var H=false;if(A.getCount()<1){return false;}A.each(function(r){if(r.data[B]==C){G=r;H=r;return false;}if(r.data.cn&&r.data.cn.length){E.loadDataFromChildren(r);
+var I=F.recordToStack(E,B,C,D);if(I!==false){G=I;H=r;return false;}}return true;});if(G==false){return false}D.unshift(H);return G;},selectActive:function(){var A=[];this.recordToStack(this.store,this.valueField,this.getValue(),A);for(var i=0;i<A.length;i++){this.views[i].select(A[i].store.indexOf(A[i]),false,false);
+}}});
 // Roo/form/Checkbox.js
 Roo.form.Checkbox=function(A){Roo.form.Checkbox.superclass.constructor.call(this,A);this.addEvents({check:true});};Roo.extend(Roo.form.Checkbox,Roo.form.Field,{focusClass:undefined,fieldClass:"x-form-field",checked:false,defaultAutoCreate:{tag:"input",type:'hidden',autocomplete:"off"}
 ,boxLabel:"",inputValue:'1',valueOff:'0',actionMode:'viewEl',itemCls:'x-menu-check-item x-form-item',groupClass:'x-menu-group-item',inputType:'hidden',inSetChecked:false,inputElement:false,basedOn:false,isFormField:true,onResize:function(){Roo.form.Checkbox.superclass.onResize.apply(this,arguments);
index d4d6c1c..0ab5de6 100644 (file)
@@ -11825,6 +11825,16 @@ Roo.extend(Roo.data.Store, Roo.util.Observable, {
         var r = this.reader.readRecords(o);
         this.loadRecords(r, {add: append}, true);
     },
+    
+     /**
+     * using 'cn' the nested child reader read the child array into it's child stores.
+     * @param {Object} rec The record with a 'children array
+     */
+    loadDataFromChildren : function(rec)
+    {
+        this.loadData(this.reader.toLoadData(rec));
+    },
+    
 
     /**
      * Gets the number of cached records.
@@ -12129,14 +12139,16 @@ Roo.extend(Roo.data.Store, Roo.util.Observable, {
  * Small helper class to make creating Stores from Array data easier.
  * @cfg {Number} id The array index of the record id. Leave blank to auto generate ids.
  * @cfg {Array} fields An array of field definition objects, or field name strings.
+ * @cfg {Object} an existing reader (eg. copied from another store)
  * @cfg {Array} data The multi-dimensional array of data
  * @constructor
  * @param {Object} config
  */
-Roo.data.SimpleStore = function(config){
+Roo.data.SimpleStore = function(config)
+{
     Roo.data.SimpleStore.superclass.constructor.call(this, {
         isLocal : true,
-        reader: new Roo.data.ArrayReader({
+        reader: typeof(config.reader) != 'undefined' ? config.reader : new Roo.data.ArrayReader({
                 id: config.id
             },
             Roo.data.Record.create(config.fields)
@@ -12313,6 +12325,9 @@ Roo.data.DataReader = function(meta, recordType){
 };
 
 Roo.data.DataReader.prototype = {
+    
+    
+    readerType : 'Data',
      /**
      * Create an empty record
      * @param {Object} data (optional) - overlay some values
@@ -12333,6 +12348,7 @@ Roo.data.DataReader.prototype = {
         return new this.recordType(Roo.apply(da, d));
     }
     
+    
 };/*
  * Based on:
  * Ext JS Library 1.1.1
@@ -12871,6 +12887,8 @@ Roo.data.JsonReader = function(meta, recordType){
 };
 Roo.extend(Roo.data.JsonReader, Roo.data.DataReader, {
     
+    readerType : 'Json',
+    
     /**
      * @prop {Boolean} metaFromRemote  - if the meta data was loaded from the remote source.
      * Used by Store query builder to append _requestMeta to params.
@@ -13012,6 +13030,14 @@ Roo.extend(Roo.data.JsonReader, Roo.data.DataReader, {
             records : records,
             totalRecords : totalRecords
         };
+    },
+    // used when loading children.. @see loadDataFromChildren
+    toLoadData: function(rec)
+    {
+       // expect rec just to be an array.. eg [a,b,c, [...] << cn ]
+       var data = typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn;
+       return { data : data, total : data.length };
+       
     }
 });/*
  * Based on:
@@ -13061,44 +13087,54 @@ var myReader = new Roo.data.ArrayReader({
  * 
  * created using {@link Roo.data.Record#create}.
  */
-Roo.data.ArrayReader = function(meta, recordType){
-    
-     
+Roo.data.ArrayReader = function(meta, recordType)
+{    
     Roo.data.ArrayReader.superclass.constructor.call(this, meta, recordType||meta.fields);
 };
 
 Roo.extend(Roo.data.ArrayReader, Roo.data.JsonReader, {
-    /**
+    
+      /**
      * Create a data block containing Roo.data.Records from an XML document.
      * @param {Object} o An Array of row objects which represents the dataset.
      * @return {Object} A data block which is used by an {@link Roo.data.Store} object as
      * a cache of Roo.data.Records.
      */
-    readRecords : function(o){
+    readRecords : function(o)
+    {
         var sid = this.meta ? this.meta.id : null;
        var recordType = this.recordType, fields = recordType.prototype.fields;
        var records = [];
        var root = o;
-           for(var i = 0; i < root.length; i++){
-                   var n = root[i];
-               var values = {};
-               var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
-               for(var j = 0, jlen = fields.length; j < jlen; j++){
-                var f = fields.items[j];
-                var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
-                var v = n[k] !== undefined ? n[k] : f.defaultValue;
-                v = f.convert(v);
-                values[f.name] = v;
-            }
-               var record = new recordType(values, id);
-               record.json = n;
-               records[records.length] = record;
+       for(var i = 0; i < root.length; i++){
+               var n = root[i];
+           var values = {};
+           var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
+           for(var j = 0, jlen = fields.length; j < jlen; j++){
+               var f = fields.items[j];
+               var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
+               var v = n[k] !== undefined ? n[k] : f.defaultValue;
+               v = f.convert(v);
+               values[f.name] = v;
            }
-           return {
-               records : records,
-               totalRecords : records.length
-           };
+           var record = new recordType(values, id);
+           record.json = n;
+           records[records.length] = record;
+       }
+       return {
+           records : records,
+           totalRecords : records.length
+       };
+    },
+    // used when loading children.. @see loadDataFromChildren
+    toLoadData: function(rec)
+    {
+       // expect rec just to be an array.. eg [a,b,c, [...] << cn ]
+       return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn;
+       
     }
+    
+    
 });/*
  * - LGPL
  * * 
index ffd52a3..9316e29 100644 (file)
@@ -479,21 +479,21 @@ for(var i=0,B=A.length;i<B;i++){A[i].join(this);}var C=this.data.length;this.dat
 }this.fireEvent("loadexception",this,o,A,o.raw.errorMsg);return;}var r=o.records,t=o.totalRecords||r.length;this.fireEvent("beforeloadadd",this,r,A,o);if(!A||A.add!==true){if(this.pruneModifiedRecords){this.modified=[];}for(var i=0,C=r.length;i<C;i++){r[i].join(this);
 }if(this.snapshot){this.data=this.snapshot;delete this.snapshot;}this.data.clear();this.data.addAll(r);this.totalLength=t;this.applySort();this.fireEvent("datachanged",this);}else{this.totalLength=Math.max(t,this.data.length+r.length);this.add(r);}if(this.parent&&!Roo.isIOS&&!this.useNativeIOS&&this.parent.emptyTitle.length){var e=new Roo.data.Record({}
 );e.set(this.parent.displayField,this.parent.emptyTitle);e.set(this.parent.valueField,'');this.insert(0,e);}this.fireEvent("load",this,r,A,o);if(A.callback){A.callback.call(A.scope||this,r,A,true);}},loadData:function(o,A){var r=this.reader.readRecords(o);
-this.loadRecords(r,{add:A},true);},getCount:function(){return this.data.length||0;},getTotalCount:function(){return this.totalLength||0;},getSortState:function(){return this.sortInfo;},applySort:function(){if(this.sortInfo&&!this.remoteSort){var s=this.sortInfo,f=s.field;
-var st=this.fields.get(f).sortType;var fn=function(r1,r2){var v1=st(r1.data[f]),v2=st(r2.data[f]);return v1>v2?1:(v1<v2?-1:0);};this.data.sort(s.direction,fn);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(s.direction,fn);}}},setDefaultSort:function(A,B){this.sortInfo={field:A,direction:B?B.toUpperCase():"ASC"}
-;},sort:function(A,B){var f=this.fields.get(A);if(!B){this.sortToggle[f.name]=this.sortToggle[f.name]||f.sortDir;if(this.multiSort||(this.sortInfo&&this.sortInfo.field==f.name)){B=(this.sortToggle[f.name]||"ASC").toggle("ASC","DESC");}else{B=f.sortDir;}}this.sortToggle[f.name]=B;
-this.sortInfo={field:f.name,direction:B};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged",this);}else{this.load(this.lastOptions);}},each:function(fn,A){this.data.each(fn,A);},getModifiedRecords:function(){return this.modified;},createFilterFn:function(A,B,C){if(!B.exec){B=String(B);
-if(B.length==0){return false;}B=new RegExp((C===true?'':'^')+Roo.escapeRe(B),"i");}return function(r){return B.test(r.data[A]);};},sum:function(A,B,C){var rs=this.data.items,v=0;B=B||0;C=(C||C===0)?C:rs.length-1;for(var i=B;i<=C;i++){v+=(rs[i].data[A]||0);
-}return v;},filter:function(A,B,C){var fn=this.createFilterFn(A,B,C);return fn?this.filterBy(fn):this.clearFilter();},filterBy:function(fn,A){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(fn,A||this);this.fireEvent("datachanged",this);},query:function(A,B,C){var fn=this.createFilterFn(A,B,C);
-return fn?this.queryBy(fn):this.data.clone();},queryBy:function(fn,A){var B=this.snapshot||this.data;return B.filterBy(fn,A||this);},collect:function(A,B,C){var d=(C===true&&this.snapshot)?this.snapshot.items:this.data.items;var v,sv,r=[],l={};for(var i=0,D=d.length;
-i<D;i++){v=d[i].data[A];sv=String(v);if((B||!Roo.isEmpty(v))&&!l[sv]){l[sv]=true;r[r.length]=v;}}return r;},clearFilter:function(A){if(this.snapshot&&this.snapshot!=this.data){this.data=this.snapshot;delete this.snapshot;if(A!==true){this.fireEvent("datachanged",this);
-}}},afterEdit:function(A){if(this.modified.indexOf(A)==-1){this.modified.push(A);}this.fireEvent("update",this,A,Roo.data.Record.EDIT);},afterReject:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Roo.data.Record.REJECT);},afterCommit:function(A){this.modified.remove(A);
-this.fireEvent("update",this,A,Roo.data.Record.COMMIT);},commitChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,A=m.length;i<A;i++){m[i].commit();}},rejectChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,A=m.length;
-i<A;i++){m[i].reject();}},onMetaChange:function(A,B,o){this.recordType=B;this.fields=B.prototype.fields;delete this.snapshot;this.sortInfo=A.sortInfo||this.sortInfo;this.modified=[];this.fireEvent('metachange',this,this.reader.meta);},moveIndex:function(A,B){var C=this.indexOf(A);
-var D=C+B;this.remove(A);this.insert(D,A);}});
+this.loadRecords(r,{add:A},true);},loadDataFromChildren:function(A){this.loadData(this.reader.toLoadData(A));},getCount:function(){return this.data.length||0;},getTotalCount:function(){return this.totalLength||0;},getSortState:function(){return this.sortInfo;
+},applySort:function(){if(this.sortInfo&&!this.remoteSort){var s=this.sortInfo,f=s.field;var st=this.fields.get(f).sortType;var fn=function(r1,r2){var v1=st(r1.data[f]),v2=st(r2.data[f]);return v1>v2?1:(v1<v2?-1:0);};this.data.sort(s.direction,fn);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(s.direction,fn);
+}}},setDefaultSort:function(A,B){this.sortInfo={field:A,direction:B?B.toUpperCase():"ASC"};},sort:function(A,B){var f=this.fields.get(A);if(!B){this.sortToggle[f.name]=this.sortToggle[f.name]||f.sortDir;if(this.multiSort||(this.sortInfo&&this.sortInfo.field==f.name)){B=(this.sortToggle[f.name]||"ASC").toggle("ASC","DESC");
+}else{B=f.sortDir;}}this.sortToggle[f.name]=B;this.sortInfo={field:f.name,direction:B};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged",this);}else{this.load(this.lastOptions);}},each:function(fn,A){this.data.each(fn,A);},getModifiedRecords:function(){return this.modified;
+},createFilterFn:function(A,B,C){if(!B.exec){B=String(B);if(B.length==0){return false;}B=new RegExp((C===true?'':'^')+Roo.escapeRe(B),"i");}return function(r){return B.test(r.data[A]);};},sum:function(A,B,C){var rs=this.data.items,v=0;B=B||0;C=(C||C===0)?C:rs.length-1;
+for(var i=B;i<=C;i++){v+=(rs[i].data[A]||0);}return v;},filter:function(A,B,C){var fn=this.createFilterFn(A,B,C);return fn?this.filterBy(fn):this.clearFilter();},filterBy:function(fn,A){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(fn,A||this);
+this.fireEvent("datachanged",this);},query:function(A,B,C){var fn=this.createFilterFn(A,B,C);return fn?this.queryBy(fn):this.data.clone();},queryBy:function(fn,A){var B=this.snapshot||this.data;return B.filterBy(fn,A||this);},collect:function(A,B,C){var d=(C===true&&this.snapshot)?this.snapshot.items:this.data.items;
+var v,sv,r=[],l={};for(var i=0,D=d.length;i<D;i++){v=d[i].data[A];sv=String(v);if((B||!Roo.isEmpty(v))&&!l[sv]){l[sv]=true;r[r.length]=v;}}return r;},clearFilter:function(A){if(this.snapshot&&this.snapshot!=this.data){this.data=this.snapshot;delete this.snapshot;
+if(A!==true){this.fireEvent("datachanged",this);}}},afterEdit:function(A){if(this.modified.indexOf(A)==-1){this.modified.push(A);}this.fireEvent("update",this,A,Roo.data.Record.EDIT);},afterReject:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Roo.data.Record.REJECT);
+},afterCommit:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Roo.data.Record.COMMIT);},commitChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,A=m.length;i<A;i++){m[i].commit();}},rejectChanges:function(){var m=this.modified.slice(0);
+this.modified=[];for(var i=0,A=m.length;i<A;i++){m[i].reject();}},onMetaChange:function(A,B,o){this.recordType=B;this.fields=B.prototype.fields;delete this.snapshot;this.sortInfo=A.sortInfo||this.sortInfo;this.modified=[];this.fireEvent('metachange',this,this.reader.meta);
+},moveIndex:function(A,B){var C=this.indexOf(A);var D=C+B;this.remove(A);this.insert(D,A);}});
 // Roo/data/SimpleStore.js
-Roo.data.SimpleStore=function(A){Roo.data.SimpleStore.superclass.constructor.call(this,{isLocal:true,reader:new Roo.data.ArrayReader({id:A.id},Roo.data.Record.create(A.fields)),proxy:new Roo.data.MemoryProxy(A.data)});this.load();};Roo.extend(Roo.data.SimpleStore,Roo.data.Store);
-
+Roo.data.SimpleStore=function(A){Roo.data.SimpleStore.superclass.constructor.call(this,{isLocal:true,reader:typeof(A.reader)!='undefined'?A.reader:new Roo.data.ArrayReader({id:A.id},Roo.data.Record.create(A.fields)),proxy:new Roo.data.MemoryProxy(A.data)});
+this.load();};Roo.extend(Roo.data.SimpleStore,Roo.data.Store);
 // Roo/data/JsonStore.js
 Roo.data.JsonStore=function(c){Roo.data.JsonStore.superclass.constructor.call(this,Roo.apply(c,{proxy:!c.data?new Roo.data.HttpProxy({url:c.url}):undefined,reader:new Roo.data.JsonReader(c,c.fields)}));};Roo.extend(Roo.data.JsonStore,Roo.data.Store);
 // Roo/data/Field.js
@@ -503,7 +503,7 @@ break;case "date":this.sortType=st.asDate;break;default:this.sortType=st.none;}}
 };break;case "date":cv=function(v){if(!v){return '';}if(v instanceof Date){return v;}if(C){if(C=="timestamp"){return new Date(v*1000);}return Date.parseDate(v,C);}var D=Date.parse(v);return D?new Date(D):null;};break;}this.convert=cv;}};Roo.data.Field.prototype={dateFormat:null,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC"}
 ;
 // Roo/data/DataReader.js
-Roo.data.DataReader=function(A,B){this.meta=A;this.recordType=B instanceof Array?Roo.data.Record.create(B):B;};Roo.data.DataReader.prototype={newRow:function(d){var da={};this.recordType.prototype.fields.each(function(c){switch(c.type){case 'int':da[c.name]=0;
+Roo.data.DataReader=function(A,B){this.meta=A;this.recordType=B instanceof Array?Roo.data.Record.create(B):B;};Roo.data.DataReader.prototype={readerType:'Data',newRow:function(d){var da={};this.recordType.prototype.fields.each(function(c){switch(c.type){case 'int':da[c.name]=0;
 break;case 'date':da[c.name]=new Date();break;case 'float':da[c.name]=0.0;break;case 'boolean':da[c.name]=false;break;default:da[c.name]="";break;}});return new this.recordType(Roo.apply(da,d));}};
 // Roo/data/DataProxy.js
 Roo.data.DataProxy=function(){this.addEvents({beforeload:true,load:true,loadexception:true});Roo.data.DataProxy.superclass.constructor.call(this);};Roo.extend(Roo.data.DataProxy,Roo.util.Observable);
@@ -524,18 +524,18 @@ J.setAttribute("type","text/javascript");J.setAttribute("id",H.scriptId);this.he
 }catch(e){}};}},handleResponse:function(o,A){this.trans=false;this.destroyTrans(A,true);var B;try{B=A.reader.readRecords(o);}catch(e){this.fireEvent("loadexception",this,o,A.arg,e);A.callback.call(A.scope||window,null,A.arg,false);return;}this.fireEvent("load",this,o,A.arg);
 A.callback.call(A.scope||window,B,A.arg,true);},handleFailure:function(A){this.trans=false;this.destroyTrans(A,false);this.fireEvent("loadexception",this,null,A.arg);A.callback.call(A.scope||window,null,A.arg,false);}});
 // Roo/data/JsonReader.js
-Roo.data.JsonReader=function(A,B){A=A||{};Roo.applyIf(A,{totalProperty:'total',successProperty:'success',root:'data',id:'id'});Roo.data.JsonReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.JsonReader,Roo.data.DataReader,{metaFromRemote:false,read:function(A){var B=A.responseText;
+Roo.data.JsonReader=function(A,B){A=A||{};Roo.applyIf(A,{totalProperty:'total',successProperty:'success',root:'data',id:'id'});Roo.data.JsonReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.JsonReader,Roo.data.DataReader,{readerType:'Json',metaFromRemote:false,read:function(A){var B=A.responseText;
 var o=eval("("+B+")");if(!o){throw {message:"JsonReader.read: Json object not found"};}if(o.metaData){delete this.ef;this.metaFromRemote=true;this.meta=o.metaData;this.recordType=Roo.data.Record.create(o.metaData.fields);this.onMetaChange(this.meta,this.recordType,o);
 }return this.readRecords(o);},onMetaChange:function(A,B,o){},simpleAccess:function(A,B){return A[B];},getJsonAccessor:function(){var re=/[\[\.]/;return function(A){try{return (re.test(A))?new Function("obj","return obj."+A):function(B){return B[A];};}catch(e){}
 return Roo.emptyFn;};}(),readRecords:function(o){this.o=o;var s=this.meta,A=this.recordType,f=A?A.prototype.fields:null,fi=f?f.items:[],fl=f?f.length:0;if(!this.ef){if(s.totalProperty){this.getTotal=this.getJsonAccessor(s.totalProperty);}if(s.successProperty){this.getSuccess=this.getJsonAccessor(s.successProperty);
 }this.getRoot=s.root?this.getJsonAccessor(s.root):function(p){return p;};if(s.id){var g=this.getJsonAccessor(s.id);this.getId=function(I){var r=g(I);return (r===undefined||r==="")?null:r;};}else{this.getId=function(){return null;};}this.ef=[];for(var jj=0;
 jj<fl;jj++){f=fi[jj];var B=(f.mapping!==undefined&&f.mapping!==null)?f.mapping:f.name;this.ef[jj]=this.getJsonAccessor(B);}}var C=this.getRoot(o),c=C.length,D=c,E=true;if(s.totalProperty){var vt=parseInt(this.getTotal(o),10);if(!isNaN(vt)){D=vt;}}if(s.successProperty){var vs=this.getSuccess(o);
 if(vs===false||vs==='false'){E=false;}}var F=[];for(var i=0;i<c;i++){var n=C[i];var G={};var id=this.getId(n);for(var j=0;j<fl;j++){f=fi[j];var v=this.ef[j](n);if(!f.convert){Roo.log('missing convert for '+f.name);Roo.log(f);continue;}G[f.name]=f.convert((v!==undefined)?v:f.defaultValue);
-}var H=new A(G,id);H.json=n;F[i]=H;}return {raw:o,success:E,records:F,totalRecords:D};}});
+}var H=new A(G,id);H.json=n;F[i]=H;}return {raw:o,success:E,records:F,totalRecords:D};},toLoadData:function(A){var B=typeof(A.data.cn)=='undefined'?[]:A.data.cn;return {data:B,total:B.length};}});
 // Roo/data/ArrayReader.js
 Roo.data.ArrayReader=function(A,B){Roo.data.ArrayReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.ArrayReader,Roo.data.JsonReader,{readRecords:function(o){var A=this.meta?this.meta.id:null;var B=this.recordType,C=B.prototype.fields;
 var D=[];var E=o;for(var i=0;i<E.length;i++){var n=E[i];var F={};var id=((A||A===0)&&n[A]!==undefined&&n[A]!==""?n[A]:null);for(var j=0,G=C.length;j<G;j++){var f=C.items[j];var k=f.mapping!==undefined&&f.mapping!==null?f.mapping:j;var v=n[k]!==undefined?n[k]:f.defaultValue;
-v=f.convert(v);F[f.name]=v;}var H=new B(F,id);H.json=n;D[D.length]=H;}return {records:D,totalRecords:D.length};}});
+v=f.convert(v);F[f.name]=v;}var H=new B(F,id);H.json=n;D[D.length]=H;}return {records:D,totalRecords:D.length};},toLoadData:function(A){return typeof(A.data.cn)=='undefined'?[]:A.data.cn;}});
 // Roo/bootstrap/ComboBox.js
 Roo.bootstrap.ComboBox=function(A){Roo.bootstrap.ComboBox.superclass.constructor.call(this,A);this.addEvents({'expand':true,'collapse':true,'beforeselect':true,'select':true,'beforequery':true,'add':true,'edit':true,'remove':true,'afterremove':true,'specialfilter':true,'tick':true,'touchviewdisplay':true}
 );this.item=[];this.tickItems=[];this.selectedIndex=-1;if(this.mode=='local'){if(A.queryDelay===undefined){this.queryDelay=10;}if(A.minChars===undefined){this.minChars=0;}}};Roo.extend(Roo.bootstrap.ComboBox,Roo.bootstrap.TriggerField,{listWidth:undefined,displayField:undefined,valueField:undefined,modalTitle:'',hiddenName:undefined,listClass:'',selectedClass:'active',shadow:'sides',listAlign:'tl-bl?',maxHeight:300,triggerAction:'query',minChars:4,typeAhead:false,queryDelay:500,pageSize:0,selectOnFocus:false,queryParam:'query',loadingText:'Loading...',resizable:false,handleHeight:8,editable:true,allQuery:'',mode:'remote',minListWidth:70,forceSelection:false,typeAheadDelay:250,valueNotFoundText:undefined,blockFocus:false,disableClear:false,alwaysQuery:false,multiple:false,invalidClass:"has-warning",validClass:"has-success",specialFilter:false,mobileTouchView:true,useNativeIOS:false,mobile_restrict_height:false,ios_options:false,addicon:false,editicon:false,page:0,hasQuery:false,append:false,loadNext:false,autoFocus:true,tickable:false,btnPosition:'right',triggerList:true,showToggleBtn:true,animate:true,emptyResultText:'Empty',triggerText:'Select',emptyTitle:'',getAutoCreate:function(){var A=false;
index 5ab13f3..2329b66 100644 (file)
@@ -4667,6 +4667,7 @@ Roo.Template.prototype = {
      * @return {String} The HTML fragment
      */
     applyTemplate : function(values){
+        Roo.log(["applyTemplate", values]);
         try {
            
             if(this.compiled){
@@ -6073,10 +6074,12 @@ Roo.util.Observable.releaseCapture = function(o){
             var ls = this.listeners, scope, len = ls.length;
             if(len > 0){
                 this.firing = true;
-                var args = Array.prototype.slice.call(arguments, 0);
+                
                 for(var i = 0; i < len; i++){
-                    var l = ls[i];
-                    if(l.fireFn.apply(l.scope||this.obj||window, arguments) === false){
+                   var args = Array.prototype.slice.call(arguments, 0);
+                   var l = ls[i];
+                   args.push(l.options);
+                    if(l.fireFn.apply(l.scope||this.obj||window, args) === false){
                         this.firing = false;
                         return false;
                     }
@@ -16802,10 +16805,86 @@ Roo.Markdown.toHtml = function(text) {
 //
 (function() {
     
+     /**
+         * eval:var:escape
+         * eval:var:unescape
+         * eval:var:replace
+         */
+      
+    /**
+     * Helpers
+     */
+    
+    var escape = function (html, encode) {
+      return html
+        .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
+        .replace(/</g, '&lt;')
+        .replace(/>/g, '&gt;')
+        .replace(/"/g, '&quot;')
+        .replace(/'/g, '&#39;');
+    }
+    
+    var unescape = function (html) {
+        // explicitly match decimal, hex, and named HTML entities 
+      return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, function(_, n) {
+        n = n.toLowerCase();
+        if (n === 'colon') { return ':'; }
+        if (n.charAt(0) === '#') {
+          return n.charAt(1) === 'x'
+            ? String.fromCharCode(parseInt(n.substring(2), 16))
+            : String.fromCharCode(+n.substring(1));
+        }
+        return '';
+      });
+    }
+    
+    var replace = function (regex, opt) {
+      regex = regex.source;
+      opt = opt || '';
+      return function self(name, val) {
+        if (!name) { return new RegExp(regex, opt); }
+        val = val.source || val;
+        val = val.replace(/(^|[^\[])\^/g, '$1');
+        regex = regex.replace(name, val);
+        return self;
+      };
+    }
+
+
+         /**
+         * eval:var:noop
+    */
+    var noop = function () {}
+    noop.exec = noop;
+    
+         /**
+         * eval:var:merge
+    */
+    var merge = function (obj) {
+      var i = 1
+        , target
+        , key;
+    
+      for (; i < arguments.length; i++) {
+        target = arguments[i];
+        for (key in target) {
+          if (Object.prototype.hasOwnProperty.call(target, key)) {
+            obj[key] = target[key];
+          }
+        }
+      }
+    
+      return obj;
+    }
+    
+    
     /**
      * Block-Level Grammar
      */
     
+    
+    
+    
     var block = {
       newline: /^\n+/,
       code: /^( {4}[^\n]+\n*)+/,
@@ -16895,7 +16974,7 @@ Roo.Markdown.toHtml = function(text) {
      * Block Lexer
      */
     
-    function Lexer(options) {
+    var Lexer = function (options) {
       this.tokens = [];
       this.tokens.links = {};
       this.options = options || marked.defaults;
@@ -17313,7 +17392,7 @@ Roo.Markdown.toHtml = function(text) {
      * Inline Lexer & Compiler
      */
     
-    function InlineLexer(links, options) {
+    var InlineLexer  = function (links, options) {
       this.options = options || marked.defaults;
       this.links = links;
       this.rules = inline.normal;
@@ -17553,7 +17632,11 @@ Roo.Markdown.toHtml = function(text) {
      * Renderer
      */
     
-    function Renderer(options) {
+     /**
+         * eval:var:Renderer
+    */
+    
+    var Renderer   = function (options) {
       this.options = options || {};
     }
     
@@ -17702,8 +17785,11 @@ Roo.Markdown.toHtml = function(text) {
     /**
      * Parsing & Compiling
      */
+         /**
+         * eval:var:Parser
+    */
     
-    function Parser(options) {
+    var Parser= function (options) {
       this.tokens = [];
       this.token = null;
       this.options = options || marked.defaults;
@@ -17878,72 +17964,15 @@ Roo.Markdown.toHtml = function(text) {
         }
       }
     };
-    
-    /**
-     * Helpers
-     */
-    
-    function escape(html, encode) {
-      return html
-        .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
-        .replace(/</g, '&lt;')
-        .replace(/>/g, '&gt;')
-        .replace(/"/g, '&quot;')
-        .replace(/'/g, '&#39;');
-    }
-    
-    function unescape(html) {
-        // explicitly match decimal, hex, and named HTML entities 
-      return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, function(_, n) {
-        n = n.toLowerCase();
-        if (n === 'colon') { return ':'; }
-        if (n.charAt(0) === '#') {
-          return n.charAt(1) === 'x'
-            ? String.fromCharCode(parseInt(n.substring(2), 16))
-            : String.fromCharCode(+n.substring(1));
-        }
-        return '';
-      });
-    }
-    
-    function replace(regex, opt) {
-      regex = regex.source;
-      opt = opt || '';
-      return function self(name, val) {
-        if (!name) { return new RegExp(regex, opt); }
-        val = val.source || val;
-        val = val.replace(/(^|[^\[])\^/g, '$1');
-        regex = regex.replace(name, val);
-        return self;
-      };
-    }
-    
-    function noop() {}
-    noop.exec = noop;
-    
-    function merge(obj) {
-      var i = 1
-        , target
-        , key;
-    
-      for (; i < arguments.length; i++) {
-        target = arguments[i];
-        for (key in target) {
-          if (Object.prototype.hasOwnProperty.call(target, key)) {
-            obj[key] = target[key];
-          }
-        }
-      }
-    
-      return obj;
-    }
-    
+  
     
     /**
      * Marked
      */
-    
-    function marked(src, opt, callback) {
+         /**
+         * eval:var:marked
+    */
+    var marked = function (src, opt, callback) {
       if (callback || typeof opt === 'function') {
         if (!callback) {
           callback = opt;
@@ -17964,7 +17993,9 @@ Roo.Markdown.toHtml = function(text) {
         }
     
         pending = tokens.length;
-    
+         /**
+         * eval:var:done
+    */
         var done = function(err) {
           if (err) {
             opt.highlight = highlight;
@@ -21097,8 +21128,8 @@ Roo.dd.DDTarget = function(id, sGroup, config) {
     if (id) {
         this.initTarget(id, sGroup, config);
     }
-    if (config.listeners || config.events) { 
-       Roo.dd.DragDrop.superclass.constructor.call(this,  { 
+    if (config && (config.listeners || config.events)) { 
+        Roo.dd.DragDrop.superclass.constructor.call(this,  { 
             listeners : config.listeners || {}, 
             events : config.events || {} 
         });    
index 26dd48a..3f7c560 100644 (file)
@@ -212,11 +212,11 @@ return el.nextSibling;}throw 'Illegal insertion point -> "'+M+'"';},insertBefore
 el.appendChild(N);}else{var O=E(o);N=this.insertHtml("beforeEnd",el,O);}return M?Roo.get(N,true):N;},overwrite:function(el,o,M){el=Roo.getDom(el);if(o.ns){while(el.childNodes.length){el.removeChild(el.firstChild);}F(o,el);}else{el.innerHTML=E(o);}return M?Roo.get(el.firstChild,true):el.firstChild;
 },createTemplate:function(o){var M=E(o);return new Roo.Template(M);}};}();
 // Roo/Template.js
-Roo.Template=function(A){if(A instanceof Array){A=A.join("");}else if(arguments.length>1){A=Array.prototype.join.call(arguments,"");}if(typeof(A)=='object'){Roo.apply(this,A)}else{this.html=A;}if(this.url){this.load();}};Roo.Template.prototype={url:false,html:'',applyTemplate:function(A){try{if(this.compiled){return this.compiled(A);
-}var B=this.disableFormats!==true;var fm=Roo.util.Format,C=this;var fn=function(m,D,E,F){if(E&&B){if(E.substr(0,5)=="this."){return C.call(E.substr(5),A[D],A);}else{if(F){var re=/^\s*['"](.*)["']\s*$/;F=F.split(',');for(var i=0,G=F.length;i<G;i++){F[i]=F[i].replace(re,"$1");
-}F=[A[D]].concat(F);}else{F=[A[D]];}return fm[E].apply(fm,F);}}else{return A[D]!==undefined?A[D]:"";}};return this.html.replace(this.re,fn);}catch(e){Roo.log(e);throw e;}},loading:false,load:function(){if(this.loading){return;}var _t=this;this.loading=true;
-this.compiled=false;var cx=new Roo.data.Connection();cx.request({url:this.url,method:'GET',success:function(A){_t.loading=false;_t.html=A.responseText;_t.url=false;_t.compile();},failure:function(A){Roo.log("Template failed to load from "+_t.url);_t.loading=false;
-}});},set:function(A,B){this.html=A;this.compiled=null;if(B){this.compile();}return this;},disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var fm=Roo.util.Format;var A=this.disableFormats!==true;var B=Roo.isGecko?"+":",";
+Roo.Template=function(A){if(A instanceof Array){A=A.join("");}else if(arguments.length>1){A=Array.prototype.join.call(arguments,"");}if(typeof(A)=='object'){Roo.apply(this,A)}else{this.html=A;}if(this.url){this.load();}};Roo.Template.prototype={url:false,html:'',applyTemplate:function(A){Roo.log(["applyTemplate",A]);
+try{if(this.compiled){return this.compiled(A);}var B=this.disableFormats!==true;var fm=Roo.util.Format,C=this;var fn=function(m,D,E,F){if(E&&B){if(E.substr(0,5)=="this."){return C.call(E.substr(5),A[D],A);}else{if(F){var re=/^\s*['"](.*)["']\s*$/;F=F.split(',');
+for(var i=0,G=F.length;i<G;i++){F[i]=F[i].replace(re,"$1");}F=[A[D]].concat(F);}else{F=[A[D]];}return fm[E].apply(fm,F);}}else{return A[D]!==undefined?A[D]:"";}};return this.html.replace(this.re,fn);}catch(e){Roo.log(e);throw e;}},loading:false,load:function(){if(this.loading){return;
+}var _t=this;this.loading=true;this.compiled=false;var cx=new Roo.data.Connection();cx.request({url:this.url,method:'GET',success:function(A){_t.loading=false;_t.html=A.responseText;_t.url=false;_t.compile();},failure:function(A){Roo.log("Template failed to load from "+_t.url);
+_t.loading=false;}});},set:function(A,B){this.html=A;this.compiled=null;if(B){this.compile();}return this;},disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var fm=Roo.util.Format;var A=this.disableFormats!==true;var B=Roo.isGecko?"+":",";
 var fn=function(m,D,E,F){if(E&&A){F=F?','+F:"";if(E.substr(0,5)!="this."){E="fm."+E+'(';}else{E='this.call("'+E.substr(5)+'", ';F=", values";}}else{F='';E="(values['"+D+"'] == undefined ? '' : ";}return "'"+B+E+"values['"+D+"']"+F+")"+B+"'";};var C;if(Roo.isGecko){C="this.compiled = function(values){ return '"+this.html.replace(/\\/g,'\\\\').replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn)+"';};";
 }else{C=["this.compiled = function(values){ return ['"];C.push(this.html.replace(/\\/g,'\\\\').replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn));C.push("'].join('');};");C=C.join('');}eval(C);return this;},call:function(A,B,C){return this[A](B,C);
 },insertFirst:function(el,A,B){return this.doInsert('afterBegin',el,A,B);},insertBefore:function(el,A,B){return this.doInsert('beforeBegin',el,A,B);},insertAfter:function(el,A,B){return this.doInsert('afterEnd',el,A,B);},append:function(el,A,B){return this.doInsert('beforeEnd',el,A,B);
@@ -270,8 +270,8 @@ Roo.util.Observable.prototype.un=Roo.util.Observable.prototype.removeListener;Ro
 setTimeout(function(){h.apply(D,E);},o.delay||10);};};Roo.util.Event=function(D,E){this.name=E;this.obj=D;this.listeners=[];};Roo.util.Event.prototype={addListener:function(fn,D,E){var o=E||{};D=D||this.obj;if(!this.isListening(fn,D)){var l={fn:fn,scope:D,options:o}
 ;var h=fn;if(o.delay){h=C(h,o,D);}if(o.single){h=B(h,this,fn,D);}if(o.buffer){h=A(h,o,D);}l.fireFn=h;if(!this.firing){this.listeners.push(l);}else{this.listeners=this.listeners.slice(0);this.listeners.push(l);}}},findListener:function(fn,D){D=D||this.obj;
 var ls=this.listeners;for(var i=0,E=ls.length;i<E;i++){var l=ls[i];if(l.fn==fn&&l.scope==D){return i;}}return -1;},isListening:function(fn,D){return this.findListener(fn,D)!=-1;},removeListener:function(fn,D){var E;if((E=this.findListener(fn,D))!=-1){if(!this.firing){this.listeners.splice(E,1);
-}else{this.listeners=this.listeners.slice(0);this.listeners.splice(E,1);}return true;}return false;},clearListeners:function(){this.listeners=[];},fire:function(){var ls=this.listeners,D,E=ls.length;if(E>0){this.firing=true;var F=Array.prototype.slice.call(arguments,0);
-for(var i=0;i<E;i++){var l=ls[i];if(l.fireFn.apply(l.scope||this.obj||window,arguments)===false){this.firing=false;return false;}}this.firing=false;}return true;}};})();
+}else{this.listeners=this.listeners.slice(0);this.listeners.splice(E,1);}return true;}return false;},clearListeners:function(){this.listeners=[];},fire:function(){var ls=this.listeners,D,E=ls.length;if(E>0){this.firing=true;for(var i=0;i<E;i++){var F=Array.prototype.slice.call(arguments,0);
+var l=ls[i];F.push(l.options);if(l.fireFn.apply(l.scope||this.obj||window,F)===false){this.firing=false;return false;}}this.firing=false;}return true;}};})();
 // Roo/Document.js
 Roo.Document=function(A){this.addEvents({'ready':true});Roo.util.Observable.call(this,A);var B=this;Roo.onReady(function(){B.fireEvent('ready');},null,false);};Roo.extend(Roo.Document,Roo.util.Observable,{});
 // Roo/EventManager.js
@@ -683,62 +683,62 @@ Roo.debug&&Roo.log(C);if(!E.hideProgress&&Roo.MessageBox){Roo.MessageBox.updateP
 
 // Roo/Markdown.js
 Roo.Markdown={};Roo.Markdown.toHtml=function(A){var c=new Roo.Markdown.marked.setOptions({renderer:new Roo.Markdown.marked.Renderer(),gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:true,smartypants:false});A=A.replace(/\\\n/g,' ');
-return Roo.Markdown.marked(A);};(function(){var A={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/}
-;A.bullet=/(?:[*+-]|\d+\.)/;A.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;A.item=replace(A.item,'gm')(/bull/g,A.bullet)();A.list=replace(A.list)(/bull/g,A.bullet)('hr','\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))')('def','\\n+(?='+A.def.source+')')();A.blockquote=replace(A.blockquote)('def',A.def)();
-A._tag='(?!(?:'+'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'+'|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'+'|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';A.html=replace(A.html)('comment',/<!--[\s\S]*?-->/)('closed',/<(tag)[\s\S]+?<\/\1>/)('closing',/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,A._tag)();
-A.paragraph=replace(A.paragraph)('hr',A.hr)('heading',A.heading)('lheading',A.lheading)('blockquote',A.blockquote)('tag','<'+A._tag)('def',A.def)();A.normal=merge({},A);A.gfm=merge({},A.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}
-);A.gfm.paragraph=replace(A.paragraph)('(?!','(?!'+A.gfm.fences.source.replace('\\1','\\2')+'|'+A.list.source.replace('\\1','\\3')+'|')();A.tables=merge({},A.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}
-);function Lexer(C){this.tokens=[];this.tokens.links={};this.options=C||marked.defaults;this.rules=A.normal;if(this.options.gfm){if(this.options.tables){this.rules=A.tables;}else{this.rules=A.gfm;}}}Lexer.rules=A;Lexer.lex=function(C,D){var E=new Lexer(D);
-return E.lex(C);};Lexer.prototype.lex=function(C){C=C.replace(/\r\n|\r/g,'\n').replace(/\t/g,'    ').replace(/\u00a0/g,' ').replace(/\u2424/g,'\n');return this.token(C,true);};Lexer.prototype.token=function(C,D,bq){var C=C.replace(/^ +$/gm,''),E,F,G,H,b,I,J,i,l;
-while(C){if(G=this.rules.newline.exec(C)){C=C.substring(G[0].length);if(G[0].length>1){this.tokens.push({type:'space'});}}if(G=this.rules.code.exec(C)){C=C.substring(G[0].length);G=G[0].replace(/^ {4}/gm,'');this.tokens.push({type:'code',text:!this.options.pedantic?G.replace(/\n+$/,''):G}
-);continue;}if(G=this.rules.fences.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'code',lang:G[2],text:G[3]||''});continue;}if(G=this.rules.heading.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'heading',depth:G[1].length,text:G[2]}
-);continue;}if(D&&(G=this.rules.nptable.exec(C))){C=C.substring(G[0].length);I={type:'table',header:G[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:G[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:G[3].replace(/\n$/,'').split('\n')};for(i=0;i<I.align.length;
-i++){if(/^ *-+: *$/.test(I.align[i])){I.align[i]='right';}else if(/^ *:-+: *$/.test(I.align[i])){I.align[i]='center';}else if(/^ *:-+ *$/.test(I.align[i])){I.align[i]='left';}else{I.align[i]=null;}}for(i=0;i<I.cells.length;i++){I.cells[i]=I.cells[i].split(/ *\| */);
-}this.tokens.push(I);continue;}if(G=this.rules.lheading.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'heading',depth:G[2]==='='?1:2,text:G[1]});continue;}if(G=this.rules.hr.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'hr'});continue;
-}if(G=this.rules.blockquote.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:'blockquote_start'});G=G[0].replace(/^ *> ?/gm,'');this.token(G,D,true);this.tokens.push({type:'blockquote_end'});continue;}if(G=this.rules.list.exec(C)){C=C.substring(G[0].length);
-H=G[2];this.tokens.push({type:'list_start',ordered:H.length>1});G=G[0].match(this.rules.item);E=false;l=G.length;i=0;for(;i<l;i++){I=G[i];J=I.length;I=I.replace(/^ *([*+-]|\d+\.) +/,'');if(~I.indexOf('\n ')){J-=I.length;I=!this.options.pedantic?I.replace(new RegExp('^ {1,'+J+'}','gm'),''):I.replace(/^ {1,4}/gm,'');
-}if(this.options.smartLists&&i!==l-1){b=A.bullet.exec(G[i+1])[0];if(H!==b&&!(H.length>1&&b.length>1)){C=G.slice(i+1).join('\n')+C;i=l-1;}}F=E||/\n\n(?!\s*$)/.test(I);if(i!==l-1){E=I.charAt(I.length-1)==='\n';if(!F){F=E;}}this.tokens.push({type:F?'loose_item_start':'list_item_start'}
-);this.token(I,false,bq);this.tokens.push({type:'list_item_end'});}this.tokens.push({type:'list_end'});continue;}if(G=this.rules.html.exec(C)){C=C.substring(G[0].length);this.tokens.push({type:this.options.sanitize?'paragraph':'html',pre:!this.options.sanitizer&&(G[1]==='pre'||G[1]==='script'||G[1]==='style'),text:G[0]}
-);continue;}if((!bq&&D)&&(G=this.rules.def.exec(C))){C=C.substring(G[0].length);this.tokens.links[G[1].toLowerCase()]={href:G[2],title:G[3]};continue;}if(D&&(G=this.rules.table.exec(C))){C=C.substring(G[0].length);I={type:'table',header:G[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:G[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:G[3].replace(/(?: *\| *)?\n$/,'').split('\n')}
-;for(i=0;i<I.align.length;i++){if(/^ *-+: *$/.test(I.align[i])){I.align[i]='right';}else if(/^ *:-+: *$/.test(I.align[i])){I.align[i]='center';}else if(/^ *:-+ *$/.test(I.align[i])){I.align[i]='left';}else{I.align[i]=null;}}for(i=0;i<I.cells.length;i++){I.cells[i]=I.cells[i].replace(/^ *\| *| *\| *$/g,'').split(/ *\| */);
-}this.tokens.push(I);continue;}if(D&&(G=this.rules.paragraph.exec(C))){C=C.substring(G[0].length);this.tokens.push({type:'paragraph',text:G[1].charAt(G[1].length-1)==='\n'?G[1].slice(0,-1):G[1]});continue;}if(G=this.rules.text.exec(C)){C=C.substring(G[0].length);
-this.tokens.push({type:'text',text:G[0]});continue;}if(C){throw new Error('Infinite loop on byte: '+C.charCodeAt(0));}}return this.tokens;};var B={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/}
-;B._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;B._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;B.link=replace(B.link)('inside',B._inside)('href',B._href)();B.reflink=replace(B.reflink)('inside',B._inside)();B.normal=merge({},B);B.pedantic=merge({}
-,B.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});B.gfm=merge({},B.normal,{escape:replace(B.escape)('])','~|])')(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(B.text)(']|','~]|')('|','|https?://|')()}
-);B.breaks=merge({},B.gfm,{br:replace(B.br)('{2,}','*')(),text:replace(B.gfm.text)('{2,}','*')()});function InlineLexer(C,D){this.options=D||marked.defaults;this.links=C;this.rules=B.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;
-if(!this.links){throw new Error('Tokens array requires a `links` property.');}if(this.options.gfm){if(this.options.breaks){this.rules=B.breaks;}else{this.rules=B.gfm;}}else if(this.options.pedantic){this.rules=B.pedantic;}}InlineLexer.rules=B;InlineLexer.output=function(C,D,E){var F=new InlineLexer(D,E);
-return F.output(C);};InlineLexer.prototype.output=function(C){var D='',E,F,G,H;while(C){if(H=this.rules.escape.exec(C)){C=C.substring(H[0].length);D+=H[1];continue;}if(H=this.rules.autolink.exec(C)){C=C.substring(H[0].length);if(H[2]==='@'){F=H[1].charAt(6)===':'?this.mangle(H[1].substring(7)):this.mangle(H[1]);
-G=this.mangle('mailto:')+F;}else{F=escape(H[1]);G=F;}D+=this.renderer.link(G,null,F);continue;}if(!this.inLink&&(H=this.rules.url.exec(C))){C=C.substring(H[0].length);F=escape(H[1]);G=F;D+=this.renderer.link(G,null,F);continue;}if(H=this.rules.tag.exec(C)){if(!this.inLink&&/^<a /i.test(H[0])){this.inLink=true;
-}else if(this.inLink&&/^<\/a>/i.test(H[0])){this.inLink=false;}C=C.substring(H[0].length);D+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(H[0]):escape(H[0]):H[0];continue;}if(H=this.rules.link.exec(C)){C=C.substring(H[0].length);this.inLink=true;
-D+=this.outputLink(H,{href:H[2],title:H[3]});this.inLink=false;continue;}if((H=this.rules.reflink.exec(C))||(H=this.rules.nolink.exec(C))){C=C.substring(H[0].length);E=(H[2]||H[1]).replace(/\s+/g,' ');E=this.links[E.toLowerCase()];if(!E||!E.href){D+=H[0].charAt(0);
-C=H[0].substring(1)+C;continue;}this.inLink=true;D+=this.outputLink(H,E);this.inLink=false;continue;}if(H=this.rules.strong.exec(C)){C=C.substring(H[0].length);D+=this.renderer.strong(this.output(H[2]||H[1]));continue;}if(H=this.rules.em.exec(C)){C=C.substring(H[0].length);
-D+=this.renderer.em(this.output(H[2]||H[1]));continue;}if(H=this.rules.code.exec(C)){C=C.substring(H[0].length);D+=this.renderer.codespan(escape(H[2],true));continue;}if(H=this.rules.br.exec(C)){C=C.substring(H[0].length);D+=this.renderer.br();continue;}if(H=this.rules.del.exec(C)){C=C.substring(H[0].length);
-D+=this.renderer.del(this.output(H[1]));continue;}if(H=this.rules.text.exec(C)){C=C.substring(H[0].length);D+=this.renderer.text(escape(this.smartypants(H[0])));continue;}if(C){throw new Error('Infinite loop on byte: '+C.charCodeAt(0));}}return D;};InlineLexer.prototype.outputLink=function(C,D){var E=escape(D.href),F=D.title?escape(D.title):null;
-return C[0].charAt(0)!=='!'?this.renderer.link(E,F,this.output(C[1])):this.renderer.image(E,F,escape(C[1]));};InlineLexer.prototype.smartypants=function(C){if(!this.options.smartypants){return C;}return C.replace(/---/g,'\u2014').replace(/--/g,'\u2013').replace(/(^|[-\u2014/(\[{"\s])'/g,'$1\u2018').replace(/'/g,'\u2019').replace(/(^|[-\u2014/(\[{\u2018\s])"/g,'$1\u201c').replace(/"/g,'\u201d').replace(/\.{3}/g,'\u2026');
-};InlineLexer.prototype.mangle=function(C){if(!this.options.mangle){return C;}var D='',l=C.length,i=0,ch;for(;i<l;i++){ch=C.charCodeAt(i);if(Math.random()>0.5){ch='x'+ch.toString(16);}D+='&#'+ch+';';}return D;};function Renderer(C){this.options=C||{};}Renderer.prototype.code=function(C,D,E){if(this.options.highlight){var F=this.options.highlight(C,D);
-if(F!=null&&F!==C){E=true;C=F;}}else{E=true;}if(!D){return '<pre><code>'+(E?C:escape(C,true))+'\n</code></pre>';}return '<pre><code class="'+this.options.langPrefix+escape(D,true)+'">'+(E?C:escape(C,true))+'\n</code></pre>\n';};Renderer.prototype.blockquote=function(C){return '<blockquote>\n'+C+'</blockquote>\n';
-};Renderer.prototype.html=function(C){return C;};Renderer.prototype.heading=function(C,D,E){return '<h'+D+' id="'+this.options.headerPrefix+E.toLowerCase().replace(/[^\w]+/g,'-')+'">'+C+'</h'+D+'>\n';};Renderer.prototype.hr=function(){return this.options.xhtml?'<hr/>\n':'<hr>\n';
-};Renderer.prototype.list=function(C,D){var E=D?'ol':'ul';return '<'+E+'>\n'+C+'</'+E+'>\n';};Renderer.prototype.listitem=function(C){return '<li>'+C+'</li>\n';};Renderer.prototype.paragraph=function(C){return '<p>'+C+'</p>\n';};Renderer.prototype.table=function(C,D){return '<table class="table table-striped">\n'+'<thead>\n'+C+'</thead>\n'+'<tbody>\n'+D+'</tbody>\n'+'</table>\n';
-};Renderer.prototype.tablerow=function(C){return '<tr>\n'+C+'</tr>\n';};Renderer.prototype.tablecell=function(C,D){var E=D.header?'th':'td';var F=D.align?'<'+E+' style="text-align:'+D.align+'">':'<'+E+'>';return F+C+'</'+E+'>\n';};Renderer.prototype.strong=function(C){return '<strong>'+C+'</strong>';
-};Renderer.prototype.em=function(C){return '<em>'+C+'</em>';};Renderer.prototype.codespan=function(C){return '<code>'+C+'</code>';};Renderer.prototype.br=function(){return this.options.xhtml?'<br/>':'<br>';};Renderer.prototype.del=function(C){return '<del>'+C+'</del>';
-};Renderer.prototype.link=function(C,D,E){if(this.options.sanitize){try{var F=decodeURIComponent(unescape(C)).replace(/[^\w:]/g,'').toLowerCase();}catch(e){return '';}if(F.indexOf('javascript:')===0||F.indexOf('vbscript:')===0){return '';}}var G='<a href="'+C+'"';
-if(D){G+=' title="'+D+'"';}G+='>'+E+'</a>';return G;};Renderer.prototype.image=function(C,D,E){var F='<img src="'+C+'" alt="'+E+'"';if(D){F+=' title="'+D+'"';}F+=this.options.xhtml?'/>':'>';return F;};Renderer.prototype.text=function(C){return C;};function Parser(C){this.tokens=[];
-this.token=null;this.options=C||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options;}Parser.parse=function(C,D,E){var F=new Parser(D,E);return F.parse(C);};Parser.prototype.parse=function(C){this.inline=new InlineLexer(C.links,this.options,this.renderer);
-this.tokens=C.reverse();var D='';while(this.next()){D+=this.tok();}return D;};Parser.prototype.next=function(){return this.token=this.tokens.pop();};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0;};Parser.prototype.parseText=function(){var C=this.token.text;
-while(this.peek().type==='text'){C+='\n'+this.next().text;}return this.inline.output(C);};Parser.prototype.tok=function(){switch(this.token.type){case 'space':{return '';}case 'hr':{return this.renderer.hr();}case 'heading':{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);
-}case 'code':{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);}case 'table':{var C='',D='',i,E,F,G,j;F='';for(i=0;i<this.token.header.length;i++){G={header:true,align:this.token.align[i]};F+=this.renderer.tablecell(this.inline.output(this.token.header[i]),{header:true,align:this.token.align[i]}
-);}C+=this.renderer.tablerow(F);for(i=0;i<this.token.cells.length;i++){E=this.token.cells[i];F='';for(j=0;j<E.length;j++){F+=this.renderer.tablecell(this.inline.output(E[j]),{header:false,align:this.token.align[j]});}D+=this.renderer.tablerow(F);}return this.renderer.table(C,D);
-}case 'blockquote_start':{var D='';while(this.next().type!=='blockquote_end'){D+=this.tok();}return this.renderer.blockquote(D);}case 'list_start':{var D='',H=this.token.ordered;while(this.next().type!=='list_end'){D+=this.tok();}return this.renderer.list(D,H);
-}case 'list_item_start':{var D='';while(this.next().type!=='list_item_end'){D+=this.token.type==='text'?this.parseText():this.tok();}return this.renderer.listitem(D);}case 'loose_item_start':{var D='';while(this.next().type!=='list_item_end'){D+=this.tok();
-}return this.renderer.listitem(D);}case 'html':{var I=!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;return this.renderer.html(I);}case 'paragraph':{return this.renderer.paragraph(this.inline.output(this.token.text));
-}case 'text':{return this.renderer.paragraph(this.parseText());}}};function escape(C,D){return C.replace(!D?/&(?!#?\w+;)/g:/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');}function unescape(C){return C.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g,function(_,n){n=n.toLowerCase();
-if(n==='colon'){return ':';}if(n.charAt(0)==='#'){return n.charAt(1)==='x'?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1));}return '';});}function replace(C,D){C=C.source;D=D||'';return function E(F,G){if(!F){return new RegExp(C,D);
-}G=G.source||G;G=G.replace(/(^|[^\[])\^/g,'$1');C=C.replace(F,G);return E;};}function noop(){}noop.exec=noop;function merge(C){var i=1,D,E;for(;i<arguments.length;i++){D=arguments[i];for(E in D){if(Object.prototype.hasOwnProperty.call(D,E)){C[E]=D[E];}}}return C;
-}function marked(C,D,E){if(E||typeof D==='function'){if(!E){E=D;D=null;}D=merge({},marked.defaults,D||{});var F=D.highlight,G,H,i=0;try{G=Lexer.lex(C,D)}catch(e){return E(e);}H=G.length;var I=function(J){if(J){D.highlight=F;return E(J);}var K;try{K=Parser.parse(G,D);
-}catch(e){J=e;}D.highlight=F;return J?E(J):E(null,K);};if(!F||F.length<3){return I();}delete D.highlight;if(!H){return I();}for(;i<G.length;i++){(function(J){if(J.type!=='code'){return --H||I();}return F(J.text,J.lang,function(K,L){if(K){return I(K);}if(L==null||L===J.text){return --H||I();
-}J.text=L;J.escaped=true;--H||I();});})(G[i]);}return;}try{if(D){D=merge({},marked.defaults,D);}return Parser.parse(Lexer.lex(C,D),D);}catch(e){e.message+='\nPlease report this to https://github.com/chjj/marked.';if((D||marked.defaults).silent){return '<p>An error occured:</p><pre>'+escape(e.message+'',true)+'</pre>';
-}throw e;}}marked.options=marked.setOptions=function(C){merge(marked.defaults,C);return marked;};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:'lang-',smartypants:false,headerPrefix:'',renderer:new Renderer,xhtml:false}
-;marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;Roo.Markdown.marked=marked;})();
+return Roo.Markdown.marked(A);};(function(){var A=function(I,J){return I.replace(!J?/&(?!#?\w+;)/g:/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');};var unescape=function(I){return I.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g,function(_,n){n=n.toLowerCase();
+if(n==='colon'){return ':';}if(n.charAt(0)==='#'){return n.charAt(1)==='x'?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1));}return '';});};var replace=function(I,J){I=I.source;J=J||'';return function K(L,M){if(!L){return new RegExp(I,J);
+}M=M.source||M;M=M.replace(/(^|[^\[])\^/g,'$1');I=I.replace(L,M);return K;};};var noop=function(){};noop.exec=noop;var B=function(I){var i=1,J,K;for(;i<arguments.length;i++){J=arguments[i];for(K in J){if(Object.prototype.hasOwnProperty.call(J,K)){I[K]=J[K];
+}}}return I;};var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/}
+;block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,'gm')(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)('hr','\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))')('def','\\n+(?='+block.def.source+')')();
+block.blockquote=replace(block.blockquote)('def',block.def)();block._tag='(?!(?:'+'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'+'|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'+'|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';block.html=replace(block.html)('comment',/<!--[\s\S]*?-->/)('closed',/<(tag)[\s\S]+?<\/\1>/)('closing',/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)();
+block.paragraph=replace(block.paragraph)('hr',block.hr)('heading',block.heading)('lheading',block.lheading)('blockquote',block.blockquote)('tag','<'+block._tag)('def',block.def)();block.normal=B({},block);block.gfm=B({},block.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}
+);block.gfm.paragraph=replace(block.paragraph)('(?!','(?!'+block.gfm.fences.source.replace('\\1','\\2')+'|'+block.list.source.replace('\\1','\\3')+'|')();block.tables=B({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}
+);var C=function(I){this.tokens=[];this.tokens.links={};this.options=I||H.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables;}else{this.rules=block.gfm;}}};C.rules=block;C.lex=function(I,J){var K=new C(J);
+return K.lex(I);};C.prototype.lex=function(I){I=I.replace(/\r\n|\r/g,'\n').replace(/\t/g,'    ').replace(/\u00a0/g,' ').replace(/\u2424/g,'\n');return this.token(I,true);};C.prototype.token=function(I,J,bq){var I=I.replace(/^ +$/gm,''),K,L,M,N,b,O,P,i,l;while(I){if(M=this.rules.newline.exec(I)){I=I.substring(M[0].length);
+if(M[0].length>1){this.tokens.push({type:'space'});}}if(M=this.rules.code.exec(I)){I=I.substring(M[0].length);M=M[0].replace(/^ {4}/gm,'');this.tokens.push({type:'code',text:!this.options.pedantic?M.replace(/\n+$/,''):M});continue;}if(M=this.rules.fences.exec(I)){I=I.substring(M[0].length);
+this.tokens.push({type:'code',lang:M[2],text:M[3]||''});continue;}if(M=this.rules.heading.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:'heading',depth:M[1].length,text:M[2]});continue;}if(J&&(M=this.rules.nptable.exec(I))){I=I.substring(M[0].length);
+O={type:'table',header:M[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:M[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:M[3].replace(/\n$/,'').split('\n')};for(i=0;i<O.align.length;i++){if(/^ *-+: *$/.test(O.align[i])){O.align[i]='right';}else if(/^ *:-+: *$/.test(O.align[i])){O.align[i]='center';
+}else if(/^ *:-+ *$/.test(O.align[i])){O.align[i]='left';}else{O.align[i]=null;}}for(i=0;i<O.cells.length;i++){O.cells[i]=O.cells[i].split(/ *\| */);}this.tokens.push(O);continue;}if(M=this.rules.lheading.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:'heading',depth:M[2]==='='?1:2,text:M[1]}
+);continue;}if(M=this.rules.hr.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:'hr'});continue;}if(M=this.rules.blockquote.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:'blockquote_start'});M=M[0].replace(/^ *> ?/gm,'');this.token(M,J,true);
+this.tokens.push({type:'blockquote_end'});continue;}if(M=this.rules.list.exec(I)){I=I.substring(M[0].length);N=M[2];this.tokens.push({type:'list_start',ordered:N.length>1});M=M[0].match(this.rules.item);K=false;l=M.length;i=0;for(;i<l;i++){O=M[i];P=O.length;
+O=O.replace(/^ *([*+-]|\d+\.) +/,'');if(~O.indexOf('\n ')){P-=O.length;O=!this.options.pedantic?O.replace(new RegExp('^ {1,'+P+'}','gm'),''):O.replace(/^ {1,4}/gm,'');}if(this.options.smartLists&&i!==l-1){b=block.bullet.exec(M[i+1])[0];if(N!==b&&!(N.length>1&&b.length>1)){I=M.slice(i+1).join('\n')+I;
+i=l-1;}}L=K||/\n\n(?!\s*$)/.test(O);if(i!==l-1){K=O.charAt(O.length-1)==='\n';if(!L){L=K;}}this.tokens.push({type:L?'loose_item_start':'list_item_start'});this.token(O,false,bq);this.tokens.push({type:'list_item_end'});}this.tokens.push({type:'list_end'});
+continue;}if(M=this.rules.html.exec(I)){I=I.substring(M[0].length);this.tokens.push({type:this.options.sanitize?'paragraph':'html',pre:!this.options.sanitizer&&(M[1]==='pre'||M[1]==='script'||M[1]==='style'),text:M[0]});continue;}if((!bq&&J)&&(M=this.rules.def.exec(I))){I=I.substring(M[0].length);
+this.tokens.links[M[1].toLowerCase()]={href:M[2],title:M[3]};continue;}if(J&&(M=this.rules.table.exec(I))){I=I.substring(M[0].length);O={type:'table',header:M[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:M[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:M[3].replace(/(?: *\| *)?\n$/,'').split('\n')}
+;for(i=0;i<O.align.length;i++){if(/^ *-+: *$/.test(O.align[i])){O.align[i]='right';}else if(/^ *:-+: *$/.test(O.align[i])){O.align[i]='center';}else if(/^ *:-+ *$/.test(O.align[i])){O.align[i]='left';}else{O.align[i]=null;}}for(i=0;i<O.cells.length;i++){O.cells[i]=O.cells[i].replace(/^ *\| *| *\| *$/g,'').split(/ *\| */);
+}this.tokens.push(O);continue;}if(J&&(M=this.rules.paragraph.exec(I))){I=I.substring(M[0].length);this.tokens.push({type:'paragraph',text:M[1].charAt(M[1].length-1)==='\n'?M[1].slice(0,-1):M[1]});continue;}if(M=this.rules.text.exec(I)){I=I.substring(M[0].length);
+this.tokens.push({type:'text',text:M[0]});continue;}if(I){throw new Error('Infinite loop on byte: '+I.charCodeAt(0));}}return this.tokens;};var D={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/}
+;D._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;D._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;D.link=replace(D.link)('inside',D._inside)('href',D._href)();D.reflink=replace(D.reflink)('inside',D._inside)();D.normal=B({},D);D.pedantic=B({},D.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}
+);D.gfm=B({},D.normal,{escape:replace(D.escape)('])','~|])')(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(D.text)(']|','~]|')('|','|https?://|')()});D.breaks=B({},D.gfm,{br:replace(D.br)('{2,}','*')(),text:replace(D.gfm.text)('{2,}','*')()}
+);var E=function(I,J){this.options=J||H.defaults;this.links=I;this.rules=D.normal;this.renderer=this.options.renderer||new F;this.renderer.options=this.options;if(!this.links){throw new Error('Tokens array requires a `links` property.');}if(this.options.gfm){if(this.options.breaks){this.rules=D.breaks;
+}else{this.rules=D.gfm;}}else if(this.options.pedantic){this.rules=D.pedantic;}};E.rules=D;E.output=function(I,J,K){var L=new E(J,K);return L.output(I);};E.prototype.output=function(I){var J='',K,L,M,N;while(I){if(N=this.rules.escape.exec(I)){I=I.substring(N[0].length);
+J+=N[1];continue;}if(N=this.rules.autolink.exec(I)){I=I.substring(N[0].length);if(N[2]==='@'){L=N[1].charAt(6)===':'?this.mangle(N[1].substring(7)):this.mangle(N[1]);M=this.mangle('mailto:')+L;}else{L=A(N[1]);M=L;}J+=this.renderer.link(M,null,L);continue;
+}if(!this.inLink&&(N=this.rules.url.exec(I))){I=I.substring(N[0].length);L=A(N[1]);M=L;J+=this.renderer.link(M,null,L);continue;}if(N=this.rules.tag.exec(I)){if(!this.inLink&&/^<a /i.test(N[0])){this.inLink=true;}else if(this.inLink&&/^<\/a>/i.test(N[0])){this.inLink=false;
+}I=I.substring(N[0].length);J+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(N[0]):A(N[0]):N[0];continue;}if(N=this.rules.link.exec(I)){I=I.substring(N[0].length);this.inLink=true;J+=this.outputLink(N,{href:N[2],title:N[3]});this.inLink=false;
+continue;}if((N=this.rules.reflink.exec(I))||(N=this.rules.nolink.exec(I))){I=I.substring(N[0].length);K=(N[2]||N[1]).replace(/\s+/g,' ');K=this.links[K.toLowerCase()];if(!K||!K.href){J+=N[0].charAt(0);I=N[0].substring(1)+I;continue;}this.inLink=true;J+=this.outputLink(N,K);
+this.inLink=false;continue;}if(N=this.rules.strong.exec(I)){I=I.substring(N[0].length);J+=this.renderer.strong(this.output(N[2]||N[1]));continue;}if(N=this.rules.em.exec(I)){I=I.substring(N[0].length);J+=this.renderer.em(this.output(N[2]||N[1]));continue;
+}if(N=this.rules.code.exec(I)){I=I.substring(N[0].length);J+=this.renderer.codespan(A(N[2],true));continue;}if(N=this.rules.br.exec(I)){I=I.substring(N[0].length);J+=this.renderer.br();continue;}if(N=this.rules.del.exec(I)){I=I.substring(N[0].length);J+=this.renderer.del(this.output(N[1]));
+continue;}if(N=this.rules.text.exec(I)){I=I.substring(N[0].length);J+=this.renderer.text(A(this.smartypants(N[0])));continue;}if(I){throw new Error('Infinite loop on byte: '+I.charCodeAt(0));}}return J;};E.prototype.outputLink=function(I,J){var K=A(J.href),L=J.title?A(J.title):null;
+return I[0].charAt(0)!=='!'?this.renderer.link(K,L,this.output(I[1])):this.renderer.image(K,L,A(I[1]));};E.prototype.smartypants=function(I){if(!this.options.smartypants){return I;}return I.replace(/---/g,'\u2014').replace(/--/g,'\u2013').replace(/(^|[-\u2014/(\[{"\s])'/g,'$1\u2018').replace(/'/g,'\u2019').replace(/(^|[-\u2014/(\[{\u2018\s])"/g,'$1\u201c').replace(/"/g,'\u201d').replace(/\.{3}/g,'\u2026');
+};E.prototype.mangle=function(I){if(!this.options.mangle){return I;}var J='',l=I.length,i=0,ch;for(;i<l;i++){ch=I.charCodeAt(i);if(Math.random()>0.5){ch='x'+ch.toString(16);}J+='&#'+ch+';';}return J;};var F=function(I){this.options=I||{};};F.prototype.code=function(I,J,K){if(this.options.highlight){var L=this.options.highlight(I,J);
+if(L!=null&&L!==I){K=true;I=L;}}else{K=true;}if(!J){return '<pre><code>'+(K?I:A(I,true))+'\n</code></pre>';}return '<pre><code class="'+this.options.langPrefix+A(J,true)+'">'+(K?I:A(I,true))+'\n</code></pre>\n';};F.prototype.blockquote=function(I){return '<blockquote>\n'+I+'</blockquote>\n';
+};F.prototype.html=function(I){return I;};F.prototype.heading=function(I,J,K){return '<h'+J+' id="'+this.options.headerPrefix+K.toLowerCase().replace(/[^\w]+/g,'-')+'">'+I+'</h'+J+'>\n';};F.prototype.hr=function(){return this.options.xhtml?'<hr/>\n':'<hr>\n';
+};F.prototype.list=function(I,J){var K=J?'ol':'ul';return '<'+K+'>\n'+I+'</'+K+'>\n';};F.prototype.listitem=function(I){return '<li>'+I+'</li>\n';};F.prototype.paragraph=function(I){return '<p>'+I+'</p>\n';};F.prototype.table=function(I,J){return '<table class="table table-striped">\n'+'<thead>\n'+I+'</thead>\n'+'<tbody>\n'+J+'</tbody>\n'+'</table>\n';
+};F.prototype.tablerow=function(I){return '<tr>\n'+I+'</tr>\n';};F.prototype.tablecell=function(I,J){var K=J.header?'th':'td';var L=J.align?'<'+K+' style="text-align:'+J.align+'">':'<'+K+'>';return L+I+'</'+K+'>\n';};F.prototype.strong=function(I){return '<strong>'+I+'</strong>';
+};F.prototype.em=function(I){return '<em>'+I+'</em>';};F.prototype.codespan=function(I){return '<code>'+I+'</code>';};F.prototype.br=function(){return this.options.xhtml?'<br/>':'<br>';};F.prototype.del=function(I){return '<del>'+I+'</del>';};F.prototype.link=function(I,J,K){if(this.options.sanitize){try{var L=decodeURIComponent(unescape(I)).replace(/[^\w:]/g,'').toLowerCase();
+}catch(e){return '';}if(L.indexOf('javascript:')===0||L.indexOf('vbscript:')===0){return '';}}var M='<a href="'+I+'"';if(J){M+=' title="'+J+'"';}M+='>'+K+'</a>';return M;};F.prototype.image=function(I,J,K){var L='<img src="'+I+'" alt="'+K+'"';if(J){L+=' title="'+J+'"';
+}L+=this.options.xhtml?'/>':'>';return L;};F.prototype.text=function(I){return I;};var G=function(I){this.tokens=[];this.token=null;this.options=I||H.defaults;this.options.renderer=this.options.renderer||new F;this.renderer=this.options.renderer;this.renderer.options=this.options;
+};G.parse=function(I,J,K){var L=new G(J,K);return L.parse(I);};G.prototype.parse=function(I){this.inline=new E(I.links,this.options,this.renderer);this.tokens=I.reverse();var J='';while(this.next()){J+=this.tok();}return J;};G.prototype.next=function(){return this.token=this.tokens.pop();
+};G.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0;};G.prototype.parseText=function(){var I=this.token.text;while(this.peek().type==='text'){I+='\n'+this.next().text;}return this.inline.output(I);};G.prototype.tok=function(){switch(this.token.type){case 'space':{return '';
+}case 'hr':{return this.renderer.hr();}case 'heading':{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);}case 'code':{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);}case 'table':{var I='',J='',i,K,L,M,j;
+L='';for(i=0;i<this.token.header.length;i++){M={header:true,align:this.token.align[i]};L+=this.renderer.tablecell(this.inline.output(this.token.header[i]),{header:true,align:this.token.align[i]});}I+=this.renderer.tablerow(L);for(i=0;i<this.token.cells.length;
+i++){K=this.token.cells[i];L='';for(j=0;j<K.length;j++){L+=this.renderer.tablecell(this.inline.output(K[j]),{header:false,align:this.token.align[j]});}J+=this.renderer.tablerow(L);}return this.renderer.table(I,J);}case 'blockquote_start':{var J='';while(this.next().type!=='blockquote_end'){J+=this.tok();
+}return this.renderer.blockquote(J);}case 'list_start':{var J='',N=this.token.ordered;while(this.next().type!=='list_end'){J+=this.tok();}return this.renderer.list(J,N);}case 'list_item_start':{var J='';while(this.next().type!=='list_item_end'){J+=this.token.type==='text'?this.parseText():this.tok();
+}return this.renderer.listitem(J);}case 'loose_item_start':{var J='';while(this.next().type!=='list_item_end'){J+=this.tok();}return this.renderer.listitem(J);}case 'html':{var O=!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;
+return this.renderer.html(O);}case 'paragraph':{return this.renderer.paragraph(this.inline.output(this.token.text));}case 'text':{return this.renderer.paragraph(this.parseText());}}};var H=function(I,J,K){if(K||typeof J==='function'){if(!K){K=J;J=null;}J=B({}
+,H.defaults,J||{});var L=J.highlight,M,N,i=0;try{M=C.lex(I,J)}catch(e){return K(e);}N=M.length;var O=function(P){if(P){J.highlight=L;return K(P);}var Q;try{Q=G.parse(M,J);}catch(e){P=e;}J.highlight=L;return P?K(P):K(null,Q);};if(!L||L.length<3){return O();
+}delete J.highlight;if(!N){return O();}for(;i<M.length;i++){(function(P){if(P.type!=='code'){return --N||O();}return L(P.text,P.lang,function(Q,R){if(Q){return O(Q);}if(R==null||R===P.text){return --N||O();}P.text=R;P.escaped=true;--N||O();});})(M[i]);}return;
+}try{if(J){J=B({},H.defaults,J);}return G.parse(C.lex(I,J),J);}catch(e){e.message+='\nPlease report this to https://github.com/chjj/marked.';if((J||H.defaults).silent){return '<p>An error occured:</p><pre>'+A(e.message+'',true)+'</pre>';}throw e;}};H.options=H.setOptions=function(I){B(H.defaults,I);
+return H;};H.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:'lang-',smartypants:false,headerPrefix:'',renderer:new F,xhtml:false};H.Parser=G;H.parser=G.parse;
+H.Renderer=F;H.Lexer=C;H.lexer=C.lex;H.InlineLexer=E;H.inlineLexer=E.output;H.parse=H;Roo.Markdown.marked=H;})();
 // Roo/dd/DragDrop.js
 (function(){var A=Roo.EventManager;var B=Roo.lib.Dom;Roo.dd.DragDrop=function(id,C,D){if(id){this.init(id,C,D);}};Roo.extend(Roo.dd.DragDrop,Roo.util.Observable,{id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;
 },unlock:function(){this.locked=false;},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(x,y){}
@@ -816,7 +816,7 @@ Roo.fly(this.getDragEl()).setSize(el.offsetWidth,el.offsetHeight);}},b4MouseDown
 },endDrag:function(e){var A=this.getEl();var B=this.getDragEl();B.style.visibility="";this.beforeMove();A.style.visibility="hidden";Roo.dd.DDM.moveToEl(A,B);B.style.visibility="hidden";A.style.visibility="";this.afterDrag();},beforeMove:function(){},afterDrag:function(){}
 ,toString:function(){return ("DDProxy "+this.id);}});
 // Roo/dd/DDTarget.js
-Roo.dd.DDTarget=function(id,A,B){if(id){this.initTarget(id,A,B);}if(B.listeners||B.events){Roo.dd.DragDrop.superclass.constructor.call(this,{listeners:B.listeners||{},events:B.events||{}});}};Roo.extend(Roo.dd.DDTarget,Roo.dd.DragDrop,{toString:function(){return ("DDTarget "+this.id);
+Roo.dd.DDTarget=function(id,A,B){if(id){this.initTarget(id,A,B);}if(B&&(B.listeners||B.events)){Roo.dd.DragDrop.superclass.constructor.call(this,{listeners:B.listeners||{},events:B.events||{}});}};Roo.extend(Roo.dd.DDTarget,Roo.dd.DragDrop,{toString:function(){return ("DDTarget "+this.id);
 }});
 // Roo/dd/ScrollManager.js
 Roo.dd.ScrollManager=function(){var A=Roo.dd.DragDropMgr;var B={};var C=null;var D={};var E=function(e){C=null;H();};var F=function(){if(A.dragCurrent){A.refreshCache(A.dragCurrent.groups);}};var G=function(){if(A.dragCurrent){var K=Roo.dd.ScrollManager;if(!K.animate){if(D.el.scroll(D.dir,K.increment)){F();
index 92d9e76..c7270b5 100644 (file)
@@ -4667,6 +4667,7 @@ Roo.Template.prototype = {
      * @return {String} The HTML fragment
      */
     applyTemplate : function(values){
+        Roo.log(["applyTemplate", values]);
         try {
            
             if(this.compiled){
@@ -6073,10 +6074,12 @@ Roo.util.Observable.releaseCapture = function(o){
             var ls = this.listeners, scope, len = ls.length;
             if(len > 0){
                 this.firing = true;
-                var args = Array.prototype.slice.call(arguments, 0);
+                
                 for(var i = 0; i < len; i++){
-                    var l = ls[i];
-                    if(l.fireFn.apply(l.scope||this.obj||window, arguments) === false){
+                   var args = Array.prototype.slice.call(arguments, 0);
+                   var l = ls[i];
+                   args.push(l.options);
+                    if(l.fireFn.apply(l.scope||this.obj||window, args) === false){
                         this.firing = false;
                         return false;
                     }
@@ -16802,10 +16805,86 @@ Roo.Markdown.toHtml = function(text) {
 //
 (function() {
     
+     /**
+         * eval:var:escape
+         * eval:var:unescape
+         * eval:var:replace
+         */
+      
+    /**
+     * Helpers
+     */
+    
+    var escape = function (html, encode) {
+      return html
+        .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
+        .replace(/</g, '&lt;')
+        .replace(/>/g, '&gt;')
+        .replace(/"/g, '&quot;')
+        .replace(/'/g, '&#39;');
+    }
+    
+    var unescape = function (html) {
+        // explicitly match decimal, hex, and named HTML entities 
+      return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, function(_, n) {
+        n = n.toLowerCase();
+        if (n === 'colon') { return ':'; }
+        if (n.charAt(0) === '#') {
+          return n.charAt(1) === 'x'
+            ? String.fromCharCode(parseInt(n.substring(2), 16))
+            : String.fromCharCode(+n.substring(1));
+        }
+        return '';
+      });
+    }
+    
+    var replace = function (regex, opt) {
+      regex = regex.source;
+      opt = opt || '';
+      return function self(name, val) {
+        if (!name) { return new RegExp(regex, opt); }
+        val = val.source || val;
+        val = val.replace(/(^|[^\[])\^/g, '$1');
+        regex = regex.replace(name, val);
+        return self;
+      };
+    }
+
+
+         /**
+         * eval:var:noop
+    */
+    var noop = function () {}
+    noop.exec = noop;
+    
+         /**
+         * eval:var:merge
+    */
+    var merge = function (obj) {
+      var i = 1
+        , target
+        , key;
+    
+      for (; i < arguments.length; i++) {
+        target = arguments[i];
+        for (key in target) {
+          if (Object.prototype.hasOwnProperty.call(target, key)) {
+            obj[key] = target[key];
+          }
+        }
+      }
+    
+      return obj;
+    }
+    
+    
     /**
      * Block-Level Grammar
      */
     
+    
+    
+    
     var block = {
       newline: /^\n+/,
       code: /^( {4}[^\n]+\n*)+/,
@@ -16895,7 +16974,7 @@ Roo.Markdown.toHtml = function(text) {
      * Block Lexer
      */
     
-    function Lexer(options) {
+    var Lexer = function (options) {
       this.tokens = [];
       this.tokens.links = {};
       this.options = options || marked.defaults;
@@ -17313,7 +17392,7 @@ Roo.Markdown.toHtml = function(text) {
      * Inline Lexer & Compiler
      */
     
-    function InlineLexer(links, options) {
+    var InlineLexer  = function (links, options) {
       this.options = options || marked.defaults;
       this.links = links;
       this.rules = inline.normal;
@@ -17553,7 +17632,11 @@ Roo.Markdown.toHtml = function(text) {
      * Renderer
      */
     
-    function Renderer(options) {
+     /**
+         * eval:var:Renderer
+    */
+    
+    var Renderer   = function (options) {
       this.options = options || {};
     }
     
@@ -17702,8 +17785,11 @@ Roo.Markdown.toHtml = function(text) {
     /**
      * Parsing & Compiling
      */
+         /**
+         * eval:var:Parser
+    */
     
-    function Parser(options) {
+    var Parser= function (options) {
       this.tokens = [];
       this.token = null;
       this.options = options || marked.defaults;
@@ -17878,72 +17964,15 @@ Roo.Markdown.toHtml = function(text) {
         }
       }
     };
-    
-    /**
-     * Helpers
-     */
-    
-    function escape(html, encode) {
-      return html
-        .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
-        .replace(/</g, '&lt;')
-        .replace(/>/g, '&gt;')
-        .replace(/"/g, '&quot;')
-        .replace(/'/g, '&#39;');
-    }
-    
-    function unescape(html) {
-        // explicitly match decimal, hex, and named HTML entities 
-      return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, function(_, n) {
-        n = n.toLowerCase();
-        if (n === 'colon') { return ':'; }
-        if (n.charAt(0) === '#') {
-          return n.charAt(1) === 'x'
-            ? String.fromCharCode(parseInt(n.substring(2), 16))
-            : String.fromCharCode(+n.substring(1));
-        }
-        return '';
-      });
-    }
-    
-    function replace(regex, opt) {
-      regex = regex.source;
-      opt = opt || '';
-      return function self(name, val) {
-        if (!name) { return new RegExp(regex, opt); }
-        val = val.source || val;
-        val = val.replace(/(^|[^\[])\^/g, '$1');
-        regex = regex.replace(name, val);
-        return self;
-      };
-    }
-    
-    function noop() {}
-    noop.exec = noop;
-    
-    function merge(obj) {
-      var i = 1
-        , target
-        , key;
-    
-      for (; i < arguments.length; i++) {
-        target = arguments[i];
-        for (key in target) {
-          if (Object.prototype.hasOwnProperty.call(target, key)) {
-            obj[key] = target[key];
-          }
-        }
-      }
-    
-      return obj;
-    }
-    
+  
     
     /**
      * Marked
      */
-    
-    function marked(src, opt, callback) {
+         /**
+         * eval:var:marked
+    */
+    var marked = function (src, opt, callback) {
       if (callback || typeof opt === 'function') {
         if (!callback) {
           callback = opt;
@@ -17964,7 +17993,9 @@ Roo.Markdown.toHtml = function(text) {
         }
     
         pending = tokens.length;
-    
+         /**
+         * eval:var:done
+    */
         var done = function(err) {
           if (err) {
             opt.highlight = highlight;
@@ -21097,8 +21128,8 @@ Roo.dd.DDTarget = function(id, sGroup, config) {
     if (id) {
         this.initTarget(id, sGroup, config);
     }
-    if (config.listeners || config.events) { 
-       Roo.dd.DragDrop.superclass.constructor.call(this,  { 
+    if (config && (config.listeners || config.events)) { 
+        Roo.dd.DragDrop.superclass.constructor.call(this,  { 
             listeners : config.listeners || {}, 
             events : config.events || {} 
         });    
@@ -23237,6 +23268,16 @@ Roo.extend(Roo.data.Store, Roo.util.Observable, {
         var r = this.reader.readRecords(o);
         this.loadRecords(r, {add: append}, true);
     },
+    
+     /**
+     * using 'cn' the nested child reader read the child array into it's child stores.
+     * @param {Object} rec The record with a 'children array
+     */
+    loadDataFromChildren : function(rec)
+    {
+        this.loadData(this.reader.toLoadData(rec));
+    },
+    
 
     /**
      * Gets the number of cached records.
@@ -23541,14 +23582,16 @@ Roo.extend(Roo.data.Store, Roo.util.Observable, {
  * Small helper class to make creating Stores from Array data easier.
  * @cfg {Number} id The array index of the record id. Leave blank to auto generate ids.
  * @cfg {Array} fields An array of field definition objects, or field name strings.
+ * @cfg {Object} an existing reader (eg. copied from another store)
  * @cfg {Array} data The multi-dimensional array of data
  * @constructor
  * @param {Object} config
  */
-Roo.data.SimpleStore = function(config){
+Roo.data.SimpleStore = function(config)
+{
     Roo.data.SimpleStore.superclass.constructor.call(this, {
         isLocal : true,
-        reader: new Roo.data.ArrayReader({
+        reader: typeof(config.reader) != 'undefined' ? config.reader : new Roo.data.ArrayReader({
                 id: config.id
             },
             Roo.data.Record.create(config.fields)
@@ -23725,6 +23768,9 @@ Roo.data.DataReader = function(meta, recordType){
 };
 
 Roo.data.DataReader.prototype = {
+    
+    
+    readerType : 'Data',
      /**
      * Create an empty record
      * @param {Object} data (optional) - overlay some values
@@ -23745,6 +23791,7 @@ Roo.data.DataReader.prototype = {
         return new this.recordType(Roo.apply(da, d));
     }
     
+    
 };/*
  * Based on:
  * Ext JS Library 1.1.1
@@ -24283,6 +24330,8 @@ Roo.data.JsonReader = function(meta, recordType){
 };
 Roo.extend(Roo.data.JsonReader, Roo.data.DataReader, {
     
+    readerType : 'Json',
+    
     /**
      * @prop {Boolean} metaFromRemote  - if the meta data was loaded from the remote source.
      * Used by Store query builder to append _requestMeta to params.
@@ -24424,6 +24473,14 @@ Roo.extend(Roo.data.JsonReader, Roo.data.DataReader, {
             records : records,
             totalRecords : totalRecords
         };
+    },
+    // used when loading children.. @see loadDataFromChildren
+    toLoadData: function(rec)
+    {
+       // expect rec just to be an array.. eg [a,b,c, [...] << cn ]
+       var data = typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn;
+       return { data : data, total : data.length };
+       
     }
 });/*
  * Based on:
@@ -24494,6 +24551,9 @@ Roo.data.XmlReader = function(meta, recordType){
     Roo.data.XmlReader.superclass.constructor.call(this, meta, recordType||meta.fields);
 };
 Roo.extend(Roo.data.XmlReader, Roo.data.DataReader, {
+    
+    readerType : 'Xml',
+    
     /**
      * This method is only used by a DataProxy which has retrieved data from a remote server.
         * @param {Object} response The XHR object which contains the parsed XML document.  The response is expected
@@ -24605,44 +24665,54 @@ var myReader = new Roo.data.ArrayReader({
  * 
  * created using {@link Roo.data.Record#create}.
  */
-Roo.data.ArrayReader = function(meta, recordType){
-    
-     
+Roo.data.ArrayReader = function(meta, recordType)
+{    
     Roo.data.ArrayReader.superclass.constructor.call(this, meta, recordType||meta.fields);
 };
 
 Roo.extend(Roo.data.ArrayReader, Roo.data.JsonReader, {
-    /**
+    
+      /**
      * Create a data block containing Roo.data.Records from an XML document.
      * @param {Object} o An Array of row objects which represents the dataset.
      * @return {Object} A data block which is used by an {@link Roo.data.Store} object as
      * a cache of Roo.data.Records.
      */
-    readRecords : function(o){
+    readRecords : function(o)
+    {
         var sid = this.meta ? this.meta.id : null;
        var recordType = this.recordType, fields = recordType.prototype.fields;
        var records = [];
        var root = o;
-           for(var i = 0; i < root.length; i++){
-                   var n = root[i];
-               var values = {};
-               var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
-               for(var j = 0, jlen = fields.length; j < jlen; j++){
-                var f = fields.items[j];
-                var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
-                var v = n[k] !== undefined ? n[k] : f.defaultValue;
-                v = f.convert(v);
-                values[f.name] = v;
-            }
-               var record = new recordType(values, id);
-               record.json = n;
-               records[records.length] = record;
+       for(var i = 0; i < root.length; i++){
+               var n = root[i];
+           var values = {};
+           var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
+           for(var j = 0, jlen = fields.length; j < jlen; j++){
+               var f = fields.items[j];
+               var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
+               var v = n[k] !== undefined ? n[k] : f.defaultValue;
+               v = f.convert(v);
+               values[f.name] = v;
            }
-           return {
-               records : records,
-               totalRecords : records.length
-           };
+           var record = new recordType(values, id);
+           record.json = n;
+           records[records.length] = record;
+       }
+       return {
+           records : records,
+           totalRecords : records.length
+       };
+    },
+    // used when loading children.. @see loadDataFromChildren
+    toLoadData: function(rec)
+    {
+       // expect rec just to be an array.. eg [a,b,c, [...] << cn ]
+       return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn;
+       
     }
+    
+    
 });/*
  * Based on:
  * Ext JS Library 1.1.1
@@ -41367,9 +41437,11 @@ Roo.extend(Roo.form.ComboBox, Roo.form.TriggerField, {
     // element that contains real text value.. (when hidden is used..)
      
     // private
-    onRender : function(ct, position){
+    onRender : function(ct, position)
+    {
         Roo.form.ComboBox.superclass.onRender.call(this, ct, position);
-        if(this.hiddenName){
+        
+       if(this.hiddenName){
             this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id:  (this.hiddenId||this.hiddenName)},
                     'before', true);
             this.hiddenField.value =
@@ -41381,6 +41453,7 @@ Roo.extend(Roo.form.ComboBox, Roo.form.TriggerField, {
              
              
         }
+       
         if(Roo.isGecko){
             this.el.dom.setAttribute('autocomplete', 'off');
         }
@@ -41441,7 +41514,9 @@ Roo.extend(Roo.form.ComboBox, Roo.form.TriggerField, {
         }
 
         this.view = new Roo.View(this.innerList, this.tpl, {
-            singleSelect:true, store: this.store, selectedClass: this.selectedClass
+            singleSelect:true,
+           store: this.store,
+           selectedClass: this.selectedClass
         });
 
         this.view.on('click', this.onViewClick, this);
@@ -42627,6 +42702,434 @@ Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, {
         }
         
     }
+});/*
+ * RooJS Library 1.1.1
+ * Copyright(c) 2008-2011  Alan Knowles
+ *
+ * License - LGPL
+ */
+
+/**
+ * @class Roo.form.ComboNested
+ * @extends Roo.form.ComboBox
+ * A combobox for that allows selection of nested items in a list,
+ * eg.
+ *
+ *  Book
+ *    -> red
+ *    -> green
+ *  Table
+ *    -> square
+ *      ->red
+ *      ->green
+ *    -> rectangle
+ *      ->green
+ *      
+ * 
+ * @constructor
+ * Create a new ComboNested
+ * @param {Object} config Configuration options
+ */
+Roo.form.ComboNested = function(config){
+    Roo.form.ComboCheck.superclass.constructor.call(this, config);
+    // should verify some data...
+    // like
+    // hiddenName = required..
+    // displayField = required
+    // valudField == required
+    var req= [ 'hiddenName', 'displayField', 'valueField' ];
+    var _t = this;
+    Roo.each(req, function(e) {
+        if ((typeof(_t[e]) == 'undefined' ) || !_t[e].length) {
+            throw "Roo.form.ComboNested : missing value for: " + e;
+        }
+    });
+     
+    
+};
+
+Roo.extend(Roo.form.ComboNested, Roo.form.ComboBox, {
+   
+    /*
+     * @config {Number} max Number of columns to show
+     */
+    
+    maxColumns : 3,
+   
+    list : null, // the outermost div..
+    innerLists : null, // the
+    views : null,
+    stores : null,
+    // private
+    loadingChildren : false,
+    
+    onRender : function(ct, position)
+    {
+        Roo.form.ComboBox.superclass.onRender.call(this, ct, position); // skip parent call - got to above..
+        
+        if(this.hiddenName){
+            this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id:  (this.hiddenId||this.hiddenName)},
+                    'before', true);
+            this.hiddenField.value =
+                this.hiddenValue !== undefined ? this.hiddenValue :
+                this.value !== undefined ? this.value : '';
+
+            // prevent input submission
+            this.el.dom.removeAttribute('name');
+             
+             
+        }
+       
+        if(Roo.isGecko){
+            this.el.dom.setAttribute('autocomplete', 'off');
+        }
+
+        var cls = 'x-combo-list';
+
+        this.list = new Roo.Layer({
+            shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false
+        });
+
+        var lw = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth);
+        this.list.setWidth(lw);
+        this.list.swallowEvent('mousewheel');
+        this.assetHeight = 0;
+
+        if(this.title){
+            this.header = this.list.createChild({cls:cls+'-hd', html: this.title});
+            this.assetHeight += this.header.getHeight();
+        }
+        this.innerLists = [];
+        this.views = [];
+        this.stores = [];
+        for (var i =0 ; i < this.maxColumns; i++) {
+            this.onRenderList( cls, i);
+        }
+        
+        // always needs footer, as we are going to have an 'OK' button.
+        this.footer = this.list.createChild({cls:cls+'-ft'});
+        this.pageTb = new Roo.Toolbar(this.footer);  
+        var _this = this;
+        this.pageTb.add(  {
+            
+            text: 'Done',
+            handler: function()
+            {
+                _this.collapse();
+            }
+        });
+        
+        if ( this.allowBlank && !this.disableClear) {
+            
+            this.pageTb.add(new Roo.Toolbar.Fill(), {
+                cls: 'x-btn-icon x-btn-clear',
+                text: '&#160;',
+                handler: function()
+                {
+                    _this.collapse();
+                    _this.clearValue();
+                    _this.onSelect(false, -1);
+                }
+            });
+        }
+        if (this.footer) {
+            this.assetHeight += this.footer.getHeight();
+        }
+        
+    },
+    onRenderList : function (  cls, i)
+    {
+        
+        var lw = Math.floor(
+                ((this.listWidth * this.maxColumns || Math.max(this.wrap.getWidth(), this.minListWidth)) - this.list.getFrameWidth('lr')) / this.maxColumns
+        );
+        
+        this.list.setWidth(lw); // default to '1'
+
+        var il = this.innerLists[i] = this.list.createChild({cls:cls+'-inner'});
+        //il.on('mouseover', this.onViewOver, this, { list:  i });
+        //il.on('mousemove', this.onViewMove, this, { list:  i });
+        il.setWidth(lw);
+        il.setStyle({ 'overflow-x' : 'hidden'});
+
+        if(!this.tpl){
+            this.tpl = new Roo.Template({
+                html :  '<div class="'+cls+'-item '+cls+'-item-{cn:this.isEmpty}">{' + this.displayField + '}</div>',
+                isEmpty: function (value, allValues) {
+                    //Roo.log(value);
+                    var dl = typeof(value.data) != 'undefined' ? value.data.length : value.length; ///json is a nested response..
+                    return dl ? 'has-children' : 'no-children'
+                }
+            });
+        }
+        
+        var store  = this.store;
+        if (i > 0) {
+            store  = new Roo.data.SimpleStore({
+                //fields : this.store.reader.meta.fields,
+                reader : this.store.reader,
+                data : [ ]
+            });
+        }
+        this.stores[i]  = store;
+                  
+        var view = this.views[i] = new Roo.View(
+            il,
+            this.tpl,
+            {
+                singleSelect:true,
+                store: store,
+                selectedClass: this.selectedClass
+            }
+        );
+        view.getEl().setWidth(lw);
+        view.getEl().setStyle({
+            position: i < 1 ? 'relative' : 'absolute',
+            top: 0,
+            left: (i * lw ) + 'px',
+            display : i > 0 ? 'none' : 'block'
+        });
+        view.on('selectionchange', this.onSelectChange, this, {list : i });
+        view.on('dblclick', this.onDoubleClick, this, {list : i });
+        //view.on('click', this.onViewClick, this, { list : i });
+
+        store.on('beforeload', this.onBeforeLoad, this);
+        store.on('load',  this.onLoad, this, { list  : i});
+        store.on('loadexception', this.onLoadException, this);
+
+        // hide the other vies..
+        
+        
+        
+    },
+      
+    restrictHeight : function()
+    {
+        var mh = 0;
+        Roo.each(this.innerLists, function(il,i) {
+            var el = this.views[i].getEl();
+            el.dom.style.height = '';
+            var inner = el.dom;
+            var h = Math.max(il.clientHeight, il.offsetHeight, il.scrollHeight);
+            // only adjust heights on other ones..
+            mh = Math.max(h, mh);
+            if (i < 1) {
+                
+                el.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight);
+                il.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight);
+               
+            }
+            
+            
+        }, this);
+        
+        this.list.beginUpdate();
+        this.list.setHeight(mh+this.list.getFrameWidth('tb')+this.assetHeight);
+        this.list.alignTo(this.el, this.listAlign);
+        this.list.endUpdate();
+        
+    },
+     
+    
+    // -- store handlers..
+    // private
+    onBeforeLoad : function()
+    {
+        if(!this.hasFocus){
+            return;
+        }
+        this.innerLists[0].update(this.loadingText ?
+               '<div class="loading-indicator">'+this.loadingText+'</div>' : '');
+        this.restrictHeight();
+        this.selectedIndex = -1;
+    },
+    // private
+    onLoad : function(a,b,c,d)
+    {
+        if (!this.loadingChildren) {
+            // then we are loading the top level. - hide the children
+            for (var i = 1;i < this.views.length; i++) {
+                this.views[i].getEl().setStyle({ display : 'none' });
+            }
+            var lw = Math.floor(
+                ((this.listWidth * this.maxColumns || Math.max(this.wrap.getWidth(), this.minListWidth)) - this.list.getFrameWidth('lr')) / this.maxColumns
+            );
+        
+             this.list.setWidth(lw); // default to '1'
+
+            
+        }
+        if(!this.hasFocus){
+            return;
+        }
+        
+        if(this.store.getCount() > 0) {
+            this.expand();
+            this.restrictHeight();   
+        } else {
+            this.onEmptyResults();
+        }
+        
+        if (!this.loadingChildren) {
+            this.selectActive();
+        }
+        /*
+        this.stores[1].loadData([]);
+        this.stores[2].loadData([]);
+        this.views
+        */    
+    
+        //this.el.focus();
+    },
+    
+    
+    // private
+    onLoadException : function()
+    {
+        this.collapse();
+        Roo.log(this.store.reader.jsonData);
+        if (this.store && typeof(this.store.reader.jsonData.errorMsg) != 'undefined') {
+            Roo.MessageBox.alert("Error loading",this.store.reader.jsonData.errorMsg);
+        }
+        
+        
+    },
+    // no cleaning of leading spaces on blur here.
+    cleanLeadingSpace : function(e) { },
+    
+
+    onSelectChange : function (view, sels, opts )
+    {
+        var ix = view.getSelectedIndexes();
+         
+        if (opts.list > this.maxColumns - 2) {
+            if (view.store.getCount()<  1) {
+                this.views[opts.list ].getEl().setStyle({ display :   'none' });
+
+            } else  {
+                if (ix.length) {
+                    // used to clear ?? but if we are loading unselected 
+                    this.setFromData(view.store.getAt(ix[0]).data);
+                }
+                
+            }
+            
+            return;
+        }
+        
+        if (!ix.length) {
+            // this get's fired when trigger opens..
+           // this.setFromData({});
+            var str = this.stores[opts.list+1];
+            str.data.clear(); // removeall wihtout the fire events..
+            return;
+        }
+        
+        var rec = view.store.getAt(ix[0]);
+         
+        this.setFromData(rec.data);
+        this.fireEvent('select', this, rec, ix[0]);
+        
+        var lw = Math.floor(
+             (
+                (this.listWidth * this.maxColumns || Math.max(this.wrap.getWidth(), this.minListWidth)) - this.list.getFrameWidth('lr')
+             ) / this.maxColumns
+        );
+        this.loadingChildren = true;
+        this.stores[opts.list+1].loadDataFromChildren( rec );
+        this.loadingChildren = false;
+        var dl = this.stores[opts.list+1]. getTotalCount();
+        
+        this.views[opts.list+1].getEl().setHeight( this.innerLists[0].getHeight());
+        
+        this.views[opts.list+1].getEl().setStyle({ display : dl ? 'block' : 'none' });
+        for (var i = opts.list+2; i < this.views.length;i++) {
+            this.views[i].getEl().setStyle({ display : 'none' });
+        }
+        
+        this.innerLists[opts.list+1].setHeight( this.innerLists[0].getHeight());
+        this.list.setWidth(lw * (opts.list + (dl ? 2 : 1)));
+        
+        if (this.isLoading) {
+           // this.selectActive(opts.list);
+        }
+         
+    },
+    
+    
+    
+    
+    onDoubleClick : function()
+    {
+        this.collapse(); //??
+    },
+    
+     
+    
+    
+    
+    // private
+    recordToStack : function(store, prop, value, stack)
+    {
+        var cstore = new Roo.data.SimpleStore({
+            //fields : this.store.reader.meta.fields, // we need array reader.. for
+            reader : this.store.reader,
+            data : [ ]
+        });
+        var _this = this;
+        var record  = false;
+        var srec = false;
+        if(store.getCount() < 1){
+            return false;
+        }
+        store.each(function(r){
+            if(r.data[prop] == value){
+                record = r;
+            srec = r;
+                return false;
+            }
+            if (r.data.cn && r.data.cn.length) {
+                cstore.loadDataFromChildren( r);
+                var cret = _this.recordToStack(cstore, prop, value, stack);
+                if (cret !== false) {
+                    record = cret;
+                    srec = r;
+                    return false;
+                }
+            }
+             
+            return true;
+        });
+        if (record == false) {
+            return false
+        }
+        stack.unshift(srec);
+        return record;
+    },
+    
+    /*
+     * find the stack of stores that match our value.
+     *
+     * 
+     */
+    
+    selectActive : function ()
+    {
+       // if store is not loaded, then we will need to wait for that to happen first.
+        var stack = [];
+        this.recordToStack(this.store, this.valueField, this.getValue(), stack);
+        for (var i = 0; i < stack.length; i++ ) {
+            this.views[i].select(stack[i].store.indexOf(stack[i]), false, false );
+        }
+       
+    }
+       
+        
+    
+    
+    
+    
 });/*
  * Based on:
  * Ext JS Library 1.1.1
index 2464e27..0d2285d 100644 (file)
@@ -784,6 +784,16 @@ Roo.extend(Roo.data.Store, Roo.util.Observable, {
         var r = this.reader.readRecords(o);
         this.loadRecords(r, {add: append}, true);
     },
+    
+     /**
+     * using 'cn' the nested child reader read the child array into it's child stores.
+     * @param {Object} rec The record with a 'children array
+     */
+    loadDataFromChildren : function(rec)
+    {
+        this.loadData(this.reader.toLoadData(rec));
+    },
+    
 
     /**
      * Gets the number of cached records.
@@ -1088,14 +1098,16 @@ Roo.extend(Roo.data.Store, Roo.util.Observable, {
  * Small helper class to make creating Stores from Array data easier.
  * @cfg {Number} id The array index of the record id. Leave blank to auto generate ids.
  * @cfg {Array} fields An array of field definition objects, or field name strings.
+ * @cfg {Object} an existing reader (eg. copied from another store)
  * @cfg {Array} data The multi-dimensional array of data
  * @constructor
  * @param {Object} config
  */
-Roo.data.SimpleStore = function(config){
+Roo.data.SimpleStore = function(config)
+{
     Roo.data.SimpleStore.superclass.constructor.call(this, {
         isLocal : true,
-        reader: new Roo.data.ArrayReader({
+        reader: typeof(config.reader) != 'undefined' ? config.reader : new Roo.data.ArrayReader({
                 id: config.id
             },
             Roo.data.Record.create(config.fields)
@@ -1272,6 +1284,9 @@ Roo.data.DataReader = function(meta, recordType){
 };
 
 Roo.data.DataReader.prototype = {
+    
+    
+    readerType : 'Data',
      /**
      * Create an empty record
      * @param {Object} data (optional) - overlay some values
@@ -1292,6 +1307,7 @@ Roo.data.DataReader.prototype = {
         return new this.recordType(Roo.apply(da, d));
     }
     
+    
 };/*
  * Based on:
  * Ext JS Library 1.1.1
@@ -1830,6 +1846,8 @@ Roo.data.JsonReader = function(meta, recordType){
 };
 Roo.extend(Roo.data.JsonReader, Roo.data.DataReader, {
     
+    readerType : 'Json',
+    
     /**
      * @prop {Boolean} metaFromRemote  - if the meta data was loaded from the remote source.
      * Used by Store query builder to append _requestMeta to params.
@@ -1971,6 +1989,14 @@ Roo.extend(Roo.data.JsonReader, Roo.data.DataReader, {
             records : records,
             totalRecords : totalRecords
         };
+    },
+    // used when loading children.. @see loadDataFromChildren
+    toLoadData: function(rec)
+    {
+       // expect rec just to be an array.. eg [a,b,c, [...] << cn ]
+       var data = typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn;
+       return { data : data, total : data.length };
+       
     }
 });/*
  * Based on:
@@ -2041,6 +2067,9 @@ Roo.data.XmlReader = function(meta, recordType){
     Roo.data.XmlReader.superclass.constructor.call(this, meta, recordType||meta.fields);
 };
 Roo.extend(Roo.data.XmlReader, Roo.data.DataReader, {
+    
+    readerType : 'Xml',
+    
     /**
      * This method is only used by a DataProxy which has retrieved data from a remote server.
         * @param {Object} response The XHR object which contains the parsed XML document.  The response is expected
@@ -2152,44 +2181,54 @@ var myReader = new Roo.data.ArrayReader({
  * 
  * created using {@link Roo.data.Record#create}.
  */
-Roo.data.ArrayReader = function(meta, recordType){
-    
-     
+Roo.data.ArrayReader = function(meta, recordType)
+{    
     Roo.data.ArrayReader.superclass.constructor.call(this, meta, recordType||meta.fields);
 };
 
 Roo.extend(Roo.data.ArrayReader, Roo.data.JsonReader, {
-    /**
+    
+      /**
      * Create a data block containing Roo.data.Records from an XML document.
      * @param {Object} o An Array of row objects which represents the dataset.
      * @return {Object} A data block which is used by an {@link Roo.data.Store} object as
      * a cache of Roo.data.Records.
      */
-    readRecords : function(o){
+    readRecords : function(o)
+    {
         var sid = this.meta ? this.meta.id : null;
        var recordType = this.recordType, fields = recordType.prototype.fields;
        var records = [];
        var root = o;
-           for(var i = 0; i < root.length; i++){
-                   var n = root[i];
-               var values = {};
-               var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
-               for(var j = 0, jlen = fields.length; j < jlen; j++){
-                var f = fields.items[j];
-                var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
-                var v = n[k] !== undefined ? n[k] : f.defaultValue;
-                v = f.convert(v);
-                values[f.name] = v;
-            }
-               var record = new recordType(values, id);
-               record.json = n;
-               records[records.length] = record;
+       for(var i = 0; i < root.length; i++){
+               var n = root[i];
+           var values = {};
+           var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
+           for(var j = 0, jlen = fields.length; j < jlen; j++){
+               var f = fields.items[j];
+               var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
+               var v = n[k] !== undefined ? n[k] : f.defaultValue;
+               v = f.convert(v);
+               values[f.name] = v;
            }
-           return {
-               records : records,
-               totalRecords : records.length
-           };
+           var record = new recordType(values, id);
+           record.json = n;
+           records[records.length] = record;
+       }
+       return {
+           records : records,
+           totalRecords : records.length
+       };
+    },
+    // used when loading children.. @see loadDataFromChildren
+    toLoadData: function(rec)
+    {
+       // expect rec just to be an array.. eg [a,b,c, [...] << cn ]
+       return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn;
+       
     }
+    
+    
 });/*
  * Based on:
  * Ext JS Library 1.1.1
@@ -18914,9 +18953,11 @@ Roo.extend(Roo.form.ComboBox, Roo.form.TriggerField, {
     // element that contains real text value.. (when hidden is used..)
      
     // private
-    onRender : function(ct, position){
+    onRender : function(ct, position)
+    {
         Roo.form.ComboBox.superclass.onRender.call(this, ct, position);
-        if(this.hiddenName){
+        
+       if(this.hiddenName){
             this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id:  (this.hiddenId||this.hiddenName)},
                     'before', true);
             this.hiddenField.value =
@@ -18928,6 +18969,7 @@ Roo.extend(Roo.form.ComboBox, Roo.form.TriggerField, {
              
              
         }
+       
         if(Roo.isGecko){
             this.el.dom.setAttribute('autocomplete', 'off');
         }
@@ -18988,7 +19030,9 @@ Roo.extend(Roo.form.ComboBox, Roo.form.TriggerField, {
         }
 
         this.view = new Roo.View(this.innerList, this.tpl, {
-            singleSelect:true, store: this.store, selectedClass: this.selectedClass
+            singleSelect:true,
+           store: this.store,
+           selectedClass: this.selectedClass
         });
 
         this.view.on('click', this.onViewClick, this);
@@ -20174,6 +20218,434 @@ Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, {
         }
         
     }
+});/*
+ * RooJS Library 1.1.1
+ * Copyright(c) 2008-2011  Alan Knowles
+ *
+ * License - LGPL
+ */
+
+/**
+ * @class Roo.form.ComboNested
+ * @extends Roo.form.ComboBox
+ * A combobox for that allows selection of nested items in a list,
+ * eg.
+ *
+ *  Book
+ *    -> red
+ *    -> green
+ *  Table
+ *    -> square
+ *      ->red
+ *      ->green
+ *    -> rectangle
+ *      ->green
+ *      
+ * 
+ * @constructor
+ * Create a new ComboNested
+ * @param {Object} config Configuration options
+ */
+Roo.form.ComboNested = function(config){
+    Roo.form.ComboCheck.superclass.constructor.call(this, config);
+    // should verify some data...
+    // like
+    // hiddenName = required..
+    // displayField = required
+    // valudField == required
+    var req= [ 'hiddenName', 'displayField', 'valueField' ];
+    var _t = this;
+    Roo.each(req, function(e) {
+        if ((typeof(_t[e]) == 'undefined' ) || !_t[e].length) {
+            throw "Roo.form.ComboNested : missing value for: " + e;
+        }
+    });
+     
+    
+};
+
+Roo.extend(Roo.form.ComboNested, Roo.form.ComboBox, {
+   
+    /*
+     * @config {Number} max Number of columns to show
+     */
+    
+    maxColumns : 3,
+   
+    list : null, // the outermost div..
+    innerLists : null, // the
+    views : null,
+    stores : null,
+    // private
+    loadingChildren : false,
+    
+    onRender : function(ct, position)
+    {
+        Roo.form.ComboBox.superclass.onRender.call(this, ct, position); // skip parent call - got to above..
+        
+        if(this.hiddenName){
+            this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id:  (this.hiddenId||this.hiddenName)},
+                    'before', true);
+            this.hiddenField.value =
+                this.hiddenValue !== undefined ? this.hiddenValue :
+                this.value !== undefined ? this.value : '';
+
+            // prevent input submission
+            this.el.dom.removeAttribute('name');
+             
+             
+        }
+       
+        if(Roo.isGecko){
+            this.el.dom.setAttribute('autocomplete', 'off');
+        }
+
+        var cls = 'x-combo-list';
+
+        this.list = new Roo.Layer({
+            shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false
+        });
+
+        var lw = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth);
+        this.list.setWidth(lw);
+        this.list.swallowEvent('mousewheel');
+        this.assetHeight = 0;
+
+        if(this.title){
+            this.header = this.list.createChild({cls:cls+'-hd', html: this.title});
+            this.assetHeight += this.header.getHeight();
+        }
+        this.innerLists = [];
+        this.views = [];
+        this.stores = [];
+        for (var i =0 ; i < this.maxColumns; i++) {
+            this.onRenderList( cls, i);
+        }
+        
+        // always needs footer, as we are going to have an 'OK' button.
+        this.footer = this.list.createChild({cls:cls+'-ft'});
+        this.pageTb = new Roo.Toolbar(this.footer);  
+        var _this = this;
+        this.pageTb.add(  {
+            
+            text: 'Done',
+            handler: function()
+            {
+                _this.collapse();
+            }
+        });
+        
+        if ( this.allowBlank && !this.disableClear) {
+            
+            this.pageTb.add(new Roo.Toolbar.Fill(), {
+                cls: 'x-btn-icon x-btn-clear',
+                text: '&#160;',
+                handler: function()
+                {
+                    _this.collapse();
+                    _this.clearValue();
+                    _this.onSelect(false, -1);
+                }
+            });
+        }
+        if (this.footer) {
+            this.assetHeight += this.footer.getHeight();
+        }
+        
+    },
+    onRenderList : function (  cls, i)
+    {
+        
+        var lw = Math.floor(
+                ((this.listWidth * this.maxColumns || Math.max(this.wrap.getWidth(), this.minListWidth)) - this.list.getFrameWidth('lr')) / this.maxColumns
+        );
+        
+        this.list.setWidth(lw); // default to '1'
+
+        var il = this.innerLists[i] = this.list.createChild({cls:cls+'-inner'});
+        //il.on('mouseover', this.onViewOver, this, { list:  i });
+        //il.on('mousemove', this.onViewMove, this, { list:  i });
+        il.setWidth(lw);
+        il.setStyle({ 'overflow-x' : 'hidden'});
+
+        if(!this.tpl){
+            this.tpl = new Roo.Template({
+                html :  '<div class="'+cls+'-item '+cls+'-item-{cn:this.isEmpty}">{' + this.displayField + '}</div>',
+                isEmpty: function (value, allValues) {
+                    //Roo.log(value);
+                    var dl = typeof(value.data) != 'undefined' ? value.data.length : value.length; ///json is a nested response..
+                    return dl ? 'has-children' : 'no-children'
+                }
+            });
+        }
+        
+        var store  = this.store;
+        if (i > 0) {
+            store  = new Roo.data.SimpleStore({
+                //fields : this.store.reader.meta.fields,
+                reader : this.store.reader,
+                data : [ ]
+            });
+        }
+        this.stores[i]  = store;
+                  
+        var view = this.views[i] = new Roo.View(
+            il,
+            this.tpl,
+            {
+                singleSelect:true,
+                store: store,
+                selectedClass: this.selectedClass
+            }
+        );
+        view.getEl().setWidth(lw);
+        view.getEl().setStyle({
+            position: i < 1 ? 'relative' : 'absolute',
+            top: 0,
+            left: (i * lw ) + 'px',
+            display : i > 0 ? 'none' : 'block'
+        });
+        view.on('selectionchange', this.onSelectChange, this, {list : i });
+        view.on('dblclick', this.onDoubleClick, this, {list : i });
+        //view.on('click', this.onViewClick, this, { list : i });
+
+        store.on('beforeload', this.onBeforeLoad, this);
+        store.on('load',  this.onLoad, this, { list  : i});
+        store.on('loadexception', this.onLoadException, this);
+
+        // hide the other vies..
+        
+        
+        
+    },
+      
+    restrictHeight : function()
+    {
+        var mh = 0;
+        Roo.each(this.innerLists, function(il,i) {
+            var el = this.views[i].getEl();
+            el.dom.style.height = '';
+            var inner = el.dom;
+            var h = Math.max(il.clientHeight, il.offsetHeight, il.scrollHeight);
+            // only adjust heights on other ones..
+            mh = Math.max(h, mh);
+            if (i < 1) {
+                
+                el.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight);
+                il.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight);
+               
+            }
+            
+            
+        }, this);
+        
+        this.list.beginUpdate();
+        this.list.setHeight(mh+this.list.getFrameWidth('tb')+this.assetHeight);
+        this.list.alignTo(this.el, this.listAlign);
+        this.list.endUpdate();
+        
+    },
+     
+    
+    // -- store handlers..
+    // private
+    onBeforeLoad : function()
+    {
+        if(!this.hasFocus){
+            return;
+        }
+        this.innerLists[0].update(this.loadingText ?
+               '<div class="loading-indicator">'+this.loadingText+'</div>' : '');
+        this.restrictHeight();
+        this.selectedIndex = -1;
+    },
+    // private
+    onLoad : function(a,b,c,d)
+    {
+        if (!this.loadingChildren) {
+            // then we are loading the top level. - hide the children
+            for (var i = 1;i < this.views.length; i++) {
+                this.views[i].getEl().setStyle({ display : 'none' });
+            }
+            var lw = Math.floor(
+                ((this.listWidth * this.maxColumns || Math.max(this.wrap.getWidth(), this.minListWidth)) - this.list.getFrameWidth('lr')) / this.maxColumns
+            );
+        
+             this.list.setWidth(lw); // default to '1'
+
+            
+        }
+        if(!this.hasFocus){
+            return;
+        }
+        
+        if(this.store.getCount() > 0) {
+            this.expand();
+            this.restrictHeight();   
+        } else {
+            this.onEmptyResults();
+        }
+        
+        if (!this.loadingChildren) {
+            this.selectActive();
+        }
+        /*
+        this.stores[1].loadData([]);
+        this.stores[2].loadData([]);
+        this.views
+        */    
+    
+        //this.el.focus();
+    },
+    
+    
+    // private
+    onLoadException : function()
+    {
+        this.collapse();
+        Roo.log(this.store.reader.jsonData);
+        if (this.store && typeof(this.store.reader.jsonData.errorMsg) != 'undefined') {
+            Roo.MessageBox.alert("Error loading",this.store.reader.jsonData.errorMsg);
+        }
+        
+        
+    },
+    // no cleaning of leading spaces on blur here.
+    cleanLeadingSpace : function(e) { },
+    
+
+    onSelectChange : function (view, sels, opts )
+    {
+        var ix = view.getSelectedIndexes();
+         
+        if (opts.list > this.maxColumns - 2) {
+            if (view.store.getCount()<  1) {
+                this.views[opts.list ].getEl().setStyle({ display :   'none' });
+
+            } else  {
+                if (ix.length) {
+                    // used to clear ?? but if we are loading unselected 
+                    this.setFromData(view.store.getAt(ix[0]).data);
+                }
+                
+            }
+            
+            return;
+        }
+        
+        if (!ix.length) {
+            // this get's fired when trigger opens..
+           // this.setFromData({});
+            var str = this.stores[opts.list+1];
+            str.data.clear(); // removeall wihtout the fire events..
+            return;
+        }
+        
+        var rec = view.store.getAt(ix[0]);
+         
+        this.setFromData(rec.data);
+        this.fireEvent('select', this, rec, ix[0]);
+        
+        var lw = Math.floor(
+             (
+                (this.listWidth * this.maxColumns || Math.max(this.wrap.getWidth(), this.minListWidth)) - this.list.getFrameWidth('lr')
+             ) / this.maxColumns
+        );
+        this.loadingChildren = true;
+        this.stores[opts.list+1].loadDataFromChildren( rec );
+        this.loadingChildren = false;
+        var dl = this.stores[opts.list+1]. getTotalCount();
+        
+        this.views[opts.list+1].getEl().setHeight( this.innerLists[0].getHeight());
+        
+        this.views[opts.list+1].getEl().setStyle({ display : dl ? 'block' : 'none' });
+        for (var i = opts.list+2; i < this.views.length;i++) {
+            this.views[i].getEl().setStyle({ display : 'none' });
+        }
+        
+        this.innerLists[opts.list+1].setHeight( this.innerLists[0].getHeight());
+        this.list.setWidth(lw * (opts.list + (dl ? 2 : 1)));
+        
+        if (this.isLoading) {
+           // this.selectActive(opts.list);
+        }
+         
+    },
+    
+    
+    
+    
+    onDoubleClick : function()
+    {
+        this.collapse(); //??
+    },
+    
+     
+    
+    
+    
+    // private
+    recordToStack : function(store, prop, value, stack)
+    {
+        var cstore = new Roo.data.SimpleStore({
+            //fields : this.store.reader.meta.fields, // we need array reader.. for
+            reader : this.store.reader,
+            data : [ ]
+        });
+        var _this = this;
+        var record  = false;
+        var srec = false;
+        if(store.getCount() < 1){
+            return false;
+        }
+        store.each(function(r){
+            if(r.data[prop] == value){
+                record = r;
+            srec = r;
+                return false;
+            }
+            if (r.data.cn && r.data.cn.length) {
+                cstore.loadDataFromChildren( r);
+                var cret = _this.recordToStack(cstore, prop, value, stack);
+                if (cret !== false) {
+                    record = cret;
+                    srec = r;
+                    return false;
+                }
+            }
+             
+            return true;
+        });
+        if (record == false) {
+            return false
+        }
+        stack.unshift(srec);
+        return record;
+    },
+    
+    /*
+     * find the stack of stores that match our value.
+     *
+     * 
+     */
+    
+    selectActive : function ()
+    {
+       // if store is not loaded, then we will need to wait for that to happen first.
+        var stack = [];
+        this.recordToStack(this.store, this.valueField, this.getValue(), stack);
+        for (var i = 0; i < stack.length; i++ ) {
+            this.views[i].select(stack[i].store.indexOf(stack[i]), false, false );
+        }
+       
+    }
+       
+        
+    
+    
+    
+    
 });/*
  * Based on:
  * Ext JS Library 1.1.1
index 9d7e86f..5958546 100644 (file)
@@ -24,21 +24,21 @@ for(var i=0,B=A.length;i<B;i++){A[i].join(this);}var C=this.data.length;this.dat
 }this.fireEvent("loadexception",this,o,A,o.raw.errorMsg);return;}var r=o.records,t=o.totalRecords||r.length;this.fireEvent("beforeloadadd",this,r,A,o);if(!A||A.add!==true){if(this.pruneModifiedRecords){this.modified=[];}for(var i=0,C=r.length;i<C;i++){r[i].join(this);
 }if(this.snapshot){this.data=this.snapshot;delete this.snapshot;}this.data.clear();this.data.addAll(r);this.totalLength=t;this.applySort();this.fireEvent("datachanged",this);}else{this.totalLength=Math.max(t,this.data.length+r.length);this.add(r);}if(this.parent&&!Roo.isIOS&&!this.useNativeIOS&&this.parent.emptyTitle.length){var e=new Roo.data.Record({}
 );e.set(this.parent.displayField,this.parent.emptyTitle);e.set(this.parent.valueField,'');this.insert(0,e);}this.fireEvent("load",this,r,A,o);if(A.callback){A.callback.call(A.scope||this,r,A,true);}},loadData:function(o,A){var r=this.reader.readRecords(o);
-this.loadRecords(r,{add:A},true);},getCount:function(){return this.data.length||0;},getTotalCount:function(){return this.totalLength||0;},getSortState:function(){return this.sortInfo;},applySort:function(){if(this.sortInfo&&!this.remoteSort){var s=this.sortInfo,f=s.field;
-var st=this.fields.get(f).sortType;var fn=function(r1,r2){var v1=st(r1.data[f]),v2=st(r2.data[f]);return v1>v2?1:(v1<v2?-1:0);};this.data.sort(s.direction,fn);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(s.direction,fn);}}},setDefaultSort:function(A,B){this.sortInfo={field:A,direction:B?B.toUpperCase():"ASC"}
-;},sort:function(A,B){var f=this.fields.get(A);if(!B){this.sortToggle[f.name]=this.sortToggle[f.name]||f.sortDir;if(this.multiSort||(this.sortInfo&&this.sortInfo.field==f.name)){B=(this.sortToggle[f.name]||"ASC").toggle("ASC","DESC");}else{B=f.sortDir;}}this.sortToggle[f.name]=B;
-this.sortInfo={field:f.name,direction:B};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged",this);}else{this.load(this.lastOptions);}},each:function(fn,A){this.data.each(fn,A);},getModifiedRecords:function(){return this.modified;},createFilterFn:function(A,B,C){if(!B.exec){B=String(B);
-if(B.length==0){return false;}B=new RegExp((C===true?'':'^')+Roo.escapeRe(B),"i");}return function(r){return B.test(r.data[A]);};},sum:function(A,B,C){var rs=this.data.items,v=0;B=B||0;C=(C||C===0)?C:rs.length-1;for(var i=B;i<=C;i++){v+=(rs[i].data[A]||0);
-}return v;},filter:function(A,B,C){var fn=this.createFilterFn(A,B,C);return fn?this.filterBy(fn):this.clearFilter();},filterBy:function(fn,A){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(fn,A||this);this.fireEvent("datachanged",this);},query:function(A,B,C){var fn=this.createFilterFn(A,B,C);
-return fn?this.queryBy(fn):this.data.clone();},queryBy:function(fn,A){var B=this.snapshot||this.data;return B.filterBy(fn,A||this);},collect:function(A,B,C){var d=(C===true&&this.snapshot)?this.snapshot.items:this.data.items;var v,sv,r=[],l={};for(var i=0,D=d.length;
-i<D;i++){v=d[i].data[A];sv=String(v);if((B||!Roo.isEmpty(v))&&!l[sv]){l[sv]=true;r[r.length]=v;}}return r;},clearFilter:function(A){if(this.snapshot&&this.snapshot!=this.data){this.data=this.snapshot;delete this.snapshot;if(A!==true){this.fireEvent("datachanged",this);
-}}},afterEdit:function(A){if(this.modified.indexOf(A)==-1){this.modified.push(A);}this.fireEvent("update",this,A,Roo.data.Record.EDIT);},afterReject:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Roo.data.Record.REJECT);},afterCommit:function(A){this.modified.remove(A);
-this.fireEvent("update",this,A,Roo.data.Record.COMMIT);},commitChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,A=m.length;i<A;i++){m[i].commit();}},rejectChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,A=m.length;
-i<A;i++){m[i].reject();}},onMetaChange:function(A,B,o){this.recordType=B;this.fields=B.prototype.fields;delete this.snapshot;this.sortInfo=A.sortInfo||this.sortInfo;this.modified=[];this.fireEvent('metachange',this,this.reader.meta);},moveIndex:function(A,B){var C=this.indexOf(A);
-var D=C+B;this.remove(A);this.insert(D,A);}});
+this.loadRecords(r,{add:A},true);},loadDataFromChildren:function(A){this.loadData(this.reader.toLoadData(A));},getCount:function(){return this.data.length||0;},getTotalCount:function(){return this.totalLength||0;},getSortState:function(){return this.sortInfo;
+},applySort:function(){if(this.sortInfo&&!this.remoteSort){var s=this.sortInfo,f=s.field;var st=this.fields.get(f).sortType;var fn=function(r1,r2){var v1=st(r1.data[f]),v2=st(r2.data[f]);return v1>v2?1:(v1<v2?-1:0);};this.data.sort(s.direction,fn);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(s.direction,fn);
+}}},setDefaultSort:function(A,B){this.sortInfo={field:A,direction:B?B.toUpperCase():"ASC"};},sort:function(A,B){var f=this.fields.get(A);if(!B){this.sortToggle[f.name]=this.sortToggle[f.name]||f.sortDir;if(this.multiSort||(this.sortInfo&&this.sortInfo.field==f.name)){B=(this.sortToggle[f.name]||"ASC").toggle("ASC","DESC");
+}else{B=f.sortDir;}}this.sortToggle[f.name]=B;this.sortInfo={field:f.name,direction:B};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged",this);}else{this.load(this.lastOptions);}},each:function(fn,A){this.data.each(fn,A);},getModifiedRecords:function(){return this.modified;
+},createFilterFn:function(A,B,C){if(!B.exec){B=String(B);if(B.length==0){return false;}B=new RegExp((C===true?'':'^')+Roo.escapeRe(B),"i");}return function(r){return B.test(r.data[A]);};},sum:function(A,B,C){var rs=this.data.items,v=0;B=B||0;C=(C||C===0)?C:rs.length-1;
+for(var i=B;i<=C;i++){v+=(rs[i].data[A]||0);}return v;},filter:function(A,B,C){var fn=this.createFilterFn(A,B,C);return fn?this.filterBy(fn):this.clearFilter();},filterBy:function(fn,A){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(fn,A||this);
+this.fireEvent("datachanged",this);},query:function(A,B,C){var fn=this.createFilterFn(A,B,C);return fn?this.queryBy(fn):this.data.clone();},queryBy:function(fn,A){var B=this.snapshot||this.data;return B.filterBy(fn,A||this);},collect:function(A,B,C){var d=(C===true&&this.snapshot)?this.snapshot.items:this.data.items;
+var v,sv,r=[],l={};for(var i=0,D=d.length;i<D;i++){v=d[i].data[A];sv=String(v);if((B||!Roo.isEmpty(v))&&!l[sv]){l[sv]=true;r[r.length]=v;}}return r;},clearFilter:function(A){if(this.snapshot&&this.snapshot!=this.data){this.data=this.snapshot;delete this.snapshot;
+if(A!==true){this.fireEvent("datachanged",this);}}},afterEdit:function(A){if(this.modified.indexOf(A)==-1){this.modified.push(A);}this.fireEvent("update",this,A,Roo.data.Record.EDIT);},afterReject:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Roo.data.Record.REJECT);
+},afterCommit:function(A){this.modified.remove(A);this.fireEvent("update",this,A,Roo.data.Record.COMMIT);},commitChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,A=m.length;i<A;i++){m[i].commit();}},rejectChanges:function(){var m=this.modified.slice(0);
+this.modified=[];for(var i=0,A=m.length;i<A;i++){m[i].reject();}},onMetaChange:function(A,B,o){this.recordType=B;this.fields=B.prototype.fields;delete this.snapshot;this.sortInfo=A.sortInfo||this.sortInfo;this.modified=[];this.fireEvent('metachange',this,this.reader.meta);
+},moveIndex:function(A,B){var C=this.indexOf(A);var D=C+B;this.remove(A);this.insert(D,A);}});
 // Roo/data/SimpleStore.js
-Roo.data.SimpleStore=function(A){Roo.data.SimpleStore.superclass.constructor.call(this,{isLocal:true,reader:new Roo.data.ArrayReader({id:A.id},Roo.data.Record.create(A.fields)),proxy:new Roo.data.MemoryProxy(A.data)});this.load();};Roo.extend(Roo.data.SimpleStore,Roo.data.Store);
-
+Roo.data.SimpleStore=function(A){Roo.data.SimpleStore.superclass.constructor.call(this,{isLocal:true,reader:typeof(A.reader)!='undefined'?A.reader:new Roo.data.ArrayReader({id:A.id},Roo.data.Record.create(A.fields)),proxy:new Roo.data.MemoryProxy(A.data)});
+this.load();};Roo.extend(Roo.data.SimpleStore,Roo.data.Store);
 // Roo/data/JsonStore.js
 Roo.data.JsonStore=function(c){Roo.data.JsonStore.superclass.constructor.call(this,Roo.apply(c,{proxy:!c.data?new Roo.data.HttpProxy({url:c.url}):undefined,reader:new Roo.data.JsonReader(c,c.fields)}));};Roo.extend(Roo.data.JsonStore,Roo.data.Store);
 // Roo/data/Field.js
@@ -48,7 +48,7 @@ break;case "date":this.sortType=st.asDate;break;default:this.sortType=st.none;}}
 };break;case "date":cv=function(v){if(!v){return '';}if(v instanceof Date){return v;}if(C){if(C=="timestamp"){return new Date(v*1000);}return Date.parseDate(v,C);}var D=Date.parse(v);return D?new Date(D):null;};break;}this.convert=cv;}};Roo.data.Field.prototype={dateFormat:null,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC"}
 ;
 // Roo/data/DataReader.js
-Roo.data.DataReader=function(A,B){this.meta=A;this.recordType=B instanceof Array?Roo.data.Record.create(B):B;};Roo.data.DataReader.prototype={newRow:function(d){var da={};this.recordType.prototype.fields.each(function(c){switch(c.type){case 'int':da[c.name]=0;
+Roo.data.DataReader=function(A,B){this.meta=A;this.recordType=B instanceof Array?Roo.data.Record.create(B):B;};Roo.data.DataReader.prototype={readerType:'Data',newRow:function(d){var da={};this.recordType.prototype.fields.each(function(c){switch(c.type){case 'int':da[c.name]=0;
 break;case 'date':da[c.name]=new Date();break;case 'float':da[c.name]=0.0;break;case 'boolean':da[c.name]=false;break;default:da[c.name]="";break;}});return new this.recordType(Roo.apply(da,d));}};
 // Roo/data/DataProxy.js
 Roo.data.DataProxy=function(){this.addEvents({beforeload:true,load:true,loadexception:true});Roo.data.DataProxy.superclass.constructor.call(this);};Roo.extend(Roo.data.DataProxy,Roo.util.Observable);
@@ -69,23 +69,23 @@ J.setAttribute("type","text/javascript");J.setAttribute("id",H.scriptId);this.he
 }catch(e){}};}},handleResponse:function(o,A){this.trans=false;this.destroyTrans(A,true);var B;try{B=A.reader.readRecords(o);}catch(e){this.fireEvent("loadexception",this,o,A.arg,e);A.callback.call(A.scope||window,null,A.arg,false);return;}this.fireEvent("load",this,o,A.arg);
 A.callback.call(A.scope||window,B,A.arg,true);},handleFailure:function(A){this.trans=false;this.destroyTrans(A,false);this.fireEvent("loadexception",this,null,A.arg);A.callback.call(A.scope||window,null,A.arg,false);}});
 // Roo/data/JsonReader.js
-Roo.data.JsonReader=function(A,B){A=A||{};Roo.applyIf(A,{totalProperty:'total',successProperty:'success',root:'data',id:'id'});Roo.data.JsonReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.JsonReader,Roo.data.DataReader,{metaFromRemote:false,read:function(A){var B=A.responseText;
+Roo.data.JsonReader=function(A,B){A=A||{};Roo.applyIf(A,{totalProperty:'total',successProperty:'success',root:'data',id:'id'});Roo.data.JsonReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.JsonReader,Roo.data.DataReader,{readerType:'Json',metaFromRemote:false,read:function(A){var B=A.responseText;
 var o=eval("("+B+")");if(!o){throw {message:"JsonReader.read: Json object not found"};}if(o.metaData){delete this.ef;this.metaFromRemote=true;this.meta=o.metaData;this.recordType=Roo.data.Record.create(o.metaData.fields);this.onMetaChange(this.meta,this.recordType,o);
 }return this.readRecords(o);},onMetaChange:function(A,B,o){},simpleAccess:function(A,B){return A[B];},getJsonAccessor:function(){var re=/[\[\.]/;return function(A){try{return (re.test(A))?new Function("obj","return obj."+A):function(B){return B[A];};}catch(e){}
 return Roo.emptyFn;};}(),readRecords:function(o){this.o=o;var s=this.meta,A=this.recordType,f=A?A.prototype.fields:null,fi=f?f.items:[],fl=f?f.length:0;if(!this.ef){if(s.totalProperty){this.getTotal=this.getJsonAccessor(s.totalProperty);}if(s.successProperty){this.getSuccess=this.getJsonAccessor(s.successProperty);
 }this.getRoot=s.root?this.getJsonAccessor(s.root):function(p){return p;};if(s.id){var g=this.getJsonAccessor(s.id);this.getId=function(I){var r=g(I);return (r===undefined||r==="")?null:r;};}else{this.getId=function(){return null;};}this.ef=[];for(var jj=0;
 jj<fl;jj++){f=fi[jj];var B=(f.mapping!==undefined&&f.mapping!==null)?f.mapping:f.name;this.ef[jj]=this.getJsonAccessor(B);}}var C=this.getRoot(o),c=C.length,D=c,E=true;if(s.totalProperty){var vt=parseInt(this.getTotal(o),10);if(!isNaN(vt)){D=vt;}}if(s.successProperty){var vs=this.getSuccess(o);
 if(vs===false||vs==='false'){E=false;}}var F=[];for(var i=0;i<c;i++){var n=C[i];var G={};var id=this.getId(n);for(var j=0;j<fl;j++){f=fi[j];var v=this.ef[j](n);if(!f.convert){Roo.log('missing convert for '+f.name);Roo.log(f);continue;}G[f.name]=f.convert((v!==undefined)?v:f.defaultValue);
-}var H=new A(G,id);H.json=n;F[i]=H;}return {raw:o,success:E,records:F,totalRecords:D};}});
+}var H=new A(G,id);H.json=n;F[i]=H;}return {raw:o,success:E,records:F,totalRecords:D};},toLoadData:function(A){var B=typeof(A.data.cn)=='undefined'?[]:A.data.cn;return {data:B,total:B.length};}});
 // Roo/data/XmlReader.js
-Roo.data.XmlReader=function(A,B){A=A||{};Roo.data.XmlReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.XmlReader,Roo.data.DataReader,{read:function(A){var B=A.responseXML;if(!B){throw {message:"XmlReader.read: XML Document not available"}
+Roo.data.XmlReader=function(A,B){A=A||{};Roo.data.XmlReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.XmlReader,Roo.data.DataReader,{readerType:'Xml',read:function(A){var B=A.responseXML;if(!B){throw {message:"XmlReader.read: XML Document not available"}
 ;}return this.readRecords(B);},readRecords:function(A){this.xmlData=A;var B=A.documentElement||A;var q=Roo.DomQuery;var C=this.recordType,D=C.prototype.fields;var E=this.meta.id;var F=0,G=true;if(this.meta.totalRecords){F=q.selectNumber(this.meta.totalRecords,B,0);
 }if(this.meta.success){var sv=q.selectValue(this.meta.success,B,true);G=sv!==false&&sv!=='false';}var H=[];var ns=q.select(this.meta.record,B);for(var i=0,I=ns.length;i<I;i++){var n=ns[i];var J={};var id=E?q.selectValue(E,n):undefined;for(var j=0,K=D.length;
 j<K;j++){var f=D.items[j];var v=q.selectValue(f.mapping||f.name,n,f.defaultValue);v=f.convert(v);J[f.name]=v;}var L=new C(J,id);L.node=n;H[H.length]=L;}return {success:G,records:H,totalRecords:F||H.length};}});
 // Roo/data/ArrayReader.js
 Roo.data.ArrayReader=function(A,B){Roo.data.ArrayReader.superclass.constructor.call(this,A,B||A.fields);};Roo.extend(Roo.data.ArrayReader,Roo.data.JsonReader,{readRecords:function(o){var A=this.meta?this.meta.id:null;var B=this.recordType,C=B.prototype.fields;
 var D=[];var E=o;for(var i=0;i<E.length;i++){var n=E[i];var F={};var id=((A||A===0)&&n[A]!==undefined&&n[A]!==""?n[A]:null);for(var j=0,G=C.length;j<G;j++){var f=C.items[j];var k=f.mapping!==undefined&&f.mapping!==null?f.mapping:j;var v=n[k]!==undefined?n[k]:f.defaultValue;
-v=f.convert(v);F[f.name]=v;}var H=new B(F,id);H.json=n;D[D.length]=H;}return {records:D,totalRecords:D.length};}});
+v=f.convert(v);F[f.name]=v;}var H=new B(F,id);H.json=n;D[D.length]=H;}return {records:D,totalRecords:D.length};},toLoadData:function(A){return typeof(A.data.cn)=='undefined'?[]:A.data.cn;}});
 // Roo/data/Tree.js
 Roo.data.Tree=function(A){this.nodeHash={};this.root=null;if(A){this.setRootNode(A);}this.addEvents({"append":true,"remove":true,"move":true,"insert":true,"beforeappend":true,"beforeremove":true,"beforemove":true,"beforeinsert":true});Roo.data.Tree.superclass.constructor.call(this);
 };Roo.extend(Roo.data.Tree,Roo.util.Observable,{pathSeparator:"/",proxyNodeEvent:function(){return this.fireEvent.apply(this,arguments);},getRootNode:function(){return this.root;},setRootNode:function(A){this.root=A;A.ownerTree=this;A.isRoot=true;this.registerNode(A);
@@ -886,6 +886,29 @@ return true;}return false;},validateValue:function(A){return Roo.form.ComboBoxAr
 if(!this.el){var B=this.getAutoCreate();this.el=ct.createChild(B,A);}this.el.child('img').dom.setAttribute('src',Roo.BLANK_IMAGE_URL);this.el.child('div').dom.innerHTML=this.cb.renderer?this.cb.renderer(this.data):String.format('{0}',this.data[this.displayField]);
 this.el.child('div').dom.setAttribute('qtip',String.format('{0}',this.data[this.tipField]));this.el.child('img').on('click',this.remove,this);},remove:function(){if(this.cb.disabled){return;}if(false!==this.cb.fireEvent('beforeremove',this.cb,this)){this.cb.items.remove(this);
 this.el.child('img').un('click',this.remove,this);this.el.remove();this.cb.updateHiddenEl();this.cb.fireEvent('remove',this.cb,this);}}});
+// Roo/form/ComboNested.js
+Roo.form.ComboNested=function(A){Roo.form.ComboCheck.superclass.constructor.call(this,A);var B=['hiddenName','displayField','valueField'];var _t=this;Roo.each(B,function(e){if((typeof(_t[e])=='undefined')||!_t[e].length){throw "Roo.form.ComboNested : missing value for: "+e;
+}});};Roo.extend(Roo.form.ComboNested,Roo.form.ComboBox,{maxColumns:3,list:null,innerLists:null,views:null,stores:null,loadingChildren:false,onRender:function(ct,A){Roo.form.ComboBox.superclass.onRender.call(this,ct,A);if(this.hiddenName){this.hiddenField=this.el.insertSibling({tag:'input',type:'hidden',name:this.hiddenName,id:(this.hiddenId||this.hiddenName)}
+,'before',true);this.hiddenField.value=this.hiddenValue!==undefined?this.hiddenValue:this.value!==undefined?this.value:'';this.el.dom.removeAttribute('name');}if(Roo.isGecko){this.el.dom.setAttribute('autocomplete','off');}var B='x-combo-list';this.list=new Roo.Layer({shadow:this.shadow,cls:[B,this.listClass].join(' '),constrain:false}
+);var lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setWidth(lw);this.list.swallowEvent('mousewheel');this.assetHeight=0;if(this.title){this.header=this.list.createChild({cls:B+'-hd',html:this.title});this.assetHeight+=this.header.getHeight();
+}this.innerLists=[];this.views=[];this.stores=[];for(var i=0;i<this.maxColumns;i++){this.onRenderList(B,i);}this.footer=this.list.createChild({cls:B+'-ft'});this.pageTb=new Roo.Toolbar(this.footer);var C=this;this.pageTb.add({text:'Done',handler:function(){C.collapse();
+}});if(this.allowBlank&&!this.disableClear){this.pageTb.add(new Roo.Toolbar.Fill(),{cls:'x-btn-icon x-btn-clear',text:'&#160;',handler:function(){C.collapse();C.clearValue();C.onSelect(false,-1);}});}if(this.footer){this.assetHeight+=this.footer.getHeight();
+}},onRenderList:function(A,i){var lw=Math.floor(((this.listWidth*this.maxColumns||Math.max(this.wrap.getWidth(),this.minListWidth))-this.list.getFrameWidth('lr'))/this.maxColumns);this.list.setWidth(lw);var il=this.innerLists[i]=this.list.createChild({cls:A+'-inner'}
+);il.setWidth(lw);il.setStyle({'overflow-x':'hidden'});if(!this.tpl){this.tpl=new Roo.Template({html:'<div class="'+A+'-item '+A+'-item-{cn:this.isEmpty}">{'+this.displayField+'}</div>',isEmpty:function(D,E){var dl=typeof(D.data)!='undefined'?D.data.length:D.length;
+return dl?'has-children':'no-children'}});}var B=this.store;if(i>0){B=new Roo.data.SimpleStore({reader:this.store.reader,data:[]});}this.stores[i]=B;var C=this.views[i]=new Roo.View(il,this.tpl,{singleSelect:true,store:B,selectedClass:this.selectedClass});
+C.getEl().setWidth(lw);C.getEl().setStyle({position:i<1?'relative':'absolute',top:0,left:(i*lw)+'px',display:i>0?'none':'block'});C.on('selectionchange',this.onSelectChange,this,{list:i});C.on('dblclick',this.onDoubleClick,this,{list:i});B.on('beforeload',this.onBeforeLoad,this);
+B.on('load',this.onLoad,this,{list:i});B.on('loadexception',this.onLoadException,this);},restrictHeight:function(){var mh=0;Roo.each(this.innerLists,function(il,i){var el=this.views[i].getEl();el.dom.style.height='';var A=el.dom;var h=Math.max(il.clientHeight,il.offsetHeight,il.scrollHeight);
+mh=Math.max(h,mh);if(i<1){el.setHeight(h<this.maxHeight?'auto':this.maxHeight);il.setHeight(h<this.maxHeight?'auto':this.maxHeight);}},this);this.list.beginUpdate();this.list.setHeight(mh+this.list.getFrameWidth('tb')+this.assetHeight);this.list.alignTo(this.el,this.listAlign);
+this.list.endUpdate();},onBeforeLoad:function(){if(!this.hasFocus){return;}this.innerLists[0].update(this.loadingText?'<div class="loading-indicator">'+this.loadingText+'</div>':'');this.restrictHeight();this.selectedIndex=-1;},onLoad:function(a,b,c,d){if(!this.loadingChildren){for(var i=1;
+i<this.views.length;i++){this.views[i].getEl().setStyle({display:'none'});}var lw=Math.floor(((this.listWidth*this.maxColumns||Math.max(this.wrap.getWidth(),this.minListWidth))-this.list.getFrameWidth('lr'))/this.maxColumns);this.list.setWidth(lw);}if(!this.hasFocus){return;
+}if(this.store.getCount()>0){this.expand();this.restrictHeight();}else{this.onEmptyResults();}if(!this.loadingChildren){this.selectActive();}},onLoadException:function(){this.collapse();Roo.log(this.store.reader.jsonData);if(this.store&&typeof(this.store.reader.jsonData.errorMsg)!='undefined'){Roo.MessageBox.alert("Error loading",this.store.reader.jsonData.errorMsg);
+}},cleanLeadingSpace:function(e){},onSelectChange:function(A,B,C){var ix=A.getSelectedIndexes();if(C.list>this.maxColumns-2){if(A.store.getCount()<1){this.views[C.list].getEl().setStyle({display:'none'});}else{if(ix.length){this.setFromData(A.store.getAt(ix[0]).data);
+}}return;}if(!ix.length){var D=this.stores[C.list+1];D.data.clear();return;}var E=A.store.getAt(ix[0]);this.setFromData(E.data);this.fireEvent('select',this,E,ix[0]);var lw=Math.floor(((this.listWidth*this.maxColumns||Math.max(this.wrap.getWidth(),this.minListWidth))-this.list.getFrameWidth('lr'))/this.maxColumns);
+this.loadingChildren=true;this.stores[C.list+1].loadDataFromChildren(E);this.loadingChildren=false;var dl=this.stores[C.list+1].getTotalCount();this.views[C.list+1].getEl().setHeight(this.innerLists[0].getHeight());this.views[C.list+1].getEl().setStyle({display:dl?'block':'none'}
+);for(var i=C.list+2;i<this.views.length;i++){this.views[i].getEl().setStyle({display:'none'});}this.innerLists[C.list+1].setHeight(this.innerLists[0].getHeight());this.list.setWidth(lw*(C.list+(dl?2:1)));if(this.isLoading){}},onDoubleClick:function(){this.collapse();
+},recordToStack:function(A,B,C,D){var E=new Roo.data.SimpleStore({reader:this.store.reader,data:[]});var F=this;var G=false;var H=false;if(A.getCount()<1){return false;}A.each(function(r){if(r.data[B]==C){G=r;H=r;return false;}if(r.data.cn&&r.data.cn.length){E.loadDataFromChildren(r);
+var I=F.recordToStack(E,B,C,D);if(I!==false){G=I;H=r;return false;}}return true;});if(G==false){return false}D.unshift(H);return G;},selectActive:function(){var A=[];this.recordToStack(this.store,this.valueField,this.getValue(),A);for(var i=0;i<A.length;i++){this.views[i].select(A[i].store.indexOf(A[i]),false,false);
+}}});
 // Roo/form/Checkbox.js
 Roo.form.Checkbox=function(A){Roo.form.Checkbox.superclass.constructor.call(this,A);this.addEvents({check:true});};Roo.extend(Roo.form.Checkbox,Roo.form.Field,{focusClass:undefined,fieldClass:"x-form-field",checked:false,defaultAutoCreate:{tag:"input",type:'hidden',autocomplete:"off"}
 ,boxLabel:"",inputValue:'1',valueOff:'0',actionMode:'viewEl',itemCls:'x-menu-check-item x-form-item',groupClass:'x-menu-group-item',inputType:'hidden',inSetChecked:false,inputElement:false,basedOn:false,isFormField:true,onResize:function(){Roo.form.Checkbox.superclass.onResize.apply(this,arguments);