/* March 19, 2004 MathHTML (c) Peter Jipsen http://www.chapman.edu/~jipsen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License (at http://www.gnu.org/copyleft/gpl.html) for more details.*/ function convertMath(node) {// for Gecko if (node.nodeType==1) { var newnode = document.createElementNS("http://www.w3.org/1998/Math/MathML", node.nodeName.toLowerCase()); for(var i=0; i < node.attributes.length; i++) { if (node.attributes[i].nodeName == 'displaystyle') { newnode.setAttribute(node.attributes[i].nodeName,node.attributes[i].nodeValue); } } for (var i=0; i<node.childNodes.length; i++) { var st = node.childNodes[i].nodeValue; if (st==null || st.slice(0,1)!=" " && st.slice(0,1)!="\n") newnode.appendChild(convertMath(node.childNodes[i])); } return newnode; } else return node; } function convert() { if (document.createElementNS) { var mmlnode = document.getElementsByTagName("span"); for (var i=0; i<mmlnode.length; i++) { var tmp_node = mmlnode[i]; if (tmp_node.className == 'asciimath') { tmp_node.replaceChild(convertMath(tmp_node.firstChild),tmp_node.firstChild); /* for (var j=0;j<tmp_node.childNodes.length;j++) { if (tmp_node.childNodes[j].nodeType != 3) { } } */ } } } else { var st,node,newnode; var mmlnode = document.getElementsByTagName("math"); for (var i=0; i<mmlnode.length; i++) { var str = ""; node = mmlnode[i]; while (node.nodeName!="/MATH" && node.nextSibling) { st = node.nodeName.toLowerCase(); if (st=="#text") { str += node.nodeValue; } else { str += (st.slice(0,1)=="/" ? "</m:"+st.slice(1) : "<m:"+st); if (st.slice(0,1)!="/") { for(var j=0; j < node.attributes.length; j++) { if (node.attributes[j].nodeValue!="italic" && node.attributes[j].nodeValue!="" && node.attributes[j].nodeValue!="inherit" && node.attributes[j].nodeValue!=undefined) { str += " "+node.attributes[j].nodeName+"="+ "\""+node.attributes[j].nodeValue+"\""; } } } str += ">"; } node = node.nextSibling; node.parentNode.removeChild(node.previousSibling); } if (str != '') { str += "</m:math>"; newnode = document.createElement("span"); node.parentNode.replaceChild(newnode,node); newnode.innerHTML = str; } } } }