code: function getOverrides( style )
  	{
  		if ( style._.overrides )
  			return style._.overrides;
  
  		var overrides = ( style._.overrides = {} ),
  			definition = style._.definition.overrides;
  
  		if ( definition )
  		{
  			// The override description can be a string, object or array.
  			// Internally, well handle arrays only, so transform it if needed.
  			if ( !CKEDITOR.tools.isArray( definition ) )
  				definition = [ definition ];
  
  			// Loop through all override definitions.
  			for ( var i = 0 ; i < definition.length ; i++ )
  			{
  				var override = definition[i];
  				var elementName;
  				var overrideEl;
  				var attrs;
  
  				// If can be a string with the element name.
  				if ( typeof override == 'string' )
  					elementName = override.toLowerCase();
  				// Or an object.
  				else
  				{
  					elementName = override.element ? override.element.toLowerCase() : style.element;
  					attrs = override.attributes;
  				}
  
  				// We can have more than one override definition for the same
  				// element name, so we attempt to simply append information to
  				// it if it already exists.
  				overrideEl = overrides[ elementName ] || ( overrides[ elementName ] = {} );
  
  				if ( attrs )
  				{
  					// The returning attributes list is an array, because we
  					// could have different override definitions for the same
  					// attribute name.
  					var overrideAttrs = ( overrideEl.attributes = overrideEl.attributes || new Array() );
  					for ( var attName in attrs )
  					{
  						// Each item in the attributes array is also an array,
  						// where [0] is the attribute name and [1] is the
  						// override value.
  						overrideAttrs.push( [ attName.toLowerCase(), attrs[ attName ] ] );
  					}
  				}
  			}
  		}
  
  		return overrides;
  	}
docs: Get the the collection used to compare the elements and attributes,
  defined in this style overrides, with other element. All information in
  it is lowercased.
  @param {CKEDITOR.style} style