home *** CD-ROM | disk | FTP | other *** search
/ Acorn User 10 / AU_CD10.iso / Archived / Internet / jvscript116beta / JvScript / !JvScript / Resources / Scripts / XCalcs / 1 next >
Encoding:
Text File  |  1999-09-15  |  3.8 KB  |  169 lines

  1. #newformat
  2. _title:Advanced Calculator
  3. _source: http://www.dummyproof.com/javascripts
  4. _description:A somewhat complex javascript calculator
  5.  
  6. _insert-in:inhead
  7. <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
  8. <!-- Begin
  9. var FKeyPad = document.Keypad;
  10. var Accum = 0;
  11. var FlagNewNum = false;
  12. var PendingOp = "";
  13. function NumPressed (Num) {
  14. if (FlagNewNum) {
  15. FKeyPad.ReadOut.value  = Num;
  16. FlagNewNum = false;
  17.    }
  18. else {
  19. if (FKeyPad.ReadOut.value == "0")
  20. FKeyPad.ReadOut.value = Num;
  21. else
  22. FKeyPad.ReadOut.value += Num;
  23.    }
  24. }
  25. function Operation (Op) {
  26. var Readout = FKeyPad.ReadOut.value;
  27. if (FlagNewNum && PendingOp != "=");
  28. else
  29. {
  30. FlagNewNum = true;
  31. if ( '+' == PendingOp )
  32. Accum += parseFloat(Readout);
  33. else if ( '-' == PendingOp )
  34. Accum -= parseFloat(Readout);
  35. else if ( '/' == PendingOp )
  36. Accum /= parseFloat(Readout);
  37. else if ( '*' == PendingOp )
  38. Accum *= parseFloat(Readout);
  39. else
  40. Accum = parseFloat(Readout);
  41. FKeyPad.ReadOut.value = Accum;
  42. PendingOp = Op;
  43.    }
  44. }
  45. function Decimal () {
  46. var curReadOut = FKeyPad.ReadOut.value;
  47. if (FlagNewNum) {
  48. curReadOut = "0.";
  49. FlagNewNum = false;
  50.    }
  51. else
  52. {
  53. if (curReadOut.indexOf(".") == -1)
  54. curReadOut += ".";
  55.    }
  56. FKeyPad.ReadOut.value = curReadOut;
  57. }
  58. function ClearEntry () {
  59. FKeyPad.ReadOut.value = "0";
  60. FlagNewNum = true;
  61. }
  62. function Clear () {
  63. Accum = 0;
  64. PendingOp = "";
  65. ClearEntry();
  66. }
  67. function Neg () {
  68. FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;
  69. }
  70. function Percent () {
  71. FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);
  72. }
  73. // End -->
  74. </SCRIPT>
  75. _end-insert:
  76.  
  77. _insert-in:inbody
  78. <CENTER>
  79. <FORM name="Keypad" action="">
  80.  
  81. <!--  Original:  http://www.dummyproof.com/javascripts -->
  82.  
  83. <!-- This script and many more are available free online at -->
  84. <!-- The JavaScript Source!! http://javascript.internet.com -->
  85.  
  86. <TABLE border=2 width=50 height=60 cellpadding=1 cellspacing=5>
  87. <TR>
  88. <TD colspan=3 align=middle>
  89. <input name="ReadOut" type="Text" size=24 value="0" width=100%>
  90. </TD>
  91. <TD
  92. </TD>
  93. <TD>
  94. <input name="btnClear" type="Button" value="  C  " onclick="Clear()">
  95. </TD>
  96. <TD><input name="btnClearEntry" type="Button" value="  CE " onclick="ClearEntry()">
  97. </TD>
  98. </TR>
  99. <TR>
  100. <TD>
  101. <input name="btnSeven" type="Button" value="  7  " onclick="NumPressed(7)">
  102. </TD>
  103. <TD>
  104. <input name="btnEight" type="Button" value="  8  " onclick="NumPressed(8)">
  105. </TD>
  106. <TD>
  107. <input name="btnNine" type="Button" value="  9  " onclick="NumPressed(9)">
  108. </TD>
  109. <TD>
  110. </TD>
  111. <TD>
  112. <input name="btnNeg" type="Button" value=" +/- " onclick="Neg()">
  113. </TD>
  114. <TD>
  115. <input name="btnPercent" type="Button" value="  % " onclick="Percent()">
  116. </TD>
  117. </TR>
  118. <TR>
  119. <TD>
  120. <input name="btnFour" type="Button" value="  4  " onclick="NumPressed(4)">
  121. </TD>
  122. <TD>
  123. <input name="btnFive" type="Button" value="  5  " onclick="NumPressed(5)">
  124. </TD>
  125. <TD>
  126. <input name="btnSix" type="Button" value="  6  " onclick="NumPressed(6)">
  127. </TD>
  128. <TD>
  129. </TD>
  130. <TD align=middle><input name="btnPlus" type="Button" value="  +  " onclick="Operation('+')">
  131. </TD>
  132. <TD align=middle><input name="btnMinus" type="Button" value="   -   " onclick="Operation('-')">
  133. </TD>
  134. </TR>
  135. <TR>
  136. <TD>
  137. <input name="btnOne" type="Button" value="  1  " onclick="NumPressed(1)">
  138. </TD>
  139. <TD>
  140. <input name="btnTwo" type="Button" value="  2  " onclick="NumPressed(2)">
  141. </TD>
  142. <TD>
  143. <input name="btnThree" type="Button" value="  3  " onclick="NumPressed(3)">
  144. </TD>
  145. <TD>
  146. </TD>
  147. <TD align=middle><input name="btnMultiply" type="Button" value="  *  " onclick="Operation('*')">
  148. </TD>
  149. <TD align=middle><input name="btnDivide" type="Button" value="   /   " onclick="Operation('/')">
  150. </TD>
  151. </TR>
  152. <TR>
  153. <TD>
  154. <input name="btnZero" type="Button" value="  0  " onclick="NumPressed(0)">
  155. </TD>
  156. <TD>
  157. <input name="btnDecimal" type="Button" value="   .  " onclick="Decimal()">
  158. </TD>
  159. <TD colspan=3>
  160. </TD>
  161. <TD>
  162. <input name="btnEquals" type="Button" value="  =  " onclick="Operation('=')">
  163. </TD>
  164. </TR>
  165. </TABLE>
  166. </FORM>
  167. </CENTER>
  168. _end-insert:
  169.