User:Lupin/Scripter/evaluator

//////////////////////////////////////////////////////////////// // Evaluator // Source: http://krolik.net/js-eval.shtml

var evaluatorHTML='<FORM ID="Tester" NAME="Tester" onsubmit="return TesterExecute();" >' +

 '<TEXTAREA NAME="MyCommand" COLS=60 ROWS=25 WRAP="off"></TEXTAREA>' +
 '<TEXTAREA NAME="MyResult" COLS=40 ROWS=25 WRAP="off"></TEXTAREA>' + 
 '
' + '<INPUT TYPE=BUTTON value="Show Object" onclick="ObjectDumpClicked();" >' + '<INPUT TYPE=BUTTON value="Execute" onclick="TesterExecute();">' + '</FORM>';

function ObjectDump(strObject) {

 var strOutput; 
 var vTemp; 
 var vAnotherTemp; 
 var vElement;
 vElement = eval(strObject); 
 strOutput = "typeof = " + typeof(vElement) + "\n\n";
 AppendOutput(strOutput);
 for (var x in vElement )  
 { 
  vTemp = strObject + "." + x.toString() ; 
  vAnotherTemp = strObject + "[" + x + "]" ; 
  strOutput = strOutput + vTemp + " = " + eval(vTemp) + "\n";
  AppendOutput(vTemp + " = " + eval(vTemp) + "\n");
 } 
 return strOutput ;  
} 
function AppendOutput(strText)
{
 document.Tester.MyResult.value = document.Tester.MyResult.value + strText;
}
function Output(strText)
{
 document.Tester.MyResult.value = strText;
}
function ObjectDumpClicked() 
{
 document.Tester.MyResult.value="";
 ObjectDump(document.Tester.MyCommand.value); 
 return false;
}
function TesterExecute() 
{       
 document.Tester.MyResult.value="";
 document.Tester.MyResult.value=eval(document.Tester.MyCommand.value); 
 return false;
}

function addEvaluator() {

 var evalNode=document.createElement('div');
 evalNode.id='evalNode';
 evalNode.innerHTML=evaluatorHTML;
 document.body.appendChild(evalNode);
 document.Tester=document.getElementById('Tester');

}

addOnloadFunction(addEvaluator);

// // end evaluator ////////////////////////////////////////////////////////////////