Upgrade to ExtJS 3.2.0 - Released 03/30/2010
[extjs.git] / docs / source / Element.insertion-more.html
index 7886cf9..900aeb0 100644 (file)
@@ -1,55 +1,67 @@
-<html>\r
-<head>\r
-  <title>The source code</title>\r
-    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
-    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
-</head>\r
-<body  onload="prettyPrint();">\r
-    <pre class="prettyprint lang-js">/**\r
- * @class Ext.Element\r
- */\r
-Ext.apply(Ext.Element.prototype, function() {\r
-       var GETDOM = Ext.getDom,\r
-               GET = Ext.get,\r
-               DH = Ext.DomHelper;\r
-       \r
-       return {        \r
-               <div id="method-Ext.Element-insertSibling"></div>/**\r
-            * Inserts (or creates) the passed element (or DomHelper config) as a sibling of this element\r
-            * @param {Mixed/Object/Array} el The id, element to insert or a DomHelper config to create and insert *or* an array of any of those.\r
-            * @param {String} where (optional) 'before' or 'after' defaults to before\r
-            * @param {Boolean} returnDom (optional) True to return the raw DOM element instead of Ext.Element\r
-            * @return {Ext.Element} the inserted Element\r
-            */\r
-           insertSibling: function(el, where, returnDom){\r
-               var me = this,\r
-                       rt;\r
-                       \r
-               if(Ext.isArray(el)){            \r
-                   Ext.each(el, function(e) {\r
-                           rt = me.insertSibling(e, where, returnDom);\r
-                   });\r
-                   return rt;\r
-               }\r
-                       \r
-               where = (where || 'before').toLowerCase();\r
-               el = el || {};\r
-               \r
-            if(el.nodeType || el.dom){\r
-                rt = me.dom.parentNode.insertBefore(GETDOM(el), where == 'before' ? me.dom : me.dom.nextSibling);\r
-                if (!returnDom) {\r
-                    rt = GET(rt);\r
-                }\r
-            }else{\r
-                if (where == 'after' && !me.dom.nextSibling) {\r
-                    rt = DH.append(me.dom.parentNode, el, !returnDom);\r
-                } else {                    \r
-                    rt = DH[where == 'after' ? 'insertAfter' : 'insertBefore'](me.dom, el, !returnDom);\r
-                }\r
-            }\r
-               return rt;\r
-           }\r
-    };\r
-}());</pre>    \r
-</body>\r
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
+  <title>The source code</title>
+    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
+    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
+</head>
+<body  onload="prettyPrint();">
+    <pre class="prettyprint lang-js">/*!
+ * Ext JS Library 3.2.0
+ * Copyright(c) 2006-2010 Ext JS, Inc.
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+/**
+ * @class Ext.Element
+ */
+Ext.apply(Ext.Element.prototype, function() {
+       var GETDOM = Ext.getDom,
+               GET = Ext.get,
+               DH = Ext.DomHelper;
+       
+       return {        
+               <div id="method-Ext.Element-insertSibling"></div>/**
+            * Inserts (or creates) the passed element (or DomHelper config) as a sibling of this element
+            * @param {Mixed/Object/Array} el The id, element to insert or a DomHelper config to create and insert *or* an array of any of those.
+            * @param {String} where (optional) 'before' or 'after' defaults to before
+            * @param {Boolean} returnDom (optional) True to return the raw DOM element instead of Ext.Element
+            * @return {Ext.Element} The inserted Element. If an array is passed, the last inserted element is returned.
+            */
+           insertSibling: function(el, where, returnDom){
+               var me = this,
+                       rt,
+                isAfter = (where || 'before').toLowerCase() == 'after',
+                insertEl;
+                       
+               if(Ext.isArray(el)){
+                insertEl = me;
+                   Ext.each(el, function(e) {
+                           rt = Ext.fly(insertEl, '_internal').insertSibling(e, where, returnDom);
+                    if(isAfter){
+                        insertEl = rt;
+                    }
+                   });
+                   return rt;
+               }
+                       
+               el = el || {};
+               
+            if(el.nodeType || el.dom){
+                rt = me.dom.parentNode.insertBefore(GETDOM(el), isAfter ? me.dom.nextSibling : me.dom);
+                if (!returnDom) {
+                    rt = GET(rt);
+                }
+            }else{
+                if (isAfter && !me.dom.nextSibling) {
+                    rt = DH.append(me.dom.parentNode, el, !returnDom);
+                } else {                    
+                    rt = DH[isAfter ? 'insertAfter' : 'insertBefore'](me.dom, el, !returnDom);
+                }
+            }
+               return rt;
+           }
+    };
+}());</pre>    
+</body>
 </html>
\ No newline at end of file