-/**\r
- * @class Ext.DomHelper\r
- */\r
-Ext.apply(Ext.DomHelper,\r
-function(){\r
- var pub,\r
- afterbegin = 'afterbegin',\r
- afterend = 'afterend',\r
- beforebegin = 'beforebegin',\r
- beforeend = 'beforeend';\r
-\r
- // private\r
- function doInsert(el, o, returnElement, pos, sibling, append){\r
- el = Ext.getDom(el);\r
- var newNode;\r
- if (pub.useDom) {\r
- newNode = createDom(o, null);\r
- if (append) {\r
- el.appendChild(newNode);\r
- } else {\r
- (sibling == 'firstChild' ? el : el.parentNode).insertBefore(newNode, el[sibling] || el);\r
- }\r
- } else {\r
- newNode = Ext.DomHelper.insertHtml(pos, el, Ext.DomHelper.createHtml(o));\r
- }\r
- return returnElement ? Ext.get(newNode, true) : newNode;\r
- }\r
-\r
- // build as dom\r
- /** @ignore */\r
- function createDom(o, parentNode){\r
- var el,\r
- doc = document,\r
- useSet,\r
- attr,\r
- val,\r
- cn;\r
-\r
- if (Ext.isArray(o)) { // Allow Arrays of siblings to be inserted\r
- el = doc.createDocumentFragment(); // in one shot using a DocumentFragment\r
- Ext.each(o, function(v) {\r
- createDom(v, el);\r
- });\r
- } else if (Ext.isString(o)) { // Allow a string as a child spec.\r
- el = doc.createTextNode(o);\r
- } else {\r
- el = doc.createElement( o.tag || 'div' );\r
- useSet = !!el.setAttribute; // In IE some elements don't have setAttribute\r
- Ext.iterate(o, function(attr, val){\r
- if(!/tag|children|cn|html|style/.test(attr)){\r
- if(attr == 'cls'){\r
- el.className = val;\r
- }else{\r
- if(useSet){\r
- el.setAttribute(attr, val);\r
- }else{\r
- el[attr] = val;\r
- }\r
- }\r
- }\r
- });\r
- Ext.DomHelper.applyStyles(el, o.style);\r
-\r
- if ((cn = o.children || o.cn)) {\r
- createDom(cn, el);\r
- } else if (o.html) {\r
- el.innerHTML = o.html;\r
- }\r
- }\r
- if(parentNode){\r
- parentNode.appendChild(el);\r
- }\r
- return el;\r
- }\r
-\r
- pub = {\r
- <div id="method-Ext.DomHelper-createTemplate"></div>/**\r
- * Creates a new Ext.Template from the DOM object spec.\r
- * @param {Object} o The DOM object spec (and children)\r
- * @return {Ext.Template} The new template\r
- */\r
- createTemplate : function(o){\r
- var html = Ext.DomHelper.createHtml(o);\r
- return new Ext.Template(html);\r
- },\r
-\r
- <div id="prop-Ext.DomHelper-useDom"></div>/** True to force the use of DOM instead of html fragments @type Boolean */\r
- useDom : false,\r
-\r
- <div id="method-Ext.DomHelper-insertBefore"></div>/**\r
- * Creates new DOM element(s) and inserts them before el.\r
- * @param {Mixed} el The context element\r
- * @param {Object/String} o The DOM object spec (and children) or raw HTML blob\r
- * @param {Boolean} returnElement (optional) true to return a Ext.Element\r
- * @return {HTMLElement/Ext.Element} The new node\r
- * @hide (repeat)\r
- */\r
- insertBefore : function(el, o, returnElement){\r
- return doInsert(el, o, returnElement, beforebegin);\r
- },\r
-\r
- <div id="method-Ext.DomHelper-insertAfter"></div>/**\r
- * Creates new DOM element(s) and inserts them after el.\r
- * @param {Mixed} el The context element\r
- * @param {Object} o The DOM object spec (and children)\r
- * @param {Boolean} returnElement (optional) true to return a Ext.Element\r
- * @return {HTMLElement/Ext.Element} The new node\r
- * @hide (repeat)\r
- */\r
- insertAfter : function(el, o, returnElement){\r
- return doInsert(el, o, returnElement, afterend, 'nextSibling');\r
- },\r
-\r
- <div id="method-Ext.DomHelper-insertFirst"></div>/**\r
- * Creates new DOM element(s) and inserts them as the first child of el.\r
- * @param {Mixed} el The context element\r
- * @param {Object/String} o The DOM object spec (and children) or raw HTML blob\r
- * @param {Boolean} returnElement (optional) true to return a Ext.Element\r
- * @return {HTMLElement/Ext.Element} The new node\r
- * @hide (repeat)\r
- */\r
- insertFirst : function(el, o, returnElement){\r
- return doInsert(el, o, returnElement, afterbegin, 'firstChild');\r
- },\r
-\r
- <div id="method-Ext.DomHelper-append"></div>/**\r
- * Creates new DOM element(s) and appends them to el.\r
- * @param {Mixed} el The context element\r
- * @param {Object/String} o The DOM object spec (and children) or raw HTML blob\r
- * @param {Boolean} returnElement (optional) true to return a Ext.Element\r
- * @return {HTMLElement/Ext.Element} The new node\r
- * @hide (repeat)\r
- */\r
- append: function(el, o, returnElement){\r
- return doInsert(el, o, returnElement, beforeend, '', true);\r
- },\r
-\r
- <div id="method-Ext.DomHelper-createDom"></div>/**\r
- * Creates new DOM element(s) without inserting them to the document.\r
- * @param {Object/String} o The DOM object spec (and children) or raw HTML blob\r
- * @return {HTMLElement} The new uninserted node\r
- */\r
- createDom: createDom\r
- };\r
- return pub;\r
-}());</pre>
+/**
+ * @class Ext.DomHelper
+ */
+Ext.apply(Ext.DomHelper,
+function(){
+ var pub,
+ afterbegin = 'afterbegin',
+ afterend = 'afterend',
+ beforebegin = 'beforebegin',
+ beforeend = 'beforeend',
+ confRe = /tag|children|cn|html$/i;
+
+ // private
+ function doInsert(el, o, returnElement, pos, sibling, append){
+ el = Ext.getDom(el);
+ var newNode;
+ if (pub.useDom) {
+ newNode = createDom(o, null);
+ if (append) {
+ el.appendChild(newNode);
+ } else {
+ (sibling == 'firstChild' ? el : el.parentNode).insertBefore(newNode, el[sibling] || el);
+ }
+ } else {
+ newNode = Ext.DomHelper.insertHtml(pos, el, Ext.DomHelper.createHtml(o));
+ }
+ return returnElement ? Ext.get(newNode, true) : newNode;
+ }
+
+ // build as dom
+ /** @ignore */
+ function createDom(o, parentNode){
+ var el,
+ doc = document,
+ useSet,
+ attr,
+ val,
+ cn;
+
+ if (Ext.isArray(o)) { // Allow Arrays of siblings to be inserted
+ el = doc.createDocumentFragment(); // in one shot using a DocumentFragment
+ for (var i = 0, l = o.length; i < l; i++) {
+ createDom(o[i], el);
+ }
+ } else if (typeof o == 'string') { // Allow a string as a child spec.
+ el = doc.createTextNode(o);
+ } else {
+ el = doc.createElement( o.tag || 'div' );
+ useSet = !!el.setAttribute; // In IE some elements don't have setAttribute
+ for (var attr in o) {
+ if(!confRe.test(attr)){
+ val = o[attr];
+ if(attr == 'cls'){
+ el.className = val;
+ }else{
+ if(useSet){
+ el.setAttribute(attr, val);
+ }else{
+ el[attr] = val;
+ }
+ }
+ }
+ }
+ Ext.DomHelper.applyStyles(el, o.style);
+
+ if ((cn = o.children || o.cn)) {
+ createDom(cn, el);
+ } else if (o.html) {
+ el.innerHTML = o.html;
+ }
+ }
+ if(parentNode){
+ parentNode.appendChild(el);
+ }
+ return el;
+ }
+
+ pub = {
+ <div id="method-Ext.DomHelper-createTemplate"></div>/**
+ * Creates a new Ext.Template from the DOM object spec.
+ * @param {Object} o The DOM object spec (and children)
+ * @return {Ext.Template} The new template
+ */
+ createTemplate : function(o){
+ var html = Ext.DomHelper.createHtml(o);
+ return new Ext.Template(html);
+ },
+
+ <div id="prop-Ext.DomHelper-useDom"></div>/** True to force the use of DOM instead of html fragments @type Boolean */
+ useDom : false,
+
+ <div id="method-Ext.DomHelper-insertBefore"></div>/**
+ * Creates new DOM element(s) and inserts them before el.
+ * @param {Mixed} el The context element
+ * @param {Object/String} o The DOM object spec (and children) or raw HTML blob
+ * @param {Boolean} returnElement (optional) true to return a Ext.Element
+ * @return {HTMLElement/Ext.Element} The new node
+ * @hide (repeat)
+ */
+ insertBefore : function(el, o, returnElement){
+ return doInsert(el, o, returnElement, beforebegin);
+ },
+
+ <div id="method-Ext.DomHelper-insertAfter"></div>/**
+ * Creates new DOM element(s) and inserts them after el.
+ * @param {Mixed} el The context element
+ * @param {Object} o The DOM object spec (and children)
+ * @param {Boolean} returnElement (optional) true to return a Ext.Element
+ * @return {HTMLElement/Ext.Element} The new node
+ * @hide (repeat)
+ */
+ insertAfter : function(el, o, returnElement){
+ return doInsert(el, o, returnElement, afterend, 'nextSibling');
+ },
+
+ <div id="method-Ext.DomHelper-insertFirst"></div>/**
+ * Creates new DOM element(s) and inserts them as the first child of el.
+ * @param {Mixed} el The context element
+ * @param {Object/String} o The DOM object spec (and children) or raw HTML blob
+ * @param {Boolean} returnElement (optional) true to return a Ext.Element
+ * @return {HTMLElement/Ext.Element} The new node
+ * @hide (repeat)
+ */
+ insertFirst : function(el, o, returnElement){
+ return doInsert(el, o, returnElement, afterbegin, 'firstChild');
+ },
+
+ <div id="method-Ext.DomHelper-append"></div>/**
+ * Creates new DOM element(s) and appends them to el.
+ * @param {Mixed} el The context element
+ * @param {Object/String} o The DOM object spec (and children) or raw HTML blob
+ * @param {Boolean} returnElement (optional) true to return a Ext.Element
+ * @return {HTMLElement/Ext.Element} The new node
+ * @hide (repeat)
+ */
+ append: function(el, o, returnElement){
+ return doInsert(el, o, returnElement, beforeend, '', true);
+ },
+
+ <div id="method-Ext.DomHelper-createDom"></div>/**
+ * Creates new DOM element(s) without inserting them to the document.
+ * @param {Object/String} o The DOM object spec (and children) or raw HTML blob
+ * @return {HTMLElement} The new uninserted node
+ */
+ createDom: createDom
+ };
+ return pub;
+}());
+</pre>