home *** CD-ROM | disk | FTP | other *** search
/ PC User 2005 May / CD / PCU0505CD.iso / software / full / coffecup / files / html2005.exe / %MAINDIR% / Javascript / Advanced-Calculator.xml < prev    next >
Encoding:
Text File  |  2005-02-16  |  4.2 KB  |  188 lines

  1. <ccResource>
  2.   <ccTitle>
  3. Advanced Calculator
  4.   </ccTitle>
  5.   <ccCategory>
  6. Calculators
  7.   </ccCategory>
  8.   <ccDescription>
  9. This is a very comprehensive JavaScript calculator. Although the source code can get quite confusing, it works.
  10.   </ccDescription>
  11.   <ccInstructions>
  12. Paste the coding into the BODY of your HTML document
  13.   </ccInstructions>
  14.   <ccHeadContent>
  15.   
  16.   </ccHeadContent>
  17.   <ccBodyContent>
  18.  
  19. <CENTER>
  20. <FORM name="Keypad" action="">
  21.  
  22. <TABLE>
  23. <B>
  24. <TABLE border=2 width=50 height=60 cellpadding=1 cellspacing=5>
  25. <TR>
  26. <TD colspan=3 align=middle>
  27. <input name="ReadOut" type="Text" size=24 value="0" width=100%>
  28. </TD>
  29. <TD
  30. </TD>
  31. <TD>
  32. <input name="btnClear" type="Button" value="  C  " onclick="Clear()">
  33. </TD>
  34. <TD><input name="btnClearEntry" type="Button" value="  CE " onclick="ClearEntry()">
  35. </TD>
  36. </TR>
  37. <TR>
  38. <TD>
  39. <input name="btnSeven" type="Button" value="  7  " onclick="NumPressed(7)">
  40. </TD>
  41. <TD>
  42. <input name="btnEight" type="Button" value="  8  " onclick="NumPressed(8)">
  43. </TD>
  44. <TD>
  45. <input name="btnNine" type="Button" value="  9  " onclick="NumPressed(9)">
  46. </TD>
  47. <TD>
  48. </TD>
  49. <TD>
  50. <input name="btnNeg" type="Button" value=" +/- " onclick="Neg()">
  51. </TD>
  52. <TD>
  53. <input name="btnPercent" type="Button" value="  % " onclick="Percent()">
  54. </TD>
  55. </TR>
  56. <TR>
  57. <TD>
  58. <input name="btnFour" type="Button" value="  4  " onclick="NumPressed(4)">
  59. </TD>
  60. <TD>
  61. <input name="btnFive" type="Button" value="  5  " onclick="NumPressed(5)">
  62. </TD>
  63. <TD>
  64. <input name="btnSix" type="Button" value="  6  " onclick="NumPressed(6)">
  65. </TD>
  66. <TD>
  67. </TD>
  68. <TD align=middle><input name="btnPlus" type="Button" value="  +  " onclick="Operation('+')">
  69. </TD>
  70. <TD align=middle><input name="btnMinus" type="Button" value="   -   " onclick="Operation('-')">
  71. </TD>
  72. </TR>
  73. <TR>
  74. <TD>
  75. <input name="btnOne" type="Button" value="  1  " onclick="NumPressed(1)">
  76. </TD>
  77. <TD>
  78. <input name="btnTwo" type="Button" value="  2  " onclick="NumPressed(2)">
  79. </TD>
  80. <TD>
  81. <input name="btnThree" type="Button" value="  3  " onclick="NumPressed(3)">
  82. </TD>
  83. <TD>
  84. </TD>
  85. <TD align=middle><input name="btnMultiply" type="Button" value="  *  " onclick="Operation('*')">
  86. </TD>
  87. <TD align=middle><input name="btnDivide" type="Button" value="   /   " onclick="Operation('/')">
  88. </TD>
  89. </TR>
  90. <TR>
  91. <TD>
  92. <input name="btnZero" type="Button" value="  0  " onclick="NumPressed(0)">
  93. </TD>
  94. <TD>
  95. <input name="btnDecimal" type="Button" value="   .  " onclick="Decimal()">
  96. </TD>
  97. <TD colspan=3>
  98. </TD>
  99. <TD>
  100. <input name="btnEquals" type="Button" value="  =  " onclick="Operation('=')">
  101. </TD>
  102. </TR>
  103. </TABLE>
  104. </TABLE>
  105. </B>
  106. </FORM>
  107. </CENTER>
  108. <font face="Verdana, Arial, Helvetica" size=2>
  109. <SCRIPT LANGUAGE="JavaScript">
  110. <!-- Begin
  111. var FKeyPad = document.Keypad;
  112. var Accum = 0;
  113. var FlagNewNum = false;
  114. var PendingOp = "";
  115. function NumPressed (Num) {
  116. if (FlagNewNum) {
  117. FKeyPad.ReadOut.value  = Num;
  118. FlagNewNum = false;
  119.    }
  120. else {
  121. if (FKeyPad.ReadOut.value == "0")
  122. FKeyPad.ReadOut.value = Num;
  123. else
  124. FKeyPad.ReadOut.value += Num;
  125.    }
  126. }
  127. function Operation (Op) {
  128. var Readout = FKeyPad.ReadOut.value;
  129. if (FlagNewNum && PendingOp != "=");
  130. else
  131. {
  132. FlagNewNum = true;
  133. if ( '+' == PendingOp )
  134. Accum += parseFloat(Readout);
  135. else if ( '-' == PendingOp )
  136. Accum -= parseFloat(Readout);
  137. else if ( '/' == PendingOp )
  138. Accum /= parseFloat(Readout);
  139. else if ( '*' == PendingOp )
  140. Accum *= parseFloat(Readout);
  141. else
  142. Accum = parseFloat(Readout);
  143. FKeyPad.ReadOut.value = Accum;
  144. PendingOp = Op;
  145.    }
  146. }
  147. function Decimal () {
  148. var curReadOut = FKeyPad.ReadOut.value;
  149. if (FlagNewNum) {
  150. curReadOut = "0.";
  151. FlagNewNum = false;
  152.    }
  153. else
  154. {
  155. if (curReadOut.indexOf(".") == -1)
  156. curReadOut += ".";
  157.    }
  158. FKeyPad.ReadOut.value = curReadOut;
  159. }
  160. function ClearEntry () {
  161. FKeyPad.ReadOut.value = "0";
  162. FlagNewNum = true;
  163. }
  164. function Clear () {
  165. Accum = 0;
  166. PendingOp = "";
  167. ClearEntry();
  168. }
  169. function Neg () {
  170. FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;
  171. }
  172. function Percent () {
  173. FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);
  174. }
  175. // End -->
  176. </SCRIPT>
  177.  
  178.   </ccBodyContent>
  179.   <ccElementContent>
  180.   
  181.    <ccElementName></ccElementName>
  182.    <ccElementAction></ccElementAction>
  183.    
  184.   </ccElementContent>
  185.   <ccExtraData>
  186.  
  187.   </ccExtraData>
  188. </ccResource>