SHOW:
|
|
- or go back to the newest paste.
1 | //Event Handler + other global variables | |
2 | var bindEvt = (function () { | |
3 | "use strict"; | |
4 | if (document.addEventListener) { | |
5 | return function (element, event, handler) { | |
6 | element.addEventListener(event, handler, false); | |
7 | }; | |
8 | } | |
9 | return function (element, event, handler) { | |
10 | element.attachEvent('on' + event, handler); | |
11 | }; | |
12 | }()), | |
13 | timeset, | |
14 | countdown, | |
15 | start, | |
16 | pause, | |
17 | reset; | |
18 | ||
19 | //Convert seconds to time | |
20 | function dhms(s, f) { | |
21 | var d = h = m = 0; | |
22 | switch (true) { | |
23 | case (s > 86400): | |
24 | d = Math.floor(s / 86400); | |
25 | s -= d * 86400; | |
26 | case (s > 3600): | |
27 | h = Math.floor(s / 3600); | |
28 | s -= h * 3600; | |
29 | case (s > 60): | |
30 | m = Math.floor(s / 60); | |
31 | s -= m * 60; | |
32 | } | |
33 | if (f != null) { | |
34 | var f = f.replace('dd', (d < 10) ? "0" + d : d); | |
35 | f = f.replace('d', d); | |
36 | f = f.replace('hh', (h < 10) ? "0" + h : h); | |
37 | f = f.replace('h', h); | |
38 | f = f.replace('mm', (m < 10) ? "0" + m : m); | |
39 | f = f.replace('m', m); | |
40 | f = f.replace('ss', (s < 10) ? "0" + s : s); | |
41 | f = f.replace('s', s); | |
42 | } | |
43 | else { | |
44 | f = d + ':' + h + ':' + m + ':' + s; | |
45 | } | |
46 | return f; | |
47 | } | |
48 | ||
49 | ||
50 | ||
51 | //set timer | |
52 | function starttimer() { | |
53 | if (timeset == null) { timeset = document.getElementById('timerange').value * 60; }; | |
54 | function startcounting() { | |
55 | document.getElementById('fulltime').innerHTML = dhms(timeset, 'hh:mm:ss'); | |
56 | timeset -= 1; | |
57 | } | |
58 | startcounting(); | |
59 | countdown = setInterval(startcounting, 1000); | |
60 | ||
61 | } | |
62 | function pausetimer() { | |
63 | window.clearInterval(countdown) | |
64 | } | |
65 | ||
66 | function resettimer() { | |
67 | window.clearInterval(countdown) | |
68 | timeset = null; | |
69 | document.getElementById('fulltime').innerHTML = ""; | |
70 | } | |
71 | ||
72 | //detect interactions | |
73 | function runtimer() { | |
74 | start = document.getElementById('start'); | |
75 | pause = document.getElementById('pause'); | |
76 | reset = document.getElementById('reset'); | |
77 | bindEvt(start, "click", starttimer); | |
78 | bindEvt(pause, "click", pausetimer); | |
79 | bindEvt(reset, "click", resettimer); | |
80 | } | |
81 | ||
82 | //onload event | |
83 | bindEvt(window, "load", runtimer); |