-
Notifications
You must be signed in to change notification settings - Fork 2
/
cal.js
97 lines (85 loc) · 2.24 KB
/
cal.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// Declaring all variables here
var d = document.getElementById('disp');
var toggle = document.getElementById("theme-toggle");
var td = document.querySelectorAll('td');
var decpoint = document.querySelector('#decpoint');
var lastletter = d.value.substring(d.value.length-1,d.value.length);
var dpcounter = 0;
var opcounter = 0;
var res = document.querySelector('#reset');
var op = document.querySelectorAll('.operator');
function toggling(){
var currentTheme = document.documentElement.getAttribute("data-theme");
var targetTheme = "light";
if (currentTheme==="light"){
targetTheme = "dark";
}else{
targetTheme = "light";
}
document.documentElement.setAttribute('data-theme', targetTheme);
}
function icon(e){
e.firstElementChild.classList.toggle("fa-sun");
}
function back(){
if (lastletter == '.' || d.value == '') {
dpcounter = 0;
}
opcounter = 0;
d.value = d.value.substring(0,d.value.length-1);
}
res.addEventListener("click",clear);
function clear(){
dpcounter = 0;
opcounter = 0;
d.value = '0';
}
for (let i = op.length-2; i >= 0; i--) {
op[i].addEventListener("click",function(){
dpcounter = 0;
if (opcounter == 0) {
d.value += this.id.substring(this.id.length-1,this.id.length);
opcounter = 1;
}else{
d.value = d.value.substring(0,d.value.length-1);
d.value += this.id.substring(this.id.length-1,this.id.length);
}
})
}
decpoint.addEventListener("click",function(){
if (dpcounter == 0) {
d.value += '.';
dpcounter = 1;
}
})
function equals(){
d.value=eval(d.value);
if( d.value == 'undefined' ){
d.value = '0'
}
if( d.value == 'Infinity' ){
d.value = '∞'
setTimeout(function(){d.value='0'},1000)
}
if( d.value == '-Infinity' ){
d.value = '-∞'
setTimeout(function(){d.value='0'},1000)
}
if( d.value == 'NaN' ) {
d.value = 'Error'
setTimeout(function(){d.value='0'},700)
}
}
// Removes leading zeros
var num = document.querySelectorAll('.num');
for(let i=0;i<num.length;i++){
num[i].addEventListener("click", numClicked);
}
function numClicked(){
if ( d.value == '0' || d.value=='' ) {
d.value=this.id;
}else{
d.value+=this.id;
}
opcounter = 0;
}