var parentElement; var actualChild; var actualWord; var words; var originalNode = null; var modifiedNode = null; function trim(s) { s = ( s || '' ).replace( /^\s+|\s+$/g, '' ); return s.replace(/[\n\r\t]/g,' '); } function init() { parentElement = document.getElementsByTagName("body")[0]; actualChild = new Array(); actualWord = 0; actualChild.push(0); } function highLightNextWordInt() { var nodeList = parentElement.childNodes; ini_posi = actualChild[actualChild.length - 1]; for (var i=ini_posi; i < nodeList.length; i++) { var node = nodeList[i]; if ((node.nodeName == "#text") && (trim(node.nodeValue) != '')) { node_text = trim(node.nodeValue); words = node_text.split(" "); if (actualWord < words.length) { originalNode = document.createTextNode(node.nodeValue); prev_text = ''; for (var p1 = 0; p1 < actualWord; p1++) { prev_text = prev_text + words[p1] + " "; } var textNode1 = document.createTextNode(prev_text); var textNode2 = document.createTextNode(words[actualWord]+" "); post_text = ''; for (var p2 = actualWord + 1; p2 < words.length; p2++) { post_text = post_text + words[p2] + " "; } var textNode3 = document.createTextNode(post_text); var newParagraph = document.createElement('p'); var boldNode = document.createElement('b'); boldNode.appendChild(textNode2); newParagraph.appendChild(textNode1); newParagraph.appendChild(boldNode); newParagraph.appendChild(textNode3); parentElement.insertBefore(newParagraph, node); parentElement.removeChild(node); modifiedNode = newParagraph; actualWord = actualWord + 1; if (actualWord >= words.length) { actualChild.pop(); actualChild[actualChild.length - 1] = actualChild[actualChild.length - 1] + 2; actualWord = 0; parentElement = parentElement.parentNode; } } throw "exit"; } else { if (node.childNodes.length > 0) { parentElement = node; actualChild.push(0); actualWord = 0; highLightNextWordInt(); actualChild.pop(); } } } return; } function highLightNextWord() { if (typeof parentElement == "undefined") { init(); } if (originalNode != null) { modifiedNode.parentNode.insertBefore(originalNode, modifiedNode); modifiedNode.parentNode.removeChild(modifiedNode); } try { highLightNextWordInt(); } catch(er) { } }