4 * Description: Simple Calculator Application
6 * Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
8 use Friendica\Core\Hook;
11 function calc_install() {
12 Hook::register('app_menu', 'addon/calc/calc.php', 'calc_app_menu');
15 function calc_uninstall() {
16 Hook::unregister('app_menu', 'addon/calc/calc.php', 'calc_app_menu');
20 function calc_app_menu($a,&$b) {
21 $b['app_menu'][] = '<div class="app-title"><a href="calc">Calculator</a></div>';
25 function calc_module() {}
30 function calc_init($a) {
34 <script language="JavaScript">
35 /**************************************
36 * www.FemaleNerd.com *
37 **************************************/
39 // Declare global variables
46 function addDisplay(n){
47 id = document.getElementById("display");
50 id.value = displayText
54 function addNumbers() {
55 if (displayText == "") {
58 num1 = parseFloat(displayText)
64 function subtractNumbers() {
65 if (displayText == "") {
68 num1 = parseFloat(displayText)
69 operatorType = "subtract"
74 function multiplyNumbers() {
75 if (displayText == "") {
78 num1 = parseFloat(displayText)
79 operatorType = "multiply"
84 function divideNumbers() {
85 if (displayText == "") {
88 num1 = parseFloat(displayText)
89 operatorType = "divide"
95 id = document.getElementById("display");
96 if (displayText == "") {
100 num1 = parseFloat(displayText)
103 result = Math.sin(num1)
108 alert("Please write the number first")
114 id = document.getElementById("display");
115 if (displayText == "") {
119 num1 = parseFloat(displayText)
122 result = Math.cos(num1)
127 alert("Please write the number first")
133 id = document.getElementById("display");
134 if (displayText == "") {
138 num1 = parseFloat(displayText)
141 result = Math.asin(num1)
146 alert("Please write the number first")
152 id = document.getElementById("display");
153 if (displayText == "") {
157 num1 = parseFloat(displayText)
160 result = Math.acos(num1)
165 alert("Please write the number first")
171 id = document.getElementById("display");
172 if (displayText == "") {
176 num1 = parseFloat(displayText)
179 result = Math.sqrt(num1)
184 alert("Please write the number first")
188 // Square number (number to the power of two)
190 id = document.getElementById("display");
191 if (displayText == "") {
195 num1 = parseFloat(displayText)
203 alert("Please write the number first")
207 // Convert degrees to radians
208 function degToRad() {
209 id = document.getElementById("display");
210 if (displayText == "") {
214 num1 = parseFloat(displayText)
217 result = num1 * Math.PI / 180
222 alert("Please write the number first")
226 // Convert radians to degrees
227 function radToDeg() {
228 id = document.getElementById("display");
229 if (displayText == "") {
233 num1 = parseFloat(displayText)
236 result = num1 * 180 / Math.PI
241 alert("Please write the number first")
246 function calculate() {
247 id = document.getElementById("display");
249 if (displayText != "") {
250 num2 = parseFloat(displayText)
252 if (operatorType == "add") {
257 if (operatorType == "subtract") {
261 // Calc: Multiplication
262 if (operatorType == "multiply") {
267 if (operatorType == "divide") {
274 id.value = "Oops! Error!"
279 function clearDisplay() {
280 id = document.getElementById("display");
288 DI::page()['htmlhead'] .= $x;
291 function calc_content($app) {
301 <table bgcolor="#af9999" border="1">
303 <table border="1" cellpadding="2" cellspacing="2">
306 <TR><TD VALIGN=top colspan=6 ALIGN="center"> <H2>Calculator</H2> </TD>
309 <td colspan="5"><input size="22" id="display" name="display" type="text"></td>
310 </tr><tr align="left" valign="middle">
311 <td><input name="one" value=" 1 " onclick="addDisplay(1)" type="button"></td>
312 <td><input name="two" value=" 2 " onclick="addDisplay(2)" type="button"></td>
313 <td><input name="three" value=" 3 " onclick="addDisplay(3)" type="button"></td>
314 <td><input name="plus" value=" + " onclick="addNumbers()" type="button"></td>
315 </tr><tr align="left" valign="middle">
316 <td><input name="four" value=" 4 " onclick="addDisplay(4)" type="button"></td>
317 <td><input name="five" value=" 5 " onclick="addDisplay(5)" type="button"></td>
318 <td><input name="six" value=" 6 " onclick="addDisplay(6)" type="button"></td>
319 <td><input name="minus" value=" - " onclick="subtractNumbers()" type="button"></td>
320 </tr><tr align="left" valign="middle">
321 <td><input name="seven" value=" 7 " onclick="addDisplay(7)" type="button"></td>
322 <td><input name="eight" value=" 8 " onclick="addDisplay(8)" type="button"></td>
323 <td><input name="nine" value=" 9 " onclick="addDisplay(9)" type="button"></td>
324 <td><input name="multiplication" value=" * " onclick="multiplyNumbers()" type="button"></td>
325 </tr><tr align="left" valign="middle">
326 <td><input name="zero" value=" 0 " onclick="addDisplay(0)" type="button"></td>
327 <td><input name="pi" value=" Pi " onclick="addDisplay(Math.PI)" type="button"> </td>
328 <td><input name="dot" value=" . " onclick='addDisplay(".")' type="button"></td>
329 <td><input name="division" value=" / " onclick="divideNumbers()" type="button"></td>
330 </tr><tr align="left" valign="middle">
331 <td><input name="sqareroot" value="sqrt" onclick="sqrt()" type="button"></td>
332 <td><input name="squarex" value=" x^2" onclick="square()" type="button"></td>
333 <td><input name="deg-rad" value="d2r " onclick="degToRad()" type="button"></td>
334 <td><input name="rad-deg" value="r2d " onclick="radToDeg()" type="button"></td>
335 </tr><tr align="left" valign="middle">
336 <td><input name="sine" value=" sin " onclick="sin()" type="button"></td>
337 <td><input name="arcsine" value="asin" onclick="arcSin()" type="button"></td>
338 <td><input name="cosine" value="cos" onclick="cos()" type="button"></td>
339 <td><input name="arccosine" value="acs" onclick="arcCos()" type="button"></td>
341 </tr><tr align="left" valign="middle">
342 <td colspan="2"><input name="clear" value=" Clear " onclick="clearDisplay()" type="button"></td>
343 <td colspan="3"><input name="enter" value=" = " onclick="calculate()" type="button"></td>
345 </tr></tbody></table>
350 <B>NOTE:</B> All sine and cosine calculations are
351 <br>done in radians. Remember to convert first
352 <br>if using degrees.
356 </td></tr></tbody></table>
359 </td></tr></tbody></table>