| 195 | | if ( true ) |
| 196 | | { |
| 197 | | iterator.EnforceRealBlocks = true ; |
| 198 | | var paragraphs = [] ; |
| 199 | | while ( ( block = iterator.GetNextParagraph() ) ) |
| 200 | | paragraphs.push( block ) ; |
| 201 | | |
| 202 | | // If no paragraphs, create one from the current selection position. |
| 203 | | if ( paragraphs.length < 1 ) |
| | 195 | iterator.EnforceRealBlocks = true ; |
| | 196 | var paragraphs = [] ; |
| | 197 | var groups = [] ; |
| | 198 | var lastBlockLimit = null ; |
| | 199 | while ( ( block = iterator.GetNextParagraph() ) ) |
| | 200 | { |
| | 201 | var elementPath = new FCKElementPath( block ) ; |
| | 202 | if ( elementPath.BlockLimit != lastBlockLimit ) |
| 214 | | |
| 215 | | // Make sure all paragraphs have the same parent. |
| 216 | | var commonParent = paragraphs[0].parentNode ; |
| 217 | | var tmp = [] ; |
| 218 | | for ( var i = 0 ; i < paragraphs.length ; i++ ) |
| 219 | | { |
| 220 | | block = paragraphs[i] ; |
| 221 | | commonParent = FCKDomTools.GetCommonParents( block.parentNode, commonParent ).pop() ; |
| 222 | | } |
| 223 | | var lastBlock = null ; |
| 224 | | while ( paragraphs.length > 0 ) |
| 225 | | { |
| 226 | | block = paragraphs.shift() ; |
| 227 | | while ( block.parentNode != commonParent ) |
| 228 | | block = block.parentNode ; |
| 229 | | if ( block != lastBlock ) |
| 230 | | tmp.push( block ) ; |
| 231 | | lastBlock = block ; |
| 232 | | } |
| 233 | | |
| 234 | | // If any of the selected blocks is a $tagName, remove it to prevent nested $tagNames. |
| 235 | | while ( tmp.length > 0 ) |
| 236 | | { |
| 237 | | block = tmp.shift() ; |
| 238 | | if ( block.nodeName.IEquals( 'div' ) ) |
| 239 | | { |
| 240 | | var docFrag = oEditor.FCKTools.GetElementDocument( block ).createDocumentFragment() ; |
| 241 | | while ( block.firstChild ) |
| 242 | | { |
| 243 | | docFrag.appendChild( block.removeChild( block.firstChild ) ) ; |
| 244 | | paragraphs.push( docFrag.lastChild ) ; |
| 245 | | } |
| 246 | | block.parentNode.replaceChild( docFrag, block ) ; |
| 247 | | } |
| 248 | | else |
| 249 | | paragraphs.push( block ) ; |
| 250 | | } |
| 251 | | |
| 252 | | // Now we have all the blocks to be included in a new $tagName node. |
| 253 | | bqBlock = range.Window.document.createElement( 'div' ) ; |
| 254 | | commonParent.insertBefore( bqBlock, paragraphs[0] ) ; |
| 255 | | while ( paragraphs.length > 0 ) |
| 256 | | { |
| 257 | | block = paragraphs.shift() ; |
| 258 | | bqBlock.appendChild( block ) ; |
| 259 | | } |
| | 207 | groups[groups.length - 1].push( block ) ; |
| | 208 | } |
| | 209 | |
| | 210 | for ( var i = 0 ; i < groups.length ; i++ ) |
| | 211 | { |
| | 212 | var divNode = FCK.EditorDocument.createElement( 'div' ) ; |
| | 213 | groups[i][0].parentNode.insertBefore( divNode, groups[i][0] ) ; |
| | 214 | for ( var j = 0 ; j < groups[i].length ; j++ ) |
| | 215 | FCKDomTools.MoveNode( groups[i][j], divNode ) ; |
| | 216 | bqBlock = divNode ; |