CLICK HERE TO BUY IT TODAY! OR GET IT FREE VIA TRIALPAY  

PHP Demo Application - Source Code

/Framework/Model/Vendor/CkEditor/_source/core/dom/elementpath.js



/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
(function()
{
	    // Elements that may be considered the "Block boundary" in an element path.
	    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
		};
	    // Elements that may be considered the "Block limit" in an element path.
	    var pathBlockLimitElements = { body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,caption:1,form:1
		};
	    // Check if an element contains any block element.
	    var checkHasBlock = function( element )
	    {
		        var childNodes element.getChildren();
		        for ( var 0count childNodes.count() ;
		 count ;
		 i++ )
		        {
			            var child childNodes.getItem);
			            if ( child.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$blockchild.getName() ] )
			                return true;
			        }
		        return false;
		    };
	    CKEDITOR.dom.elementPath = function( lastNode )
	    {
		        var block null;
		        var blockLimit null;
		        var elements [];
		        var lastNode;
		        while ( )
		        {
			            if ( e.type == CKEDITOR.NODE_ELEMENT )
			            {
				                if ( !this.lastElement )
				                    this.lastElement e;
				                var elementName e.getName();
				                if ( CKEDITOR.env.ie && e.$.scopeName != 'HTML' )
				                    elementName e.$.scopeName.toLowerCase() + ':' elementName;
				                if ( !blockLimit )
				                {
					                    if ( !block && pathBlockElementselementName ] )
					                        block e;
					                    if ( pathBlockLimitElementselementName ] )
					                    {
						                        // DIV is considered the Block, if no block is available (#525)
						                        // and if it doesn't contain other blocks.
						                        if ( !block && elementName == 'div' && !checkHasBlock) )
						                            block e;
						                        else
						                            blockLimit e;
						                    }
					                }
				                elements.push);
				                if ( elementName == 'body' )
				                    break;
				            }
			            e.getParent();
			        }
		        this.block block;
		        this.blockLimit blockLimit;
		        this.elements elements;
		    };
	})();
CKEDITOR.dom.elementPath.prototype =
{
	    /**
	     * Compares this element path with another one.
	     * @param {CKEDITOR.dom.elementPath} otherPath The elementPath object to be
	     * compared with this one.
	     * @returns {Boolean} "true" if the paths are equal, containing the same
	     * number of elements and the same elements in the same order.
	     */
	    compare : function( otherPath )
	    {
		        var thisElements this.elements;
		        var otherElements otherPath && otherPath.elements;
		        if ( !otherElements || thisElements.length != otherElements.length )
		            return false;
		        for ( var ;
		 thisElements.length ;
		 i++ )
		        {
			            if ( !thisElements].equalsotherElements] ) )
			                return false;
			        }
		        return true;
		    },
	    contains : function( tagNames )
	    {
		        var elements this.elements;
		        for ( var ;
		 elements.length ;
		 i++ )
		        {
			            if ( elements].getName() in tagNames )
			                return elements];
			        }
		        return null;
		    }
	};





PHP Demo Source Code Index