root = root || node.ownerDocument.body; regex = regex || dijit.range.BlockTagNames; var block=null, blockContainer; while(node && node !== root){ var name = node.nodeName.toUpperCase() ; if(!block && regex.test(name)){ block = node; } if(!blockContainer && (/^(?:BODY|TD|TH|CAPTION)$/|>).test(name)){ blockContainer = node; } node = node.parentNode; } return {blockNode:block, blockContainer:blockContainer || node.ownerDocument.body};