nl_tokens: Moves the caret to a suitable position within the root for example in the first non pure whitespace text node or before an image
pl_tokens: function moveToCaretPosition ( root ) { var walker , node , rng , y , viewPort , lastNode = root , tempElm ; rng = dom . createRng ( ) ; if ( root . hasChildNodes ( ) ) { walker = new TreeWalker ( <mask> , root ) ; while ( node = walker . current ( ) ) { if ( node . nodeType == 3 ) { rng . setStart ( node , 0 ) ; rng . setEnd ( node , 0 ) ; break ; } if ( nonEmptyElementsMap [ node . nodeName . toLowerCase ( ) ] ) { rng . setStartBefore ( node ) ; rng . setEndBefore ( node ) ; break ; } lastNode = node ; node = walker . next ( ) ; } if ( ! node ) { rng . setStart ( lastNode , 0 ) ; rng . setEnd ( lastNode , 0 ) ; } } else { if ( root . nodeName == 'BR' ) { if ( root . nextSibling && dom . isBlock ( root . nextSibling ) ) { // Trick on older IE versions to render the caret before the BR between two lists
   if ( ! documentMode || documentMode < 9 ) { tempElm = dom . create ( 'br' ) ; root . parentNode . insertBefore ( tempElm , root ) ; } rng . setStartBefore ( root ) ; rng . setEndBefore ( root ) ; } else { rng . setStartAfter ( root ) ; rng . setEndAfter ( root ) ; } } else { rng . setStart ( root , 0 ) ; rng . setEnd ( root , 0 ) ; } } selection . setRng ( rng ) ; // Remove tempElm created for old IE:s
   dom . remove ( tempElm ) ; viewPort = dom . getViewPort ( editor . getWin ( ) ) ; // scrollIntoView seems to scroll the parent window in most browsers now including FF 3.0b4 so it's time to stop using it and do it our selfs
   y = dom . getPos ( root ) . y ; if ( y < viewPort . y || y + 25 > viewPort . y + viewPort . h ) { editor . getWin ( ) . scrollTo ( 0 , y < viewPort . y ? y : y - viewPort . h + 25 ) ; // Needs to be hardcoded to roughly one line of text if a huge text block is broken into two blocks
   } }