1  <HTML>
  2  <HEAD>
  3  <TITLE>JavaScript Example:  Math methods</TITLE>
  4  
  5  <SCRIPT LANGUAGE="JavaScript">
  6  <!-- hide script from old browsers
  7  
  8  // Single-argument math methods:
  9  mathMethod = new Array("abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan");
 10  
 11  // Called by the onLoad handler:
 12  function initialize() {
 13    for ( var i = 0; i < mathMethod.length; i++ ) {
 14      updateForm( mathMethod[i] );
 15    }
 16    document.forms[1].max_out.value = parseInput("max", document.forms[1].max_in.value);
 17    document.forms[1].min_out.value = parseInput("min", document.forms[1].min_in.value);
 18    document.forms[1].pow_out.value = parseInput("pow", document.forms[1].pow_in.value);
 19  }
 20  
 21  // Called by the initialize() method and the onClick handler of forms[0]:
 22  function updateForm( method ) {
 23    with ( Math ) {
 24      eval( "document.forms[0]." + method + "_out.value = " + method + "(eval(document.forms[0]." + method + "_in.value))" );
 25    }
 26  }
 27  
 28  // Called by the initialize() method and the onClick handler of forms[1]:
 29  function parseInput(method, args) {
 30    // Bug:  What if there are multiple commas in 'args'?
 31    var pos = args.indexOf(",");
 32    var arg1 = args.substring(0, pos);
 33    var arg2 = args.substring(pos+1, args.length);
 34    var parsedArg = "(eval(" + arg1 + "), eval(" + arg2 + "))";
 35    with(Math) {
 36      var result = eval(method + parsedArg);
 37    }
 38    return result;
 39  }
 40  
 41  // end script hiding -->
 42  </SCRIPT>
 43  
 44  </HEAD>
 45  
 46  <BODY BGCOLOR="#FFFFFF" onLoad="initialize()">
 47  
 48  <H2>Math methods (single arg)</H2>
 49  
 50  <SCRIPT LANGUAGE="JavaScript">
 51  <!-- hide script from old browsers
 52  
 53  initValue  = new Array("1 - 4",-1,1,1,"1/2","PI",1,1.9,"exp(2)","(1 - sqrt(2))/2","PI/2",2,"PI/4");
 54  
 55  document.writeln("<FORM>\n<TABLE>\n");
 56  for ( var i = 0; i < mathMethod.length; i++ ) {
 57    document.writeln("<TR>");
 58    document.writeln("<TD>" + mathMethod[i] + "</TD>");
 59    document.writeln("<TD>");
 60    document.write("<INPUT TYPE=\"text\" ");
 61    document.write("NAME=\"" + mathMethod[i] + "_in\" ");
 62    document.writeln("VALUE=\"" + initValue[i] + "\"> =");
 63    document.write("<INPUT TYPE=\"text\" ");
 64    document.writeln("NAME=\"" + mathMethod[i] + "_out\">");
 65    document.writeln("</TD>");
 66    document.writeln("<TD>");
 67    document.writeln("<INPUT TYPE=\"button\" VALUE=\"Compute\" ");
 68    document.write('onClick="updateForm(\'' + mathMethod[i] + '\')">');
 69    document.writeln("</TD>");
 70    document.writeln("</TR>");
 71  }
 72  document.writeln("</TABLE>\n</FORM>\n");
 73  
 74  // end script hiding -->
 75  </SCRIPT>
 76  
 77  <H2>Math methods (double arg)</H2>
 78  
 79  <FORM>
 80  <TABLE>
 81  
 82  <TR>
 83  <TD>max</TD>
 84  <TD>
 85    <INPUT TYPE="text" NAME="max_in" VALUE="2.5, E"> =
 86    <INPUT TYPE="text" NAME="max_out">
 87  </TD>
 88  <TD>
 89    <INPUT TYPE="button" VALUE="Compute" 
 90           onClick="this.form.max_out.value = parseInput('max', this.form.max_in.value)">
 91  </TD>
 92  </TR>
 93  
 94  <TR>
 95  <TD>min</TD>
 96  <TD>
 97    <INPUT TYPE="text" NAME="min_in" VALUE="PI/2, (1 + sqrt(5))/2"> =
 98    <INPUT TYPE="text" NAME="min_out">
 99  </TD>
100  <TD>
101    <INPUT TYPE="button" VALUE="Compute" 
102           onClick="this.form.min_out.value = parseInput('min', this.form.min_in.value)">
103  </TD>
104  </TR>
105  
106  <TR>
107  <TD>pow</TD>
108  <TD>
109    <INPUT TYPE="text" NAME="pow_in" VALUE="2, 3"> =
110    <INPUT TYPE="text" NAME="pow_out">
111  </TD>
112  <TD>
113    <INPUT TYPE="button" VALUE="Compute" 
114           onClick="this.form.pow_out.value = parseInput('pow', this.form.pow_in.value)">
115  </TD>
116  </TR>
117  
118  </TABLE>
119  </FORM>
120  
121  </BODY>
122  </HTML>