JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.1
[ckeditor.git] / _source / core / dom / elementpath.js
index bc9f01a..6dcd4d4 100644 (file)
@@ -1,15 +1,15 @@
 /*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
 (function()\r
 {\r
        // Elements that may be considered the "Block boundary" in an element path.\r
-       var pathBlockElements = { address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 };\r
+       var pathBlockElements = { address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1, legend:1,caption:1 };\r
 \r
        // Elements that may be considered the "Block limit" in an element path.\r
-       var pathBlockLimitElements = { body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,caption:1,form:1 };\r
+       var pathBlockLimitElements = { body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,form:1,fieldset:1 };\r
 \r
        // Check if an element contains any block element.\r
        var checkHasBlock = function( element )\r
@@ -27,6 +27,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                return false;\r
        };\r
 \r
+       /**\r
+        * @class\r
+        */\r
        CKEDITOR.dom.elementPath = function( lastNode )\r
        {\r
                var block = null;\r
@@ -100,5 +103,17 @@ CKEDITOR.dom.elementPath.prototype =
                }\r
 \r
                return true;\r
+       },\r
+\r
+       contains : function( tagNames )\r
+       {\r
+               var elements = this.elements;\r
+               for ( var i = 0 ; i < elements.length ; i++ )\r
+               {\r
+                       if ( elements[ i ].getName() in tagNames )\r
+                               return elements[ i ];\r
+               }\r
+\r
+               return null;\r
        }\r
 };\r