function etoa(e) {
result = '';
if (e.Emode == 0) {
result = etoa(e.sides[0])+' '+e.sign+' '+etoa(e.sides[1]);
} else if (e.iscomplex) {
result = '('+etoa(e.value[0])+' '+e.value[1]+' '+etoa(e.value[2])+')';
} else {
if (e.unit) {
if (e.value == '1' || e.value == 1) {
result = e.unit;
} else {
result = e.value+e.unit;
}
} else {
result = e.value+e.unit;
}
}
return result;
}
// works, output:
//// ((a * x) + b) = 0
function etohtml(e) {
result = '';
if (e.Emode == 0) {
result = ''+etohtml(e.sides[0])+' '+e.sign+' '+etohtml(e.sides[1])+'';
} else if (e.iscomplex) {
result = ''+etohtml(e.value[0])+' '+e.value[1]+' '+etohtml(e.value[2])+'';
} else {
result = ''+etoa(e)+'';
}
return result;
}
// this one works - output:
// a * x + b = 0
function etodom(e) {
if (e.Emode == 0) {
result = document.createElement('span');
try {result.className = 'equation';}
catch (err) {result.class = 'equation';}
result.appendChild(etodom(e.sides[0]));
result.appendChild(document.createTextNode(' '+e.sign+' '));
result.appendChild(etodom(e.sides[1]));
} else if (e.iscomplex) {
result = document.createElement('span');
try {result.className = 'led';}
catch (err) {result.class = 'led';}
result.appendChild(etodom(e.value[0])); // Error here:
// uncaught exception: [Exception... "Could not convert JavaScript
// argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location:
// "JS frame :: file:///H:/home/work/equations.html :: etodom :: line 124" data: no]
result.appendChild(document.createTextNode(' '+e.value[1]+' '));
result.appendChild(etodom(e.value[2]));
} else {
result = document.createElement('span');
try {result.className = 'number';}
catch (err) {result.class = 'number';}
result.appendChild(document.createTextNode(etoa(e)));
}
return result;
}