rem:  switch (node.nodeType) { case ELEMENT_TYPE: for (var i = 0; i < node.attributes.length; i++) node.setAttribute(node.attributes[i].name, replace(node.attributes[i].value)); for (var i = 0; i < node.childNodes; i++) xformsStringReplace(node.childNodes[i], placeholder, replacement); break; case TEXT_TYPE: node.nodeValue = replace(node.nodeValue); alert(node.nodeValue); break; } 
add:  xformsStringReplaceWorker(node); 
context: function xformsStringReplace(node, placeholder, replacement) {    function replace(text) {        var text = new String(node.value);        return text.replace(new RegExp("placeholder", "g"), replacement);    }    switch (node.nodeType) {        case ELEMENT_TYPE:            for (var i = 0; i < node.attributes.length; i++)                node.setAttribute(node.attributes[i].name, replace(node.attributes[i].value));            for (var i = 0; i < node.childNodes; i++)                xformsStringReplace(node.childNodes[i], placeholder, replacement);            break;        case TEXT_TYPE:            node.nodeValue = replace(node.nodeValue);            alert(node.nodeValue);            break;    }}
meta: 7519	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/7519/4c60852e55587e10b08d8f0308561a8dcf2376bd/xforms.js/buggy/src/examples/web/oxf-theme/javascript/xforms.js