3 * Name: Calculator App
\r
4 * Description: Simple Calculator Application
\r
6 * Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
\r
8 use Friendica\Core\Addon;
\r
10 function calc_install() {
\r
11 Addon::registerHook('app_menu', 'addon/calc/calc.php', 'calc_app_menu');
\r
14 function calc_uninstall() {
\r
15 Addon::unregisterHook('app_menu', 'addon/calc/calc.php', 'calc_app_menu');
\r
19 function calc_app_menu($a,&$b) {
\r
20 $b['app_menu'][] = '<div class="app-title"><a href="calc">Calculator</a></div>';
\r
24 function calc_module() {}
\r
29 function calc_init($a) {
\r
33 <script language="JavaScript">
\r
34 /**************************************
\r
35 * www.FemaleNerd.com *
\r
36 **************************************/
\r
38 // Declare global variables
\r
39 var displayText = ""
\r
45 function addDisplay(n){
\r
46 id = document.getElementById("display");
\r
49 id.value = displayText
\r
53 function addNumbers() {
\r
54 if (displayText == "") {
\r
55 displayText = result
\r
57 num1 = parseFloat(displayText)
\r
58 operatorType = "add"
\r
63 function subtractNumbers() {
\r
64 if (displayText == "") {
\r
65 displayText = result
\r
67 num1 = parseFloat(displayText)
\r
68 operatorType = "subtract"
\r
73 function multiplyNumbers() {
\r
74 if (displayText == "") {
\r
75 displayText = result
\r
77 num1 = parseFloat(displayText)
\r
78 operatorType = "multiply"
\r
83 function divideNumbers() {
\r
84 if (displayText == "") {
\r
85 displayText = result
\r
87 num1 = parseFloat(displayText)
\r
88 operatorType = "divide"
\r
94 id = document.getElementById("display");
\r
95 if (displayText == "") {
\r
99 num1 = parseFloat(displayText)
\r
102 result = Math.sin(num1)
\r
107 alert("Please write the number first")
\r
113 id = document.getElementById("display");
\r
114 if (displayText == "") {
\r
118 num1 = parseFloat(displayText)
\r
121 result = Math.cos(num1)
\r
126 alert("Please write the number first")
\r
131 function arcSin() {
\r
132 id = document.getElementById("display");
\r
133 if (displayText == "") {
\r
137 num1 = parseFloat(displayText)
\r
140 result = Math.asin(num1)
\r
145 alert("Please write the number first")
\r
150 function arcCos() {
\r
151 id = document.getElementById("display");
\r
152 if (displayText == "") {
\r
156 num1 = parseFloat(displayText)
\r
159 result = Math.acos(num1)
\r
164 alert("Please write the number first")
\r
170 id = document.getElementById("display");
\r
171 if (displayText == "") {
\r
175 num1 = parseFloat(displayText)
\r
178 result = Math.sqrt(num1)
\r
183 alert("Please write the number first")
\r
187 // Square number (number to the power of two)
\r
188 function square() {
\r
189 id = document.getElementById("display");
\r
190 if (displayText == "") {
\r
194 num1 = parseFloat(displayText)
\r
197 result = num1 * num1
\r
202 alert("Please write the number first")
\r
206 // Convert degrees to radians
\r
207 function degToRad() {
\r
208 id = document.getElementById("display");
\r
209 if (displayText == "") {
\r
213 num1 = parseFloat(displayText)
\r
216 result = num1 * Math.PI / 180
\r
221 alert("Please write the number first")
\r
225 // Convert radians to degrees
\r
226 function radToDeg() {
\r
227 id = document.getElementById("display");
\r
228 if (displayText == "") {
\r
232 num1 = parseFloat(displayText)
\r
235 result = num1 * 180 / Math.PI
\r
240 alert("Please write the number first")
\r
245 function calculate() {
\r
246 id = document.getElementById("display");
\r
248 if (displayText != "") {
\r
249 num2 = parseFloat(displayText)
\r
251 if (operatorType == "add") {
\r
252 result = num1 + num2
\r
255 // Calc: Subtraction
\r
256 if (operatorType == "subtract") {
\r
257 result = num1 - num2
\r
260 // Calc: Multiplication
\r
261 if (operatorType == "multiply") {
\r
262 result = num1 * num2
\r
266 if (operatorType == "divide") {
\r
267 result = num1 / num2
\r
273 id.value = "Oops! Error!"
\r
277 // Clear the display
\r
278 function clearDisplay() {
\r
279 id = document.getElementById("display");
\r
287 $a->page['htmlhead'] .= $x;
\r
290 function calc_content($app) {
\r
296 <h3>Calculator</h3>
\r
300 <table bgcolor="#af9999" border="1">
\r
302 <table border="1" cellpadding="2" cellspacing="2">
\r
305 <TR><TD VALIGN=top colspan=6 ALIGN="center"> <H2>Calculator</H2> </TD>
\r
308 <td colspan="5"><input size="22" id="display" name="display" type="text"></td>
\r
309 </tr><tr align="left" valign="middle">
\r
310 <td><input name="one" value=" 1 " onclick="addDisplay(1)" type="button"></td>
\r
311 <td><input name="two" value=" 2 " onclick="addDisplay(2)" type="button"></td>
\r
312 <td><input name="three" value=" 3 " onclick="addDisplay(3)" type="button"></td>
\r
313 <td><input name="plus" value=" + " onclick="addNumbers()" type="button"></td>
\r
314 </tr><tr align="left" valign="middle">
\r
315 <td><input name="four" value=" 4 " onclick="addDisplay(4)" type="button"></td>
\r
316 <td><input name="five" value=" 5 " onclick="addDisplay(5)" type="button"></td>
\r
317 <td><input name="six" value=" 6 " onclick="addDisplay(6)" type="button"></td>
\r
318 <td><input name="minus" value=" - " onclick="subtractNumbers()" type="button"></td>
\r
319 </tr><tr align="left" valign="middle">
\r
320 <td><input name="seven" value=" 7 " onclick="addDisplay(7)" type="button"></td>
\r
321 <td><input name="eight" value=" 8 " onclick="addDisplay(8)" type="button"></td>
\r
322 <td><input name="nine" value=" 9 " onclick="addDisplay(9)" type="button"></td>
\r
323 <td><input name="multiplication" value=" * " onclick="multiplyNumbers()" type="button"></td>
\r
324 </tr><tr align="left" valign="middle">
\r
325 <td><input name="zero" value=" 0 " onclick="addDisplay(0)" type="button"></td>
\r
326 <td><input name="pi" value=" Pi " onclick="addDisplay(Math.PI)" type="button"> </td>
\r
327 <td><input name="dot" value=" . " onclick='addDisplay(".")' type="button"></td>
\r
328 <td><input name="division" value=" / " onclick="divideNumbers()" type="button"></td>
\r
329 </tr><tr align="left" valign="middle">
\r
330 <td><input name="sqareroot" value="sqrt" onclick="sqrt()" type="button"></td>
\r
331 <td><input name="squarex" value=" x^2" onclick="square()" type="button"></td>
\r
332 <td><input name="deg-rad" value="d2r " onclick="degToRad()" type="button"></td>
\r
333 <td><input name="rad-deg" value="r2d " onclick="radToDeg()" type="button"></td>
\r
334 </tr><tr align="left" valign="middle">
\r
335 <td><input name="sine" value=" sin " onclick="sin()" type="button"></td>
\r
336 <td><input name="arcsine" value="asin" onclick="arcSin()" type="button"></td>
\r
337 <td><input name="cosine" value="cos" onclick="cos()" type="button"></td>
\r
338 <td><input name="arccosine" value="acs" onclick="arcCos()" type="button"></td>
\r
340 </tr><tr align="left" valign="middle">
\r
341 <td colspan="2"><input name="clear" value=" Clear " onclick="clearDisplay()" type="button"></td>
\r
342 <td colspan="3"><input name="enter" value=" = " onclick="calculate()" type="button"></td>
\r
344 </tr></tbody></table>
\r
349 <B>NOTE:</B> All sine and cosine calculations are
\r
350 <br>done in radians. Remember to convert first
\r
351 <br>if using degrees.
\r
355 </td></tr></tbody></table>
\r
358 </td></tr></tbody></table>
\r